diff options
author | Swastik Baranwal <swstkbaranwal@gmail.com> | 2019-06-23 18:47:35 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-23 18:47:35 +0530 |
commit | 99703c6ab831d34e6859d8a8f53ba8e73dc4d3d9 (patch) | |
tree | 3a712d3039d152616af58a45a13d82c40a87e58f /asm | |
parent | 6d190f861e3559eec922cd760778c0cba6e08397 (diff) | |
parent | 9ee0c34758a63f8c00724b6fc984b4e96be2f7af (diff) |
Merge pull request #5 from pret/master
Take files
Diffstat (limited to 'asm')
183 files changed, 60672 insertions, 122667 deletions
diff --git a/asm/bag.s b/asm/bag.s deleted file mode 100644 index e7c72d082..000000000 --- a/asm/bag.s +++ /dev/null @@ -1,431 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_810B858 -sub_810B858: @ 810B858 - push {r4,lr} - ldr r0, _0810B86C @ =gUnknown_203ACFC - ldrb r0, [r0, 0x4] - cmp r0, 0x3 - beq _0810B874 - ldr r0, _0810B870 @ =gUnknown_84530C4 - bl InitWindows - b _0810B87A - .align 2, 0 -_0810B86C: .4byte gUnknown_203ACFC -_0810B870: .4byte gUnknown_84530C4 -_0810B874: - ldr r0, _0810B8E4 @ =gUnknown_84530E4 - bl InitWindows -_0810B87A: - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x64 - movs r2, 0xE0 - bl sub_815001C - movs r0, 0 - movs r1, 0x6D - movs r2, 0xD0 - bl sub_814FEAC - movs r0, 0 - movs r1, 0x81 - movs r2, 0xC0 - bl sub_814FF2C - ldr r0, _0810B8E8 @ =gUnknown_8453098 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0 -_0810B8A8: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0810B8A8 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r4, 0 - ldr r3, _0810B8EC @ =gUnknown_203AD34 - movs r2, 0xFF -_0810B8CC: - adds r0, r4, r3 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xA - bls _0810B8CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B8E4: .4byte gUnknown_84530E4 -_0810B8E8: .4byte gUnknown_8453098 -_0810B8EC: .4byte gUnknown_203AD34 - thumb_func_end sub_810B858 - - thumb_func_start sub_810B8F0 -sub_810B8F0: @ 810B8F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r3 - ldr r3, [sp, 0x30] - ldr r4, [sp, 0x34] - ldr r6, [sp, 0x38] - ldr r5, [sp, 0x3C] - mov r8, r5 - ldr r5, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - mov r9, r7 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, _0810B954 @ =gUnknown_84530B8 - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r2, [sp, 0x10] - mov r2, r9 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810B954: .4byte gUnknown_84530B8 - thumb_func_end sub_810B8F0 - - thumb_func_start sub_810B958 -sub_810B958: @ 810B958 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r2, 0x48 - subs r2, r0 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0810B990 @ =gUnknown_84530B8 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0x1 - bl box_print - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B990: .4byte gUnknown_84530B8 - thumb_func_end sub_810B958 - - thumb_func_start sub_810B994 -sub_810B994: @ 810B994 - push {r4,lr} - sub sp, 0xC - movs r0, 0x2 - movs r1, 0 - movs r2, 0x81 - movs r3, 0xC - bl SetWindowBorderStyle - ldr r4, _0810B9D8 @ =gUnknown_84162E8 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r3, 0x40 - subs r3, r0 - lsrs r3, 1 - 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, 0x2 - movs r1, 0 - adds r2, r4, 0 - bl AddTextPrinterParameterized - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B9D8: .4byte gUnknown_84162E8 - thumb_func_end sub_810B994 - - thumb_func_start sub_810B9DC -sub_810B9DC: @ 810B9DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r6, _0810BA10 @ =gUnknown_203AD34 - adds r4, r5, r6 - ldrb r0, [r4] - cmp r0, 0xFF - bne _0810BA2A - adds r0, r5, r1 - lsls r0, 3 - ldr r1, _0810BA14 @ =gUnknown_8453104 - adds r0, r1 - bl AddWindow - strb r0, [r4] - cmp r5, 0x6 - beq _0810BA18 - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x64 - movs r3, 0xE - bl SetWindowBorderStyle - b _0810BA24 - .align 2, 0 -_0810BA10: .4byte gUnknown_203AD34 -_0810BA14: .4byte gUnknown_8453104 -_0810BA18: - ldrb r0, [r6, 0x6] - movs r1, 0 - movs r2, 0x81 - movs r3, 0xC - bl SetWindowBorderStyle -_0810BA24: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram -_0810BA2A: - ldr r0, _0810BA38 @ =gUnknown_203AD34 - adds r0, r5, r0 - ldrb r0, [r0] - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0810BA38: .4byte gUnknown_203AD34 - thumb_func_end sub_810B9DC - - thumb_func_start sub_810BA3C -sub_810BA3C: @ 810BA3C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810BA6C @ =gUnknown_203AD34 - adds r4, r0 - ldrb r0, [r4] - movs r1, 0 - bl sub_810F4D8 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0xFF - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BA6C: .4byte gUnknown_203AD34 - thumb_func_end sub_810BA3C - - thumb_func_start sub_810BA70 -sub_810BA70: @ 810BA70 - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _0810BA94 @ =gUnknown_203AD34 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - bne _0810BA8C - lsls r0, r1, 3 - ldr r1, _0810BA98 @ =gUnknown_8453104 - adds r0, r1 - bl AddWindow - strb r0, [r4] -_0810BA8C: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810BA94: .4byte gUnknown_203AD34 -_0810BA98: .4byte gUnknown_8453104 - thumb_func_end sub_810BA70 - - thumb_func_start sub_810BA9C -sub_810BA9C: @ 810BA9C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810BAD4 @ =gUnknown_203AD34 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - beq _0810BACE - movs r1, 0 - bl sub_810F260 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0xFF - strb r0, [r4] -_0810BACE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BAD4: .4byte gUnknown_203AD34 - thumb_func_end sub_810BA9C - - thumb_func_start sub_810BAD8 -sub_810BAD8: @ 810BAD8 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810BAE4 @ =gUnknown_203AD34 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0810BAE4: .4byte gUnknown_203AD34 - thumb_func_end sub_810BAD8 - - thumb_func_start sub_810BAE8 -sub_810BAE8: @ 810BAE8 - push {lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810BB10 @ =gUnknown_845311C - movs r2, 0x2 - str r2, [sp] - movs r2, 0x64 - str r2, [sp, 0x4] - movs r2, 0xE - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r2, 0x2 - movs r3, 0 - bl sub_80BF5D0 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_0810BB10: .4byte gUnknown_845311C - thumb_func_end sub_810BAE8 - - thumb_func_start sub_810BB14 -sub_810BB14: @ 810BB14 - push {lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810BB3C @ =gUnknown_8453124 - movs r2, 0x2 - str r2, [sp] - movs r2, 0x64 - str r2, [sp, 0x4] - movs r2, 0xE - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r2, 0x2 - movs r3, 0 - bl sub_80BF5D0 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_0810BB3C: .4byte gUnknown_8453124 - thumb_func_end sub_810BB14 - - thumb_func_start sub_810BB40 -sub_810BB40: @ 810BB40 - push {r4,lr} - movs r0, 0x2 - movs r1, 0 - bl sub_810B9DC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810BB70 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - adds r3, r0, 0 - adds r0, r4, 0 - movs r1, 0x81 - movs r2, 0xC - bl PrintMoneyAmountInMoneyBoxWithBorder - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BB70: .4byte gSaveBlock1Ptr - thumb_func_end sub_810BB40 - - thumb_func_start sub_810BB74 -sub_810BB74: @ 810BB74 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - movs r2, 0xE - bl sub_8150048 - pop {r0} - bx r0 - thumb_func_end sub_810BB74 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_1.s b/asm/battle_1.s index 72f5fe901..87cb0e750 100644 --- a/asm/battle_1.s +++ b/asm/battle_1.s @@ -223,11 +223,11 @@ sub_800F380: @ 800F380 movs r0, 0x2 movs r1, 0x12 movs r2, 0x10 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0x2 movs r1, 0x22 movs r2, 0x10 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame ldr r4, _0800F3F0 @ =gPlttBufferUnfaded adds r0, r4, 0 adds r0, 0xB8 @@ -253,11 +253,11 @@ sub_800F380: @ 800F380 cmp r0, 0 beq _0800F3EA movs r0, 0x70 - bl sub_80F77CC + bl Menu_LoadStdPalAt movs r0, 0 movs r1, 0x30 movs r2, 0x70 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 adds r0, r4, 0 adds r0, 0xEC movs r1, 0 @@ -294,7 +294,7 @@ sub_800F40C: @ 800F40C thumb_func_start LoadBattleTextboxAndBackground LoadBattleTextboxAndBackground: @ 800F420 push {lr} - ldr r0, _0800F454 @ =gUnknown_8D00000 + ldr r0, _0800F454 @ =gBattleTextboxTiles movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram @@ -305,7 +305,7 @@ LoadBattleTextboxAndBackground: @ 800F420 bl CopyToBgTilemapBuffer movs r0, 0 bl CopyBgTilemapBufferToVram - ldr r0, _0800F45C @ =gUnknown_8D004D8 + ldr r0, _0800F45C @ =gBattleTextboxPalette movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette @@ -314,9 +314,9 @@ LoadBattleTextboxAndBackground: @ 800F420 pop {r0} bx r0 .align 2, 0 -_0800F454: .4byte gUnknown_8D00000 +_0800F454: .4byte gBattleTextboxTiles _0800F458: .4byte gFile_graphics_interface_menu_map_tilemap -_0800F45C: .4byte gUnknown_8D004D8 +_0800F45C: .4byte gBattleTextboxPalette thumb_func_end LoadBattleTextboxAndBackground thumb_func_start sub_800F460 @@ -517,7 +517,7 @@ _0800F5C8: .4byte 0x00006001 thumb_func_start sub_800F5CC sub_800F5CC: @ 800F5CC push {lr} - ldr r0, _0800F5E0 @ =gUnknown_2023E8A + ldr r0, _0800F5E0 @ =gBattleOutcome ldrb r2, [r0] cmp r2, 0x3 bne _0800F5E8 @@ -526,7 +526,7 @@ sub_800F5CC: @ 800F5CC bl sub_80D87BC b _0800F6F0 .align 2, 0 -_0800F5E0: .4byte gUnknown_2023E8A +_0800F5E0: .4byte gBattleOutcome _0800F5E4: .4byte gUnknown_83FE883 _0800F5E8: ldr r0, _0800F61C @ =gBattleTypeFlags @@ -908,7 +908,7 @@ _0800F8F0: ldrsh r0, [r5, r1] cmp r0, 0 beq _0800F958 - ldr r4, _0800F944 @ =gUnknown_2022978 + ldr r4, _0800F944 @ =gBattle_BG1_X ldrh r0, [r5, 0xA] bl Sin2 lsls r0, 16 @@ -923,7 +923,7 @@ _0800F90A: adds r0, r2, 0 subs r0, r1 strh r0, [r4] - ldr r4, _0800F948 @ =gUnknown_202297C + ldr r4, _0800F948 @ =gBattle_BG2_X ldrh r0, [r5, 0xC] bl Sin2 lsls r0, 16 @@ -938,21 +938,21 @@ _0800F928: adds r0, r3, 0 subs r0, r1 strh r0, [r4] - ldr r0, _0800F94C @ =gUnknown_202297A + ldr r0, _0800F94C @ =gBattle_BG1_Y ldr r2, _0800F950 @ =0x0000ffdc adds r1, r2, 0 strh r1, [r0] - ldr r0, _0800F954 @ =gUnknown_202297E + ldr r0, _0800F954 @ =gBattle_BG2_Y strh r1, [r0] b _0800F9C4 .align 2, 0 -_0800F944: .4byte gUnknown_2022978 -_0800F948: .4byte gUnknown_202297C -_0800F94C: .4byte gUnknown_202297A +_0800F944: .4byte gBattle_BG1_X +_0800F948: .4byte gBattle_BG2_X +_0800F94C: .4byte gBattle_BG1_Y _0800F950: .4byte 0x0000ffdc -_0800F954: .4byte gUnknown_202297E +_0800F954: .4byte gBattle_BG2_Y _0800F958: - ldr r4, _0800F9E8 @ =gUnknown_2022978 + ldr r4, _0800F9E8 @ =gBattle_BG1_X ldrh r0, [r5, 0xA] bl Sin2 lsls r0, 16 @@ -967,7 +967,7 @@ _0800F96A: adds r0, r3, 0 subs r0, r1 strh r0, [r4] - ldr r4, _0800F9EC @ =gUnknown_202297A + ldr r4, _0800F9EC @ =gBattle_BG1_Y ldrh r0, [r5, 0xA] bl Cos2 lsls r0, 16 @@ -979,7 +979,7 @@ _0800F988: asrs r0, 5 subs r0, 0xA4 strh r0, [r4] - ldr r4, _0800F9F0 @ =gUnknown_202297C + ldr r4, _0800F9F0 @ =gBattle_BG2_X ldrh r0, [r5, 0xC] bl Sin2 lsls r0, 16 @@ -994,7 +994,7 @@ _0800F9A0: adds r0, r2, 0 subs r0, r1 strh r0, [r4] - ldr r4, _0800F9F4 @ =gUnknown_202297E + ldr r4, _0800F9F4 @ =gBattle_BG2_Y ldrh r0, [r5, 0xC] bl Cos2 lsls r0, 16 @@ -1025,10 +1025,10 @@ _0800F9C4: strh r0, [r1, 0xA] b _0800FAC4 .align 2, 0 -_0800F9E8: .4byte gUnknown_2022978 -_0800F9EC: .4byte gUnknown_202297A -_0800F9F0: .4byte gUnknown_202297C -_0800F9F4: .4byte gUnknown_202297E +_0800F9E8: .4byte gBattle_BG1_X +_0800F9EC: .4byte gBattle_BG1_Y +_0800F9F0: .4byte gBattle_BG2_X +_0800F9F4: .4byte gBattle_BG2_Y _0800F9F8: .4byte gTasks _0800F9FC: movs r3, 0x12 @@ -1190,11 +1190,11 @@ sub_800FAE0: @ 800FAE0 movs r0, 0x4A movs r1, 0x36 bl SetGpuReg - ldr r0, _0800FB84 @ =gUnknown_202297A + ldr r0, _0800FB84 @ =gBattle_BG1_Y ldr r2, _0800FB88 @ =0x0000ff5c adds r1, r2, 0 strh r1, [r0] - ldr r0, _0800FB8C @ =gUnknown_202297E + ldr r0, _0800FB8C @ =gBattle_BG2_Y strh r1, [r0] ldr r0, _0800FB90 @ =gUnknown_8248318 bl sub_800F034 @@ -1208,9 +1208,9 @@ _0800FB74: .4byte 0x06010000 _0800FB78: .4byte gFile_graphics_battle_transitions_vs_frame_palette _0800FB7C: .4byte 0x00005c04 _0800FB80: .4byte gFile_graphics_battle_transitions_vs_frame_tilemap -_0800FB84: .4byte gUnknown_202297A +_0800FB84: .4byte gBattle_BG1_Y _0800FB88: .4byte 0x0000ff5c -_0800FB8C: .4byte gUnknown_202297E +_0800FB8C: .4byte gBattle_BG2_Y _0800FB90: .4byte gUnknown_8248318 _0800FB94: movs r0, 0x80 @@ -1385,13 +1385,13 @@ _0800FCD0: .4byte _0800FD68 .4byte _0800FD8C _0800FCEC: - ldr r0, _0800FCF8 @ =gUnknown_8D00000 + ldr r0, _0800FCF8 @ =gBattleTextboxTiles movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _0800FD94 .align 2, 0 -_0800FCF8: .4byte gUnknown_8D00000 +_0800FCF8: .4byte gBattleTextboxTiles _0800FCFC: ldr r1, _0800FD10 @ =gFile_graphics_interface_menu_map_tilemap movs r0, 0 @@ -1404,13 +1404,13 @@ _0800FCFC: .align 2, 0 _0800FD10: .4byte gFile_graphics_interface_menu_map_tilemap _0800FD14: - ldr r0, _0800FD20 @ =gUnknown_8D004D8 + ldr r0, _0800FD20 @ =gBattleTextboxPalette movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette b _0800FD94 .align 2, 0 -_0800FD20: .4byte gUnknown_8D004D8 +_0800FD20: .4byte gBattleTextboxPalette _0800FD24: bl sub_800FC2C lsls r0, 24 diff --git a/asm/battle_2.s b/asm/battle_2.s index 1ecfe6ad3..0826ea927 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -45,11 +45,11 @@ _0800FDD8: cmp r1, 0 beq _0800FDFE movs r0, 0x19 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _0800FE1C _0800FDFE: movs r0, 0x18 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _0800FE1C _0800FE06: movs r0, 0x80 @@ -57,11 +57,11 @@ _0800FE06: cmp r1, 0 beq _0800FE16 movs r0, 0x1A - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _0800FE1C _0800FE16: movs r0, 0x17 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _0800FE1C: pop {r4} pop {r0} @@ -104,8 +104,8 @@ sub_800FE24: @ 800FE24 strh r0, [r1] ldr r0, _0800FF34 @ =gUnknown_2022986 strh r4, [r0] - bl dp12_8087EA4 - ldr r0, _0800FF38 @ =gUnknown_2038700 + bl ScanlineEffect_Clear + ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers movs r3, 0xF0 movs r1, 0xF0 lsls r1, 3 @@ -121,7 +121,7 @@ _0800FE88: bge _0800FE88 movs r1, 0x50 ldr r4, _0800FF3C @ =gUnknown_824EFE4 - ldr r0, _0800FF38 @ =gUnknown_2038700 + ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers ldr r3, _0800FF40 @ =0x0000ff10 movs r5, 0x82 lsls r5, 4 @@ -138,24 +138,24 @@ _0800FEA6: ldr r0, [r4] ldr r1, [r4, 0x4] ldr r2, [r4, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams bl ResetPaletteFade - ldr r0, _0800FF44 @ =gUnknown_2022974 + ldr r0, _0800FF44 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _0800FF48 @ =gUnknown_2022976 + ldr r0, _0800FF48 @ =gBattle_BG0_Y strh r1, [r0] - ldr r0, _0800FF4C @ =gUnknown_2022978 + ldr r0, _0800FF4C @ =gBattle_BG1_X strh r1, [r0] - ldr r0, _0800FF50 @ =gUnknown_202297A + ldr r0, _0800FF50 @ =gBattle_BG1_Y strh r1, [r0] - ldr r0, _0800FF54 @ =gUnknown_202297C + ldr r0, _0800FF54 @ =gBattle_BG2_X strh r1, [r0] - ldr r0, _0800FF58 @ =gUnknown_202297E + ldr r0, _0800FF58 @ =gBattle_BG2_Y strh r1, [r0] - ldr r0, _0800FF5C @ =gUnknown_2022980 + ldr r0, _0800FF5C @ =gBattle_BG3_X strh r1, [r0] - ldr r0, _0800FF60 @ =gUnknown_2022982 + ldr r0, _0800FF60 @ =gBattle_BG3_Y strh r1, [r0] bl sub_807FC5C ldr r1, _0800FF64 @ =gUnknown_2022B50 @@ -186,17 +186,17 @@ _0800FF28: .4byte 0x05006000 _0800FF2C: .4byte 0x00005051 _0800FF30: .4byte gUnknown_2022984 _0800FF34: .4byte gUnknown_2022986 -_0800FF38: .4byte gUnknown_2038700 +_0800FF38: .4byte gScanlineEffectRegBuffers _0800FF3C: .4byte gUnknown_824EFE4 _0800FF40: .4byte 0x0000ff10 -_0800FF44: .4byte gUnknown_2022974 -_0800FF48: .4byte gUnknown_2022976 -_0800FF4C: .4byte gUnknown_2022978 -_0800FF50: .4byte gUnknown_202297A -_0800FF54: .4byte gUnknown_202297C -_0800FF58: .4byte gUnknown_202297E -_0800FF5C: .4byte gUnknown_2022980 -_0800FF60: .4byte gUnknown_2022982 +_0800FF44: .4byte gBattle_BG0_X +_0800FF48: .4byte gBattle_BG0_Y +_0800FF4C: .4byte gBattle_BG1_X +_0800FF50: .4byte gBattle_BG1_Y +_0800FF54: .4byte gBattle_BG2_X +_0800FF58: .4byte gBattle_BG2_Y +_0800FF5C: .4byte gBattle_BG3_X +_0800FF60: .4byte gBattle_BG3_Y _0800FF64: .4byte gUnknown_2022B50 _0800FF68: .4byte gReservedSpritePaletteCount _0800FF6C: .4byte sub_80116F4 @@ -1645,7 +1645,7 @@ _08010B2A: ldrb r0, [r0] cmp r0, 0 beq _08010B64 - bl sub_80FA4F8 + bl IsNoOneConnected lsls r0, 24 cmp r0, 0 beq _08010B82 @@ -2093,13 +2093,13 @@ _08010EE4: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 - ldr r1, _08010EF8 @ =gUnknown_201C0C8 + ldr r1, _08010EF8 @ =gDecompressionBuffer + 0x0C8 movs r2, 0x64 bl SendBlock ldr r1, _08010EFC @ =gUnknown_2023E82 b _080110EA .align 2, 0 -_08010EF8: .4byte gUnknown_201C0C8 +_08010EF8: .4byte gDecompressionBuffer + 0x0C8 _08010EFC: .4byte gUnknown_2023E82 _08010F00: bl GetBlockReceivedStatus @@ -2376,7 +2376,7 @@ sub_8011100: @ 8011100 cmp r0, 0 beq _08011158 ldr r2, _08011168 @ =gSpecialVar_Result - ldr r1, _0801116C @ =gUnknown_2023E8A + ldr r1, _0801116C @ =gBattleOutcome movs r0, 0x3 strb r0, [r1] movs r0, 0x3 @@ -2399,7 +2399,7 @@ _08011158: _08011160: .4byte gMain _08011164: .4byte gBattleTypeFlags _08011168: .4byte gSpecialVar_Result -_0801116C: .4byte gUnknown_2023E8A +_0801116C: .4byte gBattleOutcome _08011170: .4byte CB2_QuitRecordedBattle thumb_func_end sub_8011100 @@ -2410,7 +2410,7 @@ FreeRestoreBattleData: @ 8011174 ldr r0, _080111B0 @ =gUnknown_3004F80 ldr r0, [r0] str r0, [r1] - ldr r2, _080111B4 @ =gUnknown_2039600 + ldr r2, _080111B4 @ =gScanlineEffect movs r0, 0x3 strb r0, [r2, 0x15] ldr r0, _080111B8 @ =0x00000439 @@ -2431,7 +2431,7 @@ FreeRestoreBattleData: @ 8011174 .align 2, 0 _080111AC: .4byte gMain _080111B0: .4byte gUnknown_3004F80 -_080111B4: .4byte gUnknown_2039600 +_080111B4: .4byte gScanlineEffect _080111B8: .4byte 0x00000439 thumb_func_end FreeRestoreBattleData @@ -3125,35 +3125,35 @@ _080116F0: .4byte 0x04000008 sub_80116F4: @ 80116F4 push {lr} bl Random - ldr r0, _08011788 @ =gUnknown_2022974 + ldr r0, _08011788 @ =gBattle_BG0_X ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg - ldr r0, _0801178C @ =gUnknown_2022976 + ldr r0, _0801178C @ =gBattle_BG0_Y ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, _08011790 @ =gUnknown_2022978 + ldr r0, _08011790 @ =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, _08011794 @ =gUnknown_202297A + ldr r0, _08011794 @ =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, _08011798 @ =gUnknown_202297C + ldr r0, _08011798 @ =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, _0801179C @ =gUnknown_202297E + ldr r0, _0801179C @ =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, _080117A0 @ =gUnknown_2022980 + ldr r0, _080117A0 @ =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg - ldr r0, _080117A4 @ =gUnknown_2022982 + ldr r0, _080117A4 @ =gBattle_BG3_Y ldrh r1, [r0] movs r0, 0x1E bl SetGpuReg @@ -3176,18 +3176,18 @@ sub_80116F4: @ 80116F4 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 .align 2, 0 -_08011788: .4byte gUnknown_2022974 -_0801178C: .4byte gUnknown_2022976 -_08011790: .4byte gUnknown_2022978 -_08011794: .4byte gUnknown_202297A -_08011798: .4byte gUnknown_202297C -_0801179C: .4byte gUnknown_202297E -_080117A0: .4byte gUnknown_2022980 -_080117A4: .4byte gUnknown_2022982 +_08011788: .4byte gBattle_BG0_X +_0801178C: .4byte gBattle_BG0_Y +_08011790: .4byte gBattle_BG1_X +_08011794: .4byte gBattle_BG1_Y +_08011798: .4byte gBattle_BG2_X +_0801179C: .4byte gBattle_BG2_Y +_080117A0: .4byte gBattle_BG3_X +_080117A4: .4byte gBattle_BG3_Y _080117A8: .4byte gUnknown_2022984 _080117AC: .4byte gUnknown_2022986 _080117B0: .4byte gUnknown_2022988 @@ -3548,8 +3548,8 @@ sub_8011A1C: @ 8011A1C strh r0, [r1] ldr r0, _08011B4C @ =gUnknown_2022986 strh r4, [r0] - bl dp12_8087EA4 - ldr r0, _08011B50 @ =gUnknown_2038700 + bl ScanlineEffect_Clear + ldr r0, _08011B50 @ =gScanlineEffectRegBuffers movs r3, 0xF0 movs r1, 0xF0 lsls r1, 3 @@ -3564,7 +3564,7 @@ _08011A80: cmp r1, 0 bge _08011A80 movs r1, 0x50 - ldr r0, _08011B50 @ =gUnknown_2038700 + ldr r0, _08011B50 @ =gScanlineEffectRegBuffers ldr r3, _08011B54 @ =0x0000ff10 movs r4, 0x82 lsls r4, 4 @@ -3579,25 +3579,25 @@ _08011A9C: cmp r1, 0x9F ble _08011A9C bl ResetPaletteFade - ldr r0, _08011B58 @ =gUnknown_2022974 + ldr r0, _08011B58 @ =gBattle_BG0_X movs r4, 0 strh r4, [r0] - ldr r0, _08011B5C @ =gUnknown_2022976 + ldr r0, _08011B5C @ =gBattle_BG0_Y strh r4, [r0] - ldr r0, _08011B60 @ =gUnknown_2022978 + ldr r0, _08011B60 @ =gBattle_BG1_X strh r4, [r0] - ldr r0, _08011B64 @ =gUnknown_202297A + ldr r0, _08011B64 @ =gBattle_BG1_Y strh r4, [r0] - ldr r0, _08011B68 @ =gUnknown_202297C + ldr r0, _08011B68 @ =gBattle_BG2_X strh r4, [r0] - ldr r0, _08011B6C @ =gUnknown_202297E + ldr r0, _08011B6C @ =gBattle_BG2_Y strh r4, [r0] - ldr r0, _08011B70 @ =gUnknown_2022980 + ldr r0, _08011B70 @ =gBattle_BG3_X strh r4, [r0] - ldr r0, _08011B74 @ =gUnknown_2022982 + ldr r0, _08011B74 @ =gBattle_BG3_Y strh r4, [r0] bl sub_800F34C - ldr r0, _08011B78 @ =gUnknown_8D004D8 + ldr r0, _08011B78 @ =gBattleTextboxPalette movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette @@ -3645,17 +3645,17 @@ _08011B40: .4byte 0x05006000 _08011B44: .4byte 0x00005051 _08011B48: .4byte gUnknown_2022984 _08011B4C: .4byte gUnknown_2022986 -_08011B50: .4byte gUnknown_2038700 +_08011B50: .4byte gScanlineEffectRegBuffers _08011B54: .4byte 0x0000ff10 -_08011B58: .4byte gUnknown_2022974 -_08011B5C: .4byte gUnknown_2022976 -_08011B60: .4byte gUnknown_2022978 -_08011B64: .4byte gUnknown_202297A -_08011B68: .4byte gUnknown_202297C -_08011B6C: .4byte gUnknown_202297E -_08011B70: .4byte gUnknown_2022980 -_08011B74: .4byte gUnknown_2022982 -_08011B78: .4byte gUnknown_8D004D8 +_08011B58: .4byte gBattle_BG0_X +_08011B5C: .4byte gBattle_BG0_Y +_08011B60: .4byte gBattle_BG1_X +_08011B64: .4byte gBattle_BG1_Y +_08011B68: .4byte gBattle_BG2_X +_08011B6C: .4byte gBattle_BG2_Y +_08011B70: .4byte gBattle_BG3_X +_08011B74: .4byte gBattle_BG3_Y +_08011B78: .4byte gBattleTextboxPalette _08011B7C: .4byte gReservedSpritePaletteCount _08011B80: .4byte sub_80116F4 _08011B84: .4byte sub_800F6FC @@ -4511,7 +4511,7 @@ _080121D4: .4byte SpriteCB_HealthBoxBounce _080121D8: .4byte gUnknown_3004FF0 _080121DC: .4byte gSprites _080121E0: - ldr r0, _0801224C @ =gUnknown_2023D44 + ldr r0, _0801224C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r7, [r0] ldr r2, _08012250 @ =gUnknown_2024018 @@ -4567,7 +4567,7 @@ _0801223C: pop {r0} bx r0 .align 2, 0 -_0801224C: .4byte gUnknown_2023D44 +_0801224C: .4byte gBattlerSpriteIds _08012250: .4byte gUnknown_2024018 _08012254: .4byte gSprites thumb_func_end dp11b_obj_instanciate @@ -4966,7 +4966,7 @@ _08012522: strb r0, [r2, 0x1D] ldr r0, _08012724 @ =gUnknown_2023D72 strb r1, [r0] - ldr r2, _08012728 @ =gUnknown_2023E8A + ldr r2, _08012728 @ =gBattleOutcome strb r1, [r2] ldr r0, _0801272C @ =gUnknown_2023BC8 str r1, [r0] @@ -5194,7 +5194,7 @@ _08012718: .4byte 0x00010002 _0801271C: .4byte gSaveBlock2Ptr _08012720: .4byte gBattleScripting _08012724: .4byte gUnknown_2023D72 -_08012728: .4byte gUnknown_2023E8A +_08012728: .4byte gBattleOutcome _0801272C: .4byte gUnknown_2023BC8 _08012730: .4byte gUnknown_2023E7E _08012734: .4byte gUnknown_2023E82 @@ -7783,7 +7783,7 @@ sub_8013BD4: @ 8013BD4 push {r5-r7} movs r0, 0x1 bl TurnValuesCleanUp - ldr r0, _08013C78 @ =gUnknown_2023E8A + ldr r0, _08013C78 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0 bne _08013C04 @@ -7844,7 +7844,7 @@ _08013C58: subs r0, 0x1 cmp r0, r1 bge _08013C58 - ldr r0, _08013C78 @ =gUnknown_2023E8A + ldr r0, _08013C78 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0 beq _08013CB0 @@ -7856,7 +7856,7 @@ _08013C58: str r0, [r1] b _08013D20 .align 2, 0 -_08013C78: .4byte gUnknown_2023E8A +_08013C78: .4byte gBattleOutcome _08013C7C: .4byte gBattleStruct _08013C80: .4byte gUnknown_2023DD0 _08013C84: .4byte 0xfffffdff @@ -10971,7 +10971,7 @@ _080155C4: .4byte gBattleResources thumb_func_start RunTurnActionsFunctions RunTurnActionsFunctions: @ 80155C8 push {r4-r6,lr} - ldr r6, _0801561C @ =gUnknown_2023E8A + ldr r6, _0801561C @ =gBattleOutcome ldrb r0, [r6] ldr r2, _08015620 @ =gUnknown_2023BE3 cmp r0, 0 @@ -11012,7 +11012,7 @@ _080155D8: str r0, [r3] b _0801565C .align 2, 0 -_0801561C: .4byte gUnknown_2023E8A +_0801561C: .4byte gBattleOutcome _08015620: .4byte gUnknown_2023BE3 _08015624: .4byte gBattleStruct _08015628: .4byte gUnknown_2023BE2 @@ -11058,7 +11058,7 @@ sub_8015670: @ 8015670 cmp r0, 0 beq _080156C4 ldr r1, _080156B0 @ =gBattleTextBuff1 - ldr r4, _080156B4 @ =gUnknown_2023E8A + ldr r4, _080156B4 @ =gBattleOutcome ldrb r0, [r4] strb r0, [r1] movs r0, 0 @@ -11077,7 +11077,7 @@ sub_8015670: @ 8015670 _080156A8: .4byte gUnknown_2023BE3 _080156AC: .4byte gBattleTypeFlags _080156B0: .4byte gBattleTextBuff1 -_080156B4: .4byte gUnknown_2023E8A +_080156B4: .4byte gBattleOutcome _080156B8: .4byte sBattler_AI _080156BC: .4byte gUnknown_2023D74 _080156C0: .4byte gUnknown_81D88CC @@ -11181,7 +11181,7 @@ sub_801578C: @ 801578C cmp r0, 0 beq _080157E0 ldr r1, _080157CC @ =gBattleTextBuff1 - ldr r4, _080157D0 @ =gUnknown_2023E8A + ldr r4, _080157D0 @ =gBattleOutcome ldrb r0, [r4] strb r0, [r1] movs r0, 0 @@ -11200,7 +11200,7 @@ sub_801578C: @ 801578C _080157C4: .4byte gUnknown_2023BE3 _080157C8: .4byte gBattleTypeFlags _080157CC: .4byte gBattleTextBuff1 -_080157D0: .4byte gUnknown_2023E8A +_080157D0: .4byte gBattleOutcome _080157D4: .4byte sBattler_AI _080157D8: .4byte gUnknown_2023D74 _080157DC: .4byte gUnknown_81D88CC @@ -11496,7 +11496,7 @@ sub_8015A30: @ 8015A30 ldrb r0, [r0] cmp r0, 0 beq _08015A52 - ldr r0, _08015A60 @ =gUnknown_2023E8A + ldr r0, _08015A60 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _08015A6C @@ -11507,7 +11507,7 @@ _08015A52: .align 2, 0 _08015A58: .4byte gPaletteFade _08015A5C: .4byte gUnknown_3004FD4 -_08015A60: .4byte gUnknown_2023E8A +_08015A60: .4byte gBattleOutcome _08015A64: .4byte gUnknown_3004F84 _08015A68: .4byte ReturnFromBattleToOverworld _08015A6C: @@ -11653,7 +11653,7 @@ _08015B74: bne _08015BD4 _08015B86: ldr r1, _08015BE8 @ =gSpecialVar_Result - ldr r5, _08015BEC @ =gUnknown_2023E8A + ldr r5, _08015BEC @ =gBattleOutcome ldrb r0, [r5] strh r0, [r1] ldr r3, _08015BF0 @ =gMain @@ -11698,7 +11698,7 @@ _08015BDC: .4byte gBattleTypeFlags _08015BE0: .4byte gPlayerParty _08015BE4: .4byte gReceivedRemoteLinkPlayers _08015BE8: .4byte gSpecialVar_Result -_08015BEC: .4byte gUnknown_2023E8A +_08015BEC: .4byte gBattleOutcome _08015BF0: .4byte gMain _08015BF4: .4byte 0x00000439 _08015BF8: .4byte gUnknown_3004F80 @@ -12610,10 +12610,10 @@ sub_8016374: @ 8016374 adds r0, r1 ldrb r0, [r0] strb r0, [r3] - ldr r0, _080163EC @ =gUnknown_2022974 + ldr r0, _080163EC @ =gBattle_BG0_X movs r2, 0 strh r2, [r0] - ldr r0, _080163F0 @ =gUnknown_2022976 + ldr r0, _080163F0 @ =gBattle_BG0_Y strh r2, [r0] ldr r1, _080163F4 @ =gUnknown_2023FF8 ldrb r0, [r3] @@ -12661,8 +12661,8 @@ _080163DA: _080163E0: .4byte sBattler_AI _080163E4: .4byte gUnknown_2023BDE _080163E8: .4byte gUnknown_2023BE2 -_080163EC: .4byte gUnknown_2022974 -_080163F0: .4byte gUnknown_2022976 +_080163EC: .4byte gBattle_BG0_X +_080163F0: .4byte gBattle_BG0_Y _080163F4: .4byte gUnknown_2023FF8 _080163F8: .4byte gUnknown_2023FFC _080163FC: .4byte gBattleTextBuff1 @@ -12690,10 +12690,10 @@ sub_8016418: @ 8016418 ldrb r0, [r0] strb r0, [r2] strb r0, [r4] - ldr r0, _08016484 @ =gUnknown_2022974 + ldr r0, _08016484 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08016488 @ =gUnknown_2022976 + ldr r0, _08016488 @ =gBattle_BG0_Y strh r1, [r0] ldrb r0, [r4] bl ClearFuryCutterDestinyBondGrudge @@ -12726,8 +12726,8 @@ _08016474: .4byte sBattler_AI _08016478: .4byte gBattlerTarget _0801647C: .4byte gUnknown_2023BDE _08016480: .4byte gUnknown_2023BE2 -_08016484: .4byte gUnknown_2022974 -_08016488: .4byte gUnknown_2022976 +_08016484: .4byte gBattle_BG0_X +_08016488: .4byte gBattle_BG0_Y _0801648C: .4byte gUnknown_2023D68 _08016490: .4byte gUnknown_20233C4 _08016494: .4byte gUnknown_2023D74 @@ -13212,7 +13212,7 @@ _0801687A: ldr r0, _0801689C @ =gBattlersCount ldrb r0, [r0] strb r0, [r1] - ldr r1, _080168A0 @ =gUnknown_2023E8A + ldr r1, _080168A0 @ =gBattleOutcome movs r0, 0x4 strb r0, [r1] _0801688C: @@ -13224,7 +13224,7 @@ _0801688C: _08016894: .4byte gBattleStruct _08016898: .4byte gUnknown_2023BE2 _0801689C: .4byte gBattlersCount -_080168A0: .4byte gUnknown_2023E8A +_080168A0: .4byte gBattleOutcome thumb_func_end sub_8016748 thumb_func_start sub_80168A4 @@ -13254,7 +13254,7 @@ sub_80168A4: @ 80168A4 beq _08016938 adds r4, r2, 0 ldr r6, _0801690C @ =gUnknown_2023D7C - ldr r5, _08016910 @ =gUnknown_2023E8A + ldr r5, _08016910 @ =gBattleOutcome _080168D8: ldrb r0, [r4] bl GetBattlerSide @@ -13277,7 +13277,7 @@ _08016900: .4byte gBattleTypeFlags _08016904: .4byte gBattlersCount _08016908: .4byte gActiveBattler _0801690C: .4byte gUnknown_2023D7C -_08016910: .4byte gUnknown_2023E8A +_08016910: .4byte gBattleOutcome _08016914: ldrb r0, [r4] adds r0, r6 @@ -13300,7 +13300,7 @@ _08016926: cmp r0, r1 bcc _080168D8 _08016938: - ldr r0, _08016948 @ =gUnknown_2023E8A + ldr r0, _08016948 @ =gBattleOutcome ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 @@ -13308,7 +13308,7 @@ _08016938: b _080169D8 .align 2, 0 _08016944: .4byte gBattlersCount -_08016948: .4byte gUnknown_2023E8A +_08016948: .4byte gBattleOutcome _0801694C: ldrb r0, [r4] bl GetBattlerSide @@ -13368,7 +13368,7 @@ _080169CC: ldr r0, _080169E0 @ =gBattlersCount ldrb r0, [r0] strb r0, [r5] - ldr r1, _080169E4 @ =gUnknown_2023E8A + ldr r1, _080169E4 @ =gBattleOutcome movs r0, 0x6 _080169D6: strb r0, [r1] @@ -13378,7 +13378,7 @@ _080169D8: bx r0 .align 2, 0 _080169E0: .4byte gBattlersCount -_080169E4: .4byte gUnknown_2023E8A +_080169E4: .4byte gBattleOutcome thumb_func_end sub_80168A4 thumb_func_start sub_80169E8 @@ -13391,10 +13391,10 @@ sub_80169E8: @ 80169E8 adds r0, r1 ldrb r0, [r0] strb r0, [r2] - ldr r0, _08016A50 @ =gUnknown_2022974 + ldr r0, _08016A50 @ =gBattle_BG0_X movs r5, 0 strh r5, [r0] - ldr r0, _08016A54 @ =gUnknown_2022976 + ldr r0, _08016A54 @ =gBattle_BG0_Y strh r5, [r0] ldr r4, _08016A58 @ =gBattleStruct ldr r1, [r4] @@ -13431,8 +13431,8 @@ sub_80169E8: @ 80169E8 _08016A44: .4byte sBattler_AI _08016A48: .4byte gUnknown_2023BDE _08016A4C: .4byte gUnknown_2023BE2 -_08016A50: .4byte gUnknown_2022974 -_08016A54: .4byte gUnknown_2022976 +_08016A50: .4byte gBattle_BG0_X +_08016A54: .4byte gBattle_BG0_Y _08016A58: .4byte gBattleStruct _08016A5C: .4byte gEnemyParty _08016A60: .4byte gBaseStats @@ -13492,10 +13492,10 @@ sub_8016AC0: @ 8016AC0 adds r0, r1 ldrb r0, [r0] strb r0, [r2] - ldr r0, _08016B04 @ =gUnknown_2022974 + ldr r0, _08016B04 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08016B08 @ =gUnknown_2022976 + ldr r0, _08016B08 @ =gBattle_BG0_Y strh r1, [r0] ldr r1, _08016B0C @ =gUnknown_2039994 ldrb r0, [r1] @@ -13516,8 +13516,8 @@ sub_8016AC0: @ 8016AC0 _08016AF8: .4byte sBattler_AI _08016AFC: .4byte gUnknown_2023BDE _08016B00: .4byte gUnknown_2023BE2 -_08016B04: .4byte gUnknown_2022974 -_08016B08: .4byte gUnknown_2022976 +_08016B04: .4byte gBattle_BG0_X +_08016B08: .4byte gBattle_BG0_Y _08016B0C: .4byte gUnknown_2039994 _08016B10: .4byte gUnknown_2023D68 _08016B14: .4byte gUnknown_2023D74 @@ -13535,10 +13535,10 @@ sub_8016B20: @ 8016B20 adds r0, r1 ldrb r0, [r0] strb r0, [r2] - ldr r0, _08016BA8 @ =gUnknown_2022974 + ldr r0, _08016BA8 @ =gBattle_BG0_X movs r7, 0 strh r7, [r0] - ldr r0, _08016BAC @ =gUnknown_2022976 + ldr r0, _08016BAC @ =gBattle_BG0_Y strh r7, [r0] bl Random ldr r6, _08016BB0 @ =gBattleStruct @@ -13592,8 +13592,8 @@ _08016B86: _08016B9C: .4byte sBattler_AI _08016BA0: .4byte gUnknown_2023BDE _08016BA4: .4byte gUnknown_2023BE2 -_08016BA8: .4byte gUnknown_2022974 -_08016BAC: .4byte gUnknown_2022976 +_08016BA8: .4byte gBattle_BG0_X +_08016BAC: .4byte gBattle_BG0_Y _08016BB0: .4byte gBattleStruct _08016BB4: .4byte gUnknown_2023D74 _08016BB8: .4byte gUnknown_81D9A04 @@ -13610,10 +13610,10 @@ sub_8016BC0: @ 8016BC0 adds r0, r1 ldrb r0, [r0] strb r0, [r2] - ldr r0, _08016C48 @ =gUnknown_2022974 + ldr r0, _08016C48 @ =gBattle_BG0_X movs r7, 0 strh r7, [r0] - ldr r0, _08016C4C @ =gUnknown_2022976 + ldr r0, _08016C4C @ =gBattle_BG0_Y strh r7, [r0] bl Random ldr r6, _08016C50 @ =gBattleStruct @@ -13667,8 +13667,8 @@ _08016C26: _08016C3C: .4byte sBattler_AI _08016C40: .4byte gUnknown_2023BDE _08016C44: .4byte gUnknown_2023BE2 -_08016C48: .4byte gUnknown_2022974 -_08016C4C: .4byte gUnknown_2022976 +_08016C48: .4byte gBattle_BG0_X +_08016C4C: .4byte gBattle_BG0_Y _08016C50: .4byte gBattleStruct _08016C54: .4byte gUnknown_2023D74 _08016C58: .4byte gUnknown_81D9A04 @@ -13690,7 +13690,7 @@ HandleAction_SafriZoneRun: @ 8016C60 ldr r0, _08016C94 @ =gBattlersCount ldrb r0, [r0] strb r0, [r4] - ldr r1, _08016C98 @ =gUnknown_2023E8A + ldr r1, _08016C98 @ =gBattleOutcome movs r0, 0x4 strb r0, [r1] pop {r4} @@ -13701,7 +13701,7 @@ _08016C88: .4byte sBattler_AI _08016C8C: .4byte gUnknown_2023BDE _08016C90: .4byte gUnknown_2023BE2 _08016C94: .4byte gBattlersCount -_08016C98: .4byte gUnknown_2023E8A +_08016C98: .4byte gBattleOutcome thumb_func_end HandleAction_SafriZoneRun thumb_func_start HandleAction_Action9 @@ -13713,10 +13713,10 @@ HandleAction_Action9: @ 8016C9C adds r0, r1 ldrb r2, [r0] strb r2, [r3] - ldr r0, _08016CF4 @ =gUnknown_2022974 + ldr r0, _08016CF4 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08016CF8 @ =gUnknown_2022976 + ldr r0, _08016CF8 @ =gBattle_BG0_Y strh r1, [r0] ldr r1, _08016CFC @ =gBattleTextBuff1 movs r0, 0xFD @@ -13747,8 +13747,8 @@ HandleAction_Action9: @ 8016C9C _08016CE8: .4byte sBattler_AI _08016CEC: .4byte gUnknown_2023BDE _08016CF0: .4byte gUnknown_2023BE2 -_08016CF4: .4byte gUnknown_2022974 -_08016CF8: .4byte gUnknown_2022976 +_08016CF4: .4byte gBattle_BG0_X +_08016CF8: .4byte gBattle_BG0_Y _08016CFC: .4byte gBattleTextBuff1 _08016D00: .4byte gBattlerPartyIndexes _08016D04: .4byte gUnknown_2023D74 diff --git a/asm/battle_anim.s b/asm/battle_anim.s index 085b11f09..7e698830f 100644 --- a/asm/battle_anim.s +++ b/asm/battle_anim.s @@ -20,7 +20,7 @@ ClearBattleAnimationVars: @ 80724C0 strb r1, [r0] ldr r0, _08072560 @ =gUnknown_2037EE3 strb r1, [r0] - ldr r0, _08072564 @ =gUnknown_2037EE4 + ldr r0, _08072564 @ =gAnimDisableStructPtr movs r1, 0 str r1, [r0] ldr r0, _08072568 @ =gUnknown_2037EE8 @@ -31,12 +31,12 @@ ClearBattleAnimationVars: @ 80724C0 ldr r0, _08072570 @ =gUnknown_2037EFE strb r2, [r0] ldr r4, _08072574 @ =gUnknown_2037F14 - ldr r5, _08072578 @ =gUnknown_2037F16 + ldr r5, _08072578 @ =gAnimMoveTurn ldr r6, _0807257C @ =gUnknown_2037F17 ldr r7, _08072580 @ =gUnknown_2037F18 - ldr r0, _08072584 @ =gUnknown_2037F1A + ldr r0, _08072584 @ =gBattleAnimAttacker mov r12, r0 - ldr r1, _08072588 @ =gUnknown_2037F1B + ldr r1, _08072588 @ =gBattleAnimTarget mov r8, r1 ldr r0, _0807258C @ =gUnknown_2037F24 mov r9, r0 @@ -52,7 +52,7 @@ _0807250A: subs r2, 0x1 cmp r2, 0 bge _0807250A - ldr r1, _08072598 @ =gUnknown_2037F02 + ldr r1, _08072598 @ =gBattleAnimArgs movs r2, 0 adds r0, r1, 0 adds r0, 0xE @@ -88,20 +88,20 @@ _08072554: .4byte gUnknown_2037EE0 _08072558: .4byte gUnknown_2037EE1 _0807255C: .4byte gUnknown_2037EE2 _08072560: .4byte gUnknown_2037EE3 -_08072564: .4byte gUnknown_2037EE4 +_08072564: .4byte gAnimDisableStructPtr _08072568: .4byte gUnknown_2037EE8 _0807256C: .4byte gUnknown_2037EEC _08072570: .4byte gUnknown_2037EFE _08072574: .4byte gUnknown_2037F14 -_08072578: .4byte gUnknown_2037F16 +_08072578: .4byte gAnimMoveTurn _0807257C: .4byte gUnknown_2037F17 _08072580: .4byte gUnknown_2037F18 -_08072584: .4byte gUnknown_2037F1A -_08072588: .4byte gUnknown_2037F1B +_08072584: .4byte gBattleAnimAttacker +_08072588: .4byte gBattleAnimTarget _0807258C: .4byte gUnknown_2037F24 _08072590: .4byte 0x0000ffff _08072594: .4byte gUnknown_2037EEE -_08072598: .4byte gUnknown_2037F02 +_08072598: .4byte gBattleAnimArgs thumb_func_end ClearBattleAnimationVars thumb_func_start DoMoveAnim @@ -110,11 +110,11 @@ DoMoveAnim: @ 807259C adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r2, _080725C0 @ =gUnknown_2037F1A + ldr r2, _080725C0 @ =gBattleAnimAttacker ldr r0, _080725C4 @ =sBattler_AI ldrb r0, [r0] strb r0, [r2] - ldr r2, _080725C8 @ =gUnknown_2037F1B + ldr r2, _080725C8 @ =gBattleAnimTarget ldr r0, _080725CC @ =gBattlerTarget ldrb r0, [r0] strb r0, [r2] @@ -124,9 +124,9 @@ DoMoveAnim: @ 807259C pop {r0} bx r0 .align 2, 0 -_080725C0: .4byte gUnknown_2037F1A +_080725C0: .4byte gBattleAnimAttacker _080725C4: .4byte sBattler_AI -_080725C8: .4byte gUnknown_2037F1B +_080725C8: .4byte gBattleAnimTarget _080725CC: .4byte gBattlerTarget _080725D0: .4byte gUnknown_81C68F4 thumb_func_end DoMoveAnim @@ -206,7 +206,7 @@ _08072658: ldr r0, _080726D4 @ =gUnknown_2037EDC mov r10, r0 ldr r7, _080726D8 @ =RunAnimScriptCommand - ldr r1, _080726DC @ =gUnknown_2037F02 + ldr r1, _080726DC @ =gBattleAnimArgs movs r2, 0 adds r0, r1, 0 adds r0, 0xE @@ -257,7 +257,7 @@ _080726CC: .4byte gUnknown_2037EE1 _080726D0: .4byte gUnknown_2037EE0 _080726D4: .4byte gUnknown_2037EDC _080726D8: .4byte RunAnimScriptCommand -_080726DC: .4byte gUnknown_2037F02 +_080726DC: .4byte gBattleAnimArgs _080726E0: .4byte 0x0000ffff _080726E4: .4byte gUnknown_2037EEE _080726E8: .4byte gUnknown_81C68EC @@ -581,7 +581,7 @@ ScriptCmd_createsprite: @ 807291C cmp r0, 0 beq _0807296C adds r6, r5, 0 - ldr r5, _08072988 @ =gUnknown_2037F02 + ldr r5, _08072988 @ =gBattleAnimArgs adds r3, r0, 0 _08072954: ldr r2, [r6] @@ -610,16 +610,16 @@ _0807296C: b _0807298E .align 2, 0 _08072984: .4byte gUnknown_2037ED4 -_08072988: .4byte gUnknown_2037F02 +_08072988: .4byte gBattleAnimArgs _0807298C: negs r0, r4 _0807298E: lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _08072998 @ =gUnknown_2037F1B + ldr r0, _08072998 @ =gBattleAnimTarget b _080729AE .align 2, 0 -_08072998: .4byte gUnknown_2037F1B +_08072998: .4byte gBattleAnimTarget _0807299C: cmp r4, 0x3F bls _080729A6 @@ -631,7 +631,7 @@ _080729A6: _080729A8: lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _08072A04 @ =gUnknown_2037F1A + ldr r0, _08072A04 @ =gBattleAnimAttacker _080729AE: ldrb r0, [r0] bl sub_807685C @@ -648,7 +648,7 @@ _080729AE: bgt _080729CC movs r6, 0x3 _080729CC: - ldr r5, _08072A08 @ =gUnknown_2037F1B + ldr r5, _08072A08 @ =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 bl sub_8074480 @@ -674,8 +674,8 @@ _080729CC: pop {r0} bx r0 .align 2, 0 -_08072A04: .4byte gUnknown_2037F1A -_08072A08: .4byte gUnknown_2037F1B +_08072A04: .4byte gBattleAnimAttacker +_08072A08: .4byte gBattleAnimTarget _08072A0C: .4byte gUnknown_2037EE2 thumb_func_end ScriptCmd_createsprite @@ -707,7 +707,7 @@ ScriptCmd_createvisualtask: @ 8072A10 cmp r0, 0 beq _08072A60 adds r5, r4, 0 - ldr r4, _08072A84 @ =gUnknown_2037F02 + ldr r4, _08072A84 @ =gBattleAnimArgs adds r3, r0, 0 _08072A48: ldr r2, [r5] @@ -738,7 +738,7 @@ _08072A60: bx r0 .align 2, 0 _08072A80: .4byte gUnknown_2037ED4 -_08072A84: .4byte gUnknown_2037F02 +_08072A84: .4byte gBattleAnimArgs _08072A88: .4byte gUnknown_2037EE2 thumb_func_end ScriptCmd_createvisualtask @@ -980,12 +980,12 @@ _08072C52: cmp r6, 0x2 bne _08072C60 _08072C56: - ldr r0, _08072C5C @ =gUnknown_2037F1A + ldr r0, _08072C5C @ =gBattleAnimAttacker b _08072C62 .align 2, 0 -_08072C5C: .4byte gUnknown_2037F1A +_08072C5C: .4byte gBattleAnimAttacker _08072C60: - ldr r0, _08072CD8 @ =gUnknown_2037F1B + ldr r0, _08072CD8 @ =gBattleAnimTarget _08072C62: ldrb r5, [r0] adds r0, r5, 0 @@ -1008,7 +1008,7 @@ _08072C88: adds r0, r5, 0 adds r1, r7, 0 bl sub_8072E48 - ldr r0, _08072CDC @ =gUnknown_2023D44 + ldr r0, _08072CDC @ =gBattlerSpriteIds adds r0, r5, r0 ldrb r4, [r0] ldr r0, _08072CE0 @ =task_pA_ma0A_obj_to_bg_pal @@ -1037,24 +1037,24 @@ _08072C88: strh r1, [r2, 0xC] cmp r7, 0 bne _08072CF4 - ldr r0, _08072CEC @ =gUnknown_2022978 + ldr r0, _08072CEC @ =gBattle_BG1_X ldrh r0, [r0] strh r0, [r2, 0xE] - ldr r0, _08072CF0 @ =gUnknown_202297A + ldr r0, _08072CF0 @ =gBattle_BG1_Y b _08072CFC .align 2, 0 -_08072CD8: .4byte gUnknown_2037F1B -_08072CDC: .4byte gUnknown_2023D44 +_08072CD8: .4byte gBattleAnimTarget +_08072CDC: .4byte gBattlerSpriteIds _08072CE0: .4byte task_pA_ma0A_obj_to_bg_pal _08072CE4: .4byte gTasks _08072CE8: .4byte gSprites -_08072CEC: .4byte gUnknown_2022978 -_08072CF0: .4byte gUnknown_202297A +_08072CEC: .4byte gBattle_BG1_X +_08072CF0: .4byte gBattle_BG1_Y _08072CF4: - ldr r0, _08072D8C @ =gUnknown_202297C + ldr r0, _08072D8C @ =gBattle_BG2_X ldrh r0, [r0] strh r0, [r2, 0xE] - ldr r0, _08072D90 @ =gUnknown_202297E + ldr r0, _08072D90 @ =gBattle_BG2_Y _08072CFC: ldrh r0, [r0] strh r0, [r2, 0x10] @@ -1092,7 +1092,7 @@ _08072D3E: adds r0, r5, 0 adds r1, r7, 0 bl sub_8072E48 - ldr r0, _08072D9C @ =gUnknown_2023D44 + ldr r0, _08072D9C @ =gBattlerSpriteIds adds r0, r5, r0 ldrb r4, [r0] ldr r0, _08072DA0 @ =task_pA_ma0A_obj_to_bg_pal @@ -1121,26 +1121,26 @@ _08072D3E: strh r1, [r2, 0xC] cmp r7, 0 bne _08072DB0 - ldr r0, _08072DA8 @ =gUnknown_2022978 + ldr r0, _08072DA8 @ =gBattle_BG1_X ldrh r0, [r0] strh r0, [r2, 0xE] - ldr r0, _08072DAC @ =gUnknown_202297A + ldr r0, _08072DAC @ =gBattle_BG1_Y b _08072DB8 .align 2, 0 -_08072D8C: .4byte gUnknown_202297C -_08072D90: .4byte gUnknown_202297E +_08072D8C: .4byte gBattle_BG2_X +_08072D90: .4byte gBattle_BG2_Y _08072D94: .4byte gTasks _08072D98: .4byte gUnknown_2037F14 -_08072D9C: .4byte gUnknown_2023D44 +_08072D9C: .4byte gBattlerSpriteIds _08072DA0: .4byte task_pA_ma0A_obj_to_bg_pal _08072DA4: .4byte gSprites -_08072DA8: .4byte gUnknown_2022978 -_08072DAC: .4byte gUnknown_202297A +_08072DA8: .4byte gBattle_BG1_X +_08072DAC: .4byte gBattle_BG1_Y _08072DB0: - ldr r0, _08072DDC @ =gUnknown_202297C + ldr r0, _08072DDC @ =gBattle_BG2_X ldrh r0, [r0] strh r0, [r2, 0xE] - ldr r0, _08072DE0 @ =gUnknown_202297E + ldr r0, _08072DE0 @ =gBattle_BG2_Y _08072DB8: ldrh r0, [r0] strh r0, [r2, 0x10] @@ -1162,8 +1162,8 @@ _08072DCE: pop {r0} bx r0 .align 2, 0 -_08072DDC: .4byte gUnknown_202297C -_08072DE0: .4byte gUnknown_202297E +_08072DDC: .4byte gBattle_BG2_X +_08072DE0: .4byte gBattle_BG2_Y _08072DE4: .4byte gTasks _08072DE8: .4byte gUnknown_2037F14 _08072DEC: .4byte gUnknown_2037ED4 @@ -1190,7 +1190,7 @@ sub_8072DF0: @ 8072DF0 cmp r0, 0 beq _08072E30 ldr r2, _08072E38 @ =gSprites - ldr r0, _08072E3C @ =gUnknown_2023D44 + ldr r0, _08072E3C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1208,7 +1208,7 @@ _08072E30: .align 2, 0 _08072E34: .4byte gUnknown_2024018 _08072E38: .4byte gSprites -_08072E3C: .4byte gUnknown_2023D44 +_08072E3C: .4byte gBattlerSpriteIds _08072E40: movs r0, 0 _08072E42: @@ -1268,10 +1268,10 @@ _08072E5E: movs r1, 0x1 movs r2, 0 bl SetAnimBgAttribute - ldr r2, _08072F6C @ =gUnknown_2023D44 + ldr r2, _08072F6C @ =gBattlerSpriteIds adds r2, r7, r2 ldrb r0, [r2] - ldr r5, _08072F70 @ =gUnknown_2022978 + ldr r5, _08072F70 @ =gBattle_BG1_X ldr r3, _08072F74 @ =gSprites lsls r1, r0, 4 adds r1, r0 @@ -1283,7 +1283,7 @@ _08072E5E: negs r0, r0 adds r0, 0x20 strh r0, [r5] - ldr r4, _08072F78 @ =gUnknown_202297A + ldr r4, _08072F78 @ =gBattle_BG1_Y ldrh r0, [r1, 0x26] ldrh r1, [r1, 0x22] adds r0, r1 @@ -1349,10 +1349,10 @@ _08072F5C: .4byte 0x06004000 _08072F60: .4byte 0x0600e000 _08072F64: .4byte 0x01000800 _08072F68: .4byte 0x01000400 -_08072F6C: .4byte gUnknown_2023D44 -_08072F70: .4byte gUnknown_2022978 +_08072F6C: .4byte gBattlerSpriteIds +_08072F70: .4byte gBattle_BG1_X _08072F74: .4byte gSprites -_08072F78: .4byte gUnknown_202297A +_08072F78: .4byte gBattle_BG1_Y _08072F7C: .4byte gPlttBufferUnfaded + 0x200 _08072F80: .4byte 0x04000008 _08072F84: @@ -1401,10 +1401,10 @@ _08072F84: movs r1, 0x1 movs r2, 0 bl SetAnimBgAttribute - ldr r2, _080730A4 @ =gUnknown_2023D44 + ldr r2, _080730A4 @ =gBattlerSpriteIds adds r2, r7, r2 ldrb r0, [r2] - ldr r5, _080730A8 @ =gUnknown_202297C + ldr r5, _080730A8 @ =gBattle_BG2_X ldr r3, _080730AC @ =gSprites lsls r1, r0, 4 adds r1, r0 @@ -1416,7 +1416,7 @@ _08072F84: negs r0, r0 adds r0, 0x20 strh r0, [r5] - ldr r4, _080730B0 @ =gUnknown_202297E + ldr r4, _080730B0 @ =gBattle_BG2_Y ldrh r0, [r1, 0x26] ldrh r1, [r1, 0x22] adds r0, r1 @@ -1483,10 +1483,10 @@ _08073094: .4byte 0x06006000 _08073098: .4byte 0x0600f000 _0807309C: .4byte 0x01000800 _080730A0: .4byte 0x01000400 -_080730A4: .4byte gUnknown_2023D44 -_080730A8: .4byte gUnknown_202297C +_080730A4: .4byte gBattlerSpriteIds +_080730A8: .4byte gBattle_BG2_X _080730AC: .4byte gSprites -_080730B0: .4byte gUnknown_202297E +_080730B0: .4byte gBattle_BG2_Y _080730B4: .4byte gPlttBufferUnfaded + 0x200 _080730B8: .4byte 0x05000120 _080730BC: .4byte 0x04000008 @@ -1563,21 +1563,21 @@ sub_8073128: @ 8073128 bne _08073154 movs r0, 0x1 bl sub_8075358 - ldr r0, _0807314C @ =gUnknown_2022978 + ldr r0, _0807314C @ =gBattle_BG1_X strh r4, [r0] - ldr r0, _08073150 @ =gUnknown_202297A + ldr r0, _08073150 @ =gBattle_BG1_Y strh r4, [r0] b _08073164 .align 2, 0 -_0807314C: .4byte gUnknown_2022978 -_08073150: .4byte gUnknown_202297A +_0807314C: .4byte gBattle_BG1_X +_08073150: .4byte gBattle_BG1_Y _08073154: movs r0, 0x2 bl sub_8075358 - ldr r0, _0807316C @ =gUnknown_202297C + ldr r0, _0807316C @ =gBattle_BG2_X movs r1, 0 strh r1, [r0] - ldr r0, _08073170 @ =gUnknown_202297E + ldr r0, _08073170 @ =gBattle_BG2_Y strh r1, [r0] _08073164: add sp, 0x10 @@ -1585,8 +1585,8 @@ _08073164: pop {r0} bx r0 .align 2, 0 -_0807316C: .4byte gUnknown_202297C -_08073170: .4byte gUnknown_202297E +_0807316C: .4byte gBattle_BG2_X +_08073170: .4byte gBattle_BG2_Y thumb_func_end sub_8073128 thumb_func_start task_pA_ma0A_obj_to_bg_pal @@ -1627,13 +1627,13 @@ task_pA_ma0A_obj_to_bg_pal: @ 8073174 ldrsh r0, [r5, r1] cmp r0, 0 bne _0807320C - ldr r1, _080731F8 @ =gUnknown_2022978 + ldr r1, _080731F8 @ =gBattle_BG1_X lsls r0, r3, 16 asrs r0, 16 ldrh r3, [r5, 0xE] adds r0, r3 strh r0, [r1] - ldr r1, _080731FC @ =gUnknown_202297A + ldr r1, _080731FC @ =gBattle_BG1_Y lsls r0, r2, 16 asrs r0, 16 ldrh r5, [r5, 0x10] @@ -1654,19 +1654,19 @@ task_pA_ma0A_obj_to_bg_pal: @ 8073174 .align 2, 0 _080731F0: .4byte gTasks _080731F4: .4byte gSprites -_080731F8: .4byte gUnknown_2022978 -_080731FC: .4byte gUnknown_202297A +_080731F8: .4byte gBattle_BG1_X +_080731FC: .4byte gBattle_BG1_Y _08073200: .4byte gPlttBufferFaded + 0x200 _08073204: .4byte 0xfffffe00 _08073208: .4byte 0x04000008 _0807320C: - ldr r1, _0807323C @ =gUnknown_202297C + ldr r1, _0807323C @ =gBattle_BG2_X lsls r0, r3, 16 asrs r0, 16 ldrh r3, [r5, 0xE] adds r0, r3 strh r0, [r1] - ldr r1, _08073240 @ =gUnknown_202297E + ldr r1, _08073240 @ =gBattle_BG2_Y lsls r0, r2, 16 asrs r0, 16 ldrh r5, [r5, 0x10] @@ -1684,8 +1684,8 @@ _08073232: pop {r0} bx r0 .align 2, 0 -_0807323C: .4byte gUnknown_202297C -_08073240: .4byte gUnknown_202297E +_0807323C: .4byte gBattle_BG2_X +_08073240: .4byte gBattle_BG2_Y _08073244: .4byte gPlttBufferFaded + 0x200 _08073248: .4byte 0x04000008 thumb_func_end task_pA_ma0A_obj_to_bg_pal @@ -1715,12 +1715,12 @@ _0807326E: cmp r4, 0x2 bne _0807327C _08073272: - ldr r0, _08073278 @ =gUnknown_2037F1A + ldr r0, _08073278 @ =gBattleAnimAttacker b _0807327E .align 2, 0 -_08073278: .4byte gUnknown_2037F1A +_08073278: .4byte gBattleAnimAttacker _0807327C: - ldr r0, _080732D4 @ =gUnknown_2037F1B + ldr r0, _080732D4 @ =gBattleAnimTarget _0807327E: ldrb r5, [r0] ldr r3, _080732D8 @ =gUnknown_2037F14 @@ -1728,7 +1728,7 @@ _0807327E: cmp r0, 0xFF beq _080732A4 ldr r2, _080732DC @ =gSprites - ldr r0, _080732E0 @ =gUnknown_2023D44 + ldr r0, _080732E0 @ =gBattlerSpriteIds adds r0, r5, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1748,7 +1748,7 @@ _080732A4: cmp r0, 0xFF beq _080732E4 ldr r3, _080732DC @ =gSprites - ldr r2, _080732E0 @ =gUnknown_2023D44 + ldr r2, _080732E0 @ =gBattlerSpriteIds movs r1, 0x2 adds r0, r5, 0 eors r0, r1 @@ -1766,10 +1766,10 @@ _080732A4: strb r1, [r0] b _080732E6 .align 2, 0 -_080732D4: .4byte gUnknown_2037F1B +_080732D4: .4byte gBattleAnimTarget _080732D8: .4byte gUnknown_2037F14 _080732DC: .4byte gSprites -_080732E0: .4byte gUnknown_2023D44 +_080732E0: .4byte gBattlerSpriteIds _080732E4: movs r4, 0 _080732E6: @@ -1888,12 +1888,12 @@ _080733BE: cmp r5, 0x2 bne _080733CC _080733C2: - ldr r0, _080733C8 @ =gUnknown_2037F1A + ldr r0, _080733C8 @ =gBattleAnimAttacker b _080733CE .align 2, 0 -_080733C8: .4byte gUnknown_2037F1A +_080733C8: .4byte gBattleAnimAttacker _080733CC: - ldr r0, _08073474 @ =gUnknown_2037F1B + ldr r0, _08073474 @ =gBattleAnimTarget _080733CE: ldrb r4, [r0] adds r0, r4, 0 @@ -1916,7 +1916,7 @@ _080733F4: adds r0, r4, 0 bl sub_8072E48 ldr r2, _08073478 @ =gSprites - ldr r0, _0807347C @ =gUnknown_2023D44 + ldr r0, _0807347C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1954,7 +1954,7 @@ _08073442: adds r0, r4, 0 bl sub_8072E48 ldr r2, _08073478 @ =gSprites - ldr r0, _0807347C @ =gUnknown_2023D44 + ldr r0, _0807347C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1976,9 +1976,9 @@ _08073464: pop {r0} bx r0 .align 2, 0 -_08073474: .4byte gUnknown_2037F1B +_08073474: .4byte gBattleAnimTarget _08073478: .4byte gSprites -_0807347C: .4byte gUnknown_2023D44 +_0807347C: .4byte gBattlerSpriteIds _08073480: .4byte gUnknown_2037ED4 thumb_func_end sub_807339C @@ -2007,12 +2007,12 @@ _080734A6: cmp r5, 0x2 bne _080734B4 _080734AA: - ldr r0, _080734B0 @ =gUnknown_2037F1A + ldr r0, _080734B0 @ =gBattleAnimAttacker b _080734B6 .align 2, 0 -_080734B0: .4byte gUnknown_2037F1A +_080734B0: .4byte gBattleAnimAttacker _080734B4: - ldr r0, _08073514 @ =gUnknown_2037F1B + ldr r0, _08073514 @ =gBattleAnimTarget _080734B6: ldrb r6, [r0] adds r0, r6, 0 @@ -2021,7 +2021,7 @@ _080734B6: cmp r0, 0 beq _080734E0 ldr r2, _08073518 @ =gSprites - ldr r0, _0807351C @ =gUnknown_2023D44 + ldr r0, _0807351C @ =gBattlerSpriteIds adds r0, r6, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -2046,7 +2046,7 @@ _080734E0: cmp r0, 0 beq _08073520 ldr r2, _08073518 @ =gSprites - ldr r0, _0807351C @ =gUnknown_2023D44 + ldr r0, _0807351C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -2061,9 +2061,9 @@ _080734E0: strb r1, [r0] b _08073522 .align 2, 0 -_08073514: .4byte gUnknown_2037F1B +_08073514: .4byte gBattleAnimTarget _08073518: .4byte gSprites -_0807351C: .4byte gUnknown_2023D44 +_0807351C: .4byte gBattlerSpriteIds _08073520: movs r5, 0 _08073522: @@ -2290,7 +2290,7 @@ ScriptCmd_setarg: @ 80736AC orrs r4, r0 adds r1, 0x4 str r1, [r5] - ldr r0, _080736DC @ =gUnknown_2037F02 + ldr r0, _080736DC @ =gBattleAnimArgs lsls r2, 1 adds r2, r0 strh r4, [r2] @@ -2299,7 +2299,7 @@ ScriptCmd_setarg: @ 80736AC bx r0 .align 2, 0 _080736D8: .4byte gUnknown_2037ED4 -_080736DC: .4byte gUnknown_2037F02 +_080736DC: .4byte gBattleAnimArgs thumb_func_end ScriptCmd_setarg thumb_func_start ScriptCmd_choosetwoturnanim @@ -2309,7 +2309,7 @@ ScriptCmd_choosetwoturnanim: @ 80736E0 ldr r2, [r3] adds r0, r2, 0x1 str r0, [r3] - ldr r0, _0807371C @ =gUnknown_2037F16 + ldr r0, _0807371C @ =gAnimMoveTurn ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -2334,7 +2334,7 @@ _080736FA: bx r0 .align 2, 0 _08073718: .4byte gUnknown_2037ED4 -_0807371C: .4byte gUnknown_2037F16 +_0807371C: .4byte gAnimMoveTurn thumb_func_end ScriptCmd_choosetwoturnanim thumb_func_start ScriptCmd_jumpifmoveturn @@ -2347,7 +2347,7 @@ ScriptCmd_jumpifmoveturn: @ 8073720 ldrb r1, [r4, 0x1] adds r3, r2, 0x1 str r3, [r5] - ldr r0, _08073754 @ =gUnknown_2037F16 + ldr r0, _08073754 @ =gAnimMoveTurn ldrb r0, [r0] cmp r1, r0 bne _08073758 @@ -2365,7 +2365,7 @@ ScriptCmd_jumpifmoveturn: @ 8073720 b _0807375C .align 2, 0 _08073750: .4byte gUnknown_2037ED4 -_08073754: .4byte gUnknown_2037F16 +_08073754: .4byte gAnimMoveTurn _08073758: adds r0, r4, 0x6 str r0, [r5] @@ -2469,7 +2469,7 @@ sub_80737E4: @ 80737E4 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _08073828 @ =gUnknown_2037F1B + ldr r0, _08073828 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2485,7 +2485,7 @@ sub_80737E4: @ 80737E4 .align 2, 0 _08073820: .4byte gUnknown_2037ED4 _08073824: .4byte sub_8073850 -_08073828: .4byte gUnknown_2037F1B +_08073828: .4byte gBattleAnimTarget _0807382C: .4byte gTasks _08073830: ldr r1, _08073848 @ =gTasks @@ -2774,7 +2774,7 @@ sub_8073A44: @ 8073A44 lsrs r4, r0, 24 ldr r0, _08073A78 @ =gUnknown_2024018 ldr r1, [r0] - ldr r0, _08073A7C @ =gUnknown_2037F1A + ldr r0, _08073A7C @ =gBattleAnimAttacker ldrb r2, [r0] ldr r1, [r1, 0x4] lsls r0, r2, 1 @@ -2796,14 +2796,14 @@ sub_8073A44: @ 8073A44 b _08073AE6 .align 2, 0 _08073A78: .4byte gUnknown_2024018 -_08073A7C: .4byte gUnknown_2037F1A +_08073A7C: .4byte gBattleAnimAttacker _08073A80: adds r0, r2, 0 bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08073ABA - ldr r0, _08073AA8 @ =gUnknown_2037F1B + ldr r0, _08073AA8 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2816,7 +2816,7 @@ _08073A80: movs r4, 0xC0 b _08073AE6 .align 2, 0 -_08073AA8: .4byte gUnknown_2037F1B +_08073AA8: .4byte gBattleAnimTarget _08073AAC: movs r0, 0x40 negs r0, r0 @@ -2826,7 +2826,7 @@ _08073AAC: lsls r0, 24 b _08073AE4 _08073ABA: - ldr r0, _08073ADC @ =gUnknown_2037F1B + ldr r0, _08073ADC @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2842,7 +2842,7 @@ _08073ABA: movs r4, 0x3F b _08073AE6 .align 2, 0 -_08073ADC: .4byte gUnknown_2037F1B +_08073ADC: .4byte gBattleAnimTarget _08073AE0: lsls r0, r4, 24 negs r0, r0 @@ -2876,7 +2876,7 @@ sub_8073B08: @ 8073B08 lsrs r4, r0, 24 ldr r0, _08073B3C @ =gUnknown_2024018 ldr r1, [r0] - ldr r0, _08073B40 @ =gUnknown_2037F1A + ldr r0, _08073B40 @ =gBattleAnimAttacker ldrb r2, [r0] ldr r1, [r1, 0x4] lsls r0, r2, 1 @@ -2898,7 +2898,7 @@ sub_8073B08: @ 8073B08 b _08073B56 .align 2, 0 _08073B3C: .4byte gUnknown_2024018 -_08073B40: .4byte gUnknown_2037F1A +_08073B40: .4byte gBattleAnimAttacker _08073B44: adds r0, r2, 0 bl GetBattlerSide @@ -3597,7 +3597,7 @@ ScriptCmd_createsoundtask: @ 807406C cmp r0, 0 beq _080740B6 adds r5, r4, 0 - ldr r4, _080740D8 @ =gUnknown_2037F02 + ldr r4, _080740D8 @ =gBattleAnimArgs adds r3, r0, 0 _0807409E: ldr r2, [r5] @@ -3628,7 +3628,7 @@ _080740B6: bx r0 .align 2, 0 _080740D4: .4byte gUnknown_2037ED4 -_080740D8: .4byte gUnknown_2037F02 +_080740D8: .4byte gBattleAnimArgs _080740DC: .4byte gUnknown_2037EE3 thumb_func_end ScriptCmd_createsoundtask @@ -3707,7 +3707,7 @@ ScriptCmd_jumpargeq: @ 8074164 ldrb r0, [r3, 0x2] lsls r0, 8 orrs r1, r0 - ldr r0, _080741A8 @ =gUnknown_2037F02 + ldr r0, _080741A8 @ =gBattleAnimArgs lsls r2, 1 adds r2, r0 lsls r1, 16 @@ -3730,7 +3730,7 @@ ScriptCmd_jumpargeq: @ 8074164 b _080741B2 .align 2, 0 _080741A4: .4byte gUnknown_2037ED4 -_080741A8: .4byte gUnknown_2037F02 +_080741A8: .4byte gBattleAnimArgs _080741AC: adds r0, r4, 0 adds r0, 0x8 @@ -3762,13 +3762,13 @@ sub_80741C8: @ 80741C8 str r1, [r0] cmp r2, 0 beq _080741E4 - ldr r0, _080741E0 @ =gUnknown_2037F1B + ldr r0, _080741E0 @ =gBattleAnimTarget b _080741E6 .align 2, 0 _080741DC: .4byte gUnknown_2037ED4 -_080741E0: .4byte gUnknown_2037F1B +_080741E0: .4byte gBattleAnimTarget _080741E4: - ldr r0, _08074210 @ =gUnknown_2037F1A + ldr r0, _08074210 @ =gBattleAnimAttacker _080741E6: ldrb r0, [r0] bl GetBattlerPosition @@ -3791,7 +3791,7 @@ _0807420C: pop {r0} bx r0 .align 2, 0 -_08074210: .4byte gUnknown_2037F1A +_08074210: .4byte gBattleAnimAttacker thumb_func_end sub_80741C8 thumb_func_start sub_8074214 @@ -3823,11 +3823,11 @@ sub_807423C: @ 807423C ldrb r6, [r0, 0x1] adds r0, 0x2 str r0, [r1] - ldr r7, _08074270 @ =gUnknown_2037F1A + ldr r7, _08074270 @ =gBattleAnimAttacker ldrb r0, [r7] bl GetBattlerSide adds r4, r0, 0 - ldr r5, _08074274 @ =gUnknown_2037F1B + ldr r5, _08074274 @ =gBattleAnimTarget ldrb r0, [r5] bl GetBattlerSide lsls r4, 24 @@ -3840,8 +3840,8 @@ sub_807423C: @ 807423C b _0807427A .align 2, 0 _0807426C: .4byte gUnknown_2037ED4 -_08074270: .4byte gUnknown_2037F1A -_08074274: .4byte gUnknown_2037F1B +_08074270: .4byte gBattleAnimAttacker +_08074274: .4byte gBattleAnimTarget _08074278: ldrb r0, [r7] _0807427A: @@ -3946,11 +3946,11 @@ sub_8074320: @ 8074320 lsls r0, 24 cmp r0, 0 beq _080743C2 - ldr r6, _08074368 @ =gUnknown_2037F1A + ldr r6, _08074368 @ =gBattleAnimAttacker ldrb r0, [r6] bl GetBattlerSide adds r4, r0, 0 - ldr r5, _0807436C @ =gUnknown_2037F1B + ldr r5, _0807436C @ =gBattleAnimTarget ldrb r0, [r5] bl GetBattlerSide lsls r4, 24 @@ -3967,8 +3967,8 @@ sub_8074320: @ 8074320 b _0807437C .align 2, 0 _08074364: .4byte gUnknown_2037ED4 -_08074368: .4byte gUnknown_2037F1A -_0807436C: .4byte gUnknown_2037F1B +_08074368: .4byte gBattleAnimAttacker +_0807436C: .4byte gBattleAnimTarget _08074370: ldrb r0, [r5] bl sub_80768B0 @@ -4028,11 +4028,11 @@ sub_80743C8: @ 80743C8 lsls r0, 24 cmp r0, 0 beq _0807444C - ldr r6, _08074410 @ =gUnknown_2037F1A + ldr r6, _08074410 @ =gBattleAnimAttacker ldrb r0, [r6] bl GetBattlerSide adds r4, r0, 0 - ldr r5, _08074414 @ =gUnknown_2037F1B + ldr r5, _08074414 @ =gBattleAnimTarget ldrb r0, [r5] bl GetBattlerSide lsls r4, 24 @@ -4049,8 +4049,8 @@ sub_80743C8: @ 80743C8 b _08074424 .align 2, 0 _0807440C: .4byte gUnknown_2037ED4 -_08074410: .4byte gUnknown_2037F1A -_08074414: .4byte gUnknown_2037F1B +_08074410: .4byte gBattleAnimAttacker +_08074414: .4byte gBattleAnimTarget _08074418: ldrb r0, [r5] bl sub_80768B0 diff --git a/asm/battle_anim_80989F8.s b/asm/battle_anim_80989F8.s deleted file mode 100644 index 41dc60f9f..000000000 --- a/asm/battle_anim_80989F8.s +++ /dev/null @@ -1,2588 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80989F8 -sub_80989F8: @ 80989F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _08098A18 @ =gUnknown_2037F02 - ldrb r0, [r4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _08098A1C - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _08098A58 - .align 2, 0 -_08098A18: .4byte gUnknown_2037F02 -_08098A1C: - ldr r1, _08098A60 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x24] - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x26] - ldr r1, _08098A64 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x8] - ldrh r1, [r4, 0x6] - strh r1, [r0, 0xA] - ldrh r1, [r4, 0x8] - strh r1, [r0, 0xC] - ldrh r1, [r4, 0x8] - strh r1, [r0, 0xE] - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x10] - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x12] - ldr r1, _08098A68 @ =sub_8098A6C - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 -_08098A58: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08098A60: .4byte gSprites -_08098A64: .4byte gTasks -_08098A68: .4byte sub_8098A6C - thumb_func_end sub_80989F8 - - thumb_func_start sub_8098A6C -sub_8098A6C: @ 8098A6C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08098AA8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0xE] - movs r2, 0xE - ldrsh r5, [r3, r2] - adds r7, r1, 0 - cmp r5, 0 - bne _08098B12 - ldr r2, _08098AAC @ =gSprites - movs r6, 0x8 - ldrsh r1, [r3, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - movs r6, 0x24 - ldrsh r0, [r1, r6] - adds r6, r2, 0 - cmp r0, 0 - bne _08098AB0 - ldrh r0, [r3, 0x10] - strh r0, [r1, 0x24] - b _08098AB2 - .align 2, 0 -_08098AA8: .4byte gTasks -_08098AAC: .4byte gSprites -_08098AB0: - strh r5, [r1, 0x24] -_08098AB2: - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r7 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - movs r5, 0x26 - ldrsh r0, [r1, r5] - cmp r0, 0 - bne _08098AD2 - ldrh r0, [r3, 0x12] - b _08098AD4 -_08098AD2: - movs r0, 0 -_08098AD4: - strh r0, [r1, 0x26] - adds r0, r2, r4 - lsls r0, 3 - adds r2, r0, r7 - ldrh r0, [r2, 0xC] - strh r0, [r2, 0xE] - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _08098B16 - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r3, [r0, 0x24] - movs r5, 0x8 - ldrsh r1, [r2, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r3, [r0, 0x26] - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _08098B16 -_08098B12: - subs r0, 0x1 - strh r0, [r3, 0xE] -_08098B16: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8098A6C - - thumb_func_start sub_8098B1C -sub_8098B1C: @ 8098B1C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, _08098B44 @ =gUnknown_2037F02 - ldrh r0, [r2] - movs r3, 0 - ldrsh r1, [r2, r3] - cmp r1, 0x3 - bgt _08098B48 - lsls r0, 24 - lsrs r0, 24 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - bne _08098B9E - b _08098BA2 - .align 2, 0 -_08098B44: .4byte gUnknown_2037F02 -_08098B48: - cmp r1, 0x8 - beq _08098B94 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x5 - beq _08098B68 - cmp r0, 0x5 - bgt _08098B5E - cmp r0, 0x4 - beq _08098B64 - b _08098B70 -_08098B5E: - cmp r0, 0x6 - beq _08098B6C - b _08098B70 -_08098B64: - movs r0, 0 - b _08098B72 -_08098B68: - movs r0, 0x2 - b _08098B72 -_08098B6C: - movs r0, 0x1 - b _08098B72 -_08098B70: - movs r0, 0x3 -_08098B72: - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - bne _08098B88 - movs r6, 0x1 -_08098B88: - ldr r0, _08098B90 @ =gUnknown_2023D44 - adds r0, r4, r0 - b _08098B9C - .align 2, 0 -_08098B90: .4byte gUnknown_2023D44 -_08098B94: - ldr r1, _08098BAC @ =gUnknown_2023D44 - ldr r0, _08098BB0 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r0, r1 -_08098B9C: - ldrb r3, [r0] -_08098B9E: - cmp r6, 0 - beq _08098BB4 -_08098BA2: - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _08098BF2 - .align 2, 0 -_08098BAC: .4byte gUnknown_2023D44 -_08098BB0: .4byte gUnknown_2037F1A -_08098BB4: - ldr r1, _08098BF8 @ =gSprites - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldr r2, _08098BFC @ =gUnknown_2037F02 - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x24] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x26] - ldr r1, _08098C00 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x8] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0xE] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x10] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x12] - ldr r1, _08098C04 @ =sub_8098C08 - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 -_08098BF2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098BF8: .4byte gSprites -_08098BFC: .4byte gUnknown_2037F02 -_08098C00: .4byte gTasks -_08098C04: .4byte sub_8098C08 - thumb_func_end sub_8098B1C - - thumb_func_start sub_8098C08 -sub_8098C08: @ 8098C08 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08098C4C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r1 - ldrh r2, [r3, 0xE] - movs r4, 0xE - ldrsh r0, [r3, r4] - mov r12, r1 - cmp r0, 0 - bne _08098CC0 - ldr r2, _08098C50 @ =gSprites - movs r7, 0x8 - ldrsh r1, [r3, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r0, 0x24 - ldrsh r1, [r4, r0] - ldrh r5, [r3, 0x10] - movs r7, 0x10 - ldrsh r0, [r3, r7] - adds r7, r2, 0 - cmp r1, r0 - bne _08098C54 - negs r0, r5 - strh r0, [r4, 0x24] - b _08098C56 - .align 2, 0 -_08098C4C: .4byte gTasks -_08098C50: .4byte gSprites -_08098C54: - strh r5, [r4, 0x24] -_08098C56: - lsls r3, r6, 2 - adds r1, r3, r6 - lsls r1, 3 - add r1, r12 - movs r0, 0x8 - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r7 - movs r0, 0x26 - ldrsh r2, [r4, r0] - mov r8, r2 - ldrh r5, [r1, 0x12] - movs r2, 0x12 - ldrsh r0, [r1, r2] - cmp r8, r0 - bne _08098C80 - negs r0, r5 - strh r0, [r4, 0x26] - b _08098C82 -_08098C80: - strh r5, [r4, 0x26] -_08098C82: - adds r0, r3, r6 - lsls r0, 3 - mov r4, r12 - adds r3, r0, r4 - ldrh r0, [r3, 0xC] - strh r0, [r3, 0xE] - ldrh r0, [r3, 0xA] - subs r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _08098CC4 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x24] - movs r4, 0x8 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _08098CC4 -_08098CC0: - subs r0, r2, 0x1 - strh r0, [r3, 0xE] -_08098CC4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8098C08 - - thumb_func_start sub_8098CD0 -sub_8098CD0: @ 8098CD0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _08098CF0 @ =gUnknown_2037F02 - ldrb r0, [r4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - bne _08098CF4 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _08098D42 - .align 2, 0 -_08098CF0: .4byte gUnknown_2037F02 -_08098CF4: - ldr r0, _08098D48 @ =gSprites - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x2] - ldrh r2, [r1, 0x24] - adds r0, r2 - movs r2, 0 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x4] - ldrh r6, [r1, 0x26] - adds r0, r6 - strh r0, [r1, 0x26] - ldr r0, _08098D4C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - strh r3, [r1, 0x8] - strh r2, [r1, 0xA] - ldrh r0, [r4, 0x6] - strh r0, [r1, 0xC] - strh r2, [r1, 0xE] - ldrh r0, [r4, 0x8] - strh r0, [r1, 0x10] - movs r2, 0x2 - ldrsh r0, [r4, r2] - lsls r0, 1 - strh r0, [r1, 0x12] - movs r6, 0x4 - ldrsh r0, [r4, r6] - lsls r0, 1 - strh r0, [r1, 0x14] - ldr r2, _08098D50 @ =sub_8098D54 - str r2, [r1] - adds r0, r5, 0 - bl _call_via_r2 -_08098D42: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098D48: .4byte gSprites -_08098D4C: .4byte gTasks -_08098D50: .4byte sub_8098D54 - thumb_func_end sub_8098CD0 - - thumb_func_start sub_8098D54 -sub_8098D54: @ 8098D54 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08098DAC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - adds r6, r1, 0 - cmp r0, 0 - beq _08098D72 - b _08098E84 -_08098D72: - ldrh r1, [r4, 0xA] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08098DB4 - ldr r2, _08098DB0 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x12] - ldrh r3, [r0, 0x24] - adds r1, r3 - strh r1, [r0, 0x24] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x14] - ldrh r3, [r0, 0x26] - adds r1, r3 - strh r1, [r0, 0x26] - adds r3, r2, 0 - b _08098DDE - .align 2, 0 -_08098DAC: .4byte gTasks -_08098DB0: .4byte gSprites -_08098DB4: - ldr r3, _08098E40 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x24] - ldrh r2, [r4, 0x12] - subs r1, r2 - strh r1, [r0, 0x24] - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - ldrh r2, [r4, 0x14] - subs r1, r2 - strh r1, [r0, 0x26] -_08098DDE: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - ldrh r0, [r4, 0x10] - strh r0, [r4, 0xE] - ldrh r0, [r4, 0xA] - adds r2, r0, 0x1 - strh r2, [r4, 0xA] - lsls r0, r2, 16 - asrs r0, 16 - movs r6, 0xC - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _08098E88 - movs r0, 0x1 - ands r2, r0 - cmp r2, 0 - beq _08098E44 - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r2, 0x12 - ldrsh r0, [r4, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - ldrh r6, [r1, 0x24] - adds r0, r6 - strh r0, [r1, 0x24] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r2, 0x14 - ldrsh r0, [r4, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - ldrh r3, [r1, 0x26] - adds r0, r3 - strh r0, [r1, 0x26] - b _08098E7C - .align 2, 0 -_08098E40: .4byte gSprites -_08098E44: - movs r6, 0x8 - ldrsh r0, [r4, r6] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r2, 0x24] - subs r0, r1 - strh r0, [r2, 0x24] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - movs r3, 0x14 - ldrsh r1, [r4, r3] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r2, 0x26] - subs r0, r1 - strh r0, [r2, 0x26] -_08098E7C: - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _08098E88 -_08098E84: - subs r0, r2, 0x1 - strh r0, [r4, 0xE] -_08098E88: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8098D54 - - thumb_func_start sub_8098E90 -sub_8098E90: @ 8098E90 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08098EE0 @ =gUnknown_2037F02 - ldrb r0, [r5] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08098EE4 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r5, 0x2] - strh r2, [r1, 0x24] - ldr r2, _08098EE8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x8] - ldrh r0, [r5, 0x2] - strh r0, [r1, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r1, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r1, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r1, 0x10] - ldr r2, _08098EEC @ =sub_8098EF0 - str r2, [r1] - adds r0, r4, 0 - bl _call_via_r2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08098EE0: .4byte gUnknown_2037F02 -_08098EE4: .4byte gSprites -_08098EE8: .4byte gTasks -_08098EEC: .4byte sub_8098EF0 - thumb_func_end sub_8098E90 - - thumb_func_start sub_8098EF0 -sub_8098EF0: @ 8098EF0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _08098F7C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r2 - ldrb r5, [r3, 0x8] - ldrh r4, [r3, 0xA] - ldrh r1, [r3, 0x18] - adds r0, r1, 0x1 - strh r0, [r3, 0x18] - movs r7, 0xC - ldrsh r0, [r3, r7] - lsls r1, 16 - asrs r1, 16 - mov r12, r2 - ldr r7, _08098F80 @ =gSprites - cmp r0, r1 - bne _08098F42 - movs r0, 0 - strh r0, [r3, 0x18] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, r0, r7 - ldrh r3, [r1, 0x24] - movs r0, 0x24 - ldrsh r2, [r1, r0] - lsls r0, r4, 16 - asrs r0, 16 - cmp r2, r0 - bne _08098F3A - negs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 -_08098F3A: - lsls r0, r4, 16 - asrs r0, 16 - adds r0, r3 - strh r0, [r1, 0x24] -_08098F42: - lsls r2, r6, 2 - adds r2, r6 - lsls r2, 3 - add r2, r12 - strh r4, [r2, 0xA] - ldrh r1, [r2, 0xE] - ldrh r0, [r2, 0x1A] - adds r1, r0 - strh r1, [r2, 0x1A] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r7 - lsls r1, 16 - asrs r1, 24 - strh r1, [r0, 0x26] - ldrh r0, [r2, 0x10] - subs r0, 0x1 - strh r0, [r2, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _08098F74 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_08098F74: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098F7C: .4byte gTasks -_08098F80: .4byte gSprites - thumb_func_end sub_8098EF0 - - thumb_func_start sub_8098F84 -sub_8098F84: @ 8098F84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0x1 - ldr r4, _08098FF8 @ =gUnknown_2037F02 - ldrb r0, [r4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r7, r0, 24 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - ble _08098FA8 - movs r0, 0x5 - strh r0, [r4, 0x8] -_08098FA8: - movs r1, 0 - movs r2, 0x8 - ldrsh r0, [r4, r2] - adds r3, r4, 0 - ldr r2, _08098FFC @ =gTasks - mov r12, r2 - lsls r4, r5, 2 - ldr r2, _08099000 @ =sub_8099004 - mov r8, r2 - cmp r1, r0 - bge _08098FCE - adds r2, r0, 0 -_08098FC0: - lsls r0, r6, 25 - lsrs r6, r0, 24 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r2 - blt _08098FC0 -_08098FCE: - adds r0, r4, r5 - lsls r0, 3 - add r0, r12 - strh r7, [r0, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r0, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r0, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r0, 0xE] - strh r6, [r0, 0x10] - mov r1, r8 - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098FF8: .4byte gUnknown_2037F02 -_08098FFC: .4byte gTasks -_08099000: .4byte sub_8099004 - thumb_func_end sub_8098F84 - - thumb_func_start sub_8099004 -sub_8099004: @ 8099004 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _08099074 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrb r4, [r5, 0x8] - movs r1, 0x12 - ldrsh r0, [r5, r1] - movs r2, 0xA - ldrsh r1, [r5, r2] - bl Sin - ldr r2, _08099078 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r4, r1, r2 - strh r0, [r4, 0x24] - movs r1, 0x12 - ldrsh r0, [r5, r1] - movs r2, 0xC - ldrsh r1, [r5, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r5, 0xC] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x10] - ldrh r1, [r5, 0x12] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x12] - cmp r0, 0 - bne _0809905C - ldrh r0, [r5, 0xE] - subs r0, 0x1 - strh r0, [r5, 0xE] -_0809905C: - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _0809906E - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_0809906E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08099074: .4byte gTasks -_08099078: .4byte gSprites - thumb_func_end sub_8099004 - - thumb_func_start sub_809907C -sub_809907C: @ 809907C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080990A4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _08099098 - ldr r1, _080990A8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_08099098: - adds r0, r4, 0 - bl sub_8098F84 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080990A4: .4byte gUnknown_2037F1A -_080990A8: .4byte gUnknown_2037F02 - thumb_func_end sub_809907C - - thumb_func_start sub_80990AC -sub_80990AC: @ 80990AC - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080990D4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080990DC - ldr r1, _080990D8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - b _080990E0 - .align 2, 0 -_080990D4: .4byte gUnknown_2037F1A -_080990D8: .4byte gUnknown_2037F02 -_080990DC: - ldr r1, _0809910C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] -_080990E0: - strh r0, [r4, 0x30] - ldrh r2, [r1] - movs r0, 0 - strh r2, [r4, 0x2E] - strh r0, [r4, 0x32] - ldr r1, _08099110 @ =gUnknown_2023D44 - ldr r0, _08099114 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r1, _08099118 @ =sub_8099120 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _0809911C @ =sub_8074DC4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809910C: .4byte gUnknown_2037F02 -_08099110: .4byte gUnknown_2023D44 -_08099114: .4byte gUnknown_2037F1A -_08099118: .4byte sub_8099120 -_0809911C: .4byte sub_8074DC4 - thumb_func_end sub_80990AC - - thumb_func_start sub_8099120 -sub_8099120: @ 8099120 - push {lr} - ldrh r1, [r0, 0x36] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x30] - negs r1, r1 - strh r1, [r0, 0x30] - ldr r1, _0809913C @ =sub_8074DC4 - str r1, [r0, 0x1C] - ldr r1, _08099140 @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_0809913C: .4byte sub_8074DC4 -_08099140: .4byte DestroyAnimSprite - thumb_func_end sub_8099120 - - thumb_func_start sub_8099144 -sub_8099144: @ 8099144 - push {r4,r5,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r5, _08099184 @ =gUnknown_2037F02 - ldrb r0, [r5, 0x4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r5] - movs r1, 0 - strh r2, [r4, 0x2E] - strh r1, [r4, 0x30] - ldrh r1, [r5, 0x2] - strh r1, [r4, 0x32] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r1, _08099188 @ =sub_8099190 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _0809918C @ =sub_8074DC4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08099184: .4byte gUnknown_2037F02 -_08099188: .4byte sub_8099190 -_0809918C: .4byte sub_8074DC4 - thumb_func_end sub_8099144 - - thumb_func_start sub_8099190 -sub_8099190: @ 8099190 - push {lr} - ldrh r1, [r0, 0x36] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x32] - negs r1, r1 - strh r1, [r0, 0x32] - ldr r1, _080991AC @ =sub_8074DC4 - str r1, [r0, 0x1C] - ldr r1, _080991B0 @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080991AC: .4byte sub_8074DC4 -_080991B0: .4byte DestroyAnimSprite - thumb_func_end sub_8099190 - - thumb_func_start sub_80991B4 -sub_80991B4: @ 80991B4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r0, _080991CC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080991D8 - ldr r1, _080991D0 @ =gUnknown_2023D44 - ldr r0, _080991D4 @ =gUnknown_2037F1A - b _080991DC - .align 2, 0 -_080991CC: .4byte gUnknown_2037F02 -_080991D0: .4byte gUnknown_2023D44 -_080991D4: .4byte gUnknown_2037F1A -_080991D8: - ldr r1, _0809923C @ =gUnknown_2023D44 - ldr r0, _08099240 @ =gUnknown_2037F1B -_080991DC: - ldrb r0, [r0] - adds r0, r1 - ldrb r7, [r0] - ldr r5, _08099244 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x4] - movs r3, 0 - strh r0, [r6, 0x2E] - ldr r0, _08099248 @ =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r6, 0x30] - ldrh r0, [r4, 0x20] - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x22] - strh r0, [r6, 0x36] - adds r0, r6, 0 - str r3, [sp] - bl sub_80754B8 - ldr r3, [sp] - strh r3, [r6, 0x34] - strh r3, [r6, 0x36] - ldrh r0, [r4, 0x24] - strh r0, [r6, 0x38] - ldrh r0, [r4, 0x26] - strh r0, [r6, 0x3A] - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _0809924C - strh r3, [r6, 0x32] - b _08099252 - .align 2, 0 -_0809923C: .4byte gUnknown_2023D44 -_08099240: .4byte gUnknown_2037F1B -_08099244: .4byte gUnknown_2037F02 -_08099248: .4byte gSprites -_0809924C: - cmp r0, 0x2 - bne _08099252 - strh r3, [r6, 0x30] -_08099252: - ldr r0, _08099268 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x2] - lsls r0, r7, 8 - orrs r0, r1 - strh r0, [r6, 0x3C] - ldr r0, _0809926C @ =sub_8099270 - str r0, [r6, 0x1C] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099268: .4byte gUnknown_2037F02 -_0809926C: .4byte sub_8099270 - thumb_func_end sub_80991B4 - - thumb_func_start sub_8099270 -sub_8099270: @ 8099270 - push {r4-r6,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x3C] - lsls r1, r0, 24 - lsrs r4, r1, 24 - adds r5, r4, 0 - lsls r0, 16 - asrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080992AC @ =gSprites - adds r3, r1, r0 - ldrh r0, [r2, 0x2E] - movs r6, 0x2E - ldrsh r1, [r2, r6] - cmp r1, 0 - bne _080992B0 - cmp r4, 0x1 - bhi _0809929A - strh r1, [r3, 0x24] -_0809929A: - cmp r5, 0x2 - beq _080992A2 - cmp r5, 0 - bne _080992A4 -_080992A2: - strh r1, [r3, 0x26] -_080992A4: - adds r0, r2, 0 - bl DestroyAnimSprite - b _080992DA - .align 2, 0 -_080992AC: .4byte gSprites -_080992B0: - subs r0, 0x1 - strh r0, [r2, 0x2E] - ldrh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - adds r1, r0 - strh r1, [r2, 0x34] - ldrh r0, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r0, r4 - strh r0, [r2, 0x36] - lsls r1, 16 - asrs r1, 24 - ldrh r6, [r2, 0x38] - adds r1, r6 - strh r1, [r3, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r2, 0x3A] - adds r0, r2 - strh r0, [r3, 0x26] -_080992DA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8099270 - - thumb_func_start sub_80992E0 -sub_80992E0: @ 80992E0 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080992F4 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080992FC - ldr r0, _080992F8 @ =gUnknown_2037F1A - b _080992FE - .align 2, 0 -_080992F4: .4byte gUnknown_2037F02 -_080992F8: .4byte gUnknown_2037F1A -_080992FC: - ldr r0, _0809937C @ =gUnknown_2037F1B -_080992FE: - ldrb r2, [r0] - ldr r0, _08099380 @ =gUnknown_2023D44 - adds r0, r2, r0 - ldrb r6, [r0] - adds r0, r2, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _08099328 - ldr r1, _08099384 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _08099328 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_08099328: - ldr r2, _08099384 @ =gUnknown_2037F02 - ldrh r0, [r2, 0x8] - movs r4, 0 - strh r0, [r5, 0x2E] - ldr r0, _08099388 @ =gSprites - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r2, 0x2] - ldrh r3, [r1, 0x20] - adds r0, r3 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x22] - strh r0, [r5, 0x34] - ldrh r0, [r2, 0x4] - ldrh r1, [r1, 0x22] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_80754B8 - strh r4, [r5, 0x34] - strh r4, [r5, 0x36] - strh r6, [r5, 0x38] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0809938C @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _08099390 @ =sub_8074E14 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809937C: .4byte gUnknown_2037F1B -_08099380: .4byte gUnknown_2023D44 -_08099384: .4byte gUnknown_2037F02 -_08099388: .4byte gSprites -_0809938C: .4byte DestroyAnimSprite -_08099390: .4byte sub_8074E14 - thumb_func_end sub_80992E0 - - thumb_func_start sub_8099394 -sub_8099394: @ 8099394 - push {r4-r7,lr} - adds r6, r0, 0 - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080993B4 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080993BC - ldr r0, _080993B8 @ =gUnknown_2037F1A - b _080993BE - .align 2, 0 -_080993B4: .4byte gUnknown_2037F02 -_080993B8: .4byte gUnknown_2037F1A -_080993BC: - ldr r0, _0809943C @ =gUnknown_2037F1B -_080993BE: - ldrb r1, [r0] - ldr r0, _08099440 @ =gUnknown_2023D44 - adds r0, r1, r0 - ldrb r7, [r0] - adds r0, r1, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080993E8 - ldr r1, _08099444 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _080993E8 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080993E8: - ldr r5, _08099444 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x8] - strh r0, [r6, 0x2E] - ldr r0, _08099448 @ =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r6, 0x30] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r6, 0x34] - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl sub_80754B8 - ldrh r0, [r4, 0x24] - lsls r0, 8 - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x26] - lsls r0, 8 - strh r0, [r6, 0x36] - strh r7, [r6, 0x38] - ldrh r0, [r5, 0xA] - strh r0, [r6, 0x3A] - lsls r0, 16 - cmp r0, 0 - bne _08099450 - ldr r1, _0809944C @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - b _08099458 - .align 2, 0 -_0809943C: .4byte gUnknown_2037F1B -_08099440: .4byte gUnknown_2023D44 -_08099444: .4byte gUnknown_2037F02 -_08099448: .4byte gSprites -_0809944C: .4byte DestroyAnimSprite -_08099450: - ldr r1, _08099464 @ =sub_809946C - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 -_08099458: - ldr r0, _08099468 @ =sub_8074E14 - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099464: .4byte sub_809946C -_08099468: .4byte sub_8074E14 - thumb_func_end sub_8099394 - - thumb_func_start sub_809946C -sub_809946C: @ 809946C - push {r4,lr} - ldr r4, _08099498 @ =gSprites - movs r1, 0x38 - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - movs r3, 0 - strh r3, [r1, 0x24] - movs r1, 0x38 - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r3, [r1, 0x26] - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099498: .4byte gSprites - thumb_func_end sub_809946C - - thumb_func_start sub_809949C -sub_809949C: @ 809949C - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _08099520 @ =gUnknown_2037F02 - movs r0, 0x6 - ldrsh r1, [r5, r0] - movs r0, 0x80 - lsls r0, 8 - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _08099524 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080994CE - ldrh r0, [r5, 0x2] - negs r0, r0 - strh r0, [r5, 0x2] - ldrh r0, [r5, 0xA] - negs r0, r0 - strh r0, [r5, 0xA] -_080994CE: - ldrb r0, [r5] - bl GetAnimBankSpriteId - ldr r1, _08099528 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - movs r1, 0x2 - ldrsh r0, [r5, r1] - lsls r0, 8 - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r5, r1] - lsls r0, 8 - movs r2, 0xC - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x12] - ldrh r0, [r5, 0xC] - strh r0, [r4, 0x14] - strh r7, [r4, 0x16] - ldr r0, _0809952C @ =sub_8099530 - str r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099520: .4byte gUnknown_2037F02 -_08099524: .4byte gUnknown_2037F1A -_08099528: .4byte gTasks -_0809952C: .4byte sub_8099530 - thumb_func_end sub_809949C - - thumb_func_start sub_8099530 -sub_8099530: @ 8099530 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08099588 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - ldrb r1, [r5, 0x8] - ldrh r0, [r5, 0xA] - ldrh r2, [r5, 0x1E] - adds r0, r2 - strh r0, [r5, 0x1E] - ldr r2, _0809958C @ =gSprites - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r2 - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x1C] - lsrs r0, 8 - movs r2, 0xC - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x16] - ldrh r1, [r5, 0x1C] - adds r0, r1 - strh r0, [r5, 0x1C] - ldrh r0, [r5, 0xE] - subs r0, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _08099580 - ldr r0, _08099590 @ =sub_8099594 - str r0, [r5] -_08099580: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08099588: .4byte gTasks -_0809958C: .4byte gSprites -_08099590: .4byte sub_8099594 - thumb_func_end sub_8099530 - - thumb_func_start sub_8099594 -sub_8099594: @ 8099594 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080995B8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080995BC - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - b _080995F0 - .align 2, 0 -_080995B8: .4byte gTasks -_080995BC: - ldrb r0, [r4, 0x8] - ldrh r2, [r4, 0x12] - ldrh r1, [r4, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - ldr r3, _080995F8 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - lsls r2, 16 - asrs r2, 24 - ldrh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 24 - adds r2, r0 - strh r2, [r1, 0x24] - ldrh r0, [r4, 0x14] - subs r0, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _080995F0 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080995F0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080995F8: .4byte gSprites - thumb_func_end sub_8099594 - - thumb_func_start sub_80995FC -sub_80995FC: @ 80995FC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08099620 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _0809962A - cmp r0, 0x2 - bgt _08099624 - cmp r0, 0 - blt _0809965C - ldrb r0, [r1] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - b _08099664 - .align 2, 0 -_08099620: .4byte gUnknown_2037F02 -_08099624: - cmp r0, 0x3 - beq _08099634 - b _0809965C -_0809962A: - ldr r5, _08099630 @ =gUnknown_2037F1A - b _08099636 - .align 2, 0 -_08099630: .4byte gUnknown_2037F1A -_08099634: - ldr r5, _08099654 @ =gUnknown_2037F1B -_08099636: - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _0809965C - ldr r1, _08099658 @ =gUnknown_2023D44 - ldrb r0, [r5] - eors r0, r4 - adds r0, r1 - ldrb r2, [r0] - b _08099664 - .align 2, 0 -_08099654: .4byte gUnknown_2037F1B -_08099658: .4byte gUnknown_2023D44 -_0809965C: - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _080996A4 -_08099664: - ldr r1, _08099684 @ =gTasks - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r0, 3 - adds r5, r0, r1 - strh r2, [r5, 0x8] - ldr r0, _08099688 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _08099690 - ldr r0, _0809968C @ =gUnknown_2037F02 - ldrh r0, [r0, 0x2] - b _08099696 - .align 2, 0 -_08099684: .4byte gTasks -_08099688: .4byte gUnknown_2037F1B -_0809968C: .4byte gUnknown_2037F02 -_08099690: - ldr r0, _080996AC @ =gUnknown_2037F02 - ldrh r0, [r0, 0x2] - negs r0, r0 -_08099696: - strh r0, [r5, 0xA] - ldr r0, _080996B0 @ =gTasks - adds r1, r4, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _080996B4 @ =sub_80996B8 - str r0, [r1] -_080996A4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080996AC: .4byte gUnknown_2037F02 -_080996B0: .4byte gTasks -_080996B4: .4byte sub_80996B8 - thumb_func_end sub_80995FC - - thumb_func_start sub_80996B8 -sub_80996B8: @ 80996B8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080996FC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r2, [r1, 0x8] - ldr r3, _08099700 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r1, 0xA] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - movs r2, 0x24 - ldrsh r1, [r0, r2] - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r1, r0 - adds r1, 0x20 - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - bls _080996F6 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080996F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080996FC: .4byte gTasks -_08099700: .4byte gSprites - thumb_func_end sub_80996B8 - - thumb_func_start sub_8099704 -sub_8099704: @ 8099704 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _08099754 @ =gUnknown_2037F1A - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _08099720 - ldr r1, _08099758 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_08099720: - ldr r4, _08099758 @ =gUnknown_2037F02 - ldrb r0, [r4, 0x8] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0809975C @ =gTasks - lsls r3, r5, 2 - adds r1, r3, r5 - lsls r1, 3 - adds r2, r1, r2 - ldrh r1, [r4] - strh r1, [r2, 0x8] - ldrh r1, [r4, 0x2] - strh r1, [r2, 0xA] - ldrh r1, [r4, 0x4] - strh r1, [r2, 0xC] - ldrh r1, [r4, 0x6] - strh r1, [r2, 0xE] - strh r0, [r2, 0x10] - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08099760 - ldrb r0, [r6] - b _08099764 - .align 2, 0 -_08099754: .4byte gUnknown_2037F1A -_08099758: .4byte gUnknown_2037F02 -_0809975C: .4byte gTasks -_08099760: - ldr r0, _0809977C @ =gUnknown_2037F1B - ldrb r0, [r0] -_08099764: - strh r0, [r2, 0x12] - ldr r1, _08099780 @ =gTasks - adds r0, r3, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x20] - ldr r1, _08099784 @ =sub_8099788 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809977C: .4byte gUnknown_2037F1B -_08099780: .4byte gTasks -_08099784: .4byte sub_8099788 - thumb_func_end sub_8099704 - - thumb_func_start sub_8099788 -sub_8099788: @ 8099788 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080997D8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - ldrb r7, [r4, 0x10] - ldrh r0, [r4, 0xC] - ldrh r1, [r4, 0x1C] - adds r0, r1 - lsls r1, r0, 16 - strh r0, [r4, 0x1C] - lsrs r1, 24 - mov r8, r1 - mov r0, r8 - movs r2, 0xA - ldrsh r1, [r4, r2] - bl Sin - lsls r0, 16 - lsrs r5, r0, 16 - mov r9, r5 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080997E0 - ldr r0, _080997DC @ =gSprites - lsls r2, r7, 4 - adds r1, r2, r7 - lsls r1, 2 - adds r1, r0 - strh r5, [r1, 0x24] - mov r9, r0 - adds r4, r2, 0 - b _08099826 - .align 2, 0 -_080997D8: .4byte gTasks -_080997DC: .4byte gSprites -_080997E0: - ldrb r0, [r4, 0x12] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08099808 - ldr r1, _08099804 @ =gSprites - lsls r2, r7, 4 - adds r0, r2, r7 - lsls r0, 2 - adds r3, r0, r1 - lsls r0, r5, 16 - asrs r0, 16 - mov r9, r1 - adds r4, r2, 0 - cmp r0, 0 - bge _08099824 - b _08099822 - .align 2, 0 -_08099804: .4byte gSprites -_08099808: - ldr r1, _080998A8 @ =gSprites - lsls r2, r7, 4 - adds r0, r2, r7 - lsls r0, 2 - adds r3, r0, r1 - mov r4, r9 - lsls r0, r4, 16 - asrs r0, 16 - mov r9, r1 - adds r4, r2, 0 - cmp r0, 0 - bge _08099822 - negs r0, r0 -_08099822: - negs r0, r0 -_08099824: - strh r0, [r3, 0x26] -_08099826: - mov r5, r8 - cmp r5, 0x7F - bls _08099848 - ldr r1, _080998AC @ =gTasks - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0x1E - ldrsh r0, [r3, r5] - adds r5, r1, 0 - cmp r0, 0 - bne _08099848 - movs r1, 0x20 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _0809986A -_08099848: - mov r2, r8 - cmp r2, 0x7E - bhi _0809989C - ldr r1, _080998AC @ =gTasks - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0x1E - ldrsh r0, [r3, r5] - adds r5, r1, 0 - cmp r0, 0x1 - bne _0809989C - movs r1, 0x20 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _0809989C -_0809986A: - adds r1, r2, r6 - lsls r1, 3 - adds r1, r5 - ldrh r0, [r1, 0x1E] - movs r2, 0x1 - eors r0, r2 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - eors r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0xE] - subs r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _0809989C - adds r0, r4, r7 - lsls r0, 2 - add r0, r9 - strh r3, [r0, 0x24] - strh r3, [r0, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_0809989C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080998A8: .4byte gSprites -_080998AC: .4byte gTasks - thumb_func_end sub_8099788 - - thumb_func_start sub_80998B0 -sub_80998B0: @ 80998B0 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r6, _080998FC @ =gUnknown_2037F02 - ldrb r0, [r6, 0x6] - bl GetAnimBankSpriteId - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r1, [r6, 0x8] - adds r0, r5, 0 - bl sub_80758E0 - ldr r1, _08099900 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r6] - strh r1, [r0, 0x8] - ldrh r1, [r6, 0x2] - strh r1, [r0, 0xA] - ldrh r1, [r6, 0x4] - strh r1, [r0, 0xC] - ldrh r1, [r6, 0x4] - strh r1, [r0, 0xE] - strh r5, [r0, 0x10] - movs r1, 0x80 - lsls r1, 1 - strh r1, [r0, 0x1C] - strh r1, [r0, 0x1E] - ldr r1, _08099904 @ =sub_8099908 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080998FC: .4byte gUnknown_2037F02 -_08099900: .4byte gTasks -_08099904: .4byte sub_8099908 - thumb_func_end sub_80998B0 - - thumb_func_start sub_8099908 -sub_8099908: @ 8099908 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _08099968 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x8] - ldrh r1, [r4, 0x1C] - adds r0, r1 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xA] - ldrh r3, [r4, 0x1E] - adds r0, r3 - strh r0, [r4, 0x1E] - ldrb r0, [r4, 0x10] - adds r6, r0, 0 - movs r0, 0x1C - ldrsh r1, [r4, r0] - movs r3, 0x1E - ldrsh r2, [r4, r3] - adds r0, r6, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _08099978 - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - ble _0809996C - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xA] - negs r0, r0 - strh r0, [r4, 0xA] - strh r2, [r4, 0xC] - strh r1, [r4, 0xE] - b _08099978 - .align 2, 0 -_08099968: .4byte gTasks -_0809996C: - adds r0, r6, 0 - bl sub_8075980 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_08099978: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8099908 - - thumb_func_start sub_8099980 -sub_8099980: @ 8099980 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _080999BC @ =gUnknown_2037F02 - ldrb r0, [r4, 0x4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r1, 0 - bl sub_80758E0 - ldr r1, _080999C0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2, 0xA] - ldrh r0, [r4] - strh r0, [r2, 0xC] - movs r3, 0x6 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - beq _080999C4 - strh r1, [r2, 0xE] - b _080999D0 - .align 2, 0 -_080999BC: .4byte gUnknown_2037F02 -_080999C0: .4byte gTasks -_080999C4: - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - adds r3, r0, 0 - muls r3, r1 - adds r0, r3, 0 - strh r0, [r2, 0xE] -_080999D0: - ldr r1, _080999FC @ =gTasks - lsls r4, r7, 2 - adds r0, r4, r7 - lsls r0, 3 - adds r5, r0, r1 - ldr r6, _08099A00 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x10] - mov r0, r8 - strh r0, [r5, 0x12] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x14] - bl sub_8073788 - lsls r0, 24 - mov r8, r4 - cmp r0, 0 - beq _08099A04 - movs r0, 0x1 - strh r0, [r5, 0x16] - b _08099A28 - .align 2, 0 -_080999FC: .4byte gTasks -_08099A00: .4byte gUnknown_2037F02 -_08099A04: - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08099A14 - ldr r0, _08099A10 @ =gUnknown_2037F1A - b _08099A16 - .align 2, 0 -_08099A10: .4byte gUnknown_2037F1A -_08099A14: - ldr r0, _08099A6C @ =gUnknown_2037F1B -_08099A16: - ldrb r0, [r0] - bl GetBattlerSide - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _08099A26 - movs r1, 0x1 -_08099A26: - strh r1, [r5, 0x16] -_08099A28: - ldr r0, _08099A70 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r4, r1, r0 - movs r3, 0x16 - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _08099A54 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _08099A54 - movs r1, 0xE - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0xE] - movs r2, 0x10 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x10] -_08099A54: - ldr r0, _08099A70 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _08099A74 @ =sub_8099B54 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099A6C: .4byte gUnknown_2037F1B -_08099A70: .4byte gTasks -_08099A74: .4byte sub_8099B54 - thumb_func_end sub_8099980 - - thumb_func_start sub_8099A78 -sub_8099A78: @ 8099A78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _08099AB4 @ =gUnknown_2037F02 - ldrb r0, [r4, 0x4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r1, 0 - bl sub_80758E0 - ldr r1, _08099AB8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xA] - ldrh r1, [r4] - strh r1, [r0, 0xC] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08099AC0 - ldr r0, _08099ABC @ =gUnknown_2037F1A - b _08099AC2 - .align 2, 0 -_08099AB4: .4byte gUnknown_2037F02 -_08099AB8: .4byte gTasks -_08099ABC: .4byte gUnknown_2037F1A -_08099AC0: - ldr r0, _08099AF0 @ =gUnknown_2037F1B -_08099AC2: - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _08099AD4 - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] -_08099AD4: - ldr r0, _08099AF4 @ =gUnknown_2037F02 - movs r2, 0x6 - ldrsh r1, [r0, r2] - adds r6, r0, 0 - cmp r1, 0x1 - beq _08099AFC - ldr r2, _08099AF8 @ =gTasks - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0xE] - b _08099B16 - .align 2, 0 -_08099AF0: .4byte gUnknown_2037F1B -_08099AF4: .4byte gUnknown_2037F02 -_08099AF8: .4byte gTasks -_08099AFC: - ldr r3, _08099B4C @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r0, r3 - ldrh r2, [r6] - ldrh r1, [r6, 0x2] - adds r7, r2, 0 - muls r7, r1 - adds r1, r7, 0 - strh r1, [r0, 0xE] - adds r2, r3, 0 - adds r3, r4, 0 -_08099B16: - adds r1, r3, r5 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r6, 0x2] - strh r0, [r1, 0x10] - mov r0, r8 - strh r0, [r1, 0x12] - ldrh r0, [r6, 0x6] - strh r0, [r1, 0x14] - movs r0, 0x1 - strh r0, [r1, 0x16] - movs r2, 0xE - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0xE] - movs r7, 0x10 - ldrsh r0, [r1, r7] - negs r0, r0 - strh r0, [r1, 0x10] - ldr r0, _08099B50 @ =sub_8099B54 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099B4C: .4byte gTasks -_08099B50: .4byte sub_8099B54 - thumb_func_end sub_8099A78 - - thumb_func_start sub_8099B54 -sub_8099B54: @ 8099B54 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08099BAC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] - ldrb r0, [r4, 0x12] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0xE] - adds r1, r2, 0 - bl obj_id_set_rotscale - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08099B88 - ldrb r0, [r4, 0x12] - bl sub_80759DC -_08099B88: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xC - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _08099BCE - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08099BB0 - cmp r0, 0x1 - ble _08099BB6 - cmp r0, 0x2 - beq _08099BBE - b _08099BB6 - .align 2, 0 -_08099BAC: .4byte gTasks -_08099BB0: - ldrb r0, [r4, 0x12] - bl sub_8075980 -_08099BB6: - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _08099BCE -_08099BBE: - movs r0, 0 - strh r0, [r4, 0xA] - movs r2, 0x10 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x10] - movs r0, 0x1 - strh r0, [r4, 0x14] -_08099BCE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8099B54 - - thumb_func_start sub_8099BD4 -sub_8099BD4: @ 8099BD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08099C00 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r8, r0 - cmp r1, 0 - bne _08099C0C - ldr r4, _08099C04 @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r6, r0, r4 - ldr r0, _08099C08 @ =gUnknown_2037EEC - ldrh r0, [r0] - movs r1, 0xC - bl __udivsi3 - b _08099C20 - .align 2, 0 -_08099C00: .4byte gUnknown_2037F02 -_08099C04: .4byte gTasks -_08099C08: .4byte gUnknown_2037EEC -_08099C0C: - ldr r4, _08099CA8 @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r6, r0, r4 - ldr r0, _08099CAC @ =gUnknown_2037EE8 - ldr r0, [r0] - movs r1, 0xC - bl __divsi3 -_08099C20: - strh r0, [r6, 0x26] - lsls r0, 16 - adds r1, r4, 0 - cmp r0, 0 - bgt _08099C2E - movs r0, 0x1 - strh r0, [r6, 0x26] -_08099C2E: - movs r2, 0x26 - ldrsh r0, [r6, r2] - cmp r0, 0x10 - ble _08099C3A - movs r0, 0x10 - strh r0, [r6, 0x26] -_08099C3A: - adds r4, r5, r7 - lsls r4, 3 - adds r4, r1 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - movs r5, 0 - strh r1, [r4, 0x24] - ldrh r2, [r4, 0x26] - movs r0, 0x1 - ands r0, r2 - adds r1, r0 - strh r1, [r4, 0x22] - strh r5, [r4, 0x20] - mov r1, r8 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x1C] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x1E] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - ldr r2, _08099CB0 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x18] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x26] - strh r0, [r4, 0x1A] - strh r5, [r4, 0x8] - mov r1, r8 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0xA] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0xC] - ldr r0, _08099CB4 @ =sub_8099CB8 - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099CA8: .4byte gTasks -_08099CAC: .4byte gUnknown_2037EE8 -_08099CB0: .4byte gSprites -_08099CB4: .4byte sub_8099CB8 - thumb_func_end sub_8099BD4 - - thumb_func_start sub_8099CB8 -sub_8099CB8: @ 8099CB8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08099D0C @ =gTasks - adds r3, r0, r1 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xA - ldrsh r1, [r3, r2] - cmp r0, r1 - ble _08099D96 - movs r0, 0 - strh r0, [r3, 0x8] - ldrh r0, [r3, 0x20] - adds r1, r0, 0x1 - movs r0, 0x1 - ands r1, r0 - strh r1, [r3, 0x20] - movs r2, 0x1C - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _08099D2A - cmp r1, 0 - beq _08099D14 - ldr r2, _08099D10 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x18] - adds r1, r2 - b _08099D28 - .align 2, 0 -_08099D0C: .4byte gTasks -_08099D10: .4byte gSprites -_08099D14: - ldr r2, _08099D50 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x18] - ldrh r2, [r3, 0x24] - subs r1, r2 -_08099D28: - strh r1, [r0, 0x24] -_08099D2A: - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08099D64 - movs r2, 0x20 - ldrsh r4, [r3, r2] - cmp r4, 0 - beq _08099D54 - ldr r2, _08099D50 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x26] - strh r1, [r0, 0x26] - b _08099D64 - .align 2, 0 -_08099D50: .4byte gSprites -_08099D54: - ldr r2, _08099D9C @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x26] -_08099D64: - ldrh r0, [r3, 0xC] - subs r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0 - bne _08099D96 - ldr r2, _08099D9C @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x24] - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x26] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_08099D96: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08099D9C: .4byte gSprites - thumb_func_end sub_8099CB8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_80A22E8.s b/asm/battle_anim_80A22E8.s deleted file mode 100644 index e64654d57..000000000 --- a/asm/battle_anim_80A22E8.s +++ /dev/null @@ -1,55436 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80A22E8 -sub_80A22E8: @ 80A22E8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080A231C @ =gUnknown_2037F02 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080A2320 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2324 - ldrh r0, [r5, 0x8] - negs r0, r0 - b _080A2326 - .align 2, 0 -_080A231C: .4byte gUnknown_2037F02 -_080A2320: .4byte gUnknown_2037F1A -_080A2324: - ldrh r0, [r5, 0x8] -_080A2326: - strh r0, [r4, 0x34] - ldr r0, _080A2338 @ =gUnknown_2037F02 - ldrh r0, [r0, 0xA] - strh r0, [r4, 0x36] - ldr r0, _080A233C @ =sub_80A2340 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2338: .4byte gUnknown_2037F02 -_080A233C: .4byte sub_80A2340 - thumb_func_end sub_80A22E8 - - thumb_func_start sub_80A2340 -sub_80A2340: @ 80A2340 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A237C - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r1, r0 - strh r1, [r4, 0x32] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080A2382 -_080A237C: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A2382: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2340 - - thumb_func_start sub_80A2388 -sub_80A2388: @ 80A2388 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080A23C8 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r5, _080A23CC @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080A23D0 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080A23D4 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A23C8: .4byte gUnknown_2037F02 -_080A23CC: .4byte gUnknown_2037F1A -_080A23D0: .4byte sub_8075590 -_080A23D4: .4byte move_anim_8074EE0 - thumb_func_end sub_80A2388 - - thumb_func_start sub_80A23D8 -sub_80A23D8: @ 80A23D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r5, _080A2420 @ =gUnknown_2037F02 - ldrb r1, [r5, 0x6] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldr r5, _080A2424 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080A2428 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080A242C @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2420: .4byte gUnknown_2037F02 -_080A2424: .4byte gUnknown_2037F1B -_080A2428: .4byte sub_8075590 -_080A242C: .4byte DestroyAnimSprite - thumb_func_end sub_80A23D8 - - thumb_func_start sub_80A2430 -sub_80A2430: @ 80A2430 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r6, _080A2480 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080A2484 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r6, 0x6] - strh r0, [r4, 0x38] - ldr r1, _080A2488 @ =sub_80A248C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2480: .4byte gUnknown_2037F02 -_080A2484: .4byte gUnknown_2037F1B -_080A2488: .4byte sub_80A248C - thumb_func_end sub_80A2430 - - thumb_func_start sub_80A248C -sub_80A248C: @ 80A248C - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080A24A2 - adds r0, r4, 0 - bl DestroySprite - b _080A24F6 -_080A24A2: - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _080A24BC - ldr r0, _080A24B8 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - adds r0, 0x1 - b _080A24C6 - .align 2, 0 -_080A24B8: .4byte gUnknown_2037F1B -_080A24BC: - ldr r0, _080A24FC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - adds r0, 0x6 -_080A24C6: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0xF - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] -_080A24F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A24FC: .4byte gUnknown_2037F1B - thumb_func_end sub_80A248C - - thumb_func_start sub_80A2500 -sub_80A2500: @ 80A2500 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080A2570 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - subs r0, 0x1 - movs r2, 0 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080A255A - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - movs r0, 0x6 - strh r0, [r5, 0x8] - ldr r1, _080A2574 @ =gUnknown_2037F02 - movs r0, 0xF - strh r0, [r1] - strh r2, [r1, 0x2] - movs r0, 0x50 - strh r0, [r1, 0x4] - strh r2, [r1, 0x6] - ldr r4, _080A2578 @ =gUnknown_83E2A88 - ldr r0, _080A257C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - adds r3, r0, 0 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl CreateSpriteAndAnimate -_080A255A: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0xF - bne _080A2568 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A2568: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2570: .4byte gTasks -_080A2574: .4byte gUnknown_2037F02 -_080A2578: .4byte gUnknown_83E2A88 -_080A257C: .4byte gUnknown_2037F1B - thumb_func_end sub_80A2500 - - thumb_func_start sub_80A2580 -sub_80A2580: @ 80A2580 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r6, _080A25C4 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x6] - strh r0, [r4, 0x2E] - ldr r5, _080A25C8 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_8075068 - ldr r0, _080A25CC @ =sub_80A25D0 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A25C4: .4byte gUnknown_2037F02 -_080A25C8: .4byte gUnknown_2037F1A -_080A25CC: .4byte sub_80A25D0 - thumb_func_end sub_80A2580 - - thumb_func_start sub_80A25D0 -sub_80A25D0: @ 80A25D0 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080A25E4 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A25E4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A25D0 - - thumb_func_start sub_80A25EC -sub_80A25EC: @ 80A25EC - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x7 - ands r1, r0 - adds r0, r5, 0 - bl StartSpriteAnim - ldr r4, _080A2634 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2638 - ldrh r0, [r5, 0x20] - subs r0, 0x14 - b _080A263C - .align 2, 0 -_080A2634: .4byte gUnknown_2037F1A -_080A2638: - ldrh r0, [r5, 0x20] - adds r0, 0x14 -_080A263C: - strh r0, [r5, 0x20] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1F - ands r0, r1 - adds r0, 0x40 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080A269C @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8075804 - bl Random - movs r1, 0xFF - ands r1, r0 - strh r1, [r5, 0x38] - adds r0, r5, 0 - adds r0, 0x43 - ldrb r0, [r0] - strh r0, [r5, 0x3A] - ldr r1, _080A26A0 @ =sub_80A26A4 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A269C: .4byte gUnknown_2037F1B -_080A26A0: .4byte sub_80A26A4 - thumb_func_end sub_80A25EC - - thumb_func_start sub_80A26A4 -sub_80A26A4: @ 80A26A4 - push {r4,lr} - adds r4, r0, 0 - bl sub_807578C - lsls r0, 24 - cmp r0, 0 - beq _080A26BA - adds r0, r4, 0 - bl DestroyAnimSprite - b _080A26EA -_080A26BA: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xC - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7E - bgt _080A26D6 - ldrh r0, [r4, 0x3A] - b _080A26DA -_080A26D6: - ldrh r0, [r4, 0x3A] - adds r0, 0x1 -_080A26DA: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r4, 0x38] - adds r0, 0x18 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] -_080A26EA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A26A4 - - thumb_func_start sub_80A26F0 -sub_80A26F0: @ 80A26F0 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080A2750 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2710 - ldr r1, _080A2754 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A2710: - ldr r4, _080A2754 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080A2758 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_8075068 - ldr r0, _080A275C @ =sub_80A2760 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2750: .4byte gUnknown_2037F1A -_080A2754: .4byte gUnknown_2037F02 -_080A2758: .4byte gUnknown_2037F1B -_080A275C: .4byte sub_80A2760 - thumb_func_end sub_80A26F0 - - thumb_func_start sub_80A2760 -sub_80A2760: @ 80A2760 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080A278A - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0xA - strh r0, [r4, 0x2E] - ldr r0, _080A2790 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080A2794 @ =sub_80A2798 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 -_080A278A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2790: .4byte sub_8074C44 -_080A2794: .4byte sub_80A2798 - thumb_func_end sub_80A2760 - - thumb_func_start sub_80A2798 -sub_80A2798: @ 80A2798 - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x3C - strh r0, [r4, 0x2E] - ldr r0, _080A27C8 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080A27CC @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A27C8: .4byte sub_8074C44 -_080A27CC: .4byte DestroyAnimSprite - thumb_func_end sub_80A2798 - - thumb_func_start sub_80A27D0 -sub_80A27D0: @ 80A27D0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r5, _080A2814 @ =gUnknown_2037F02 - ldrb r1, [r5, 0x8] - adds r0, r4, 0 - bl StartSpriteAnim - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080A27FA - ldrb r0, [r4, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4, 0x1] -_080A27FA: - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldr r1, _080A2818 @ =sub_80A281C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2814: .4byte gUnknown_2037F02 -_080A2818: .4byte sub_80A281C - thumb_func_end sub_80A27D0 - - thumb_func_start sub_80A281C -sub_80A281C: @ 80A281C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x32] - adds r1, 0x18 - strh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080A2870 - ldr r0, _080A286C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - b _080A2894 - .align 2, 0 -_080A286C: .4byte gUnknown_2037F1B -_080A2870: - ldr r0, _080A28C0 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - adds r0, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080A2884 - movs r2, 0x3 -_080A2884: - movs r0, 0x3 - ands r2, r0 - lsls r2, 2 - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 -_080A2894: - strb r0, [r4, 0x5] - ldrh r0, [r4, 0x30] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080A28B8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A28B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A28C0: .4byte gUnknown_2037F1B - thumb_func_end sub_80A281C - - thumb_func_start sub_80A28C4 -sub_80A28C4: @ 80A28C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A28DE - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - bne _080A28E6 -_080A28DE: - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080A2918 -_080A28E6: - ldr r0, _080A2904 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A2908 - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x3 - bl SetAnimBgAttribute - b _080A2912 - .align 2, 0 -_080A2904: .4byte gUnknown_2037F1B -_080A2908: - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute -_080A2912: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A2918: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A28C4 - - thumb_func_start sub_80A2920 -sub_80A2920: @ 80A2920 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r5, _080A2968 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldr r0, _080A296C @ =gUnknown_2037F1A - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x4] - adds r0, r5 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r4, 0x38] - ldr r1, _080A2970 @ =sub_80A2974 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2968: .4byte gUnknown_2037F02 -_080A296C: .4byte gUnknown_2037F1A -_080A2970: .4byte sub_80A2974 - thumb_func_end sub_80A2920 - - thumb_func_start sub_80A2974 -sub_80A2974: @ 80A2974 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080A29E0 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x5 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080A29C0 - ldr r0, _080A29BC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807685C - subs r0, 0x1 - b _080A29CA - .align 2, 0 -_080A29BC: .4byte gUnknown_2037F1A -_080A29C0: - ldr r0, _080A29DC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807685C - adds r0, 0x1 -_080A29CA: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r4, 0x38] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080A29E6 - .align 2, 0 -_080A29DC: .4byte gUnknown_2037F1A -_080A29E0: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A29E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2974 - - thumb_func_start sub_80A29EC -sub_80A29EC: @ 80A29EC - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r5, _080A2A34 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldr r0, _080A2A38 @ =gUnknown_2037F1A - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x4] - adds r0, r5 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r4, 0x38] - ldr r1, _080A2A3C @ =sub_80A2A40 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2A34: .4byte gUnknown_2037F02 -_080A2A38: .4byte gUnknown_2037F1A -_080A2A3C: .4byte sub_80A2A40 - thumb_func_end sub_80A29EC - - thumb_func_start sub_80A2A40 -sub_80A2A40: @ 80A2A40 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080A2A98 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r1, [r4, 0x38] - adds r0, r1, 0 - subs r0, 0x3B - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bls _080A2A78 - adds r0, r1, 0 - subs r0, 0xBB - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bhi _080A2A8C -_080A2A78: - ldrb r2, [r4, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x8 - eors r1, r0 - lsls r1, 1 - subs r0, 0x47 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] -_080A2A8C: - ldrh r0, [r4, 0x38] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080A2A9E -_080A2A98: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A2A9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2A40 - - thumb_func_start sub_80A2AA4 -sub_80A2AA4: @ 80A2AA4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080A2AE0 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r1, _080A2AE4 @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x32] - ldr r0, _080A2AE8 @ =sub_80A2AEC - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2AE0: .4byte gUnknown_2037F1A -_080A2AE4: .4byte gUnknown_2037F02 -_080A2AE8: .4byte sub_80A2AEC - thumb_func_end sub_80A2AA4 - - thumb_func_start sub_80A2AEC -sub_80A2AEC: @ 80A2AEC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x32] - movs r2, 0x32 - ldrsh r3, [r1, r2] - cmp r3, 0 - bne _080A2B20 - ldrh r0, [r1, 0x30] - movs r2, 0x1 - ands r2, r0 - cmp r2, 0 - beq _080A2B0E - movs r0, 0x80 - strh r0, [r1, 0x2E] - strh r3, [r1, 0x30] - strh r3, [r1, 0x32] - b _080A2B14 -_080A2B0E: - strh r2, [r1, 0x2E] - strh r2, [r1, 0x30] - strh r2, [r1, 0x32] -_080A2B14: - ldr r0, _080A2B1C @ =sub_80A2B38 - str r0, [r1, 0x1C] - b _080A2B34 - .align 2, 0 -_080A2B1C: .4byte sub_80A2B38 -_080A2B20: - subs r0, 0x1 - strh r0, [r1, 0x32] - ldrh r0, [r1, 0x2E] - ldrh r2, [r1, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x30] - ldrh r2, [r1, 0x22] - adds r0, r2 - strh r0, [r1, 0x22] -_080A2B34: - pop {r0} - bx r0 - thumb_func_end sub_80A2AEC - - thumb_func_start sub_80A2B38 -sub_80A2B38: @ 80A2B38 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A2B58 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2B5C - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x19 - bl Sin - negs r0, r0 - b _080A2B66 - .align 2, 0 -_080A2B58: .4byte gUnknown_2037F1A -_080A2B5C: - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x19 - bl Sin -_080A2B66: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A2B86 - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] -_080A2B86: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x50 - ble _080A2B94 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A2B94: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2B38 - - thumb_func_start sub_80A2B9C -sub_80A2B9C: @ 80A2B9C - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080A2BF0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2BBC - ldr r1, _080A2BF4 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A2BBC: - ldr r6, _080A2BF4 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - movs r1, 0xC - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A2BFC - ldr r4, _080A2BF8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - b _080A2C1C - .align 2, 0 -_080A2BF0: .4byte gUnknown_2037F1A -_080A2BF4: .4byte gUnknown_2037F02 -_080A2BF8: .4byte gUnknown_2037F1B -_080A2BFC: - ldr r0, _080A2C48 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_8076D9C - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 -_080A2C1C: - strh r0, [r5, 0x36] - ldr r0, _080A2C4C @ =gUnknown_2037F02 - ldrh r0, [r0, 0xA] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_8075068 - ldr r0, _080A2C50 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, 0 - ldr r0, _080A2C48 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080A2C54 - movs r0, 0x1 - b _080A2C56 - .align 2, 0 -_080A2C48: .4byte gUnknown_2037F1B -_080A2C4C: .4byte gUnknown_2037F02 -_080A2C50: .4byte gUnknown_2037F1A -_080A2C54: - movs r0, 0 -_080A2C56: - strh r0, [r5, 0x2E] - ldr r0, _080A2C64 @ =sub_80A2C68 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2C64: .4byte sub_80A2C68 - thumb_func_end sub_80A2B9C - - thumb_func_start sub_80A2C68 -sub_80A2C68: @ 80A2C68 - push {r4-r7,lr} - adds r6, r0, 0 - movs r7, 0 - ldrh r5, [r6, 0x2E] - ldrh r4, [r6, 0x3C] - movs r0, 0x1 - strh r0, [r6, 0x2E] - adds r0, r6, 0 - bl AnimateBallThrow - ldrh r0, [r6, 0x3C] - strh r5, [r6, 0x2E] - lsls r4, 16 - asrs r4, 16 - cmp r4, 0xC8 - ble _080A2C9A - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x37 - bgt _080A2C9A - ldrh r0, [r6, 0x6] - cmp r0, 0 - bne _080A2CA0 - adds r0, 0x1 - strh r0, [r6, 0x6] -_080A2C9A: - ldrh r0, [r6, 0x6] - cmp r0, 0 - beq _080A2CD2 -_080A2CA0: - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080A2CD2 - adds r3, r6, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r6, 0x6] - adds r0, 0x1 - strh r0, [r6, 0x6] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bne _080A2CD2 - movs r7, 0x1 -_080A2CD2: - movs r2, 0x20 - ldrsh r0, [r6, r2] - movs r2, 0x24 - ldrsh r1, [r6, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080A2CFC - movs r0, 0x22 - ldrsh r1, [r6, r0] - movs r2, 0x26 - ldrsh r0, [r6, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080A2CFC - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080A2CFE -_080A2CFC: - movs r7, 0x1 -_080A2CFE: - cmp r7, 0 - beq _080A2D08 - adds r0, r6, 0 - bl DestroyAnimSprite -_080A2D08: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A2C68 - - thumb_func_start sub_80A2D10 -sub_80A2D10: @ 80A2D10 - push {r4,lr} - adds r4, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A2D3C - bl sub_8075290 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A2D3C - ldr r0, _080A2D64 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_8076D9C -_080A2D3C: - ldrh r0, [r4, 0x22] - adds r0, 0x20 - strh r0, [r4, 0x22] - ldr r1, _080A2D68 @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x36] - ldr r0, _080A2D6C @ =sub_80A2D70 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2D64: .4byte gUnknown_2037F1B -_080A2D68: .4byte gUnknown_2037F02 -_080A2D6C: .4byte sub_80A2D70 - thumb_func_end sub_80A2D10 - - thumb_func_start sub_80A2D70 -sub_80A2D70: @ 80A2D70 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0xFF - bne _080A2D86 - ldrh r0, [r4, 0x22] - subs r0, 0x2 - strh r0, [r4, 0x22] - b _080A2D94 -_080A2D86: - cmp r0, 0 - ble _080A2D94 - ldrh r0, [r4, 0x22] - subs r0, 0x2 - strh r0, [r4, 0x22] - subs r0, r1, 0x2 - strh r0, [r4, 0x30] -_080A2D94: - ldrh r3, [r4, 0x32] - ldrh r5, [r4, 0x38] - adds r2, r3, r5 - strh r2, [r4, 0x38] - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r5, 0x36 - ldrsh r0, [r4, r5] - cmp r1, r0 - bge _080A2DAC - adds r0, r2, r3 - strh r0, [r4, 0x38] -_080A2DAC: - ldrh r1, [r4, 0x38] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r5, 0x38 - ldrsh r0, [r4, r5] - movs r1, 0x5 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - bgt _080A2DEC - ldr r0, _080A2DE8 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - b _080A2DFA - .align 2, 0 -_080A2DE8: .4byte gUnknown_2037F1B -_080A2DEC: - ldr r0, _080A2E24 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 -_080A2DFA: - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080A2E1E - adds r0, r4, 0 - bl DestroyAnimSprite -_080A2E1E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2E24: .4byte gUnknown_2037F1B - thumb_func_end sub_80A2D70 - - thumb_func_start sub_80A2E28 -sub_80A2E28: @ 80A2E28 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8075114 - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r4, _080A2E5C @ =gUnknown_2037F02 - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAffineAnim - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x3A] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x3C] - ldr r0, _080A2E60 @ =sub_80A2E64 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2E5C: .4byte gUnknown_2037F02 -_080A2E60: .4byte sub_80A2E64 - thumb_func_end sub_80A2E28 - - thumb_func_start sub_80A2E64 -sub_80A2E64: @ 80A2E64 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A2E94 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080A2E98 @ =0x0000ffff - cmp r1, r0 - bne _080A2E8E - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - bl GetAnimBankSpriteId - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x2E] - ldr r0, _080A2E9C @ =sub_80A2EA0 - str r0, [r4, 0x1C] -_080A2E8E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2E94: .4byte gUnknown_2037F02 -_080A2E98: .4byte 0x0000ffff -_080A2E9C: .4byte sub_80A2EA0 - thumb_func_end sub_80A2E64 - - thumb_func_start sub_80A2EA0 -sub_80A2EA0: @ 80A2EA0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - bl GetAnimBankSpriteId - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A2EB8 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - b _080A2EBC -_080A2EB8: - ldrh r0, [r4, 0x2E] - subs r0, 0xB -_080A2EBC: - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080A2ED8 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x32] -_080A2ED8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A2F06 - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - cmp r0, 0 - ble _080A2F00 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAffineAnim - b _080A2F06 -_080A2F00: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A2F06: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2EA0 - - thumb_func_start sub_80A2F0C -sub_80A2F0C: @ 80A2F0C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080A2F38 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _080A2F3C - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080A2F62 - .align 2, 0 -_080A2F38: .4byte gSprites -_080A2F3C: - adds r0, r2, 0 - movs r1, 0x1 - bl sub_80758E0 - ldr r1, _080A2F68 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A2F6C @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0x8] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xA] - movs r1, 0x80 - lsls r1, 1 - strh r1, [r0, 0x1E] - ldr r1, _080A2F70 @ =sub_80A2F74 - str r1, [r0] -_080A2F62: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2F68: .4byte gTasks -_080A2F6C: .4byte gUnknown_2037F02 -_080A2F70: .4byte sub_80A2F74 - thumb_func_end sub_80A2F0C - - thumb_func_start sub_80A2F74 -sub_80A2F74: @ 80A2F74 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080A2FF4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x8] - ldrh r0, [r4, 0x1C] - adds r1, r0 - strh r1, [r4, 0x1C] - ldr r2, _080A2FF8 @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r2 - lsls r1, 16 - asrs r1, 24 - strh r1, [r5, 0x24] - ldr r0, _080A2FFC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2FBE - ldrh r0, [r5, 0x24] - negs r0, r0 - strh r0, [r5, 0x24] -_080A2FBE: - ldrh r0, [r4, 0x1E] - adds r0, 0x10 - strh r0, [r4, 0x1E] - movs r0, 0x1E - ldrsh r2, [r4, r0] - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - adds r0, r6, 0 - bl sub_8076440 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080A2FEC - strh r0, [r4, 0x8] - ldr r0, _080A3000 @ =sub_80A3004 - str r0, [r4] -_080A2FEC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2FF4: .4byte gTasks -_080A2FF8: .4byte gSprites -_080A2FFC: .4byte gUnknown_2037F1B -_080A3000: .4byte sub_80A3004 - thumb_func_end sub_80A2F74 - - thumb_func_start sub_80A3004 -sub_80A3004: @ 80A3004 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080A3050 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080A3054 @ =0x0000ffff - cmp r1, r0 - bne _080A3060 - ldr r0, _080A3058 @ =gTasks - lsls r2, r3, 2 - adds r1, r2, r3 - lsls r1, 3 - adds r6, r1, r0 - movs r1, 0x8 - ldrsh r5, [r6, r1] - adds r4, r0, 0 - cmp r5, 0 - bne _080A3074 - movs r0, 0x1 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8075980 - ldr r1, _080A305C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - strh r5, [r0, 0x24] - strh r5, [r0, 0x26] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _080A308E - .align 2, 0 -_080A3050: .4byte gUnknown_2037F02 -_080A3054: .4byte 0x0000ffff -_080A3058: .4byte gTasks -_080A305C: .4byte gSprites -_080A3060: - ldr r1, _080A3094 @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r0, r1 - movs r4, 0x8 - ldrsh r0, [r0, r4] - adds r4, r1, 0 - cmp r0, 0 - beq _080A308E -_080A3074: - adds r1, r2, r3 - lsls r1, 3 - adds r1, r4 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080A308E - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080A308E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A3094: .4byte gTasks - thumb_func_end sub_80A3004 - - thumb_func_start sub_80A3098 -sub_80A3098: @ 80A3098 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080A30AA - cmp r0, 0x1 - beq _080A3104 - b _080A3156 -_080A30AA: - ldr r6, _080A30FC @ =gUnknown_2037F1B - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A30C2 - ldr r1, _080A3100 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] -_080A30C2: - ldrb r0, [r6] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A3100 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080A3156 - .align 2, 0 -_080A30FC: .4byte gUnknown_2037F1B -_080A3100: .4byte gUnknown_2037F02 -_080A3104: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A3156 - adds r0, r5, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - movs r0, 0x19 - strh r0, [r5, 0x2E] - ldr r4, _080A315C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080A3160 @ =sub_8075764 - str r0, [r5, 0x1C] - ldr r1, _080A3164 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 -_080A3156: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A315C: .4byte gUnknown_2037F1A -_080A3160: .4byte sub_8075764 -_080A3164: .4byte DestroyAnimSprite - thumb_func_end sub_80A3098 - - thumb_func_start sub_80A3168 -sub_80A3168: @ 80A3168 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A31D4 - ldr r4, _080A31E0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080A31E4 @ =gUnknown_2037F02 - ldrh r0, [r4] - strh r0, [r5, 0x24] - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x26] - ldrb r0, [r4, 0x4] - adds r0, 0x1E - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r4, 0x6] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r2, 0x22 - ldrsh r0, [r5, r2] - movs r2, 0x26 - ldrsh r1, [r5, r2] - adds r0, r1 - cmp r0, 0x78 - ble _080A31D4 - ldrh r0, [r5, 0x22] - adds r1, r0, 0 - subs r1, 0x78 - ldrh r2, [r5, 0x26] - adds r0, r2 - adds r1, r0 - strh r1, [r5, 0x22] -_080A31D4: - ldr r0, _080A31E8 @ =sub_80A32DC - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A31E0: .4byte gUnknown_2037F1A -_080A31E4: .4byte gUnknown_2037F02 -_080A31E8: .4byte sub_80A32DC - thumb_func_end sub_80A3168 - - thumb_func_start sub_80A31EC -sub_80A31EC: @ 80A31EC - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - mov r9, r0 - ldr r4, _080A32C8 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, _080A32CC @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - adds r2, r0, 0 - lsls r2, 24 - subs r4, r5 - lsls r4, 16 - lsrs r2, 24 - mov r1, r8 - subs r2, r1 - lsls r2, 16 - lsrs r2, 16 - lsrs r3, r4, 16 - mov r10, r3 - asrs r4, 16 - ldr r6, _080A32D0 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - muls r0, r4 - movs r1, 0x64 - str r2, [sp] - bl __divsi3 - adds r5, r0 - mov r3, r9 - strh r5, [r3, 0x20] - ldr r2, [sp] - lsls r0, r2, 16 - asrs r0, 16 - movs r3, 0 - ldrsh r1, [r6, r3] - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - add r8, r0 - mov r1, r8 - mov r0, r9 - strh r1, [r0, 0x22] - ldrh r0, [r6, 0x2] - mov r3, r9 - strh r0, [r3, 0x24] - ldrh r0, [r6, 0x4] - strh r0, [r3, 0x26] - ldrb r0, [r6, 0x6] - adds r0, 0x1E - mov r1, r9 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0x8] - mov r0, r9 - bl StartSpriteAnim - ldrh r0, [r6, 0xA] - mov r1, r9 - strh r0, [r1, 0x32] - ldr r0, _080A32D4 @ =sub_80A32DC - str r0, [r1, 0x1C] - ldr r1, _080A32D8 @ =gUnknown_203999C - mov r3, r9 - ldrh r0, [r3, 0x20] - strh r0, [r1] - ldrh r0, [r3, 0x22] - strh r0, [r1, 0x2] - mov r0, r10 - strh r0, [r1, 0x4] - ldr r2, [sp] - strh r2, [r1, 0x6] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A32C8: .4byte gUnknown_2037F1A -_080A32CC: .4byte gUnknown_2037F1B -_080A32D0: .4byte gUnknown_2037F02 -_080A32D4: .4byte sub_80A32DC -_080A32D8: .4byte gUnknown_203999C - thumb_func_end sub_80A31EC - - thumb_func_start sub_80A32DC -sub_80A32DC: @ 80A32DC - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x2E] - adds r1, 0x1 - strh r1, [r3, 0x2E] - lsls r1, 16 - asrs r1, 16 - movs r2, 0x32 - ldrsh r0, [r3, r2] - subs r0, 0xA - cmp r1, r0 - ble _080A331C - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - movs r2, 0x3E - adds r2, r3 - mov r12, r2 - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080A331C: - movs r2, 0x2E - ldrsh r1, [r3, r2] - movs r2, 0x32 - ldrsh r0, [r3, r2] - cmp r1, r0 - ble _080A332E - adds r0, r3, 0 - bl DestroyAnimSprite -_080A332E: - pop {r0} - bx r0 - thumb_func_end sub_80A32DC - - thumb_func_start sub_80A3334 -sub_80A3334: @ 80A3334 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A3374 - ldr r5, _080A33B0 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A33B4 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r2, [r4] - adds r0, r2 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x30] - ldrh r0, [r4, 0x6] - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x34] -_080A3374: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - strh r0, [r6, 0x2E] - ldrh r1, [r6, 0x30] - muls r0, r1 - strh r0, [r6, 0x24] - movs r2, 0x2E - ldrsh r1, [r6, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - movs r1, 0xFF - ands r0, r1 - movs r2, 0x32 - ldrsh r1, [r6, r2] - bl Sin - strh r0, [r6, 0x26] - movs r0, 0x2E - ldrsh r1, [r6, r0] - movs r2, 0x34 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080A33AA - adds r0, r6, 0 - bl DestroyAnimSprite -_080A33AA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A33B0: .4byte gUnknown_2037F1A -_080A33B4: .4byte gUnknown_2037F02 - thumb_func_end sub_80A3334 - - thumb_func_start sub_80A33B8 -sub_80A33B8: @ 80A33B8 - push {r4,r5,lr} - movs r2, 0x20 - ldrsh r4, [r0, r2] - lsls r4, 8 - movs r3, 0x22 - ldrsh r2, [r0, r3] - orrs r4, r2 - movs r5, 0x3A - ldrsh r2, [r0, r5] - lsls r2, 8 - movs r5, 0x3C - ldrsh r3, [r0, r5] - orrs r2, r3 - lsls r1, 8 - strh r4, [r0, 0x38] - strh r2, [r0, 0x3A] - strh r1, [r0, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A33B8 - - thumb_func_start sub_80A33E0 -sub_80A33E0: @ 80A33E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - ldrh r0, [r0, 0x38] - lsrs r1, r0, 8 - mov r10, r1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r1, r8 - ldrh r0, [r1, 0x3A] - lsrs r2, r0, 8 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r1, [r1, 0x3C] - lsls r0, r1, 16 - asrs r0, 24 - lsls r0, 16 - lsrs r6, r0, 16 - movs r3, 0xFF - ands r3, r1 - cmp r2, 0 - bne _080A341A - movs r2, 0x20 - negs r2, r2 - b _080A3422 -_080A341A: - cmp r2, 0xFF - bne _080A3422 - movs r2, 0x88 - lsls r2, 1 -_080A3422: - mov r0, r9 - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - mov r1, r10 - subs r0, r2, r1 - lsls r5, r3, 16 - asrs r5, 16 - muls r0, r5 - lsls r1, r6, 16 - asrs r7, r1, 16 - adds r1, r7, 0 - bl __divsi3 - adds r6, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - muls r0, r5 - adds r1, r7, 0 - bl __divsi3 - add r6, r10 - mov r1, r8 - strh r6, [r1, 0x20] - add r0, r9 - strh r0, [r1, 0x22] - adds r5, 0x1 - lsls r5, 16 - lsrs r3, r5, 16 - asrs r5, 16 - cmp r5, r7 - beq _080A3474 - lsls r1, r7, 8 - lsls r0, r3, 16 - asrs r0, 16 - orrs r0, r1 - mov r1, r8 - strh r0, [r1, 0x3C] - movs r0, 0 - b _080A3476 -_080A3474: - movs r0, 0x1 -_080A3476: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A33E0 - - thumb_func_start sub_80A3484 -sub_80A3484: @ 80A3484 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xA - bne _080A3498 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080A3498: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - ble _080A34AC - adds r0, r4, 0 - bl DestroyAnimSprite -_080A34AC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A3484 - - thumb_func_start sub_80A34B4 -sub_80A34B4: @ 80A34B4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080A34DE - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080A34DE: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - adds r0, r4, 0 - bl sub_80A33E0 - lsls r0, 24 - cmp r0, 0 - beq _080A350E - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - ldr r0, _080A3514 @ =sub_80A3484 - str r0, [r4, 0x1C] -_080A350E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A3514: .4byte sub_80A3484 - thumb_func_end sub_80A34B4 - - thumb_func_start sub_80A3518 -sub_80A3518: @ 80A3518 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r4, _080A3560 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080A3564 @ =gUnknown_2037F1A - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080A3568 - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80A33B8 - movs r0, 0x1 - b _080A357A - .align 2, 0 -_080A3560: .4byte gUnknown_2037F1B -_080A3564: .4byte gUnknown_2037F1A -_080A3568: - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80A33B8 - movs r0, 0x3 -_080A357A: - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080A358C @ =sub_80A34B4 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A358C: .4byte sub_80A34B4 - thumb_func_end sub_80A3518 - - thumb_func_start sub_80A3590 -sub_80A3590: @ 80A3590 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080A35BA - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080A35BA: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - adds r0, r4, 0 - bl sub_80A33E0 - lsls r0, 24 - cmp r0, 0 - beq _080A35EC - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - adds r0, r4, 0 - bl DestroyAnimSprite -_080A35EC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A3590 - - thumb_func_start sub_80A35F4 -sub_80A35F4: @ 80A35F4 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080A3630 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080A3638 - strh r0, [r5, 0x3A] - adds r0, r6, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x28 - bl sub_80A33B8 - movs r0, 0x3 - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080A3634 @ =sub_80A34B4 - b _080A3662 - .align 2, 0 -_080A3630: .4byte gUnknown_2037F1B -_080A3634: .4byte sub_80A34B4 -_080A3638: - movs r0, 0xFF - strh r0, [r5, 0x3A] - adds r0, r6, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A3650 - movs r0, 0 - strh r0, [r5, 0x3A] -_080A3650: - adds r0, r5, 0 - movs r1, 0x28 - bl sub_80A33B8 - movs r0, 0x3 - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080A366C @ =sub_80A3590 -_080A3662: - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A366C: .4byte sub_80A3590 - thumb_func_end sub_80A35F4 - - thumb_func_start sub_80A3670 -sub_80A3670: @ 80A3670 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A368A - adds r0, r4, 0 - movs r1, 0 - bl sub_8075114 - ldr r0, _080A36B0 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x30] -_080A368A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x30] - muls r0, r1 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A36AA - adds r0, r4, 0 - bl DestroyAnimSprite -_080A36AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A36B0: .4byte gUnknown_2037F02 - thumb_func_end sub_80A3670 - - thumb_func_start sub_80A36B4 -sub_80A36B4: @ 80A36B4 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8075114 - ldr r4, _080A36FC @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080A3700 @ =gUnknown_2037F1B - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080A3704 - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80A33B8 - movs r0, 0x1 - b _080A3716 - .align 2, 0 -_080A36FC: .4byte gUnknown_2037F1A -_080A3700: .4byte gUnknown_2037F1B -_080A3704: - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80A33B8 - movs r0, 0x3 -_080A3716: - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080A3728 @ =sub_80A372C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A3728: .4byte sub_80A372C - thumb_func_end sub_80A36B4 - - thumb_func_start sub_80A372C -sub_80A372C: @ 80A372C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080A3756 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080A3756: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - bne _080A378A - movs r0, 0x3F - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x76 - bl PlaySE12WithPanning -_080A378A: - adds r0, r4, 0 - bl sub_80A33E0 - lsls r0, 24 - cmp r0, 0 - beq _080A37B2 - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - ldr r0, _080A37B8 @ =sub_80A3484 - str r0, [r4, 0x1C] - movs r0, 0x40 - negs r0, r0 - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x76 - bl PlaySE12WithPanning -_080A37B2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A37B8: .4byte sub_80A3484 - thumb_func_end sub_80A372C - - thumb_func_start sub_80A37BC -sub_80A37BC: @ 80A37BC - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A3850 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A37E4 - ldr r0, _080A37E0 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x2] - strh r1, [r4, 0x30] - movs r1, 0x78 - strh r1, [r4, 0x20] - adds r5, r0, 0 - b _080A3806 - .align 2, 0 -_080A37E0: .4byte gUnknown_2037F02 -_080A37E4: - ldr r0, _080A3840 @ =gUnknown_2037F02 - movs r1, 0x2 - ldrsh r3, [r0, r1] - adds r1, r3, 0 - subs r1, 0x20 - adds r2, r1, 0 - adds r5, r0, 0 - cmp r1, 0 - bge _080A37FA - adds r2, r3, 0 - adds r2, 0xDF -_080A37FA: - asrs r0, r2, 8 - lsls r0, 8 - subs r0, r1, r0 - strh r0, [r4, 0x30] - movs r0, 0x46 - strh r0, [r4, 0x20] -_080A3806: - ldrh r0, [r5] - strh r0, [r4, 0x22] - strh r0, [r4, 0x32] - movs r0, 0x14 - strh r0, [r4, 0x36] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3C - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] - ldr r0, _080A3844 @ =sub_80A3858 - str r0, [r4, 0x1C] - ldrh r0, [r4, 0x30] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBE - bhi _080A3848 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F - b _080A384E - .align 2, 0 -_080A3840: .4byte gUnknown_2037F02 -_080A3844: .4byte sub_80A3858 -_080A3848: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D -_080A384E: - strb r0, [r1] -_080A3850: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A37BC - - thumb_func_start sub_80A3858 -sub_80A3858: @ 80A3858 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A386A - cmp r0, 0x1 - beq _080A389A - b _080A38BA -_080A386A: - ldrh r5, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x4E - ble _080A3882 - movs r0, 0x1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080A38BA -_080A3882: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - adds r0, r5, r0 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x36] - adds r1, 0x3 - strh r1, [r4, 0x36] - strh r0, [r4, 0x22] - b _080A38BA -_080A389A: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A38BA - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A38BA - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x32] - ldr r0, _080A38C0 @ =sub_80A38C4 - str r0, [r4, 0x1C] -_080A38BA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A38C0: .4byte sub_80A38C4 - thumb_func_end sub_80A3858 - - thumb_func_start sub_80A38C4 -sub_80A38C4: @ 80A38C4 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080A3908 @ =gUnknown_83E2F78 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r3, r0, r1 - adds r0, r5, 0x1 - adds r0, r3, r0 - ldrh r2, [r4, 0x32] - movs r6, 0x32 - ldrsh r1, [r4, r6] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080A3910 - adds r0, r5, 0x2 - adds r0, r3, r0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x7F - bne _080A38FC - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080A390C @ =sub_80A397C - str r0, [r4, 0x1C] -_080A38FC: - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080A3976 - .align 2, 0 -_080A3908: .4byte gUnknown_83E2F78 -_080A390C: .4byte sub_80A397C -_080A3910: - adds r0, r2, 0x1 - strh r0, [r4, 0x32] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - adds r1, r0, r5 - movs r2, 0 - ldrsb r2, [r1, r2] - adds r1, r5, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - muls r0, r2 - ldrh r1, [r4, 0x30] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A395E - ldrh r0, [r4, 0x30] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBE - bhi _080A3956 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F - b _080A395C -_080A3956: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D -_080A395C: - strb r0, [r1] -_080A395E: - movs r6, 0x30 - ldrsh r0, [r4, r6] - movs r1, 0x3C - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] -_080A3976: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A38C4 - - thumb_func_start sub_80A397C -sub_80A397C: @ 80A397C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x14 - ble _080A398E - adds r0, r4, 0 - bl DestroyAnimSprite -_080A398E: - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A397C - - thumb_func_start sub_80A39C0 -sub_80A39C0: @ 80A39C0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080A3B14 @ =gTasks - adds r5, r0, r1 - ldr r4, _080A3B18 @ =gUnknown_2037F1B - ldrb r0, [r4] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - strh r0, [r5, 0x10] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8076B2C - strh r0, [r5, 0x1C] - ldrb r0, [r4] - movs r1, 0 - bl sub_8076B2C - strh r0, [r5, 0x1E] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0x1 - bne _080A3A28 - movs r1, 0x1 -_080A3A28: - strh r1, [r5, 0x12] - movs r3, 0x12 - ldrsh r0, [r5, r3] - lsls r0, 6 - movs r1, 0x38 - subs r1, r0 - strh r1, [r5, 0x1A] - ldrh r0, [r5, 0x16] - subs r0, r1 - ldrh r1, [r5, 0x14] - adds r0, r1 - strh r0, [r5, 0x18] - ldr r0, _080A3B1C @ =gUnknown_83E2FF0 - movs r2, 0x18 - ldrsh r1, [r5, r2] - movs r3, 0x1A - ldrsh r2, [r5, r3] - ldrb r3, [r5, 0x10] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xC] - cmp r0, 0x40 - bne _080A3A60 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A3A60: - ldr r4, _080A3B20 @ =gSprites - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xA - strh r1, [r0, 0x2E] - movs r2, 0xC - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x18] - strh r1, [r0, 0x30] - movs r3, 0xC - ldrsh r0, [r5, r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - movs r1, 0x1C - ldrsh r0, [r5, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r5, r3] - muls r1, r0 - ldrh r0, [r5, 0x14] - subs r0, r1 - strh r0, [r2, 0x32] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x1A] - strh r1, [r0, 0x34] - movs r1, 0xC - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r2, 0x1E - ldrsh r0, [r5, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r2, [r5, r3] - muls r0, r2 - ldrh r2, [r5, 0x16] - adds r0, r2 - strh r0, [r1, 0x36] - movs r3, 0xC - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl sub_80A3F04 - movs r1, 0xC - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x38] - movs r2, 0xC - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl sub_8075068 - ldr r0, _080A3B24 @ =sub_80A3B28 - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A3B14: .4byte gTasks -_080A3B18: .4byte gUnknown_2037F1B -_080A3B1C: .4byte gUnknown_83E2FF0 -_080A3B20: .4byte gSprites -_080A3B24: .4byte sub_80A3B28 - thumb_func_end sub_80A39C0 - - thumb_func_start sub_80A3B28 -sub_80A3B28: @ 80A3B28 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080A3B6C @ =gTasks - adds r6, r0, r1 - movs r0, 0xC - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A3B70 @ =gSprites - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r5, [r6, r1] - cmp r5, 0x7 - bne _080A3B50 - b _080A3D80 -_080A3B50: - cmp r5, 0x7 - bgt _080A3B9E - cmp r5, 0x3 - bne _080A3B5A - b _080A3C72 -_080A3B5A: - cmp r5, 0x3 - bgt _080A3B74 - cmp r5, 0x1 - beq _080A3C04 - cmp r5, 0x1 - bgt _080A3C54 - cmp r5, 0 - beq _080A3BE6 - b _080A3EFC - .align 2, 0 -_080A3B6C: .4byte gTasks -_080A3B70: .4byte gSprites -_080A3B74: - cmp r5, 0x5 - bne _080A3B7A - b _080A3CE8 -_080A3B7A: - cmp r5, 0x5 - ble _080A3B80 - b _080A3D62 -_080A3B80: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080A3B96 - b _080A3EFC -_080A3B96: - movs r0, 0x5 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3B9E: - cmp r5, 0xB - bne _080A3BA4 - b _080A3E64 -_080A3BA4: - cmp r5, 0xB - bgt _080A3BD2 - cmp r5, 0x9 - bne _080A3BAE - b _080A3DD2 -_080A3BAE: - cmp r5, 0x9 - ble _080A3BB4 - b _080A3E48 -_080A3BB4: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080A3BCA - b _080A3EFC -_080A3BCA: - movs r0, 0x9 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3BD2: - cmp r5, 0xD - bne _080A3BD8 - b _080A3ED6 -_080A3BD8: - cmp r5, 0xD - bge _080A3BDE - b _080A3EB6 -_080A3BDE: - cmp r5, 0xFF - bne _080A3BE4 - b _080A3EE6 -_080A3BE4: - b _080A3EFC -_080A3BE6: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080A3BFC - b _080A3EFC -_080A3BFC: - movs r0, 0x1 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3C04: - ldrh r2, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r2, r3 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x14] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x16] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - ldrh r0, [r6, 0x10] - adds r0, 0x2 - strh r0, [r6, 0x10] - strh r5, [r6, 0xE] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3C54: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080A3C6A - b _080A3EFC -_080A3C6A: - movs r0, 0x3 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3C72: - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r1, r0 - ldrh r0, [r6, 0x14] - subs r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r1, 0x1E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r2, 0x12 - ldrsh r1, [r6, r2] - muls r1, r0 - ldrh r0, [r6, 0x16] - subs r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - movs r0, 0x2 - strh r0, [r6, 0xE] - ldrh r0, [r6, 0x10] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3CE8: - ldrh r1, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r1, r3 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r0, r1 - ldrh r1, [r6, 0x14] - adds r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r2, 0x1E - ldrsh r0, [r6, r2] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r0, r1 - ldrh r1, [r6, 0x16] - adds r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - subs r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x3 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3D62: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080A3D78 - b _080A3EFC -_080A3D78: - movs r0, 0x7 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3D80: - ldrh r2, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r2, r3 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x14] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x16] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - adds r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x4 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3DD2: - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r1, r0 - ldrh r0, [r6, 0x14] - subs r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r1, 0x1E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r2, 0x12 - ldrsh r1, [r6, r2] - muls r0, r1 - ldrh r3, [r6, 0x16] - adds r0, r3 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - movs r0, 0x5 - strh r0, [r6, 0xE] - ldrh r0, [r6, 0x10] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3E48: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080A3EFC - movs r0, 0xB - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3E64: - ldrh r2, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r2, r0 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x18] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x1A] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - subs r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x6 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3EB6: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080A3EFC - adds r0, r4, 0 - bl DestroySprite - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3ED6: - movs r1, 0x20 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A3EFC - adds r0, r2, 0 - bl DestroyAnimVisualTask - b _080A3EFC -_080A3EE6: - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080A3EFC - movs r0, 0 - strh r0, [r6, 0xA] - ldrh r0, [r6, 0x26] -_080A3EFA: - strh r0, [r6, 0x8] -_080A3EFC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A3B28 - - thumb_func_start sub_80A3F04 -sub_80A3F04: @ 80A3F04 - push {lr} - movs r2, 0x8 - movs r3, 0x36 - ldrsh r1, [r0, r3] - movs r3, 0x22 - ldrsh r0, [r0, r3] - cmp r1, r0 - bge _080A3F1A - negs r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 -_080A3F1A: - lsls r0, r2, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80A3F04 - - thumb_func_start sub_80A3F24 -sub_80A3F24: @ 80A3F24 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - ldrh r0, [r6, 0x24] - adds r0, 0x1 - strh r0, [r6, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080A3FBA - movs r0, 0 - strh r0, [r6, 0x24] - ldr r0, _080A3FC4 @ =gSprites - mov r8, r0 - movs r2, 0xC - ldrsh r1, [r6, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrh r1, [r0, 0x24] - ldrh r2, [r0, 0x20] - adds r1, r2 - ldrh r2, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r2, r0 - ldr r0, _080A3FC8 @ =gUnknown_83E2FF0 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - ldrb r3, [r6, 0x10] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080A3FBA - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - mov r0, r8 - adds r4, r5, r0 - strh r7, [r4, 0x3A] - movs r0, 0xC - strh r0, [r4, 0x3C] - ldr r0, _080A3FCC @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldrh r2, [r6, 0x22] - movs r0, 0x1 - ands r0, r2 - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r6, 0x10] - adds r4, 0x43 - strb r0, [r4] - mov r0, r8 - adds r0, 0x1C - adds r5, r0 - ldr r0, _080A3FD0 @ =sub_80A3FD4 - str r0, [r5] -_080A3FBA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3FC4: .4byte gSprites -_080A3FC8: .4byte gUnknown_83E2FF0 -_080A3FCC: .4byte gTasks -_080A3FD0: .4byte sub_80A3FD4 - thumb_func_end sub_80A3F24 - - thumb_func_start sub_80A3FD4 -sub_80A3FD4: @ 80A3FD4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A4036 - movs r0, 0 - strh r0, [r4, 0x2E] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A4036 - ldr r3, _080A403C @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080A4036: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A403C: .4byte gTasks - thumb_func_end sub_80A3FD4 - - thumb_func_start sub_80A4040 -sub_80A4040: @ 80A4040 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080A4054 @ =gUnknown_2037F02 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A405C - ldr r0, _080A4058 @ =gUnknown_2037F1A - b _080A405E - .align 2, 0 -_080A4054: .4byte gUnknown_2037F02 -_080A4058: .4byte gUnknown_2037F1A -_080A405C: - ldr r0, _080A407C @ =gUnknown_2037F1B -_080A405E: - ldrb r6, [r0] - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A4088 - movs r0, 0 - strh r0, [r4, 0x36] - ldr r1, _080A4080 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x32] - ldr r0, _080A4084 @ =0x0000fff0 - b _080A4098 - .align 2, 0 -_080A407C: .4byte gUnknown_2037F1B -_080A4080: .4byte gUnknown_2037F02 -_080A4084: .4byte 0x0000fff0 -_080A4088: - movs r0, 0x1 - strh r0, [r4, 0x36] - ldr r1, _080A40BC @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r4, 0x32] - movs r0, 0x80 - lsls r0, 1 -_080A4098: - strh r0, [r4, 0x20] - adds r7, r1, 0 - adds r5, r7, 0 - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x34] - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080A40CE - cmp r0, 0x1 - bgt _080A40C0 - cmp r0, 0 - beq _080A40CA - b _080A4138 - .align 2, 0 -_080A40BC: .4byte gUnknown_2037F02 -_080A40C0: - cmp r0, 0x2 - beq _080A40D4 - cmp r0, 0x3 - beq _080A4100 - b _080A4138 -_080A40CA: - ldrh r0, [r5] - b _080A40E4 -_080A40CE: - ldrh r0, [r5] - strh r0, [r4, 0x22] - b _080A411A -_080A40D4: - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5] - adds r0, r5 -_080A40E4: - strh r0, [r4, 0x22] - adds r0, r6, 0 - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080A4138 -_080A4100: - ldr r0, _080A4144 @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r7, [r7] - adds r0, r7 - strh r0, [r4, 0x22] - movs r0, 0x1 - bl GetAnimBankSpriteId -_080A411A: - adds r0, r6, 0 - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_080A4138: - ldr r0, _080A4148 @ =sub_80A414C - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4144: .4byte gUnknown_2037F1B -_080A4148: .4byte sub_80A414C - thumb_func_end sub_80A4040 - - thumb_func_start sub_80A414C -sub_80A414C: @ 80A414C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x3C - ldrsh r3, [r4, r0] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x30 - ldrsh r2, [r4, r1] - ldr r1, _080A41A0 @ =gUnknown_825E074 - movs r5, 0x2E - ldrsh r0, [r4, r5] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r2 - asrs r0, 8 - strh r0, [r4, 0x26] - movs r2, 0x32 - ldrsh r0, [r4, r2] - muls r0, r3 - strh r0, [r4, 0x24] - movs r5, 0x34 - ldrsh r0, [r4, r5] - muls r0, r3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A41A4 - movs r2, 0x24 - ldrsh r0, [r4, r2] - movs r5, 0x20 - ldrsh r1, [r4, r5] - adds r0, r1 - cmp r0, 0xF7 - ble _080A41BC - b _080A41B6 - .align 2, 0 -_080A41A0: .4byte gUnknown_825E074 -_080A41A4: - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x20 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bgt _080A41BC -_080A41B6: - adds r0, r4, 0 - bl move_anim_8074EE0 -_080A41BC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A414C - - thumb_func_start sub_80A41C4 -sub_80A41C4: @ 80A41C4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080A41E4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080A41E8 - cmp r0, 0x1 - beq _080A421C - b _080A4276 - .align 2, 0 -_080A41E4: .4byte gTasks -_080A41E8: - ldr r0, _080A4214 @ =0x0000274f - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r2, 0x80 - lsls r2, 1 - adds r4, r2, 0 - adds r0, r4 - strh r0, [r5, 0x18] - ldr r0, _080A4218 @ =0x000027b0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - adds r0, r4 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080A4276 - .align 2, 0 -_080A4214: .4byte 0x0000274f -_080A4218: .4byte 0x000027b0 -_080A421C: - ldrh r0, [r5, 0x1A] - adds r0, 0x1 - movs r7, 0 - strh r0, [r5, 0x1A] - lsls r0, 16 - cmp r0, 0 - blt _080A4276 - strh r7, [r5, 0x1A] - ldrh r0, [r5, 0x18] - ldrb r2, [r5, 0x1C] - ldr r4, _080A4290 @ =gUnknown_83E30F0 - movs r3, 0x1E - ldrsh r1, [r5, r3] - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r5, 0x20] - ldrb r2, [r5, 0x1C] - movs r3, 0x1E - ldrsh r1, [r5, r3] - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - bne _080A4276 - strh r7, [r5, 0x1C] - ldrh r0, [r5, 0x1E] - adds r0, 0x1 - strh r0, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bne _080A4276 - strh r7, [r5, 0x1E] -_080A4276: - ldr r0, _080A4294 @ =gUnknown_2037F02 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080A428A - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A428A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4290: .4byte gUnknown_83E30F0 -_080A4294: .4byte gUnknown_2037F02 - thumb_func_end sub_80A41C4 - - thumb_func_start sub_80A4298 -sub_80A4298: @ 80A4298 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r1, _080A42B0 @ =gUnknown_2037F02 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080A42B4 - adds r0, r6, 0 - bl DestroyAnimSprite - b _080A438E - .align 2, 0 -_080A42B0: .4byte gUnknown_2037F02 -_080A42B4: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080A42C4 - ldr r4, _080A42C0 @ =gUnknown_2037F1A - b _080A42C6 - .align 2, 0 -_080A42C0: .4byte gUnknown_2037F1A -_080A42C4: - ldr r4, _080A4300 @ =gUnknown_2037F1B -_080A42C6: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080A4304 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x8] - strh r1, [r6, 0x2E] - movs r3, 0x2 - ldrsh r1, [r0, r3] - adds r7, r0, 0 - cmp r1, 0 - bne _080A4308 - ldrh r0, [r7, 0x4] - adds r0, r5 - strh r0, [r6, 0x20] - ldrh r0, [r7, 0x6] - adds r0, r2 - strh r0, [r6, 0x22] - strh r5, [r6, 0x38] - strh r2, [r6, 0x3A] - b _080A4318 - .align 2, 0 -_080A4300: .4byte gUnknown_2037F1B -_080A4304: .4byte gUnknown_2037F02 -_080A4308: - strh r5, [r6, 0x20] - strh r2, [r6, 0x22] - ldrh r0, [r7, 0x4] - adds r0, r5 - strh r0, [r6, 0x38] - ldrh r0, [r7, 0x6] - adds r0, r2 - strh r0, [r6, 0x3A] -_080A4318: - ldrh r4, [r6, 0x20] - lsls r0, r4, 4 - strh r0, [r6, 0x30] - ldrh r5, [r6, 0x22] - lsls r0, r5, 4 - strh r0, [r6, 0x32] - movs r1, 0x38 - ldrsh r0, [r6, r1] - movs r2, 0x20 - ldrsh r1, [r6, r2] - subs r0, r1 - lsls r0, 4 - movs r3, 0x8 - ldrsh r1, [r7, r3] - bl __divsi3 - strh r0, [r6, 0x34] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x22 - ldrsh r1, [r6, r2] - subs r0, r1 - lsls r0, 4 - movs r3, 0x8 - ldrsh r1, [r7, r3] - bl __divsi3 - strh r0, [r6, 0x36] - ldrh r0, [r6, 0x38] - subs r0, r4 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r6, 0x3A] - subs r1, r5 - lsls r1, 16 - asrs r1, 16 - bl sub_8075B30 - lsls r0, 16 - lsrs r4, r0, 16 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A437A - ldr r1, _080A4398 @ =0xffff8000 - adds r0, r4, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_080A437A: - movs r3, 0x80 - lsls r3, 1 - str r4, [sp] - adds r0, r6, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8075A1C - ldr r0, _080A439C @ =sub_80A43A0 - str r0, [r6, 0x1C] -_080A438E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4398: .4byte 0xffff8000 -_080A439C: .4byte sub_80A43A0 - thumb_func_end sub_80A4298 - - thumb_func_start sub_80A43A0 -sub_80A43A0: @ 80A43A0 - push {r4,lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x2E] - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080A43D0 - ldrh r0, [r2, 0x34] - ldrh r4, [r2, 0x30] - adds r0, r4 - strh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - ldrh r4, [r2, 0x32] - adds r1, r4 - strh r1, [r2, 0x32] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r2, 0x22] - subs r0, r3, 0x1 - strh r0, [r2, 0x2E] - b _080A43D6 -_080A43D0: - adds r0, r2, 0 - bl move_anim_8074EE0 -_080A43D6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A43A0 - - thumb_func_start sub_80A43DC -sub_80A43DC: @ 80A43DC - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A43F2 - adds r0, r2, 0 - bl DestroyAnimSprite -_080A43F2: - pop {r0} - bx r0 - thumb_func_end sub_80A43DC - - thumb_func_start sub_80A43F8 -sub_80A43F8: @ 80A43F8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A4418 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A4420 - ldr r2, _080A441C @ =gUnknown_2037F02 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - b _080A442C - .align 2, 0 -_080A4418: .4byte gUnknown_2037F1A -_080A441C: .4byte gUnknown_2037F02 -_080A4420: - ldr r0, _080A4444 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] -_080A442C: - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080A4448 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldr r1, _080A444C @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4444: .4byte gUnknown_2037F02 -_080A4448: .4byte sub_8074F6C -_080A444C: .4byte DestroyAnimSprite - thumb_func_end sub_80A43F8 - - thumb_func_start sub_80A4450 -sub_80A4450: @ 80A4450 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080A4488 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A446A - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080A446A: - ldr r0, _080A448C @ =sub_80A43DC - str r0, [r5, 0x1C] - ldr r4, _080A4490 @ =gUnknown_2037F02 - movs r0, 0 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_8074FF8 - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4488: .4byte gUnknown_2037F1A -_080A448C: .4byte sub_80A43DC -_080A4490: .4byte gUnknown_2037F02 - thumb_func_end sub_80A4450 - - thumb_func_start sub_80A4494 -sub_80A4494: @ 80A4494 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080A44D4 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x38] - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldr r1, _080A44D8 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A44DC @ =sub_8074E70 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A44D4: .4byte gUnknown_2037F02 -_080A44D8: .4byte move_anim_8074EE0 -_080A44DC: .4byte sub_8074E70 - thumb_func_end sub_80A4494 - - thumb_func_start sub_80A44E0 -sub_80A44E0: @ 80A44E0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080A4530 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A4514 - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] -_080A4514: - ldr r0, _080A4534 @ =sub_80A46CC - str r0, [r5, 0x1C] - ldr r0, _080A4538 @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080A453C - ldrh r0, [r3] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x20] - b _080A4550 - .align 2, 0 -_080A4530: .4byte gUnknown_2037F1B -_080A4534: .4byte sub_80A46CC -_080A4538: .4byte gUnknown_2037F02 -_080A453C: - ldrh r0, [r5, 0x20] - ldrh r1, [r3] - subs r0, r1 - strh r0, [r5, 0x20] - adds r2, r5, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080A4550: - ldrh r0, [r3, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldr r1, _080A4584 @ =0xfffffc00 - adds r0, r1, 0 - ldrh r2, [r5, 0x30] - adds r1, r0, r2 - strh r1, [r5, 0x30] - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] - ldrh r0, [r3, 0x4] - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A457E - negs r0, r1 - strh r0, [r5, 0x30] -_080A457E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4584: .4byte 0xfffffc00 - thumb_func_end sub_80A44E0 - - thumb_func_start sub_80A4588 -sub_80A4588: @ 80A4588 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r0, _080A45A4 @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080A45A8 - cmp r0, 0x1 - ble _080A4624 - cmp r0, 0x2 - beq _080A45C8 - b _080A4624 - .align 2, 0 -_080A45A4: .4byte gUnknown_2037F02 -_080A45A8: - ldr r5, _080A45C4 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r5] - eors r4, r0 - adds r0, r4, 0 - b _080A4634 - .align 2, 0 -_080A45C4: .4byte gUnknown_2037F1B -_080A45C8: - ldr r5, _080A4620 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5] - movs r2, 0x2 - mov r8, r2 - mov r1, r8 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A463E - ldrb r0, [r5] - mov r2, r8 - eors r0, r2 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - lsrs r7, r0, 1 - ldrb r0, [r5] - mov r1, r8 - eors r0, r1 - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - lsrs r4, r0, 1 - b _080A463E - .align 2, 0 -_080A4620: .4byte gUnknown_2037F1B -_080A4624: - ldr r4, _080A4670 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r4] -_080A4634: - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r4, r0, 24 -_080A463E: - strh r7, [r6, 0x20] - strh r4, [r6, 0x22] - ldr r0, _080A4670 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A4656 - ldrh r0, [r6, 0x22] - adds r0, 0x8 - strh r0, [r6, 0x22] -_080A4656: - ldr r0, _080A4674 @ =sub_80A46CC - str r0, [r6, 0x1C] - ldr r0, _080A4678 @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080A467C - ldrh r0, [r3] - ldrh r1, [r6, 0x20] - adds r0, r1 - strh r0, [r6, 0x20] - b _080A4690 - .align 2, 0 -_080A4670: .4byte gUnknown_2037F1B -_080A4674: .4byte sub_80A46CC -_080A4678: .4byte gUnknown_2037F02 -_080A467C: - ldrh r0, [r6, 0x20] - ldrh r1, [r3] - subs r0, r1 - strh r0, [r6, 0x20] - adds r2, r6, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080A4690: - ldrh r0, [r3, 0x2] - ldrh r2, [r6, 0x22] - adds r0, r2 - strh r0, [r6, 0x22] - ldr r1, _080A46C8 @ =0xfffffc00 - adds r0, r1, 0 - ldrh r2, [r6, 0x30] - adds r1, r0, r2 - strh r1, [r6, 0x30] - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - ldrh r2, [r6, 0x32] - adds r0, r2 - strh r0, [r6, 0x32] - ldrh r0, [r3, 0x4] - strh r0, [r6, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A46BE - negs r0, r1 - strh r0, [r6, 0x30] -_080A46BE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A46C8: .4byte 0xfffffc00 - thumb_func_end sub_80A4588 - - thumb_func_start sub_80A46CC -sub_80A46CC: @ 80A46CC - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x34] - adds r0, r1, r2 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080A46EE - adds r0, r1, 0 - adds r0, 0x18 - b _080A46F2 -_080A46EE: - adds r0, r1, 0 - subs r0, 0x18 -_080A46F2: - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - subs r0, 0x18 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080A4728 - ldr r1, _080A4730 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - movs r0, 0x3 - strh r0, [r4, 0x2E] - ldr r0, _080A4734 @ =sub_8074C44 - str r0, [r4, 0x1C] -_080A4728: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4730: .4byte DestroyAnimSprite -_080A4734: .4byte sub_8074C44 - thumb_func_end sub_80A46CC - - thumb_func_start sub_80A4738 -sub_80A4738: @ 80A4738 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0x1 - ble _080A47DC - ldrh r1, [r5, 0x34] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A4794 - adds r3, r5, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - strb r0, [r3] - ldr r4, _080A4790 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r3, [r0] - adds r1, r2, 0 - ands r1, r3 - strb r1, [r0] - movs r0, 0x30 - ldrsh r1, [r5, r0] - 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] - b _080A47CA - .align 2, 0 -_080A4790: .4byte gSprites -_080A4794: - adds r1, r5, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r3, _080A47D8 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r5, 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] - movs r0, 0x30 - ldrsh r1, [r5, 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] -_080A47CA: - movs r0, 0 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - b _080A47E0 - .align 2, 0 -_080A47D8: .4byte gSprites -_080A47DC: - adds r0, r1, 0x1 - strh r0, [r5, 0x32] -_080A47E0: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xA - bne _080A4810 - movs r2, 0x2E - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080A4818 @ =gSprites - adds r0, r4 - bl DestroySprite - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r0, r5, 0 - bl DestroyAnimSprite -_080A4810: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4818: .4byte gSprites - thumb_func_end sub_80A4738 - - thumb_func_start sub_80A481C -sub_80A481C: @ 80A481C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080A483C @ =gUnknown_2037F02 - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080A4840 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A4844 - ldrh r0, [r5, 0x20] - ldrh r1, [r4] - subs r0, r1 - b _080A484A - .align 2, 0 -_080A483C: .4byte gUnknown_2037F02 -_080A4840: .4byte gUnknown_2037F1A -_080A4844: - ldrh r0, [r4] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080A484A: - strh r0, [r5, 0x20] - ldr r4, _080A4878 @ =gUnknown_2037F02 - ldrb r1, [r4, 0xA] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x6] - negs r0, r0 - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x34] - ldr r1, _080A487C @ =sub_80A4880 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4878: .4byte gUnknown_2037F02 -_080A487C: .4byte sub_80A4880 - thumb_func_end sub_80A481C - - thumb_func_start sub_80A4880 -sub_80A4880: @ 80A4880 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x64 - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x7F - bgt _080A48AC - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0 - b _080A48B2 -_080A48AC: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0xE -_080A48B2: - strb r0, [r1] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x2E] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - adds r0, 0x82 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080A48E8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A48E8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4880 - - thumb_func_start sub_80A48F0 -sub_80A48F0: @ 80A48F0 - push {r4-r6,lr} - adds r5, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A4906 - ldr r1, _080A4964 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - adds r0, 0x8 - strh r0, [r1, 0x2] -_080A4906: - ldr r6, _080A4968 @ =gUnknown_2037F1A - ldrb r0, [r6] - movs r1, 0 - bl sub_8074844 - lsls r0, 24 - ldr r4, _080A4964 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8074844 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A4944 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A496C -_080A4944: - ldrb r0, [r6] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r5, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - b _080A4984 - .align 2, 0 -_080A4964: .4byte gUnknown_2037F02 -_080A4968: .4byte gUnknown_2037F1A -_080A496C: - ldrb r0, [r6] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] -_080A4984: - ldr r0, _080A49C8 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080A49CC @ =0x00002828 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r5, 0x32] - movs r4, 0x10 - movs r0, 0x10 - strh r0, [r5, 0x3C] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r0, [r5, 0x3C] - lsls r1, r0, 8 - subs r4, r0 - orrs r1, r4 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r0, _080A49D0 @ =sub_80A49D4 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A49C8: .4byte gUnknown_2037F02 -_080A49CC: .4byte 0x00002828 -_080A49D0: .4byte sub_80A49D4 - thumb_func_end sub_80A48F0 - - thumb_func_start sub_80A49D4 -sub_80A49D4: @ 80A49D4 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x60 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A4A32 - movs r0, 0 - strh r0, [r4, 0x30] - ldr r1, _080A4A7C @ =gPlttBufferFaded - movs r2, 0x32 - ldrsh r0, [r4, r2] - adds r0, 0x1 - lsls r0, 1 - adds r0, r1 - ldrh r5, [r0] - movs r2, 0 - adds r6, r1, 0 - adds r3, r6, 0 -_080A4A0C: - movs r1, 0x32 - ldrsh r0, [r4, r1] - adds r2, 0x1 - adds r0, r2 - lsls r1, r0, 1 - adds r1, r3 - adds r0, 0x1 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - cmp r2, 0x5 - ble _080A4A0C - movs r2, 0x32 - ldrsh r0, [r4, r2] - adds r0, 0x7 - lsls r0, 1 - adds r0, r6 - strh r5, [r0] -_080A4A32: - ldrh r2, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x6 - ble _080A4A6C - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _080A4A80 - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A4A6C - movs r0, 0 - strh r0, [r4, 0x3A] - subs r2, 0x1 - strh r2, [r4, 0x3C] - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_080A4A6C: - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A4A80 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080A4AC2 - .align 2, 0 -_080A4A7C: .4byte gPlttBufferFaded -_080A4A80: - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A4AC2 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r2, 0x1 - strh r2, [r4, 0x3C] - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080A4AC2 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080A4AC8 @ =sub_8074F88 - str r0, [r4, 0x1C] -_080A4AC2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4AC8: .4byte sub_8074F88 - thumb_func_end sub_80A49D4 - - thumb_func_start sub_80A4ACC -sub_80A4ACC: @ 80A4ACC - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080A4B2C @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A4B30 @ =0x0000ffe8 - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - strh r5, [r4, 0x34] - strh r5, [r4, 0x36] - strh r5, [r4, 0x3A] - movs r0, 0x10 - strh r0, [r4, 0x3C] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r4, 0x3C] - lsls r1, 8 - ldrh r0, [r4, 0x3A] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r0, _080A4B34 @ =sub_80A4B38 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4B2C: .4byte gUnknown_2037F1B -_080A4B30: .4byte 0x0000ffe8 -_080A4B34: .4byte sub_80A4B38 - thumb_func_end sub_80A4ACC - - thumb_func_start sub_80A4B38 -sub_80A4B38: @ 80A4B38 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080A4B46 - b _080A4C90 -_080A4B46: - lsls r0, 2 - ldr r1, _080A4B50 @ =_080A4B54 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A4B50: .4byte _080A4B54 - .align 2, 0 -_080A4B54: - .4byte _080A4B68 - .4byte _080A4BCC - .4byte _080A4BE8 - .4byte _080A4C66 - .4byte _080A4C7A -_080A4B68: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - cmp r0, 0 - bgt _080A4B76 - b _080A4C90 -_080A4B76: - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A4B98 - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080A4BA6 - adds r0, r1, 0x1 - strh r0, [r4, 0x3A] - b _080A4BA6 -_080A4B98: - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A4BA6 - subs r0, r1, 0x1 - strh r0, [r4, 0x3C] -_080A4BA6: - ldrh r1, [r4, 0x3C] - lsls r1, 8 - ldrh r0, [r4, 0x3A] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080A4C90 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080A4C90 - strh r0, [r4, 0x30] - b _080A4C72 -_080A4BCC: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A4C90 - movs r0, 0 - strh r0, [r4, 0x30] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080A4C72 -_080A4BE8: - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x4 - bl sub_80A4C98 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080A4C0A - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_080A4C0A: - ldrh r0, [r4, 0x32] - adds r1, r0, 0x1 - strh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080A4C90 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080A4C30 - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A4C3E - subs r0, r1, 0x1 - strh r0, [r4, 0x3A] - b _080A4C3E -_080A4C30: - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080A4C3E - adds r0, r1, 0x1 - strh r0, [r4, 0x3C] -_080A4C3E: - ldrh r1, [r4, 0x3C] - lsls r1, 8 - ldrh r0, [r4, 0x3A] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x3A - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080A4C90 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080A4C90 - strh r1, [r4, 0x30] - strh r1, [r4, 0x32] - b _080A4C72 -_080A4C66: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080A4C72: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080A4C90 -_080A4C7A: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyAnimSprite -_080A4C90: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4B38 - - thumb_func_start sub_80A4C98 -sub_80A4C98: @ 80A4C98 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0xB - bgt _080A4CAA - ldrh r0, [r4, 0x36] - adds r0, 0x2 - strh r0, [r4, 0x36] -_080A4CAA: - ldrh r5, [r4, 0x34] - adds r0, r5, 0 - subs r0, 0x12 - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - cmp r0, 0x17 - bhi _080A4CC0 - ldrh r0, [r4, 0x36] - subs r0, 0x2 - strh r0, [r4, 0x36] -_080A4CC0: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2F - ble _080A4CCE - ldrh r0, [r4, 0x36] - adds r0, 0x2 - strh r0, [r4, 0x36] -_080A4CCE: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0x9 - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl __divsi3 - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - bge _080A4CF4 - movs r1, 0x26 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x26] -_080A4CF4: - adds r0, r5, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _080A4D04 - movs r0, 0 - strh r0, [r4, 0x34] -_080A4D04: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A4C98 - - thumb_func_start sub_80A4D0C -sub_80A4D0C: @ 80A4D0C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080A4D50 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A4D20 - adds r0, r4, 0 - bl sub_8074FCC -_080A4D20: - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_8074FF8 - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x32] - ldr r1, _080A4D54 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A4D58 @ =sub_8074D00 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4D50: .4byte gUnknown_2037F02 -_080A4D54: .4byte DestroyAnimSprite -_080A4D58: .4byte sub_8074D00 - thumb_func_end sub_80A4D0C - - thumb_func_start sub_80A4D5C -sub_80A4D5C: @ 80A4D5C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080A4D70 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A4D78 - ldr r0, _080A4D74 @ =gUnknown_2037F1A - b _080A4D7A - .align 2, 0 -_080A4D70: .4byte gUnknown_2037F02 -_080A4D74: .4byte gUnknown_2037F1A -_080A4D78: - ldr r0, _080A4DBC @ =gUnknown_2037F1B -_080A4D7A: - ldrb r6, [r0] - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080A4DC4 - movs r1, 0x2 - adds r0, r6, 0 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A4DC4 - ldr r4, _080A4DC0 @ =gUnknown_2037F02 - ldrb r1, [r4, 0xC] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - adds r0, r6, 0 - bl sub_8076D9C - movs r2, 0 - ldrsh r1, [r4, r2] - adds r0, r5, 0 - bl sub_8074FF8 - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - b _080A4E14 - .align 2, 0 -_080A4DBC: .4byte gUnknown_2037F1B -_080A4DC0: .4byte gUnknown_2037F02 -_080A4DC4: - ldr r4, _080A4DE4 @ =gUnknown_2037F02 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080A4DE8 - adds r0, r6, 0 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x1 - b _080A4DFA - .align 2, 0 -_080A4DE4: .4byte gUnknown_2037F02 -_080A4DE8: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 -_080A4DFA: - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - ldr r0, _080A4E34 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r0, r5, 0 - bl sub_8074FF8 -_080A4E14: - ldr r1, _080A4E34 @ =gUnknown_2037F02 - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x32] - ldr r1, _080A4E38 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A4E3C @ =sub_8074D00 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4E34: .4byte gUnknown_2037F02 -_080A4E38: .4byte DestroyAnimSprite -_080A4E3C: .4byte sub_8074D00 - thumb_func_end sub_80A4D5C - - thumb_func_start sub_80A4E40 -sub_80A4E40: @ 80A4E40 - push {r4,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r0, _080A4E6C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A4E74 - ldr r0, _080A4E70 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - b _080A4E8E - .align 2, 0 -_080A4E6C: .4byte gUnknown_2037F1A -_080A4E70: .4byte gUnknown_2037F02 -_080A4E74: - ldr r2, _080A4E98 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080A4E8E: - ldr r0, _080A4E9C @ =sub_80A4EA0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4E98: .4byte gUnknown_2037F02 -_080A4E9C: .4byte sub_80A4EA0 - thumb_func_end sub_80A4E40 - - thumb_func_start sub_80A4EA0 -sub_80A4EA0: @ 80A4EA0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080A4ED8 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r0, 0x1E - subs r0, r1 - movs r1, 0x3 - bl __divsi3 - strh r0, [r4, 0x26] - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsls r0, 18 - asrs r0, 16 - movs r1, 0x3 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080A4ED8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A4EEC - adds r0, r4, 0 - bl DestroyAnimSprite -_080A4EEC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4EA0 - - thumb_func_start sub_80A4EF4 -sub_80A4EF4: @ 80A4EF4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r0, _080A4F24 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A4F2C - ldr r1, _080A4F28 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x1 - strh r0, [r4, 0x34] - b _080A4F4A - .align 2, 0 -_080A4F24: .4byte gUnknown_2037F1A -_080A4F28: .4byte gUnknown_2037F02 -_080A4F2C: - ldr r2, _080A4F54 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldr r0, _080A4F58 @ =0x0000ffff - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080A4F4A: - ldr r0, _080A4F5C @ =sub_80A4F60 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4F54: .4byte gUnknown_2037F02 -_080A4F58: .4byte 0x0000ffff -_080A4F5C: .4byte sub_80A4F60 - thumb_func_end sub_80A4EF4 - - thumb_func_start sub_80A4F60 -sub_80A4F60: @ 80A4F60 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl __divsi3 - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x36 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 1 - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080A4FA4 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080A4FA4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4F60 - - thumb_func_start sub_80A4FAC -sub_80A4FAC: @ 80A4FAC - push {lr} - ldrh r1, [r0, 0x20] - subs r1, 0x20 - strh r1, [r0, 0x20] - ldrh r1, [r0, 0x22] - subs r1, 0x20 - strh r1, [r0, 0x22] - movs r1, 0x14 - strh r1, [r0, 0x2E] - ldr r1, _080A4FCC @ =sub_8074C44 - str r1, [r0, 0x1C] - ldr r1, _080A4FD0 @ =sub_80A4FD4 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080A4FCC: .4byte sub_8074C44 -_080A4FD0: .4byte sub_80A4FD4 - thumb_func_end sub_80A4FAC - - thumb_func_start sub_80A4FD4 -sub_80A4FD4: @ 80A4FD4 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r6, [r5, 0x38] - movs r1, 0x1 - adds r0, r1, 0 - ands r0, r6 - cmp r0, 0 - beq _080A4FEA - cmp r0, 0x1 - beq _080A5004 - b _080A506A -_080A4FEA: - strh r1, [r5, 0x2E] - ldr r0, _080A4FFC @ =sub_8074C44 - str r0, [r5, 0x1C] - ldr r1, _080A5000 @ =sub_80A4FD4 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - b _080A506A - .align 2, 0 -_080A4FFC: .4byte sub_8074C44 -_080A5000: .4byte sub_80A4FD4 -_080A5004: - ldrh r3, [r5, 0x24] - ldrh r0, [r5, 0x20] - adds r3, r0 - movs r0, 0 - strh r3, [r5, 0x20] - ldrh r4, [r5, 0x26] - ldrh r1, [r5, 0x22] - adds r4, r1 - strh r4, [r5, 0x22] - strh r0, [r5, 0x26] - strh r0, [r5, 0x24] - movs r0, 0x8 - strh r0, [r5, 0x2E] - ldr r2, _080A5078 @ =gUnknown_83E3548 - lsls r0, r6, 16 - asrs r0, 24 - lsls r0, 1 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r3, r1 - strh r3, [r5, 0x32] - adds r2, 0x1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, r0 - strh r4, [r5, 0x36] - ldr r0, _080A507C @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A5080 @ =sub_80A5084 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - movs r0, 0x3F - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xCB - bl PlaySE12WithPanning -_080A506A: - ldrh r0, [r5, 0x38] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x38] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5078: .4byte gUnknown_83E3548 -_080A507C: .4byte sub_8075590 -_080A5080: .4byte sub_80A5084 - thumb_func_end sub_80A4FD4 - - thumb_func_start sub_80A5084 -sub_80A5084: @ 80A5084 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x38] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _080A50AC - movs r0, 0xA - strh r0, [r2, 0x2E] - ldr r0, _080A50A4 @ =sub_8074C44 - str r0, [r2, 0x1C] - ldr r1, _080A50A8 @ =sub_80A50B8 - adds r0, r2, 0 - bl StoreSpriteCallbackInData6 - b _080A50B0 - .align 2, 0 -_080A50A4: .4byte sub_8074C44 -_080A50A8: .4byte sub_80A50B8 -_080A50AC: - ldr r0, _080A50B4 @ =sub_80A4FD4 - str r0, [r2, 0x1C] -_080A50B0: - pop {r0} - bx r0 - .align 2, 0 -_080A50B4: .4byte sub_80A4FD4 - thumb_func_end sub_80A5084 - - thumb_func_start sub_80A50B8 -sub_80A50B8: @ 80A50B8 - push {r4-r7,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x6] - cmp r1, 0 - bne _080A50E0 - movs r0, 0x3 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - strh r1, [r5, 0x32] - ldr r0, _080A50D8 @ =sub_8074C44 - str r0, [r5, 0x1C] - ldr r1, _080A50DC @ =sub_80A5174 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - b _080A5160 - .align 2, 0 -_080A50D8: .4byte sub_8074C44 -_080A50DC: .4byte sub_80A5174 -_080A50E0: - ldrh r0, [r5, 0x6] - cmp r0, 0x2 - beq _080A5100 - cmp r0, 0x2 - bgt _080A50F0 - cmp r0, 0x1 - beq _080A50F6 - b _080A5114 -_080A50F0: - cmp r0, 0x3 - beq _080A5108 - b _080A5114 -_080A50F6: - ldr r6, _080A50FC @ =0x0000fff8 - adds r7, r6, 0 - b _080A5118 - .align 2, 0 -_080A50FC: .4byte 0x0000fff8 -_080A5100: - ldr r7, _080A5104 @ =0x0000fff8 - b _080A5116 - .align 2, 0 -_080A5104: .4byte 0x0000fff8 -_080A5108: - movs r7, 0x8 - ldr r6, _080A5110 @ =0x0000fff8 - b _080A5118 - .align 2, 0 -_080A5110: .4byte 0x0000fff8 -_080A5114: - movs r7, 0x8 -_080A5116: - movs r6, 0x8 -_080A5118: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080A5168 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - ldr r0, _080A516C @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A5170 @ =sub_80A5220 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 -_080A5160: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A5168: .4byte gUnknown_2037F1B -_080A516C: .4byte sub_8075590 -_080A5170: .4byte sub_80A5220 - thumb_func_end sub_80A50B8 - - thumb_func_start sub_80A5174 -sub_80A5174: @ 80A5174 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A5194 - ldrh r0, [r4, 0x30] - adds r0, 0x3 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080A51A4 - movs r0, 0x10 - b _080A51A2 -_080A5194: - ldrh r0, [r4, 0x30] - subs r0, 0x3 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _080A51A4 - movs r0, 0 -_080A51A2: - strh r0, [r4, 0x30] -_080A51A4: - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8075BE8 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080A5200 @ =0x00007fff - bl BlendPalettes - movs r3, 0x30 - ldrsh r0, [r4, r3] - cmp r0, 0x10 - bne _080A520C - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - ldrb r1, [r4, 0x5] - lsrs r1, 4 - lsls r0, r1, 5 - ldr r2, _080A5204 @ =gPlttBufferUnfaded + 0x210 - adds r0, r2 - lsls r1, 4 - ldr r3, _080A5208 @ =0x00000101 - adds r2, r3, 0 - orrs r1, r2 - movs r2, 0x4 - bl LoadPalette - movs r0, 0x3F - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xB9 - bl PlaySE12WithPanning - b _080A5214 - .align 2, 0 -_080A5200: .4byte 0x00007fff -_080A5204: .4byte gPlttBufferUnfaded + 0x210 -_080A5208: .4byte 0x00000101 -_080A520C: - cmp r0, 0 - bne _080A5214 - ldr r0, _080A521C @ =sub_80A5220 - str r0, [r4, 0x1C] -_080A5214: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A521C: .4byte sub_80A5220 - thumb_func_end sub_80A5174 - - thumb_func_start sub_80A5220 -sub_80A5220: @ 80A5220 - push {lr} - adds r2, r0, 0 - ldr r0, _080A523C @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080A5240 @ =0x0000ffff - cmp r1, r0 - bne _080A5238 - movs r0, 0 - strh r0, [r2, 0x30] - strh r0, [r2, 0x2E] - ldr r0, _080A5244 @ =sub_80A5248 - str r0, [r2, 0x1C] -_080A5238: - pop {r0} - bx r0 - .align 2, 0 -_080A523C: .4byte gUnknown_2037F02 -_080A5240: .4byte 0x0000ffff -_080A5244: .4byte sub_80A5248 - thumb_func_end sub_80A5220 - - thumb_func_start sub_80A5248 -sub_80A5248: @ 80A5248 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080A527C - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080A527C: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bne _080A5290 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A5290: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5248 - - thumb_func_start sub_80A5298 -sub_80A5298: @ 80A5298 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080A52B8 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r3, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A52BC - ldrh r0, [r3, 0x20] - subs r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - subs r0, 0x18 - strh r0, [r3, 0x22] - b _080A530E - .align 2, 0 -_080A52B8: .4byte gUnknown_2037F02 -_080A52BC: - cmp r0, 0x2 - bne _080A52D8 - ldrh r0, [r3, 0x20] - subs r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - adds r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x20 - b _080A530A -_080A52D8: - cmp r0, 0x3 - bne _080A52F4 - ldrh r0, [r3, 0x20] - adds r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - subs r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - b _080A530A -_080A52F4: - ldrh r0, [r3, 0x20] - adds r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - adds r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x30 -_080A530A: - orrs r0, r1 - strb r0, [r3, 0x3] -_080A530E: - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x10 - ldr r4, _080A5334 @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080A5338 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldr r1, _080A533C @ =sub_80A4FAC - str r1, [r3, 0x1C] - adds r0, r3, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5334: .4byte 0x000003ff -_080A5338: .4byte 0xfffffc00 -_080A533C: .4byte sub_80A4FAC - thumb_func_end sub_80A5298 - - thumb_func_start sub_80A5340 -sub_80A5340: @ 80A5340 - push {lr} - adds r3, r0, 0 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - strh r0, [r3, 0x2E] - ldr r0, _080A5368 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080A537C - cmp r0, 0x1 - bgt _080A536C - cmp r0, 0 - beq _080A5372 - b _080A538C - .align 2, 0 -_080A5368: .4byte gUnknown_2037F02 -_080A536C: - cmp r0, 0x2 - beq _080A5384 - b _080A538C -_080A5372: - ldr r0, _080A5378 @ =sub_80A5398 - b _080A538E - .align 2, 0 -_080A5378: .4byte sub_80A5398 -_080A537C: - ldr r0, _080A5380 @ =sub_80A5474 - b _080A538E - .align 2, 0 -_080A5380: .4byte sub_80A5474 -_080A5384: - ldr r0, _080A5388 @ =sub_80A54C4 - b _080A538E - .align 2, 0 -_080A5388: .4byte sub_80A54C4 -_080A538C: - ldr r0, _080A5394 @ =sub_80A5584 -_080A538E: - str r0, [r3, 0x1C] - pop {r0} - bx r0 - .align 2, 0 -_080A5394: .4byte sub_80A5584 - thumb_func_end sub_80A5340 - - thumb_func_start sub_80A5398 -sub_80A5398: @ 80A5398 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - strh r0, [r4, 0x2E] - ldr r5, _080A53D8 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - movs r2, 0x2 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - beq _080A53B6 - movs r1, 0x2 -_080A53B6: - strh r1, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080A53DC @ =gUnknown_2023D44 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - ldr r1, _080A53E0 @ =sub_80A53E8 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A53E4 @ =sub_8074DC4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A53D8: .4byte gUnknown_2037F1A -_080A53DC: .4byte gUnknown_2023D44 -_080A53E0: .4byte sub_80A53E8 -_080A53E4: .4byte sub_8074DC4 - thumb_func_end sub_80A5398 - - thumb_func_start sub_80A53E8 -sub_80A53E8: @ 80A53E8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x2E - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _080A5424 - ldr r1, _080A5464 @ =gUnknown_2023D44 - ldr r4, _080A5468 @ =gUnknown_2037F1A - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5, 0x34] - movs r1, 0 - bl sub_80758E0 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - ldr r2, _080A546C @ =0xfffffd00 - adds r1, r2, 0 - cmp r0, 0 - beq _080A5420 - movs r0, 0xC0 - lsls r0, 2 - adds r1, r0, 0 -_080A5420: - strh r1, [r5, 0x36] - strh r6, [r5, 0x38] -_080A5424: - ldrh r0, [r5, 0x36] - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r5, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_80759DC - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A545E - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080A5470 @ =sub_80A5584 - str r0, [r5, 0x1C] -_080A545E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5464: .4byte gUnknown_2023D44 -_080A5468: .4byte gUnknown_2037F1A -_080A546C: .4byte 0xfffffd00 -_080A5470: .4byte sub_80A5584 - thumb_func_end sub_80A53E8 - - thumb_func_start sub_80A5474 -sub_80A5474: @ 80A5474 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x4 - strh r0, [r4, 0x2E] - ldr r5, _080A54B4 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - movs r1, 0x3 - cmp r0, 0 - beq _080A5492 - movs r0, 0x3 - negs r0, r0 - adds r1, r0, 0 -_080A5492: - strh r1, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080A54B8 @ =gUnknown_2023D44 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - ldr r1, _080A54BC @ =sub_80A5584 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A54C0 @ =sub_8074DC4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A54B4: .4byte gUnknown_2037F1A -_080A54B8: .4byte gUnknown_2023D44 -_080A54BC: .4byte sub_80A5584 -_080A54C0: .4byte sub_8074DC4 - thumb_func_end sub_80A5474 - - thumb_func_start sub_80A54C4 -sub_80A54C4: @ 80A54C4 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A54DE - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080A54E4 @ =sub_80A54E8 - str r0, [r1, 0x1C] -_080A54DE: - pop {r0} - bx r0 - .align 2, 0 -_080A54E4: .4byte sub_80A54E8 - thumb_func_end sub_80A54C4 - - thumb_func_start sub_80A54E8 -sub_80A54E8: @ 80A54E8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A5538 - ldr r1, _080A5524 @ =gUnknown_2023D44 - ldr r4, _080A5528 @ =gUnknown_2037F1A - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5, 0x34] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A552C - movs r0, 0xFC - lsls r0, 8 - strh r0, [r5, 0x36] - movs r0, 0xC0 - lsls r0, 4 - b _080A5536 - .align 2, 0 -_080A5524: .4byte gUnknown_2023D44 -_080A5528: .4byte gUnknown_2037F1A -_080A552C: - movs r0, 0x80 - lsls r0, 3 - strh r0, [r5, 0x36] - movs r0, 0xF4 - lsls r0, 8 -_080A5536: - strh r0, [r5, 0x38] -_080A5538: - ldrh r0, [r5, 0x36] - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r5, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_80759DC - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080A5578 - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_8075980 - ldr r0, _080A5580 @ =sub_80A5584 - str r0, [r5, 0x1C] -_080A5578: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5580: .4byte sub_80A5584 - thumb_func_end sub_80A54E8 - - thumb_func_start sub_80A5584 -sub_80A5584: @ 80A5584 - push {lr} - bl DestroyAnimSprite - pop {r0} - bx r0 - thumb_func_end sub_80A5584 - - thumb_func_start sub_80A5590 -sub_80A5590: @ 80A5590 - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r1, _080A559C @ =sub_80A55A0 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080A559C: .4byte sub_80A55A0 - thumb_func_end sub_80A5590 - - thumb_func_start sub_80A55A0 -sub_80A55A0: @ 80A55A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080A55FA - cmp r5, 0x1 - bgt _080A55B6 - cmp r5, 0 - beq _080A55BC - b _080A568E -_080A55B6: - cmp r5, 0x2 - beq _080A564C - b _080A568E -_080A55BC: - strh r5, [r4, 0x30] - ldr r1, _080A5640 @ =gUnknown_2023D44 - ldr r2, _080A5644 @ =gUnknown_2037F1A - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x32] - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x34] - ldr r2, _080A5648 @ =0xfffffe00 - adds r1, r2, 0 - cmp r0, 0 - beq _080A55E4 - movs r0, 0x80 - lsls r0, 2 - adds r1, r0, 0 -_080A55E4: - strh r1, [r4, 0x36] - strh r5, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80758E0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080A55FA: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80759DC - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A568E - movs r0, 0 - strh r0, [r4, 0x30] - movs r2, 0x36 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080A568E - .align 2, 0 -_080A5640: .4byte gUnknown_2023D44 -_080A5644: .4byte gUnknown_2037F1A -_080A5648: .4byte 0xfffffe00 -_080A564C: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80759DC - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A568E - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_8075980 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A568E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A55A0 - - thumb_func_start sub_80A5694 -sub_80A5694: @ 80A5694 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A56D8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldr r1, _080A56DC @ =gUnknown_2023D44 - ldr r2, _080A56E0 @ =gUnknown_2037F1A - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - movs r4, 0 - strh r0, [r5, 0x8] - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, 24 - lsrs r2, r0, 24 - strh r2, [r5, 0xA] - strh r4, [r5, 0xC] - ldr r0, _080A56E4 @ =gUnknown_2037F02 - movs r3, 0 - ldrsh r1, [r0, r3] - cmp r1, 0 - beq _080A56E8 - cmp r1, 0x1 - beq _080A5704 - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _080A5722 - .align 2, 0 -_080A56D8: .4byte gTasks -_080A56DC: .4byte gUnknown_2023D44 -_080A56E0: .4byte gUnknown_2037F1A -_080A56E4: .4byte gUnknown_2037F02 -_080A56E8: - strh r1, [r5, 0xC] - movs r0, 0x8 - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] - movs r0, 0x3 - strh r0, [r5, 0x12] - cmp r2, 0 - bne _080A56FC - negs r0, r0 - strh r0, [r5, 0x12] -_080A56FC: - ldr r0, _080A5700 @ =sub_80A572C - b _080A5720 - .align 2, 0 -_080A5700: .4byte sub_80A572C -_080A5704: - movs r0, 0x8 - strh r0, [r5, 0xE] - movs r0, 0xC0 - lsls r0, 3 - strh r0, [r5, 0x10] - movs r1, 0xC0 - strh r1, [r5, 0x12] - cmp r2, 0 - bne _080A571E - negs r0, r0 - strh r0, [r5, 0x10] - negs r0, r1 - strh r0, [r5, 0x12] -_080A571E: - ldr r0, _080A5728 @ =sub_80A58EC -_080A5720: - str r0, [r5] -_080A5722: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5728: .4byte sub_80A58EC - thumb_func_end sub_80A5694 - - thumb_func_start sub_80A572C -sub_80A572C: @ 80A572C - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080A5750 @ =gTasks - adds r4, r0, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080A5746 - b _080A58E6 -_080A5746: - lsls r0, 2 - ldr r1, _080A5754 @ =_080A5758 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A5750: .4byte gTasks -_080A5754: .4byte _080A5758 - .align 2, 0 -_080A5758: - .4byte _080A576C - .4byte _080A579E - .4byte _080A57F8 - .4byte _080A5870 - .4byte _080A58B4 -_080A576C: - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _080A577C - ldrh r2, [r4, 0x12] - ldrh r3, [r4, 0x10] - adds r2, r3 - b _080A58C2 -_080A577C: - movs r0, 0x8 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r1, 0xC0 - cmp r0, 0 - bne _080A5792 - movs r2, 0xC0 - negs r2, r2 - adds r1, r2, 0 -_080A5792: - strh r1, [r4, 0x12] - ldrb r0, [r4, 0x8] - movs r1, 0 - bl sub_80758E0 - b _080A58A8 -_080A579E: - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A57C4 - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x10] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_80759DC - b _080A58D4 -_080A57C4: - movs r0, 0x8 - strh r0, [r4, 0xE] - ldr r2, _080A57F4 @ =gSprites - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x2 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080A57EA - movs r1, 0x2 -_080A57EA: - strh r1, [r4, 0x12] - movs r0, 0x1 - strh r0, [r4, 0x14] - b _080A58A8 - .align 2, 0 -_080A57F4: .4byte gSprites -_080A57F8: - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A5854 - ldrh r1, [r4, 0x14] - movs r3, 0x14 - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A5812 - subs r0, r1, 0x1 - strh r0, [r4, 0x14] - b _080A58E6 -_080A5812: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080A5834 - ldr r2, _080A5830 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x12] - ldrh r2, [r4, 0x10] - adds r1, r2 - b _080A5848 - .align 2, 0 -_080A5830: .4byte gSprites -_080A5834: - ldr r2, _080A5850 @ =gSprites - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - ldrh r2, [r4, 0x12] - subs r1, r2 -_080A5848: - strh r1, [r0, 0x24] - movs r0, 0x1 - strh r0, [r4, 0x14] - b _080A58D4 - .align 2, 0 -_080A5850: .4byte gSprites -_080A5854: - ldr r2, _080A586C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - strh r1, [r0, 0x24] - movs r0, 0xC - strh r0, [r4, 0xE] - b _080A58A8 - .align 2, 0 -_080A586C: .4byte gSprites -_080A5870: - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080A5880 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080A58E6 -_080A5880: - movs r0, 0x3 - strh r0, [r4, 0xE] - ldr r2, _080A58B0 @ =gSprites - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x8 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080A58A6 - movs r1, 0x8 -_080A58A6: - strh r1, [r4, 0x12] -_080A58A8: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _080A58E6 - .align 2, 0 -_080A58B0: .4byte gSprites -_080A58B4: - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A58E0 - ldrh r2, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r2, r0 -_080A58C2: - strh r2, [r4, 0x10] - ldr r3, _080A58DC @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x24] -_080A58D4: - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080A58E6 - .align 2, 0 -_080A58DC: .4byte gSprites -_080A58E0: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080A58E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A572C - - thumb_func_start sub_80A58EC -sub_80A58EC: @ 80A58EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A5928 @ =gTasks - adds r4, r0, r1 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A592C - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x10] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_80759DC - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080A5938 - .align 2, 0 -_080A5928: .4byte gTasks -_080A592C: - ldrb r0, [r4, 0x8] - bl sub_8075980 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A5938: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A58EC - - thumb_func_start sub_80A5940 -sub_80A5940: @ 80A5940 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080A5954 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A595C - ldr r4, _080A5958 @ =gUnknown_2037F1A - b _080A595E - .align 2, 0 -_080A5954: .4byte gUnknown_2037F02 -_080A5958: .4byte gUnknown_2037F1A -_080A595C: - ldr r4, _080A599C @ =gUnknown_2037F1B -_080A595E: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x4] - adds r0, r6 - strh r0, [r5, 0x22] - movs r0, 0 - strh r0, [r5, 0x2E] - strh r0, [r5, 0x30] - ldr r1, _080A59A0 @ =sub_80A5A8C - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A59A4 @ =sub_8074F6C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A599C: .4byte gUnknown_2037F1B -_080A59A0: .4byte sub_80A5A8C -_080A59A4: .4byte sub_8074F6C - thumb_func_end sub_80A5940 - - thumb_func_start sub_80A59A8 -sub_80A59A8: @ 80A59A8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080A59E0 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A59E4 @ =0x0000ffd0 - adds r0, r1 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r1, _080A59E8 @ =sub_80A5A44 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A59EC @ =sub_8074F6C - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A59E0: .4byte gUnknown_2037F1B -_080A59E4: .4byte 0x0000ffd0 -_080A59E8: .4byte sub_80A5A44 -_080A59EC: .4byte sub_8074F6C - thumb_func_end sub_80A59A8 - - thumb_func_start sub_80A59F0 -sub_80A59F0: @ 80A59F0 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080A5A34 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A5A38 @ =gUnknown_2037F02 - ldr r2, _080A5A3C @ =0x0000ffd0 - adds r0, r2 - ldrh r1, [r1] - adds r0, r1 - movs r6, 0 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - strh r6, [r4, 0x2E] - strh r6, [r4, 0x30] - ldr r0, _080A5A40 @ =sub_80A5A8C - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5A34: .4byte gUnknown_2037F1B -_080A5A38: .4byte gUnknown_2037F02 -_080A5A3C: .4byte 0x0000ffd0 -_080A5A40: .4byte sub_80A5A8C - thumb_func_end sub_80A59F0 - - thumb_func_start sub_80A5A44 -sub_80A5A44: @ 80A5A44 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A5A6E - movs r0, 0xC - strh r0, [r4, 0x2E] - movs r0, 0x8 - strh r0, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080A5A74 @ =sub_80A5A7C - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A5A78 @ =sub_8074CD0 - str r0, [r4, 0x1C] -_080A5A6E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5A74: .4byte sub_80A5A7C -_080A5A78: .4byte sub_8074CD0 - thumb_func_end sub_80A5A44 - - thumb_func_start sub_80A5A7C -sub_80A5A7C: @ 80A5A7C - movs r1, 0 - strh r1, [r0, 0x2E] - strh r1, [r0, 0x30] - ldr r1, _080A5A88 @ =sub_80A5A8C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080A5A88: .4byte sub_80A5A8C - thumb_func_end sub_80A5A7C - - thumb_func_start sub_80A5A8C -sub_80A5A8C: @ 80A5A8C - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A5AD4 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A5AD4 - adds r0, r3, 0 - bl DestroyAnimSprite -_080A5AD4: - pop {r0} - bx r0 - thumb_func_end sub_80A5A8C - - thumb_func_start sub_80A5AD8 -sub_80A5AD8: @ 80A5AD8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080A5AEC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A5AF4 - ldr r4, _080A5AF0 @ =gUnknown_2037F1A - b _080A5AF6 - .align 2, 0 -_080A5AEC: .4byte gUnknown_2037F02 -_080A5AF0: .4byte gUnknown_2037F1A -_080A5AF4: - ldr r4, _080A5B30 @ =gUnknown_2037F1B -_080A5AF6: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x4] - adds r0, r6 - strh r0, [r5, 0x22] - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080A5B34 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x6] - strh r0, [r5, 0x30] - ldr r0, _080A5B38 @ =sub_80A5B3C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5B30: .4byte gUnknown_2037F1B -_080A5B34: .4byte gUnknown_2037F02 -_080A5B38: .4byte sub_80A5B3C - thumb_func_end sub_80A5AD8 - - thumb_func_start sub_80A5B3C -sub_80A5B3C: @ 80A5B3C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x30 - ldrsh r1, [r2, r3] - cmp r0, r1 - ble _080A5B5C - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x22] - subs r0, 0x1 - strh r0, [r2, 0x22] -_080A5B5C: - ldrh r0, [r2, 0x22] - ldrh r1, [r2, 0x2E] - subs r0, r1 - strh r0, [r2, 0x22] - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A5B78 - adds r0, r2, 0 - bl DestroyAnimSprite -_080A5B78: - pop {r0} - bx r0 - thumb_func_end sub_80A5B3C - - thumb_func_start sub_80A5B7C -sub_80A5B7C: @ 80A5B7C - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080A5BC4 @ =gUnknown_2037F1A - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0xC - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - movs r0, 0x2 - strh r0, [r4, 0x30] - strh r5, [r4, 0x32] - strh r5, [r4, 0x34] - strh r5, [r4, 0x36] - subs r0, 0x42 - bl sub_8073A44 - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x38] - ldr r0, _080A5BC8 @ =sub_80A5BCC - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5BC4: .4byte gUnknown_2037F1A -_080A5BC8: .4byte sub_80A5BCC - thumb_func_end sub_80A5B7C - - thumb_func_start sub_80A5BCC -sub_80A5BCC: @ 80A5BCC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x30 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080A5C38 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r1, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080A5C1E - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5C1E - ldrh r1, [r4, 0x38] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xBB - bl PlaySE12WithPanning -_080A5C1E: - movs r1, 0 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A5C38 - strh r1, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080A5C38: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A5C62 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x10 - ble _080A5C62 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080A5C62 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A5C62: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5BCC - - thumb_func_start sub_80A5C68 -sub_80A5C68: @ 80A5C68 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A5CB2 - ldr r4, _080A5CC8 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - ldr r5, _080A5CCC @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x2] - adds r0, r5 - strh r0, [r6, 0x22] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A5CAC - ldrh r0, [r6, 0x22] - adds r0, 0xA - strh r0, [r6, 0x22] -_080A5CAC: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - strh r0, [r6, 0x2E] -_080A5CB2: - ldr r0, _080A5CCC @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080A5CD0 @ =0x0000ffff - cmp r1, r0 - bne _080A5CC2 - adds r0, r6, 0 - bl DestroyAnimSprite -_080A5CC2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5CC8: .4byte gUnknown_2037F1A -_080A5CCC: .4byte gUnknown_2037F02 -_080A5CD0: .4byte 0x0000ffff - thumb_func_end sub_80A5C68 - - thumb_func_start sub_80A5CD4 -sub_80A5CD4: @ 80A5CD4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080A5CF4 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080A5D00 - ldr r1, _080A5CF8 @ =gUnknown_2037F02 - ldr r0, _080A5CFC @ =0x0000ffff - strh r0, [r1, 0xE] - b _080A5D3E - .align 2, 0 -_080A5CF4: .4byte gTasks -_080A5CF8: .4byte gUnknown_2037F02 -_080A5CFC: .4byte 0x0000ffff -_080A5D00: - cmp r0, 0x2 - bne _080A5D0C - adds r0, r2, 0 - bl DestroyAnimVisualTask - b _080A5D44 -_080A5D0C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080A5D44 - movs r0, 0 - strh r0, [r4, 0x8] - ldrh r2, [r4, 0xA] - adds r2, 0x1 - strh r2, [r4, 0xA] - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080A5D44 -_080A5D3E: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_080A5D44: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5CD4 - - thumb_func_start sub_80A5D4C -sub_80A5D4C: @ 80A5D4C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075114 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080A5D74 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080A5D78 @ =sub_80A5D7C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5D74: .4byte gUnknown_2037F02 -_080A5D78: .4byte sub_80A5D7C - thumb_func_end sub_80A5D4C - - thumb_func_start sub_80A5D7C -sub_80A5D7C: @ 80A5D7C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080A5D90 - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] - b _080A5DCC -_080A5D90: - adds r2, r5, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1E - strh r0, [r5, 0x2E] - ldr r4, _080A5DD4 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080A5DD8 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A5DDC @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 -_080A5DCC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5DD4: .4byte gUnknown_2037F1A -_080A5DD8: .4byte sub_8075590 -_080A5DDC: .4byte DestroyAnimSprite - thumb_func_end sub_80A5D7C - - thumb_func_start sub_80A5DE0 -sub_80A5DE0: @ 80A5DE0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A5E30 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080A5E28 - movs r0, 0 - strh r0, [r4, 0x8] - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080A5E28 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A5E28: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5E30: .4byte gTasks - thumb_func_end sub_80A5DE0 - - thumb_func_start sub_80A5E34 -sub_80A5E34: @ 80A5E34 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - ldr r0, _080A5E9C @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - bcs _080A5E90 - ldr r6, _080A5EA0 @ =gUnknown_2037F02 - ldr r5, _080A5EA4 @ =gUnknown_3004FF0 -_080A5E48: - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _080A5E64 - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A5E64 - adds r0, r4, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible -_080A5E64: - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _080A5E82 - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5E82 - adds r0, r4, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible -_080A5E82: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A5E9C @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - bcc _080A5E48 -_080A5E90: - adds r0, r7, 0 - bl DestroyAnimVisualTask - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A5E9C: .4byte gBattlersCount -_080A5EA0: .4byte gUnknown_2037F02 -_080A5EA4: .4byte gUnknown_3004FF0 - thumb_func_end sub_80A5E34 - - thumb_func_start sub_80A5EA8 -sub_80A5EA8: @ 80A5EA8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - b _080A5EC2 -_080A5EB2: - ldr r0, _080A5ED8 @ =gUnknown_3004FF0 - adds r0, r4, r0 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080A5EC2: - ldr r0, _080A5EDC @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - bcc _080A5EB2 - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5ED8: .4byte gUnknown_3004FF0 -_080A5EDC: .4byte gBattlersCount - thumb_func_end sub_80A5EA8 - - thumb_func_start sub_80A5EE0 -sub_80A5EE0: @ 80A5EE0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A5EF6 - movs r0, 0x30 - strh r0, [r4, 0x20] - movs r0, 0x28 - b _080A5EFE -_080A5EF6: - ldr r0, _080A5F20 @ =gUnknown_2037F02 - ldrh r1, [r0] - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] -_080A5EFE: - strh r0, [r4, 0x22] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080A5F24 @ =sub_80A5F28 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5F20: .4byte gUnknown_2037F02 -_080A5F24: .4byte sub_80A5F28 - thumb_func_end sub_80A5EE0 - - thumb_func_start sub_80A5F28 -sub_80A5F28: @ 80A5F28 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080A5F3A - adds r0, r1, 0 - bl DestroyAnimSprite -_080A5F3A: - pop {r0} - bx r0 - thumb_func_end sub_80A5F28 - - thumb_func_start sub_80A5F40 -sub_80A5F40: @ 80A5F40 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A5F78 @ =gUnknown_2037F1A - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r2, _080A5F7C @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r2] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - strh r0, [r4, 0x22] - strh r1, [r4, 0x2E] - strh r1, [r4, 0x30] - strh r1, [r4, 0x32] - strh r1, [r4, 0x34] - movs r0, 0x1 - strh r0, [r4, 0x36] - ldr r0, _080A5F80 @ =sub_80A5F84 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5F78: .4byte gUnknown_2037F1A -_080A5F7C: .4byte gUnknown_2037F02 -_080A5F80: .4byte sub_80A5F84 - thumb_func_end sub_80A5F40 - - thumb_func_start sub_80A5F84 -sub_80A5F84: @ 80A5F84 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A5FAE - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r2, [r1, 0x32] - movs r3, 0x32 - ldrsh r0, [r1, r3] - cmp r0, 0x77 - bgt _080A5FAE - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] - adds r0, r2, 0x1 - strh r0, [r1, 0x32] -_080A5FAE: - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080A5FBC - adds r0, r1, 0 - bl DestroyAnimSprite -_080A5FBC: - pop {r0} - bx r0 - thumb_func_end sub_80A5F84 - - thumb_func_start sub_80A5FC0 -sub_80A5FC0: @ 80A5FC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - mov r8, r0 - ldr r0, _080A6090 @ =0x0000ffff - mov r1, r8 - ands r1, r0 - mov r8, r1 - ldr r0, _080A6094 @ =gTasks - mov r9, r0 - lsls r5, r7, 2 - adds r5, r7 - lsls r5, 3 - adds r6, r5, r0 - strh r4, [r6, 0x8] - strh r4, [r6, 0xA] - strh r4, [r6, 0xC] - strh r1, [r6, 0xE] - strh r4, [r6, 0x10] - strh r4, [r6, 0x12] - strh r4, [r6, 0x14] - movs r0, 0xD - strh r0, [r6, 0x16] - movs r0, 0xE - strh r0, [r6, 0x18] - movs r0, 0xF - strh r0, [r6, 0x1A] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8075CB8 - mov r10, r0 - mov r1, r8 - orrs r1, r0 - mov r8, r1 - movs r0, 0x8 - add r9, r0 - add r5, r9 - adds r0, r5, 0 - adds r0, 0x1C - adds r5, 0x1E - adds r1, r5, 0 - mov r2, r8 - bl sub_80765C0 - ldr r0, _080A6098 @ =0x000027d2 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r4, 0x80 - lsls r4, 9 - adds r1, r4, 0 - lsls r1, r0 - mov r0, r10 - orrs r0, r1 - mov r10, r0 - ldr r0, _080A609C @ =0x000027d3 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0 - mov r1, r10 - orrs r4, r1 - ldr r0, _080A60A0 @ =0x00007fbb - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080A60A4 @ =sub_80A60A8 - str r1, [r6] - adds r0, r7, 0 - bl _call_via_r1 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6090: .4byte 0x0000ffff -_080A6094: .4byte gTasks -_080A6098: .4byte 0x000027d2 -_080A609C: .4byte 0x000027d3 -_080A60A0: .4byte 0x00007fbb -_080A60A4: .4byte sub_80A60A8 - thumb_func_end sub_80A5FC0 - - thumb_func_start sub_80A60A8 -sub_80A60A8: @ 80A60A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080A60D0 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080A6194 - cmp r1, 0x1 - bgt _080A60D4 - cmp r1, 0 - beq _080A60E2 - b _080A6232 - .align 2, 0 -_080A60D0: .4byte gTasks -_080A60D4: - cmp r1, 0x2 - bne _080A60DA - b _080A61EC -_080A60DA: - cmp r1, 0x3 - bne _080A60E0 - b _080A6220 -_080A60E0: - b _080A6232 -_080A60E2: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bgt _080A60F0 - b _080A6232 -_080A60F0: - strh r1, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bgt _080A613C - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - ldrh r2, [r4, 0x18] - ldrh r3, [r4, 0x12] - adds r2, r3 - strh r2, [r4, 0x12] - ldrh r1, [r4, 0x1A] - ldrh r5, [r4, 0x14] - adds r1, r5 - strh r1, [r4, 0x14] - lsls r0, 16 - asrs r0, 19 - lsls r0, 16 - lsrs r0, 16 - lsls r2, 16 - asrs r2, 19 - lsls r2, 16 - lsls r1, 16 - asrs r1, 19 - lsls r1, 16 - lsrs r2, 11 - orrs r0, r2 - lsrs r1, 6 - orrs r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - b _080A6146 -_080A613C: - ldr r7, _080A618C @ =0x00007fbb - mov r12, r7 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080A6146: - movs r2, 0x1 - movs r3, 0 - movs r1, 0 -_080A614C: - movs r5, 0xE - ldrsh r0, [r4, r5] - ands r0, r2 - lsls r5, r2, 17 - adds r6, r3, 0 - adds r6, 0x10 - adds r1, 0x1 - mov r8, r1 - cmp r0, 0 - beq _080A6178 - movs r1, 0x1 - ldr r2, _080A6190 @ =gPlttBufferFaded -_080A6164: - adds r0, r3, r1 - lsls r0, 1 - adds r0, r2 - mov r7, r12 - strh r7, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _080A6164 -_080A6178: - lsrs r2, r5, 16 - lsls r0, r6, 16 - lsrs r3, r0, 16 - mov r1, r8 - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _080A614C - b _080A6232 - .align 2, 0 -_080A618C: .4byte 0x00007fbb -_080A6190: .4byte gPlttBufferFaded -_080A6194: - ldr r0, _080A61DC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A6232 - movs r2, 0 - ldr r3, _080A61E0 @ =gSprites - movs r5, 0x14 - adds r5, r3 - mov r12, r5 - ldr r7, _080A61E4 @ =gUnknown_83E3734 - mov r8, r7 - ldr r6, _080A61E8 @ =gUnknown_83E3764 - movs r5, 0x1 -_080A61B2: - lsls r0, r2, 4 - adds r0, r2 - lsls r1, r0, 2 - mov r7, r12 - adds r0, r1, r7 - ldr r0, [r0] - cmp r0, r8 - beq _080A61C6 - cmp r0, r6 - bne _080A61CA -_080A61C6: - adds r0, r1, r3 - strh r5, [r0, 0x2E] -_080A61CA: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _080A61B2 - movs r0, 0 - strh r0, [r4, 0xA] - b _080A6214 - .align 2, 0 -_080A61DC: .4byte gPaletteFade -_080A61E0: .4byte gSprites -_080A61E4: .4byte gUnknown_83E3734 -_080A61E8: .4byte gUnknown_83E3764 -_080A61EC: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080A6232 - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - bl sub_80765C8 - ldr r1, _080A621C @ =0x00007fbb - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_080A6214: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080A6232 - .align 2, 0 -_080A621C: .4byte 0x00007fbb -_080A6220: - ldr r0, _080A6240 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A6232 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080A6232: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6240: .4byte gPaletteFade - thumb_func_end sub_80A60A8 - - thumb_func_start sub_80A6244 -sub_80A6244: @ 80A6244 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080A62C8 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bgt _080A6256 - movs r0, 0x2 - strh r0, [r6, 0x4] -_080A6256: - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0x7F - ble _080A6262 - movs r0, 0x7F - strh r0, [r6, 0x4] -_080A6262: - movs r0, 0 - strh r0, [r5, 0x2E] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x30] - ldr r4, _080A62CC @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x2] - adds r0, r6 - strh r0, [r5, 0x22] - ldrh r1, [r5, 0x20] - strh r1, [r5, 0x3A] - strh r0, [r5, 0x3C] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A62D4 - ldrb r1, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x3] - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - adds r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080A62D0 @ =0xffffec00 - b _080A62FA - .align 2, 0 -_080A62C8: .4byte gUnknown_2037F02 -_080A62CC: .4byte gUnknown_2037F1B -_080A62D0: .4byte 0xffffec00 -_080A62D4: - ldr r0, _080A6314 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A631C - ldrh r0, [r5, 0x20] - subs r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - adds r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0xA0 - lsls r0, 5 -_080A62FA: - bl __divsi3 - strh r0, [r5, 0x34] - lsls r4, 7 - strh r4, [r5, 0x36] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080A6318 @ =0xfffff600 - bl __divsi3 - strh r0, [r5, 0x38] - b _080A6358 - .align 2, 0 -_080A6314: .4byte gUnknown_2037F1A -_080A6318: .4byte 0xfffff600 -_080A631C: - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - subs r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080A6364 @ =0xffffec00 - bl __divsi3 - strh r0, [r5, 0x34] - lsls r4, 7 - strh r4, [r5, 0x36] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0xA0 - lsls r0, 4 - bl __divsi3 - strh r0, [r5, 0x38] - ldrb r1, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x30 - orrs r0, r1 - strb r0, [r5, 0x3] -_080A6358: - ldr r0, _080A6368 @ =sub_80A636C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6364: .4byte 0xffffec00 -_080A6368: .4byte sub_80A636C - thumb_func_end sub_80A6244 - - thumb_func_start sub_80A636C -sub_80A636C: @ 80A636C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x36] - adds r1, r3 - strh r1, [r2, 0x36] - lsls r0, 16 - asrs r0, 23 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 23 - strh r1, [r2, 0x22] - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A63A2 - ldrh r0, [r2, 0x3A] - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x22] -_080A63A2: - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080A63B0 - adds r0, r2, 0 - bl DestroyAnimSprite -_080A63B0: - pop {r0} - bx r0 - thumb_func_end sub_80A636C - - thumb_func_start sub_80A63B4 -sub_80A63B4: @ 80A63B4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, _080A6444 @ =gTasks - adds r6, r0, r1 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x8] - ldr r0, _080A6448 @ =0x00002771 - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0xA] - movs r1, 0xA - ldrsh r0, [r6, r1] - lsls r0, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - ldr r2, _080A644C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r4, r0, 4 - movs r5, 0x1 - ldr r2, _080A6450 @ =gPlttBufferUnfaded -_080A640C: - adds r1, r3, r5 - lsls r1, 1 - adds r1, r2 - adds r0, r4, r5 - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _080A640C - adds r0, r3, 0 - movs r1, 0x10 - movs r2, 0xB - movs r3, 0 - bl BlendPalette - movs r0, 0 - strh r0, [r6, 0xE] - movs r5, 0 - ldr r7, _080A644C @ =gSprites - movs r1, 0x1C - adds r1, r7 - mov r9, r1 - b _080A6488 - .align 2, 0 -_080A6444: .4byte gTasks -_080A6448: .4byte 0x00002771 -_080A644C: .4byte gSprites -_080A6450: .4byte gPlttBufferUnfaded -_080A6454: - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r4, r2, r7 - ldrb r1, [r6, 0xA] - lsls r1, 4 - ldrb r3, [r4, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r1 - strb r0, [r4, 0x5] - movs r0, 0 - strh r0, [r4, 0x2E] - lsls r0, r5, 7 - strh r0, [r4, 0x30] - mov r0, r8 - strh r0, [r4, 0x32] - add r2, r9 - ldr r0, _080A64BC @ =sub_80A653C - str r0, [r2] - ldrh r0, [r6, 0xE] - adds r0, 0x1 - strh r0, [r6, 0xE] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080A6488: - cmp r5, 0x1 - bhi _080A649A - movs r0, 0 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080A6454 -_080A649A: - ldr r0, _080A64C0 @ =sub_80A64E0 - str r0, [r6] - ldr r0, _080A64C4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A64C8 - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl ClearGpuRegBits - b _080A64D2 - .align 2, 0 -_080A64BC: .4byte sub_80A653C -_080A64C0: .4byte sub_80A64E0 -_080A64C4: .4byte gUnknown_2037F1A -_080A64C8: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl ClearGpuRegBits -_080A64D2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A63B4 - - thumb_func_start sub_80A64E0 -sub_80A64E0: @ 80A64E0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A6514 @ =gTasks - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6532 - ldr r0, _080A6518 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A651C - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl SetGpuRegBits - b _080A6526 - .align 2, 0 -_080A6514: .4byte gTasks -_080A6518: .4byte gUnknown_2037F1A -_080A651C: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits -_080A6526: - ldr r0, _080A6538 @ =0x00002771 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A6532: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6538: .4byte 0x00002771 - thumb_func_end sub_80A64E0 - - thumb_func_start sub_80A653C -sub_80A653C: @ 80A653C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A6558 - movs r0, 0 - strh r0, [r5, 0x34] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_080A6558: - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x40 - ble _080A6580 - ldr r2, _080A657C @ =gTasks - movs r0, 0x32 - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0xE] - subs r1, 0x1 - strh r1, [r0, 0xE] - adds r0, r5, 0 - bl obj_delete_but_dont_free_vram - b _080A65C2 - .align 2, 0 -_080A657C: .4byte gTasks -_080A6580: - ldr r4, _080A65C8 @ =gUnknown_825E074 - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r0, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x6 - bl __divsi3 - strh r0, [r5, 0x36] - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r0, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0xD - bl __divsi3 - strh r0, [r5, 0x38] - ldrh r1, [r5, 0x30] - adds r1, r0 - movs r0, 0xFF - ands r1, r0 - strh r1, [r5, 0x30] - movs r1, 0x30 - ldrsh r0, [r5, r1] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] -_080A65C2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A65C8: .4byte gUnknown_825E074 - thumb_func_end sub_80A653C - - thumb_func_start sub_80A65CC -sub_80A65CC: @ 80A65CC - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080A65E0 @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - ldr r0, _080A65E4 @ =sub_8074F6C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A65E0: .4byte DestroyAnimSprite -_080A65E4: .4byte sub_8074F6C - thumb_func_end sub_80A65CC - - thumb_func_start sub_80A65E8 -sub_80A65E8: @ 80A65E8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r4, _080A6698 @ =gUnknown_83E3898 - ldrh r0, [r4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - beq _080A662C - lsls r0, r3, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - movs r2, 0x1 - ldr r5, _080A669C @ =gPlttBufferFaded -_080A6614: - adds r1, r3, r2 - lsls r1, 1 - adds r1, r5 - lsls r0, r2, 1 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080A6614 -_080A662C: - movs r4, 0x1 - ldr r0, _080A6698 @ =gUnknown_83E3898 - mov r8, r0 -_080A6632: - lsls r0, r4, 1 - adds r0, r4 - lsls r5, r0, 2 - mov r1, r8 - adds r0, r5, r1 - ldrh r0, [r0] - bl AllocSpritePalette - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, 0x1 - mov r12, r4 - cmp r3, 0xFF - beq _080A667A - lsls r0, r3, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - movs r2, 0x1 - ldr r7, _080A669C @ =gPlttBufferFaded - ldr r6, _080A6698 @ =gUnknown_83E3898 - adds r4, r5, 0 -_080A6660: - adds r1, r3, r2 - lsls r1, 1 - adds r1, r7 - lsls r0, r2, 1 - adds r0, r4 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080A6660 -_080A667A: - mov r1, r12 - lsls r0, r1, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080A6632 - mov r0, r9 - bl DestroyAnimVisualTask - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6698: .4byte gUnknown_83E3898 -_080A669C: .4byte gPlttBufferFaded - thumb_func_end sub_80A65E8 - - thumb_func_start sub_80A66A0 -sub_80A66A0: @ 80A66A0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0x1 - ldr r6, _080A66D0 @ =gUnknown_83E3898 -_080A66AA: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r6 - ldrh r0, [r0] - bl FreeSpritePaletteByTag - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080A66AA - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A66D0: .4byte gUnknown_83E3898 - thumb_func_end sub_80A66A0 - - thumb_func_start sub_80A66D4 -sub_80A66D4: @ 80A66D4 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_8074FCC - ldr r4, _080A672C @ =gUnknown_2037F02 - ldrb r1, [r4] - adds r0, r5, 0 - bl StartSpriteAnim - ldr r2, _080A6730 @ =gUnknown_83E3898 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080A6710 - lsls r2, r0, 4 - ldrb r1, [r5, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x5] -_080A6710: - ldrh r0, [r4, 0x2] - movs r1, 0 - strh r0, [r5, 0x30] - strh r1, [r5, 0x32] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x34] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A6734 - movs r6, 0x30 - movs r3, 0x28 - b _080A674E - .align 2, 0 -_080A672C: .4byte gUnknown_2037F02 -_080A6730: .4byte gUnknown_83E3898 -_080A6734: - ldr r4, _080A6784 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r3, r0, 24 -_080A674E: - ldrh r0, [r5, 0x20] - lsls r1, r0, 4 - strh r1, [r5, 0x36] - ldrh r1, [r5, 0x22] - lsls r2, r1, 4 - strh r2, [r5, 0x38] - subs r0, r6, r0 - lsls r0, 16 - asrs r0, 16 - subs r1, r3, r1 - lsls r1, 16 - asrs r1, 16 - adds r2, r5, 0 - adds r2, 0x3A - adds r3, r5, 0 - adds r3, 0x3C - movs r4, 0x28 - str r4, [sp] - bl sub_80A678C - ldr r0, _080A6788 @ =sub_80A67E4 - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6784: .4byte gUnknown_2037F1B -_080A6788: .4byte sub_80A67E4 - thumb_func_end sub_80A66D4 - - thumb_func_start sub_80A678C -sub_80A678C: @ 80A678C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r2, 0 - mov r8, r3 - ldr r2, [sp, 0x18] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r1, r2, 24 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bge _080A67AE - lsls r0, r1, 24 - negs r0, r0 - lsrs r1, r0, 24 -_080A67AE: - lsls r5, r2, 8 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl __divsi3 - adds r4, r0, 0 - cmp r4, 0 - bne _080A67C2 - movs r4, 0x1 -_080A67C2: - adds r0, r5, 0 - adds r1, r4, 0 - bl __divsi3 - strh r0, [r7] - lsls r0, r6, 16 - asrs r0, 8 - adds r1, r4, 0 - bl __divsi3 - mov r1, r8 - strh r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A678C - - thumb_func_start sub_80A67E4 -sub_80A67E4: @ 80A67E4 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x2E] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r1, r0, r1 - adds r0, r1, 0 - cmp r1, 0 - bge _080A6800 - adds r0, 0xFF -_080A6800: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - ldrh r1, [r4, 0x3A] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - ldrh r2, [r4, 0x3C] - ldrh r3, [r4, 0x38] - adds r2, r3 - strh r2, [r4, 0x38] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x20] - lsls r2, 16 - asrs r2, 20 - strh r2, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xF - bl Sin - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - ldrh r0, [r4, 0x20] - adds r0, 0x10 - lsls r0, 16 - movs r1, 0x88 - lsls r1, 17 - cmp r0, r1 - bhi _080A684E - lsls r0, r2, 16 - asrs r1, r0, 16 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - blt _080A684E - cmp r1, 0x80 - ble _080A6856 -_080A684E: - adds r0, r4, 0 - bl move_anim_8074EE0 - b _080A68A6 -_080A6856: - movs r0, 0x34 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _080A68A6 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, r1 - ble _080A68A6 - strh r5, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A687E - strh r5, [r4, 0x30] -_080A687E: - ldr r2, _080A68AC @ =gUnknown_83E3898 - movs r3, 0x30 - ldrsh r1, [r4, r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080A68A6 - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] -_080A68A6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A68AC: .4byte gUnknown_83E3898 - thumb_func_end sub_80A67E4 - - thumb_func_start sub_80A68B0 -sub_80A68B0: @ 80A68B0 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r7, _080A6934 @ =gUnknown_2037F1A - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A68CE - ldr r1, _080A6938 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080A68CE: - ldrb r0, [r7] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A6938 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - movs r5, 0 - strh r0, [r6, 0x20] - ldrb r0, [r7] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r6, 0x22] - ldrb r1, [r4] - adds r0, r6, 0 - bl StartSpriteAnim - strh r5, [r6, 0x32] - strh r5, [r6, 0x34] - ldrh r0, [r6, 0x20] - lsls r0, 4 - strh r0, [r6, 0x36] - ldrh r0, [r6, 0x22] - lsls r0, 4 - strh r0, [r6, 0x38] - movs r1, 0x2 - ldrsh r0, [r4, r1] - lsls r0, 4 - movs r1, 0x5 - bl __divsi3 - strh r0, [r6, 0x3A] - movs r2, 0x4 - ldrsh r0, [r4, r2] - lsls r0, 7 - movs r1, 0x5 - bl __divsi3 - strh r0, [r6, 0x3C] - ldr r0, _080A693C @ =sub_80A6940 - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6934: .4byte gUnknown_2037F1A -_080A6938: .4byte gUnknown_2037F02 -_080A693C: .4byte sub_80A6940 - thumb_func_end sub_80A68B0 - - thumb_func_start sub_80A6940 -sub_80A6940: @ 80A6940 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - ldrh r1, [r4, 0x3C] - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x22] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - ble _080A699E - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080A699E - ldrh r0, [r4, 0x32] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x12 - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x12 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A699E - movs r0, 0x1 - strh r0, [r4, 0x34] -_080A699E: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x30 - bne _080A69B2 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080A69B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6940 - - thumb_func_start sub_80A69B8 -sub_80A69B8: @ 80A69B8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080A69D8 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080A69DC - ldrb r0, [r5, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r5, 0x3] - movs r6, 0x10 - b _080A69DE - .align 2, 0 -_080A69D8: .4byte gUnknown_2037F02 -_080A69DC: - ldr r6, _080A6A18 @ =0x0000fff0 -_080A69DE: - ldr r4, _080A6A1C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x8 - strh r0, [r5, 0x22] - movs r0, 0x8 - strh r0, [r5, 0x2E] - ldr r0, _080A6A20 @ =sub_8074C44 - str r0, [r5, 0x1C] - ldr r1, _080A6A24 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6A18: .4byte 0x0000fff0 -_080A6A1C: .4byte gUnknown_2037F1A -_080A6A20: .4byte sub_8074C44 -_080A6A24: .4byte DestroyAnimSprite - thumb_func_end sub_80A69B8 - - thumb_func_start sub_80A6A28 -sub_80A6A28: @ 80A6A28 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldrh r0, [r4, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] - ldr r5, _080A6AA0 @ =gUnknown_2037F02 - ldrb r1, [r5, 0x2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r2, _080A6AA4 @ =gUnknown_83E3898 - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080A6A68 - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] -_080A6A68: - movs r1, 0 - ldrsh r0, [r5, r1] - movs r2, 0x20 - cmp r0, 0 - bne _080A6A74 - ldr r2, _080A6AA8 @ =0x0000ffe0 -_080A6A74: - movs r0, 0x28 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x20] - strh r1, [r4, 0x30] - lsls r0, r2, 16 - asrs r0, 16 - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - subs r0, 0x28 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x38] - ldr r0, _080A6AAC @ =sub_80A6AB0 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6AA0: .4byte gUnknown_2037F02 -_080A6AA4: .4byte gUnknown_83E3898 -_080A6AA8: .4byte 0x0000ffe0 -_080A6AAC: .4byte sub_80A6AB0 - thumb_func_end sub_80A6A28 - - thumb_func_start sub_80A6AB0 -sub_80A6AB0: @ 80A6AB0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080A6B00 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - lsls r0, 16 - lsrs r1, r0, 16 - ldrh r2, [r4, 0x24] - movs r3, 0x24 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _080A6ADC - lsls r0, r1, 16 - negs r0, r0 - lsrs r1, r0, 16 -_080A6ADC: - lsls r0, r1, 16 - asrs r0, 16 - adds r0, r2 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - ldrh r3, [r4, 0x26] - adds r0, r3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080A6B06 -_080A6B00: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A6B06: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6AB0 - - thumb_func_start sub_80A6B0C -sub_80A6B0C: @ 80A6B0C - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A6B2C - adds r0, r5, 0 - movs r1, 0x5 - bl sub_8076B2C - adds r0, 0x8 - b _080A6B36 -_080A6B2C: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_8076B2C - subs r0, 0x8 -_080A6B36: - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8074480 - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0 - bl sub_8076B2C - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080A6B58 - adds r0, 0x3 -_080A6B58: - asrs r0, 2 - subs r0, r4, r0 - strh r0, [r6, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A6B0C - - thumb_func_start sub_80A6B64 -sub_80A6B64: @ 80A6B64 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080A6B78 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6B80 - ldr r0, _080A6B7C @ =gUnknown_2037F1A - b _080A6B82 - .align 2, 0 -_080A6B78: .4byte gUnknown_2037F02 -_080A6B7C: .4byte gUnknown_2037F1A -_080A6B80: - ldr r0, _080A6BC0 @ =gUnknown_2037F1B -_080A6B82: - ldrb r4, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A6B0C - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - ldr r0, _080A6BC4 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x2] - strh r0, [r5, 0x2E] - adds r0, r1, 0x2 - strh r0, [r5, 0x30] - adds r0, r5, 0 - bl StartSpriteAnim - ldr r1, _080A6BC8 @ =sub_80A6BD0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A6BCC @ =sub_8074F6C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6BC0: .4byte gUnknown_2037F1B -_080A6BC4: .4byte gUnknown_2037F02 -_080A6BC8: .4byte sub_80A6BD0 -_080A6BCC: .4byte sub_8074F6C - thumb_func_end sub_80A6B64 - - thumb_func_start sub_80A6BD0 -sub_80A6BD0: @ 80A6BD0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080A6BF8 - ldr r1, _080A6C00 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080A6C04 @ =sub_8074F6C - str r0, [r4, 0x1C] -_080A6BF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6C00: .4byte DestroyAnimSprite -_080A6C04: .4byte sub_8074F6C - thumb_func_end sub_80A6BD0 - - thumb_func_start sub_80A6C08 -sub_80A6C08: @ 80A6C08 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A6C1C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6C24 - ldr r0, _080A6C20 @ =gUnknown_2037F1A - b _080A6C26 - .align 2, 0 -_080A6C1C: .4byte gUnknown_2037F02 -_080A6C20: .4byte gUnknown_2037F1A -_080A6C24: - ldr r0, _080A6C44 @ =gUnknown_2037F1B -_080A6C26: - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80A6B0C - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r1, _080A6C48 @ =sub_80A6C50 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A6C4C @ =sub_8074F50 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6C44: .4byte gUnknown_2037F1B -_080A6C48: .4byte sub_80A6C50 -_080A6C4C: .4byte sub_8074F50 - thumb_func_end sub_80A6C08 - - thumb_func_start sub_80A6C50 -sub_80A6C50: @ 80A6C50 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080A6C76 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080A6C7C @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A6C80 @ =sub_8074F50 - str r0, [r4, 0x1C] -_080A6C76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6C7C: .4byte move_anim_8074EE0 -_080A6C80: .4byte sub_8074F50 - thumb_func_end sub_80A6C50 - - thumb_func_start sub_80A6C84 -sub_80A6C84: @ 80A6C84 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r0, _080A6C98 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6CA0 - ldr r0, _080A6C9C @ =gUnknown_2037F1A - b _080A6CA2 - .align 2, 0 -_080A6C98: .4byte gUnknown_2037F02 -_080A6C9C: .4byte gUnknown_2037F1A -_080A6CA0: - ldr r0, _080A6CF4 @ =gUnknown_2037F1B -_080A6CA2: - ldrb r5, [r0] - adds r0, r5, 0 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8076B2C - strh r0, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bgt _080A6CCA - movs r0, 0xA - strh r0, [r4, 0x22] -_080A6CCA: - movs r0, 0x1 - strh r0, [r4, 0x2E] - strh r6, [r4, 0x30] - adds r1, r4, 0 - adds r1, 0x43 - ldrb r0, [r1] - strh r0, [r4, 0x32] - ldrb r0, [r1] - adds r0, 0x4 - strh r0, [r4, 0x34] - strh r6, [r4, 0x36] - ldr r1, _080A6CF8 @ =sub_80A6D00 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A6CFC @ =sub_8074F50 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6CF4: .4byte gUnknown_2037F1B -_080A6CF8: .4byte sub_80A6D00 -_080A6CFC: .4byte sub_8074F50 - thumb_func_end sub_80A6C84 - - thumb_func_start sub_80A6D00 -sub_80A6D00: @ 80A6D00 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x36] - adds r0, 0x1 - strh r0, [r1, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080A6D16 - ldr r0, _080A6D1C @ =sub_80A6D20 - str r0, [r1, 0x1C] -_080A6D16: - pop {r0} - bx r0 - .align 2, 0 -_080A6D1C: .4byte sub_80A6D20 - thumb_func_end sub_80A6D00 - - thumb_func_start sub_80A6D20 -sub_80A6D20: @ 80A6D20 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r1, r0, 0x4 - strh r1, [r2, 0x30] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFE - ble _080A6D52 - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080A6D4C - strh r0, [r2, 0x24] - ldr r0, _080A6D48 @ =sub_80A6C50 - str r0, [r2, 0x1C] - b _080A6D88 - .align 2, 0 -_080A6D48: .4byte sub_80A6C50 -_080A6D4C: - movs r0, 0xFF - ands r1, r0 - strh r1, [r2, 0x30] -_080A6D52: - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0x4F - ble _080A6D62 - ldrh r0, [r2, 0x34] - adds r1, r2, 0 - adds r1, 0x43 - strb r0, [r1] -_080A6D62: - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0x9F - ble _080A6D72 - ldrh r0, [r2, 0x32] - adds r1, r2, 0 - adds r1, 0x43 - strb r0, [r1] -_080A6D72: - ldr r1, _080A6D8C @ =gUnknown_825E074 - movs r3, 0x30 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 19 - asrs r1, r0, 1 - adds r0, r1 - strh r0, [r2, 0x24] -_080A6D88: - pop {r0} - bx r0 - .align 2, 0 -_080A6D8C: .4byte gUnknown_825E074 - thumb_func_end sub_80A6D20 - - thumb_func_start sub_80A6D90 -sub_80A6D90: @ 80A6D90 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080A6DA4 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6DAC - ldr r0, _080A6DA8 @ =gUnknown_2037F1A - b _080A6DAE - .align 2, 0 -_080A6DA4: .4byte gUnknown_2037F02 -_080A6DA8: .4byte gUnknown_2037F1A -_080A6DAC: - ldr r0, _080A6DD0 @ =gUnknown_2037F1B -_080A6DAE: - ldrb r4, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A6B0C - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A6DD4 - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAnim - movs r0, 0x2 - b _080A6DDE - .align 2, 0 -_080A6DD0: .4byte gUnknown_2037F1B -_080A6DD4: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x3 -_080A6DDE: - strh r0, [r5, 0x2E] - ldr r0, _080A6DEC @ =sub_80A6DF0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6DEC: .4byte sub_80A6DF0 - thumb_func_end sub_80A6D90 - - thumb_func_start sub_80A6DF0 -sub_80A6DF0: @ 80A6DF0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080A6E1E - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r1, _080A6E24 @ =sub_80A6E2C - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A6E28 @ =sub_8074F6C - str r0, [r4, 0x1C] -_080A6E1E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6E24: .4byte sub_80A6E2C -_080A6E28: .4byte sub_8074F6C - thumb_func_end sub_80A6DF0 - - thumb_func_start sub_80A6E2C -sub_80A6E2C: @ 80A6E2C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080A6E44 - adds r0, r1, 0 - bl DestroyAnimSprite -_080A6E44: - pop {r0} - bx r0 - thumb_func_end sub_80A6E2C - - thumb_func_start sub_80A6E48 -sub_80A6E48: @ 80A6E48 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r5, _080A6E8C @ =gUnknown_2037F02 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_8074FF8 - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x34] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x36] - ldr r1, _080A6E90 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080A6E94 @ =sub_8074BE4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6E8C: .4byte gUnknown_2037F02 -_080A6E90: .4byte move_anim_8074EE0 -_080A6E94: .4byte sub_8074BE4 - thumb_func_end sub_80A6E48 - - thumb_func_start sub_80A6E98 -sub_80A6E98: @ 80A6E98 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A6EAC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6EB4 - ldr r0, _080A6EB0 @ =gUnknown_2037F1A - b _080A6EB6 - .align 2, 0 -_080A6EAC: .4byte gUnknown_2037F02 -_080A6EB0: .4byte gUnknown_2037F1A -_080A6EB4: - ldr r0, _080A6ED0 @ =gUnknown_2037F1B -_080A6EB6: - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80A6B0C - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x30] - ldr r0, _080A6ED4 @ =sub_80A6ED8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6ED0: .4byte gUnknown_2037F1B -_080A6ED4: .4byte sub_80A6ED8 - thumb_func_end sub_80A6E98 - - thumb_func_start sub_80A6ED8 -sub_80A6ED8: @ 80A6ED8 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080A6F0A - cmp r0, 0x1 - bgt _080A6EEE - cmp r0, 0 - beq _080A6EF4 - b _080A6F38 -_080A6EEE: - cmp r0, 0x2 - beq _080A6F24 - b _080A6F38 -_080A6EF4: - ldrh r0, [r1, 0x26] - subs r0, 0x3 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080A6F38 - b _080A6F1C -_080A6F0A: - ldrh r0, [r1, 0x26] - adds r0, 0x3 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080A6F38 -_080A6F1C: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _080A6F38 -_080A6F24: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _080A6F38 - adds r0, r1, 0 - bl DestroyAnimSprite -_080A6F38: - pop {r0} - bx r0 - thumb_func_end sub_80A6ED8 - - thumb_func_start sub_80A6F3C -sub_80A6F3C: @ 80A6F3C - push {r4,lr} - adds r4, r0, 0 - ldr r3, _080A6F88 @ =gSprites - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r4, 0x30] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x30] - movs r0, 0x2E - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _080A6F7A - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x24] - adds r0, r4, 0 - bl move_anim_8074EE0 -_080A6F7A: - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6F88: .4byte gSprites - thumb_func_end sub_80A6F3C - - thumb_func_start sub_80A6F8C -sub_80A6F8C: @ 80A6F8C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080A6FD4 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080A6FD8 @ =gUnknown_2023D44 - ldr r0, _080A6FDC @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r0, r1 - ldrb r6, [r0] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A6FE4 - ldr r0, _080A6FE0 @ =gUnknown_2037F02 - ldrh r1, [r5, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r5, 0x20] - adds r1, r0, 0 - b _080A6FEE - .align 2, 0 -_080A6FD4: .4byte gUnknown_2037F1A -_080A6FD8: .4byte gUnknown_2023D44 -_080A6FDC: .4byte gUnknown_2037F1B -_080A6FE0: .4byte gUnknown_2037F02 -_080A6FE4: - ldr r1, _080A7018 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] -_080A6FEE: - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - strh r6, [r5, 0x32] - ldr r0, _080A701C @ =sub_80A6F3C - str r0, [r5, 0x1C] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A7018: .4byte gUnknown_2037F02 -_080A701C: .4byte sub_80A6F3C - thumb_func_end sub_80A6F8C - - thumb_func_start sub_80A7020 -sub_80A7020: @ 80A7020 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080A704C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x38] - ldr r0, _080A7050 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080A7054 @ =sub_80A7058 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A704C: .4byte gUnknown_2037F02 -_080A7050: .4byte sub_8074C44 -_080A7054: .4byte sub_80A7058 - thumb_func_end sub_80A7020 - - thumb_func_start sub_80A7058 -sub_80A7058: @ 80A7058 - push {lr} - ldrh r1, [r0, 0x30] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - adds r1, 0xF - strh r1, [r0, 0x36] - ldr r1, _080A7078 @ =sub_8075590 - str r1, [r0, 0x1C] - ldr r1, _080A707C @ =sub_80A7080 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080A7078: .4byte sub_8075590 -_080A707C: .4byte sub_80A7080 - thumb_func_end sub_80A7058 - - thumb_func_start sub_80A7080 -sub_80A7080: @ 80A7080 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x38] - movs r3, 0x38 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080A7096 - adds r0, r1, 0 - bl DestroyAnimSprite - b _080A709A -_080A7096: - subs r0, r2, 0x1 - strh r0, [r1, 0x38] -_080A709A: - pop {r0} - bx r0 - thumb_func_end sub_80A7080 - - thumb_func_start sub_80A70A0 -sub_80A70A0: @ 80A70A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A70CC @ =gUnknown_2023D44 - ldr r0, _080A70D0 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_80758E0 - ldr r1, _080A70D4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A70D8 @ =sub_80A70DC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A70CC: .4byte gUnknown_2023D44 -_080A70D0: .4byte gUnknown_2037F1A -_080A70D4: .4byte gTasks -_080A70D8: .4byte sub_80A70DC - thumb_func_end sub_80A70A0 - - thumb_func_start sub_80A70DC -sub_80A70DC: @ 80A70DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A710C @ =gUnknown_2023D44 - ldr r0, _080A7110 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r1, r0, r1 - ldrb r4, [r1] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A7118 - ldr r1, _080A7114 @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - negs r0, r0 - lsls r0, 16 - lsrs r3, r0, 16 - adds r6, r2, 0 - b _080A7126 - .align 2, 0 -_080A710C: .4byte gUnknown_2023D44 -_080A7110: .4byte gUnknown_2037F1A -_080A7114: .4byte gTasks -_080A7118: - ldr r2, _080A7158 @ =gTasks - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r0, r2 - ldrh r3, [r0, 0x8] - adds r6, r1, 0 -_080A7126: - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - bl obj_id_set_rotscale - ldr r1, _080A7158 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080A7160 - ldrh r0, [r1, 0x8] - adds r0, 0xB0 - strh r0, [r1, 0x8] - ldr r1, _080A715C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x26] - adds r1, 0x1 - b _080A718A - .align 2, 0 -_080A7158: .4byte gTasks -_080A715C: .4byte gSprites -_080A7160: - cmp r0, 0x1 - bne _080A7176 - ldrh r0, [r1, 0xE] - adds r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - bne _080A71D0 - movs r0, 0x2 - b _080A71CE -_080A7176: - ldrh r0, [r1, 0x8] - subs r0, 0xB0 - strh r0, [r1, 0x8] - ldr r1, _080A71C4 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x26] - subs r1, 0x1 -_080A718A: - strh r1, [r0, 0x26] - adds r0, r4, 0 - bl sub_80759DC - ldr r0, _080A71C8 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r2, [r1, r3] - movs r0, 0xF2 - lsls r0, 4 - cmp r2, r0 - beq _080A71AA - cmp r2, 0 - bne _080A71D0 -_080A71AA: - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bne _080A71CC - adds r0, r4, 0 - bl sub_8075980 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _080A71D0 - .align 2, 0 -_080A71C4: .4byte gSprites -_080A71C8: .4byte gTasks -_080A71CC: - adds r0, r2, 0x1 -_080A71CE: - strh r0, [r1, 0xA] -_080A71D0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A70DC - - thumb_func_start sub_80A71D8 -sub_80A71D8: @ 80A71D8 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r0, _080A71FC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A7204 - ldr r0, _080A7200 @ =gUnknown_2037F02 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - adds r5, r0, 0 - b _080A7210 - .align 2, 0 -_080A71FC: .4byte gUnknown_2037F1A -_080A7200: .4byte gUnknown_2037F02 -_080A7204: - ldr r1, _080A7244 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r5, r1, 0 -_080A7210: - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080A7248 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A724C - adds r3, r4, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x1 - adds r2, r0, 0 - orrs r2, r1 - strb r2, [r3] - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080A7260 - movs r0, 0x2 - orrs r2, r0 - strb r2, [r3] - b _080A7260 - .align 2, 0 -_080A7244: .4byte gUnknown_2037F02 -_080A7248: .4byte gUnknown_2037F1A -_080A724C: - movs r2, 0x4 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080A7260 - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] -_080A7260: - ldr r0, _080A7274 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldr r1, _080A7278 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7274: .4byte sub_8074F6C -_080A7278: .4byte DestroyAnimSprite - thumb_func_end sub_80A71D8 - - thumb_func_start sub_80A727C -sub_80A727C: @ 80A727C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r0, _080A7298 @ =sub_8074F50 - str r0, [r4, 0x1C] - ldr r1, _080A729C @ =sub_80A72A0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7298: .4byte sub_8074F50 -_080A729C: .4byte sub_80A72A0 - thumb_func_end sub_80A727C - - thumb_func_start sub_80A72A0 -sub_80A72A0: @ 80A72A0 - push {lr} - movs r1, 0x6 - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - subs r1, 0x20 - strh r1, [r0, 0x36] - ldr r1, _080A72C0 @ =sub_8075590 - str r1, [r0, 0x1C] - ldr r1, _080A72C4 @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080A72C0: .4byte sub_8075590 -_080A72C4: .4byte DestroyAnimSprite - thumb_func_end sub_80A72A0 - - thumb_func_start sub_80A72C8 -sub_80A72C8: @ 80A72C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A72EC - ldr r1, _080A72E8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - b _080A730E - .align 2, 0 -_080A72E8: .4byte gUnknown_2037F02 -_080A72EC: - ldr r0, _080A73B4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A730E - ldr r1, _080A73B8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080A730E: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r4, _080A73BC @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r6, _080A73B8 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x6] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - adds r7, r0, 0 - ldrh r1, [r5, 0x20] - mov r2, r8 - lsls r0, r2, 16 - asrs r0, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_8075B30 - lsls r0, 16 - movs r1, 0xF0 - lsls r1, 24 - adds r0, r1 - lsrs r4, r0, 16 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A7380 - ldr r2, _080A73C0 @ =0xffffa000 - adds r0, r4, r2 - lsls r0, 16 - lsrs r4, r0, 16 -_080A7380: - movs r3, 0x80 - lsls r3, 1 - str r4, [sp] - adds r0, r5, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8075A1C - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - mov r0, r8 - strh r0, [r5, 0x32] - strh r7, [r5, 0x36] - ldr r0, _080A73C4 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A73C8 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A73B4: .4byte gUnknown_2037F1A -_080A73B8: .4byte gUnknown_2037F02 -_080A73BC: .4byte gUnknown_2037F1B -_080A73C0: .4byte 0xffffa000 -_080A73C4: .4byte sub_8075590 -_080A73C8: .4byte DestroyAnimSprite - thumb_func_end sub_80A72C8 - - thumb_func_start sub_80A73CC -sub_80A73CC: @ 80A73CC - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - subs r1, r0, 0x1 - strh r1, [r3, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080A73F6 - ldr r2, _080A73FC @ =gTasks - movs r0, 0x3C - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0xA] - subs r1, 0x1 - strh r1, [r0, 0xA] - adds r0, r3, 0 - bl DestroySprite -_080A73F6: - pop {r0} - bx r0 - .align 2, 0 -_080A73FC: .4byte gTasks - thumb_func_end sub_80A73CC - - thumb_func_start sub_80A7400 -sub_80A7400: @ 80A7400 - push {r4,lr} - adds r2, r0, 0 - movs r0, 0x3C - ldrsh r1, [r2, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080A7430 @ =gTasks - adds r4, r0, r1 - movs r3, 0x2E - ldrsh r1, [r2, r3] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _080A7434 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x38] - adds r0, r1 - strh r0, [r2, 0x38] - ldrh r0, [r2, 0x36] - ldrh r3, [r2, 0x3A] - adds r0, r3 - b _080A7442 - .align 2, 0 -_080A7430: .4byte gTasks -_080A7434: - ldrh r0, [r2, 0x38] - ldrh r1, [r2, 0x34] - subs r0, r1 - strh r0, [r2, 0x38] - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x36] - subs r0, r1 -_080A7442: - strh r0, [r2, 0x3A] - ldrh r0, [r2, 0x38] - ldrh r1, [r2, 0x30] - adds r3, r0, r1 - strh r3, [r2, 0x30] - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r4, 0x16] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A7466 - lsls r0, r3, 16 - lsrs r0, 24 - negs r0, r0 - b _080A746A -_080A7466: - lsls r0, r3, 16 - lsrs r0, 24 -_080A746A: - strh r0, [r2, 0x24] - ldrh r1, [r4, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A747E - ldrh r0, [r2, 0x32] - lsrs r0, 8 - negs r0, r0 - b _080A7482 -_080A747E: - ldrh r0, [r2, 0x32] - lsrs r0, 8 -_080A7482: - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - subs r1, r0, 0x1 - strh r1, [r2, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080A7498 - movs r0, 0x1E - strh r0, [r2, 0x2E] - ldr r0, _080A74A0 @ =sub_80A73CC - str r0, [r2, 0x1C] -_080A7498: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A74A0: .4byte sub_80A73CC - thumb_func_end sub_80A7400 - - thumb_func_start sub_80A74A4 -sub_80A74A4: @ 80A74A4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080A74E8 @ =gTasks - adds r6, r0, r1 - ldrh r2, [r6, 0x16] - movs r1, 0x2 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - ldrh r3, [r7, 0x30] - adds r2, r0, r3 - strh r2, [r7, 0x30] - ldrh r0, [r6, 0x18] - ands r1, r0 - ldrh r0, [r7, 0x32] - adds r1, r0 - strh r1, [r7, 0x32] - ldrh r1, [r6, 0x16] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A74EC - lsls r0, r2, 16 - lsrs r0, 24 - negs r0, r0 - b _080A74F0 - .align 2, 0 -_080A74E8: .4byte gTasks -_080A74EC: - lsls r0, r2, 16 - lsrs r0, 24 -_080A74F0: - strh r0, [r7, 0x24] - ldrh r1, [r6, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A7504 - ldrh r0, [r7, 0x32] - lsrs r0, 8 - negs r0, r0 - b _080A7508 -_080A7504: - ldrh r0, [r7, 0x32] - lsrs r0, 8 -_080A7508: - strh r0, [r7, 0x26] - ldrh r0, [r7, 0x2E] - subs r1, r0, 0x1 - strh r1, [r7, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080A75D4 - movs r4, 0 - movs r0, 0x8 - strh r0, [r7, 0x2E] - movs r0, 0x4 - strh r0, [r6, 0x12] - movs r0, 0x80 - lsls r0, 5 - bl sub_80D8B90 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r7, 0x24] - ldrh r1, [r7, 0x20] - adds r2, r0, r1 - strh r2, [r7, 0x20] - ldrh r0, [r7, 0x26] - ldrh r3, [r7, 0x22] - adds r0, r3 - strh r0, [r7, 0x22] - strh r4, [r7, 0x26] - strh r4, [r7, 0x24] - ldrh r3, [r6, 0x1E] - movs r0, 0x1E - ldrsh r1, [r6, r0] - lsls r0, r2, 16 - asrs r0, 16 - cmp r1, r0 - blt _080A7552 - subs r0, r3, r2 - b _080A7554 -_080A7552: - subs r0, r2, r3 -_080A7554: - lsls r0, 24 - lsrs r4, r0, 16 - ldrh r3, [r6, 0x20] - movs r0, 0x20 - ldrsh r1, [r6, r0] - ldrh r2, [r7, 0x22] - movs r6, 0x22 - ldrsh r0, [r7, r6] - cmp r1, r0 - blt _080A756C - subs r0, r3, r2 - b _080A756E -_080A756C: - subs r0, r2, r3 -_080A756E: - lsls r0, 24 - lsrs r0, 16 - mov r8, r0 - movs r0, 0 - strh r0, [r7, 0x32] - strh r0, [r7, 0x30] - strh r0, [r7, 0x3A] - strh r0, [r7, 0x38] - lsls r0, r4, 16 - asrs r0, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r5, 0 - bl sub_80D8AA0 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - movs r6, 0xE0 - lsls r6, 1 - adds r0, r6, 0 - bl sub_80D8B90 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_80D8AA0 - strh r0, [r7, 0x34] - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - adds r1, r5, 0 - bl sub_80D8AA0 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r6, 0 - bl sub_80D8B90 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_80D8AA0 - strh r0, [r7, 0x36] - ldr r0, _080A75E0 @ =sub_80A7400 - str r0, [r7, 0x1C] -_080A75D4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A75E0: .4byte sub_80A7400 - thumb_func_end sub_80A74A4 - - thumb_func_start sub_80A75E4 -sub_80A75E4: @ 80A75E4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080A7608 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A7602 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080A7602: - pop {r0} - bx r0 - .align 2, 0 -_080A7608: .4byte gTasks - thumb_func_end sub_80A75E4 - - thumb_func_start sub_80A760C -sub_80A760C: @ 80A760C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080A7660 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - subs r1, r0, 0x1 - strh r1, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bgt _080A76E0 - ldr r0, _080A7664 @ =gUnknown_83E3C28 - movs r2, 0x1A - ldrsh r1, [r5, r2] - movs r3, 0x1C - ldrsh r2, [r5, r3] - ldrb r3, [r5, 0xC] - ldrb r4, [r5, 0xA] - subs r3, r4 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r0, 4 - add r0, r12 - lsls r0, 2 - ldr r1, _080A7668 @ =gSprites - adds r6, r0, r1 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080A766C - cmp r0, 0x2 - beq _080A7682 - b _080A7690 - .align 2, 0 -_080A7660: .4byte gTasks -_080A7664: .4byte gUnknown_83E3C28 -_080A7668: .4byte gSprites -_080A766C: - ldrb r2, [r6, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x18 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x57 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x3] - b _080A7690 -_080A7682: - ldrb r0, [r6, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r6, 0x3] -_080A7690: - ldr r3, _080A76E8 @ =gTasks - lsls r2, r7, 2 - adds r2, r7 - lsls r2, 3 - adds r4, r2, r3 - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x14] - subs r0, r1 - strh r0, [r6, 0x2E] - strh r7, [r6, 0x3C] - movs r1, 0xA - ldrsh r0, [r4, r1] - adds r0, 0xD - lsls r0, 1 - adds r0, r2 - adds r3, 0x8 - adds r0, r3 - mov r2, r12 - strh r2, [r0] - ldrh r0, [r4, 0xE] - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0x3F - negs r0, r0 - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x93 - bl PlaySE12WithPanning - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0x2 - ble _080A76E0 - ldr r0, _080A76EC @ =sub_80A75E4 - str r0, [r4] -_080A76E0: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A76E8: .4byte gTasks -_080A76EC: .4byte sub_80A75E4 - thumb_func_end sub_80A760C - - thumb_func_start sub_80A76F0 -sub_80A76F0: @ 80A76F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r9, r0 - movs r5, 0 - mov r0, sp - mov r1, r9 - strh r1, [r0] - mov r4, sp - adds r4, 0x2 - strh r1, [r4] - bl sub_8073788 - lsls r0, 24 - mov r10, r4 - cmp r0, 0 - beq _080A775C - ldr r1, _080A774C @ =gTasks - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x10] - ldr r3, _080A7750 @ =gUnknown_2037F02 - ldrh r0, [r3] - negs r0, r0 - strh r0, [r3] - ldrh r1, [r3, 0x4] - movs r0, 0x1 - ands r0, r1 - mov r8, r2 - cmp r0, 0 - beq _080A7754 - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strh r0, [r3, 0x4] - b _080A77B6 - .align 2, 0 -_080A774C: .4byte gTasks -_080A7750: .4byte gUnknown_2037F02 -_080A7754: - movs r0, 0x1 - orrs r0, r1 - strh r0, [r3, 0x4] - b _080A77B6 -_080A775C: - ldr r1, _080A77A0 @ =gUnknown_2023BD6 - ldr r0, _080A77A4 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - lsls r2, r7, 2 - mov r8, r2 - cmp r0, 0 - bne _080A77B6 - ldr r1, _080A77A8 @ =gTasks - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x10] - ldr r2, _080A77AC @ =gUnknown_2037F02 - ldrh r0, [r2] - negs r0, r0 - strh r0, [r2] - ldrh r0, [r2, 0x2] - negs r0, r0 - strh r0, [r2, 0x2] - ldrh r1, [r2, 0x4] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080A77B0 - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - b _080A77B4 - .align 2, 0 -_080A77A0: .4byte gUnknown_2023BD6 -_080A77A4: .4byte gUnknown_2037F1B -_080A77A8: .4byte gTasks -_080A77AC: .4byte gUnknown_2037F02 -_080A77B0: - movs r0, 0x1 - orrs r0, r1 -_080A77B4: - strh r0, [r2, 0x4] -_080A77B6: - ldr r5, _080A7810 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - ldr r1, _080A7814 @ =gTasks - mov r3, r8 - adds r4, r3, r7 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - adds r6, r0, 0 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - mov r9, r0 - ldr r0, _080A7818 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A7820 - ldr r4, _080A781C @ =gUnknown_2037F1B - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A7820 - ldrb r0, [r4] - movs r1, 0 - mov r2, sp - mov r3, r10 - bl sub_8076D9C - b _080A7842 - .align 2, 0 -_080A7810: .4byte gUnknown_2037F1A -_080A7814: .4byte gTasks -_080A7818: .4byte gBattleTypeFlags -_080A781C: .4byte gUnknown_2037F1B -_080A7820: - mov r5, sp - ldr r4, _080A787C @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r1, r10 - strh r0, [r1] -_080A7842: - mov r4, sp - ldr r0, _080A7880 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - mov r2, sp - ldr r3, _080A7884 @ =gUnknown_2037F02 - ldrh r0, [r3] - ldrh r2, [r2] - adds r0, r2 - strh r0, [r1, 0x1E] - strh r0, [r4] - ldrh r0, [r3, 0x2] - mov r3, r10 - ldrh r3, [r3] - adds r0, r3 - strh r0, [r1, 0x20] - mov r1, r10 - strh r0, [r1] - mov r0, sp - ldrh r2, [r0] - movs r3, 0 - ldrsh r0, [r0, r3] - adds r1, r6, 0 - cmp r0, r1 - blt _080A7888 - subs r0, r2, r1 - b _080A788A - .align 2, 0 -_080A787C: .4byte gUnknown_2037F1B -_080A7880: .4byte gTasks -_080A7884: .4byte gUnknown_2037F02 -_080A7888: - subs r0, r1, r2 -_080A788A: - lsls r0, 16 - lsrs r0, 16 - lsls r4, r0, 16 - asrs r4, 16 - ldr r5, _080A7900 @ =gUnknown_2037F02 - ldrh r1, [r5, 0x4] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - lsls r0, 16 - asrs r0, 16 - bl sub_80D8B90 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_80D8AA0 - ldr r2, _080A7904 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r6, r1, r2 - strh r0, [r6, 0x12] - movs r1, 0x12 - ldrsh r0, [r6, r1] - movs r1, 0x80 - bl sub_80D8AA0 - strh r0, [r6, 0x14] - ldrh r0, [r5, 0x4] - strh r0, [r6, 0x16] - mov r2, r10 - ldrh r1, [r2] - movs r3, 0 - ldrsh r0, [r2, r3] - mov r4, r9 - cmp r0, r4 - blt _080A7908 - subs r4, r1, r4 - lsls r4, 16 - asrs r4, 16 - movs r1, 0x12 - ldrsh r0, [r6, r1] - bl sub_80D8B90 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_80D8AA0 - movs r1, 0x2 - negs r1, r1 - ands r1, r0 - strh r1, [r6, 0x18] - b _080A7928 - .align 2, 0 -_080A7900: .4byte gUnknown_2037F02 -_080A7904: .4byte gTasks -_080A7908: - subs r4, r1 - lsls r4, 16 - asrs r4, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - bl sub_80D8B90 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_80D8AA0 - movs r1, 0x1 - orrs r0, r1 - strh r0, [r6, 0x18] -_080A7928: - ldr r1, _080A7968 @ =gTasks - mov r3, r8 - adds r0, r3, r7 - lsls r0, 3 - adds r5, r0, r1 - ldr r4, _080A796C @ =gUnknown_2037F02 - ldrh r0, [r4, 0x6] - strh r0, [r5, 0xE] - ldrh r1, [r4, 0x8] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080A7978 - movs r0, 0x80 - eors r0, r1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _080A79A0 - ldr r0, _080A7970 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A7974 @ =0x0000ffc0 - adds r1, r2, 0 - ldrh r4, [r4, 0x8] - adds r1, r4 - adds r0, r1 - b _080A79B0 - .align 2, 0 -_080A7968: .4byte gTasks -_080A796C: .4byte gUnknown_2037F02 -_080A7970: .4byte gUnknown_2037F1B -_080A7974: .4byte 0x0000ffc0 -_080A7978: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _080A79A0 - ldr r0, _080A7998 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080A799C @ =0x0000ffc0 - adds r1, r3, 0 - ldrh r4, [r4, 0x8] - adds r1, r4 - adds r0, r1 - b _080A79B0 - .align 2, 0 -_080A7998: .4byte gUnknown_2037F1B -_080A799C: .4byte 0x0000ffc0 -_080A79A0: - ldr r0, _080A79DC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x8] - subs r0, r1 -_080A79B0: - strh r0, [r5, 0xC] - ldr r0, _080A79E0 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bgt _080A79C8 - movs r0, 0x3 - strh r0, [r1, 0xC] -_080A79C8: - ldr r0, _080A79E4 @ =sub_80A760C - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A79DC: .4byte gUnknown_2037F1B -_080A79E0: .4byte gTasks -_080A79E4: .4byte sub_80A760C - thumb_func_end sub_80A76F0 - - thumb_func_start sub_80A79E8 -sub_80A79E8: @ 80A79E8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r0, _080A7A10 @ =gUnknown_83E3D18 - ldrh r0, [r0, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4, 0x2E] - ldr r0, _080A7A14 @ =sub_80A7A18 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7A10: .4byte gUnknown_83E3D18 -_080A7A14: .4byte sub_80A7A18 - thumb_func_end sub_80A79E8 - - thumb_func_start sub_80A7A18 -sub_80A7A18: @ 80A7A18 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080A7A7C - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r5, [r4, 0x2E] - ldr r1, _080A7A84 @ =gPlttBufferFaded - adds r0, r5, 0 - adds r0, 0x8 - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - adds r6, r1, 0 - adds r1, r5, 0 - adds r1, 0x9 - lsls r0, r5, 1 - adds r0, r6 - adds r2, r0, 0 - adds r2, 0x10 - movs r3, 0x7 - lsls r1, 1 - adds r1, r6 -_080A7A50: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080A7A50 - adds r0, r5, 0 - adds r0, 0xF - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - bne _080A7A7C - adds r0, r4, 0 - bl DestroyAnimSprite -_080A7A7C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A7A84: .4byte gPlttBufferFaded - thumb_func_end sub_80A7A18 - - thumb_func_start sub_80A7A88 -sub_80A7A88: @ 80A7A88 - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r4, _080A7B28 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A7B2C @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _080A7B30 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A7ACC - ldrh r0, [r4, 0x4] - negs r0, r0 - strh r0, [r4, 0x4] -_080A7ACC: - lsls r0, r6, 16 - asrs r0, 16 - ldrh r1, [r4, 0x4] - adds r0, r1 - lsls r0, 16 - ldrh r1, [r5, 0x20] - lsrs r6, r0, 16 - asrs r0, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_8075B30 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8075A1C - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x2E] - strh r6, [r5, 0x32] - strh r7, [r5, 0x36] - ldr r0, _080A7B34 @ =sub_80756A4 - str r0, [r5, 0x1C] - ldr r1, _080A7B38 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A7B28: .4byte gUnknown_2037F1B -_080A7B2C: .4byte gUnknown_2037F02 -_080A7B30: .4byte gUnknown_2037F1A -_080A7B34: .4byte sub_80756A4 -_080A7B38: .4byte DestroyAnimSprite - thumb_func_end sub_80A7A88 - - thumb_func_start sub_80A7B3C -sub_80A7B3C: @ 80A7B3C - ldr r1, _080A7B4C @ =0x0000fff0 - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - ldr r1, _080A7B50 @ =sub_80A7B54 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080A7B4C: .4byte 0x0000fff0 -_080A7B50: .4byte sub_80A7B54 - thumb_func_end sub_80A7B3C - - thumb_func_start sub_80A7B54 -sub_80A7B54: @ 80A7B54 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldr r0, _080A7BC0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A7B78 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] -_080A7B78: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x5 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _080A7BB8 - movs r0, 0 - strh r0, [r4, 0x30] - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080A7BB8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A7BB8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7BC0: .4byte gUnknown_2037F1A - thumb_func_end sub_80A7B54 - - thumb_func_start sub_80A7BC4 -sub_80A7BC4: @ 80A7BC4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r5, _080A7C10 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080A7C14 @ =sub_8075590 - str r0, [r4, 0x1C] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080A7C18 @ =sub_80A7C1C - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7C10: .4byte gUnknown_2037F1B -_080A7C14: .4byte sub_8075590 -_080A7C18: .4byte sub_80A7C1C - thumb_func_end sub_80A7BC4 - - thumb_func_start sub_80A7C1C -sub_80A7C1C: @ 80A7C1C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3F - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x9F - bl PlaySE12WithPanning - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - movs r2, 0 - movs r1, 0x7 - adds r0, r4, 0 - adds r0, 0x3C -_080A7C50: - strh r2, [r0] - subs r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080A7C50 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - ands r0, r1 - ldr r2, _080A7C98 @ =0x0000fff4 - adds r1, r2, 0 - subs r1, r0 - strh r1, [r4, 0x3A] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA0 - bl __umodsi3 - adds r0, 0xA0 - strh r0, [r4, 0x3C] - ldr r0, _080A7C9C @ =sub_80A7CA0 - str r0, [r4, 0x1C] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7C98: .4byte 0x0000fff4 -_080A7C9C: .4byte sub_80A7CA0 - thumb_func_end sub_80A7C1C - - thumb_func_start sub_80A7CA0 -sub_80A7CA0: @ 80A7CA0 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x3C] - ldrh r2, [r4, 0x2E] - adds r0, r1, r2 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r2, r0, 24 - strh r2, [r4, 0x24] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A7CBE - negs r0, r2 - strh r0, [r4, 0x24] -_080A7CBE: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x8 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _080A7CFE - movs r0, 0 - strh r0, [r4, 0x30] - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A7CFE - adds r0, r4, 0 - bl DestroyAnimSprite -_080A7CFE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7CA0 - - thumb_func_start sub_80A7D04 -sub_80A7D04: @ 80A7D04 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r0, _080A7D54 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A7D22 - ldrh r0, [r4, 0x22] - adds r0, 0x10 - strh r0, [r4, 0x22] -_080A7D22: - ldr r1, _080A7D58 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0xC] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldr r0, _080A7D5C @ =sub_8074A80 - str r0, [r4, 0x1C] - ldr r1, _080A7D60 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7D54: .4byte gUnknown_2037F1A -_080A7D58: .4byte gUnknown_2037F02 -_080A7D5C: .4byte sub_8074A80 -_080A7D60: .4byte DestroyAnimSprite - thumb_func_end sub_80A7D04 - - thumb_func_start sub_80A7D64 -sub_80A7D64: @ 80A7D64 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r7, 0x20 - ldr r4, _080A7DE0 @ =0x0000ffe0 - movs r0, 0x10 - mov r8, r0 - ldr r6, _080A7DE4 @ =0x0000fff0 - ldr r0, _080A7DE8 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080A7D90 - adds r7, r4, 0 - movs r4, 0x20 - mov r8, r6 - movs r6, 0x10 - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080A7D90: - lsls r0, r7, 16 - asrs r0, 16 - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080A7DEC @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - add r0, r8 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - ldr r0, _080A7DF0 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A7DF4 @ =sub_80A7DF8 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A7DE0: .4byte 0x0000ffe0 -_080A7DE4: .4byte 0x0000fff0 -_080A7DE8: .4byte gUnknown_2037F02 -_080A7DEC: .4byte gUnknown_2037F1B -_080A7DF0: .4byte sub_8075590 -_080A7DF4: .4byte sub_80A7DF8 - thumb_func_end sub_80A7D64 - - thumb_func_start sub_80A7DF8 -sub_80A7DF8: @ 80A7DF8 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A7E0E - adds r0, r2, 0 - bl DestroyAnimSprite -_080A7E0E: - pop {r0} - bx r0 - thumb_func_end sub_80A7DF8 - - thumb_func_start sub_80A7E14 -sub_80A7E14: @ 80A7E14 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r0, 0x20 - mov r8, r0 - ldr r4, _080A7EA8 @ =0x0000ffe0 - movs r2, 0x10 - mov r9, r2 - ldr r6, _080A7EAC @ =0x0000fff0 - ldr r7, _080A7EB0 @ =gUnknown_2037F02 - ldrh r1, [r7] - movs r2, 0 - ldrsh r0, [r7, r2] - cmp r0, 0 - beq _080A7E48 - mov r8, r4 - movs r4, 0x20 - mov r9, r6 - movs r6, 0x10 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim -_080A7E48: - mov r0, r8 - lsls r1, r0, 16 - asrs r1, 16 - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - movs r0, 0x6 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - ldr r4, _080A7EB4 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - add r0, r9 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r7] - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x2E] - strh r0, [r5, 0x3A] - ldr r0, _080A7EB8 @ =sub_80A7EBC - str r0, [r5, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A7EA8: .4byte 0x0000ffe0 -_080A7EAC: .4byte 0x0000fff0 -_080A7EB0: .4byte gUnknown_2037F02 -_080A7EB4: .4byte gUnknown_2037F1B -_080A7EB8: .4byte sub_80A7EBC - thumb_func_end sub_80A7E14 - - thumb_func_start sub_80A7EBC -sub_80A7EBC: @ 80A7EBC - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080A7F20 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A7F20 - adds r0, r4, 0 - movs r1, 0 - bl SeekSpriteAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r2, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x2 - strh r0, [r4, 0x24] - ldr r0, _080A7F28 @ =0x0000fffe - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - eors r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x36] - strh r2, [r4, 0x34] - ldr r0, _080A7F2C @ =sub_80A7F30 - str r0, [r4, 0x1C] -_080A7F20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7F28: .4byte 0x0000fffe -_080A7F2C: .4byte sub_80A7F30 - thumb_func_end sub_80A7EBC - - thumb_func_start sub_80A7F30 -sub_80A7F30: @ 80A7F30 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A7F48 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - negs r0, r0 - strh r0, [r4, 0x26] -_080A7F48: - ldrh r0, [r4, 0x34] - movs r1, 0x1 - eors r0, r1 - movs r1, 0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080A7F8A - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - strh r1, [r4, 0x36] - strh r1, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - movs r1, 0x1 - eors r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080A7F90 @ =sub_80A7F94 - str r0, [r4, 0x1C] -_080A7F8A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7F90: .4byte sub_80A7F94 - thumb_func_end sub_80A7F30 - - thumb_func_start sub_80A7F94 -sub_80A7F94: @ 80A7F94 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080A7FA8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A7FA8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7F94 - - thumb_func_start sub_80A7FB0 -sub_80A7FB0: @ 80A7FB0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80758E0 - adds r0, r4, 0 - movs r1, 0xD0 - movs r2, 0xD0 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, _080A8008 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0 - bl sub_8075B48 - ldr r1, _080A800C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x50 - strh r1, [r0, 0x8] - ldr r1, _080A8010 @ =sub_80A8014 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8008: .4byte gSprites -_080A800C: .4byte gTasks -_080A8010: .4byte sub_80A8014 - thumb_func_end sub_80A7FB0 - - thumb_func_start sub_80A8014 -sub_80A8014: @ 80A8014 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A806C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080A8064 - movs r0, 0x1 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8075980 - ldr r1, _080A8070 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0x1 - bl sub_8075B48 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A8064: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A806C: .4byte gTasks -_080A8070: .4byte gSprites - thumb_func_end sub_80A8014 - - thumb_func_start sub_80A8074 -sub_80A8074: @ 80A8074 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A80C0 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x8] - movs r1, 0 - bl sub_80758E0 - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x10] - strh r5, [r4, 0x12] - strh r5, [r4, 0x14] - ldr r0, _080A80C4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - ldr r0, _080A80C8 @ =sub_80A80CC - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A80C0: .4byte gTasks -_080A80C4: .4byte gUnknown_2037F1A -_080A80C8: .4byte sub_80A80CC - thumb_func_end sub_80A8074 - - thumb_func_start sub_80A80CC -sub_80A80CC: @ 80A80CC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A80F0 @ =gTasks - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080A80E6 - b _080A81F6 -_080A80E6: - lsls r0, 2 - ldr r1, _080A80F4 @ =_080A80F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A80F0: .4byte gTasks -_080A80F4: .4byte _080A80F8 - .align 2, 0 -_080A80F8: - .4byte _080A8110 - .4byte _080A8158 - .4byte _080A818E - .4byte _080A8194 - .4byte _080A81A4 - .4byte _080A81D8 -_080A8110: - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080A8120 - cmp r0, 0x3 - beq _080A8120 - cmp r0, 0x6 - bne _080A8128 -_080A8120: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A8200 -_080A8128: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - adds r0, 0x28 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r1, 0x10 - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8076440 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _080A81F6 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - b _080A81D0 -_080A8158: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A81F6 - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r1, 0x3 - bne _080A816E - strh r0, [r4, 0xC] - strh r1, [r4, 0xA] - b _080A81F6 -_080A816E: - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r2, 0x80 - lsls r2, 1 - strh r2, [r4, 0x10] - ldrb r0, [r4, 0x8] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8076440 - movs r0, 0x2 - strh r0, [r4, 0xA] - b _080A81F6 -_080A818E: - movs r0, 0 - strh r0, [r4, 0xA] - b _080A81F6 -_080A8194: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _080A81F6 - b _080A81CC -_080A81A4: - ldrh r0, [r4, 0xC] - adds r0, 0x2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - subs r0, 0x50 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r1, 0x10 - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8076440 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _080A81F6 -_080A81CC: - movs r0, 0 - strh r0, [r4, 0xC] -_080A81D0: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080A81F6 -_080A81D8: - ldrb r0, [r4, 0x8] - bl sub_8075980 - ldr r2, _080A81FC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x26] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A81F6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A81FC: .4byte gSprites - thumb_func_end sub_80A80CC - - thumb_func_start sub_80A8200 -sub_80A8200: @ 80A8200 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0 - blt _080A82DA - bl AllocOamMatrix - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xFF - bne _080A8244 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _080A8240 @ =gSprites - adds r0, r1 - bl obj_delete_but_dont_free_vram - b _080A82DA - .align 2, 0 -_080A8240: .4byte gSprites -_080A8244: - ldr r5, _080A82E8 @ =gSprites - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - adds r4, r3, r5 - ldrb r1, [r4, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1F - ands r6, r0 - lsls r2, r6, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - ldrb r0, [r7, 0x16] - ldrb r1, [r7, 0xE] - subs r0, r1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r7, 0xE] - adds r0, 0x1 - strh r0, [r7, 0xE] - ldrh r0, [r7, 0x14] - adds r0, 0x1 - strh r0, [r7, 0x14] - movs r0, 0x10 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - movs r0, 0x6 - strh r0, [r4, 0x32] - adds r5, 0x1C - adds r3, r5 - ldr r0, _080A82EC @ =sub_80A82F0 - str r0, [r3] - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - movs r1, 0x10 - ldrsh r2, [r7, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x1] - movs r3, 0x4 - negs r3, r3 - ands r3, r0 - movs r0, 0x1 - orrs r3, r0 - strb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec -_080A82DA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A82E8: .4byte gSprites -_080A82EC: .4byte sub_80A82F0 - thumb_func_end sub_80A8200 - - thumb_func_start sub_80A82F0 -sub_80A82F0: @ 80A82F0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080A832E - ldr r3, _080A8334 @ =gTasks - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl obj_delete_but_dont_free_vram -_080A832E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8334: .4byte gTasks - thumb_func_end sub_80A82F0 - - thumb_func_start sub_80A8338 -sub_80A8338: @ 80A8338 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080A835C @ =gTasks - adds r4, r0, r1 - ldr r5, _080A8360 @ =gUnknown_2037F02 - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A8364 - adds r0, r2, 0 - bl DestroyAnimVisualTask - b _080A838A - .align 2, 0 -_080A835C: .4byte gTasks -_080A8360: .4byte gUnknown_2037F02 -_080A8364: - ldrb r0, [r5] - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - strh r1, [r4, 0x8] - strh r2, [r4, 0xA] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0xC] - strh r2, [r4, 0xE] - strh r2, [r4, 0x10] - ldr r2, _080A8390 @ =gUnknown_83E3E60 - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080A8394 @ =sub_80A8398 - str r0, [r4] -_080A838A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8390: .4byte gUnknown_83E3E60 -_080A8394: .4byte sub_80A8398 - thumb_func_end sub_80A8338 - - thumb_func_start sub_80A8398 -sub_80A8398: @ 80A8398 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080A83BC @ =gTasks - adds r4, r0, r1 - movs r0, 0xA - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080A8400 - cmp r5, 0x1 - bgt _080A83C0 - cmp r5, 0 - beq _080A83CA - b _080A84A8 - .align 2, 0 -_080A83BC: .4byte gTasks -_080A83C0: - cmp r5, 0x2 - beq _080A8434 - cmp r5, 0x3 - beq _080A8464 - b _080A84A8 -_080A83CA: - adds r0, r4, 0 - bl sub_8076308 - ldrh r2, [r4, 0x10] - adds r2, 0x3 - strh r2, [r4, 0x10] - ldr r3, _080A83FC @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - adds r1, r2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080A84A8 - strh r5, [r4, 0xE] - b _080A845C - .align 2, 0 -_080A83FC: .4byte gSprites -_080A8400: - adds r0, r4, 0 - bl sub_8076308 - ldr r2, _080A8430 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - ldrh r2, [r0, 0x26] - adds r1, r2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080A84A8 - movs r0, 0 - strh r0, [r4, 0xE] - b _080A845C - .align 2, 0 -_080A8430: .4byte gSprites -_080A8434: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A845C - ldr r2, _080A8458 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0x10] - subs r0, 0x2 - strh r0, [r4, 0x10] - b _080A84A8 - .align 2, 0 -_080A8458: .4byte gSprites -_080A845C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080A84A8 -_080A8464: - adds r0, r4, 0 - bl sub_8076308 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080A84A8 - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _080A849C - ldr r2, _080A8498 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _080A84A8 - .align 2, 0 -_080A8498: .4byte gSprites -_080A849C: - ldrb r1, [r4, 0x8] - ldr r2, _080A84B0 @ =gUnknown_83E3E60 - adds r0, r4, 0 - bl sub_80762D0 - strh r5, [r4, 0xA] -_080A84A8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A84B0: .4byte gUnknown_83E3E60 - thumb_func_end sub_80A8398 - - thumb_func_start sub_80A84B4 -sub_80A84B4: @ 80A84B4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A84E4 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080A84E8 @ =gUnknown_83E3E80 - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080A84EC @ =sub_80A84F0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A84E4: .4byte gTasks -_080A84E8: .4byte gUnknown_83E3E80 -_080A84EC: .4byte sub_80A84F0 - thumb_func_end sub_80A84B4 - - thumb_func_start sub_80A84F0 -sub_80A84F0: @ 80A84F0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A8518 @ =gTasks - adds r0, r1 - bl sub_8076308 - lsls r0, 24 - cmp r0, 0 - bne _080A8510 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A8510: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8518: .4byte gTasks - thumb_func_end sub_80A84F0 - - thumb_func_start sub_80A851C -sub_80A851C: @ 80A851C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080A854C @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A8550 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r4, 0x20] - movs r0, 0x40 - b _080A856A - .align 2, 0 -_080A854C: .4byte gUnknown_2037F1A -_080A8550: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x20 - strh r0, [r4, 0x20] - ldr r0, _080A859C @ =0x0000ffc0 -_080A856A: - strh r0, [r4, 0x30] - ldr r0, _080A85A0 @ =gUnknown_2037F1A - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4, 0x22] - movs r0, 0x34 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x32] - strh r1, [r4, 0x34] - strh r1, [r4, 0x36] - ldr r1, _080A85A4 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A85A8 @ =sub_8074D00 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A859C: .4byte 0x0000ffc0 -_080A85A0: .4byte gUnknown_2037F1A -_080A85A4: .4byte DestroyAnimSprite -_080A85A8: .4byte sub_8074D00 - thumb_func_end sub_80A851C - - thumb_func_start sub_80A85AC -sub_80A85AC: @ 80A85AC - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080A85C0 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A85C8 - ldr r0, _080A85C4 @ =gUnknown_2037F1A - b _080A85CA - .align 2, 0 -_080A85C0: .4byte gUnknown_2037F02 -_080A85C4: .4byte gUnknown_2037F1A -_080A85C8: - ldr r0, _080A8628 @ =gUnknown_2037F1B -_080A85CA: - ldrb r5, [r0] - adds r0, r5, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A85E4 - ldr r1, _080A862C @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080A85E4: - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A862C @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x4] - adds r0, r4 - strh r0, [r6, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bgt _080A8616 - movs r0, 0x8 - strh r0, [r6, 0x22] -_080A8616: - ldr r1, _080A8630 @ =move_anim_8074EE0 - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A8634 @ =sub_8074F50 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8628: .4byte gUnknown_2037F1B -_080A862C: .4byte gUnknown_2037F02 -_080A8630: .4byte move_anim_8074EE0 -_080A8634: .4byte sub_8074F50 - thumb_func_end sub_80A85AC - - thumb_func_start sub_80A8638 -sub_80A8638: @ 80A8638 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A866C @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - strh r1, [r4, 0x8] - strh r0, [r4, 0xA] - ldr r2, _080A8670 @ =gUnknown_83E3F1C - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080A8674 @ =sub_80A8678 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A866C: .4byte gTasks -_080A8670: .4byte gUnknown_83E3F1C -_080A8674: .4byte sub_80A8678 - thumb_func_end sub_80A8638 - - thumb_func_start sub_80A8678 -sub_80A8678: @ 80A8678 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A86A0 @ =gTasks - adds r0, r1 - bl sub_8076308 - lsls r0, 24 - cmp r0, 0 - bne _080A8698 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A8698: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A86A0: .4byte gTasks - thumb_func_end sub_80A8678 - - thumb_func_start sub_80A86A4 -sub_80A86A4: @ 80A86A4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A8718 @ =gTasks - adds r4, r1, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - strh r0, [r4, 0x8] - strh r2, [r4, 0xA] - movs r0, 0x4 - strh r0, [r4, 0xC] - movs r0, 0x7 - strh r0, [r4, 0xE] - movs r0, 0x3 - strh r0, [r4, 0x10] - ldr r3, _080A871C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x20] - strh r0, [r4, 0x12] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x14] - strh r2, [r4, 0x16] - strh r2, [r4, 0x18] - movs r0, 0x2 - strh r0, [r4, 0x1A] - ldr r0, _080A8720 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A870E - movs r1, 0xC - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0xC] -_080A870E: - ldr r0, _080A8724 @ =sub_80A8728 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8718: .4byte gTasks -_080A871C: .4byte gSprites -_080A8720: .4byte gUnknown_2037F1A -_080A8724: .4byte sub_80A8728 - thumb_func_end sub_80A86A4 - - thumb_func_start sub_80A8728 -sub_80A8728: @ 80A8728 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A8770 @ =gTasks - adds r3, r0, r1 - ldrh r0, [r3, 0x16] - adds r0, 0x1 - strh r0, [r3, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080A878E - movs r0, 0 - strh r0, [r3, 0x16] - ldrh r0, [r3, 0x18] - adds r0, 0x1 - strh r0, [r3, 0x18] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A8778 - ldr r2, _080A8774 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x1A] - ldrh r2, [r0, 0x22] - adds r1, r2 - b _080A878C - .align 2, 0 -_080A8770: .4byte gTasks -_080A8774: .4byte gSprites -_080A8778: - ldr r2, _080A87A0 @ =gSprites - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - ldrh r2, [r3, 0x1A] - subs r1, r2 -_080A878C: - strh r1, [r0, 0x22] -_080A878E: - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080A87DC - cmp r0, 0x1 - bgt _080A87A4 - cmp r0, 0 - beq _080A87AA - b _080A886C - .align 2, 0 -_080A87A0: .4byte gSprites -_080A87A4: - cmp r0, 0x2 - beq _080A880C - b _080A886C -_080A87AA: - ldr r2, _080A87D8 @ =gSprites - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0xC] - ldrh r2, [r0, 0x20] - adds r1, r2 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080A886C - movs r0, 0xE - strh r0, [r3, 0xE] - movs r0, 0x1 - strh r0, [r3, 0xA] - b _080A886C - .align 2, 0 -_080A87D8: .4byte gSprites -_080A87DC: - ldr r2, _080A8808 @ =gSprites - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - ldrh r2, [r3, 0xC] - subs r1, r2 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080A886C - movs r0, 0x7 - strh r0, [r3, 0xE] - movs r0, 0x2 - strh r0, [r3, 0xA] - b _080A886C - .align 2, 0 -_080A8808: .4byte gSprites -_080A880C: - ldr r2, _080A8844 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0xC] - ldrh r5, [r0, 0x20] - adds r1, r5 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _080A886C - ldrh r0, [r3, 0x10] - subs r0, 0x1 - strh r0, [r3, 0x10] - lsls r0, 16 - cmp r0, 0 - beq _080A8848 - movs r0, 0x7 - strh r0, [r3, 0xE] - strh r1, [r3, 0xA] - b _080A886C - .align 2, 0 -_080A8844: .4byte gSprites -_080A8848: - ldrh r1, [r3, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A8866 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - ldrh r2, [r3, 0x1A] - subs r1, r2 - strh r1, [r0, 0x22] -_080A8866: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A886C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A8728 - - thumb_func_start sub_80A8874 -sub_80A8874: @ 80A8874 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A88C4 @ =gTasks - adds r5, r1, r0 - ldr r4, _080A88C8 @ =gUnknown_2037F1B - ldrb r0, [r4] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - movs r1, 0 - strh r0, [r5, 0x8] - movs r0, 0x4 - strh r0, [r5, 0xA] - strh r1, [r5, 0xC] - strh r1, [r5, 0xE] - strh r1, [r5, 0x10] - strh r1, [r5, 0x12] - ldrb r0, [r4] - bl sub_8076B2C - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A88D4 - ldr r0, _080A88CC @ =gUnknown_2022978 - ldrh r0, [r0] - strh r0, [r5, 0x14] - ldr r0, _080A88D0 @ =0x04000014 - b _080A88DC - .align 2, 0 -_080A88C4: .4byte gTasks -_080A88C8: .4byte gUnknown_2037F1B -_080A88CC: .4byte gUnknown_2022978 -_080A88D0: .4byte 0x04000014 -_080A88D4: - ldr r0, _080A8940 @ =gUnknown_202297C - ldrh r0, [r0] - strh r0, [r5, 0x14] - ldr r0, _080A8944 @ =0x04000018 -_080A88DC: - str r0, [sp] - ldrh r0, [r5, 0x8] - adds r1, r0, 0 - subs r1, 0x40 - lsls r2, r1, 16 - lsls r0, 16 - cmp r2, r0 - bgt _080A891A - ldr r4, _080A8948 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r4, r0 -_080A88F4: - asrs r3, r2, 16 - cmp r3, 0 - blt _080A890C - lsls r1, r3, 1 - adds r2, r1, r4 - ldrh r0, [r5, 0x14] - adds r0, 0xF0 - strh r0, [r2] - adds r1, r6 - ldrh r0, [r5, 0x14] - adds r0, 0xF0 - strh r0, [r1] -_080A890C: - adds r0, r3, 0x1 - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r3, 0x8 - ldrsh r0, [r5, r3] - cmp r1, r0 - ble _080A88F4 -_080A891A: - ldr r0, _080A894C @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - ldr r0, _080A8950 @ =sub_80A8954 - str r0, [r5] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8940: .4byte gUnknown_202297C -_080A8944: .4byte 0x04000018 -_080A8948: .4byte gUnknown_2038700 -_080A894C: .4byte 0xa2600001 -_080A8950: .4byte sub_80A8954 - thumb_func_end sub_80A8874 - - thumb_func_start sub_80A8954 -sub_80A8954: @ 80A8954 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A8974 @ =gTasks - adds r3, r0, r1 - movs r1, 0x10 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _080A8978 - cmp r0, 0x1 - beq _080A898E - b _080A8A0E - .align 2, 0 -_080A8974: .4byte gTasks -_080A8978: - ldrh r0, [r3, 0x12] - adds r0, 0x1 - strh r0, [r3, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080A8A0E - ldrh r0, [r3, 0x10] - adds r0, 0x1 - strh r0, [r3, 0x10] - b _080A8A0E -_080A898E: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A8A0E - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r1, [r3, 0xE] - movs r0, 0x3 - ands r0, r1 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x8] - subs r0, r1 - strh r0, [r3, 0x12] - movs r2, 0xC - ldrsh r1, [r3, r2] - cmp r1, 0x1 - beq _080A89C4 - cmp r1, 0x1 - ble _080A89CC - cmp r1, 0x2 - beq _080A89C8 - cmp r1, 0x3 - beq _080A89C8 - b _080A89CC -_080A89C4: - subs r0, 0x2 - b _080A89CA -_080A89C8: - adds r0, 0x1 -_080A89CA: - strh r0, [r3, 0x12] -_080A89CC: - movs r1, 0x12 - ldrsh r0, [r3, r1] - cmp r0, 0 - blt _080A89F0 - ldr r2, _080A8A14 @ =gUnknown_2038700 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r3, 0x14] - strh r1, [r0] - movs r1, 0x12 - ldrsh r0, [r3, r1] - lsls r0, 1 - movs r1, 0xF0 - lsls r1, 3 - adds r2, r1 - adds r0, r2 - ldrh r1, [r3, 0x14] - strh r1, [r0] -_080A89F0: - ldrh r0, [r3, 0xE] - adds r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x26 - ldrsh r1, [r3, r2] - cmp r0, r1 - blt _080A8A0E - ldr r1, _080A8A18 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A8A0E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8A14: .4byte gUnknown_2038700 -_080A8A18: .4byte gUnknown_2039600 - thumb_func_end sub_80A8954 - - thumb_func_start sub_80A8A1C -sub_80A8A1C: @ 80A8A1C - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080A8A70 @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - movs r0, 0x10 - strh r0, [r4, 0x34] - strh r5, [r4, 0x36] - ldrb r0, [r6] - movs r1, 0 - bl sub_8076B2C - adds r0, 0x2 - strh r0, [r4, 0x38] - movs r0, 0x3F - bl sub_8073A44 - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x3A] - ldr r0, _080A8A74 @ =sub_80A8A78 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8A70: .4byte gUnknown_2037F1B -_080A8A74: .4byte sub_80A8A78 - thumb_func_end sub_80A8A1C - - thumb_func_start sub_80A8A78 -sub_80A8A78: @ 80A8A78 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080A8ADC - cmp r1, 0x1 - bgt _080A8A8E - cmp r1, 0 - beq _080A8A94 - b _080A8BBC -_080A8A8E: - cmp r1, 0x2 - beq _080A8B6E - b _080A8BBC -_080A8A94: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A8ABE - strh r1, [r4, 0x32] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080A8ABE: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080A8BBC - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - b _080A8B66 -_080A8ADC: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A8B22 - ldrh r2, [r4, 0x32] - movs r3, 0x32 - ldrsh r1, [r4, r3] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080A8B22 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - subs r0, 0x1 - strh r0, [r4, 0x22] - adds r0, r2, 0x1 - strh r0, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080A8B22 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xC6 - bl PlaySE12WithPanning -_080A8B22: - ldrh r0, [r4, 0x34] - ldrh r2, [r4, 0x36] - adds r1, r0, r2 - strh r1, [r4, 0x36] - lsls r0, r1, 16 - asrs r2, r0, 16 - cmp r2, 0x1F - ble _080A8B36 - movs r0, 0x40 - b _080A8B44 -_080A8B36: - movs r0, 0x20 - negs r0, r0 - cmp r2, r0 - bgt _080A8B50 - movs r2, 0x40 - negs r2, r2 - adds r0, r2, 0 -_080A8B44: - subs r0, r1 - strh r0, [r4, 0x36] - movs r3, 0x34 - ldrsh r0, [r4, r3] - negs r0, r0 - strh r0, [r4, 0x34] -_080A8B50: - ldrh r0, [r4, 0x36] - movs r2, 0 - strh r0, [r4, 0x24] - movs r0, 0x38 - ldrsh r1, [r4, r0] - movs r3, 0x32 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080A8BBC - strh r2, [r4, 0x30] - strh r2, [r4, 0x32] -_080A8B66: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080A8BBC -_080A8B6E: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A8B9A - movs r0, 0 - strh r0, [r4, 0x32] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080A8B9A: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080A8BBC - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - bl DestroyAnimSprite -_080A8BBC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A8A78 - - thumb_func_start sub_80A8BC4 -sub_80A8BC4: @ 80A8BC4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - movs r5, 0 - mov r0, sp - strh r5, [r0] - mov r1, sp - adds r1, 0x2 - strh r5, [r1] - ldr r0, _080A8BE8 @ =gUnknown_2037F02 - movs r3, 0x4 - ldrsh r2, [r0, r3] - adds r7, r1, 0 - adds r1, r0, 0 - cmp r2, 0 - bne _080A8BF0 - ldr r0, _080A8BEC @ =gUnknown_2037F1A - b _080A8BF2 - .align 2, 0 -_080A8BE8: .4byte gUnknown_2037F02 -_080A8BEC: .4byte gUnknown_2037F1A -_080A8BF0: - ldr r0, _080A8C2C @ =gUnknown_2037F1B -_080A8BF2: - ldrb r5, [r0] - ldrb r1, [r1, 0x6] - movs r0, 0x1 - adds r4, r0, 0 - eors r4, r1 - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080A8C6A - movs r1, 0x2 - adds r0, r5, 0 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A8C6A - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, sp - adds r3, r7, 0 - bl sub_8076D9C - cmp r4, 0 - bne _080A8C30 - adds r0, r5, 0 - movs r1, 0 - b _080A8C34 - .align 2, 0 -_080A8C2C: .4byte gUnknown_2037F1B -_080A8C30: - adds r0, r5, 0 - movs r1, 0x2 -_080A8C34: - bl sub_8074480 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A8C60 - ldr r2, _080A8C5C @ =gUnknown_2037F02 - mov r0, sp - ldrh r1, [r0] - subs r1, r4 - ldrh r0, [r2] - subs r1, r0 - subs r0, r1 - strh r0, [r2] - b _080A8C6A - .align 2, 0 -_080A8C5C: .4byte gUnknown_2037F02 -_080A8C60: - ldr r1, _080A8C7C @ =gUnknown_2037F02 - mov r0, sp - ldrh r0, [r0] - subs r0, r4 - strh r0, [r1] -_080A8C6A: - ldr r1, _080A8C80 @ =sub_8075D9C - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8C7C: .4byte gUnknown_2037F02 -_080A8C80: .4byte sub_8075D9C - thumb_func_end sub_80A8BC4 - - thumb_func_start sub_80A8C84 -sub_80A8C84: @ 80A8C84 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080A8C9E - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroyAnimSprite -_080A8C9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A8C84 - - thumb_func_start sub_80A8CA4 -sub_80A8CA4: @ 80A8CA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r0, 0 - movs r6, 0 - mov r0, sp - strh r6, [r0] - mov r1, sp - adds r1, 0x2 - strh r6, [r1] - ldr r0, _080A8CD0 @ =gUnknown_2037F02 - movs r2, 0xA - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080A8CDC - ldr r0, _080A8CD4 @ =gUnknown_2037F1A - ldrb r7, [r0] - ldr r0, _080A8CD8 @ =gUnknown_2037F1B - b _080A8CE2 - .align 2, 0 -_080A8CD0: .4byte gUnknown_2037F02 -_080A8CD4: .4byte gUnknown_2037F1A -_080A8CD8: .4byte gUnknown_2037F1B -_080A8CDC: - ldr r0, _080A8CFC @ =gUnknown_2037F1B - ldrb r7, [r0] - ldr r0, _080A8D00 @ =gUnknown_2037F1A -_080A8CE2: - ldrb r0, [r0] - mov r8, r0 - ldr r0, _080A8D04 @ =gUnknown_2037F02 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080A8D08 - movs r0, 0 - mov r10, r0 - movs r1, 0x1 - str r1, [sp, 0x4] - b _080A8D10 - .align 2, 0 -_080A8CFC: .4byte gUnknown_2037F1B -_080A8D00: .4byte gUnknown_2037F1A -_080A8D04: .4byte gUnknown_2037F02 -_080A8D08: - movs r2, 0x2 - mov r10, r2 - movs r3, 0x3 - str r3, [sp, 0x4] -_080A8D10: - adds r0, r7, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A8D6C - adds r0, r7, 0 - mov r1, r10 - bl sub_8074480 - lsls r0, 24 - ldr r1, _080A8D50 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0x2 - mov r4, r8 - eors r4, r0 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A8D5C - ldr r2, _080A8D54 @ =gSprites - ldr r0, _080A8D58 @ =gUnknown_2023D44 - adds r0, r4, r0 - b _080A8DEA - .align 2, 0 -_080A8D50: .4byte gUnknown_2037F02 -_080A8D54: .4byte gSprites -_080A8D58: .4byte gUnknown_2023D44 -_080A8D5C: - ldr r2, _080A8D64 @ =gSprites - ldr r0, _080A8D68 @ =gUnknown_2023D44 - add r0, r8 - b _080A8DEA - .align 2, 0 -_080A8D64: .4byte gSprites -_080A8D68: .4byte gUnknown_2023D44 -_080A8D6C: - adds r0, r7, 0 - mov r1, r10 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A8DD4 @ =gUnknown_2037F02 - ldrh r1, [r1] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A8DE4 - movs r0, 0x2 - adds r4, r7, 0 - eors r4, r0 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A8DE4 - ldr r3, _080A8DD8 @ =gSprites - ldr r2, _080A8DDC @ =gUnknown_2023D44 - adds r0, r7, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r0, r3 - adds r2, r4, r2 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r3 - movs r0, 0x20 - ldrsh r1, [r6, r0] - movs r3, 0x20 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080A8DE0 - adds r0, r2, 0 - adds r0, 0x43 - ldrb r0, [r0] - adds r0, 0x1 - b _080A8DFA - .align 2, 0 -_080A8DD4: .4byte gUnknown_2037F02 -_080A8DD8: .4byte gSprites -_080A8DDC: .4byte gUnknown_2023D44 -_080A8DE0: - adds r0, r6, 0 - b _080A8DF4 -_080A8DE4: - ldr r2, _080A8E40 @ =gSprites - ldr r0, _080A8E44 @ =gUnknown_2023D44 - adds r0, r7, r0 -_080A8DEA: - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 -_080A8DF4: - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 -_080A8DFA: - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r7, 0 - ldr r1, [sp, 0x4] - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A8E48 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A8E4C - movs r1, 0x2 - mov r0, r8 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A8E4C - ldrb r1, [r4, 0xC] - mov r0, r8 - mov r2, sp - mov r3, sp - adds r3, 0x2 - bl sub_8076D9C - b _080A8E6C - .align 2, 0 -_080A8E40: .4byte gSprites -_080A8E44: .4byte gUnknown_2023D44 -_080A8E48: .4byte gUnknown_2037F02 -_080A8E4C: - mov r4, sp - mov r0, r8 - mov r1, r10 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - mov r0, r8 - ldr r1, [sp, 0x4] - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r2, sp - strh r0, [r2, 0x2] -_080A8E6C: - mov r0, r8 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A8E90 - mov r3, sp - mov r2, sp - ldr r1, _080A8E8C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - ldrh r2, [r2] - adds r0, r2 - strh r0, [r3] - adds r2, r1, 0 - b _080A8E9E - .align 2, 0 -_080A8E8C: .4byte gUnknown_2037F02 -_080A8E90: - mov r3, sp - mov r0, sp - ldr r2, _080A8EE0 @ =gUnknown_2037F02 - ldrh r0, [r0] - ldrh r1, [r2, 0x6] - subs r0, r1 - strh r0, [r3] -_080A8E9E: - ldrh r1, [r2, 0x8] - mov r3, sp - ldrh r3, [r3, 0x2] - adds r1, r3 - mov r0, sp - strh r1, [r0, 0x2] - mov r3, r9 - strh r3, [r5, 0x30] - strh r3, [r5, 0x20] - strh r6, [r5, 0x34] - strh r6, [r5, 0x22] - ldrh r0, [r0] - strh r0, [r5, 0x32] - strh r1, [r5, 0x36] - ldrh r0, [r2] - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080A8EE4 @ =sub_80A8C84 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8EE0: .4byte gUnknown_2037F02 -_080A8EE4: .4byte sub_80A8C84 - thumb_func_end sub_80A8CA4 - - thumb_func_start sub_80A8EE8 -sub_80A8EE8: @ 80A8EE8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A8F28 @ =0x000027db - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080A8F0E - lsls r0, 20 - ldr r1, _080A8F2C @ =0x01010000 - adds r0, r1 - lsrs r0, 16 - ldr r1, _080A8F30 @ =gUnknown_2037F02 - ldrb r2, [r1, 0xA] - ldrh r3, [r1, 0x8] - movs r1, 0xF - bl BlendPalette -_080A8F0E: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080A8F34 @ =sub_8075D9C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8F28: .4byte 0x000027db -_080A8F2C: .4byte 0x01010000 -_080A8F30: .4byte gUnknown_2037F02 -_080A8F34: .4byte sub_8075D9C - thumb_func_end sub_80A8EE8 - - thumb_func_start sub_80A8F38 -sub_80A8F38: @ 80A8F38 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r0, _080A8F6C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - movs r1, 0xA0 - cmp r0, 0 - beq _080A8F54 - ldr r1, _080A8F70 @ =0x0000ff60 -_080A8F54: - movs r0, 0xE0 - lsls r0, 2 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - ldr r0, _080A8F74 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x3C] - ldr r0, _080A8F78 @ =sub_80A8F7C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8F6C: .4byte gUnknown_2037F1A -_080A8F70: .4byte 0x0000ff60 -_080A8F74: .4byte gUnknown_2037F02 -_080A8F78: .4byte sub_80A8F7C - thumb_func_end sub_80A8F38 - - thumb_func_start sub_80A8F7C -sub_80A8F7C: @ 80A8F7C - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - subs r1, r0 - movs r5, 0 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - subs r2, 0x20 - strh r2, [r4, 0x2E] - ldr r0, _080A8FE8 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - movs r1, 0xA0 - cmp r0, 0 - beq _080A8FAC - ldr r1, _080A8FEC @ =0x0000ff60 -_080A8FAC: - lsls r0, r1, 16 - asrs r0, 16 - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x26] - movs r2, 0x26 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A8FE0 - ldrh r2, [r4, 0x22] - adds r0, r1, r2 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x26] - strh r5, [r4, 0x24] - strh r5, [r4, 0x2E] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _080A8FF0 @ =sub_80A8FF4 - str r0, [r4, 0x1C] -_080A8FE0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8FE8: .4byte gUnknown_2037F1A -_080A8FEC: .4byte 0x0000ff60 -_080A8FF0: .4byte sub_80A8FF4 - thumb_func_end sub_80A8F7C - - thumb_func_start sub_80A8FF4 -sub_80A8FF4: @ 80A8FF4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080A9012 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080A9018 @ =sub_80A901C - str r0, [r4, 0x1C] -_080A9012: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9018: .4byte sub_80A901C - thumb_func_end sub_80A8FF4 - - thumb_func_start sub_80A901C -sub_80A901C: @ 80A901C - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A9082 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r0, 0 - strh r0, [r4, 0x2E] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A9068 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x10 - ldr r3, _080A905C @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080A9060 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, _080A9064 @ =sub_80A9094 - b _080A9080 - .align 2, 0 -_080A905C: .4byte 0x000003ff -_080A9060: .4byte 0xfffffc00 -_080A9064: .4byte sub_80A9094 -_080A9068: - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x20 - ldr r3, _080A9088 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080A908C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, _080A9090 @ =sub_80A911C -_080A9080: - str r0, [r4, 0x1C] -_080A9082: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9088: .4byte 0x000003ff -_080A908C: .4byte 0xfffffc00 -_080A9090: .4byte sub_80A911C - thumb_func_end sub_80A901C - - thumb_func_start sub_80A9094 -sub_80A9094: @ 80A9094 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x26] - subs r0, 0x2 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bne _080A90CA - movs r0, 0x10 - strh r0, [r4, 0x2E] - movs r0, 0 - strh r0, [r4, 0x30] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r4, 0x2E] - movs r0, 0x52 - bl SetGpuReg - ldr r0, _080A90D0 @ =sub_80A90D4 - str r0, [r4, 0x1C] -_080A90CA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A90D0: .4byte sub_80A90D4 - thumb_func_end sub_80A9094 - - thumb_func_start sub_80A90D4 -sub_80A90D4: @ 80A90D4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080A9112 - ldrh r1, [r4, 0x2E] - subs r1, 0x1 - strh r1, [r4, 0x2E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A9112 - ldr r0, _080A9118 @ =sub_80A911C - str r0, [r4, 0x1C] -_080A9112: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9118: .4byte sub_80A911C - thumb_func_end sub_80A90D4 - - thumb_func_start sub_80A911C -sub_80A911C: @ 80A911C - push {lr} - adds r3, r0, 0 - ldr r0, _080A9144 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080A9148 @ =0x0000ffff - cmp r1, r0 - bne _080A9154 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x3C - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080A9150 - ldr r0, _080A914C @ =sub_80A915C - b _080A9152 - .align 2, 0 -_080A9144: .4byte gUnknown_2037F02 -_080A9148: .4byte 0x0000ffff -_080A914C: .4byte sub_80A915C -_080A9150: - ldr r0, _080A9158 @ =DestroyAnimSprite -_080A9152: - str r0, [r3, 0x1C] -_080A9154: - pop {r0} - bx r0 - .align 2, 0 -_080A9158: .4byte DestroyAnimSprite - thumb_func_end sub_80A911C - - thumb_func_start sub_80A915C -sub_80A915C: @ 80A915C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A915C - - thumb_func_start sub_80A917C -sub_80A917C: @ 80A917C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A91AC @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - strh r1, [r4, 0x8] - ldr r2, _080A91B0 @ =gUnknown_83E4128 - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080A91B4 @ =sub_80A91B8 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A91AC: .4byte gTasks -_080A91B0: .4byte gUnknown_83E4128 -_080A91B4: .4byte sub_80A91B8 - thumb_func_end sub_80A917C - - thumb_func_start sub_80A91B8 -sub_80A91B8: @ 80A91B8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A9208 @ =gTasks - adds r4, r0, r1 - adds r0, r4, 0 - bl sub_8076308 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _080A9202 - ldr r2, _080A920C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - movs r0, 0x8 - ldrsh r1, [r4, r0] - 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] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A9202: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9208: .4byte gTasks -_080A920C: .4byte gSprites - thumb_func_end sub_80A91B8 - - thumb_func_start sub_80A9210 -sub_80A9210: @ 80A9210 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A9244 @ =gTasks - adds r4, r1, r0 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r0, 0x3 - strh r0, [r4, 0x20] - ldr r0, _080A9248 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A9250 - ldr r0, _080A924C @ =0x0000ffff - strh r0, [r4, 0x22] - movs r0, 0x8 - b _080A9256 - .align 2, 0 -_080A9244: .4byte gTasks -_080A9248: .4byte gUnknown_2037F1B -_080A924C: .4byte 0x0000ffff -_080A9250: - movs r0, 0x1 - strh r0, [r4, 0x22] - ldr r0, _080A9270 @ =0x0000fff8 -_080A9256: - strh r0, [r4, 0x24] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080A9274 @ =sub_80A9278 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9270: .4byte 0x0000fff8 -_080A9274: .4byte sub_80A9278 - thumb_func_end sub_80A9210 - - thumb_func_start sub_80A9278 -sub_80A9278: @ 80A9278 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A929C @ =gTasks - adds r3, r0, r1 - movs r0, 0x8 - ldrsh r4, [r3, r0] - cmp r4, 0x1 - beq _080A92CC - cmp r4, 0x1 - bgt _080A92A0 - cmp r4, 0 - beq _080A92AA - b _080A9392 - .align 2, 0 -_080A929C: .4byte gTasks -_080A92A0: - cmp r4, 0x2 - beq _080A9348 - cmp r4, 0x3 - beq _080A9362 - b _080A9392 -_080A92AA: - ldr r2, _080A92C8 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x24] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - strh r4, [r3, 0xA] - strh r4, [r3, 0xC] - strh r4, [r3, 0xE] - b _080A935A - .align 2, 0 -_080A92C8: .4byte gSprites -_080A92CC: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A9392 - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - ands r0, r4 - lsls r0, 16 - cmp r0, 0 - beq _080A9304 - ldr r2, _080A9300 @ =gSprites - movs r4, 0x26 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - adds r1, 0x6 - b _080A9316 - .align 2, 0 -_080A9300: .4byte gSprites -_080A9304: - ldr r2, _080A9344 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - subs r1, 0x6 -_080A9316: - strh r1, [r0, 0x24] - ldrh r0, [r3, 0xE] - adds r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080A9392 - ldrh r1, [r3, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A935A - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x24] - subs r0, 0x6 - strh r0, [r1, 0x24] - b _080A935A - .align 2, 0 -_080A9344: .4byte gSprites -_080A9348: - ldrh r0, [r3, 0x20] - subs r0, 0x1 - strh r0, [r3, 0x20] - lsls r0, 16 - cmp r0, 0 - beq _080A935A - movs r0, 0 - strh r0, [r3, 0x8] - b _080A9392 -_080A935A: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080A9392 -_080A9362: - ldr r2, _080A9398 @ =gSprites - movs r4, 0x26 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x22] - ldrh r4, [r0, 0x24] - adds r1, r4 - strh r1, [r0, 0x24] - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x24 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A9392 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A9392: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9398: .4byte gSprites - thumb_func_end sub_80A9278 - - thumb_func_start sub_80A939C -sub_80A939C: @ 80A939C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A93D8 @ =gTasks - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r0, 0xE - strh r0, [r4, 0x22] - movs r0, 0x2 - strh r0, [r4, 0x24] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080A93DC @ =sub_80A93E0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A93D8: .4byte gTasks -_080A93DC: .4byte sub_80A93E0 - thumb_func_end sub_80A939C - - thumb_func_start sub_80A93E0 -sub_80A93E0: @ 80A93E0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A9434 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _080A94A6 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x10 - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _080A94A6 - strh r2, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A943C - ldr r3, _080A9438 @ =gSprites - movs r6, 0x26 - ldrsh r1, [r4, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - b _080A9452 - .align 2, 0 -_080A9434: .4byte gTasks -_080A9438: .4byte gSprites -_080A943C: - ldr r3, _080A9484 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_080A9452: - strb r1, [r0] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r6, 0x22 - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080A94A6 - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - movs r6, 0x24 - ldrsh r1, [r4, r6] - cmp r0, r1 - bge _080A9488 - strh r2, [r4, 0xA] - strh r2, [r4, 0xC] - strh r2, [r4, 0xE] - b _080A94A6 - .align 2, 0 -_080A9484: .4byte gSprites -_080A9488: - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A94A6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A93E0 - - thumb_func_start sub_80A94AC -sub_80A94AC: @ 80A94AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A94FC @ =gTasks - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x8] - movs r1, 0x4 - strh r1, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - strh r0, [r4, 0x12] - strh r0, [r4, 0x14] - strh r0, [r4, 0x16] - strh r0, [r4, 0x18] - strh r0, [r4, 0x22] - ldr r5, _080A9500 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080A9504 @ =sub_80A9508 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A94FC: .4byte gTasks -_080A9500: .4byte gUnknown_2037F1A -_080A9504: .4byte sub_80A9508 - thumb_func_end sub_80A94AC - - thumb_func_start sub_80A9508 -sub_80A9508: @ 80A9508 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080A952C @ =gTasks - adds r4, r0, r1 - movs r0, 0x18 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _080A9574 - cmp r2, 0x1 - bgt _080A9530 - cmp r2, 0 - beq _080A9536 - b _080A9590 - .align 2, 0 -_080A952C: .4byte gTasks -_080A9530: - cmp r2, 0x2 - beq _080A958C - b _080A9590 -_080A9536: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A9590 - strh r2, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080A9590 - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A956E - strh r2, [r4, 0x14] - movs r0, 0x1 - strh r0, [r4, 0x18] - b _080A9590 -_080A956E: - movs r0, 0x2 - strh r0, [r4, 0x18] - b _080A9590 -_080A9574: - movs r1, 0 - strh r1, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080A9590 - strh r2, [r4, 0x16] - strh r1, [r4, 0x18] - b _080A9590 -_080A958C: - movs r0, 0x1 - strh r0, [r4, 0x12] -_080A9590: - movs r2, 0x8 - ldrsh r5, [r4, r2] - cmp r5, 0 - beq _080A959E - cmp r5, 0x1 - beq _080A9634 - b _080A9642 -_080A959E: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080A9642 - strh r5, [r4, 0xA] - ldr r0, _080A9628 @ =gUnknown_83E4154 - movs r3, 0x24 - ldrsh r1, [r4, r3] - movs r3, 0x26 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080A9642 - ldr r0, _080A962C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - strh r6, [r1, 0x2E] - movs r0, 0xD - strh r0, [r1, 0x30] - ldr r2, _080A9630 @ =gUnknown_83E416C - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x24] - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 1 - adds r2, 0x1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A9642 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080A9642 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080A9642 - .align 2, 0 -_080A9628: .4byte gUnknown_83E4154 -_080A962C: .4byte gSprites -_080A9630: .4byte gUnknown_83E416C -_080A9634: - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A9642 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A9642: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A9508 - - thumb_func_start sub_80A9648 -sub_80A9648: @ 80A9648 - push {r4,lr} - adds r3, r0, 0 - ldr r4, _080A96B0 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r2, 0x1 - ldrb r1, [r0, 0x12] - ands r1, r2 - lsls r1, 2 - mov r0, r12 - ldrb r2, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A96AA - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r1, 1 - movs r0, 0x2E - ldrsh r2, [r3, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x8 - adds r1, r0 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r3, 0 - bl DestroySprite -_080A96AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A96B0: .4byte gTasks - thumb_func_end sub_80A9648 - - thumb_func_start sub_80A96B4 -sub_80A96B4: @ 80A96B4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080A9750 @ =0x000027de - bl IndexOfSpritePaletteTag - mov r1, sp - strb r0, [r1] - movs r4, 0x1 - ldr r0, _080A9754 @ =0x00002710 - adds r5, r0, 0 -_080A96CC: - subs r0, r5, r4 - lsls r0, 16 - lsrs r0, 16 - bl AllocSpritePalette - mov r2, sp - adds r1, r2, r4 - strb r0, [r1] - adds r4, 0x1 - cmp r4, 0x2 - ble _080A96CC - movs r0, 0x80 - lsls r0, 6 - bl AllocZeroed - adds r1, r0, 0 - ldr r0, _080A9758 @ =gMonSpritesGfxPtr - ldr r0, [r0] - movs r2, 0xBE - lsls r2, 1 - adds r0, r2 - str r1, [r0] - ldr r0, _080A975C @ =gFile_graphics_battle_anims_sprites_206_palette - bl LZDecompressWram - movs r4, 0 -_080A9700: - ldr r5, _080A9758 @ =gMonSpritesGfxPtr - ldr r0, [r5] - movs r1, 0xBE - lsls r1, 1 - adds r0, r1 - lsls r1, r4, 6 - ldr r0, [r0] - adds r0, r1 - mov r2, sp - adds r1, r2, r4 - ldrb r1, [r1] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - adds r4, 0x1 - cmp r4, 0x2 - ble _080A9700 - ldr r0, [r5] - movs r4, 0xBE - lsls r4, 1 - adds r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r5] - adds r0, r4 - movs r1, 0 - str r1, [r0] - adds r0, r6, 0 - bl DestroyAnimVisualTask - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9750: .4byte 0x000027de -_080A9754: .4byte 0x00002710 -_080A9758: .4byte gMonSpritesGfxPtr -_080A975C: .4byte gFile_graphics_battle_anims_sprites_206_palette - thumb_func_end sub_80A96B4 - - thumb_func_start sub_80A9760 -sub_80A9760: @ 80A9760 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _080A9784 @ =gUnknown_83E41C8 - movs r4, 0x2 -_080A976A: - ldrh r0, [r5] - bl FreeSpritePaletteByTag - adds r5, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080A976A - adds r0, r6, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9784: .4byte gUnknown_83E41C8 - thumb_func_end sub_80A9760 - - thumb_func_start sub_80A9788 -sub_80A9788: @ 80A9788 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsls r2, 24 - lsrs r3, r2, 24 - movs r0, 0x1 - ands r3, r0 - negs r0, r3 - orrs r0, r3 - asrs r0, 31 - movs r3, 0x20 - ands r0, r3 - ldrh r4, [r5, 0x4] - lsls r3, r4, 22 - lsrs r3, 22 - lsrs r1, 22 - adds r0, r1 - adds r3, r0 - ldr r1, _080A97DC @ =0x000003ff - adds r0, r1, 0 - ands r3, r0 - ldr r0, _080A97E0 @ =0xfffffc00 - ands r0, r4 - orrs r0, r3 - strh r0, [r5, 0x4] - ldr r0, _080A97E4 @ =gUnknown_83E41C8 - lsrs r2, 25 - lsls r2, 1 - adds r2, r0 - ldrh r0, [r2] - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r5, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A97DC: .4byte 0x000003ff -_080A97E0: .4byte 0xfffffc00 -_080A97E4: .4byte gUnknown_83E41C8 - thumb_func_end sub_80A9788 - - thumb_func_start sub_80A97E8 -sub_80A97E8: @ 80A97E8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r6, _080A9850 @ =gUnknown_2037F1A - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A9808 - ldr r1, _080A9854 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A9808: - ldr r4, _080A9854 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x2E] - ldrb r0, [r6] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldr r0, _080A9858 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A985C @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldrb r1, [r4, 0xA] - ldrb r2, [r4, 0xC] - adds r0, r5, 0 - bl sub_80A9788 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9850: .4byte gUnknown_2037F1A -_080A9854: .4byte gUnknown_2037F02 -_080A9858: .4byte sub_8075590 -_080A985C: .4byte DestroyAnimSprite - thumb_func_end sub_80A97E8 - - thumb_func_start sub_80A9860 -sub_80A9860: @ 80A9860 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A987A - adds r0, r4, 0 - movs r1, 0 - bl sub_8075160 -_080A987A: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x32] - lsls r0, r2, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x7 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - subs r2, 0x80 - strh r2, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x3C - bne _080A98AA - adds r0, r4, 0 - bl DestroyAnimSprite -_080A98AA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A9860 - - thumb_func_start sub_80A98B0 -sub_80A98B0: @ 80A98B0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - bl sub_8073788 - lsls r0, 24 - movs r6, 0xF0 - cmp r0, 0 - beq _080A98C4 - movs r6, 0x98 -_080A98C4: - movs r5, 0 - ldr r1, _080A9918 @ =gUnknown_2022984 - strh r6, [r1] - ldr r4, _080A991C @ =gUnknown_2022986 - movs r0, 0xA0 - strh r0, [r4] - ldrh r1, [r1] - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x44 - bl SetGpuReg - ldr r1, _080A9920 @ =0x00003f1f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080A9924 @ =0x00003f3f - movs r0, 0x4A - bl SetGpuReg - movs r0, 0x50 - movs r1, 0xC8 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0x10 - bl SetGpuReg - ldr r1, _080A9928 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - strh r6, [r0, 0xA] - ldr r1, _080A992C @ =sub_80A9930 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A9918: .4byte gUnknown_2022984 -_080A991C: .4byte gUnknown_2022986 -_080A9920: .4byte 0x00003f1f -_080A9924: .4byte 0x00003f3f -_080A9928: .4byte gTasks -_080A992C: .4byte sub_80A9930 - thumb_func_end sub_80A98B0 - - thumb_func_start sub_80A9930 -sub_80A9930: @ 80A9930 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A9964 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r0, [r3, 0x8] - adds r4, r0, 0 - adds r4, 0xD - strh r4, [r3, 0x8] - ldrh r0, [r3, 0xA] - adds r2, r0, 0 - subs r2, 0xD - strh r2, [r3, 0xA] - lsls r1, r4, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _080A9970 - ldr r0, _080A9968 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080A996C @ =sub_80A9984 - str r0, [r3] - b _080A9978 - .align 2, 0 -_080A9964: .4byte gTasks -_080A9968: .4byte gUnknown_2022984 -_080A996C: .4byte sub_80A9984 -_080A9970: - ldr r1, _080A9980 @ =gUnknown_2022984 - lsls r0, r4, 8 - orrs r2, r0 - strh r2, [r1] -_080A9978: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9980: .4byte gUnknown_2022984 - thumb_func_end sub_80A9930 - - thumb_func_start sub_80A9984 -sub_80A9984: @ 80A9984 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080A99D0 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080A99D8 - movs r0, 0x88 - strh r0, [r1, 0x1E] - movs r0, 0x50 - movs r1, 0x88 - bl SetGpuReg - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - ldr r2, _080A99D4 @ =0x00007fff - movs r1, 0x10 - bl BlendPalettes - b _080A9A0C - .align 2, 0 -_080A99D0: .4byte gTasks -_080A99D4: .4byte 0x00007fff -_080A99D8: - cmp r0, 0x4 - ble _080A9A0C - ldr r0, _080A9A14 @ =gUnknown_2022984 - strh r4, [r0] - ldr r0, _080A9A18 @ =gUnknown_2022986 - strh r4, [r0] - ldr r4, _080A9A1C @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A9A0C: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9A14: .4byte gUnknown_2022984 -_080A9A18: .4byte gUnknown_2022986 -_080A9A1C: .4byte 0x00003f3f - thumb_func_end sub_80A9984 - - thumb_func_start sub_80A9A20 -sub_80A9A20: @ 80A9A20 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A9A70 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A9A7C - movs r0, 0x1 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080A9A74 @ =gUnknown_83E4200 - adds r0, r5, 0 - bl sub_80762D0 - ldr r1, _080A9A78 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x24] - b _080A9AA4 - .align 2, 0 -_080A9A70: .4byte gTasks -_080A9A74: .4byte gUnknown_83E4200 -_080A9A78: .4byte gSprites -_080A9A7C: - ldr r1, _080A9AAC @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - adds r0, r5, 0 - bl sub_8076308 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080A9AA4 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A9AA4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9AAC: .4byte gSprites - thumb_func_end sub_80A9A20 - - thumb_func_start sub_80A9AB0 -sub_80A9AB0: @ 80A9AB0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A9B00 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A9B0C - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080A9B04 @ =gUnknown_83E4200 - adds r0, r5, 0 - bl sub_80762D0 - ldr r1, _080A9B08 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x24] - b _080A9B34 - .align 2, 0 -_080A9B00: .4byte gTasks -_080A9B04: .4byte gUnknown_83E4200 -_080A9B08: .4byte gSprites -_080A9B0C: - ldr r1, _080A9B3C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - adds r0, r5, 0 - bl sub_8076308 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080A9B34 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A9B34: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9B3C: .4byte gSprites - thumb_func_end sub_80A9AB0 - - thumb_func_start sub_80A9B40 -sub_80A9B40: @ 80A9B40 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - movs r0, 0x5F - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080A9B84 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080A9B88 @ =sub_80A9B8C - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9B84: .4byte gUnknown_2037F1B -_080A9B88: .4byte sub_80A9B8C - thumb_func_end sub_80A9B40 - - thumb_func_start sub_80A9B8C -sub_80A9B8C: @ 80A9B8C - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080A9BB6 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080A9BBC -_080A9BB6: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A9BBC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A9B8C - - thumb_func_start sub_80A9BC4 -sub_80A9BC4: @ 80A9BC4 - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A9BE8 - ldr r1, _080A9BE4 @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x32] - adds r0, r2, 0x1 - strh r0, [r4, 0x2E] - b _080A9C44 - .align 2, 0 -_080A9BE4: .4byte gUnknown_2037F02 -_080A9BE8: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x64 - ble _080A9C36 - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080A9C36: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _080A9C44 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A9C44: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A9BC4 - - thumb_func_start sub_80A9C4C -sub_80A9C4C: @ 80A9C4C - push {lr} - ldr r2, _080A9C70 @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0x20] - movs r1, 0xA0 - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x2E] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x30] - ldr r1, _080A9C74 @ =sub_8074C44 - str r1, [r0, 0x1C] - ldr r1, _080A9C78 @ =sub_80A9C7C - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080A9C70: .4byte gUnknown_2037F02 -_080A9C74: .4byte sub_8074C44 -_080A9C78: .4byte sub_80A9C7C - thumb_func_end sub_80A9C4C - - thumb_func_start sub_80A9C7C -sub_80A9C7C: @ 80A9C7C - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - lsls r0, 16 - lsrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - lsls r0, 16 - asrs r5, r0, 16 - cmp r5, 0x48 - bgt _080A9CE2 - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - cmp r5, 0x40 - bgt _080A9CE2 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A9CE2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A9C7C - - thumb_func_start sub_80A9CE8 -sub_80A9CE8: @ 80A9CE8 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A9DA0 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x3 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A9D2A - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080A9D2A: - ldr r0, _080A9DA4 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r4, _080A9DA8 @ =gUnknown_202297A - strh r1, [r4] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x16 - bl SetGpuReg - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap - bl sub_807543C - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A9D88 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080A9D88: - ldr r0, _080A9DB8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A9DBC @ =sub_80A9DC0 - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9DA0: .4byte 0x00003f42 -_080A9DA4: .4byte gUnknown_2022978 -_080A9DA8: .4byte gUnknown_202297A -_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap -_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet -_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette -_080A9DB8: .4byte gTasks -_080A9DBC: .4byte sub_80A9DC0 - thumb_func_end sub_80A9CE8 - - thumb_func_start sub_80A9DC0 -sub_80A9DC0: @ 80A9DC0 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A9DE8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080A9DDE - b _080A9F08 -_080A9DDE: - lsls r0, 2 - ldr r1, _080A9DEC @ =_080A9DF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A9DE8: .4byte gTasks -_080A9DEC: .4byte _080A9DF0 - .align 2, 0 -_080A9DF0: - .4byte _080A9E04 - .4byte _080A9E48 - .4byte _080A9E6A - .4byte _080A9EAE - .4byte _080A9ED4 -_080A9E04: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080A9F08 - strh r5, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080A9F08 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x1E] - b _080A9F08 -_080A9E48: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8D - bne _080A9F08 - movs r0, 0x10 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080A9F08 -_080A9E6A: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080A9F08 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080A9F08 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080A9F08 -_080A9EAE: - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - bl sub_8075358 - ldr r1, _080A9ED0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - b _080A9F08 - .align 2, 0 -_080A9ED0: .4byte gTasks -_080A9ED4: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A9EE8 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080A9EE8: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A9F08: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A9DC0 - - thumb_func_start sub_80A9F10 -sub_80A9F10: @ 80A9F10 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A9F88 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A9F52 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080A9F52: - ldr r0, _080A9F8C @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r4, _080A9F90 @ =gUnknown_202297A - strh r1, [r4] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x16 - bl SetGpuReg - mov r0, sp - bl sub_80752A0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A9F98 - ldr r0, _080A9F94 @ =gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap - ldr r1, [sp, 0x4] - bl LZDecompressVram - b _080A9FC6 - .align 2, 0 -_080A9F88: .4byte 0x00003f42 -_080A9F8C: .4byte gUnknown_2022978 -_080A9F90: .4byte gUnknown_202297A -_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap -_080A9F98: - ldr r0, _080A9FB4 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A9FBC - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap - bl sub_807543C - b _080A9FC6 - .align 2, 0 -_080A9FB4: .4byte gUnknown_2037F1B -_080A9FB8: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap -_080A9FBC: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap - bl sub_807543C -_080A9FC6: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A9FFA - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080A9FFA: - ldr r0, _080AA01C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AA020 @ =sub_80AA024 - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA010: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap -_080AA014: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet -_080AA018: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette -_080AA01C: .4byte gTasks -_080AA020: .4byte sub_80AA024 - thumb_func_end sub_80A9F10 - - thumb_func_start sub_80AA024 -sub_80AA024: @ 80AA024 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080AA04C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080AA042 - b _080AA168 -_080AA042: - lsls r0, 2 - ldr r1, _080AA050 @ =_080AA054 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AA04C: .4byte gTasks -_080AA050: .4byte _080AA054 - .align 2, 0 -_080AA054: - .4byte _080AA068 - .4byte _080AA0AC - .4byte _080AA0CE - .4byte _080AA112 - .4byte _080AA134 -_080AA068: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080AA168 - strh r5, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0xE - bne _080AA168 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x1E] - b _080AA168 -_080AA0AC: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080AA168 - movs r0, 0xE - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080AA168 -_080AA0CE: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080AA168 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080AA168 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080AA168 -_080AA112: - mov r0, sp - bl sub_80752A0 - movs r0, 0x1 - bl sub_8075358 - movs r0, 0x2 - bl sub_8075358 - ldr r0, _080AA170 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] -_080AA134: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AA148 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080AA148: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AA168: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA170: .4byte gTasks - thumb_func_end sub_80AA024 - - thumb_func_start sub_80AA174 -sub_80AA174: @ 80AA174 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080AA1C8 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080AA1CC @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrb r0, [r5] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x3C] - ldr r1, _080AA1D0 @ =sub_80AA1D4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA1C8: .4byte gUnknown_2037F1A -_080AA1CC: .4byte gUnknown_2037F02 -_080AA1D0: .4byte sub_80AA1D4 - thumb_func_end sub_80AA174 - - thumb_func_start sub_80AA1D4 -sub_80AA1D4: @ 80AA1D4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080AA1EA - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - b _080AA1EE -_080AA1EA: - ldrh r0, [r4, 0x3C] - subs r0, 0x1 -_080AA1EE: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r2, 0x30 - ldrsh r0, [r4, r2] - ldrh r1, [r4, 0x34] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x9 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r3, 0x38 - ldrsh r2, [r4, r3] - cmp r2, 0 - beq _080AA260 - cmp r2, 0x1 - bne _080AA290 - ldr r1, _080AA258 @ =0xfffffc00 - adds r0, r1, 0 - ldrh r2, [r4, 0x32] - adds r0, r2 - strh r0, [r4, 0x32] - ldr r3, _080AA25C @ =0xffffff00 - adds r0, r3, 0 - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x2E - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080AA290 - movs r0, 0x2 - strh r0, [r4, 0x38] - b _080AA2A0 - .align 2, 0 -_080AA258: .4byte 0xfffffc00 -_080AA25C: .4byte 0xffffff00 -_080AA260: - movs r3, 0x80 - lsls r3, 3 - adds r0, r3, 0 - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x2E - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _080AA290 - strh r2, [r4, 0x36] - movs r0, 0x1 - strh r0, [r4, 0x38] -_080AA290: - ldr r0, _080AA2A8 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080AA2AC @ =0x0000ffff - cmp r1, r0 - bne _080AA2A0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA2A0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA2A8: .4byte gUnknown_2037F02 -_080AA2AC: .4byte 0x0000ffff - thumb_func_end sub_80AA1D4 - - thumb_func_start sub_80AA2B0 -sub_80AA2B0: @ 80AA2B0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080AA2F8 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080AA2FC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - strh r0, [r5, 0x2E] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x7 - bl Cos - strh r0, [r5, 0x30] - ldr r0, _080AA300 @ =sub_80AA304 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA2F8: .4byte gUnknown_2037F1A -_080AA2FC: .4byte gUnknown_2037F02 -_080AA300: .4byte sub_80AA304 - thumb_func_end sub_80AA2B0 - - thumb_func_start sub_80AA304 -sub_80AA304: @ 80AA304 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x30] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] - movs r1, 0x20 - ldrsh r0, [r2, r1] - movs r3, 0x24 - ldrsh r1, [r2, r3] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080AA342 - movs r0, 0x22 - ldrsh r1, [r2, r0] - movs r3, 0x26 - ldrsh r0, [r2, r3] - adds r1, r0 - cmp r1, 0xA0 - bgt _080AA342 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080AA348 -_080AA342: - adds r0, r2, 0 - bl DestroyAnimSprite -_080AA348: - pop {r0} - bx r0 - thumb_func_end sub_80AA304 - - thumb_func_start sub_80AA34C -sub_80AA34C: @ 80AA34C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x30] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r1, r0, 0x1 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _080AA378 - adds r0, r2, 0 - bl DestroyAnimSprite -_080AA378: - pop {r0} - bx r0 - thumb_func_end sub_80AA34C - - thumb_func_start sub_80AA37C -sub_80AA37C: @ 80AA37C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080AA3C8 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080AA3CC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - strh r0, [r5, 0x2E] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x7 - bl Cos - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x32] - ldr r0, _080AA3D0 @ =sub_80AA34C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA3C8: .4byte gUnknown_2037F1A -_080AA3CC: .4byte gUnknown_2037F02 -_080AA3D0: .4byte sub_80AA34C - thumb_func_end sub_80AA37C - - thumb_func_start sub_80AA3D4 -sub_80AA3D4: @ 80AA3D4 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AA3EA - adds r0, r2, 0 - bl DestroyAnimSprite -_080AA3EA: - pop {r0} - bx r0 - thumb_func_end sub_80AA3D4 - - thumb_func_start sub_80AA3F0 -sub_80AA3F0: @ 80AA3F0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080AA404 @ =sub_80AA3D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA404: .4byte sub_80AA3D4 - thumb_func_end sub_80AA3F0 - - thumb_func_start sub_80AA408 -sub_80AA408: @ 80AA408 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA426 - ldr r0, _080AA498 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080AA426: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r5, r0, 1 - movs r0, 0xFF - ands r5, r0 - adds r0, r5, 0 - movs r1, 0x50 - bl Sin - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4F - bgt _080AA46A - adds r0, r5, 0 - movs r1, 0x50 - bl Cos - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - lsls r0, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x26] -_080AA46A: - movs r0, 0x2E - ldrsh r2, [r4, r0] - cmp r2, 0x5A - ble _080AA488 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r4, 0x24] - subs r0, r1 - strh r0, [r4, 0x24] -_080AA488: - cmp r2, 0x64 - ble _080AA492 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA492: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA498: .4byte gUnknown_2037F02 - thumb_func_end sub_80AA408 - - thumb_func_start sub_80AA49C -sub_80AA49C: @ 80AA49C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x14 - ble _080AA4F2 - adds r1, r0, 0 - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080AA4F2: - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x1E - ble _080AA500 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA500: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AA49C - - thumb_func_start sub_80AA508 -sub_80AA508: @ 80AA508 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA52C - ldr r1, _080AA528 @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x32] - adds r0, r2, 0x1 - strh r0, [r4, 0x2E] - b _080AA580 - .align 2, 0 -_080AA528: .4byte gUnknown_2037F02 -_080AA52C: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - movs r5, 0 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x46 - ble _080AA580 - ldr r0, _080AA588 @ =sub_80AA49C - str r0, [r4, 0x1C] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r0, r2, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x24] - strh r5, [r4, 0x26] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xB4 - bl __umodsi3 - strh r0, [r4, 0x34] -_080AA580: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA588: .4byte sub_80AA49C - thumb_func_end sub_80AA508 - - thumb_func_start sub_80AA58C -sub_80AA58C: @ 80AA58C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA5C6 - ldr r1, _080AA688 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - ldr r0, _080AA68C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r0, 0x1 - strh r0, [r4, 0x32] -_080AA5C6: - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r0, r2 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r1, r0, 2 - adds r0, r1, 0 - cmp r1, 0 - bge _080AA5DC - adds r0, 0xFF -_080AA5DC: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _080AA5EE - movs r0, 0 - strh r0, [r4, 0x30] -_080AA5EE: - movs r0, 0x30 - ldrsh r2, [r4, r0] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080AA5FC - adds r0, 0x3 -_080AA5FC: - asrs r0, 2 - movs r1, 0x1E - subs r1, r0 - adds r0, r2, 0 - bl Cos - strh r0, [r4, 0x24] - movs r0, 0x30 - ldrsh r2, [r4, r0] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080AA618 - adds r0, 0x7 -_080AA618: - asrs r0, 3 - movs r1, 0xA - subs r1, r0 - adds r0, r2, 0 - bl Sin - strh r0, [r4, 0x26] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x80 - ble _080AA63C - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080AA63C - ldr r0, _080AA690 @ =0x0000ffff - strh r0, [r4, 0x32] -_080AA63C: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA650 - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _080AA650 - movs r0, 0x1 - strh r0, [r4, 0x32] -_080AA650: - ldrh r0, [r4, 0x34] - adds r1, r0, 0x1 - strh r1, [r4, 0x34] - subs r0, 0x9 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x46 - bls _080AA694 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080AA6A2 - .align 2, 0 -_080AA688: .4byte gUnknown_2037F02 -_080AA68C: .4byte gUnknown_2037F1B -_080AA690: .4byte 0x0000ffff -_080AA694: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080AA6A2: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x5A - ble _080AA6B0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA6B0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AA58C - - thumb_func_start sub_80AA6B8 -sub_80AA6B8: @ 80AA6B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA6EC - ldr r1, _080AA6E8 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrb r1, [r1, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080AA700 - .align 2, 0 -_080AA6E8: .4byte gUnknown_2037F02 -_080AA6EC: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AA700 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA700: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AA6B8 - - thumb_func_start sub_80AA708 -sub_80AA708: @ 80AA708 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r1, _080AA720 @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080AA724 - adds r0, r5, 0 - bl DestroyAnimSprite - b _080AA788 - .align 2, 0 -_080AA720: .4byte gUnknown_2037F02 -_080AA724: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080AA734 - ldr r4, _080AA730 @ =gUnknown_2037F1A - b _080AA736 - .align 2, 0 -_080AA730: .4byte gUnknown_2037F1A -_080AA734: - ldr r4, _080AA764 @ =gUnknown_2037F1B -_080AA736: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080AA768 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0 - bne _080AA76C - ldrh r0, [r5, 0x20] - adds r0, 0x20 - b _080AA770 - .align 2, 0 -_080AA764: .4byte gUnknown_2037F1B -_080AA768: .4byte gUnknown_2037F02 -_080AA76C: - ldrh r0, [r5, 0x20] - subs r0, 0x20 -_080AA770: - strh r0, [r5, 0x20] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x2E] - ldrh r1, [r2, 0x2] - strh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - ldr r0, _080AA790 @ =sub_80AA794 - str r0, [r5, 0x1C] -_080AA788: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA790: .4byte sub_80AA794 - thumb_func_end sub_80AA708 - - thumb_func_start sub_80AA794 -sub_80AA794: @ 80AA794 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AA7C4 - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - cmp r0, 0 - beq _080AA7BE - ldrh r1, [r2, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim - b _080AA7C4 -_080AA7BE: - adds r0, r2, 0 - bl DestroyAnimSprite -_080AA7C4: - pop {r0} - bx r0 - thumb_func_end sub_80AA794 - - thumb_func_start sub_80AA7C8 -sub_80AA7C8: @ 80AA7C8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080AA7FC @ =gUnknown_2037F02 - ldrb r0, [r0] - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _080AA800 @ =gTasks - adds r4, r0 - ldr r2, _080AA804 @ =gUnknown_83E4410 - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080AA808 @ =sub_80AA80C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA7FC: .4byte gUnknown_2037F02 -_080AA800: .4byte gTasks -_080AA804: .4byte gUnknown_83E4410 -_080AA808: .4byte sub_80AA80C - thumb_func_end sub_80AA7C8 - - thumb_func_start sub_80AA80C -sub_80AA80C: @ 80AA80C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080AA834 @ =gTasks - adds r0, r1 - bl sub_8076308 - lsls r0, 24 - cmp r0, 0 - bne _080AA82C - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AA82C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA834: .4byte gTasks - thumb_func_end sub_80AA80C - - thumb_func_start sub_80AA838 -sub_80AA838: @ 80AA838 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080AA84C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AA854 - ldr r0, _080AA850 @ =gUnknown_2037F1A - b _080AA856 - .align 2, 0 -_080AA84C: .4byte gUnknown_2037F02 -_080AA850: .4byte gUnknown_2037F1A -_080AA854: - ldr r0, _080AA8EC @ =gUnknown_2037F1B -_080AA856: - ldrb r6, [r0] - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080AA870 - ldr r1, _080AA8F0 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080AA870: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r7, _080AA8F0 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r3, [r7, 0x2] - adds r0, r3 - movs r4, 0 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r7, 0x4] - adds r0, r1 - strh r0, [r5, 0x22] - strh r4, [r5, 0x2E] - ldrh r1, [r5, 0x20] - lsls r1, 3 - strh r1, [r5, 0x30] - lsls r0, 3 - strh r0, [r5, 0x32] - movs r2, 0x2 - ldrsh r0, [r7, r2] - lsls r0, 3 - cmp r0, 0 - bge _080AA8B0 - adds r0, 0x7 -_080AA8B0: - asrs r0, 3 - strh r0, [r5, 0x34] - movs r3, 0x4 - ldrsh r0, [r7, r3] - lsls r0, 3 - cmp r0, 0 - bge _080AA8C0 - adds r0, 0x7 -_080AA8C0: - asrs r0, 3 - strh r0, [r5, 0x36] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x6 - ldrsh r0, [r7, r3] - lsls r0, 4 - adds r1, r0 - ldr r3, _080AA8F4 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080AA8F8 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r0, _080AA8FC @ =sub_80AA900 - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA8EC: .4byte gUnknown_2037F1B -_080AA8F0: .4byte gUnknown_2037F02 -_080AA8F4: .4byte 0x000003ff -_080AA8F8: .4byte 0xfffffc00 -_080AA8FC: .4byte sub_80AA900 - thumb_func_end sub_80AA838 - - thumb_func_start sub_80AA900 -sub_80AA900: @ 80AA900 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x30] - adds r0, r1 - strh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - ldrh r3, [r2, 0x32] - adds r1, r3 - strh r1, [r2, 0x32] - lsls r0, 16 - asrs r0, 19 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 19 - strh r1, [r2, 0x22] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080AA934 - adds r0, r2, 0 - bl DestroyAnimSprite -_080AA934: - pop {r0} - bx r0 - thumb_func_end sub_80AA900 - - thumb_func_start sub_80AA938 -sub_80AA938: @ 80AA938 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA95A - ldr r0, _080AA994 @ =gUnknown_2037F02 - ldrh r1, [r0] - movs r0, 0x78 - subs r0, r1 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080AA95A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x30 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080AA978 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0 - bl sub_8075B48 -_080AA978: - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r2, 0x30 - ldrsh r0, [r4, r2] - adds r0, 0x50 - cmp r1, r0 - bne _080AA98C - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA98C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA994: .4byte gUnknown_2037F02 - thumb_func_end sub_80AA938 - - thumb_func_start sub_80AA998 -sub_80AA998: @ 80AA998 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080AA9C6 - movs r5, 0x78 - strh r5, [r6, 0x20] - ldr r4, _080AAA48 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r4, r2] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - subs r0, 0xF - strh r0, [r6, 0x22] - ldrb r1, [r4, 0x2] - adds r0, r6, 0 - bl StartSpriteAnim - strh r5, [r6, 0x38] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x34] -_080AA9C6: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - movs r5, 0 - strh r0, [r6, 0x2E] - movs r1, 0x2E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r6, 0x30] - movs r2, 0x2E - ldrsh r0, [r6, r2] - lsls r4, r0, 1 - adds r4, r0 - ldrh r0, [r6, 0x34] - adds r4, r0 - movs r2, 0xFF - ldrh r0, [r6, 0x3A] - adds r0, 0xA - movs r1, 0xFF - ands r0, r1 - strh r0, [r6, 0x3A] - ands r4, r2 - adds r0, r4, 0 - movs r1, 0x64 - bl Cos - strh r0, [r6, 0x24] - adds r0, r4, 0 - movs r1, 0xA - bl Sin - adds r4, r0, 0 - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r1, 0x4 - bl Cos - ldrh r2, [r6, 0x30] - adds r4, r2 - adds r0, r4 - strh r0, [r6, 0x26] - movs r0, 0x2E - ldrsh r1, [r6, r0] - movs r2, 0x38 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080AAA42 - ldr r0, _080AAA4C @ =sub_80AAA50 - str r0, [r6, 0x1C] - strh r5, [r6, 0x2E] - adds r0, r6, 0 - bl oamt_add_pos2_onto_pos1 - movs r0, 0x5 - strh r0, [r6, 0x32] - strh r5, [r6, 0x36] - strh r5, [r6, 0x34] - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080AAA42: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AAA48: .4byte gUnknown_2037F02 -_080AAA4C: .4byte sub_80AAA50 - thumb_func_end sub_80AA998 - - thumb_func_start sub_80AAA50 -sub_80AAA50: @ 80AAA50 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080AAA6A - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080AAA70 @ =sub_80AAA74 - str r0, [r1, 0x1C] -_080AAA6A: - pop {r0} - bx r0 - .align 2, 0 -_080AAA70: .4byte sub_80AAA74 - thumb_func_end sub_80AAA50 - - thumb_func_start sub_80AAA74 -sub_80AAA74: @ 80AAA74 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x34] - adds r0, r1, r2 - strh r0, [r4, 0x34] - strh r0, [r4, 0x26] - adds r1, 0x1 - strh r1, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x30 - ble _080AAA9E - lsls r0, r1, 16 - cmp r0, 0 - ble _080AAA9E - ldrh r0, [r4, 0x36] - subs r1, r0, 0x5 - strh r1, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x36] -_080AAA9E: - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _080AAAD0 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, 0 - bl DestroyAnimSprite -_080AAAD0: - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bne _080AAADE - adds r0, r4, 0 - bl DestroyAnimSprite -_080AAADE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AAA74 - - thumb_func_start sub_80AAAE4 -sub_80AAAE4: @ 80AAAE4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080AAB28 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AAB30 - ldr r4, _080AAB2C @ =gUnknown_2037F1A - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080AAB30 - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C - ldrh r0, [r5, 0x22] - adds r0, 0x28 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080AAB50 - .align 2, 0 -_080AAB28: .4byte gBattleTypeFlags -_080AAB2C: .4byte gUnknown_2037F1A -_080AAB30: - ldr r4, _080AAB70 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x28 - strh r0, [r5, 0x22] -_080AAB50: - movs r0, 0xD - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - subs r0, 0x48 - strh r0, [r5, 0x36] - ldr r0, _080AAB74 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080AAB78 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAB70: .4byte gUnknown_2037F1A -_080AAB74: .4byte sub_8075590 -_080AAB78: .4byte DestroyAnimSprite - thumb_func_end sub_80AAAE4 - - thumb_func_start sub_80AAB7C -sub_80AAB7C: @ 80AAB7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080AAB98 @ =gUnknown_2037F02 - ldr r1, _080AAB9C @ =gUnknown_2037EE4 - ldr r1, [r1] - ldrb r2, [r1, 0x10] - movs r1, 0x1 - ands r1, r2 - strh r1, [r3, 0xE] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080AAB98: .4byte gUnknown_2037F02 -_080AAB9C: .4byte gUnknown_2037EE4 - thumb_func_end sub_80AAB7C - - thumb_func_start update_fury_cutter_counter_copy -update_fury_cutter_counter_copy: @ 80AABA0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AABB8 @ =gUnknown_2037F02 - ldr r1, _080AABBC @ =gUnknown_2037EE4 - ldr r1, [r1] - ldrb r1, [r1, 0x10] - strh r1, [r2, 0xE] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080AABB8: .4byte gUnknown_2037F02 -_080AABBC: .4byte gUnknown_2037EE4 - thumb_func_end update_fury_cutter_counter_copy - - thumb_func_start sub_80AABC0 -sub_80AABC0: @ 80AABC0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080AAC48 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AABE8 - ldr r1, _080AAC4C @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r5, 0xA] - ldrh r0, [r1, 0x2] - strh r0, [r5, 0xC] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0xE] -_080AABE8: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r2, 0x8 - ldrsh r0, [r5, r2] - movs r2, 0xC - ldrsh r1, [r5, r2] - bl __modsi3 - cmp r0, 0x1 - bne _080AAC30 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF0 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x50 - bl __umodsi3 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _080AAC50 @ =gUnknown_83E5898 - adds r1, r4, 0 - movs r3, 0x4 - bl CreateSprite -_080AAC30: - movs r0, 0x8 - ldrsh r1, [r5, r0] - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _080AAC42 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080AAC42: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AAC48: .4byte gTasks -_080AAC4C: .4byte gUnknown_2037F02 -_080AAC50: .4byte gUnknown_83E5898 - thumb_func_end sub_80AABC0 - - thumb_func_start sub_80AAC54 -sub_80AAC54: @ 80AAC54 - ldr r1, _080AAC5C @ =sub_80AAC60 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080AAC5C: .4byte sub_80AAC60 - thumb_func_end sub_80AAC54 - - thumb_func_start sub_80AAC60 -sub_80AAC60: @ 80AAC60 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD - bgt _080AAC7E - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x26] - adds r0, 0x4 - strh r0, [r2, 0x26] -_080AAC7E: - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AAC92 - adds r0, r2, 0 - bl DestroySprite -_080AAC92: - pop {r0} - bx r0 - thumb_func_end sub_80AAC60 - - thumb_func_start sub_80AAC98 -sub_80AAC98: @ 80AAC98 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _080AACC0 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AACC8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080AACC4 @ =gUnknown_2037F02 - ldrh r1, [r4] - subs r0, r1 - b _080AACDA - .align 2, 0 -_080AACC0: .4byte gUnknown_2037F1A -_080AACC4: .4byte gUnknown_2037F02 -_080AACC8: - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080AADA0 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 -_080AACDA: - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r6, 0x22] - adds r2, r6, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080AADA4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AAD10 - ldr r1, _080AADA0 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080AAD10: - ldr r5, _080AADA0 @ =gUnknown_2037F02 - ldrh r0, [r5, 0xC] - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldr r4, _080AADA8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080AADAC @ =SpriteCallbackDummy - bl CreateInvisibleSpriteWithCallback - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - strh r4, [r6, 0x38] - ldrb r0, [r5, 0x8] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Sin - ldrh r1, [r6, 0x20] - subs r1, r0 - strh r1, [r6, 0x20] - ldrb r0, [r5, 0x8] - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl Cos - ldrh r1, [r6, 0x22] - subs r1, r0 - strh r1, [r6, 0x22] - ldr r0, _080AADB0 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r5, 0x4] - strh r0, [r1, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r1, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r1, 0x32] - ldrb r0, [r5, 0x8] - lsls r0, 8 - strh r0, [r1, 0x34] - ldrh r0, [r5, 0xC] - strh r0, [r1, 0x36] - ldr r1, _080AADB4 @ =sub_80AADB8 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AADA0: .4byte gUnknown_2037F02 -_080AADA4: .4byte gUnknown_2037F1A -_080AADA8: .4byte gUnknown_2037F1B -_080AADAC: .4byte SpriteCallbackDummy -_080AADB0: .4byte gSprites -_080AADB4: .4byte sub_80AADB8 - thumb_func_end sub_80AAC98 - - thumb_func_start sub_80AADB8 -sub_80AADB8: @ 80AADB8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r1, [r5, 0x38] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080AAE20 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r7, r0, r2 - ldrh r4, [r7, 0x36] - lsls r4, 24 - lsrs r4, 24 - ldrh r0, [r7, 0x34] - mov r8, r0 - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_80755E0 - mov r1, r8 - lsrs r6, r1, 8 - movs r0, 0x2E - ldrsh r1, [r7, r0] - adds r0, r6, 0 - bl Sin - ldrh r1, [r5, 0x24] - adds r0, r1 - strh r0, [r5, 0x24] - movs r0, 0x30 - ldrsh r1, [r7, r0] - adds r0, r6, 0 - bl Cos - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - ldrh r0, [r7, 0x32] - mov r1, r8 - adds r1, r0 - strh r1, [r7, 0x34] - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - cmp r4, 0 - beq _080AAE24 - strh r4, [r7, 0x36] - b _080AAE2E - .align 2, 0 -_080AAE20: .4byte gSprites -_080AAE24: - ldr r0, _080AAE3C @ =sub_80AAE40 - str r0, [r5, 0x1C] - adds r0, r7, 0 - bl DestroySprite -_080AAE2E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAE3C: .4byte sub_80AAE40 - thumb_func_end sub_80AADB8 - - thumb_func_start sub_80AAE40 -sub_80AAE40: @ 80AAE40 - push {lr} - adds r3, r0, 0 - adds r3, 0x2C - ldrb r2, [r3] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - strb r1, [r3] - ldr r1, _080AAE60 @ =sub_8074F6C - str r1, [r0, 0x1C] - ldr r1, _080AAE64 @ =sub_80AAE68 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080AAE60: .4byte sub_8074F6C -_080AAE64: .4byte sub_80AAE68 - thumb_func_end sub_80AAE40 - - thumb_func_start sub_80AAE68 -sub_80AAE68: @ 80AAE68 - push {lr} - movs r1, 0xA - strh r1, [r0, 0x2E] - ldr r1, _080AAE7C @ =sub_8074C44 - str r1, [r0, 0x1C] - ldr r1, _080AAE80 @ =move_anim_8074EE0 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080AAE7C: .4byte sub_8074C44 -_080AAE80: .4byte move_anim_8074EE0 - thumb_func_end sub_80AAE68 - - thumb_func_start sub_80AAE84 -sub_80AAE84: @ 80AAE84 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080AAEAC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AAEB4 - ldr r1, _080AAEB0 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - adds r7, r1, 0 - b _080AAEBA - .align 2, 0 -_080AAEAC: .4byte gUnknown_2037F1A -_080AAEB0: .4byte gUnknown_2037F02 -_080AAEB4: - ldr r0, _080AAF10 @ =gUnknown_2037F02 - ldrh r6, [r0, 0x4] - adds r7, r0, 0 -_080AAEBA: - ldrh r0, [r7, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080AAF14 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r7, [r7, 0x6] - adds r0, r7 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080AAF18 @ =sub_80AAF1C - str r0, [r5, 0x1C] - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAF10: .4byte gUnknown_2037F02 -_080AAF14: .4byte gUnknown_2037F1B -_080AAF18: .4byte sub_80AAF1C - thumb_func_end sub_80AAE84 - - thumb_func_start sub_80AAF1C -sub_80AAF1C: @ 80AAF1C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AAF58 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080AAF5C @ =0x0000ffff - cmp r1, r0 - bne _080AAF3E - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] -_080AAF3E: - adds r0, r4, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080AAF50 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AAF50: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAF58: .4byte gUnknown_2037F02 -_080AAF5C: .4byte 0x0000ffff - thumb_func_end sub_80AAF1C - - thumb_func_start sub_80AAF60 -sub_80AAF60: @ 80AAF60 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080AAF94 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r0, _080AAF98 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r4, 0x8] - ldr r0, _080AAF9C @ =0x0000279c - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4, 0xC] - ldr r0, _080AAFA0 @ =sub_80AAFA4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAF94: .4byte gTasks -_080AAF98: .4byte gUnknown_2037F02 -_080AAF9C: .4byte 0x0000279c -_080AAFA0: .4byte sub_80AAFA4 - thumb_func_end sub_80AAF60 - - thumb_func_start sub_80AAFA4 -sub_80AAFA4: @ 80AAFA4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080AB01C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x1C] - adds r0, 0x1 - strh r0, [r2, 0x1C] - lsls r0, 16 - asrs r0, 16 - mov r12, r1 - cmp r0, 0x3 - bne _080AAFF6 - movs r0, 0 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080AB020 @ =gPlttBufferFaded - lsls r0, r5, 1 - adds r0, r1 - ldrh r6, [r0] - adds r7, r1, 0 - adds r3, r0, 0x2 - movs r1, 0x6 - adds r2, r0, 0 -_080AAFE0: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080AAFE0 - adds r0, r5, 0x7 - lsls r0, 1 - adds r0, r7 - strh r6, [r0] -_080AAFF6: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r12 - ldrh r1, [r0, 0x1E] - adds r1, 0x1 - strh r1, [r0, 0x1E] - lsls r1, 16 - asrs r1, 16 - movs r2, 0x8 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _080AB016 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AB016: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB01C: .4byte gTasks -_080AB020: .4byte gPlttBufferFaded - thumb_func_end sub_80AAFA4 - - thumb_func_start sub_80AB024 -sub_80AB024: @ 80AB024 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - movs r0, 0x1E - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080AB08C @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x2E - ldrsh r1, [r5, r0] - movs r0, 0xD2 - lsls r0, 8 - bl __divsi3 - strh r0, [r5, 0x38] - ldr r0, _080AB090 @ =gUnknown_2037F02 - ldrh r2, [r0, 0x6] - strh r2, [r5, 0x3C] - ldrh r1, [r0, 0xE] - movs r3, 0xE - ldrsh r0, [r0, r3] - cmp r0, 0x7F - ble _080AB094 - adds r0, r1, 0 - subs r0, 0x7F - lsls r0, 8 - strh r0, [r5, 0x3A] - negs r0, r2 - strh r0, [r5, 0x3C] - b _080AB098 - .align 2, 0 -_080AB08C: .4byte gUnknown_2037F1B -_080AB090: .4byte gUnknown_2037F02 -_080AB094: - lsls r0, r1, 8 - strh r0, [r5, 0x3A] -_080AB098: - ldr r1, _080AB0A8 @ =sub_80AB0AC - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AB0A8: .4byte sub_80AB0AC - thumb_func_end sub_80AB024 - - thumb_func_start sub_80AB0AC -sub_80AB0AC: @ 80AB0AC - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080AB0C0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AB0C0: - ldrh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r2, 0x3A - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - adds r0, r1 - asrs r0, 8 - cmp r0, 0x7F - ble _080AB0F0 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - negs r0, r0 - strh r0, [r4, 0x3C] - b _080AB0F8 -_080AB0F0: - ldrh r0, [r4, 0x38] - ldrh r1, [r4, 0x3A] - adds r0, r1 - strh r0, [r4, 0x3A] -_080AB0F8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AB0AC - - thumb_func_start sub_80AB100 -sub_80AB100: @ 80AB100 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AB120 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080AB124 @ =gUnknown_2037F02 - ldrh r0, [r3] - movs r2, 0 - strh r0, [r1, 0x8] - strh r2, [r3, 0xE] - ldr r0, _080AB128 @ =sub_80AB12C - str r0, [r1] - bx lr - .align 2, 0 -_080AB120: .4byte gTasks -_080AB124: .4byte gUnknown_2037F02 -_080AB128: .4byte sub_80AB12C - thumb_func_end sub_80AB100 - - thumb_func_start sub_80AB12C -sub_80AB12C: @ 80AB12C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080AB160 @ =gUnknown_2037F02 - ldrh r0, [r2, 0xE] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r2, 0xE] - ldr r1, _080AB164 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bne _080AB15A - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080AB15A: - pop {r0} - bx r0 - .align 2, 0 -_080AB160: .4byte gUnknown_2037F02 -_080AB164: .4byte gTasks - thumb_func_end sub_80AB12C - - thumb_func_start sub_80AB168 -sub_80AB168: @ 80AB168 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r7, _080AB1B4 @ =gUnknown_2037F1A - ldrb r0, [r7] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r7] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r6, _080AB1B8 @ =0x0000fff6 - strh r6, [r4, 0x26] - ldrb r0, [r7] - bl sub_807685C - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AB1C2 - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AB1BC - movs r0, 0xA - strh r0, [r4, 0x24] - b _080AB1C4 - .align 2, 0 -_080AB1B4: .4byte gUnknown_2037F1A -_080AB1B8: .4byte 0x0000fff6 -_080AB1BC: - strh r6, [r4, 0x24] - subs r0, r5, 0x2 - b _080AB1C6 -_080AB1C2: - strh r6, [r4, 0x24] -_080AB1C4: - adds r0, r5, 0x2 -_080AB1C6: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldr r0, _080AB1D8 @ =sub_80AB1DC - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB1D8: .4byte sub_80AB1DC - thumb_func_end sub_80AB168 - - thumb_func_start sub_80AB1DC -sub_80AB1DC: @ 80AB1DC - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080AB1F2 - adds r0, r2, 0 - bl DestroyAnimSprite -_080AB1F2: - pop {r0} - bx r0 - thumb_func_end sub_80AB1DC - - thumb_func_start sub_80AB1F8 -sub_80AB1F8: @ 80AB1F8 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r5, _080AB2B8 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - adds r4, r0, 0 - ldr r0, _080AB2BC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080AB242 - ldr r4, _080AB2C0 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4] - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - beq _080AB23A - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080AB242 -_080AB23A: - movs r1, 0 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4] -_080AB242: - ldr r5, _080AB2C0 @ =gUnknown_2037F02 - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0 - cmp r0, 0 - bne _080AB256 - movs r1, 0x1 -_080AB256: - ldrb r0, [r5, 0xA] - movs r7, 0x1 - cmp r0, 0 - bne _080AB260 - movs r7, 0x3 -_080AB260: - adds r0, r6, 0 - bl sub_8075160 - ldr r0, _080AB2B8 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AB27A - ldrh r0, [r5, 0x4] - negs r0, r0 - strh r0, [r5, 0x4] -_080AB27A: - ldrh r0, [r5, 0x8] - strh r0, [r6, 0x2E] - ldr r4, _080AB2BC @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r4] - adds r1, r7, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r6, 0x36] - ldr r0, _080AB2C4 @ =sub_8075590 - str r0, [r6, 0x1C] - ldr r1, _080AB2C8 @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB2B8: .4byte gUnknown_2037F1A -_080AB2BC: .4byte gUnknown_2037F1B -_080AB2C0: .4byte gUnknown_2037F02 -_080AB2C4: .4byte sub_8075590 -_080AB2C8: .4byte DestroyAnimSprite - thumb_func_end sub_80AB1F8 - - thumb_func_start sub_80AB2CC -sub_80AB2CC: @ 80AB2CC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r0, _080AB2FC @ =gUnknown_2037F02 - ldrh r1, [r0, 0x8] - strh r1, [r4, 0x2E] - ldrh r0, [r0, 0x4] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x36] - ldr r0, _080AB300 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080AB304 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB2FC: .4byte gUnknown_2037F02 -_080AB300: .4byte sub_8075590 -_080AB304: .4byte DestroyAnimSprite - thumb_func_end sub_80AB2CC - - thumb_func_start sub_80AB308 -sub_80AB308: @ 80AB308 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AB320 @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080AB324 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - b _080AB32C - .align 2, 0 -_080AB320: .4byte gUnknown_2037F02 -_080AB324: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075160 -_080AB32C: - ldr r0, _080AB33C @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x3C] - ldr r0, _080AB340 @ =sub_80AB344 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB33C: .4byte gUnknown_2037F02 -_080AB340: .4byte sub_80AB344 - thumb_func_end sub_80AB308 - - thumb_func_start sub_80AB344 -sub_80AB344: @ 80AB344 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080AB384 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AB384: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AB344 - - thumb_func_start sub_80AB38C -sub_80AB38C: @ 80AB38C - 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 - mov r10, r0 - ldr r1, _080AB3FC @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl SetAnimBgAttribute - mov r0, sp - bl sub_80752A0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AB418 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute - ldr r0, _080AB400 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080AB408 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap - bl sub_807543C - b _080AB42E - .align 2, 0 -_080AB3FC: .4byte 0x00003f42 -_080AB400: .4byte gUnknown_2037F1A -_080AB404: .4byte gFile_graphics_unknown_unknown_E81D14_tilemap -_080AB408: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap - bl sub_807543C - b _080AB42E - .align 2, 0 -_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap -_080AB418: - ldr r0, _080AB458 @ =gFile_graphics_unknown_unknown_E822B8_tilemap - ldr r1, [sp, 0x4] - bl LZDecompressVram - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0x1 - bl sub_80730C0 -_080AB42E: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080AB460 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AB468 - ldr r0, _080AB464 @ =gFile_graphics_battle_anims_backgrounds_water_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080AB476 - .align 2, 0 -_080AB458: .4byte gFile_graphics_unknown_unknown_E822B8_tilemap -_080AB45C: .4byte gFile_graphics_battle_anims_backgrounds_water_sheet -_080AB460: .4byte gUnknown_2037F02 -_080AB464: .4byte gFile_graphics_battle_anims_backgrounds_water_palette -_080AB468: - ldr r0, _080AB4E0 @ =gFile_graphics_battle_anims_backgrounds_water_muddy_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_080AB476: - ldr r0, _080AB4E4 @ =sub_80AB79C - ldr r4, _080AB4E8 @ =gTasks - mov r2, r10 - lsls r5, r2, 2 - adds r1, r5, r2 - lsls r1, 3 - adds r6, r1, r4 - ldrb r1, [r6, 0x7] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0 - mov r9, r0 - mov r1, r8 - strh r1, [r6, 0x26] - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r7, r0, r4 - mov r0, r9 - strh r0, [r7, 0x8] - movs r0, 0x80 - lsls r0, 5 - strh r0, [r7, 0xA] - strh r0, [r7, 0xC] - bl sub_8073788 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080AB4F8 - ldr r1, _080AB4EC @ =0x0000ffb0 - adds r0, r1, 0 - ldr r2, _080AB4F0 @ =gUnknown_2022978 - strh r0, [r2] - adds r1, 0x20 - adds r0, r1, 0 - ldr r2, _080AB4F4 @ =gUnknown_202297A - strh r0, [r2] - movs r0, 0x2 - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - mov r0, r9 - strh r0, [r7, 0xE] - b _080AB552 - .align 2, 0 -_080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette -_080AB4E4: .4byte sub_80AB79C -_080AB4E8: .4byte gTasks -_080AB4EC: .4byte 0x0000ffb0 -_080AB4F0: .4byte gUnknown_2022978 -_080AB4F4: .4byte gUnknown_202297A -_080AB4F8: - ldr r0, _080AB528 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080AB53C - ldr r2, _080AB52C @ =0x0000ff20 - adds r0, r2, 0 - ldr r2, _080AB530 @ =gUnknown_2022978 - strh r0, [r2] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldr r2, _080AB534 @ =gUnknown_202297A - strh r0, [r2] - movs r0, 0x2 - strh r0, [r6, 0x8] - ldr r0, _080AB538 @ =0x0000ffff - strh r0, [r6, 0xA] - strh r1, [r7, 0xE] - b _080AB552 - .align 2, 0 -_080AB528: .4byte gUnknown_2037F1A -_080AB52C: .4byte 0x0000ff20 -_080AB530: .4byte gUnknown_2022978 -_080AB534: .4byte gUnknown_202297A -_080AB538: .4byte 0x0000ffff -_080AB53C: - ldr r0, _080AB584 @ =gUnknown_2022978 - strh r4, [r0] - ldr r1, _080AB588 @ =0x0000ffd0 - adds r0, r1, 0 - ldr r2, _080AB58C @ =gUnknown_202297A - strh r0, [r2] - ldr r0, _080AB590 @ =0x0000fffe - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - strh r4, [r7, 0xE] -_080AB552: - ldr r0, _080AB584 @ =gUnknown_2022978 - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldr r2, _080AB58C @ =gUnknown_202297A - ldrh r1, [r2] - movs r0, 0x16 - bl SetGpuReg - ldr r1, _080AB594 @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080AB598 - movs r0, 0x30 - strh r0, [r1, 0x10] - movs r0, 0x70 - b _080AB59C - .align 2, 0 -_080AB584: .4byte gUnknown_2022978 -_080AB588: .4byte 0x0000ffd0 -_080AB58C: .4byte gUnknown_202297A -_080AB590: .4byte 0x0000fffe -_080AB594: .4byte gTasks -_080AB598: - movs r0, 0 - strh r0, [r1, 0x10] -_080AB59C: - strh r0, [r1, 0x12] - ldr r1, _080AB5C0 @ =gTasks - mov r2, r10 - adds r0, r5, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x14] - ldr r1, _080AB5C4 @ =sub_80AB5C8 - str r1, [r0] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB5C0: .4byte gTasks -_080AB5C4: .4byte sub_80AB5C8 - thumb_func_end sub_80AB38C - - thumb_func_start sub_80AB5C8 -sub_80AB5C8: @ 80AB5C8 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080AB6F4 @ =gUnknown_2022978 - ldr r2, _080AB6F8 @ =gUnknown_202297A - ldr r0, _080AB6FC @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x8] - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - ldrh r0, [r4, 0xA] - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - mov r0, sp - bl sub_80752A0 - ldrh r0, [r4, 0xA] - ldrh r3, [r4, 0xC] - adds r0, r3 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080AB65C - ldr r1, _080AB700 @ =gPlttBufferFaded - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - adds r0, 0x7 - lsls r0, 1 - adds r0, r1 - ldrh r6, [r0] - movs r2, 0x6 - adds r7, r1, 0 - adds r3, r7, 0 - mov r4, sp -_080AB622: - ldrb r0, [r4, 0x8] - lsls r0, 4 - adds r1, r2, 0x1 - adds r0, r1 - lsls r1, r0, 1 - adds r1, r3 - subs r0, 0x1 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080AB622 - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - adds r0, 0x1 - lsls r0, 1 - adds r0, r7 - strh r6, [r0] - ldr r1, _080AB6FC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x12] -_080AB65C: - ldr r1, _080AB6FC @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0x14] - adds r0, 0x1 - strh r0, [r3, 0x14] - lsls r0, 16 - asrs r0, 16 - adds r4, r1, 0 - adds r6, r2, 0 - cmp r0, 0x1 - ble _080AB6CA - movs r0, 0 - strh r0, [r3, 0x14] - ldrh r0, [r3, 0xE] - adds r2, r0, 0x1 - strh r2, [r3, 0xE] - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0xD - bgt _080AB6A6 - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1, 0xA] - ldrh r0, [r3, 0x10] - adds r0, 0x1 - strh r0, [r3, 0x10] -_080AB6A6: - movs r1, 0xE - ldrsh r0, [r3, r1] - cmp r0, 0x36 - ble _080AB6CA - ldrh r2, [r3, 0x10] - subs r2, 0x1 - strh r2, [r3, 0x10] - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1, 0xA] -_080AB6CA: - adds r0, r6, r5 - lsls r0, 3 - adds r2, r0, r4 - movs r3, 0x26 - ldrsh r1, [r2, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldrh r0, [r0, 0xA] - movs r3, 0x1F - ands r3, r0 - cmp r3, 0 - bne _080AB6EC - strh r3, [r2, 0x8] - ldr r0, _080AB704 @ =sub_80AB708 - str r0, [r2] -_080AB6EC: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB6F4: .4byte gUnknown_2022978 -_080AB6F8: .4byte gUnknown_202297A -_080AB6FC: .4byte gTasks -_080AB700: .4byte gPlttBufferFaded -_080AB704: .4byte sub_80AB708 - thumb_func_end sub_80AB5C8 - - thumb_func_start sub_80AB708 -sub_80AB708: @ 80AB708 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r7, _080AB740 @ =gUnknown_2022978 - ldr r0, _080AB744 @ =gUnknown_202297A - mov r8, r0 - ldr r6, _080AB748 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AB74C - movs r0, 0x1 - bl sub_8075358 - movs r0, 0x2 - bl sub_8075358 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AB78E - .align 2, 0 -_080AB740: .4byte gUnknown_2022978 -_080AB744: .4byte gUnknown_202297A -_080AB748: .4byte gTasks -_080AB74C: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AB760 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080AB760: - movs r0, 0 - strh r0, [r7] - mov r1, r8 - strh r0, [r1] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldr r1, _080AB798 @ =0x0000ffff - strh r1, [r0, 0x26] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080AB78E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB798: .4byte 0x0000ffff - thumb_func_end sub_80AB708 - - thumb_func_start sub_80AB79C -sub_80AB79C: @ 80AB79C - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080AB7C4 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080AB7B8 - b _080AB8F0 -_080AB7B8: - cmp r0, 0x1 - bgt _080AB7C8 - cmp r0, 0 - beq _080AB7D0 - b _080ABA66 - .align 2, 0 -_080AB7C4: .4byte gTasks -_080AB7C8: - cmp r0, 0x2 - bne _080AB7CE - b _080AB9BC -_080AB7CE: - b _080ABA66 -_080AB7D0: - movs r3, 0 - movs r2, 0x10 - ldrsh r0, [r4, r2] - ldr r1, _080AB8A0 @ =gUnknown_2038700 - mov r12, r1 - cmp r3, r0 - bge _080AB80E - mov r7, r12 - movs r5, 0xF0 - lsls r5, 3 - add r5, r12 - ldr r6, _080AB8A4 @ =0x0000ffff -_080AB7E8: - lsls r2, r3, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r7 - adds r1, r5 - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r1, [r4, 0xC] - adds r0, r6, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _080AB7E8 -_080AB80E: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080AB848 - ldr r5, _080AB8A0 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 - ldr r7, _080AB8A4 @ =0x0000ffff -_080AB826: - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r5 - adds r1, r6 - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldrh r1, [r4, 0xA] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080AB826 -_080AB848: - ldrh r3, [r4, 0x12] - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, 0x9F - bgt _080AB87E - ldr r5, _080AB8A0 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 - ldr r7, _080AB8A4 @ =0x0000ffff -_080AB85C: - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r5 - adds r1, r6 - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r1, [r4, 0xC] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, 0x9F - ble _080AB85C -_080AB87E: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AB8A8 - lsls r0, r3, 16 - asrs r0, 15 - mov r3, r12 - adds r2, r0, r3 - movs r1, 0xF0 - lsls r1, 3 - add r1, r12 - adds r0, r1 - ldrh r1, [r4, 0xA] - strh r1, [r0] - ldrh r0, [r4, 0xA] - b _080AB8BE - .align 2, 0 -_080AB8A0: .4byte gUnknown_2038700 -_080AB8A4: .4byte 0x0000ffff -_080AB8A8: - lsls r0, r3, 16 - asrs r0, 15 - mov r1, r12 - adds r2, r0, r1 - movs r1, 0xF0 - lsls r1, 3 - add r1, r12 - adds r0, r1 - ldrh r1, [r4, 0xC] - strh r1, [r0] - ldrh r0, [r4, 0xC] -_080AB8BE: - strh r0, [r2] - ldr r0, _080AB8E8 @ =0x04000052 - str r0, [sp] - ldr r0, _080AB8EC @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080ABA66 - .align 2, 0 -_080AB8E8: .4byte 0x04000052 -_080AB8EC: .4byte 0xa2600001 -_080AB8F0: - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080AB908 - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bgt _080AB91C - strh r1, [r4, 0x10] - b _080AB916 -_080AB908: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080AB91C -_080AB916: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080AB91C: - movs r3, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080AB950 - ldr r6, _080AB9B4 @ =gUnknown_2038700 - ldr r5, _080AB9B8 @ =gUnknown_2039600 -_080AB92A: - lsls r1, r3, 16 - asrs r1, 16 - lsls r3, r1, 1 - ldrb r2, [r5, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - adds r3, r6 - ldrh r0, [r4, 0xC] - strh r0, [r3] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080AB92A -_080AB950: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080AB984 - ldr r6, _080AB9B4 @ =gUnknown_2038700 - ldr r5, _080AB9B8 @ =gUnknown_2039600 -_080AB962: - asrs r3, r2, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xA] - strh r0, [r2] - adds r3, 0x1 - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080AB962 -_080AB984: - ldrh r3, [r4, 0x12] - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080ABA66 - ldr r6, _080AB9B4 @ =gUnknown_2038700 - ldr r5, _080AB9B8 @ =gUnknown_2039600 -_080AB992: - asrs r3, r1, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080AB992 - b _080ABA66 - .align 2, 0 -_080AB9B4: .4byte gUnknown_2038700 -_080AB9B8: .4byte gUnknown_2039600 -_080AB9BC: - movs r3, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080AB9F0 - ldr r6, _080ABA70 @ =gUnknown_2038700 - ldr r5, _080ABA74 @ =gUnknown_2039600 -_080AB9CA: - lsls r1, r3, 16 - asrs r1, 16 - lsls r3, r1, 1 - ldrb r2, [r5, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - adds r3, r6 - ldrh r0, [r4, 0xC] - strh r0, [r3] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080AB9CA -_080AB9F0: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080ABA24 - ldr r6, _080ABA70 @ =gUnknown_2038700 - ldr r5, _080ABA74 @ =gUnknown_2039600 -_080ABA02: - asrs r3, r2, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xA] - strh r0, [r2] - adds r3, 0x1 - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080ABA02 -_080ABA24: - ldrh r3, [r4, 0x12] - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080ABA50 - ldr r6, _080ABA70 @ =gUnknown_2038700 - ldr r5, _080ABA74 @ =gUnknown_2039600 -_080ABA32: - asrs r3, r1, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080ABA32 -_080ABA50: - movs r0, 0x26 - ldrsh r1, [r4, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080ABA66 - bl remove_some_task - adds r0, r7, 0 - bl DestroyTask -_080ABA66: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ABA70: .4byte gUnknown_2038700 -_080ABA74: .4byte gUnknown_2039600 - thumb_func_end sub_80AB79C - - thumb_func_start sub_80ABA78 -sub_80ABA78: @ 80ABA78 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r3, _080ABACC @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080ABAD0 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - bl Random - movs r5, 0xFF - ands r5, r0 - movs r0, 0x80 - lsls r0, 1 - adds r6, r0, 0 - orrs r5, r6 - bl Random - ldr r1, _080ABAD4 @ =0x000001ff - ands r1, r0 - adds r0, r1, 0 - cmp r0, 0xFF - ble _080ABABE - subs r0, r6, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080ABABE: - strh r5, [r4, 0x30] - strh r1, [r4, 0x32] - ldr r0, _080ABAD8 @ =sub_80ABADC - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ABACC: .4byte 0x000003ff -_080ABAD0: .4byte 0xfffffc00 -_080ABAD4: .4byte 0x000001ff -_080ABAD8: .4byte sub_80ABADC - thumb_func_end sub_80ABA78 - - thumb_func_start sub_80ABADC -sub_80ABADC: @ 80ABADC - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r3, r0, r1 - strh r3, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r1, r4 - strh r1, [r2, 0x36] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080ABB00 - lsls r0, r3, 16 - asrs r0, 24 - negs r0, r0 - b _080ABB04 -_080ABB00: - lsls r0, r3, 16 - asrs r0, 24 -_080ABB04: - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080ABB22 - adds r0, r2, 0 - bl DestroyAnimSprite -_080ABB22: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ABADC - - thumb_func_start sub_80ABB28 -sub_80ABB28: @ 80ABB28 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080ABB78 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r2, _080ABB7C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x12] - bl sub_80ABDC8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80758E0 - ldr r0, _080ABB80 @ =sub_80ABB84 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ABB78: .4byte gTasks -_080ABB7C: .4byte gSprites -_080ABB80: .4byte sub_80ABB84 - thumb_func_end sub_80ABB28 - - thumb_func_start sub_80ABB84 -sub_80ABB84: @ 80ABB84 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080ABBAC @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bls _080ABBA0 - b _080ABDBE -_080ABBA0: - lsls r0, 2 - ldr r1, _080ABBB0 @ =_080ABBB4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ABBAC: .4byte gTasks -_080ABBB0: .4byte _080ABBB4 - .align 2, 0 -_080ABBB4: - .4byte _080ABBD4 - .4byte _080ABBFA - .4byte _080ABC8C - .4byte _080ABCC2 - .4byte _080ABCD6 - .4byte _080ABCE4 - .4byte _080ABD64 - .4byte _080ABDB0 -_080ABBD4: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0xE0 - str r0, [sp] - movs r0, 0x80 - lsls r0, 2 - str r0, [sp, 0x4] - movs r0, 0x20 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r2, r3, 0 - bl sub_80765D4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080ABBFA: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080ABC56 - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ABC44 - ldr r2, _080ABC40 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0, 0x24] - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] - b _080ABC56 - .align 2, 0 -_080ABC40: .4byte gSprites -_080ABC44: - ldr r2, _080ABC84 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080ABC88 @ =0x0000fffd - strh r1, [r0, 0x24] -_080ABC56: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080ABC66 - b _080ABDBE -_080ABC66: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8076440 - ldr r2, _080ABC84 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x24] - strh r5, [r4, 0xE] - b _080ABDA0 - .align 2, 0 -_080ABC84: .4byte gSprites -_080ABC88: .4byte 0x0000fffd -_080ABC8C: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080ABC9C - b _080ABDBE -_080ABC9C: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xE0 - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_80765D4 - movs r0, 0 - strh r0, [r4, 0xE] - b _080ABDA2 -_080ABCC2: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080ABDBE - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - b _080ABDA2 -_080ABCD6: - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80ABE4C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080ABCE4: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080ABDBE - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ABD1C - ldr r2, _080ABD18 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x2 - b _080ABD2E - .align 2, 0 -_080ABD18: .4byte gSprites -_080ABD1C: - ldr r2, _080ABD60 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x2 -_080ABD2E: - strh r1, [r0, 0x26] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0xA - bne _080ABDBE - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xE0 - bl sub_80765D4 - movs r0, 0 - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - b _080ABDA2 - .align 2, 0 -_080ABD60: .4byte gSprites -_080ABD64: - ldr r6, _080ABDAC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080ABDBE - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8075980 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0x12] - strh r1, [r0, 0x22] -_080ABDA0: - strh r5, [r4, 0x10] -_080ABDA2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080ABDBE - .align 2, 0 -_080ABDAC: .4byte gSprites -_080ABDB0: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080ABDBE - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080ABDBE: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80ABB84 - - thumb_func_start sub_80ABDC8 -sub_80ABDC8: @ 80ABDC8 - push {r4,r5,lr} - ldr r4, _080ABDEC @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080ABDFC - ldr r1, _080ABDF0 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080ABDF4 @ =gPlayerParty - b _080ABE0C - .align 2, 0 -_080ABDEC: .4byte gUnknown_2037F1A -_080ABDF0: .4byte gBattlerPartyIndexes -_080ABDF4: .4byte gPlayerParty -_080ABDF8: - adds r0, r2, 0 - b _080ABE3E -_080ABDFC: - ldr r1, _080ABE44 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080ABE48 @ =gEnemyParty -_080ABE0C: - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - lsrs r4, 18 - movs r2, 0 -_080ABE2A: - adds r1, r2, 0x1 - adds r0, r4, 0 - muls r0, r1 - cmp r3, r0 - blt _080ABDF8 - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _080ABE2A - movs r0, 0x3 -_080ABE3E: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080ABE44: .4byte gBattlerPartyIndexes -_080ABE48: .4byte gEnemyParty - thumb_func_end sub_80ABDC8 - - thumb_func_start sub_80ABE4C -sub_80ABE4C: @ 80ABE4C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - ldr r4, _080ABF54 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0xAC - ldrb r0, [r4] - bl sub_807685C - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldrh r1, [r7, 0xA] - movs r0, 0x4 - subs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r0, 0 - bgt _080ABE9C - movs r1, 0x1 -_080ABE9C: - movs r0, 0 - str r0, [sp, 0x4] - lsls r0, r1, 16 - mov r10, r8 - mov r9, r6 - mov r1, r10 - lsls r1, 4 - str r1, [sp, 0xC] - mov r1, r9 - lsls r1, 4 - str r1, [sp, 0x10] - asrs r0, 16 - mov r8, r0 -_080ABEB6: - ldr r0, _080ABF58 @ =gUnknown_83E5AE0 - mov r1, r10 - mov r2, r9 - ldr r3, [sp, 0x8] - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r6, r5, 16 - cmp r2, 0x40 - beq _080ABF1E - ldr r1, _080ABF5C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r1 - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x30] - mov r1, sp - ldrh r1, [r1, 0xC] - strh r1, [r5, 0x32] - mov r0, sp - ldrh r0, [r0, 0x10] - strh r0, [r5, 0x34] - asrs r4, r6, 16 - adds r0, r4, 0 - movs r1, 0x40 - bl Cos - strh r0, [r5, 0x36] - adds r0, r4, 0 - movs r1, 0x40 - bl Sin - strh r0, [r5, 0x38] - mov r1, sp - ldrh r1, [r1] - strh r1, [r5, 0x3A] - movs r0, 0x2 - strh r0, [r5, 0x3C] - ldrh r1, [r7, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ABF18 - adds r0, r5, 0 - bl sub_80ABF60 -_080ABF18: - ldrh r0, [r7, 0xC] - adds r0, 0x1 - strh r0, [r7, 0xC] -_080ABF1E: - mov r1, r8 - lsls r0, r1, 1 - asrs r1, r6, 16 - adds r1, r0 - lsls r1, 16 - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r5, r0, 16 - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - asrs r0, 16 - add r0, r8 - lsls r0, 16 - lsrs r1, r0, 16 - str r1, [sp, 0x4] - asrs r0, 16 - cmp r0, 0x13 - ble _080ABEB6 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ABF54: .4byte gUnknown_2037F1A -_080ABF58: .4byte gUnknown_83E5AE0 -_080ABF5C: .4byte gSprites - thumb_func_end sub_80ABE4C - - thumb_func_start sub_80ABF60 -sub_80ABF60: @ 80ABF60 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080ABF72 - cmp r0, 0x1 - beq _080ABFA8 - b _080AC002 -_080ABF72: - movs r2, 0x30 - ldrsh r0, [r4, r2] - movs r1, 0x6 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - ldrh r0, [r4, 0x36] - adds r1, r0 - strh r1, [r4, 0x36] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080ABFA8: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x38] - ldrh r2, [r4, 0x34] - adds r1, r2 - strh r1, [r4, 0x34] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r2, r1, 20 - strh r2, [r4, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080ABFDE - adds r1, r2, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080ABFDE - cmp r1, 0x78 - ble _080AC002 -_080ABFDE: - ldr r3, _080AC008 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080AC002: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC008: .4byte gTasks - thumb_func_end sub_80ABF60 - - thumb_func_start sub_80AC00C -sub_80AC00C: @ 80AC00C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080AC03C @ =gTasks - adds r4, r1, r0 - bl sub_80ABDC8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldr r0, _080AC040 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AC044 - movs r0, 0x88 - strh r0, [r4, 0x10] - movs r0, 0x28 - b _080AC04A - .align 2, 0 -_080AC03C: .4byte gTasks -_080AC040: .4byte gUnknown_2037F1A -_080AC044: - movs r0, 0x10 - strh r0, [r4, 0x10] - movs r0, 0x50 -_080AC04A: - strh r0, [r4, 0x14] - movs r0, 0x62 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r0, 0x31 - strh r0, [r4, 0x16] - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x5 - strh r0, [r4, 0x20] - ldr r0, _080AC06C @ =sub_80AC070 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC06C: .4byte sub_80AC070 - thumb_func_end sub_80AC00C - - thumb_func_start sub_80AC070 -sub_80AC070: @ 80AC070 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r7, _080AC094 @ =gTasks - adds r4, r0, r7 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0 - beq _080AC098 - cmp r2, 0x1 - beq _080AC148 - b _080AC156 - .align 2, 0 -_080AC094: .4byte gTasks -_080AC098: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080AC0AE - strh r2, [r4, 0xC] - adds r0, r4, 0 - bl sub_80AC160 -_080AC0AE: - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AC128 - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080AC128 - ldr r5, _080AC13C @ =gUnknown_2037F02 - movs r1, 0x1 - mov r8, r1 - mov r2, r8 - strh r2, [r5] - strh r0, [r5, 0x2] - movs r0, 0xC - strh r0, [r5, 0x4] - ldr r6, _080AC140 @ =sub_80B94B4 - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080AC0F8 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r7 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - ldr r1, _080AC144 @ =gUnknown_2037EE2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080AC0F8: - movs r0, 0x3 - strh r0, [r5] - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080AC124 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r7 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - ldr r1, _080AC144 @ =gUnknown_2037EE2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080AC124: - mov r0, r8 - strh r0, [r4, 0x22] -_080AC128: - movs r2, 0x1E - ldrsh r1, [r4, r2] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080AC156 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AC156 - .align 2, 0 -_080AC13C: .4byte gUnknown_2037F02 -_080AC140: .4byte sub_80B94B4 -_080AC144: .4byte gUnknown_2037EE2 -_080AC148: - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080AC156 - adds r0, r1, 0 - bl DestroyAnimVisualTask -_080AC156: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AC070 - - thumb_func_start sub_80AC160 -sub_80AC160: @ 80AC160 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _080AC1EC @ =gUnknown_825E074 - movs r2, 0x18 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x3 - asrs r0, 4 - ldrh r2, [r4, 0x14] - adds r0, r2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080AC1F0 @ =gUnknown_83E5AE0 - movs r2, 0x16 - ldrsh r1, [r4, r2] - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080AC1BA - ldr r3, _080AC1F4 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _080AC1F8 @ =sub_80AC204 - str r2, [r1] - adds r0, r3 - strh r5, [r0, 0x38] - strh r6, [r0, 0x3A] - movs r1, 0x9 - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] -_080AC1BA: - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x18] - adds r0, 0x27 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x18] - movs r0, 0x16 - ldrsh r1, [r4, r0] - ldr r0, _080AC1FC @ =0x41c64e6d - muls r0, r1 - ldr r1, _080AC200 @ =0x00003039 - adds r0, r1 - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - ldrh r1, [r4, 0x10] - adds r1, r0 - strh r1, [r4, 0x16] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC1EC: .4byte gUnknown_825E074 -_080AC1F0: .4byte gUnknown_83E5AE0 -_080AC1F4: .4byte gSprites -_080AC1F8: .4byte sub_80AC204 -_080AC1FC: .4byte 0x41c64e6d -_080AC200: .4byte 0x00003039 - thumb_func_end sub_80AC160 - - thumb_func_start sub_80AC204 -sub_80AC204: @ 80AC204 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AC29A - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x38 - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _080AC29A - ldr r2, _080AC2A0 @ =gTasks - movs r3, 0x3A - ldrsh r1, [r5, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x1C] - ldr r0, _080AC2A4 @ =gUnknown_83E7C38 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r3, 0x22 - ldrsh r2, [r5, r3] - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x30] - cmp r0, 0x40 - beq _080AC294 - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080AC2A8 @ =gSprites - adds r0, r4 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r2, 0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x3A] - strh r1, [r0, 0x3A] - movs r3, 0x30 - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x3C] - strh r1, [r0, 0x3C] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080AC2AC @ =sub_80AC2B0 - str r1, [r0] -_080AC294: - adds r0, r5, 0 - bl DestroySprite -_080AC29A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC2A0: .4byte gTasks -_080AC2A4: .4byte gUnknown_83E7C38 -_080AC2A8: .4byte gSprites -_080AC2AC: .4byte sub_80AC2B0 - thumb_func_end sub_80AC204 - - thumb_func_start sub_80AC2B0 -sub_80AC2B0: @ 80AC2B0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AC31C - movs r0, 0 - strh r0, [r4, 0x30] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080AC31C - ldr r3, _080AC324 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080AC31C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC324: .4byte gTasks - thumb_func_end sub_80AC2B0 - - thumb_func_start sub_80AC328 -sub_80AC328: @ 80AC328 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080AC3AC @ =gTasks - adds r5, r1, r0 - ldr r4, _080AC3B0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0xE] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x10] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080AC36C - movs r1, 0x1 -_080AC36C: - strh r1, [r5, 0x16] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080AC380 - movs r1, 0x16 - ldrsh r0, [r5, r1] - negs r0, r0 - strh r0, [r5, 0x16] -_080AC380: - movs r2, 0x16 - ldrsh r0, [r5, r2] - lsls r0, 3 - ldrh r1, [r5, 0xE] - adds r0, r1 - strh r0, [r5, 0x12] - movs r2, 0x16 - ldrsh r1, [r5, r2] - lsls r1, 3 - ldrh r0, [r5, 0x10] - subs r0, r1 - strh r0, [r5, 0x14] - ldr r0, _080AC3B4 @ =0x0000ffe0 - strh r0, [r5, 0x1A] - strh r6, [r5, 0xA] - strh r6, [r5, 0x8] - ldr r0, _080AC3B8 @ =sub_80AC3BC - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC3AC: .4byte gTasks -_080AC3B0: .4byte gUnknown_2037F1A -_080AC3B4: .4byte 0x0000ffe0 -_080AC3B8: .4byte sub_80AC3BC - thumb_func_end sub_80AC328 - - thumb_func_start sub_80AC3BC -sub_80AC3BC: @ 80AC3BC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080AC3E0 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bls _080AC3D6 - b _080AC4F6 -_080AC3D6: - lsls r0, 2 - ldr r1, _080AC3E4 @ =_080AC3E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AC3E0: .4byte gTasks -_080AC3E4: .4byte _080AC3E8 - .align 2, 0 -_080AC3E8: - .4byte _080AC404 - .4byte _080AC414 - .4byte _080AC42E - .4byte _080AC470 - .4byte _080AC492 - .4byte _080AC4C0 - .4byte _080AC4E6 -_080AC404: - adds r0, r4, 0 - bl sub_80AC504 - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AC4FC - b _080AC4EE -_080AC414: - adds r0, r4, 0 - bl sub_80AC504 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080AC4FC - movs r0, 0 - strh r0, [r4, 0xA] - b _080AC4EE -_080AC42E: - adds r0, r4, 0 - bl sub_80AC504 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4, 0x12] - adds r1, r0 - movs r2, 0 - strh r1, [r4, 0x12] - adds r1, 0x10 - lsls r1, 16 - movs r0, 0x88 - lsls r0, 17 - cmp r1, r0 - bls _080AC4FC - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080AC46C - movs r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x6 - strh r0, [r4, 0x8] - strh r2, [r4, 0xA] - b _080AC4FC -_080AC46C: - strh r2, [r4, 0xA] - b _080AC4EE -_080AC470: - adds r0, r4, 0 - bl sub_80AC504 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r1, 1 - ldrh r0, [r4, 0x14] - subs r0, r1 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080AC4FC - b _080AC4EE -_080AC492: - adds r0, r4, 0 - bl sub_80AC504 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x12] - adds r0, 0x10 - lsls r0, 16 - movs r1, 0x88 - lsls r1, 17 - cmp r0, r1 - bls _080AC4FC - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0xA] - b _080AC4EE -_080AC4C0: - adds r0, r4, 0 - bl sub_80AC504 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r1, 1 - ldrh r0, [r4, 0x14] - subs r0, r1 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080AC4FC - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080AC4FC -_080AC4E6: - movs r1, 0x18 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AC4FC -_080AC4EE: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AC4FC -_080AC4F6: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080AC4FC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AC3BC - - thumb_func_start sub_80AC504 -sub_80AC504: @ 80AC504 - push {r4-r6,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0xC] - adds r0, 0x1 - strh r0, [r6, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AC55E - movs r0, 0 - strh r0, [r6, 0xC] - ldr r0, _080AC564 @ =gUnknown_83E5AE0 - movs r2, 0xE - ldrsh r1, [r6, r2] - movs r3, 0x10 - ldrsh r2, [r6, r3] - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080AC55E - ldr r5, _080AC568 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - movs r1, 0x10 - strh r1, [r0, 0x2E] - ldrh r1, [r6, 0x12] - strh r1, [r0, 0x32] - ldrh r1, [r6, 0x14] - strh r1, [r0, 0x36] - ldrh r1, [r6, 0x1A] - strh r1, [r0, 0x38] - bl sub_8075068 - adds r5, 0x1C - adds r4, r5 - ldr r0, _080AC56C @ =sub_80AC570 - str r0, [r4] - ldrh r0, [r6, 0x18] - adds r0, 0x1 - strh r0, [r6, 0x18] -_080AC55E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC564: .4byte gUnknown_83E5AE0 -_080AC568: .4byte gSprites -_080AC56C: .4byte sub_80AC570 - thumb_func_end sub_80AC504 - - thumb_func_start sub_80AC570 -sub_80AC570: @ 80AC570 - push {r4-r6,lr} - adds r6, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080AC5CA - ldrh r0, [r6, 0x24] - ldrh r1, [r6, 0x20] - adds r0, r1 - strh r0, [r6, 0x20] - ldrh r0, [r6, 0x26] - ldrh r1, [r6, 0x22] - adds r0, r1 - strh r0, [r6, 0x22] - movs r0, 0x6 - strh r0, [r6, 0x2E] - bl Random - movs r4, 0x1F - adds r1, r4, 0 - ands r1, r0 - ldr r5, _080AC5D0 @ =0x0000fff0 - adds r1, r5 - ldrh r0, [r6, 0x20] - adds r1, r0 - strh r1, [r6, 0x32] - bl Random - ands r4, r0 - adds r4, r5 - ldrh r1, [r6, 0x22] - adds r4, r1 - strh r4, [r6, 0x36] - bl Random - movs r1, 0x7 - ands r1, r0 - mvns r1, r1 - strh r1, [r6, 0x38] - adds r0, r6, 0 - bl sub_8075068 - ldr r0, _080AC5D4 @ =sub_80AC5D8 - str r0, [r6, 0x1C] -_080AC5CA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC5D0: .4byte 0x0000fff0 -_080AC5D4: .4byte sub_80AC5D8 - thumb_func_end sub_80AC570 - - thumb_func_start sub_80AC5D8 -sub_80AC5D8: @ 80AC5D8 - push {r4-r6,lr} - adds r5, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080AC614 - movs r4, 0 - ldr r6, _080AC61C @ =gTasks -_080AC5EA: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r6 - ldr r1, [r2] - ldr r0, _080AC620 @ =sub_80AC3BC - cmp r1, r0 - bne _080AC60A - movs r0, 0x1 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0x18] - subs r0, 0x1 - strh r0, [r2, 0x18] - adds r0, r5, 0 - bl DestroySprite -_080AC60A: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080AC5EA -_080AC614: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC61C: .4byte gTasks -_080AC620: .4byte sub_80AC3BC - thumb_func_end sub_80AC5D8 - - thumb_func_start sub_80AC624 -sub_80AC624: @ 80AC624 - ldr r2, _080AC644 @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0x20] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x2E] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0x30] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0x32] - ldrh r1, [r2, 0xA] - strh r1, [r0, 0x34] - ldr r1, _080AC648 @ =sub_80AC64C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080AC644: .4byte gUnknown_2037F02 -_080AC648: .4byte sub_80AC64C - thumb_func_end sub_80AC624 - - thumb_func_start sub_80AC64C -sub_80AC64C: @ 80AC64C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x2E] - subs r0, r1 - strh r0, [r4, 0x36] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x38] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080AC690 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AC690: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AC64C - - thumb_func_start sub_80AC698 -sub_80AC698: @ 80AC698 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 23 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 23 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080AC6D0 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080AC6D0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AC698 - - thumb_func_start sub_80AC6D8 -sub_80AC6D8: @ 80AC6D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r5, _080AC714 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldr r1, _080AC718 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldr r0, _080AC71C @ =sub_80AC720 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC714: .4byte gUnknown_2037F1B -_080AC718: .4byte gUnknown_2037F02 -_080AC71C: .4byte sub_80AC720 - thumb_func_end sub_80AC6D8 - - thumb_func_start sub_80AC720 -sub_80AC720: @ 80AC720 - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x20 - ldrsh r0, [r4, r2] - subs r6, r1, r0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x22 - ldrsh r0, [r4, r2] - subs r5, r1, r0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - muls r0, r6 - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - muls r0, r5 - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080AC778 - movs r0, 0 - strh r0, [r4, 0x38] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80AC798 -_080AC778: - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080AC78A - adds r0, r4, 0 - bl DestroyAnimSprite -_080AC78A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80AC720 - - thumb_func_start sub_80AC798 -sub_80AC798: @ 80AC798 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r4, r1, 0 - adds r5, r2, 0 - movs r2, 0x2E - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - lsls r1, 15 - lsrs r1, 16 - str r1, [sp] - ldrh r1, [r0, 0x24] - ldrh r3, [r0, 0x20] - adds r1, r3 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r0, r5, r0 - subs r0, 0x5 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - bl Random - negs r4, r4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r4, r0 - subs r4, 0x5 - lsls r4, 16 - lsrs r7, r4, 16 - movs r6, 0 - mov r0, r8 - lsls r0, 16 - mov r8, r0 - mov r1, r10 - lsls r1, 16 - str r1, [sp, 0xC] - ldr r2, [sp] - lsls r2, 16 - str r2, [sp, 0x10] - asrs r1, 16 - lsls r0, r7, 16 - asrs r5, r0, 16 - str r0, [sp, 0x14] - negs r3, r5 - str r3, [sp, 0x4] - asrs r0, r2, 16 - adds r1, r0 - lsls r1, 16 - mov r10, r1 -_080AC826: - ldr r0, _080AC868 @ =gUnknown_83E5B88 - mov r2, r8 - asrs r1, r2, 16 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0x82 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080AC86C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x14 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - ldr r0, _080AC870 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807685C - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - cmp r5, 0 - bge _080AC874 - mov r1, sp - ldrh r1, [r1, 0x4] - strh r1, [r4, 0x32] - b _080AC876 - .align 2, 0 -_080AC868: .4byte gUnknown_83E5B88 -_080AC86C: .4byte gSprites -_080AC870: .4byte gUnknown_2037F1A -_080AC874: - strh r7, [r4, 0x32] -_080AC876: - lsls r0, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r6, r0, 16 - cmp r0, 0 - ble _080AC826 - movs r6, 0 - ldr r3, [sp, 0xC] - asrs r1, r3, 16 - ldr r0, [sp, 0x14] - asrs r5, r0, 16 - negs r2, r5 - str r2, [sp, 0x8] - ldr r3, [sp, 0x10] - asrs r0, r3, 16 - subs r1, r0 - lsls r1, 16 - mov r10, r1 -_080AC89C: - ldr r0, _080AC8E0 @ =gUnknown_83E5B88 - mov r2, r8 - asrs r1, r2, 16 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0x82 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080AC8E4 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x14 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - ldr r0, _080AC8E8 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807685C - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - cmp r5, 0 - ble _080AC8EC - mov r1, sp - ldrh r1, [r1, 0x8] - strh r1, [r4, 0x32] - b _080AC8EE - .align 2, 0 -_080AC8E0: .4byte gUnknown_83E5B88 -_080AC8E4: .4byte gSprites -_080AC8E8: .4byte gUnknown_2037F1A -_080AC8EC: - strh r7, [r4, 0x32] -_080AC8EE: - lsls r0, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r6, r0, 16 - cmp r0, 0 - ble _080AC89C - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AC798 - - thumb_func_start sub_80AC90C -sub_80AC90C: @ 80AC90C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AC940 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r4, 0x2E] - movs r0, 0x3C - strh r0, [r4, 0x30] - movs r0, 0x9 - strh r0, [r4, 0x32] - movs r0, 0x1E - strh r0, [r4, 0x34] - movs r0, 0xFE - lsls r0, 8 - strh r0, [r4, 0x36] - ldr r1, _080AC944 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080AC948 @ =sub_8074AE0 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC940: .4byte gUnknown_2037F02 -_080AC944: .4byte DestroyAnimSprite -_080AC948: .4byte sub_8074AE0 - thumb_func_end sub_80AC90C - - thumb_func_start sub_80AC94C -sub_80AC94C: @ 80AC94C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080AC984 @ =gUnknown_2037F02 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_8074FF8 - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x32] - ldr r0, _080AC988 @ =sub_8074D00 - str r0, [r4, 0x1C] - ldr r1, _080AC98C @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC984: .4byte gUnknown_2037F02 -_080AC988: .4byte sub_8074D00 -_080AC98C: .4byte DestroyAnimSprite - thumb_func_end sub_80AC94C - - thumb_func_start sub_80AC990 -sub_80AC990: @ 80AC990 - push {r4,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r0, _080AC9C4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AC9CC - ldr r2, _080AC9C8 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x8] - negs r0, r0 - strh r0, [r4, 0x32] - adds r1, r2, 0 - b _080AC9E2 - .align 2, 0 -_080AC9C4: .4byte gUnknown_2037F1A -_080AC9C8: .4byte gUnknown_2037F02 -_080AC9CC: - ldr r1, _080AC9F8 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] -_080AC9E2: - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080AC9FC @ =sub_80ACA6C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC9F8: .4byte gUnknown_2037F02 -_080AC9FC: .4byte sub_80ACA6C - thumb_func_end sub_80AC990 - - thumb_func_start sub_80ACA00 -sub_80ACA00: @ 80ACA00 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080ACA2C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080ACA34 - ldr r2, _080ACA30 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x8] - strh r0, [r4, 0x32] - adds r1, r2, 0 - b _080ACA4C - .align 2, 0 -_080ACA2C: .4byte gUnknown_2037F1A -_080ACA30: .4byte gUnknown_2037F02 -_080ACA34: - ldr r1, _080ACA64 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x8] - negs r0, r0 - strh r0, [r4, 0x32] -_080ACA4C: - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080ACA68 @ =sub_80ACA6C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACA64: .4byte gUnknown_2037F02 -_080ACA68: .4byte sub_80ACA6C - thumb_func_end sub_80ACA00 - - thumb_func_start sub_80ACA6C -sub_80ACA6C: @ 80ACA6C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x36 - ldrsh r1, [r2, r3] - cmp r0, r1 - bge _080ACA92 - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x34] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] -_080ACA92: - movs r0, 0x2E - ldrsh r1, [r2, r0] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r1, r0 - bne _080ACAA4 - adds r0, r2, 0 - bl move_anim_8074EE0 -_080ACAA4: - pop {r0} - bx r0 - thumb_func_end sub_80ACA6C - - thumb_func_start sub_80ACAA8 -sub_80ACAA8: @ 80ACAA8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r0, _080ACACC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080ACAD4 - ldr r0, _080ACAD0 @ =gUnknown_2037F02 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080ACAE6 - .align 2, 0 -_080ACACC: .4byte gUnknown_2037F1A -_080ACAD0: .4byte gUnknown_2037F02 -_080ACAD4: - ldr r0, _080ACB14 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - adds r2, r4, 0 - adds r2, 0x43 - movs r1, 0x8 - strb r1, [r2] -_080ACAE6: - adds r2, r0, 0 - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r2, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r2, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r2, 0xA] - strh r0, [r4, 0x34] - ldrh r0, [r2, 0xC] - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - ldr r0, _080ACB18 @ =sub_80ACB1C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACB14: .4byte gUnknown_2037F02 -_080ACB18: .4byte sub_80ACB1C - thumb_func_end sub_80ACAA8 - - thumb_func_start sub_80ACB1C -sub_80ACB1C: @ 80ACB1C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080ACBA4 - movs r2, 0x38 - ldrsh r1, [r4, r2] - ldr r0, _080ACB88 @ =0x00002710 - cmp r1, r0 - ble _080ACB3A - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1 - strb r0, [r1] -_080ACB3A: - movs r1, 0x2E - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080ACB90 - ldr r2, _080ACB8C @ =0xffffff00 - b _080ACB98 - .align 2, 0 -_080ACB88: .4byte 0x00002710 -_080ACB8C: .4byte 0xffffff00 -_080ACB90: - cmp r0, 0 - bge _080ACB9C - movs r2, 0x80 - lsls r2, 1 -_080ACB98: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_080ACB9C: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _080ACBAA -_080ACBA4: - adds r0, r4, 0 - bl move_anim_8074EE0 -_080ACBAA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ACB1C - - thumb_func_start sub_80ACBB0 -sub_80ACBB0: @ 80ACBB0 - push {lr} - movs r1, 0 - strh r1, [r0, 0x20] - strh r1, [r0, 0x22] - movs r1, 0x3C - strh r1, [r0, 0x2E] - movs r1, 0x8C - strh r1, [r0, 0x32] - movs r1, 0x50 - strh r1, [r0, 0x36] - ldr r1, _080ACBD4 @ =sub_8075590 - str r1, [r0, 0x1C] - ldr r1, _080ACBD8 @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080ACBD4: .4byte sub_8075590 -_080ACBD8: .4byte DestroyAnimSprite - thumb_func_end sub_80ACBB0 - - thumb_func_start sub_80ACBDC -sub_80ACBDC: @ 80ACBDC - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _080ACC34 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - adds r4, r0, 0 - ldr r0, _080ACC38 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080ACC22 - movs r0, 0x2 - bl GetBattlerAtPosition - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _080ACC1A - movs r0, 0x3 - bl GetBattlerAtPosition - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _080ACC22 -_080ACC1A: - ldr r1, _080ACC3C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080ACC22: - ldr r1, _080ACC40 @ =sub_8075F0C - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ACC34: .4byte gUnknown_2037F1A -_080ACC38: .4byte gUnknown_2037F1B -_080ACC3C: .4byte gUnknown_2037F02 -_080ACC40: .4byte sub_8075F0C - thumb_func_end sub_80ACBDC - - thumb_func_start sub_80ACC44 -sub_80ACC44: @ 80ACC44 - ldr r2, _080ACC58 @ =gUnknown_2037F02 - ldrh r1, [r2] - negs r1, r1 - strh r1, [r2] - ldrh r1, [r2, 0x4] - negs r1, r1 - strh r1, [r2, 0x4] - ldr r1, _080ACC5C @ =sub_8075F0C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080ACC58: .4byte gUnknown_2037F02 -_080ACC5C: .4byte sub_8075F0C - thumb_func_end sub_80ACC44 - - thumb_func_start sub_80ACC60 -sub_80ACC60: @ 80ACC60 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080ACC80 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - movs r1, 0 - strh r0, [r4, 0x3C] - strh r1, [r4, 0x2E] - ldr r0, _080ACC84 @ =sub_80ACC88 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACC80: .4byte gUnknown_2037F02 -_080ACC84: .4byte sub_80ACC88 - thumb_func_end sub_80ACC60 - - thumb_func_start sub_80ACC88 -sub_80ACC88: @ 80ACC88 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_80ACD7C - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x12 - bne _080ACCD2 - movs r0, 0x19 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080ACCD8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080ACCDC @ =sub_80ACCE0 - str r0, [r5, 0x1C] -_080ACCD2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ACCD8: .4byte gUnknown_2037F1B -_080ACCDC: .4byte sub_80ACCE0 - thumb_func_end sub_80ACC88 - - thumb_func_start sub_80ACCE0 -sub_80ACCE0: @ 80ACCE0 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080ACD28 - movs r4, 0 - strh r4, [r6, 0x2E] - ldr r5, _080ACD20 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - strh r4, [r6, 0x26] - strh r4, [r6, 0x24] - ldr r1, _080ACD24 @ =sub_80ACD58 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - b _080ACD52 - .align 2, 0 -_080ACD20: .4byte gUnknown_2037F1B -_080ACD24: .4byte sub_80ACD58 -_080ACD28: - movs r1, 0x3C - ldrsh r0, [r6, r1] - movs r1, 0x1C - bl Sin - ldrh r1, [r6, 0x24] - adds r0, r1 - strh r0, [r6, 0x24] - movs r1, 0x3C - ldrsh r0, [r6, r1] - movs r1, 0x1C - bl Cos - ldrh r1, [r6, 0x26] - adds r0, r1 - strh r0, [r6, 0x26] - ldrh r0, [r6, 0x3C] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r6, 0x3C] -_080ACD52: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80ACCE0 - - thumb_func_start sub_80ACD58 -sub_80ACD58: @ 80ACD58 - push {r4,lr} - adds r4, r0, 0 - bl sub_80ACD7C - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080ACD74 - adds r0, r4, 0 - bl DestroyAnimSprite -_080ACD74: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ACD58 - - thumb_func_start sub_80ACD7C -sub_80ACD7C: @ 80ACD7C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x1C - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x1C - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ACD7C - - thumb_func_start sub_80ACDA8 -sub_80ACDA8: @ 80ACDA8 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080ACDDC @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] - ldr r1, _080ACDE0 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080ACDE4 @ =sub_8074CD0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACDDC: .4byte gUnknown_2037F02 -_080ACDE0: .4byte DestroyAnimSprite -_080ACDE4: .4byte sub_8074CD0 - thumb_func_end sub_80ACDA8 - - thumb_func_start sub_80ACDE8 -sub_80ACDE8: @ 80ACDE8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080ACE1C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x2E] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080ACE20 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080ACE24 @ =sub_80ACE28 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACE1C: .4byte gUnknown_2037F02 -_080ACE20: .4byte sub_8074C44 -_080ACE24: .4byte sub_80ACE28 - thumb_func_end sub_80ACDE8 - - thumb_func_start sub_80ACE28 -sub_80ACE28: @ 80ACE28 - push {lr} - adds r3, r0, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r3] - ldrh r1, [r0, 0x30] - movs r2, 0 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - ldr r1, _080ACE4C @ =sub_80ACE50 - str r1, [r0, 0x1C] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080ACE4C: .4byte sub_80ACE50 - thumb_func_end sub_80ACE28 - - thumb_func_start sub_80ACE50 -sub_80ACE50: @ 80ACE50 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0xA - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - adds r0, 0xD0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080ACE9C - adds r0, r4, 0 - bl DestroyAnimSprite -_080ACE9C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ACE50 - - thumb_func_start sub_80ACEA4 -sub_80ACEA4: @ 80ACEA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080ACF04 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x26] - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - ldr r2, _080ACF08 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x10] - ldr r0, _080ACF0C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - strh r5, [r4, 0x14] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80758E0 - ldr r0, _080ACF10 @ =sub_80ACF14 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ACF04: .4byte gTasks -_080ACF08: .4byte gSprites -_080ACF0C: .4byte gUnknown_2037F1A -_080ACF10: .4byte sub_80ACF14 - thumb_func_end sub_80ACEA4 - - thumb_func_start sub_80ACF14 -sub_80ACF14: @ 80ACF14 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080ACF3C @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bls _080ACF30 - b _080AD1EE -_080ACF30: - lsls r0, 2 - ldr r1, _080ACF40 @ =_080ACF44 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ACF3C: .4byte gTasks -_080ACF40: .4byte _080ACF44 - .align 2, 0 -_080ACF44: - .4byte _080ACF60 - .4byte _080ACF86 - .4byte _080AD038 - .4byte _080AD098 - .4byte _080AD0B6 - .4byte _080AD18C - .4byte _080AD1E0 -_080ACF60: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0xE0 - str r0, [sp] - movs r0, 0x80 - lsls r0, 2 - str r0, [sp, 0x4] - movs r0, 0x20 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r2, r3, 0 - bl sub_80765D4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080ACF86: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080ACFCE - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ACFBC - ldr r2, _080ACFB8 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - b _080ACFCC - .align 2, 0 -_080ACFB8: .4byte gSprites -_080ACFBC: - ldr r2, _080AD030 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080AD034 @ =0x0000fffd -_080ACFCC: - strh r1, [r0, 0x24] -_080ACFCE: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080ACFFC - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080ACFFC - movs r0, 0 - strh r0, [r4, 0xE] - ldr r2, _080AD030 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] -_080ACFFC: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080AD00C - b _080AD1EE -_080AD00C: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8076440 - ldr r2, _080AD030 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x24] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - b _080AD1D4 - .align 2, 0 -_080AD030: .4byte gSprites -_080AD034: .4byte 0x0000fffd -_080AD038: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080AD048 - b _080AD1EE -_080AD048: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AD072 - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xF0 - str r0, [sp, 0x4] - movs r0, 0x6 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_80765D4 - b _080AD092 -_080AD072: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xC0 - str r0, [sp, 0x4] - movs r0, 0x6 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_80765D4 -_080AD092: - movs r0, 0 - strh r0, [r4, 0xA] - b _080AD1D4 -_080AD098: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - cmp r0, 0 - beq _080AD0A6 - b _080AD1EE -_080AD0A6: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - movs r2, 0x6 - bl sub_80AD1F8 - b _080AD1D4 -_080AD0B6: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AD104 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD0F0 - ldr r2, _080AD0EC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x3 - b _080AD102 - .align 2, 0 -_080AD0EC: .4byte gSprites -_080AD0F0: - ldr r2, _080AD13C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x3 -_080AD102: - strh r1, [r0, 0x26] -_080AD104: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _080AD1EE - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AD140 - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xF0 - bl sub_80765D4 - b _080AD15E - .align 2, 0 -_080AD13C: .4byte gSprites -_080AD140: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xC0 - bl sub_80765D4 -_080AD15E: - ldrh r1, [r4, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD17C - ldr r2, _080AD188 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x3 - strh r1, [r0, 0x26] -_080AD17C: - movs r0, 0 - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - b _080AD1D4 - .align 2, 0 -_080AD188: .4byte gSprites -_080AD18C: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AD1A8 - ldr r2, _080AD1DC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_080AD1A8: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080AD1EE - ldr r2, _080AD1DC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - strh r1, [r0, 0x22] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8075980 - strh r5, [r4, 0xC] -_080AD1D4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AD1EE - .align 2, 0 -_080AD1DC: .4byte gSprites -_080AD1E0: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AD1EE - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080AD1EE: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80ACF14 - - thumb_func_start sub_80AD1F8 -sub_80AD1F8: @ 80AD1F8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - adds r0, r4, 0 - bl sub_80AD374 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r1, _080AD248 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r4, [r0, 0x20] - ldr r0, _080AD24C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AD250 - adds r0, r4, 0 - subs r0, 0xC - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - b _080AD25A - .align 2, 0 -_080AD248: .4byte gSprites -_080AD24C: .4byte gUnknown_2037F1A -_080AD250: - adds r0, r4, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0xFF -_080AD25A: - movs r6, 0 - movs r5, 0 - lsls r4, 16 - str r4, [sp, 0x8] - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0x4] - ldr r2, _080AD314 @ =gUnknown_83E5E44 - mov r9, r2 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r3, r8 - lsls r3, 1 - mov r10, r3 -_080AD278: - ldr r0, _080AD318 @ =gUnknown_83E5E2C - ldr r2, [sp, 0x8] - asrs r1, r2, 16 - ldr r3, [sp, 0x4] - asrs r2, r3, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080AD2FA - ldr r1, _080AD31C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - lsls r0, r5, 2 - adds r0, 0x40 - adds r1, r0 - ldr r3, _080AD320 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r3, _080AD324 @ =0xfffffc00 - adds r0, r3, 0 - ands r2, r0 - orrs r2, r1 - strh r2, [r4, 0x4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _080AD2C2 - movs r5, 0 -_080AD2C2: - lsls r2, r6, 2 - mov r1, r9 - adds r0, r2, r1 - ldrh r0, [r0] - ldr r3, [sp] - adds r1, r0, 0 - muls r1, r3 - lsls r1, 16 - asrs r1, 16 - ldr r0, _080AD328 @ =gUnknown_83E5E46 - adds r2, r0 - movs r3, 0 - ldrsh r2, [r2, r3] - adds r0, r4, 0 - bl sub_80AD3C8 - strh r7, [r4, 0x3A] - mov r0, r8 - strh r0, [r4, 0x3C] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - add r0, r10 - ldr r1, _080AD32C @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] -_080AD2FA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x6 - bls _080AD278 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AD314: .4byte gUnknown_83E5E44 -_080AD318: .4byte gUnknown_83E5E2C -_080AD31C: .4byte gSprites -_080AD320: .4byte 0x000003ff -_080AD324: .4byte 0xfffffc00 -_080AD328: .4byte gUnknown_83E5E46 -_080AD32C: .4byte gTasks+0x8 - thumb_func_end sub_80AD1F8 - - thumb_func_start sub_80AD330 -sub_80AD330: @ 80AD330 - push {r4,lr} - adds r4, r0, 0 - bl sub_80AD3E4 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080AD36A - ldr r3, _080AD370 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080AD36A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AD370: .4byte gTasks - thumb_func_end sub_80AD330 - - thumb_func_start sub_80AD374 -sub_80AD374: @ 80AD374 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AD3AC @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x26] - ldrh r0, [r1, 0x22] - adds r2, r0 - adds r1, 0x29 - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080AD3B0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AD3B4 - lsls r0, r4, 16 - movs r1, 0x94 - lsls r1, 15 - b _080AD3BA - .align 2, 0 -_080AD3AC: .4byte gSprites -_080AD3B0: .4byte gUnknown_2037F1A -_080AD3B4: - lsls r0, r4, 16 - movs r1, 0xB0 - lsls r1, 14 -_080AD3BA: - adds r0, r1 - lsrs r4, r0, 16 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80AD374 - - thumb_func_start sub_80AD3C8 -sub_80AD3C8: @ 80AD3C8 - movs r3, 0 - strh r3, [r0, 0x2E] - strh r3, [r0, 0x30] - ldrh r3, [r0, 0x20] - lsls r3, 3 - strh r3, [r0, 0x32] - ldrh r3, [r0, 0x22] - lsls r3, 3 - strh r3, [r0, 0x34] - lsls r1, 3 - strh r1, [r0, 0x36] - lsls r2, 3 - strh r2, [r0, 0x38] - bx lr - thumb_func_end sub_80AD3C8 - - thumb_func_start sub_80AD3E4 -sub_80AD3E4: @ 80AD3E4 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080AD40E - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x30] - adds r1, r0, 0 - muls r1, r0 - adds r0, r1, 0 - ldrh r3, [r2, 0x34] - adds r0, r3 - strh r0, [r2, 0x34] -_080AD40E: - ldrh r0, [r2, 0x36] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 19 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x34] - adds r1, r3 - strh r1, [r2, 0x34] - lsls r1, 16 - asrs r3, r1, 19 - strh r3, [r2, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080AD444 - adds r1, r3, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080AD444 - cmp r1, 0x78 - ble _080AD450 -_080AD444: - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080AD450: - pop {r0} - bx r0 - thumb_func_end sub_80AD3E4 - - thumb_func_start sub_80AD454 -sub_80AD454: @ 80AD454 - push {r4,r5,lr} - ldr r3, _080AD498 @ =gUnknown_2037F02 - ldrh r1, [r3] - movs r2, 0 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x2] - strh r1, [r0, 0x22] - strh r2, [r0, 0x2E] - strh r2, [r0, 0x30] - strh r2, [r0, 0x32] - ldrh r1, [r3, 0x4] - strh r1, [r0, 0x3A] - ldrh r1, [r3, 0x6] - strh r1, [r0, 0x3C] - ldrh r4, [r0, 0x4] - lsls r2, r4, 22 - lsrs r2, 22 - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r1, 4 - adds r2, r1 - ldr r3, _080AD49C @ =0x000003ff - adds r1, r3, 0 - ands r2, r1 - ldr r1, _080AD4A0 @ =0xfffffc00 - ands r1, r4 - orrs r1, r2 - strh r1, [r0, 0x4] - ldr r1, _080AD4A4 @ =sub_80AD4A8 - str r1, [r0, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AD498: .4byte gUnknown_2037F02 -_080AD49C: .4byte 0x000003ff -_080AD4A0: .4byte 0xfffffc00 -_080AD4A4: .4byte sub_80AD4A8 - thumb_func_end sub_80AD454 - - thumb_func_start sub_80AD4A8 -sub_80AD4A8: @ 80AD4A8 - push {r4,lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _080AD4DA - cmp r0, 0x1 - bgt _080AD4BE - cmp r0, 0 - beq _080AD4C4 - b _080AD538 -_080AD4BE: - cmp r0, 0x2 - beq _080AD4F8 - b _080AD538 -_080AD4C4: - ldrh r1, [r2, 0x3A] - movs r3, 0x3A - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080AD4D4 - subs r0, r1, 0x1 - strh r0, [r2, 0x3A] - b _080AD538 -_080AD4D4: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] -_080AD4DA: - ldrh r0, [r2, 0x22] - adds r0, 0x8 - strh r0, [r2, 0x22] - lsls r0, 16 - asrs r0, 16 - ldrh r3, [r2, 0x3C] - movs r4, 0x3C - ldrsh r1, [r2, r4] - cmp r0, r1 - blt _080AD538 - strh r3, [r2, 0x22] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - b _080AD538 -_080AD4F8: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AD524 - movs r0, 0 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - strh r0, [r2, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD520 - ldr r0, _080AD51C @ =0x0000fffd - b _080AD522 - .align 2, 0 -_080AD51C: .4byte 0x0000fffd -_080AD520: - movs r0, 0x3 -_080AD522: - strh r0, [r2, 0x26] -_080AD524: - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080AD538 - adds r0, r2, 0 - bl DestroyAnimSprite -_080AD538: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AD4A8 - - thumb_func_start sub_80AD540 -sub_80AD540: @ 80AD540 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080AD5B4 - cmp r0, 0x1 - bgt _080AD556 - cmp r0, 0 - beq _080AD55C - b _080AD682 -_080AD556: - cmp r0, 0x2 - beq _080AD612 - b _080AD682 -_080AD55C: - adds r0, r5, 0 - movs r1, 0 - bl sub_8075160 - ldr r4, _080AD584 @ =gUnknown_2037F02 - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x3C] - ldr r0, _080AD588 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AD58C - movs r0, 0x4 - b _080AD58E - .align 2, 0 -_080AD584: .4byte gUnknown_2037F02 -_080AD588: .4byte gUnknown_2037F1A -_080AD58C: - ldr r0, _080AD5AC @ =0x0000fffc -_080AD58E: - strh r0, [r5, 0x36] - ldr r0, _080AD5B0 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080AD60A - .align 2, 0 -_080AD5AC: .4byte 0x0000fffc -_080AD5B0: .4byte gUnknown_2037F1B -_080AD5B4: - ldrh r0, [r5, 0x30] - adds r0, 0xC0 - strh r0, [r5, 0x30] - ldr r0, _080AD5D4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AD5D8 - ldrh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - b _080AD5DE - .align 2, 0 -_080AD5D4: .4byte gUnknown_2037F1A -_080AD5D8: - ldrh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 24 -_080AD5DE: - strh r0, [r5, 0x26] - movs r2, 0x32 - ldrsh r0, [r5, r2] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080AD682 - movs r0, 0 - strh r0, [r5, 0x34] -_080AD60A: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080AD682 -_080AD612: - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - adds r2, r0, 0 - movs r3, 0 - strh r2, [r5, 0x24] - ldrh r0, [r5, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080AD682 - ldrh r0, [r5, 0x20] - adds r1, r2, r0 - strh r1, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r3, [r5, 0x26] - strh r3, [r5, 0x24] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - ldr r4, _080AD688 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8075678 - ldr r0, _080AD68C @ =sub_80AD690 - str r0, [r5, 0x1C] -_080AD682: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AD688: .4byte gUnknown_2037F1B -_080AD68C: .4byte sub_80AD690 - thumb_func_end sub_80AD540 - - thumb_func_start sub_80AD690 -sub_80AD690: @ 80AD690 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080AD6E8 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x10 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080AD6C6 - cmp r2, 0xC4 - ble _080AD6EE -_080AD6C6: - lsls r0, 16 - cmp r0, 0 - ble _080AD6EE - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AD6EE - ldr r0, _080AD6E4 @ =gUnknown_2037F24 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x89 - bl PlaySE12WithPanning - b _080AD6EE - .align 2, 0 -_080AD6E4: .4byte gUnknown_2037F24 -_080AD6E8: - adds r0, r4, 0 - bl DestroyAnimSprite -_080AD6EE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AD690 - - thumb_func_start sub_80AD6F4 -sub_80AD6F4: @ 80AD6F4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080AD70C - ldr r0, _080AD778 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r4, 0x30] - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] -_080AD70C: - movs r0, 0xC0 - lsls r0, 1 - adds r1, r0, 0 - ldrh r2, [r4, 0x34] - adds r1, r2 - strh r1, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0xA0 - strh r0, [r4, 0x36] - movs r2, 0x30 - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x36] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x7 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AD7A8 - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x83 - bls _080AD780 - ldr r0, _080AD77C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080AD7C4 - .align 2, 0 -_080AD778: .4byte gUnknown_2037F02 -_080AD77C: .4byte gUnknown_2037F1B -_080AD780: - ldr r0, _080AD7A4 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080AD7C4 - .align 2, 0 -_080AD7A4: .4byte gUnknown_2037F1B -_080AD7A8: - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x83 - bls _080AD7BC - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D - b _080AD7C2 -_080AD7BC: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F -_080AD7C2: - strb r0, [r1] -_080AD7C4: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080AD7EC - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080AD7EC: - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x1E - bne _080AD7FA - adds r0, r4, 0 - bl DestroyAnimSprite -_080AD7FA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AD6F4 - - thumb_func_start sub_80AD800 -sub_80AD800: @ 80AD800 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080AD860 @ =gTasks - adds r4, r1, r0 - ldr r0, _080AD864 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080AD826 - movs r1, 0x1 -_080AD826: - strh r1, [r4, 0x20] - ldr r0, _080AD868 @ =gUnknown_2037F1B - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - movs r0, 0x3 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080AD86C @ =sub_80AD870 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AD860: .4byte gTasks -_080AD864: .4byte gUnknown_2037F1A -_080AD868: .4byte gUnknown_2037F1B -_080AD86C: .4byte sub_80AD870 - thumb_func_end sub_80AD800 - - thumb_func_start sub_80AD870 -sub_80AD870: @ 80AD870 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080AD894 @ =gTasks - adds r2, r0, r1 - movs r0, 0x8 - ldrsh r3, [r2, r0] - cmp r3, 0x1 - beq _080AD938 - cmp r3, 0x1 - bgt _080AD898 - cmp r3, 0 - beq _080AD8A6 - b _080ADA98 - .align 2, 0 -_080AD894: .4byte gTasks -_080AD898: - cmp r3, 0x2 - bne _080AD89E - b _080AD9C0 -_080AD89E: - cmp r3, 0x3 - bne _080AD8A4 - b _080ADA54 -_080AD8A4: - b _080ADA98 -_080AD8A6: - movs r1, 0x20 - ldrsh r0, [r2, r1] - lsls r0, 1 - ldrh r5, [r2, 0x1C] - adds r0, r5 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AD8D8 - strh r3, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD8D4 - movs r0, 0x2 - b _080AD8D6 -_080AD8D4: - ldr r0, _080AD930 @ =0x0000fffe -_080AD8D6: - strh r0, [r2, 0x1E] -_080AD8D8: - movs r1, 0 - strh r1, [r2, 0xE] - movs r7, 0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080AD91A - ldr r4, _080AD934 @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080AD8EA: - movs r1, 0xE - ldrsh r0, [r2, r1] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r7, [r2, 0x1C] - adds r0, r7 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _080AD8EA -_080AD91A: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - beq _080AD92A - b _080ADA98 -_080AD92A: - movs r0, 0 - strh r0, [r2, 0x1A] - b _080ADA44 - .align 2, 0 -_080AD930: .4byte 0x0000fffe -_080AD934: .4byte gSprites -_080AD938: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080AD960 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - ands r0, r3 - lsls r0, 16 - cmp r0, 0 - beq _080AD95C - movs r0, 0x2 - b _080AD95E -_080AD95C: - ldr r0, _080AD9B8 @ =0x0000fffe -_080AD95E: - strh r0, [r2, 0x1E] -_080AD960: - movs r1, 0 - strh r1, [r2, 0xE] - movs r7, 0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080AD9A2 - ldr r4, _080AD9BC @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080AD972: - movs r1, 0xE - ldrsh r0, [r2, r1] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r7, [r2, 0x1C] - adds r0, r7 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _080AD972 -_080AD9A2: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x60 - bne _080ADA98 - movs r0, 0 - strh r0, [r2, 0x1A] - b _080ADA44 - .align 2, 0 -_080AD9B8: .4byte 0x0000fffe -_080AD9BC: .4byte gSprites -_080AD9C0: - movs r7, 0x20 - ldrsh r1, [r2, r7] - lsls r1, 1 - ldrh r0, [r2, 0x1C] - subs r0, r1 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AD9F4 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD9F0 - strh r3, [r2, 0x1E] - b _080AD9F4 -_080AD9F0: - ldr r0, _080ADA4C @ =0x0000fffe - strh r0, [r2, 0x1E] -_080AD9F4: - movs r1, 0 - strh r1, [r2, 0xE] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080ADA36 - ldr r4, _080ADA50 @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080ADA06: - movs r5, 0xE - ldrsh r0, [r2, r5] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r7, 0 - ldrsh r0, [r0, r7] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r5, [r2, 0x1C] - adds r0, r5 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r7, 0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _080ADA06 -_080ADA36: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080ADA98 -_080ADA44: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080ADA98 - .align 2, 0 -_080ADA4C: .4byte 0x0000fffe -_080ADA50: .4byte gSprites -_080ADA54: - movs r1, 0 - strh r1, [r2, 0xE] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080ADA92 - ldr r6, _080ADAA0 @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 - movs r5, 0 -_080ADA68: - movs r7, 0xE - ldrsh r0, [r2, r7] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r5, [r0, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r7, 0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _080ADA68 -_080ADA92: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080ADA98: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ADAA0: .4byte gSprites - thumb_func_end sub_80AD870 - - thumb_func_start sub_80ADAA4 -sub_80ADAA4: @ 80ADAA4 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - ldr r1, _080ADAD4 @ =gUnknown_2037F02 - ldrb r2, [r1] - ldrh r3, [r1, 0x2] - movs r1, 0x10 - bl BlendPalette - adds r0, r4, 0 - bl DestroyAnimVisualTask - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADAD4: .4byte gUnknown_2037F02 - thumb_func_end sub_80ADAA4 - - thumb_func_start sub_80ADAD8 -sub_80ADAD8: @ 80ADAD8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080ADB30 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - mov r9, r1 - ldr r4, _080ADB34 @ =gUnknown_2037F02 - mov r8, r4 - cmp r0, 0 - bne _080ADB0E - ldrh r0, [r4] - strh r0, [r2, 0xA] - ldrh r0, [r4, 0x2] - strh r0, [r2, 0xC] - ldrh r0, [r4, 0x4] - strh r0, [r2, 0xE] - ldrh r0, [r4, 0x6] - strh r0, [r2, 0x10] -_080ADB0E: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - ldr r1, _080ADB38 @ =gUnknown_2023D44 - ldr r0, _080ADB3C @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r0, r1 - ldrb r6, [r0] - movs r5, 0x10 - ldrsh r0, [r2, r5] - cmp r0, 0 - bne _080ADB44 - ldr r4, _080ADB40 @ =gUnknown_83E5EFC - movs r1, 0x8 - ldrsh r0, [r2, r1] - b _080ADB4A - .align 2, 0 -_080ADB30: .4byte gTasks -_080ADB34: .4byte gUnknown_2037F02 -_080ADB38: .4byte gUnknown_2023D44 -_080ADB3C: .4byte gUnknown_2037F1B -_080ADB40: .4byte gUnknown_83E5EFC -_080ADB44: - ldr r4, _080ADB90 @ =gUnknown_83E5F0C - movs r3, 0x8 - ldrsh r0, [r2, r3] -_080ADB4A: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - adds r0, r4 - ldrb r5, [r0] - lsls r0, r7, 2 - adds r1, r0, r7 - lsls r1, 3 - add r1, r9 - movs r4, 0xE - ldrsh r1, [r1, r4] - mov r12, r0 - cmp r1, 0x1 - bne _080ADB98 - ldr r2, _080ADB94 @ =gSprites - lsls r3, r6, 4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - mov r10, r0 - mov r0, r8 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r5, 24 - asrs r0, 24 - muls r0, r1 - cmp r0, 0 - bge _080ADB88 - negs r0, r0 -_080ADB88: - mov r5, r10 - strh r0, [r5, 0x26] - b _080ADBB2 - .align 2, 0 -_080ADB90: .4byte gUnknown_83E5F0C -_080ADB94: .4byte gSprites -_080ADB98: - ldr r3, _080ADBE8 @ =gSprites - lsls r4, r6, 4 - adds r2, r4, r6 - lsls r2, 2 - adds r2, r3 - lsls r0, r5, 24 - asrs r0, 24 - mov r5, r8 - ldrh r1, [r5, 0x2] - muls r0, r1 - strh r0, [r2, 0x24] - adds r2, r3, 0 - adds r3, r4, 0 -_080ADBB2: - mov r1, r12 - adds r0, r1, r7 - lsls r0, 3 - add r0, r9 - movs r4, 0x8 - ldrsh r1, [r0, r4] - movs r5, 0xA - ldrsh r0, [r0, r5] - cmp r1, r0 - bne _080ADBD8 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x24] - strh r1, [r0, 0x26] - adds r0, r7, 0 - bl DestroyAnimVisualTask -_080ADBD8: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ADBE8: .4byte gSprites - thumb_func_end sub_80ADAD8 - - thumb_func_start sub_80ADBEC -sub_80ADBEC: @ 80ADBEC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080ADC0C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080ADC14 - ldr r0, _080ADC10 @ =gUnknown_2037F02 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080ADC20 - .align 2, 0 -_080ADC0C: .4byte gUnknown_2037F1A -_080ADC10: .4byte gUnknown_2037F02 -_080ADC14: - ldr r1, _080ADC34 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_080ADC20: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080ADC38 @ =sub_80ADC3C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADC34: .4byte gUnknown_2037F02 -_080ADC38: .4byte sub_80ADC3C - thumb_func_end sub_80ADBEC - - thumb_func_start sub_80ADC3C -sub_80ADC3C: @ 80ADC3C - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080ADC52 - adds r0, r2, 0 - bl DestroyAnimSprite -_080ADC52: - pop {r0} - bx r0 - thumb_func_end sub_80ADC3C - - thumb_func_start sub_80ADC58 -sub_80ADC58: @ 80ADC58 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080ADC78 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080ADC80 - ldr r0, _080ADC7C @ =gUnknown_2037F02 - ldrh r1, [r4, 0x20] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r4, 0x20] - b _080ADC8A - .align 2, 0 -_080ADC78: .4byte gUnknown_2037F1A -_080ADC7C: .4byte gUnknown_2037F02 -_080ADC80: - ldr r0, _080ADC94 @ =gUnknown_2037F02 - ldrh r0, [r0] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] -_080ADC8A: - ldr r0, _080ADC98 @ =sub_80ADC9C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADC94: .4byte gUnknown_2037F02 -_080ADC98: .4byte sub_80ADC9C - thumb_func_end sub_80ADC58 - - thumb_func_start sub_80ADC9C -sub_80ADC9C: @ 80ADC9C - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080ADCB2 - adds r0, r2, 0 - bl move_anim_8074EE0 -_080ADCB2: - pop {r0} - bx r0 - thumb_func_end sub_80ADC9C - - thumb_func_start sub_80ADCB8 -sub_80ADCB8: @ 80ADCB8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080ADCFC @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080ADD00 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080ADD08 - ldr r2, _080ADD04 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r5, 0x22] - b _080ADD1C - .align 2, 0 -_080ADCFC: .4byte gUnknown_2037F1B -_080ADD00: .4byte gUnknown_2037F1A -_080ADD04: .4byte gUnknown_2037F02 -_080ADD08: - ldr r0, _080ADD40 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x20] - ldrh r1, [r0, 0x2] - ldrh r2, [r5, 0x22] - adds r1, r2 - strh r1, [r5, 0x22] - adds r2, r0, 0 -_080ADD1C: - movs r0, 0 - strh r0, [r5, 0x2E] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x30] - ldrh r0, [r2, 0x6] - strh r0, [r5, 0x32] - ldrh r0, [r2, 0x8] - strh r0, [r5, 0x34] - ldr r1, _080ADD44 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080ADD48 @ =sub_8074A80 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ADD40: .4byte gUnknown_2037F02 -_080ADD44: .4byte move_anim_8074EE0 -_080ADD48: .4byte sub_8074A80 - thumb_func_end sub_80ADCB8 - - thumb_func_start sub_80ADD4C -sub_80ADD4C: @ 80ADD4C - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080ADD64 @ =gUnknown_2037F02 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080ADDC4 - cmp r0, 0x1 - bgt _080ADD68 - cmp r0, 0 - beq _080ADD72 - b _080ADDC4 - .align 2, 0 -_080ADD64: .4byte gUnknown_2037F02 -_080ADD68: - cmp r0, 0x2 - beq _080ADD7C - cmp r0, 0x3 - beq _080ADDA0 - b _080ADDC4 -_080ADD72: - ldr r0, _080ADD78 @ =gUnknown_2037F1A - b _080ADDC6 - .align 2, 0 -_080ADD78: .4byte gUnknown_2037F1A -_080ADD7C: - ldr r4, _080ADD94 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r6, 0x2 - eors r0, r6 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - bne _080ADD98 - ldrb r4, [r4] - b _080ADDC8 - .align 2, 0 -_080ADD94: .4byte gUnknown_2037F1A -_080ADD98: - ldrb r0, [r4] - adds r4, r6, 0 - eors r4, r0 - b _080ADDC8 -_080ADDA0: - ldr r0, _080ADDBC @ =gUnknown_2037F1A - ldrb r0, [r0] - movs r4, 0x2 - eors r0, r4 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080ADDC4 - ldr r0, _080ADDC0 @ =gUnknown_2037F1B - ldrb r0, [r0] - eors r4, r0 - b _080ADDC8 - .align 2, 0 -_080ADDBC: .4byte gUnknown_2037F1A -_080ADDC0: .4byte gUnknown_2037F1B -_080ADDC4: - ldr r0, _080ADDE8 @ =gUnknown_2037F1B -_080ADDC6: - ldrb r4, [r0] -_080ADDC8: - ldr r0, _080ADDEC @ =gUnknown_2037F02 - movs r2, 0xA - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080ADDF0 - adds r0, r4, 0 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r4, 0 - movs r1, 0x1 - b _080ADE02 - .align 2, 0 -_080ADDE8: .4byte gUnknown_2037F1B -_080ADDEC: .4byte gUnknown_2037F02 -_080ADDF0: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r4, 0 - movs r1, 0x3 -_080ADE02: - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r7, _080ADEA0 @ =gUnknown_825E074 - ldr r6, _080ADEA4 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - lsls r0, 1 - adds r0, r7 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x2 - ldrsh r0, [r6, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x24] - movs r1, 0 - ldrsh r0, [r6, r1] - adds r0, 0x40 - lsls r0, 1 - adds r0, r7 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x2 - ldrsh r0, [r6, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x26] - ldrh r1, [r6, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ADE66 - adds r0, r4, 0 - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r5, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] -_080ADE66: - ldrb r2, [r5, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - ldr r3, _080ADEA8 @ =gOamMatrices - lsls r2, 3 - adds r2, r3 - adds r1, 0x40 - lsls r1, 1 - adds r1, r7 - ldrh r1, [r1] - strh r1, [r2, 0x6] - strh r1, [r2] - strh r0, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x2E] - ldr r0, _080ADEAC @ =sub_80B1D3C - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ADEA0: .4byte gUnknown_825E074 -_080ADEA4: .4byte gUnknown_2037F02 -_080ADEA8: .4byte gOamMatrices -_080ADEAC: .4byte sub_80B1D3C - thumb_func_end sub_80ADD4C - - thumb_func_start sub_80ADEB0 -sub_80ADEB0: @ 80ADEB0 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r5, _080ADF24 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r6, _080ADF28 @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x38] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x3A] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x3C] - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0xC - ldrsh r0, [r5, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080ADF2C @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080ADF30 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r1, _080ADF34 @ =sub_80ADF38 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ADF24: .4byte gUnknown_2037F02 -_080ADF28: .4byte gUnknown_2037F1B -_080ADF2C: .4byte 0x000003ff -_080ADF30: .4byte 0xfffffc00 -_080ADF34: .4byte sub_80ADF38 - thumb_func_end sub_80ADEB0 - - thumb_func_start sub_80ADF38 -sub_80ADF38: @ 80ADF38 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080ADFA2 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080ADFA8 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080ADFA8 -_080ADFA2: - adds r0, r4, 0 - bl DestroyAnimSprite -_080ADFA8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ADF38 - - thumb_func_start sub_80ADFB0 -sub_80ADFB0: @ 80ADFB0 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x38] - subs r0, 0x1 - strh r0, [r3, 0x38] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080ADFE8 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x36] - strh r0, [r3, 0x38] -_080ADFE8: - ldrh r0, [r3, 0x34] - subs r1, r0, 0x1 - strh r1, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bgt _080ADFFA - adds r0, r3, 0 - bl DestroyAnimSprite -_080ADFFA: - pop {r0} - bx r0 - thumb_func_end sub_80ADFB0 - - thumb_func_start sub_80AE000 -sub_80AE000: @ 80AE000 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AE01C - ldr r0, _080AE060 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AE024 -_080AE01C: - ldr r1, _080AE064 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080AE024: - ldr r5, _080AE060 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080AE064 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4] - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x6] - strh r0, [r6, 0x36] - strh r0, [r6, 0x38] - ldr r0, _080AE068 @ =sub_80ADFB0 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AE060: .4byte gUnknown_2037F1B -_080AE064: .4byte gUnknown_2037F02 -_080AE068: .4byte sub_80ADFB0 - thumb_func_end sub_80AE000 - - thumb_func_start sub_80AE06C -sub_80AE06C: @ 80AE06C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r1, _080AE088 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x2E] - movs r2, 0xE - ldrsh r0, [r1, r2] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080AE090 - ldr r0, _080AE08C @ =gUnknown_2037F1B - b _080AE092 - .align 2, 0 -_080AE088: .4byte gUnknown_2037F02 -_080AE08C: .4byte gUnknown_2037F1B -_080AE090: - ldr r0, _080AE118 @ =gUnknown_2037F1A -_080AE092: - ldrb r6, [r0] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AE0AA - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AE0B2 -_080AE0AA: - ldr r1, _080AE11C @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080AE0B2: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080AE11C @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r3, [r4] - adds r0, r3 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r1, [r4, 0xE] - ldr r0, _080AE120 @ =0x00007fff - ands r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x38] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0x3A] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x3C] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080AE124 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080AE128 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r1, _080AE12C @ =sub_80AE130 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AE118: .4byte gUnknown_2037F1A -_080AE11C: .4byte gUnknown_2037F02 -_080AE120: .4byte 0x00007fff -_080AE124: .4byte 0x000003ff -_080AE128: .4byte 0xfffffc00 -_080AE12C: .4byte sub_80AE130 - thumb_func_end sub_80AE06C - - thumb_func_start sub_80AE130 -sub_80AE130: @ 80AE130 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _080AE186 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080AE186: - ldrh r0, [r4, 0x2E] - subs r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080AE198 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AE198: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AE130 - - thumb_func_start sub_80AE1A0 -sub_80AE1A0: @ 80AE1A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075114 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldr r3, _080AE1DC @ =gUnknown_2037F02 - movs r5, 0x6 - ldrsh r0, [r3, r5] - lsls r0, 2 - adds r1, r0 - ldr r5, _080AE1E0 @ =0x000003ff - adds r0, r5, 0 - ands r1, r0 - ldr r0, _080AE1E4 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - movs r1, 0x6 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - bne _080AE1E8 - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - b _080AE1F6 - .align 2, 0 -_080AE1DC: .4byte gUnknown_2037F02 -_080AE1E0: .4byte 0x000003ff -_080AE1E4: .4byte 0xfffffc00 -_080AE1E8: - cmp r0, 0x2 - bne _080AE1FA - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x20 -_080AE1F6: - orrs r1, r0 - strb r1, [r4, 0x3] -_080AE1FA: - ldr r0, _080AE214 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080AE218 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080AE21C @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE214: .4byte gUnknown_2037F02 -_080AE218: .4byte sub_8074C44 -_080AE21C: .4byte DestroyAnimSprite - thumb_func_end sub_80AE1A0 - - thumb_func_start sub_80AE220 -sub_80AE220: @ 80AE220 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _080AE268 @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0 - bl sub_8074480 - ldr r1, _080AE26C @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - ldr r5, _080AE270 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r4, 0x8] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldr r0, _080AE274 @ =sub_80AE278 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AE268: .4byte gUnknown_2037F1B -_080AE26C: .4byte gTasks -_080AE270: .4byte gUnknown_2037F02 -_080AE274: .4byte sub_80AE278 - thumb_func_end sub_80AE220 - - thumb_func_start sub_80AE278 -sub_80AE278: @ 80AE278 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r5, 0 - movs r7, 0 - ldr r1, _080AE2B8 @ =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldrb r2, [r0, 0xC] - str r2, [sp] - ldrh r4, [r0, 0x8] - ldrh r6, [r0, 0xA] - movs r3, 0xC - ldrsh r0, [r0, r3] - mov r10, r1 - cmp r0, 0 - bne _080AE2BC - movs r0, 0 - mov r8, r0 - movs r2, 0x1 - movs r1, 0x10 - mov r12, r1 - b _080AE2C6 - .align 2, 0 -_080AE2B8: .4byte gTasks -_080AE2BC: - movs r2, 0x10 - mov r12, r2 - movs r3, 0x8 - mov r8, r3 - movs r2, 0x4 -_080AE2C6: - mov r0, r9 - lsls r1, r0, 2 - adds r0, r1, r0 - lsls r0, 3 - add r0, r10 - movs r3, 0x1C - ldrsh r0, [r0, r3] - mov r10, r1 - cmp r0, 0xA - bhi _080AE3BC - lsls r0, 2 - ldr r1, _080AE2E4 @ =_080AE2E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AE2E4: .4byte _080AE2E8 - .align 2, 0 -_080AE2E8: - .4byte _080AE314 - .4byte _080AE3BC - .4byte _080AE328 - .4byte _080AE3BC - .4byte _080AE348 - .4byte _080AE3BC - .4byte _080AE35E - .4byte _080AE3BC - .4byte _080AE380 - .4byte _080AE3BC - .4byte _080AE3B4 -_080AE314: - ldr r0, _080AE324 @ =gUnknown_83E60A0 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - mov r4, r12 - lsls r3, r4, 16 - b _080AE396 - .align 2, 0 -_080AE324: .4byte gUnknown_83E60A0 -_080AE328: - mov r0, r12 - lsls r3, r0, 17 - mov r1, r8 - adds r0, r1, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _080AE344 @ =gUnknown_83E60A0 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - b _080AE396 - .align 2, 0 -_080AE344: .4byte gUnknown_83E60A0 -_080AE348: - mov r3, r12 - lsls r0, r3, 16 - asrs r0, 16 - lsls r3, r0, 1 - adds r3, r0 - lsls r0, r2, 1 - add r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - b _080AE38A -_080AE35E: - mov r0, r12 - lsls r3, r0, 18 - lsls r0, r2, 1 - adds r0, r2 - add r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _080AE37C @ =gUnknown_83E60A0 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - b _080AE396 - .align 2, 0 -_080AE37C: .4byte gUnknown_83E60A0 -_080AE380: - mov r1, r12 - lsls r0, r1, 16 - asrs r0, 16 - lsls r3, r0, 2 - adds r3, r0 -_080AE38A: - ldr r0, _080AE3B0 @ =gUnknown_83E60A0 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - lsls r3, 16 -_080AE396: - asrs r3, 16 - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - b _080AE3BC - .align 2, 0 -_080AE3B0: .4byte gUnknown_83E60A0 -_080AE3B4: - mov r0, r9 - bl DestroyAnimVisualTask - b _080AE400 -_080AE3BC: - cmp r7, 0 - beq _080AE3F0 - ldr r4, _080AE410 @ =gSprites - lsls r3, r5, 4 - adds r3, r5 - lsls r3, 2 - adds r0, r3, r4 - ldrh r5, [r0, 0x4] - lsls r2, r5, 22 - lsrs r2, 22 - add r2, r8 - ldr r6, _080AE414 @ =0x000003ff - adds r1, r6, 0 - ands r2, r1 - ldr r1, _080AE418 @ =0xfffffc00 - ands r1, r5 - orrs r1, r2 - strh r1, [r0, 0x4] - mov r1, sp - ldrh r1, [r1] - strh r1, [r0, 0x2E] - adds r4, 0x1C - adds r3, r4 - ldr r1, [r3] - bl _call_via_r1 -_080AE3F0: - ldr r0, _080AE41C @ =gTasks - mov r1, r10 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] -_080AE400: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE410: .4byte gSprites -_080AE414: .4byte 0x000003ff -_080AE418: .4byte 0xfffffc00 -_080AE41C: .4byte gTasks - thumb_func_end sub_80AE278 - - thumb_func_start sub_80AE420 -sub_80AE420: @ 80AE420 - push {lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080AE442 - ldrb r1, [r3, 0x1] - movs r2, 0x3F - adds r0, r2, 0 - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3, 0x1] - ldrb r0, [r3, 0x3] - ands r2, r0 - strb r2, [r3, 0x3] - b _080AE456 -_080AE442: - ldrb r2, [r3, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0x1] - ldrb r0, [r3, 0x3] - ands r1, r0 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r3, 0x3] -_080AE456: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bne _080AE46A - adds r0, r3, 0 - bl DestroySprite -_080AE46A: - pop {r0} - bx r0 - thumb_func_end sub_80AE420 - - thumb_func_start sub_80AE470 -sub_80AE470: @ 80AE470 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080AE4D8 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - ldr r0, _080AE4DC @ =gUnknown_83E60B8 - adds r1, 0x20 - lsls r1, 16 - asrs r1, 16 - movs r7, 0x22 - ldrsh r2, [r4, r7] - adds r3, r4, 0 - adds r3, 0x43 - ldrb r3, [r3] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080AE4E0 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r6, r2, r3 - ldrh r5, [r6, 0x4] - lsls r1, r5, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r7, _080AE4E4 @ =0x000003ff - adds r0, r7, 0 - ands r1, r0 - ldr r0, _080AE4E8 @ =0xfffffc00 - ands r0, r5 - orrs r0, r1 - strh r0, [r6, 0x4] - ldr r1, _080AE4EC @ =gUnknown_2037EE2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r3, 0x1C - adds r2, r3 - ldr r0, _080AE4F0 @ =sub_80AE4F4 - str r0, [r2] - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE4D8: .4byte gUnknown_2037F02 -_080AE4DC: .4byte gUnknown_83E60B8 -_080AE4E0: .4byte gSprites -_080AE4E4: .4byte 0x000003ff -_080AE4E8: .4byte 0xfffffc00 -_080AE4EC: .4byte gUnknown_2037EE2 -_080AE4F0: .4byte sub_80AE4F4 - thumb_func_end sub_80AE470 - - thumb_func_start sub_80AE4F4 -sub_80AE4F4: @ 80AE4F4 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080AE528 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080AE528: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080AE53C - adds r0, r3, 0 - bl DestroyAnimSprite -_080AE53C: - pop {r0} - bx r0 - thumb_func_end sub_80AE4F4 - - thumb_func_start sub_80AE540 -sub_80AE540: @ 80AE540 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080AE560 @ =gTasks - adds r5, r1, r0 - ldr r0, _080AE564 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AE56C - ldr r4, _080AE568 @ =gUnknown_2037F1A - b _080AE56E - .align 2, 0 -_080AE560: .4byte gTasks -_080AE564: .4byte gUnknown_2037F02 -_080AE568: .4byte gUnknown_2037F1A -_080AE56C: - ldr r4, _080AE5B0 @ =gUnknown_2037F1B -_080AE56E: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x26] - ldr r2, _080AE5B4 @ =gUnknown_2037F02 - ldrh r0, [r2, 0x2] - movs r1, 0 - strh r0, [r5, 0x14] - strh r1, [r5, 0x16] - strh r1, [r5, 0x18] - strh r1, [r5, 0x1A] - strh r1, [r5, 0x1C] - ldrh r0, [r2, 0x6] - strh r0, [r5, 0x1E] - strh r1, [r5, 0x20] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x22] - ldr r0, _080AE5B8 @ =sub_80AE5BC - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE5B0: .4byte gUnknown_2037F1B -_080AE5B4: .4byte gUnknown_2037F02 -_080AE5B8: .4byte sub_80AE5BC - thumb_func_end sub_80AE540 - - thumb_func_start sub_80AE5BC -sub_80AE5BC: @ 80AE5BC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r2, r6, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080AE6A4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080AE6BC - ldrh r0, [r5, 0x20] - adds r0, 0x1 - movs r7, 0 - strh r0, [r5, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x22 - ldrsh r1, [r5, r2] - cmp r0, r1 - ble _080AE6CA - strh r7, [r5, 0x20] - ldr r0, _080AE6A8 @ =gUnknown_83E6120 - movs r3, 0x24 - ldrsh r1, [r5, r3] - movs r3, 0x26 - ldrsh r2, [r5, r3] - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080AE6CA - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080AE6AC @ =gSprites - adds r4, r0 - ldr r1, _080AE6B0 @ =gUnknown_83E60D0 - movs r2, 0x1A - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - movs r3, 0 - ldrsb r3, [r0, r3] - ldrh r0, [r4, 0x20] - adds r3, r0 - strh r3, [r4, 0x20] - movs r2, 0x1A - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - ldrh r0, [r4, 0x22] - adds r2, r0 - strh r2, [r4, 0x22] - movs r1, 0x18 - ldrsh r0, [r5, r1] - lsls r1, r0, 2 - adds r1, r0 - movs r0, 0x28 - subs r0, r1 - strh r0, [r4, 0x2E] - strh r3, [r4, 0x30] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - ldrh r0, [r5, 0x26] - strh r0, [r4, 0x36] - strh r6, [r4, 0x38] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080AE6B4 @ =sub_80AE704 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080AE6B8 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldrh r0, [r5, 0x1A] - adds r0, 0x1 - strh r0, [r5, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080AE674 - strh r7, [r5, 0x1A] -_080AE674: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1E - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _080AE696 - strh r7, [r5, 0x1C] - ldrh r1, [r5, 0x18] - movs r3, 0x18 - ldrsh r0, [r5, r3] - cmp r0, 0x5 - bgt _080AE696 - adds r0, r1, 0x1 - strh r0, [r5, 0x18] -_080AE696: - ldrh r0, [r5, 0x16] - adds r0, 0x1 - strh r0, [r5, 0x16] - ldrh r0, [r5, 0x14] - subs r0, 0x1 - strh r0, [r5, 0x14] - b _080AE6CA - .align 2, 0 -_080AE6A4: .4byte gTasks -_080AE6A8: .4byte gUnknown_83E6120 -_080AE6AC: .4byte gSprites -_080AE6B0: .4byte gUnknown_83E60D0 -_080AE6B4: .4byte sub_80AE704 -_080AE6B8: .4byte sub_8074F6C -_080AE6BC: - movs r1, 0x16 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AE6CA - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080AE6CA: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AE5BC - - thumb_func_start sub_80AE6D0 -sub_80AE6D0: @ 80AE6D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080AE6F8 - ldr r2, _080AE700 @ =gTasks - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x16] - subs r1, 0x1 - strh r1, [r0, 0x16] - adds r0, r4, 0 - bl DestroySprite -_080AE6F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AE700: .4byte gTasks - thumb_func_end sub_80AE6D0 - - thumb_func_start sub_80AE704 -sub_80AE704: @ 80AE704 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _080AE718 @ =sub_80AE6D0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AE718: .4byte sub_80AE6D0 - thumb_func_end sub_80AE704 - - thumb_func_start sub_80AE71C -sub_80AE71C: @ 80AE71C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080AE730 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AE738 - ldr r4, _080AE734 @ =gUnknown_2037F1A - b _080AE73A - .align 2, 0 -_080AE730: .4byte gUnknown_2037F02 -_080AE734: .4byte gUnknown_2037F1A -_080AE738: - ldr r4, _080AE768 @ =gUnknown_2037F1B -_080AE73A: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080AE76C @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080AE770 @ =sub_8074F50 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE768: .4byte gUnknown_2037F1B -_080AE76C: .4byte move_anim_8074EE0 -_080AE770: .4byte sub_8074F50 - thumb_func_end sub_80AE71C - - thumb_func_start sub_80AE774 -sub_80AE774: @ 80AE774 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080AE788 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AE790 - ldr r4, _080AE78C @ =gUnknown_2037F1A - b _080AE792 - .align 2, 0 -_080AE788: .4byte gUnknown_2037F02 -_080AE78C: .4byte gUnknown_2037F1A -_080AE790: - ldr r4, _080AE7CC @ =gUnknown_2037F1B -_080AE792: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080AE7D0 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x24] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x26] - ldr r1, _080AE7D4 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080AE7D8 @ =sub_8074F6C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE7CC: .4byte gUnknown_2037F1B -_080AE7D0: .4byte gUnknown_2037F02 -_080AE7D4: .4byte DestroyAnimSprite -_080AE7D8: .4byte sub_8074F6C - thumb_func_end sub_80AE774 - - thumb_func_start sub_80AE7DC -sub_80AE7DC: @ 80AE7DC - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r4, _080AE834 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - movs r0, 0x10 - strh r0, [r5, 0x3C] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080AE82A - movs r1, 0x3C - ldrsh r0, [r5, r1] - negs r0, r0 - strh r0, [r5, 0x3C] -_080AE82A: - ldr r0, _080AE838 @ =sub_80AE83C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE834: .4byte gUnknown_2037F1A -_080AE838: .4byte sub_80AE83C - thumb_func_end sub_80AE7DC - - thumb_func_start sub_80AE83C -sub_80AE83C: @ 80AE83C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AE84E - cmp r0, 0x1 - beq _080AE864 - b _080AE894 -_080AE84E: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080AE894 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080AE894 -_080AE864: - ldrh r2, [r4, 0x3C] - ldrh r1, [r4, 0x20] - adds r0, r2, r1 - strh r0, [r4, 0x20] - ldr r3, _080AE89C @ =gSprites - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x24] - adds r2, r1 - strh r2, [r0, 0x24] - ldrh r0, [r4, 0x20] - adds r0, 0x50 - lsls r0, 16 - movs r1, 0xC8 - lsls r1, 17 - cmp r0, r1 - bls _080AE894 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080AE894: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AE89C: .4byte gSprites - thumb_func_end sub_80AE83C - - thumb_func_start sub_80AE8A0 -sub_80AE8A0: @ 80AE8A0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080AE8C4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080AE934 - cmp r0, 0x1 - bgt _080AE8C8 - cmp r0, 0 - beq _080AE8D4 - b _080AEA04 - .align 2, 0 -_080AE8C4: .4byte gTasks -_080AE8C8: - cmp r0, 0x2 - beq _080AE990 - cmp r0, 0x3 - bne _080AE8D2 - b _080AE9E4 -_080AE8D2: - b _080AEA04 -_080AE8D4: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0x26] - ldr r4, _080AE908 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AE910 - ldr r0, _080AE90C @ =0x0000ffe0 - strh r0, [r5, 0x24] - movs r0, 0x2 - b _080AE916 - .align 2, 0 -_080AE908: .4byte gUnknown_2037F1A -_080AE90C: .4byte 0x0000ffe0 -_080AE910: - movs r0, 0x20 - strh r0, [r5, 0x24] - ldr r0, _080AE92C @ =0x0000fffe -_080AE916: - strh r0, [r5, 0x22] - ldr r2, _080AE930 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r5, 0x24] - strh r1, [r0, 0x24] - b _080AE9D6 - .align 2, 0 -_080AE92C: .4byte 0x0000fffe -_080AE930: .4byte gSprites -_080AE934: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AEA04 - movs r0, 0 - strh r0, [r5, 0xA] - ldr r4, _080AE98C @ =gSprites - movs r1, 0x26 - ldrsh r0, [r5, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - adds r2, 0x3E - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrh r1, [r5, 0x24] - movs r2, 0x24 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080AE9D6 - ldrh r2, [r5, 0x22] - adds r2, r1, r2 - strh r2, [r5, 0x24] - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x24] - b _080AEA04 - .align 2, 0 -_080AE98C: .4byte gSprites -_080AE990: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AEA04 - movs r0, 0 - strh r0, [r5, 0xA] - ldr r1, _080AE9E0 @ =gSprites - movs r2, 0x26 - ldrsh r0, [r5, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - adds r2, 0x3E - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bne _080AEA04 -_080AE9D6: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080AEA04 - .align 2, 0 -_080AE9E0: .4byte gSprites -_080AE9E4: - ldr r2, _080AEA0C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r5, r0] - 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] - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080AEA04: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AEA0C: .4byte gSprites - thumb_func_end sub_80AE8A0 - - thumb_func_start sub_80AEA10 -sub_80AEA10: @ 80AEA10 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080AEA34 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080AEA2A - b _080AEB50 -_080AEA2A: - cmp r0, 0x1 - bgt _080AEA38 - cmp r0, 0 - beq _080AEA40 - b _080AEB92 - .align 2, 0 -_080AEA34: .4byte gTasks -_080AEA38: - cmp r0, 0x2 - bne _080AEA3E - b _080AEB84 -_080AEA3E: - b _080AEB92 -_080AEA40: - ldr r4, _080AEA80 @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080AEA56 - movs r1, 0x1 -_080AEA56: - movs r6, 0 - strh r1, [r5, 0xA] - ldr r0, _080AEA84 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r3, r0, 0 - cmp r2, 0 - beq _080AEA8C - cmp r2, 0x4 - beq _080AEAB4 - ldrh r1, [r3] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AEAEC - movs r0, 0x80 - lsls r0, 1 - strh r0, [r5, 0xE] - ldr r0, _080AEA88 @ =0x0000fff0 - b _080AEAF4 - .align 2, 0 -_080AEA80: .4byte gUnknown_2037F1A -_080AEA84: .4byte gUnknown_2037F02 -_080AEA88: .4byte 0x0000fff0 -_080AEA8C: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 7 - adds r0, 0x78 - strh r0, [r5, 0x10] - b _080AEB2A -_080AEAB4: - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r1, 7 - movs r0, 0x78 - subs r0, r1 - strh r0, [r5, 0xE] - ldr r4, _080AEAE8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xA - ldrsh r1, [r5, r2] - lsls r1, 5 - subs r0, r1 - strh r0, [r5, 0x10] - b _080AEB2A - .align 2, 0 -_080AEAE8: .4byte gUnknown_2037F1B -_080AEAEC: - ldr r0, _080AEB10 @ =0x0000fff0 - strh r0, [r5, 0xE] - movs r0, 0x80 - lsls r0, 1 -_080AEAF4: - strh r0, [r5, 0x10] - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080AEB14 - movs r2, 0 - ldrsh r0, [r3, r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - movs r0, 0x50 - subs r0, r1 - strh r0, [r5, 0x12] - b _080AEB2A - .align 2, 0 -_080AEB10: .4byte 0x0000fff0 -_080AEB14: - movs r0, 0 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r0, 0x28 - strh r0, [r5, 0x12] - ldrh r1, [r5, 0xE] - ldrh r0, [r5, 0x10] - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] -_080AEB2A: - movs r2, 0xE - ldrsh r1, [r5, r2] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - bge _080AEB40 - movs r1, 0 - movs r0, 0x1 - strh r0, [r5, 0xA] - strh r1, [r5, 0x14] - b _080AEB7C -_080AEB40: - ldr r0, _080AEB4C @ =0x0000ffff - strh r0, [r5, 0xA] - movs r0, 0x3 - strh r0, [r5, 0x14] - b _080AEB7C - .align 2, 0 -_080AEB4C: .4byte 0x0000ffff -_080AEB50: - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - ble _080AEB92 - movs r0, 0 - strh r0, [r5, 0xC] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80AEB98 - lsls r0, 24 - cmp r0, 0 - bne _080AEB7C - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80AEB98 - lsls r0, 24 - cmp r0, 0 - beq _080AEB92 -_080AEB7C: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080AEB92 -_080AEB84: - movs r1, 0x16 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AEB92 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AEB92: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80AEA10 - - thumb_func_start sub_80AEB98 -sub_80AEB98: @ 80AEB98 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080AEC24 @ =gUnknown_83E6278 - movs r2, 0xE - ldrsh r1, [r4, r2] - movs r3, 0x12 - ldrsh r2, [r4, r3] - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080AEBCE - ldr r1, _080AEC28 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strh r5, [r0, 0x3A] - movs r1, 0x7 - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] -_080AEBCE: - ldrh r1, [r4, 0xA] - ldrh r5, [r4, 0x14] - adds r0, r1, r5 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bge _080AEBE0 - movs r0, 0x3 - strh r0, [r4, 0x14] -_080AEBE0: - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - ble _080AEBEC - movs r0, 0 - strh r0, [r4, 0x14] -_080AEBEC: - movs r3, 0xA - ldrsh r0, [r4, r3] - lsls r0, 4 - ldrh r5, [r4, 0xE] - adds r2, r0, r5 - strh r2, [r4, 0xE] - lsls r0, r1, 16 - asrs r3, r0, 16 - cmp r3, 0x1 - bne _080AEC0C - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0x10 - ldrsh r1, [r4, r5] - cmp r0, r1 - bge _080AEC20 -_080AEC0C: - movs r0, 0x1 - negs r0, r0 - cmp r3, r0 - bne _080AEC2C - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x10 - ldrsh r1, [r4, r2] - cmp r0, r1 - bgt _080AEC2C -_080AEC20: - movs r0, 0x1 - b _080AEC2E - .align 2, 0 -_080AEC24: .4byte gUnknown_83E6278 -_080AEC28: .4byte gSprites -_080AEC2C: - movs r0, 0 -_080AEC2E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80AEB98 - - thumb_func_start sub_80AEC34 -sub_80AEC34: @ 80AEC34 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080AEC74 - ldr r3, _080AEC7C @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080AEC74: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AEC7C: .4byte gTasks - thumb_func_end sub_80AEC34 - - thumb_func_start sub_80AEC80 -sub_80AEC80: @ 80AEC80 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080AEC92 - cmp r0, 0x1 - beq _080AECC4 - b _080AECD8 -_080AEC92: - ldr r4, _080AECC0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080AECD8 - .align 2, 0 -_080AECC0: .4byte gUnknown_2037F1A -_080AECC4: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080AECD8 - adds r0, r5, 0 - bl move_anim_8074EE0 -_080AECD8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80AEC80 - - thumb_func_start sub_80AECE0 -sub_80AECE0: @ 80AECE0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080AED04 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080AECFA - b _080AEE6C -_080AECFA: - lsls r0, 2 - ldr r1, _080AED08 @ =_080AED0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AED04: .4byte gTasks -_080AED08: .4byte _080AED0C - .align 2, 0 -_080AED0C: - .4byte _080AED20 - .4byte _080AEDB0 - .4byte _080AEDEC - .4byte _080AEE48 - .4byte _080AEE58 -_080AED20: - ldr r4, _080AEDA4 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x16] - movs r0, 0x4 - strh r0, [r5, 0x18] - ldr r0, _080AEDA8 @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - movs r2, 0x1C - ldrsh r0, [r5, r2] - movs r2, 0x14 - ldrsh r1, [r5, r2] - subs r0, r1 - movs r1, 0x5 - bl __divsi3 - strh r0, [r5, 0x1A] - movs r0, 0x7 - strh r0, [r5, 0x10] - ldr r0, _080AEDAC @ =0x0000ffff - strh r0, [r5, 0x12] - movs r0, 0xC - strh r0, [r5, 0x1E] - subs r0, 0x4C - bl sub_8073A44 - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0x20] - movs r0, 0x3F - bl sub_8073A44 - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0x22] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x24] - movs r1, 0x22 - ldrsh r0, [r5, r1] - movs r2, 0x20 - ldrsh r1, [r5, r2] - subs r0, r1 - movs r1, 0x3 - bl __divsi3 - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - b _080AEE6A - .align 2, 0 -_080AEDA4: .4byte gUnknown_2037F1A -_080AEDA8: .4byte gUnknown_2037F1B -_080AEDAC: .4byte 0x0000ffff -_080AEDB0: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - ble _080AEDE0 - movs r0, 0 - strh r0, [r5, 0xA] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80AEE74 - lsls r0, 24 - cmp r0, 0 - beq _080AEDE0 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x5 - bne _080AEDDA - movs r0, 0x3 - b _080AEDDE -_080AEDDA: - ldrh r0, [r5, 0x8] - adds r0, 0x1 -_080AEDDE: - strh r0, [r5, 0x8] -_080AEDE0: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080AEE6C - b _080AEE62 -_080AEDEC: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080AEDFA - subs r0, r1, 0x1 - strh r0, [r5, 0x1E] -_080AEDFA: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - movs r3, 0 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080AEE6C - strh r3, [r5, 0xA] - ldrh r1, [r5, 0xC] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080AEE26 - movs r0, 0x4 - strh r0, [r5, 0x16] - movs r0, 0x44 - strh r0, [r5, 0x18] - strh r3, [r5, 0x10] - strh r2, [r5, 0x12] - b _080AEE36 -_080AEE26: - movs r0, 0x44 - strh r0, [r5, 0x16] - movs r0, 0x4 - strh r0, [r5, 0x18] - movs r0, 0x7 - strh r0, [r5, 0x10] - ldr r0, _080AEE44 @ =0x0000ffff - strh r0, [r5, 0x12] -_080AEE36: - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080AEE68 - movs r0, 0x4 - b _080AEE6A - .align 2, 0 -_080AEE44: .4byte 0x0000ffff -_080AEE48: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AEE6C - adds r0, r2, 0 - bl DestroyAnimVisualTask - b _080AEE6C -_080AEE58: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080AEE68 -_080AEE62: - subs r0, r1, 0x1 - strh r0, [r5, 0x1E] - b _080AEE6C -_080AEE68: - movs r0, 0x1 -_080AEE6A: - strh r0, [r5, 0x8] -_080AEE6C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80AECE0 - - thumb_func_start sub_80AEE74 -sub_80AEE74: @ 80AEE74 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080AEF3C @ =gUnknown_83E62A8 - movs r2, 0x14 - ldrsh r1, [r4, r2] - movs r3, 0x16 - ldrsh r2, [r4, r3] - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080AEEE0 - ldr r1, _080AEF40 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldrh r6, [r4, 0x10] - adds r1, r6 - ldr r6, _080AEF44 @ =0x000003ff - adds r0, r6, 0 - ands r1, r0 - ldr r0, _080AEF48 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bge _080AEEC8 - movs r0, 0x7 - strh r0, [r4, 0x10] -_080AEEC8: - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0x7 - ble _080AEED4 - movs r0, 0 - strh r0, [r4, 0x10] -_080AEED4: - strh r5, [r3, 0x3A] - movs r0, 0x3 - strh r0, [r3, 0x3C] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] -_080AEEE0: - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080AEF02 - movs r5, 0x12 - ldrsh r0, [r4, r5] - cmp r0, 0 - ble _080AEF02 - ldrh r1, [r4, 0x26] - ldrh r6, [r4, 0x24] - adds r1, r6 - strh r1, [r4, 0x24] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x6F - bl PlaySE12WithPanning -_080AEF02: - movs r0, 0x12 - ldrsh r3, [r4, r0] - ldrh r2, [r4, 0x16] - cmp r3, 0 - bge _080AEF18 - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0x18 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _080AEF28 -_080AEF18: - cmp r3, 0 - ble _080AEF4C - lsls r0, r2, 16 - asrs r0, 16 - movs r6, 0x18 - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080AEF4C -_080AEF28: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x1A] - ldrh r1, [r4, 0x14] - adds r0, r1 - strh r0, [r4, 0x14] - movs r0, 0x1 - b _080AEF58 - .align 2, 0 -_080AEF3C: .4byte gUnknown_83E62A8 -_080AEF40: .4byte gSprites -_080AEF44: .4byte 0x000003ff -_080AEF48: .4byte 0xfffffc00 -_080AEF4C: - movs r3, 0x12 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r0, r2, r0 - strh r0, [r4, 0x16] - movs r0, 0 -_080AEF58: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80AEE74 - - thumb_func_start sub_80AEF60 -sub_80AEF60: @ 80AEF60 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080AEF96 - ldr r3, _080AEF9C @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080AEF96: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AEF9C: .4byte gTasks - thumb_func_end sub_80AEF60 - - thumb_func_start sub_80AEFA0 -sub_80AEFA0: @ 80AEFA0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080AEFC4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080AF01C - cmp r0, 0x1 - bgt _080AEFC8 - cmp r0, 0 - beq _080AEFCE - b _080AF052 - .align 2, 0 -_080AEFC4: .4byte gTasks -_080AEFC8: - cmp r0, 0x2 - beq _080AF044 - b _080AF052 -_080AEFCE: - ldr r0, _080AF018 @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r5, 0x26] - strh r0, [r5, 0x24] - cmp r0, 0x10 - ble _080AEFF8 - adds r2, r0, 0 -_080AEFE8: - adds r1, r2, 0 - subs r1, 0x20 - adds r2, r1, 0 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x10 - bgt _080AEFE8 - strh r1, [r5, 0x24] -_080AEFF8: - ldr r4, _080AF018 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x2 - strh r0, [r5, 0x20] - b _080AF03C - .align 2, 0 -_080AF018: .4byte gUnknown_2037F1B -_080AF01C: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AF052 - movs r0, 0 - strh r0, [r5, 0xA] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80AF058 - lsls r0, 24 - cmp r0, 0 - beq _080AF052 -_080AF03C: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080AF052 -_080AF044: - movs r1, 0x1C - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AF052 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080AF052: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80AEFA0 - - thumb_func_start sub_80AF058 -sub_80AF058: @ 80AF058 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080AF0B4 @ =gUnknown_83E5F38 - movs r2, 0x22 - ldrsh r1, [r4, r2] - movs r3, 0x24 - ldrsh r2, [r4, r3] - ldrh r3, [r4, 0x20] - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080AF09C - ldr r3, _080AF0B8 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _080AF0BC @ =sub_80AF0C8 - str r2, [r1] - adds r0, r3 - strh r5, [r0, 0x3A] - movs r1, 0xA - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] -_080AF09C: - ldrh r2, [r4, 0x24] - movs r0, 0x24 - ldrsh r1, [r4, r0] - movs r3, 0x26 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080AF0C0 - adds r0, r2, 0 - adds r0, 0x20 - strh r0, [r4, 0x24] - movs r0, 0 - b _080AF0C2 - .align 2, 0 -_080AF0B4: .4byte gUnknown_83E5F38 -_080AF0B8: .4byte gSprites -_080AF0BC: .4byte sub_80AF0C8 -_080AF0C0: - movs r0, 0x1 -_080AF0C2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80AF058 - - thumb_func_start sub_80AF0C8 -sub_80AF0C8: @ 80AF0C8 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AF0FC - ldr r3, _080AF104 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080AF0FC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF104: .4byte gTasks - thumb_func_end sub_80AF0C8 - - thumb_func_start sub_80AF108 -sub_80AF108: @ 80AF108 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x7 - ldr r3, _080AF210 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080AF214 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r4, _080AF218 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080AF21C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - str r3, [sp] - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080AF220 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r1] - ldr r3, [sp] - adds r0, r3 - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x4] - mov r4, r9 - adds r0, r4, r0 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x2] - adds r0, r6 - strh r0, [r5, 0x34] - ldrh r0, [r1, 0x6] - mov r7, r8 - adds r0, r7, r0 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8074C80 - adds r4, 0x20 - movs r0, 0x98 - lsls r0, 1 - mov r12, r0 - ldr r3, [sp] - cmp r4, r12 - bhi _080AF1E2 - adds r0, r7, 0 - adds r0, 0x20 - ldrh r1, [r5, 0x30] - ldrh r2, [r5, 0x32] - cmp r0, 0xE0 - bhi _080AF1E2 - adds r4, r1, 0 - mov r10, r12 -_080AF1AE: - mov r7, r9 - lsls r1, r7, 16 - asrs r1, 16 - adds r1, r4 - lsls r1, 16 - mov r7, r8 - lsls r0, r7, 16 - asrs r0, 16 - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsrs r0, r1, 16 - mov r9, r0 - movs r7, 0x80 - lsls r7, 14 - adds r1, r7 - lsrs r1, 16 - cmp r1, r10 - bhi _080AF1E2 - mov r1, r8 - lsls r0, r1, 16 - adds r0, r7 - lsrs r0, 16 - cmp r0, 0xE0 - bls _080AF1AE -_080AF1E2: - ldrh r0, [r5, 0x30] - negs r7, r0 - strh r7, [r5, 0x30] - ldrh r0, [r5, 0x32] - negs r4, r0 - strh r4, [r5, 0x32] - lsls r0, r3, 16 - movs r1, 0x80 - lsls r1, 14 - adds r0, r1 - lsrs r0, 16 - movs r2, 0x98 - lsls r2, 1 - mov r12, r2 - ldr r1, _080AF220 @ =gUnknown_2037F02 - mov r10, r1 - cmp r0, r12 - bhi _080AF24E - lsls r1, r6, 16 - movs r2, 0x80 - lsls r2, 14 - adds r0, r1, r2 - b _080AF246 - .align 2, 0 -_080AF210: .4byte 0x000003ff -_080AF214: .4byte 0xfffffc00 -_080AF218: .4byte gUnknown_2037F1B -_080AF21C: .4byte gUnknown_2037F1A -_080AF220: .4byte gUnknown_2037F02 -_080AF224: - lsls r1, r3, 16 - asrs r1, 16 - adds r1, r7 - lsls r1, 16 - asrs r0, r2, 16 - adds r0, r4 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r3, r1, 16 - movs r0, 0x80 - lsls r0, 14 - adds r1, r0 - lsrs r1, 16 - cmp r1, r12 - bhi _080AF24E - lsls r1, r6, 16 - adds r0, r1, r0 -_080AF246: - lsrs r0, 16 - adds r2, r1, 0 - cmp r0, 0xE0 - bls _080AF224 -_080AF24E: - strh r3, [r5, 0x20] - strh r6, [r5, 0x22] - mov r1, r10 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - strh r3, [r5, 0x30] - mov r2, r9 - strh r2, [r5, 0x32] - strh r6, [r5, 0x34] - mov r3, r8 - strh r3, [r5, 0x36] - adds r0, r5, 0 - bl sub_8074C80 - mov r7, r10 - ldrh r0, [r7, 0xA] - strh r0, [r5, 0x34] - ldrh r0, [r7, 0xC] - strh r0, [r5, 0x36] - ldr r0, _080AF288 @ =sub_80AF28C - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AF288: .4byte sub_80AF28C - thumb_func_end sub_80AF108 - - thumb_func_start sub_80AF28C -sub_80AF28C: @ 80AF28C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AF2E4 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x3A] - adds r0, r2 - strh r0, [r4, 0x3A] - strh r1, [r4, 0x24] - strh r0, [r4, 0x26] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - b _080AF2EA -_080AF2E4: - adds r0, r4, 0 - bl DestroyAnimSprite -_080AF2EA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AF28C - - thumb_func_start sub_80AF2F0 -sub_80AF2F0: @ 80AF2F0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AF324 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r4, 0x2E] - movs r0, 0x3C - strh r0, [r4, 0x30] - movs r0, 0x9 - strh r0, [r4, 0x32] - movs r0, 0x1E - strh r0, [r4, 0x34] - movs r0, 0xFE - lsls r0, 8 - strh r0, [r4, 0x36] - ldr r1, _080AF328 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080AF32C @ =sub_8074AE0 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF324: .4byte gUnknown_2037F02 -_080AF328: .4byte DestroyAnimSprite -_080AF32C: .4byte sub_8074AE0 - thumb_func_end sub_80AF2F0 - - thumb_func_start sub_80AF330 -sub_80AF330: @ 80AF330 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080AF364 @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldr r0, _080AF368 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF370 - ldr r0, _080AF36C @ =gUnknown_2037F02 - ldrh r1, [r4, 0x32] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r4, 0x32] - b _080AF37A - .align 2, 0 -_080AF364: .4byte gUnknown_2037F1B -_080AF368: .4byte gUnknown_2037F1A -_080AF36C: .4byte gUnknown_2037F02 -_080AF370: - ldr r0, _080AF3A8 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] -_080AF37A: - ldr r0, _080AF3AC @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - ldr r1, _080AF3A8 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r2, [r1, 0x6] - adds r0, r2 - strh r0, [r4, 0x36] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x2E] - ldr r1, _080AF3B0 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080AF3B4 @ =sub_8075590 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF3A8: .4byte gUnknown_2037F02 -_080AF3AC: .4byte gUnknown_2037F1B -_080AF3B0: .4byte DestroyAnimSprite -_080AF3B4: .4byte sub_8075590 - thumb_func_end sub_80AF330 - - thumb_func_start sub_80AF3B8 -sub_80AF3B8: @ 80AF3B8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080AF3D0 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AF3D4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - b _080AF40A - .align 2, 0 -_080AF3D0: .4byte gUnknown_2037F02 -_080AF3D4: - ldr r0, _080AF41C @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_8076D9C - ldr r0, _080AF420 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF3FA - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080AF3FA: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080AF40A: - ldr r1, _080AF424 @ =sub_80AF42C - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080AF428 @ =sub_8074F50 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AF41C: .4byte gUnknown_2037F1B -_080AF420: .4byte gUnknown_2037F1A -_080AF424: .4byte sub_80AF42C -_080AF428: .4byte sub_8074F50 - thumb_func_end sub_80AF3B8 - - thumb_func_start sub_80AF42C -sub_80AF42C: @ 80AF42C - push {lr} - adds r3, r0, 0 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080AF462 - adds r0, r3, 0 - bl move_anim_8074EE0 -_080AF462: - pop {r0} - bx r0 - thumb_func_end sub_80AF42C - - thumb_func_start sub_80AF468 -sub_80AF468: @ 80AF468 - push {r4-r7,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r6, _080AF4B0 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080AF4B8 - ldr r4, _080AF4B4 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x36] - b _080AF4CA - .align 2, 0 -_080AF4B0: .4byte gUnknown_2037F02 -_080AF4B4: .4byte gUnknown_2037F1B -_080AF4B8: - ldr r0, _080AF4E4 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_8076D9C -_080AF4CA: - ldr r0, _080AF4E8 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF4F0 - ldr r0, _080AF4EC @ =gUnknown_2037F02 - ldrh r1, [r5, 0x32] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r5, 0x32] - b _080AF4FA - .align 2, 0 -_080AF4E4: .4byte gUnknown_2037F1B -_080AF4E8: .4byte gUnknown_2037F1A -_080AF4EC: .4byte gUnknown_2037F02 -_080AF4F0: - ldr r0, _080AF598 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] -_080AF4FA: - adds r7, r5, 0 - adds r7, 0x2E - adds r2, r7, 0 - mov r1, sp - movs r4, 0x7 -_080AF504: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080AF504 - adds r0, r5, 0 - bl sub_8075804 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - eors r0, r1 - strh r0, [r5, 0x32] -_080AF526: - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_807578C - movs r0, 0x20 - ldrsh r1, [r5, r0] - movs r2, 0x24 - ldrsh r0, [r5, r2] - adds r1, r0 - adds r1, 0x10 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bhi _080AF55A - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080AF55A - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080AF526 -_080AF55A: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldr r6, _080AF59C @ =sub_8075830 - ldr r1, _080AF5A0 @ =sub_80AF5A4 - mov r3, sp - adds r2, r7, 0 - movs r4, 0x7 -_080AF57A: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080AF57A - str r6, [r5, 0x1C] - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AF598: .4byte gUnknown_2037F02 -_080AF59C: .4byte sub_8075830 -_080AF5A0: .4byte sub_80AF5A4 - thumb_func_end sub_80AF468 - - thumb_func_start sub_80AF5A4 -sub_80AF5A4: @ 80AF5A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r5, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - strh r5, [r4, 0x24] - movs r0, 0x80 - strh r0, [r4, 0x2E] - ldr r0, _080AF600 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - ldr r1, _080AF604 @ =0x0000ffec - cmp r0, 0 - beq _080AF5D4 - movs r1, 0x14 -_080AF5D4: - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x34] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] - ldr r1, _080AF608 @ =sub_80AF60C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AF600: .4byte gUnknown_2037F1A -_080AF604: .4byte 0x0000ffec -_080AF608: .4byte sub_80AF60C - thumb_func_end sub_80AF5A4 - - thumb_func_start sub_80AF60C -sub_80AF60C: @ 80AF60C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AF660 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - ldr r1, _080AF664 @ =0x0000ffec - cmp r0, 0 - beq _080AF622 - movs r1, 0x14 -_080AF622: - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0x1F - bgt _080AF668 - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 16 - bl Sin - ldrh r1, [r4, 0x34] - subs r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x36] - subs r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - b _080AF686 - .align 2, 0 -_080AF660: .4byte gUnknown_2037F1A -_080AF664: .4byte 0x0000ffec -_080AF668: - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - strh r1, [r4, 0x36] - strh r1, [r4, 0x34] - ldr r0, _080AF68C @ =sub_80AF690 - str r0, [r4, 0x1C] -_080AF686: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF68C: .4byte sub_80AF690 - thumb_func_end sub_80AF60C - - thumb_func_start sub_80AF690 -sub_80AF690: @ 80AF690 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_807578C - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080AF6CC - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r1, r0, r1 - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bgt _080AF6CC - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080AF6D2 -_080AF6CC: - adds r0, r4, 0 - bl DestroyAnimSprite -_080AF6D2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AF690 - - thumb_func_start sub_80AF6D8 -sub_80AF6D8: @ 80AF6D8 - push {r4-r7,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080AF71C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080AF724 - ldr r4, _080AF720 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080AF736 - .align 2, 0 -_080AF71C: .4byte gUnknown_2037F02 -_080AF720: .4byte gUnknown_2037F1B -_080AF724: - ldr r0, _080AF754 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_8076D9C -_080AF736: - ldr r0, _080AF758 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF760 - ldr r0, _080AF75C @ =gUnknown_2037F02 - ldrh r1, [r5, 0x32] - ldrh r2, [r0, 0x4] - subs r1, r2 - strh r1, [r5, 0x32] - adds r1, r0, 0 - b _080AF76A - .align 2, 0 -_080AF754: .4byte gUnknown_2037F1B -_080AF758: .4byte gUnknown_2037F1A -_080AF75C: .4byte gUnknown_2037F02 -_080AF760: - ldr r1, _080AF814 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] -_080AF76A: - ldrh r0, [r1, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8075804 - adds r7, r5, 0 - adds r7, 0x2E - adds r2, r7, 0 - mov r1, sp - movs r4, 0x7 -_080AF782: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080AF782 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - eors r0, r1 - strh r0, [r5, 0x32] -_080AF79E: - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_807578C - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r2, 0x24 - ldrsh r0, [r5, r2] - adds r1, r0 - adds r1, 0x10 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bhi _080AF7D2 - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080AF7D2 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080AF79E -_080AF7D2: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldr r1, _080AF814 @ =gUnknown_2037F02 - ldr r6, _080AF818 @ =sub_80AF81C - mov r3, sp - adds r2, r7, 0 - movs r4, 0x7 -_080AF7F2: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080AF7F2 - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x38] - ldrh r0, [r1, 0xC] - strh r0, [r5, 0x3A] - str r6, [r5, 0x1C] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AF814: .4byte gUnknown_2037F02 -_080AF818: .4byte sub_80AF81C - thumb_func_end sub_80AF6D8 - - thumb_func_start sub_80AF81C -sub_80AF81C: @ 80AF81C - push {r4,lr} - adds r4, r0, 0 - bl sub_807578C - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AF830 - movs r0, 0x1 - strh r0, [r4, 0x2E] -_080AF830: - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080AF886 - movs r2, 0x20 - ldrsh r0, [r4, r2] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080AF880 - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r2, 0x26 - ldrsh r0, [r4, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080AF880 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080AF886 -_080AF880: - adds r0, r4, 0 - bl DestroyAnimSprite -_080AF886: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AF81C - - thumb_func_start sub_80AF88C -sub_80AF88C: @ 80AF88C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AF8F8 - ldr r5, _080AF8AC @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AF8B0 - adds r0, r4, 0 - movs r1, 0 - bl sub_8075114 - b _080AF8E6 - .align 2, 0 -_080AF8AC: .4byte gUnknown_2037F02 -_080AF8B0: - ldr r0, _080AF8F0 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C - ldr r0, _080AF8F4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF8D6 - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080AF8D6: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080AF8E6: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080AF90C - .align 2, 0 -_080AF8F0: .4byte gUnknown_2037F1B -_080AF8F4: .4byte gUnknown_2037F1A -_080AF8F8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AF90C - adds r0, r4, 0 - bl DestroyAnimSprite -_080AF90C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80AF88C - - thumb_func_start sub_80AF914 -sub_80AF914: @ 80AF914 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080AF934 @ =gUnknown_2037F02 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080AF984 - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080AF938 - adds r0, r5, 0 - movs r1, 0 - bl sub_8075160 - b _080AF976 - .align 2, 0 -_080AF934: .4byte gUnknown_2037F02 -_080AF938: - ldr r4, _080AF960 @ =gUnknown_2037F1A - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF964 - ldrh r0, [r5, 0x20] - ldrh r1, [r6] - subs r0, r1 - b _080AF96A - .align 2, 0 -_080AF960: .4byte gUnknown_2037F1A -_080AF964: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080AF96A: - strh r0, [r5, 0x20] - ldr r0, _080AF97C @ =gUnknown_2037F02 - ldrh r0, [r0, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] -_080AF976: - ldr r0, _080AF980 @ =gUnknown_2037F1A - b _080AF9D4 - .align 2, 0 -_080AF97C: .4byte gUnknown_2037F02 -_080AF980: .4byte gUnknown_2037F1A -_080AF984: - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080AF996 - adds r0, r5, 0 - movs r1, 0 - bl sub_8075114 - b _080AF9D2 -_080AF996: - ldr r4, _080AF9BC @ =gUnknown_2037F1B - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF9C0 - ldrh r0, [r5, 0x20] - ldrh r1, [r6] - subs r0, r1 - b _080AF9C6 - .align 2, 0 -_080AF9BC: .4byte gUnknown_2037F1B -_080AF9C0: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080AF9C6: - strh r0, [r5, 0x20] - ldr r0, _080AF9F0 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] -_080AF9D2: - ldr r0, _080AF9F4 @ =gUnknown_2037F1B -_080AF9D4: - ldrb r0, [r0] - strh r0, [r5, 0x3C] - ldr r0, _080AF9F0 @ =gUnknown_2037F02 - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080AF9EC - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - bne _080AF9F8 -_080AF9EC: - movs r0, 0x20 - b _080AF9FA - .align 2, 0 -_080AF9F0: .4byte gUnknown_2037F02 -_080AF9F4: .4byte gUnknown_2037F1B -_080AF9F8: - movs r0, 0x40 -_080AF9FA: - strh r0, [r5, 0x3A] - ldr r0, _080AFA40 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AFA10 - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] -_080AFA10: - ldr r1, _080AFA44 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrh r1, [r1, 0x4] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r5, 0x38] - ldr r1, _080AFA48 @ =sub_80AFA4C - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AFA40: .4byte gUnknown_2037F1B -_080AFA44: .4byte gUnknown_2037F02 -_080AFA48: .4byte sub_80AFA4C - thumb_func_end sub_80AF914 - - thumb_func_start sub_80AFA4C -sub_80AFA4C: @ 80AFA4C - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080AFAD6 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r1, 0x6 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080AFAA8 - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080AFACA -_080AFAA8: - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_080AFACA: - ldrh r0, [r4, 0x38] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080AFADC -_080AFAD6: - adds r0, r4, 0 - bl DestroyAnimSprite -_080AFADC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AFA4C - - thumb_func_start sub_80AFAE4 -sub_80AFAE4: @ 80AFAE4 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080AFBA0 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AFB26 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080AFB26: - ldr r0, _080AFBA4 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r4, _080AFBA8 @ =gUnknown_202297A - strh r1, [r4] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x16 - bl SetGpuReg - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AFBAC @ =gUnknown_83C3540 - movs r2, 0x80 - lsls r2, 4 - mov r3, sp - ldrh r3, [r3, 0xA] - bl LoadBgTiles - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AFBB0 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap - bl sub_807543C - ldr r0, _080AFBB4 @ =gUnknown_83C2CE0 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080AFB88 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080AFB88: - ldr r0, _080AFBB8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AFBBC @ =sub_80AFBC0 - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFBA0: .4byte 0x00003f42 -_080AFBA4: .4byte gUnknown_2022978 -_080AFBA8: .4byte gUnknown_202297A -_080AFBAC: .4byte gUnknown_83C3540 -_080AFBB0: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap -_080AFBB4: .4byte gUnknown_83C2CE0 -_080AFBB8: .4byte gTasks -_080AFBBC: .4byte sub_80AFBC0 - thumb_func_end sub_80AFAE4 - - thumb_func_start sub_80AFBC0 -sub_80AFBC0: @ 80AFBC0 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080AFBF4 @ =gUnknown_2022978 - ldr r2, _080AFBF8 @ =0x0000ffff - adds r0, r2, 0 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - ldr r1, _080AFBFC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080AFBEA - b _080AFD36 -_080AFBEA: - lsls r0, 2 - ldr r1, _080AFC00 @ =_080AFC04 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AFBF4: .4byte gUnknown_2022978 -_080AFBF8: .4byte 0x0000ffff -_080AFBFC: .4byte gTasks -_080AFC00: .4byte _080AFC04 - .align 2, 0 -_080AFC04: - .4byte _080AFC18 - .4byte _080AFC70 - .4byte _080AFC92 - .4byte _080AFCD6 - .4byte _080AFCF8 -_080AFC18: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _080AFC32 - b _080AFD36 -_080AFC32: - strh r5, [r4, 0x1C] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - ldr r1, _080AFC6C @ =gUnknown_83E64D4 - movs r2, 0x1A - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r1, [r0] - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x9 - bne _080AFD36 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x1E] - b _080AFD36 - .align 2, 0 -_080AFC6C: .4byte gUnknown_83E64D4 -_080AFC70: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _080AFD36 - movs r0, 0x9 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080AFD36 -_080AFC92: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080AFD36 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080AFD36 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080AFD36 -_080AFCD6: - mov r0, sp - bl sub_80752A0 - movs r0, 0x1 - bl sub_8075358 - movs r0, 0x2 - bl sub_8075358 - ldr r0, _080AFD40 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] -_080AFCF8: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AFD0C - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080AFD0C: - ldr r0, _080AFD44 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r0, _080AFD48 @ =gUnknown_202297A - strh r1, [r0] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AFD36: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFD40: .4byte gTasks -_080AFD44: .4byte gUnknown_2022978 -_080AFD48: .4byte gUnknown_202297A - thumb_func_end sub_80AFBC0 - - thumb_func_start sub_80AFD4C -sub_80AFD4C: @ 80AFD4C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080AFD78 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _080AFD7C @ =sub_8075DF4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFD78: .4byte gUnknown_2037F1A -_080AFD7C: .4byte sub_8075DF4 - thumb_func_end sub_80AFD4C - - thumb_func_start sub_80AFD80 -sub_80AFD80: @ 80AFD80 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080AFE40 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AFDC2 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080AFDC2: - ldr r0, _080AFE44 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r4, _080AFE48 @ =gUnknown_202297A - strh r1, [r4] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x16 - bl SetGpuReg - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AFE4C @ =gUnknown_83C3540 - movs r2, 0x80 - lsls r2, 4 - mov r3, sp - ldrh r3, [r3, 0xA] - bl LoadBgTiles - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AFE50 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap - bl sub_807543C - ldr r0, _080AFE54 @ =gUnknown_83C2CE0 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080AFE24 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080AFE24: - ldr r1, _080AFE58 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080AFE5C @ =0x0000ffff - strh r1, [r0, 0x26] - ldr r1, _080AFE60 @ =sub_80AFE64 - str r1, [r0] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFE40: .4byte 0x00003f42 -_080AFE44: .4byte gUnknown_2022978 -_080AFE48: .4byte gUnknown_202297A -_080AFE4C: .4byte gUnknown_83C3540 -_080AFE50: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap -_080AFE54: .4byte gUnknown_83C2CE0 -_080AFE58: .4byte gTasks -_080AFE5C: .4byte 0x0000ffff -_080AFE60: .4byte sub_80AFE64 - thumb_func_end sub_80AFD80 - - thumb_func_start sub_80AFE64 -sub_80AFE64: @ 80AFE64 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _080AFE94 @ =gUnknown_2022978 - ldr r3, _080AFE98 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r3 - ldrh r0, [r1, 0x26] - ldrh r5, [r2] - adds r0, r5 - strh r0, [r2] - movs r2, 0x20 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - bls _080AFE8A - b _080AFFBE -_080AFE8A: - lsls r0, 2 - ldr r1, _080AFE9C @ =_080AFEA0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AFE94: .4byte gUnknown_2022978 -_080AFE98: .4byte gTasks -_080AFE9C: .4byte _080AFEA0 - .align 2, 0 -_080AFEA0: - .4byte _080AFEB4 - .4byte _080AFEF8 - .4byte _080AFF1A - .4byte _080AFF5E - .4byte _080AFF80 -_080AFEB4: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r3 - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - ldr r1, _080AFEF4 @ =gUnknown_83E6500 - movs r5, 0x1A - ldrsh r0, [r4, r5] - adds r0, r1 - ldrb r1, [r0] - strh r1, [r4, 0x1E] - movs r0, 0x11 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bne _080AFFBE - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0x1E] - b _080AFFBE - .align 2, 0 -_080AFEF4: .4byte gUnknown_83E6500 -_080AFEF8: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r3 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _080AFFBE - movs r0, 0x5 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080AFFBE -_080AFF1A: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r3 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080AFFBE - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080AFFBE - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080AFFBE -_080AFF5E: - mov r0, sp - bl sub_80752A0 - movs r0, 0x1 - bl sub_8075358 - movs r0, 0x2 - bl sub_8075358 - ldr r0, _080AFFC8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] -_080AFF80: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AFF94 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080AFF94: - ldr r0, _080AFFCC @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r0, _080AFFD0 @ =gUnknown_202297A - strh r1, [r0] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AFFBE: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFFC8: .4byte gTasks -_080AFFCC: .4byte gUnknown_2022978 -_080AFFD0: .4byte gUnknown_202297A - thumb_func_end sub_80AFE64 - - thumb_func_start sub_80AFFD4 -sub_80AFFD4: @ 80AFFD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldr r6, _080B00BC @ =gUnknown_2037F02 - ldrh r0, [r6] - strh r0, [r5, 0x2E] - ldr r0, _080B00C0 @ =gUnknown_2037F1A - mov r8, r0 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8074480 - adds r4, r0, 0 - ldr r7, _080B00C4 @ =gUnknown_2037F1B - ldrb r0, [r7] - movs r1, 0x2 - bl sub_8074480 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bcs _080B0008 - movs r0, 0x80 - lsls r0, 8 - strh r0, [r5, 0x3C] -_080B0008: - ldr r3, _080B00C8 @ =gUnknown_2023BD6 - ldrb r0, [r7] - adds r0, r3 - ldrb r1, [r0] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080B0068 - ldrh r0, [r6, 0x2] - negs r0, r0 - strh r0, [r6, 0x2] - ldrh r0, [r6, 0x6] - negs r0, r0 - strh r0, [r6, 0x6] - movs r1, 0x3C - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080B0064 - mov r1, r8 - ldrb r0, [r1] - adds r0, r3 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080B0064 - movs r0, 0x1 - bl GetAnimBankSpriteId - ldr r2, _080B00CC @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0x1 - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] -_080B0064: - movs r0, 0x1 - strh r0, [r5, 0x3A] -_080B0068: - ldr r4, _080B00C0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r6, _080B00BC @ =gUnknown_2037F02 - movs r1, 0xE - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080B00D0 - ldrh r0, [r6, 0x2] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x30] - ldr r4, _080B00C4 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - b _080B00F8 - .align 2, 0 -_080B00BC: .4byte gUnknown_2037F02 -_080B00C0: .4byte gUnknown_2037F1A -_080B00C4: .4byte gUnknown_2037F1B -_080B00C8: .4byte gUnknown_2023BD6 -_080B00CC: .4byte gSprites -_080B00D0: - ldrh r0, [r6, 0x2] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x30] - ldr r4, _080B0140 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x1 -_080B00F8: - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x8] - adds r0, r6 - strh r0, [r5, 0x36] - ldrb r0, [r4] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 16 - ldrh r1, [r5, 0x3C] - orrs r0, r1 - strh r0, [r5, 0x3C] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B012C - movs r0, 0x1 - strh r0, [r5, 0x3A] - adds r1, r5, 0 - adds r1, 0x43 - movs r0, 0x80 - strb r0, [r1] -_080B012C: - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080B0144 @ =sub_80B0148 - str r0, [r5, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B0140: .4byte gUnknown_2037F1B -_080B0144: .4byte sub_80B0148 - thumb_func_end sub_80AFFD4 - - thumb_func_start sub_80B0148 -sub_80B0148: @ 80B0148 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - movs r5, 0xFF - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x1 - beq _080B0230 - cmp r1, 0x1 - bgt _080B0162 - cmp r1, 0 - beq _080B016A - b _080B0380 -_080B0162: - cmp r1, 0x2 - bne _080B0168 - b _080B0344 -_080B0168: - b _080B0380 -_080B016A: - adds r0, r4, 0 - bl sub_80755E0 - ldr r1, _080B0194 @ =gUnknown_825E074 - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r0, 4 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B0198 - ldrh r0, [r4, 0x38] - subs r0, 0x8 - b _080B019C - .align 2, 0 -_080B0194: .4byte gUnknown_825E074 -_080B0198: - ldrh r0, [r4, 0x38] - adds r0, 0x8 -_080B019C: - ands r0, r5 - strh r0, [r4, 0x38] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080B01AA - b _080B0380 -_080B01AA: - movs r5, 0x50 - strh r5, [r4, 0x2E] - ldr r6, _080B01F8 @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, 0x1D - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B0200 - ldr r1, _080B01FC @ =gUnknown_2023BD6 - ldrb r0, [r6] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B0200 - movs r0, 0xCC - strh r0, [r4, 0x38] - b _080B0202 - .align 2, 0 -_080B01F8: .4byte gUnknown_2037F1B -_080B01FC: .4byte gUnknown_2023BD6 -_080B0200: - strh r5, [r4, 0x38] -_080B0202: - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080B022C @ =gUnknown_825E074 - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r0, 3 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - b _080B0380 - .align 2, 0 -_080B022C: .4byte gUnknown_825E074 -_080B0230: - adds r0, r4, 0 - bl sub_80755E0 - ldr r1, _080B028C @ =gUnknown_825E074 - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - asrs r0, 3 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - adds r0, 0x40 - lsls r0, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - negs r0, r0 - asrs r0, 8 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B02AE - ldrh r1, [r4, 0x38] - adds r0, r1, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - adds r3, r1, 0 - cmp r0, 0x7F - bhi _080B0290 - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 24 - b _080B0298 - .align 2, 0 -_080B028C: .4byte gUnknown_825E074 -_080B0290: - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 24 - adds r1, 0x1 -_080B0298: - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r0, r3, 0x4 - b _080B02CE -_080B02AE: - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080B02C2 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x80 - b _080B02C8 -_080B02C2: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x8C -_080B02C8: - strb r0, [r1] - ldrh r0, [r4, 0x38] - subs r0, 0x4 -_080B02CE: - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bgt _080B0380 - movs r5, 0 - movs r0, 0xC0 - lsls r0, 2 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, 0x4 - strh r0, [r4, 0x36] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B0328 - ldr r1, _080B0320 @ =gUnknown_2023BD6 - ldr r0, _080B0324 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B0328 - movs r0, 0x80 - lsls r0, 1 - b _080B032A - .align 2, 0 -_080B0320: .4byte gUnknown_2023BD6 -_080B0324: .4byte gUnknown_2037F1B -_080B0328: - ldr r0, _080B0340 @ =0x0000fff0 -_080B032A: - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x3C] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl sub_8075678 - b _080B0380 - .align 2, 0 -_080B0340: .4byte 0x0000fff0 -_080B0344: - adds r0, r4, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080B0380 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B0372 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_080B0372: - adds r0, r4, 0 - bl DestroySprite - ldr r1, _080B0388 @ =gUnknown_2037EE2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080B0380: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B0388: .4byte gUnknown_2037EE2 - thumb_func_end sub_80B0148 - - thumb_func_start sub_80B038C -sub_80B038C: @ 80B038C - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B03A0 @ =gTasks - adds r1, r0 - ldr r0, _080B03A4 @ =sub_80B03A8 - str r0, [r1] - bx lr - .align 2, 0 -_080B03A0: .4byte gTasks -_080B03A4: .4byte sub_80B03A8 - thumb_func_end sub_80B038C - - thumb_func_start sub_80B03A8 -sub_80B03A8: @ 80B03A8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B03CC @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080B03EC - cmp r5, 0x1 - bgt _080B03D0 - cmp r5, 0 - beq _080B03D6 - b _080B0450 - .align 2, 0 -_080B03CC: .4byte gTasks -_080B03D0: - cmp r5, 0x2 - beq _080B0442 - b _080B0450 -_080B03D6: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080B0450 - strh r5, [r4, 0x10] - strh r5, [r4, 0x12] - strh r5, [r4, 0xC] - b _080B0428 -_080B03EC: - ldrh r1, [r4, 0x12] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080B043C - ldrb r0, [r4, 0xE] - ldrb r1, [r4, 0xC] - movs r3, 0x1 - bl sub_80B0458 - lsls r0, 24 - cmp r0, 0 - beq _080B040C - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] -_080B040C: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080B0438 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080B0430 -_080B0428: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B0450 -_080B0430: - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] - b _080B0450 -_080B0438: - strh r5, [r4, 0x12] - b _080B0450 -_080B043C: - subs r0, r1, 0x1 - strh r0, [r4, 0x12] - b _080B0450 -_080B0442: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B0450 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B0450: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B03A8 - - thumb_func_start sub_80B0458 -sub_80B0458: @ 80B0458 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, _080B04D0 @ =gUnknown_83E652C - lsrs r0, 22 - adds r4, r0, r1 - ldrb r0, [r4, 0x3] - lsls r0, 24 - asrs r0, 28 - mov r8, r0 - cmp r0, 0x2 - beq _080B0544 - ldrh r0, [r4, 0x2] - lsls r0, 20 - lsrs r0, 24 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B0544 - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, r8 - cmp r1, 0 - beq _080B04D4 - cmp r1, 0x1 - beq _080B050A - b _080B0556 - .align 2, 0 -_080B04D0: .4byte gUnknown_83E652C -_080B04D4: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r5, 0 - movs r1, 0 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r6, 16 - asrs r1, 16 - subs r1, r0 - b _080B053E -_080B050A: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r7, 16 - asrs r1, 16 - adds r1, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r5, 0 - movs r1, 0 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r6, 16 - asrs r1, 16 - adds r1, r0 -_080B053E: - lsls r1, 16 - lsrs r6, r1, 16 - b _080B0556 -_080B0544: - ldrh r0, [r4] - lsls r0, 22 - asrs r0, 6 - lsrs r7, r0, 16 - ldr r0, [r4] - lsls r0, 12 - asrs r0, 22 - lsls r0, 16 - lsrs r6, r0, 16 -_080B0556: - lsls r0, r6, 16 - asrs r0, 16 - adds r0, 0x8 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r0 - ldr r0, _080B05B0 @ =gUnknown_83E65A4 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x8 - negs r2, r2 - movs r3, 0x12 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080B05B8 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r0, _080B05B4 @ =gSprites - adds r4, r0 - adds r0, r4, 0 - mov r1, r9 - bl StartSpriteAffineAnim - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - strh r7, [r4, 0x34] - strh r6, [r4, 0x36] - mov r1, r9 - strh r1, [r4, 0x38] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x3A] - mov r1, r10 - strh r1, [r4, 0x3C] - movs r0, 0x1 - b _080B05BA - .align 2, 0 -_080B05B0: .4byte gUnknown_83E65A4 -_080B05B4: .4byte gSprites -_080B05B8: - movs r0, 0 -_080B05BA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B0458 - - thumb_func_start sub_80B05CC -sub_80B05CC: @ 80B05CC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r2, r1, 0 - adds r2, 0x8 - strh r2, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _080B05F6 - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080B06A6 -_080B05F6: - movs r3, 0x2E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080B0678 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B0678 - ldr r0, _080B066C @ =gUnknown_83E63E0 - movs r2, 0x34 - ldrsh r1, [r4, r2] - movs r3, 0x36 - ldrsh r2, [r4, r3] - adds r3, r4, 0 - adds r3, 0x43 - ldrb r3, [r3] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - cmp r0, 0x40 - beq _080B065A - ldr r2, _080B0670 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080B0674 @ =sub_80B06B0 - str r1, [r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x3A] - strh r1, [r0, 0x3A] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x3C] - strh r1, [r0, 0x3C] -_080B065A: - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - b _080B06A6 - .align 2, 0 -_080B066C: .4byte gUnknown_83E63E0 -_080B0670: .4byte gSprites -_080B0674: .4byte sub_80B06B0 -_080B0678: - ldr r3, _080B06AC @ =gTasks - movs r2, 0x3C - ldrsh r1, [r4, r2] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080B06A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B06AC: .4byte gTasks - thumb_func_end sub_80B05CC - - thumb_func_start sub_80B06B0 -sub_80B06B0: @ 80B06B0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080B06F0 - ldr r3, _080B06F8 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080B06F0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B06F8: .4byte gTasks - thumb_func_end sub_80B06B0 - - thumb_func_start unc_080B06FC -unc_080B06FC: @ 80B06FC - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080B077C @ =gUnknown_2037EE4 - ldr r0, [r0] - ldrb r1, [r0, 0x11] - lsrs r0, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r0, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080B071A - movs r1, 0x4 -_080B071A: - adds r0, r5, 0 - bl StartSpriteAffineAnim - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r6, _080B0780 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080B0784 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B0742 - ldrh r0, [r6, 0x4] - negs r0, r0 - strh r0, [r6, 0x4] -_080B0742: - ldr r4, _080B0788 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r6, 0xA] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_8075068 - ldr r0, _080B078C @ =sub_80B0790 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B077C: .4byte gUnknown_2037EE4 -_080B0780: .4byte gUnknown_2037F02 -_080B0784: .4byte gUnknown_2037F1A -_080B0788: .4byte gUnknown_2037F1B -_080B078C: .4byte sub_80B0790 - thumb_func_end unc_080B06FC - - thumb_func_start sub_80B0790 -sub_80B0790: @ 80B0790 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B07B2 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _080B07B8 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldr r1, _080B07BC @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 -_080B07B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B07B8: .4byte sub_8074F6C -_080B07BC: .4byte DestroyAnimSprite - thumb_func_end sub_80B0790 - - thumb_func_start sub_80B07C0 -sub_80B07C0: @ 80B07C0 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r3, _080B0814 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080B0818 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - bl Random - movs r5, 0xFF - ands r5, r0 - movs r0, 0x80 - lsls r0, 1 - adds r6, r0, 0 - orrs r5, r6 - bl Random - ldr r1, _080B081C @ =0x000001ff - ands r1, r0 - adds r0, r1, 0 - cmp r0, 0xFF - ble _080B0806 - subs r0, r6, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080B0806: - strh r5, [r4, 0x30] - strh r1, [r4, 0x32] - ldr r0, _080B0820 @ =sub_80B0824 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B0814: .4byte 0x000003ff -_080B0818: .4byte 0xfffffc00 -_080B081C: .4byte 0x000001ff -_080B0820: .4byte sub_80B0824 - thumb_func_end sub_80B07C0 - - thumb_func_start sub_80B0824 -sub_80B0824: @ 80B0824 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r3, r0, r1 - strh r3, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r1, r4 - strh r1, [r2, 0x36] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080B0848 - lsls r0, r3, 16 - asrs r0, 24 - negs r0, r0 - b _080B084C -_080B0848: - lsls r0, r3, 16 - asrs r0, 24 -_080B084C: - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080B086A - adds r0, r2, 0 - bl DestroyAnimSprite -_080B086A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B0824 - - thumb_func_start sub_80B0870 -sub_80B0870: @ 80B0870 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B0898 @ =gUnknown_2037F02 - ldrb r3, [r1] - lsls r3, 1 - adds r3, r1 - ldr r1, _080B089C @ =gUnknown_2037EE4 - ldr r1, [r1] - ldrb r1, [r1, 0x11] - lsrs r2, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r2, r1 - subs r2, 0x1 - strh r2, [r3] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080B0898: .4byte gUnknown_2037F02 -_080B089C: .4byte gUnknown_2037EE4 - thumb_func_end sub_80B0870 - - thumb_func_start unc_080B08A0 -unc_080B08A0: @ 80B08A0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B08D0 @ =gUnknown_2037F02 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_8074FF8 - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0xF - strh r0, [r4, 0x2E] - ldr r0, _080B08D4 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080B08D8 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B08D0: .4byte gUnknown_2037F02 -_080B08D4: .4byte sub_8074C44 -_080B08D8: .4byte DestroyAnimSprite - thumb_func_end unc_080B08A0 - - thumb_func_start sub_80B08DC -sub_80B08DC: @ 80B08DC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B0920 @ =gUnknown_2037F02 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080B0904 - ldr r0, _080B0924 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B0904 - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x6] - negs r0, r0 - strh r0, [r4, 0x6] -_080B0904: - ldr r4, _080B0920 @ =gUnknown_2037F02 - ldrb r1, [r4, 0xC] - adds r0, r5, 0 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r4, 0xC] - adds r0, r5, 0 - bl sub_8075F0C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0920: .4byte gUnknown_2037F02 -_080B0924: .4byte gUnknown_2037F1A - thumb_func_end sub_80B08DC - - thumb_func_start sub_80B0928 -sub_80B0928: @ 80B0928 - push {r4,lr} - adds r4, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B0944 - ldr r0, _080B0950 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0x6] - negs r1, r1 - strh r1, [r0, 0x6] -_080B0944: - adds r0, r4, 0 - bl sub_80B08DC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0950: .4byte gUnknown_2037F02 - thumb_func_end sub_80B0928 - - thumb_func_start sub_80B0954 -sub_80B0954: @ 80B0954 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B0974 @ =gUnknown_2037F02 - ldrb r1, [r4, 0x8] - bl StartSpriteAnim - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B0978 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - b _080B0980 - .align 2, 0 -_080B0974: .4byte gUnknown_2037F02 -_080B0978: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075114 -_080B0980: - ldr r0, _080B0998 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080B099C @ =sub_8074C44 - str r0, [r5, 0x1C] - ldr r1, _080B09A0 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0998: .4byte gUnknown_2037F02 -_080B099C: .4byte sub_8074C44 -_080B09A0: .4byte DestroyAnimSprite - thumb_func_end sub_80B0954 - - thumb_func_start sub_80B09A4 -sub_80B09A4: @ 80B09A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - ldr r0, _080B09C0 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r9, r0 - cmp r1, 0 - bne _080B09C8 - ldr r0, _080B09C4 @ =gUnknown_2037F1A - b _080B09CA - .align 2, 0 -_080B09C0: .4byte gUnknown_2037F02 -_080B09C4: .4byte gUnknown_2037F1A -_080B09C8: - ldr r0, _080B0B10 @ =gUnknown_2037F1B -_080B09CA: - ldrb r0, [r0] - mov r8, r0 - mov r4, r9 - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _080B09E8 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - strh r0, [r4, 0x4] -_080B09E8: - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAnim - mov r0, r8 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - mov r0, r8 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - mov r0, r8 - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - lsls r1, 15 - lsrs r6, r1, 16 - mov r0, r8 - movs r1, 0 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080B0A32 - adds r0, 0x3 -_080B0A32: - lsls r4, r0, 14 - lsrs r4, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r1, r6, 16 - asrs r1, 16 - bl __modsi3 - lsls r0, 16 - lsrs r6, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - movs r7, 0x1 - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _080B0A74 - lsls r0, r6, 16 - negs r0, r0 - lsrs r6, r0, 16 -_080B0A74: - bl Random - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _080B0A86 - lsls r0, r4, 16 - negs r0, r0 - lsrs r4, r0, 16 -_080B0A86: - ldr r0, _080B0B14 @ =gUnknown_2023BD6 - add r0, r8 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _080B0A9C - lsls r0, r4, 16 - ldr r1, _080B0B18 @ =0xfff00000 - adds r0, r1 - lsrs r4, r0, 16 -_080B0A9C: - lsls r0, r6, 16 - asrs r0, 16 - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r3, [r5, 0x22] - adds r0, r3 - strh r0, [r5, 0x22] - mov r1, r9 - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x2E] - ldr r0, _080B0B1C @ =gUnknown_83E7C08 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r3, 0x22 - ldrsh r2, [r5, r3] - adds r3, r5, 0 - adds r3, 0x43 - ldrb r3, [r3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3C] - cmp r0, 0x40 - beq _080B0B00 - movs r0, 0x3C - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080B0B20 @ =gSprites - adds r0, r4 - movs r1, 0 - bl StartSpriteAffineAnim - movs r2, 0x3C - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080B0B24 @ =SpriteCallbackDummy - str r1, [r0] -_080B0B00: - ldr r0, _080B0B28 @ =sub_80B0B2C - str r0, [r5, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B0B10: .4byte gUnknown_2037F1B -_080B0B14: .4byte gUnknown_2023BD6 -_080B0B18: .4byte 0xfff00000 -_080B0B1C: .4byte gUnknown_83E7C08 -_080B0B20: .4byte gSprites -_080B0B24: .4byte SpriteCallbackDummy -_080B0B28: .4byte sub_80B0B2C - thumb_func_end sub_80B09A4 - - thumb_func_start sub_80B0B2C -sub_80B0B2C: @ 80B0B2C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080B0B74 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x40 - beq _080B0B68 - ldr r4, _080B0B70 @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r0, 0x3C - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_080B0B68: - adds r0, r5, 0 - bl DestroyAnimSprite - b _080B0B78 - .align 2, 0 -_080B0B70: .4byte gSprites -_080B0B74: - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] -_080B0B78: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B0B2C - - thumb_func_start sub_80B0B80 -sub_80B0B80: @ 80B0B80 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - movs r0, 0x1E - strh r0, [r4, 0x2E] - ldr r0, _080B0BA0 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B0BA4 - ldrh r0, [r4, 0x20] - subs r0, 0x14 - strh r0, [r4, 0x32] - b _080B0BB6 - .align 2, 0 -_080B0BA0: .4byte gUnknown_2037F02 -_080B0BA4: - ldrh r0, [r4, 0x20] - adds r0, 0x14 - strh r0, [r4, 0x32] - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080B0BB6: - ldrh r0, [r4, 0x22] - subs r0, 0x14 - strh r0, [r4, 0x36] - ldr r0, _080B0BD0 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080B0BD4 @ =sub_80B0BD8 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0BD0: .4byte sub_8075590 -_080B0BD4: .4byte sub_80B0BD8 - thumb_func_end sub_80B0B80 - - thumb_func_start sub_80B0BD8 -sub_80B0BD8: @ 80B0BD8 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - adds r0, 0x1 - movs r6, 0 - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _080B0C18 - ldrh r2, [r5, 0x20] - ldrh r4, [r5, 0x24] - subs r0, r2, r4 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x22] - ldrh r3, [r5, 0x26] - subs r0, r1, r3 - strh r0, [r5, 0x36] - movs r0, 0x8 - strh r0, [r5, 0x2E] - adds r2, r4 - strh r2, [r5, 0x20] - adds r1, r3 - strh r1, [r5, 0x22] - strh r6, [r5, 0x26] - strh r6, [r5, 0x24] - ldr r0, _080B0C20 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080B0C24 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 -_080B0C18: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B0C20: .4byte sub_8075590 -_080B0C24: .4byte DestroyAnimSprite - thumb_func_end sub_80B0BD8 - - thumb_func_start sub_80B0C28 -sub_80B0C28: @ 80B0C28 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080B0CA4 @ =gUnknown_2037F1A - ldrb r1, [r0] - movs r0, 0x2 - ldr r2, _080B0CA8 @ =gUnknown_2037F1B - eors r0, r1 - ldrb r1, [r2] - cmp r0, r1 - bne _080B0C54 - ldrb r0, [r2] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080B0C54 - ldr r1, _080B0CAC @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] -_080B0C54: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r0, _080B0CA4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B0C72 - ldr r1, _080B0CAC @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080B0C72: - ldr r4, _080B0CAC @ =gUnknown_2037F02 - ldrh r0, [r4, 0x6] - movs r5, 0 - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x3A] - strh r5, [r6, 0x3C] - ldr r0, _080B0CB0 @ =sub_80B0CB4 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B0CA4: .4byte gUnknown_2037F1A -_080B0CA8: .4byte gUnknown_2037F1B -_080B0CAC: .4byte gUnknown_2037F02 -_080B0CB0: .4byte sub_80B0CB4 - thumb_func_end sub_80B0C28 - - thumb_func_start sub_80B0CB4 -sub_80B0CB4: @ 80B0CB4 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080B0CE0 - ldrh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - strh r0, [r4, 0x3C] - b _080B0CE6 -_080B0CE0: - adds r0, r4, 0 - bl DestroyAnimSprite -_080B0CE6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B0CB4 - - thumb_func_start sub_80B0CEC -sub_80B0CEC: @ 80B0CEC - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r5, _080B0D18 @ =gUnknown_2037F02 - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldr r0, _080B0D1C @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080B0D20 @ =sub_80B0D24 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0D18: .4byte gUnknown_2037F02 -_080B0D1C: .4byte sub_8074C44 -_080B0D20: .4byte sub_80B0D24 - thumb_func_end sub_80B0CEC - - thumb_func_start sub_80B0D24 -sub_80B0D24: @ 80B0D24 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl StartSpriteAffineAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r0, _080B0D50 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080B0D54 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0D50: .4byte sub_8074C44 -_080B0D54: .4byte DestroyAnimSprite - thumb_func_end sub_80B0D24 - - thumb_func_start sub_80B0D58 -sub_80B0D58: @ 80B0D58 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r0, _080B0D74 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080B0D78 @ =sub_80B0D7C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0D74: .4byte gUnknown_2037F02 -_080B0D78: .4byte sub_80B0D7C - thumb_func_end sub_80B0D58 - - thumb_func_start sub_80B0D7C -sub_80B0D7C: @ 80B0D7C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - subs r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B0DC0 - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080B0DC8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080B0DCC @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080B0DD0 @ =sub_80B0DD4 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 -_080B0DC0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0DC8: .4byte gUnknown_2037F1B -_080B0DCC: .4byte sub_8075590 -_080B0DD0: .4byte sub_80B0DD4 - thumb_func_end sub_80B0D7C - - thumb_func_start sub_80B0DD4 -sub_80B0DD4: @ 80B0DD4 - push {lr} - movs r1, 0xF - strh r1, [r0, 0x2E] - ldr r1, _080B0DE8 @ =sub_8074C44 - str r1, [r0, 0x1C] - ldr r1, _080B0DEC @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080B0DE8: .4byte sub_8074C44 -_080B0DEC: .4byte DestroyAnimSprite - thumb_func_end sub_80B0DD4 - - thumb_func_start sub_80B0DF0 -sub_80B0DF0: @ 80B0DF0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B0E1C - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r1, _080B0E18 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B0E78 - .align 2, 0 -_080B0E18: .4byte gUnknown_2037F02 -_080B0E1C: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x64 - ble _080B0E6A - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080B0E6A: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _080B0E78 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B0E78: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B0DF0 - - thumb_func_start sub_80B0E80 -sub_80B0E80: @ 80B0E80 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B0E94 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B0E9C - ldr r4, _080B0E98 @ =gUnknown_2037F1A - b _080B0E9E - .align 2, 0 -_080B0E94: .4byte gUnknown_2037F02 -_080B0E98: .4byte gUnknown_2037F1A -_080B0E9C: - ldr r4, _080B0EE4 @ =gUnknown_2037F1B -_080B0E9E: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080B0EE8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x20] - adds r0, r2 - movs r2, 0 - strh r0, [r5, 0x20] - ldrh r0, [r1, 0x4] - ldrh r3, [r5, 0x22] - adds r0, r3 - strh r0, [r5, 0x22] - strh r2, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x32] - strh r2, [r5, 0x34] - ldr r0, _080B0EEC @ =sub_80B0EF0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0EE4: .4byte gUnknown_2037F1B -_080B0EE8: .4byte gUnknown_2037F02 -_080B0EEC: .4byte sub_80B0EF0 - thumb_func_end sub_80B0E80 - - thumb_func_start sub_80B0EF0 -sub_80B0EF0: @ 80B0EF0 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - cmp r2, 0 - beq _080B0F02 - cmp r2, 0x1 - beq _080B0F26 - b _080B0F60 -_080B0F02: - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080B0F60 - movs r2, 0x32 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080B0F1E - adds r0, r1, 0 - bl DestroyAnimSprite - b _080B0F60 -_080B0F1E: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _080B0F60 -_080B0F26: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B0F4E - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r0, [r1, 0x34] - adds r0, 0x1 - strh r0, [r1, 0x34] - ands r0, r2 - lsls r0, 16 - cmp r0, 0 - beq _080B0F4A - movs r0, 0x2 - b _080B0F4C -_080B0F4A: - ldr r0, _080B0F64 @ =0x0000fffe -_080B0F4C: - strh r0, [r1, 0x24] -_080B0F4E: - ldrh r0, [r1, 0x32] - subs r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - cmp r0, 0 - bne _080B0F60 - adds r0, r1, 0 - bl DestroyAnimSprite -_080B0F60: - pop {r0} - bx r0 - .align 2, 0 -_080B0F64: .4byte 0x0000fffe - thumb_func_end sub_80B0EF0 - - thumb_func_start sub_80B0F68 -sub_80B0F68: @ 80B0F68 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080B0F8C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080B0F94 - ldr r4, _080B0F90 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x4] - adds r0, r2 - b _080B0FA6 - .align 2, 0 -_080B0F8C: .4byte gUnknown_2037F02 -_080B0F90: .4byte gUnknown_2037F1A -_080B0F94: - ldr r4, _080B0FF0 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 -_080B0FA6: - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x22] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldr r3, _080B0FF4 @ =gUnknown_2037F02 - movs r4, 0x2 - ldrsh r0, [r3, r4] - lsls r0, 4 - adds r1, r0 - ldr r4, _080B0FF8 @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080B0FFC @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - movs r1, 0 - movs r0, 0 - strh r0, [r5, 0x2E] - movs r2, 0x2 - ldrsh r0, [r3, r2] - cmp r0, 0x1 - beq _080B1014 - cmp r0, 0x1 - bgt _080B1000 - cmp r0, 0 - beq _080B100A - b _080B103A - .align 2, 0 -_080B0FF0: .4byte gUnknown_2037F1B -_080B0FF4: .4byte gUnknown_2037F02 -_080B0FF8: .4byte 0x000003ff -_080B0FFC: .4byte 0xfffffc00 -_080B1000: - cmp r0, 0x2 - beq _080B1024 - cmp r0, 0x3 - beq _080B1034 - b _080B103A -_080B100A: - ldr r0, _080B1010 @ =0x0000fffd - b _080B1034 - .align 2, 0 -_080B1010: .4byte 0x0000fffd -_080B1014: - movs r0, 0x3 - strh r0, [r5, 0x3A] - ldr r0, _080B1020 @ =0x0000fffd - strh r0, [r5, 0x3C] - b _080B1042 - .align 2, 0 -_080B1020: .4byte 0x0000fffd -_080B1024: - ldr r0, _080B1030 @ =0x0000fffd - strh r0, [r5, 0x3A] - movs r0, 0x3 - strh r0, [r5, 0x3C] - b _080B1042 - .align 2, 0 -_080B1030: .4byte 0x0000fffd -_080B1034: - strh r0, [r5, 0x3A] - strh r0, [r5, 0x3C] - b _080B1042 -_080B103A: - adds r0, r5, 0 - bl DestroyAnimSprite - b _080B1046 -_080B1042: - ldr r0, _080B104C @ =sub_80B1050 - str r0, [r5, 0x1C] -_080B1046: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B104C: .4byte sub_80B1050 - thumb_func_end sub_80B0F68 - - thumb_func_start sub_80B1050 -sub_80B1050: @ 80B1050 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x3A] - ldrh r2, [r1, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x3C] - ldrh r2, [r1, 0x22] - adds r0, r2 - strh r0, [r1, 0x22] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080B1078 - adds r0, r1, 0 - bl DestroyAnimSprite -_080B1078: - pop {r0} - bx r0 - thumb_func_end sub_80B1050 - - thumb_func_start sub_80B107C -sub_80B107C: @ 80B107C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B10C8 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B10D8 - ldr r4, _080B10CC @ =sBattler_AI - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080B10D0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - ldr r0, _080B10D4 @ =gUnknown_2037F1B - b _080B10F4 - .align 2, 0 -_080B10C8: .4byte gUnknown_2037F02 -_080B10CC: .4byte sBattler_AI -_080B10D0: .4byte gUnknown_2037F1A -_080B10D4: .4byte gUnknown_2037F1B -_080B10D8: - ldr r0, _080B1110 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - ldr r0, _080B1114 @ =gUnknown_2037F1A -_080B10F4: - ldrb r0, [r0] - strh r0, [r5, 0x3C] - movs r0, 0 - strh r0, [r5, 0x2E] - movs r0, 0xC - strh r0, [r5, 0x30] - movs r0, 0x8 - strh r0, [r5, 0x32] - ldr r0, _080B1118 @ =sub_80B111C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1110: .4byte gUnknown_2037F1B -_080B1114: .4byte gUnknown_2037F1A -_080B1118: .4byte sub_80B111C - thumb_func_end sub_80B107C - - thumb_func_start sub_80B111C -sub_80B111C: @ 80B111C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB4 - bne _080B1178 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080B1180 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B1184 @ =sub_807563C - str r0, [r4, 0x1C] -_080B1178: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1180: .4byte move_anim_8074EE0 -_080B1184: .4byte sub_807563C - thumb_func_end sub_80B111C - - thumb_func_start sub_80B1188 -sub_80B1188: @ 80B1188 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B11D4 @ =gUnknown_2037F02 - ldrh r0, [r4] - strh r0, [r5, 0x20] - movs r2, 0x78 - strh r2, [r5, 0x22] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x2E] - adds r0, r5, 0 - adds r0, 0x36 - adds r1, r5, 0 - adds r1, 0x38 - lsls r2, 8 - bl sub_80765C0 - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x3A] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x4 - ldrsh r0, [r4, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080B11D8 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080B11DC @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r0, _080B11E0 @ =sub_80B11E4 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B11D4: .4byte gUnknown_2037F02 -_080B11D8: .4byte 0x000003ff -_080B11DC: .4byte 0xfffffc00 -_080B11E0: .4byte sub_80B11E4 - thumb_func_end sub_80B1188 - - thumb_func_start sub_80B11E4 -sub_80B11E4: @ 80B11E4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _080B1236 - movs r2, 0x36 - ldrsh r0, [r7, r2] - movs r2, 0x38 - ldrsh r1, [r7, r2] - bl sub_80765C8 - adds r4, r0, 0 - movs r1, 0x3A - ldrsh r0, [r7, r1] - subs r4, r0 - adds r0, r7, 0 - adds r0, 0x36 - adds r1, r7, 0 - adds r1, 0x38 - adds r2, r4, 0 - bl sub_80765C0 - asrs r4, 8 - strh r4, [r7, 0x22] - lsls r4, 16 - asrs r4, 16 - movs r0, 0x8 - negs r0, r0 - cmp r4, r0 - bge _080B122E - adds r0, r7, 0 - bl DestroyAnimSprite - b _080B128C -_080B122E: - ldrh r0, [r7, 0x2E] - subs r0, 0x1 - strh r0, [r7, 0x2E] - b _080B128C -_080B1236: - ldr r4, _080B1298 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r2, _080B129C @ =gUnknown_2037F1B - mov r8, r2 - ldrb r0, [r2] - movs r1, 0x2 - bl sub_8074480 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - subs r4, r6 - strh r4, [r7, 0x2E] - lsrs r0, 24 - subs r0, r5 - strh r0, [r7, 0x30] - ldrh r0, [r7, 0x20] - lsls r0, 4 - strh r0, [r7, 0x32] - ldrh r0, [r7, 0x22] - lsls r0, 4 - strh r0, [r7, 0x34] - ldr r0, _080B12A0 @ =sub_80B12A4 - str r0, [r7, 0x1C] -_080B128C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B1298: .4byte gUnknown_2037F1A -_080B129C: .4byte gUnknown_2037F1B -_080B12A0: .4byte sub_80B12A4 - thumb_func_end sub_80B11E4 - - thumb_func_start sub_80B12A4 -sub_80B12A4: @ 80B12A4 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x34] - adds r1, r3 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r3, r1, 20 - strh r3, [r2, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080B12DE - adds r1, r3, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080B12DE - cmp r1, 0x78 - ble _080B12E4 -_080B12DE: - adds r0, r2, 0 - bl DestroyAnimSprite -_080B12E4: - pop {r0} - bx r0 - thumb_func_end sub_80B12A4 - - thumb_func_start sub_80B12E8 -sub_80B12E8: @ 80B12E8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B131C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B132C - ldr r4, _080B1320 @ =sBattler_AI - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080B1324 @ =gUnknown_2037F1B - ldrb r4, [r0] - ldr r0, _080B1328 @ =gUnknown_2037F1A - b _080B1332 - .align 2, 0 -_080B131C: .4byte gUnknown_2037F02 -_080B1320: .4byte sBattler_AI -_080B1324: .4byte gUnknown_2037F1B -_080B1328: .4byte gUnknown_2037F1A -_080B132C: - ldr r0, _080B1364 @ =gUnknown_2037F1A - ldrb r4, [r0] - ldr r0, _080B1368 @ =gUnknown_2037F1B -_080B1332: - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B136C - ldrb r2, [r5, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x8 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x47 - b _080B1386 - .align 2, 0 -_080B1364: .4byte gUnknown_2037F1A -_080B1368: .4byte gUnknown_2037F1B -_080B136C: - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B138C - ldrb r2, [r5, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x18 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x57 -_080B1386: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] -_080B138C: - movs r0, 0x10 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080B13CC @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B13D0 @ =sub_807563C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B13CC: .4byte DestroyAnimSprite -_080B13D0: .4byte sub_807563C - thumb_func_end sub_80B12E8 - - thumb_func_start sub_80B13D4 -sub_80B13D4: @ 80B13D4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080B13EA - adds r0, r4, 0 - bl DestroyAnimSprite -_080B13EA: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B13D4 - - thumb_func_start sub_80B13F8 -sub_80B13F8: @ 80B13F8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080B1474 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080B1478 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1] - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x34] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x36] - ldr r0, _080B147C @ =gUnknown_2037F16 - ldrb r6, [r0] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B1442 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080B1442: - movs r0, 0x1 - ands r6, r0 - cmp r6, 0 - beq _080B1456 - ldrh r0, [r5, 0x32] - negs r0, r0 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] -_080B1456: - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x32] - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x34] - strh r0, [r5, 0x26] - ldr r0, _080B1480 @ =sub_80B13D4 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B1474: .4byte gUnknown_2037F1B -_080B1478: .4byte gUnknown_2037F02 -_080B147C: .4byte gUnknown_2037F16 -_080B1480: .4byte sub_80B13D4 - thumb_func_end sub_80B13F8 - - thumb_func_start sub_80B1484 -sub_80B1484: @ 80B1484 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B149C @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B14A0 - adds r0, r4, 0 - movs r1, 0 - bl sub_8075160 - b _080B14A8 - .align 2, 0 -_080B149C: .4byte gUnknown_2037F02 -_080B14A0: - adds r0, r4, 0 - movs r1, 0 - bl sub_8075114 -_080B14A8: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B14BC - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - b _080B14D2 -_080B14BC: - ldr r0, _080B14E4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B14D2 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080B14D2: - ldr r0, _080B14E8 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldr r1, _080B14EC @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B14E4: .4byte gUnknown_2037F1A -_080B14E8: .4byte sub_8074F6C -_080B14EC: .4byte DestroyAnimSprite - thumb_func_end sub_80B1484 - - thumb_func_start sub_80B14F0 -sub_80B14F0: @ 80B14F0 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B152A - ldrh r0, [r4, 0x30] - adds r0, 0x28 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080B152A - adds r0, r4, 0 - bl DestroyAnimSprite -_080B152A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B14F0 - - thumb_func_start sub_80B1530 -sub_80B1530: @ 80B1530 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080B1560 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B1568 - cmp r0, 0x1 - bgt _080B1582 - cmp r0, 0 - bne _080B1582 - movs r0, 0 - bl sub_8075458 - ldr r0, _080B1564 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r4, 0x18] - b _080B157A - .align 2, 0 -_080B1560: .4byte gTasks -_080B1564: .4byte gUnknown_2037F02 -_080B1568: - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B158E -_080B157A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B158E -_080B1582: - movs r2, 0xA0 - lsls r2, 3 - adds r0, r2, 0 - ldrh r1, [r4, 0x1A] - adds r0, r1 - strh r0, [r4, 0x1A] -_080B158E: - movs r2, 0xB0 - lsls r2, 4 - adds r0, r2, 0 - ldrh r1, [r4, 0x1C] - adds r0, r1 - strh r0, [r4, 0x1C] - ldr r0, _080B15BC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B15C4 - ldr r1, _080B15C0 @ =gUnknown_2022980 - ldrh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - adds r7, r1, 0 - b _080B15D4 - .align 2, 0 -_080B15BC: .4byte gUnknown_2037F1B -_080B15C0: .4byte gUnknown_2022980 -_080B15C4: - ldr r2, _080B1614 @ =gUnknown_2022980 - ldrh r1, [r4, 0x1A] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - adds r7, r2, 0 -_080B15D4: - ldr r3, _080B1618 @ =gUnknown_2022982 - ldrh r2, [r4, 0x1C] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - movs r0, 0xFF - ldrb r1, [r4, 0x1A] - movs r5, 0 - strh r1, [r4, 0x1A] - ands r0, r2 - strh r0, [r4, 0x1C] - ldr r0, _080B161C @ =gUnknown_2037F02 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080B160C - strh r5, [r7] - strh r5, [r3] - movs r0, 0x1 - bl sub_8075458 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080B160C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B1614: .4byte gUnknown_2022980 -_080B1618: .4byte gUnknown_2022982 -_080B161C: .4byte gUnknown_2037F02 - thumb_func_end sub_80B1530 - - thumb_func_start sub_80B1620 -sub_80B1620: @ 80B1620 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B1674 @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B1636 - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080B1636: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x2E] - ldr r4, _080B1678 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080B167C @ =0x0000ffe2 - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_8075068 - ldr r0, _080B1680 @ =sub_80B1684 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1674: .4byte gUnknown_2037F02 -_080B1678: .4byte gUnknown_2037F1B -_080B167C: .4byte 0x0000ffe2 -_080B1680: .4byte sub_80B1684 - thumb_func_end sub_80B1620 - - thumb_func_start sub_80B1684 -sub_80B1684: @ 80B1684 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B1698 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B1698: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B1684 - - thumb_func_start sub_80B16A0 -sub_80B16A0: @ 80B16A0 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r5, _080B1714 @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B16B8 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080B16B8: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080B1718 @ =gUnknown_2037F1B - ldrb r0, [r0] - mov r6, sp - adds r6, 0x2 - movs r1, 0x1 - mov r2, sp - adds r3, r6, 0 - bl sub_8076D9C - ldr r0, _080B171C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B16E6 - ldrh r0, [r5, 0x8] - negs r0, r0 - strh r0, [r5, 0x8] -_080B16E6: - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - mov r1, sp - ldrh r0, [r5, 0x8] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - ldrh r6, [r6] - adds r0, r6 - strh r0, [r4, 0x36] - ldr r0, _080B1720 @ =0x0000ffe2 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_8075068 - ldr r0, _080B1724 @ =sub_80B1728 - str r0, [r4, 0x1C] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B1714: .4byte gUnknown_2037F02 -_080B1718: .4byte gUnknown_2037F1B -_080B171C: .4byte gUnknown_2037F1A -_080B1720: .4byte 0x0000ffe2 -_080B1724: .4byte sub_80B1728 - thumb_func_end sub_80B16A0 - - thumb_func_start sub_80B1728 -sub_80B1728: @ 80B1728 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B173C - adds r0, r4, 0 - bl DestroyAnimSprite -_080B173C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B1728 - - thumb_func_start sub_80B1744 -sub_80B1744: @ 80B1744 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B1790 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r1, [r5] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80754B8 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x38] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x3A] - ldr r0, _080B1794 @ =sub_80B1798 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1790: .4byte gUnknown_2037F02 -_080B1794: .4byte sub_80B1798 - thumb_func_end sub_80B1744 - - thumb_func_start sub_80B1798 -sub_80B1798: @ 80B1798 - push {r4,lr} - adds r4, r0, 0 - bl sub_8074D00 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x38] - subs r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - ldrh r1, [r4, 0x3A] - subs r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B17BE - adds r0, r4, 0 - bl DestroyAnimSprite -_080B17BE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B1798 - - thumb_func_start sub_80B17C4 -sub_80B17C4: @ 80B17C4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B1824 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_8076D9C - ldr r0, _080B1828 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B17F0 - ldr r1, _080B182C @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080B17F0: - ldr r0, _080B182C @ =gUnknown_2037F02 - ldrh r2, [r0] - ldrh r1, [r4, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - ldrh r1, [r0, 0x2] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - ldrh r3, [r0, 0x8] - strh r3, [r4, 0x2E] - ldrh r0, [r0, 0x4] - adds r2, r0 - strh r2, [r4, 0x32] - adds r1, r3 - strh r1, [r4, 0x36] - ldr r0, _080B1830 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080B1834 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1824: .4byte gUnknown_2037F1B -_080B1828: .4byte gUnknown_2037F1A -_080B182C: .4byte gUnknown_2037F02 -_080B1830: .4byte sub_8075590 -_080B1834: .4byte DestroyAnimSprite - thumb_func_end sub_80B17C4 - - thumb_func_start sub_80B1838 -sub_80B1838: @ 80B1838 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B1850 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B1854 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - b _080B188A - .align 2, 0 -_080B1850: .4byte gUnknown_2037F02 -_080B1854: - ldr r0, _080B1894 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_8076D9C - ldr r0, _080B1898 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B187A - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080B187A: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080B188A: - ldr r0, _080B189C @ =sub_80B18A0 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1894: .4byte gUnknown_2037F1B -_080B1898: .4byte gUnknown_2037F1A -_080B189C: .4byte sub_80B18A0 - thumb_func_end sub_80B1838 - - thumb_func_start sub_80B18A0 -sub_80B18A0: @ 80B18A0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B18DC - adds r0, r4, 0 - bl DestroyAnimSprite -_080B18DC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B18A0 - - thumb_func_start sub_80B18E4 -sub_80B18E4: @ 80B18E4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075114 - ldrh r0, [r4, 0x22] - adds r0, 0x14 - strh r0, [r4, 0x22] - movs r0, 0xBF - strh r0, [r4, 0x30] - ldr r1, _080B1908 @ =sub_80B190C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1908: .4byte sub_80B190C - thumb_func_end sub_80B18E4 - - thumb_func_start sub_80B190C -sub_80B190C: @ 80B190C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x47 - bne _080B1946 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B1946: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B190C - - thumb_func_start sub_80B194C -sub_80B194C: @ 80B194C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B197C @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r1, _080B1980 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x8] - ldrh r0, [r1] - strh r0, [r4, 0xA] - ldr r0, _080B1984 @ =0x00002719 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - ldr r0, _080B1988 @ =sub_80B198C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B197C: .4byte gTasks -_080B1980: .4byte gUnknown_2037F02 -_080B1984: .4byte 0x00002719 -_080B1988: .4byte sub_80B198C - thumb_func_end sub_80B194C - - thumb_func_start sub_80B198C -sub_80B198C: @ 80B198C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080B1A0C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r1, r0, 0x1 - strh r1, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r4, 0xA - ldrsh r1, [r3, r4] - adds r7, r2, 0 - cmp r0, r1 - bne _080B19EA - movs r0, 0 - strh r0, [r3, 0x1C] - ldrb r0, [r3, 0xC] - ldr r2, _080B1A10 @ =gPlttBufferFaded - lsls r0, 4 - movs r3, 0x84 - lsls r3, 1 - adds r1, r0, r3 - lsls r1, 1 - adds r1, r2 - ldrh r6, [r1] - movs r4, 0x7 - mov r12, r0 - ldr r0, _080B1A14 @ =0x00000107 - add r0, r12 - lsls r0, 1 - adds r3, r0, r2 -_080B19D2: - ldrh r0, [r3] - strh r0, [r1] - subs r3, 0x2 - subs r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bgt _080B19D2 - ldr r0, _080B1A18 @ =0x00000101 - add r0, r12 - lsls r0, 1 - adds r0, r2 - strh r6, [r0] -_080B19EA: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r7 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bne _080B1A04 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B1A04: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B1A0C: .4byte gTasks -_080B1A10: .4byte gPlttBufferFaded -_080B1A14: .4byte 0x00000107 -_080B1A18: .4byte 0x00000101 - thumb_func_end sub_80B198C - - thumb_func_start sub_80B1A1C -sub_80B1A1C: @ 80B1A1C - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080B1A88 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B1A3C - ldr r1, _080B1A8C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080B1A3C: - ldr r4, _080B1A8C @ =gUnknown_2037F02 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldr r5, _080B1A90 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080B1A94 @ =sub_8074F50 - str r0, [r6, 0x1C] - ldr r1, _080B1A98 @ =sub_80B1A9C - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B1A88: .4byte gUnknown_2037F1A -_080B1A8C: .4byte gUnknown_2037F02 -_080B1A90: .4byte gUnknown_2037F1B -_080B1A94: .4byte sub_8074F50 -_080B1A98: .4byte sub_80B1A9C - thumb_func_end sub_80B1A1C - - thumb_func_start sub_80B1A9C -sub_80B1A9C: @ 80B1A9C - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080B1AB0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B1AB0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B1A9C - - thumb_func_start sub_80B1AB8 -sub_80B1AB8: @ 80B1AB8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B1B54 @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B1AE4 - ldr r1, _080B1B58 @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080B1AE4: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B1AFC - ldr r0, _080B1B58 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0x6] - negs r1, r1 - strh r1, [r0, 0x6] -_080B1AFC: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - ldr r2, _080B1B58 @ =gUnknown_2037F02 - ldrh r1, [r2] - ldrh r3, [r5, 0x20] - adds r1, r3 - strh r1, [r5, 0x20] - lsrs r0, 24 - ldrh r1, [r2, 0x2] - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r0, [r2, 0x8] - strh r0, [r5, 0x2E] - movs r3, 0xC - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080B1B60 - ldr r4, _080B1B5C @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080B1B72 - .align 2, 0 -_080B1B54: .4byte gUnknown_2037F1A -_080B1B58: .4byte gUnknown_2037F02 -_080B1B5C: .4byte gUnknown_2037F1B -_080B1B60: - ldr r0, _080B1BA0 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_8076D9C -_080B1B72: - ldr r4, _080B1BA4 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x4] - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x6] - ldrh r3, [r5, 0x36] - adds r0, r3 - strh r0, [r5, 0x36] - ldr r0, _080B1BA8 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080B1BAC @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldrb r1, [r4, 0xA] - adds r0, r5, 0 - bl SeekSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1BA0: .4byte gUnknown_2037F1B -_080B1BA4: .4byte gUnknown_2037F02 -_080B1BA8: .4byte sub_8075590 -_080B1BAC: .4byte DestroyAnimSprite - thumb_func_end sub_80B1AB8 - - thumb_func_start sub_80B1BB0 -sub_80B1BB0: @ 80B1BB0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080B1BEC @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080B1BF0 @ =sub_80B1BF8 - str r0, [r4, 0x1C] - movs r0, 0 - bl GetAnimBankSpriteId - ldr r2, _080B1BF4 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1BEC: .4byte gUnknown_2037F02 -_080B1BF0: .4byte sub_80B1BF8 -_080B1BF4: .4byte gSprites - thumb_func_end sub_80B1BB0 - - thumb_func_start sub_80B1BF8 -sub_80B1BF8: @ 80B1BF8 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080B1C0C - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - b _080B1C1E -_080B1C0C: - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - subs r1, r0 - strh r1, [r2, 0x26] -_080B1C1E: - movs r3, 0x22 - ldrsh r0, [r2, r3] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080B1C36 - adds r0, r2, 0 - bl DestroyAnimSprite -_080B1C36: - pop {r0} - bx r0 - thumb_func_end sub_80B1BF8 - - thumb_func_start sub_80B1C3C -sub_80B1C3C: @ 80B1C3C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B1C64 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B1C6C - movs r0, 0x88 - lsls r0, 1 - strh r0, [r5, 0x20] - ldr r0, _080B1C68 @ =0x0000ffe0 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080B1C72 - .align 2, 0 -_080B1C64: .4byte gUnknown_2037F1A -_080B1C68: .4byte 0x0000ffe0 -_080B1C6C: - ldr r0, _080B1CB0 @ =0x0000ffe0 - strh r0, [r5, 0x20] - strh r0, [r5, 0x22] -_080B1C72: - ldr r0, _080B1CB4 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080B1CB8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080B1CBC @ =sub_80B1CC0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1CB0: .4byte 0x0000ffe0 -_080B1CB4: .4byte gUnknown_2037F02 -_080B1CB8: .4byte gUnknown_2037F1B -_080B1CBC: .4byte sub_80B1CC0 - thumb_func_end sub_80B1C3C - - thumb_func_start sub_80B1CC0 -sub_80B1CC0: @ 80B1CC0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80755E0 - ldrh r1, [r4, 0x34] - lsrs r0, r1, 8 - cmp r0, 0xC8 - bls _080B1CE8 - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0x24] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] -_080B1CE8: - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x20 - movs r1, 0x98 - lsls r1, 1 - cmp r0, r1 - bhi _080B1D0A - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - cmp r0, 0xA0 - ble _080B1D30 -_080B1D0A: - movs r0, 0 - bl GetAnimBankSpriteId - ldr r2, _080B1D38 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyAnimSprite -_080B1D30: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1D38: .4byte gSprites - thumb_func_end sub_80B1CC0 - - thumb_func_start sub_80B1D3C -sub_80B1D3C: @ 80B1D3C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080B1D7C - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B1D6E - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_080B1D6E: - adds r0, r4, 0 - bl DestroySprite - ldr r1, _080B1D84 @ =gUnknown_2037EE2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080B1D7C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1D84: .4byte gUnknown_2037EE2 - thumb_func_end sub_80B1D3C - - thumb_func_start sub_80B1D88 -sub_80B1D88: @ 80B1D88 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r5, r7, 0 - adds r5, 0x2E - ldr r0, _080B1DA8 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080B1DB0 - ldr r0, _080B1DAC @ =gUnknown_2037F1A - b _080B1DB2 - .align 2, 0 -_080B1DA8: .4byte gUnknown_2037F02 -_080B1DAC: .4byte gUnknown_2037F1A -_080B1DB0: - ldr r0, _080B1E5C @ =gUnknown_2037F1B -_080B1DB2: - ldrb r6, [r0] - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B1DC8 - ldr r1, _080B1E60 @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080B1DC8: - adds r0, r6, 0 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080B1E60 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r7, 0x20] - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - ldrh r1, [r4, 0x2] - lsrs r0, 24 - adds r1, r0, r1 - strh r1, [r7, 0x22] - lsls r1, 8 - strh r1, [r5, 0x8] - ldrh r1, [r4, 0xC] - adds r0, r1 - lsls r0, 1 - ldrh r2, [r5, 0xE] - movs r1, 0x1 - ands r1, r2 - orrs r1, r0 - strh r1, [r5, 0xE] - ldrb r0, [r5] - movs r2, 0x4 - mov r8, r2 - mov r1, r8 - orrs r0, r1 - strb r0, [r5] - ldrh r0, [r4, 0x4] - ldrb r1, [r4, 0x4] - strh r1, [r5, 0x2] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0xA] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x4] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x6] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0xC] - subs r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x7F - bhi _080B1EBE - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B1E64 - adds r0, r6, 0 - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r7, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x5] - b _080B1E7C - .align 2, 0 -_080B1E5C: .4byte gUnknown_2037F1B -_080B1E60: .4byte gUnknown_2037F02 -_080B1E64: - adds r0, r6, 0 - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] -_080B1E7C: - ldrb r1, [r5, 0xE] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r1 - strb r0, [r5, 0xE] - movs r2, 0x4 - ldrsh r0, [r5, r2] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _080B1F1E - adds r3, r7, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r0, r2, 31 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - b _080B1F16 -_080B1EBE: - adds r0, r6, 0 - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] - ldrb r0, [r5, 0xE] - movs r4, 0x1 - orrs r0, r4 - strb r0, [r5, 0xE] - movs r1, 0x4 - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080B1F1E - adds r3, r7, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - ands r1, r4 - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - mov r2, r8 - orrs r0, r2 -_080B1F16: - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] -_080B1F1E: - ldrh r1, [r5, 0x2] - lsrs r1, 6 - lsls r1, 4 - ldrb r2, [r5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldr r3, _080B1F88 @ =gUnknown_825E074 - ldrh r0, [r5, 0x2] - lsls r0, 1 - adds r0, r3 - movs r2, 0 - ldrsh r1, [r0, r2] - ldrb r0, [r5, 0xC] - muls r0, r1 - asrs r0, 8 - strh r0, [r7, 0x24] - ldrb r2, [r7, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r1, 0x24 - ldrsh r0, [r7, r1] - negs r0, r0 - asrs r0, 1 - ldrb r5, [r5, 0xA] - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r4, [r1] - ldr r1, _080B1F8C @ =gOamMatrices - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r4, [r2, 0x2] - lsls r0, r4, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldr r0, _080B1F90 @ =sub_80B1F94 - str r0, [r7, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B1F88: .4byte gUnknown_825E074 -_080B1F8C: .4byte gOamMatrices -_080B1F90: .4byte sub_80B1F94 - thumb_func_end sub_80B1D88 - - thumb_func_start sub_80B1F94 -sub_80B1F94: @ 80B1F94 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r6, 0 - adds r4, r5, 0 - adds r4, 0x2E - ldrb r2, [r4] - movs r7, 0x1 - movs r0, 0x1 - mov r9, r0 - ands r0, r2 - cmp r0, 0 - beq _080B1FCE - ldrb r0, [r4, 0x1] - adds r1, r0, 0 - adds r1, 0xFF - strb r1, [r4, 0x1] - lsls r0, 24 - cmp r0, 0 - beq _080B1FC2 - b _080B24AA -_080B1FC2: - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080B24AA -_080B1FCE: - ldrh r0, [r4, 0x2] - lsrs r1, r0, 6 - mov r12, r0 - cmp r1, 0x1 - bne _080B1FDA - b _080B20FE -_080B1FDA: - cmp r1, 0x1 - bgt _080B1FE4 - cmp r1, 0 - beq _080B1FF2 - b _080B23F0 -_080B1FE4: - cmp r1, 0x2 - bne _080B1FEA - b _080B21F2 -_080B1FEA: - cmp r1, 0x3 - bne _080B1FF0 - b _080B22E6 -_080B1FF0: - b _080B23F0 -_080B1FF2: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080B2006 - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080B20F4 -_080B2006: - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080B2028 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - strb r1, [r4] - strb r6, [r4, 0x1] - b _080B20F4 -_080B2028: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080B20F4 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B20E6 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B20B6 - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B209C - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B20D4 -_080B209C: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B20D4 -_080B20B6: - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B20CA - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - b _080B20D2 -_080B20CA: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC -_080B20D2: - strb r0, [r1] -_080B20D4: - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080B20E6: - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, 0x2] - mov r12, r1 -_080B20F4: - ldrb r1, [r4] - movs r0, 0xF - ands r0, r1 - strb r0, [r4] - b _080B23F0 -_080B20FE: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0 - bne _080B210C - movs r0, 0x8 - orrs r0, r2 - b _080B2114 -_080B210C: - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080B211C - adds r0, r2, 0 -_080B2114: - orrs r0, r7 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080B21E8 -_080B211C: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080B21E8 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B21DA - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B21AA - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B2190 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B21C8 -_080B2190: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B21C8 -_080B21AA: - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B21BE - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - b _080B21C6 -_080B21BE: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC -_080B21C6: - strb r0, [r1] -_080B21C8: - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080B21DA: - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, 0x2] - mov r12, r1 -_080B21E8: - ldrb r0, [r4] - movs r1, 0xF - ands r1, r0 - movs r0, 0x10 - b _080B23EC -_080B21F2: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080B2200 - movs r0, 0x8 - orrs r0, r2 - b _080B2208 -_080B2200: - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080B2210 - adds r0, r2, 0 -_080B2208: - orrs r0, r7 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080B22DC -_080B2210: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080B22DC - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B22CE - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B229E - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B2284 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B22BC -_080B2284: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B22BC -_080B229E: - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B22B2 - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - b _080B22BA -_080B22B2: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC -_080B22BA: - strb r0, [r1] -_080B22BC: - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080B22CE: - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, 0x2] - mov r12, r1 -_080B22DC: - ldrb r0, [r4] - movs r1, 0xF - ands r1, r0 - movs r0, 0x20 - b _080B23EC -_080B22E6: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080B22F6 - movs r0, 0x8 - orrs r0, r2 - strb r0, [r4] - b _080B23E4 -_080B22F6: - lsrs r0, r1, 28 - cmp r0, 0 - bne _080B2318 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - strb r1, [r4] - strb r6, [r4, 0x1] - b _080B23E4 -_080B2318: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080B23E4 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B23D6 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B23A6 - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B238C - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B23C4 -_080B238C: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B23C4 -_080B23A6: - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B23BA - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - b _080B23C2 -_080B23BA: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC -_080B23C2: - strb r0, [r1] -_080B23C4: - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080B23D6: - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, 0x2] - mov r12, r1 -_080B23E4: - ldrb r0, [r4] - movs r1, 0xF - ands r1, r0 - movs r0, 0x30 -_080B23EC: - orrs r1, r0 - strb r1, [r4] -_080B23F0: - ldrb r1, [r4] - lsls r1, 30 - lsrs r1, 31 - adds r0, r4, 0 - adds r0, 0xC - adds r0, r1 - ldrb r1, [r0] - ldr r3, _080B2478 @ =gUnknown_825E074 - mov r2, r12 - lsls r0, r2, 1 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x24] - ldrb r2, [r5, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r1, 0x24 - ldrsh r0, [r5, r1] - negs r0, r0 - asrs r0, 1 - ldrb r1, [r4, 0xA] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r6, [r1] - ldr r1, _080B247C @ =gOamMatrices - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r6, [r2, 0x2] - lsls r0, r6, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldrh r0, [r4, 0x6] - ldrh r2, [r4, 0x8] - adds r0, r2 - strh r0, [r4, 0x8] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080B2480 - ldrh r0, [r4, 0x4] - subs r1, 0x1 - ands r1, r0 - ldrh r0, [r4, 0x2] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2] - b _080B2490 - .align 2, 0 -_080B2478: .4byte gUnknown_825E074 -_080B247C: .4byte gOamMatrices -_080B2480: - ldrh r0, [r4, 0x4] - ldr r1, _080B24B8 @ =0x00007fff - ands r1, r0 - ldrh r2, [r4, 0x2] - adds r1, r2 - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0x2] -_080B2490: - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - ldrh r0, [r4, 0xE] - lsrs r0, 1 - cmp r1, r0 - blt _080B24AA - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080B24BC @ =sub_80B1D3C - str r0, [r5, 0x1C] -_080B24AA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B24B8: .4byte 0x00007fff -_080B24BC: .4byte sub_80B1D3C - thumb_func_end sub_80B1F94 - - thumb_func_start sub_80B24C0 -sub_80B24C0: @ 80B24C0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _080B2508 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldr r5, _080B250C @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _080B2510 @ =sub_8075DF4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2508: .4byte gUnknown_2037F1B -_080B250C: .4byte gUnknown_2037F1A -_080B2510: .4byte sub_8075DF4 - thumb_func_end sub_80B24C0 - - thumb_func_start sub_80B2514 -sub_80B2514: @ 80B2514 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r5, _080B2554 @ =gUnknown_2037F02 - ldrh r0, [r5] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x34] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B25C4 - ldr r0, _080B2558 @ =gUnknown_2023BD6 - ldr r1, _080B255C @ =gUnknown_2037F1B - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B2560 - adds r0, r2, 0 - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - b _080B256E - .align 2, 0 -_080B2554: .4byte gUnknown_2037F02 -_080B2558: .4byte gUnknown_2023BD6 -_080B255C: .4byte gUnknown_2037F1B -_080B2560: - adds r0, r2, 0 - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x28 -_080B256E: - strh r0, [r4, 0x3C] - ldr r0, _080B259C @ =gUnknown_2037F02 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080B25A4 - ldr r0, _080B25A0 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080B25D8 - .align 2, 0 -_080B259C: .4byte gUnknown_2037F02 -_080B25A0: .4byte gUnknown_2037F1B -_080B25A4: - ldr r0, _080B25C0 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080B25D8 - .align 2, 0 -_080B25C0: .4byte gUnknown_2037F1B -_080B25C4: - ldr r0, _080B267C @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r4, 0x3C] -_080B25D8: - ldr r5, _080B2680 @ =gUnknown_825E074 - ldrh r3, [r4, 0x30] - movs r1, 0xFF - ands r1, r3 - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - movs r2, 0 - strh r0, [r4, 0x36] - adds r1, 0x40 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r4, 0x38] - strh r2, [r4, 0x3A] - strh r2, [r4, 0x26] - strh r2, [r4, 0x24] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r6, r0, 27 - lsls r3, 16 - lsrs r3, 24 - strh r3, [r4, 0x30] - bl Random - lsls r0, 16 - asrs r7, r0, 16 - movs r0, 0x80 - lsls r0, 8 - ands r0, r7 - cmp r0, 0 - beq _080B2622 - ldrh r1, [r4, 0x30] - movs r0, 0xFF - subs r0, r1 - strh r0, [r4, 0x30] -_080B2622: - movs r0, 0x30 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r3, _080B2684 @ =gOamMatrices - lsls r2, r6, 3 - adds r2, r3 - adds r1, 0x40 - lsls r1, 1 - adds r1, r5 - ldrh r1, [r1] - strh r1, [r2, 0x6] - strh r1, [r2] - strh r0, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - adds r3, r4, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - movs r0, 0x1 - ands r0, r7 - cmp r0, 0 - beq _080B2672 - adds r2, r4, 0 - adds r2, 0x2A - movs r1, 0x1 - movs r0, 0x1 - strb r0, [r2] - ldrb r0, [r3] - orrs r0, r1 - strb r0, [r3] -_080B2672: - ldr r0, _080B2688 @ =sub_80B268C - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B267C: .4byte gUnknown_2037F1B -_080B2680: .4byte gUnknown_825E074 -_080B2684: .4byte gOamMatrices -_080B2688: .4byte sub_80B268C - thumb_func_end sub_80B2514 - - thumb_func_start sub_80B268C -sub_80B268C: @ 80B268C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r4, 0 - adds r5, 0x2E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r1, 0 - mov r8, r1 - movs r7, 0 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080B2770 - movs r2, 0x36 - ldrsh r1, [r4, r2] - movs r2, 0x3A - ldrsh r0, [r4, r2] - muls r0, r1 - asrs r6, r0, 8 - strh r6, [r4, 0x24] - movs r0, 0x38 - ldrsh r1, [r4, r0] - movs r2, 0x3A - ldrsh r0, [r4, r2] - muls r0, r1 - asrs r3, r0, 8 - strh r3, [r4, 0x26] - ldrh r2, [r4, 0x34] - movs r1, 0xFF - adds r0, r1, 0 - ands r0, r2 - ldrh r2, [r4, 0x3A] - adds r0, r2 - strh r0, [r4, 0x3A] - ldrh r2, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - ands r1, r2 - cmp r0, r1 - blt _080B2770 - ldrh r0, [r4, 0x20] - adds r0, r6 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - strh r7, [r4, 0x24] - strh r7, [r4, 0x26] - mov r0, sp - adds r1, r5, 0 - movs r2, 0x10 - bl memcpy - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x10 - bl memset - ldrh r0, [r4, 0x22] - lsls r0, 8 - strh r0, [r5, 0x8] - mov r0, sp - ldrh r0, [r0, 0x6] - lsrs r1, r0, 8 - strh r1, [r5, 0x6] - strh r7, [r5, 0x2] - mov r0, sp - ldrh r0, [r0, 0x2] - strh r0, [r5, 0xA] - adds r0, r4, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0 - beq _080B2740 - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080B2738 - ldr r0, _080B2734 @ =0x00008001 - b _080B274E - .align 2, 0 -_080B2734: .4byte 0x00008001 -_080B2738: - ldr r0, _080B273C @ =0x00008002 - b _080B274E - .align 2, 0 -_080B273C: .4byte 0x00008002 -_080B2740: - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080B274C - movs r0, 0x1 - b _080B274E -_080B274C: - movs r0, 0x2 -_080B274E: - strh r0, [r5, 0x4] - mov r0, sp - ldrh r0, [r0, 0x4] - lsrs r0, 8 - strb r0, [r5, 0xC] - subs r0, 0x2 - strb r0, [r5, 0xD] - mov r0, sp - ldrh r1, [r0, 0xE] - lsls r1, 1 - ldrh r2, [r5, 0xE] - movs r0, 0x1 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0xE] - ldr r0, _080B277C @ =sub_80B1F94 - str r0, [r4, 0x1C] -_080B2770: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B277C: .4byte sub_80B1F94 - thumb_func_end sub_80B268C - - thumb_func_start sub_80B2780 -sub_80B2780: @ 80B2780 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B2798 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B279C - adds r0, r5, 0 - movs r1, 0 - bl sub_8075160 - b _080B27A4 - .align 2, 0 -_080B2798: .4byte gUnknown_2037F02 -_080B279C: - adds r0, r5, 0 - movs r1, 0 - bl sub_8075114 -_080B27A4: - ldr r4, _080B280C @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B27BC - ldr r0, _080B2810 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B27D2 -_080B27BC: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080B27D8 - ldr r0, _080B2814 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B27D8 -_080B27D2: - ldrh r0, [r5, 0x20] - adds r0, 0x8 - strh r0, [r5, 0x20] -_080B27D8: - ldr r4, _080B280C @ =gUnknown_2037F02 - ldrb r1, [r4, 0x8] - adds r0, r5, 0 - bl SeekSpriteAnim - ldrh r0, [r5, 0x20] - subs r0, 0x20 - strh r0, [r5, 0x20] - ldr r0, _080B2818 @ =0x00000ccc - strh r0, [r5, 0x30] - ldrh r1, [r4, 0x8] - movs r0, 0xC - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 - ldrh r2, [r5, 0x24] - adds r0, r2 - strh r0, [r5, 0x24] - strh r1, [r5, 0x2E] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x3C] - ldr r0, _080B281C @ =sub_80B2820 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B280C: .4byte gUnknown_2037F02 -_080B2810: .4byte gUnknown_2037F1A -_080B2814: .4byte gUnknown_2037F1B -_080B2818: .4byte 0x00000ccc -_080B281C: .4byte sub_80B2820 - thumb_func_end sub_80B2780 - - thumb_func_start sub_80B2820 -sub_80B2820: @ 80B2820 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080B284A - strh r1, [r4, 0x2E] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl StartSpriteAnim -_080B284A: - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B2862 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B2862: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B2820 - - thumb_func_start sub_80B2868 -sub_80B2868: @ 80B2868 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080B2900 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - ldrh r0, [r7, 0x8] - movs r1, 0x1F - ands r0, r1 - cmp r0, 0 - bne _080B28E2 - ldr r1, _080B2904 @ =gUnknown_2037EE2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r1, 0x8 - ldrsh r0, [r7, r1] - movs r5, 0xD - negs r5, r5 - adds r1, r5, 0 - bl Sin - ldr r4, _080B2908 @ =gUnknown_2037F02 - strh r0, [r4] - movs r1, 0x8 - ldrsh r0, [r7, r1] - adds r1, r5, 0 - bl Cos - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r4, 0x4] - movs r0, 0x3 - strh r0, [r4, 0x6] - ldr r0, _080B290C @ =gUnknown_83E7C98 - mov r8, r0 - ldr r5, _080B2910 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0x3 - bl CreateSpriteAndAnimate -_080B28E2: - ldrh r0, [r7, 0x8] - adds r0, 0x8 - strh r0, [r7, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080B28F6 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080B28F6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B2900: .4byte gTasks -_080B2904: .4byte gUnknown_2037EE2 -_080B2908: .4byte gUnknown_2037F02 -_080B290C: .4byte gUnknown_83E7C98 -_080B2910: .4byte gUnknown_2037F1B - thumb_func_end sub_80B2868 - - thumb_func_start sub_80B2914 -sub_80B2914: @ 80B2914 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B2926 - cmp r0, 0x1 - beq _080B2958 - b _080B296C -_080B2926: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075160 - movs r0, 0 - bl GetAnimBankSpriteId - ldr r2, _080B2954 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B296C - .align 2, 0 -_080B2954: .4byte gSprites -_080B2958: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B296C - adds r0, r4, 0 - bl DestroyAnimSprite -_080B296C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B2914 - - thumb_func_start sub_80B2974 -sub_80B2974: @ 80B2974 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B29AC - cmp r0, 0x1 - bgt _080B298A - cmp r0, 0 - beq _080B2990 - b _080B29FE -_080B298A: - cmp r0, 0x2 - beq _080B29C0 - b _080B29FE -_080B2990: - ldr r0, _080B29A8 @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - negs r0, r0 - subs r0, 0x20 - strh r0, [r4, 0x26] - b _080B29B8 - .align 2, 0 -_080B29A8: .4byte gUnknown_2037F1B -_080B29AC: - ldrh r0, [r4, 0x26] - adds r0, 0xA - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - blt _080B29FE -_080B29B8: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B29FE -_080B29C0: - ldrh r0, [r4, 0x26] - subs r0, 0xA - strh r0, [r4, 0x26] - movs r2, 0x22 - ldrsh r0, [r4, r2] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080B29FE - movs r0, 0 - bl GetAnimBankSpriteId - ldr r2, _080B2A04 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyAnimSprite -_080B29FE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2A04: .4byte gSprites - thumb_func_end sub_80B2974 - - thumb_func_start sub_80B2A08 -sub_80B2A08: @ 80B2A08 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080B2A44 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080B2A48 @ =sub_80B2A50 - str r0, [r4, 0x1C] - movs r0, 0 - bl GetAnimBankSpriteId - ldr r2, _080B2A4C @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2A44: .4byte gUnknown_2037F02 -_080B2A48: .4byte sub_80B2A50 -_080B2A4C: .4byte gSprites - thumb_func_end sub_80B2A08 - - thumb_func_start sub_80B2A50 -sub_80B2A50: @ 80B2A50 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080B2A64 - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - b _080B2AA8 -_080B2A64: - movs r1, 0x22 - ldrsh r0, [r2, r1] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _080B2A8A - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - subs r1, r0 - strh r1, [r2, 0x26] - b _080B2AA8 -_080B2A8A: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x34] - adds r1, r0, 0x1 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080B2AA8 - ldr r0, _080B2AAC @ =sub_80B2AB0 - str r0, [r2, 0x1C] -_080B2AA8: - pop {r0} - bx r0 - .align 2, 0 -_080B2AAC: .4byte sub_80B2AB0 - thumb_func_end sub_80B2A50 - - thumb_func_start sub_80B2AB0 -sub_80B2AB0: @ 80B2AB0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] - movs r3, 0x22 - ldrsh r0, [r2, r3] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _080B2AE0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_080B2AE0: - movs r1, 0x26 - ldrsh r0, [r2, r1] - cmp r0, 0 - ble _080B2AEE - adds r0, r2, 0 - bl DestroyAnimSprite -_080B2AEE: - pop {r0} - bx r0 - thumb_func_end sub_80B2AB0 - - thumb_func_start sub_80B2AF4 -sub_80B2AF4: @ 80B2AF4 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080B2B08 - cmp r0, 0x1 - beq _080B2B60 - b _080B2BCC -_080B2B08: - ldr r0, _080B2B18 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080B2B20 - ldr r4, _080B2B1C @ =gUnknown_2037F1A - b _080B2B22 - .align 2, 0 -_080B2B18: .4byte gUnknown_2037F02 -_080B2B1C: .4byte gUnknown_2037F1A -_080B2B20: - ldr r4, _080B2B5C @ =gUnknown_2037F1B -_080B2B22: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0 - movs r3, 0x80 - lsls r3, 2 - strh r3, [r5, 0x30] - movs r2, 0x80 - lsls r2, 1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - bl sub_8075A1C - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080B2BCC - .align 2, 0 -_080B2B5C: .4byte gUnknown_2037F1B -_080B2B60: - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0xB - bgt _080B2B6E - ldrh r0, [r5, 0x30] - subs r0, 0x28 - b _080B2B72 -_080B2B6E: - ldrh r0, [r5, 0x30] - adds r0, 0x28 -_080B2B72: - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x32] - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x30 - ldrsh r3, [r5, r0] - str r1, [sp] - adds r0, r5, 0 - bl sub_8075A1C - ldrb r1, [r5, 0x3] - lsls r1, 26 - lsrs r1, 27 - movs r0, 0xF4 - lsls r0, 6 - ldr r2, _080B2BD4 @ =gOamMatrices - lsls r1, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, 0x1 - cmp r1, 0x80 - ble _080B2BAC - movs r1, 0x80 -_080B2BAC: - movs r0, 0x40 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r1, r0, 1 - strh r1, [r5, 0x26] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x18 - bne _080B2BCC - adds r0, r5, 0 - bl sub_8075AD8 - adds r0, r5, 0 - bl DestroyAnimSprite -_080B2BCC: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2BD4: .4byte gOamMatrices - thumb_func_end sub_80B2AF4 - - thumb_func_start sub_80B2BD8 -sub_80B2BD8: @ 80B2BD8 - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - ldr r4, _080B2BFC @ =0x000001ff - ands r4, r0 - bl Random - movs r1, 0x7F - ands r1, r0 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080B2C00 - movs r2, 0xB8 - lsls r2, 2 - adds r0, r4, r2 - b _080B2C08 - .align 2, 0 -_080B2BFC: .4byte 0x000001ff -_080B2C00: - movs r2, 0xB8 - lsls r2, 2 - adds r0, r2, 0 - subs r0, r4 -_080B2C08: - strh r0, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B2C1C - movs r2, 0xE0 - lsls r2, 2 - adds r0, r2, 0 - adds r0, r1, r0 - b _080B2C24 -_080B2C1C: - movs r2, 0xE0 - lsls r2, 2 - adds r0, r2, 0 - subs r0, r1 -_080B2C24: - strh r0, [r5, 0x30] - ldr r2, _080B2C4C @ =gUnknown_2037F02 - ldrh r0, [r2] - strh r0, [r5, 0x32] - lsls r0, 16 - cmp r0, 0 - beq _080B2C40 - ldrb r0, [r5, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r5, 0x3] -_080B2C40: - movs r1, 0x2 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080B2C54 - ldr r4, _080B2C50 @ =gUnknown_2037F1A - b _080B2C56 - .align 2, 0 -_080B2C4C: .4byte gUnknown_2037F02 -_080B2C50: .4byte gUnknown_2037F1A -_080B2C54: - ldr r4, _080B2C80 @ =gUnknown_2037F1B -_080B2C56: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r5, 0x22] - ldr r0, _080B2C84 @ =sub_80B2C88 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2C80: .4byte gUnknown_2037F1B -_080B2C84: .4byte sub_80B2C88 - thumb_func_end sub_80B2BD8 - - thumb_func_start sub_80B2C88 -sub_80B2C88: @ 80B2C88 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B2CA0 - ldrh r3, [r4, 0x2E] - lsls r0, r3, 16 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - b _080B2CAA -_080B2CA0: - ldrh r3, [r4, 0x2E] - lsls r1, r3, 16 - asrs r1, 24 - ldrh r0, [r4, 0x24] - subs r0, r1 -_080B2CAA: - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x30] - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r4, 0x26] - subs r0, r1 - strh r0, [r4, 0x26] - strh r3, [r4, 0x2E] - adds r0, r2, 0 - subs r0, 0x20 - strh r0, [r4, 0x30] - lsls r0, r3, 16 - cmp r0, 0 - bge _080B2CCA - movs r0, 0 - strh r0, [r4, 0x2E] -_080B2CCA: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080B2CDE - adds r0, r4, 0 - bl DestroyAnimSprite -_080B2CDE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B2C88 - - thumb_func_start sub_80B2CE4 -sub_80B2CE4: @ 80B2CE4 - movs r1, 0 - strh r1, [r0, 0x3A] - movs r1, 0x40 - strh r1, [r0, 0x3C] - ldr r1, _080B2CF4 @ =sub_80B2CF8 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080B2CF4: .4byte sub_80B2CF8 - thumb_func_end sub_80B2CE4 - - thumb_func_start sub_80B2CF8 -sub_80B2CF8: @ 80B2CF8 - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _080B2D0A - cmp r1, 0x1 - beq _080B2D58 - b _080B2D5E -_080B2D0A: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080B2D5E - strh r1, [r3, 0x30] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r2, [r1] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080B2D5E - ldrb r1, [r1] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B2D5E - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080B2D5E -_080B2D58: - adds r0, r3, 0 - bl DestroyAnimSprite -_080B2D5E: - pop {r0} - bx r0 - thumb_func_end sub_80B2CF8 - - thumb_func_start sub_80B2D64 -sub_80B2D64: @ 80B2D64 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r8, r0 - ldrh r4, [r0, 0x20] - ldrh r5, [r0, 0x22] - ldr r6, _080B2E18 @ =gUnknown_2037F1A - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - mov r2, r8 - strh r6, [r2, 0x22] - ldrh r0, [r2, 0x20] - mov r9, r0 - mov r1, r9 - lsls r0, r1, 4 - strh r0, [r2, 0x36] - lsls r0, r6, 4 - strh r0, [r2, 0x38] - lsls r4, 16 - asrs r4, 16 - movs r1, 0x20 - ldrsh r0, [r2, r1] - subs r0, r4, r0 - lsls r0, 4 - movs r1, 0xC - bl __divsi3 - mov r2, r8 - strh r0, [r2, 0x3A] - lsls r5, 16 - asrs r5, 16 - movs r1, 0x22 - ldrsh r0, [r2, r1] - subs r0, r5, r0 - lsls r0, 4 - movs r1, 0xC - bl __divsi3 - mov r2, r8 - strh r0, [r2, 0x3C] - mov r0, r9 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - subs r5, r6 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8075B30 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - mov r0, r8 - movs r1, 0x1 - adds r2, r3, 0 - bl sub_8075A1C - ldr r0, _080B2E1C @ =sub_80B2E20 - mov r2, r8 - str r0, [r2, 0x1C] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B2E18: .4byte gUnknown_2037F1A -_080B2E1C: .4byte sub_80B2E20 - thumb_func_end sub_80B2D64 - - thumb_func_start sub_80B2E20 -sub_80B2E20: @ 80B2E20 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x3C] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r3, r1, 20 - strh r3, [r2, 0x22] - adds r0, 0x2D - lsls r0, 16 - movs r1, 0xA5 - lsls r1, 17 - cmp r0, r1 - bhi _080B2E5A - adds r1, r3, 0 - cmp r1, 0x9D - bgt _080B2E5A - movs r0, 0x2D - negs r0, r0 - cmp r1, r0 - bge _080B2E60 -_080B2E5A: - adds r0, r2, 0 - bl move_anim_8074EE0 -_080B2E60: - pop {r0} - bx r0 - thumb_func_end sub_80B2E20 - - thumb_func_start sub_80B2E64 -sub_80B2E64: @ 80B2E64 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080B2E94 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B2E9C - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B2E98 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - b _080B2EBA - .align 2, 0 -_080B2E94: .4byte gUnknown_2037F02 -_080B2E98: .4byte gSprites -_080B2E9C: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B2EC8 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 -_080B2EBA: - strb r0, [r1] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2EC8: .4byte gSprites - thumb_func_end sub_80B2E64 - - thumb_func_start sub_80B2ECC -sub_80B2ECC: @ 80B2ECC - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, _080B2F84 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B2EE8 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B2EFE -_080B2EE8: - ldrb r1, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r6, 0x5] - adds r1, r6, 0 - adds r1, 0x43 - movs r0, 0xC8 - strb r0, [r1] -_080B2EFE: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B2F5A - movs r0, 0x1 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - adds r0, r4, 0 - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B2F3C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8072E48 -_080B2F3C: - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r7 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B2F5A - movs r0, 0x1 - eors r5, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8072E48 -_080B2F5A: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B2F90 - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080B2F90 - ldr r0, _080B2F84 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B2F88 - movs r0, 0x48 - strh r0, [r6, 0x20] - movs r0, 0x50 - b _080B2FCA - .align 2, 0 -_080B2F84: .4byte gUnknown_2037F1A -_080B2F88: - movs r0, 0xB0 - strh r0, [r6, 0x20] - movs r0, 0x28 - b _080B2FCA -_080B2F90: - ldr r5, _080B3000 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B2FA6 - ldr r1, _080B3004 @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080B2FA6: - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080B3004 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 -_080B2FCA: - strh r0, [r6, 0x22] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B2FDC - ldrh r0, [r6, 0x22] - adds r0, 0x9 - strh r0, [r6, 0x22] -_080B2FDC: - ldr r0, _080B3004 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x2E] - ldr r1, _080B3008 @ =sub_80B300C - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B3000: .4byte gUnknown_2037F1A -_080B3004: .4byte gUnknown_2037F02 -_080B3008: .4byte sub_80B300C - thumb_func_end sub_80B2ECC - - thumb_func_start sub_80B300C -sub_80B300C: @ 80B300C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0xD - bne _080B3038 - ldr r0, _080B3034 @ =sub_80B3044 - str r0, [r4, 0x1C] - b _080B303C - .align 2, 0 -_080B3034: .4byte sub_80B3044 -_080B3038: - adds r0, r1, 0x1 - strh r0, [r4, 0x34] -_080B303C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B300C - - thumb_func_start sub_80B3044 -sub_80B3044: @ 80B3044 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080B30A2 - movs r0, 0 - strh r0, [r3, 0x30] - ldrh r4, [r3, 0x2E] - ldr r1, _080B30A8 @ =gPlttBufferFaded - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - movs r5, 0x8 - adds r6, r1, 0 - adds r1, r4, 0x7 - lsls r0, r4, 1 - adds r0, r6 - adds r2, r0, 0 - adds r2, 0x10 - lsls r1, 1 - adds r1, r6 -_080B307A: - ldrh r0, [r1] - strh r0, [r2] - subs r1, 0x2 - subs r2, 0x2 - subs r5, 0x1 - cmp r5, 0 - bgt _080B307A - adds r0, r4, 0x1 - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080B30A2 - ldr r0, _080B30AC @ =sub_80B30B0 - str r0, [r3, 0x1C] -_080B30A2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B30A8: .4byte gPlttBufferFaded -_080B30AC: .4byte sub_80B30B0 - thumb_func_end sub_80B3044 - - thumb_func_start sub_80B30B0 -sub_80B30B0: @ 80B30B0 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x34] - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldrh r0, [r5, 0x34] - subs r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B3156 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B3146 - movs r0, 0x1 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B3118 - ldr r2, _080B315C @ =gSprites - ldr r0, _080B3160 @ =gUnknown_2023D44 - adds r0, r4, r0 - ldrb r1, [r0] - 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] -_080B3118: - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r6 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B3146 - ldr r2, _080B315C @ =gSprites - ldr r0, _080B3160 @ =gUnknown_2023D44 - adds r0, r4, r0 - ldrb r1, [r0] - 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] -_080B3146: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B3164 @ =sub_80B3168 - str r0, [r5, 0x1C] -_080B3156: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B315C: .4byte gSprites -_080B3160: .4byte gUnknown_2023D44 -_080B3164: .4byte sub_80B3168 - thumb_func_end sub_80B30B0 - - thumb_func_start sub_80B3168 -sub_80B3168: @ 80B3168 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B31C0 - movs r0, 0x1 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B31A6 - adds r0, r5, 0 - bl sub_8073128 -_080B31A6: - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B31C0 - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8073128 -_080B31C0: - ldr r0, _080B31CC @ =DestroyAnimSprite - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B31CC: .4byte DestroyAnimSprite - thumb_func_end sub_80B3168 - - thumb_func_start sub_80B31D0 -sub_80B31D0: @ 80B31D0 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B325C - ldr r5, _080B321C @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r5, r1] - movs r6, 0 - cmp r0, 0 - bne _080B31EA - movs r6, 0x1 -_080B31EA: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B3232 - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080B3232 - ldr r0, _080B3220 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B3224 - ldrh r0, [r5] - movs r1, 0x48 - subs r1, r0 - strh r1, [r4, 0x20] - ldrh r0, [r5, 0x2] - adds r0, 0x50 - strh r0, [r4, 0x22] - b _080B3254 - .align 2, 0 -_080B321C: .4byte gUnknown_2037F02 -_080B3220: .4byte gUnknown_2037F1A -_080B3224: - ldrh r0, [r5] - adds r0, 0xB0 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - adds r0, 0x28 - strh r0, [r4, 0x22] - b _080B3254 -_080B3232: - ldr r0, _080B3248 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B324C - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8075160 - b _080B3254 - .align 2, 0 -_080B3248: .4byte gUnknown_2037F02 -_080B324C: - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8075114 -_080B3254: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B3270 -_080B325C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _080B3270 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080B3270: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B31D0 - - thumb_func_start sub_80B3278 -sub_80B3278: @ 80B3278 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B32C0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B32C8 - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r5, 0x20] - subs r0, 0x28 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0xA - strh r0, [r5, 0x22] - ldr r0, _080B32C4 @ =0x0000ffff - b _080B32D6 - .align 2, 0 -_080B32C0: .4byte gUnknown_2037F1A -_080B32C4: .4byte 0x0000ffff -_080B32C8: - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - subs r0, 0xA - strh r0, [r5, 0x22] - movs r0, 0x1 -_080B32D6: - strh r0, [r5, 0x30] - ldr r1, _080B32EC @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B32F0 @ =sub_8074F6C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B32EC: .4byte DestroyAnimSprite -_080B32F0: .4byte sub_8074F6C - thumb_func_end sub_80B3278 - - thumb_func_start sub_80B32F4 -sub_80B32F4: @ 80B32F4 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r6, _080B3378 @ =gUnknown_2037F1A - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - lsls r1, 15 - lsrs r4, r1, 16 - ldrb r0, [r6] - movs r1, 0 - bl sub_8076B2C - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - asrs r1, 1 - negs r1, r1 - lsls r1, 16 - lsrs r7, r1, 16 - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B333A - lsls r0, r4, 16 - negs r0, r0 - lsrs r4, r0, 16 -_080B333A: - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - strh r0, [r5, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bgt _080B3366 - movs r0, 0x10 - strh r0, [r5, 0x22] -_080B3366: - ldr r1, _080B337C @ =sub_80B3384 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B3380 @ =sub_8074F6C - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B3378: .4byte gUnknown_2037F1A -_080B337C: .4byte sub_80B3384 -_080B3380: .4byte sub_8074F6C - thumb_func_end sub_80B32F4 - - thumb_func_start sub_80B3384 -sub_80B3384: @ 80B3384 - push {r4,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080B33B0 @ =gUnknown_83E6FF0 - str r0, [r4, 0x10] - movs r0, 0 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl InitSpriteAffineAnim - ldr r0, _080B33B4 @ =sub_80B33B8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B33B0: .4byte gUnknown_83E6FF0 -_080B33B4: .4byte sub_80B33B8 - thumb_func_end sub_80B3384 - - thumb_func_start sub_80B33B8 -sub_80B33B8: @ 80B33B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B33CA - cmp r0, 0x1 - beq _080B33F8 - b _080B3410 -_080B33CA: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B3410 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x12 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B3410 -_080B33F8: - ldrh r0, [r4, 0x30] - subs r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B3410 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B3410: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B33B8 - - thumb_func_start sub_80B3418 -sub_80B3418: @ 80B3418 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080B3448 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - strh r1, [r4, 0x8] - ldr r2, _080B344C @ =gUnknown_83E700C - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080B3450 @ =sub_80B3454 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B3448: .4byte gTasks -_080B344C: .4byte gUnknown_83E700C -_080B3450: .4byte sub_80B3454 - thumb_func_end sub_80B3418 - - thumb_func_start sub_80B3454 -sub_80B3454: @ 80B3454 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080B347C @ =gTasks - adds r0, r1 - bl sub_8076308 - lsls r0, 24 - cmp r0, 0 - bne _080B3474 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080B3474: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B347C: .4byte gTasks - thumb_func_end sub_80B3454 - - thumb_func_start sub_80B3480 -sub_80B3480: @ 80B3480 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B34CC @ =gTasks - adds r4, r1, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - strh r1, [r4, 0xC] - ldr r0, _080B34D0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - movs r1, 0x8 - cmp r0, 0 - beq _080B34B4 - movs r1, 0x4 -_080B34B4: - strh r1, [r4, 0xE] - ldrb r1, [r4, 0x8] - ldr r2, _080B34D4 @ =gUnknown_83E702C - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080B34D8 @ =sub_80B34DC - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B34CC: .4byte gTasks -_080B34D0: .4byte gUnknown_2037F1A -_080B34D4: .4byte gUnknown_83E702C -_080B34D8: .4byte sub_80B34DC - thumb_func_end sub_80B3480 - - thumb_func_start sub_80B34DC -sub_80B34DC: @ 80B34DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B34FC @ =gTasks - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B3500 - cmp r0, 0x1 - beq _080B351C - b _080B357A - .align 2, 0 -_080B34FC: .4byte gTasks -_080B3500: - adds r0, r4, 0 - bl sub_8076308 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080B357A - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080B357A -_080B351C: - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B3544 - ldr r2, _080B3540 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x8 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080B357A - .align 2, 0 -_080B3540: .4byte gSprites -_080B3544: - ldr r3, _080B3580 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - ldrb r0, [r4, 0x8] - bl sub_8075980 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B357A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3580: .4byte gSprites - thumb_func_end sub_80B34DC - - thumb_func_start sub_80B3584 -sub_80B3584: @ 80B3584 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B360C @ =gTasks - adds r5, r1, r0 - movs r1, 0 - movs r0, 0x10 - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] - ldr r4, _080B3610 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r0, [r4] - movs r1, 0 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, r6 - bcs _080B35EE - adds r1, r6, 0 -_080B35EE: - strh r1, [r5, 0x20] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldr r0, _080B3614 @ =sub_80B3618 - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B360C: .4byte gTasks -_080B3610: .4byte gUnknown_2037F1A -_080B3614: .4byte sub_80B3618 - thumb_func_end sub_80B3584 - - thumb_func_start sub_80B3618 -sub_80B3618: @ 80B3618 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B363C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080B3718 - cmp r1, 0x1 - bgt _080B3640 - cmp r1, 0 - beq _080B364E - b _080B379E - .align 2, 0 -_080B363C: .4byte gTasks -_080B3640: - cmp r1, 0x2 - bne _080B3646 - b _080B377A -_080B3646: - cmp r1, 0x3 - bne _080B364C - b _080B3788 -_080B364C: - b _080B379E -_080B364E: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bgt _080B365E - b _080B379E -_080B365E: - strh r1, [r4, 0xA] - ldr r0, _080B369C @ =gUnknown_83E7044 - movs r2, 0x22 - ldrsh r1, [r4, r2] - movs r3, 0x24 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xC - ldrsh r1, [r4, r0] - adds r1, 0x8 - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x8 - adds r0, r1 - strh r2, [r0] - cmp r2, 0x40 - beq _080B3702 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B36BC - cmp r0, 0x1 - bgt _080B36A0 - cmp r0, 0 - beq _080B36AA - b _080B3702 - .align 2, 0 -_080B369C: .4byte gUnknown_83E7044 -_080B36A0: - cmp r0, 0x2 - beq _080B36D4 - cmp r0, 0x3 - beq _080B36EC - b _080B3702 -_080B36AA: - ldr r0, _080B36B8 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - b _080B36FA - .align 2, 0 -_080B36B8: .4byte gSprites -_080B36BC: - ldr r0, _080B36D0 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - negs r0, r0 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x20] - b _080B3700 - .align 2, 0 -_080B36D0: .4byte gSprites -_080B36D4: - ldr r1, _080B36E8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r4, 0x20] - strh r1, [r0, 0x24] - ldrh r1, [r4, 0x20] - strh r1, [r0, 0x26] - b _080B3702 - .align 2, 0 -_080B36E8: .4byte gSprites -_080B36EC: - ldr r0, _080B3714 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - negs r0, r0 -_080B36FA: - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x20] - negs r0, r0 -_080B3700: - strh r0, [r1, 0x26] -_080B3702: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080B379E - b _080B377A - .align 2, 0 -_080B3714: .4byte gSprites -_080B3718: - ldrh r0, [r4, 0xA] - ands r1, r0 - cmp r1, 0 - beq _080B3728 - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080B372E -_080B3728: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] -_080B372E: - ldrh r1, [r4, 0x10] - lsls r1, 8 - ldrh r0, [r4, 0xE] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - bne _080B379E - movs r5, 0x8 - adds r6, r4, 0 - adds r6, 0x8 -_080B3754: - lsls r0, r5, 1 - adds r1, r6, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x40 - beq _080B3770 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B3784 @ =gSprites - adds r0, r1 - bl DestroySprite -_080B3770: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xC - bls _080B3754 -_080B377A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B379E - .align 2, 0 -_080B3784: .4byte gSprites -_080B3788: - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B379E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B3618 - - thumb_func_start sub_80B37A4 -sub_80B37A4: @ 80B37A4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - subs r0, 0xA - cmp r1, r0 - ble _080B37CE - ldrh r0, [r4, 0x30] - movs r1, 0x1 - ands r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080B37CE: - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080B37E0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B37E0: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B37A4 - - thumb_func_start sub_80B37EC -sub_80B37EC: @ 80B37EC - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080B3828 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080B3818 - ldr r4, _080B382C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_080B3818: - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x2E] - ldr r0, _080B3830 @ =sub_80B37A4 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B3828: .4byte gUnknown_2037F02 -_080B382C: .4byte gUnknown_2037F1A -_080B3830: .4byte sub_80B37A4 - thumb_func_end sub_80B37EC - - thumb_func_start sub_80B3834 -sub_80B3834: @ 80B3834 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B3890 @ =gTasks - adds r5, r1, r0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B38D8 - ldr r0, _080B3894 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080B38A4 - ldr r0, _080B3898 @ =0x0000fff6 - strh r0, [r5, 0x1C] - ldr r4, _080B389C @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080B38A0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - b _080B3962 - .align 2, 0 -_080B3890: .4byte gTasks -_080B3894: .4byte gUnknown_2037F02 -_080B3898: .4byte 0x0000fff6 -_080B389C: .4byte gUnknown_2037F1B -_080B38A0: .4byte gUnknown_2037F1A -_080B38A4: - movs r0, 0xA - strh r0, [r5, 0x1C] - ldr r4, _080B38D0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080B38D4 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0x8 - b _080B3956 - .align 2, 0 -_080B38D0: .4byte gUnknown_2037F1A -_080B38D4: .4byte gUnknown_2037F1B -_080B38D8: - ldr r0, _080B391C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080B392C - ldr r0, _080B3920 @ =0x0000fff6 - strh r0, [r5, 0x1C] - ldr r4, _080B3924 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080B3928 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - b _080B3962 - .align 2, 0 -_080B391C: .4byte gUnknown_2037F02 -_080B3920: .4byte 0x0000fff6 -_080B3924: .4byte gUnknown_2037F1B -_080B3928: .4byte gUnknown_2037F1A -_080B392C: - movs r0, 0xA - strh r0, [r5, 0x1C] - ldr r4, _080B3974 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080B3978 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0x8 -_080B3956: - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8076B2C - subs r0, 0x8 -_080B3962: - strh r0, [r5, 0x24] - movs r0, 0x6 - strh r0, [r5, 0xA] - ldr r0, _080B397C @ =sub_80B3980 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3974: .4byte gUnknown_2037F1A -_080B3978: .4byte gUnknown_2037F1B -_080B397C: .4byte sub_80B3980 - thumb_func_end sub_80B3834 - - thumb_func_start sub_80B3980 -sub_80B3980: @ 80B3980 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B39A0 @ =gTasks - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0 - beq _080B39A4 - cmp r1, 0x1 - beq _080B3A18 - b _080B3A2C - .align 2, 0 -_080B39A0: .4byte gTasks -_080B39A4: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080B3A2C - strh r1, [r5, 0xA] - ldr r0, _080B3A10 @ =gUnknown_83E7114 - movs r2, 0x1E - ldrsh r1, [r5, r2] - movs r3, 0x20 - ldrsh r2, [r5, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080B39F8 - ldr r0, _080B3A14 @ =gSprites - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r0 - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x22] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x36] - ldrh r0, [r5, 0x1C] - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_8075068 - ldrb r0, [r5, 0xC] - movs r1, 0x3 - ands r1, r0 - adds r0, r4, 0 - bl StartSpriteAffineAnim -_080B39F8: - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080B3A2C - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080B3A2C - .align 2, 0 -_080B3A10: .4byte gUnknown_83E7114 -_080B3A14: .4byte gSprites -_080B3A18: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _080B3A2C - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B3A2C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B3980 - - thumb_func_start sub_80B3A34 -sub_80B3A34: @ 80B3A34 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B3A52 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080B3A52: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B3A34 - - thumb_func_start sub_80B3A58 -sub_80B3A58: @ 80B3A58 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B3A90 @ =gTasks - adds r4, r1, r0 - ldr r0, _080B3A94 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807492C - lsls r0, 24 - lsrs r1, r0, 24 - adds r0, r1, 0 - subs r0, 0x20 - strh r0, [r4, 0x24] - ldr r0, _080B3A98 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x1 - beq _080B3AAE - cmp r0, 0x1 - bgt _080B3A9C - cmp r0, 0 - beq _080B3AA2 - b _080B3ACA - .align 2, 0 -_080B3A90: .4byte gTasks -_080B3A94: .4byte gUnknown_2037F1B -_080B3A98: .4byte gUnknown_2037F02 -_080B3A9C: - cmp r0, 0x2 - beq _080B3ABA - b _080B3ACA -_080B3AA2: - movs r0, 0x2 - strh r0, [r4, 0x1E] - movs r0, 0x5 - strh r0, [r4, 0x20] - movs r0, 0x40 - b _080B3AC2 -_080B3AAE: - movs r0, 0x2 - strh r0, [r4, 0x1E] - movs r0, 0x5 - strh r0, [r4, 0x20] - movs r0, 0xC0 - b _080B3AC2 -_080B3ABA: - movs r0, 0x4 - strh r0, [r4, 0x1E] - strh r0, [r4, 0x20] - movs r0, 0 -_080B3AC2: - strh r0, [r4, 0x22] - adds r0, r1, 0 - adds r0, 0x20 - strh r0, [r4, 0x26] -_080B3ACA: - movs r1, 0x24 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080B3AD6 - movs r0, 0 - strh r0, [r4, 0x24] -_080B3AD6: - ldr r0, _080B3AF0 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B3AFC - ldr r0, _080B3AF4 @ =gUnknown_2022978 - ldrh r0, [r0] - strh r0, [r4, 0x1C] - ldr r0, _080B3AF8 @ =0x04000014 - b _080B3B04 - .align 2, 0 -_080B3AF0: .4byte gUnknown_2037F1B -_080B3AF4: .4byte gUnknown_2022978 -_080B3AF8: .4byte 0x04000014 -_080B3AFC: - ldr r0, _080B3B64 @ =gUnknown_202297C - ldrh r0, [r0] - strh r0, [r4, 0x1C] - ldr r0, _080B3B68 @ =0x04000018 -_080B3B04: - str r0, [sp] - ldrh r1, [r4, 0x24] - lsls r3, r1, 16 - asrs r1, r3, 16 - movs r2, 0x24 - ldrsh r0, [r4, r2] - adds r0, 0x40 - cmp r1, r0 - bgt _080B3B3E - ldr r5, _080B3B6C @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080B3B1E: - asrs r3, 16 - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r4, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r4, 0x1C] - strh r0, [r1] - adds r3, 0x1 - lsls r3, 16 - asrs r1, r3, 16 - movs r2, 0x24 - ldrsh r0, [r4, r2] - adds r0, 0x40 - cmp r1, r0 - ble _080B3B1E -_080B3B3E: - ldr r0, _080B3B70 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - ldr r0, _080B3B74 @ =sub_80B3B78 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B3B64: .4byte gUnknown_202297C -_080B3B68: .4byte 0x04000018 -_080B3B6C: .4byte gUnknown_2038700 -_080B3B70: .4byte 0xa2600001 -_080B3B74: .4byte sub_80B3B78 - thumb_func_end sub_80B3A58 - - thumb_func_start sub_80B3B78 -sub_80B3B78: @ 80B3B78 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B3BA0 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080B3C52 - cmp r0, 0x1 - bgt _080B3BA4 - cmp r0, 0 - beq _080B3BAA - b _080B3C6A - .align 2, 0 -_080B3BA0: .4byte gTasks -_080B3BA4: - cmp r0, 0x2 - beq _080B3C64 - b _080B3C6A -_080B3BAA: - ldrh r3, [r5, 0x22] - ldrh r4, [r5, 0x24] - movs r2, 0x24 - ldrsh r1, [r5, r2] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r1, r0 - bgt _080B3C42 - ldr r0, _080B3BF4 @ =gUnknown_825E074 - mov r9, r0 - movs r7, 0x3 - ldr r1, _080B3BF8 @ =gUnknown_2038700 - mov r12, r1 - movs r2, 0xF0 - lsls r2, 3 - add r2, r12 - mov r8, r2 -_080B3BCC: - lsls r2, r3, 16 - asrs r0, r2, 15 - add r0, r9 - movs r3, 0 - ldrsh r0, [r0, r3] - movs r3, 0x20 - ldrsh r1, [r5, r3] - asrs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r3, r0, 16 - adds r6, r2, 0 - cmp r3, 0 - ble _080B3BFC - ldrh r1, [r5, 0xA] - adds r0, r7, 0 - ands r0, r1 - adds r0, r3, r0 - b _080B3C08 - .align 2, 0 -_080B3BF4: .4byte gUnknown_825E074 -_080B3BF8: .4byte gUnknown_2038700 -_080B3BFC: - cmp r3, 0 - bge _080B3C0C - ldrh r1, [r5, 0xA] - adds r0, r7, 0 - ands r0, r1 - subs r0, r3, r0 -_080B3C08: - lsls r0, 16 - lsrs r1, r0, 16 -_080B3C0C: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - mov r0, r12 - adds r4, r3, r0 - ldrh r0, [r5, 0x1C] - lsls r1, 16 - asrs r1, 16 - adds r0, r1, r0 - strh r0, [r4] - add r3, r8 - ldrh r0, [r5, 0x1C] - adds r1, r0 - strh r1, [r3] - asrs r0, r6, 16 - ldrh r1, [r5, 0x1E] - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r2, r0 - ble _080B3BCC -_080B3C42: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - ble _080B3C6A - b _080B3C58 -_080B3C52: - ldr r1, _080B3C60 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080B3C58: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080B3C6A - .align 2, 0 -_080B3C60: .4byte gUnknown_2039600 -_080B3C64: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B3C6A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B3B78 - - thumb_func_start sub_80B3C78 -sub_80B3C78: @ 80B3C78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080B3CAC @ =gTasks - adds r7, r0, r1 - bl AllocOamMatrix - lsls r0, 24 - lsrs r5, r0, 24 - mov r10, r5 - adds r6, r5, 0 - cmp r6, 0xFF - bne _080B3CB0 - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080B3D5A - .align 2, 0 -_080B3CAC: .4byte gTasks -_080B3CB0: - ldr r1, _080B3CD4 @ =gUnknown_2037F02 - ldrb r0, [r1] - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r1, r0, 16 - mov r9, r1 - asrs r0, 16 - cmp r0, 0 - bge _080B3CD8 - adds r0, r5, 0 - bl FreeOamMatrix - mov r0, r8 - bl DestroyAnimVisualTask - b _080B3D5A - .align 2, 0 -_080B3CD4: .4byte gUnknown_2037F02 -_080B3CD8: - ldr r2, _080B3D68 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r2, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, _080B3D6C @ =SpriteCallbackDummy - str r1, [r0] - adds r4, r2 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1F - ands r6, r0 - lsls r2, r6, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec - ldr r1, _080B3D70 @ =gUnknown_2037F02 - ldrb r0, [r1] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x22] - mov r0, r10 - strh r0, [r7, 0x24] - mov r1, r9 - strh r1, [r7, 0x26] - ldr r0, _080B3D74 @ =sub_80B3D78 - str r0, [r7] -_080B3D5A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B3D68: .4byte gSprites -_080B3D6C: .4byte SpriteCallbackDummy -_080B3D70: .4byte gUnknown_2037F02 -_080B3D74: .4byte sub_80B3D78 - thumb_func_end sub_80B3C78 - - thumb_func_start sub_80B3D78 -sub_80B3D78: @ 80B3D78 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B3D9C @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B3DFC - cmp r0, 0x1 - bgt _080B3DA0 - cmp r0, 0 - beq _080B3DAA - b _080B3E7C - .align 2, 0 -_080B3D9C: .4byte gTasks -_080B3DA0: - cmp r0, 0x2 - beq _080B3E4C - cmp r0, 0x3 - beq _080B3E6C - b _080B3E7C -_080B3DAA: - ldrh r0, [r4, 0xA] - adds r0, 0x4 - strh r0, [r4, 0xA] - ldr r1, _080B3DF8 @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - lsls r1, 24 - lsrs r1, 24 - bl sub_8076494 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x30 - bne _080B3E7C - b _080B3E5E - .align 2, 0 -_080B3DF8: .4byte gUnknown_825E074 -_080B3DFC: - ldrh r0, [r4, 0xA] - subs r0, 0x4 - strh r0, [r4, 0xA] - ldr r1, _080B3E48 @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - lsls r1, 24 - lsrs r1, 24 - bl sub_8076494 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B3E7C - b _080B3E5E - .align 2, 0 -_080B3E48: .4byte gUnknown_825E074 -_080B3E4C: - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B3E68 @ =gSprites - adds r0, r1 - bl obj_delete_but_dont_free_vram -_080B3E5E: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B3E7C - .align 2, 0 -_080B3E68: .4byte gSprites -_080B3E6C: - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - bl FreeOamMatrix - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B3E7C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B3D78 - - thumb_func_start sub_80B3E84 -sub_80B3E84: @ 80B3E84 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080B3EFC - cmp r0, 0x1 - bgt _080B3E9A - cmp r0, 0 - beq _080B3EA4 - b _080B3FA4 -_080B3E9A: - cmp r0, 0x2 - beq _080B3F2E - cmp r0, 0x3 - beq _080B3F8E - b _080B3FA4 -_080B3EA4: - ldr r4, _080B3EF8 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B3ED2 - ldrh r0, [r5, 0x22] - adds r0, 0xC - strh r0, [r5, 0x22] -_080B3ED2: - movs r0, 0x8 - strh r0, [r5, 0x30] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r0, [r5, 0x30] - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - b _080B3F26 - .align 2, 0 -_080B3EF8: .4byte gUnknown_2037F1A -_080B3EFC: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B3FA4 - movs r0, 0x40 - negs r0, r0 - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xC4 - bl PlaySE12WithPanning - adds r0, r5, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim -_080B3F26: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080B3FA4 -_080B3F2E: - ldrh r0, [r5, 0x32] - adds r1, r0, 0x1 - strh r1, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B3F72 - movs r0, 0 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x30] - subs r1, 0x1 - strh r1, [r5, 0x30] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B3F72 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080B3F72: - movs r0, 0xE0 - lsls r0, 2 - adds r2, r0, 0 - ldrh r1, [r5, 0x34] - adds r2, r1 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r5, 0x26] - subs r0, r1 - strh r0, [r5, 0x26] - movs r0, 0xFF - ands r2, r0 - strh r2, [r5, 0x34] - b _080B3FA4 -_080B3F8E: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimSprite -_080B3FA4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B3E84 - - thumb_func_start sub_80B3FAC -sub_80B3FAC: @ 80B3FAC - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B3FD8 - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080B3FD4 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x4] - negs r1, r1 - strh r1, [r0, 0x4] - ldrh r1, [r0] - negs r1, r1 - strh r1, [r0] - b _080B4008 - .align 2, 0 -_080B3FD4: .4byte gUnknown_2037F02 -_080B3FD8: - ldr r0, _080B406C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B4008 - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080B4070 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080B4008: - ldr r5, _080B406C @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074844 - lsls r0, 24 - ldr r4, _080B4070 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074844 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - ldr r0, _080B4074 @ =sub_8075590 - str r0, [r6, 0x1C] - ldr r1, _080B4078 @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B406C: .4byte gUnknown_2037F1B -_080B4070: .4byte gUnknown_2037F02 -_080B4074: .4byte sub_8075590 -_080B4078: .4byte DestroyAnimSprite - thumb_func_end sub_80B3FAC - - thumb_func_start sub_80B407C -sub_80B407C: @ 80B407C - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B40A0 - ldr r1, _080B409C @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _080B40BC - .align 2, 0 -_080B409C: .4byte gUnknown_2037F02 -_080B40A0: - ldr r0, _080B4118 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B40BC - ldr r0, _080B411C @ =gUnknown_2037F02 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0] - negs r1, r1 - strh r1, [r0] -_080B40BC: - ldr r5, _080B4118 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074844 - lsls r0, 24 - ldr r4, _080B411C @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074844 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x2E] - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x36] - ldr r0, _080B4120 @ =sub_8075590 - str r0, [r6, 0x1C] - ldr r1, _080B4124 @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B4118: .4byte gUnknown_2037F1B -_080B411C: .4byte gUnknown_2037F02 -_080B4120: .4byte sub_8075590 -_080B4124: .4byte DestroyAnimSprite - thumb_func_end sub_80B407C - - thumb_func_start sub_80B4128 -sub_80B4128: @ 80B4128 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B4144 - ldr r0, _080B4184 @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - strh r1, [r0, 0x4] -_080B4144: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080B4184 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080B418C - ldr r4, _080B4188 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080B419E - .align 2, 0 -_080B4184: .4byte gUnknown_2037F02 -_080B4188: .4byte gUnknown_2037F1B -_080B418C: - ldr r0, _080B41B4 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_8076D9C -_080B419E: - adds r0, r5, 0 - bl sub_8075678 - ldr r0, _080B41B8 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x6] - strh r0, [r5, 0x38] - ldr r0, _080B41BC @ =sub_80B41C0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B41B4: .4byte gUnknown_2037F1B -_080B41B8: .4byte gUnknown_2037F02 -_080B41BC: .4byte sub_80B41C0 - thumb_func_end sub_80B4128 - - thumb_func_start sub_80B41C0 -sub_80B41C0: @ 80B41C0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080B41D6 - adds r0, r4, 0 - bl DestroyAnimSprite - b _080B41F2 -_080B41D6: - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3A] - adds r0, 0xD - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] -_080B41F2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B41C0 - - thumb_func_start sub_80B41F8 -sub_80B41F8: @ 80B41F8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B4228 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C - ldr r0, _080B422C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B4234 - ldr r0, _080B4230 @ =gUnknown_2037F02 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080B4240 - .align 2, 0 -_080B4228: .4byte gUnknown_2037F1B -_080B422C: .4byte gUnknown_2037F1A -_080B4230: .4byte gUnknown_2037F02 -_080B4234: - ldr r1, _080B4268 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_080B4240: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080B426C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B425C - ldrh r0, [r4, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] -_080B425C: - ldr r0, _080B4270 @ =sub_80B4274 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4268: .4byte gUnknown_2037F02 -_080B426C: .4byte gUnknown_2037F1B -_080B4270: .4byte sub_80B4274 - thumb_func_end sub_80B41F8 - - thumb_func_start sub_80B4274 -sub_80B4274: @ 80B4274 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080B42A8 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080B42A8: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080B42BC - adds r0, r3, 0 - bl DestroyAnimSprite -_080B42BC: - pop {r0} - bx r0 - thumb_func_end sub_80B4274 - - thumb_func_start sub_80B42C0 -sub_80B42C0: @ 80B42C0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldr r0, _080B42E4 @ =sub_80B42E8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B42E4: .4byte sub_80B42E8 - thumb_func_end sub_80B42C0 - - thumb_func_start sub_80B42E8 -sub_80B42E8: @ 80B42E8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x13 - bgt _080B42FC - adds r0, r1, 0x1 - strh r0, [r4, 0x32] - b _080B433A -_080B42FC: - ldrh r1, [r4, 0x30] - adds r0, r1, 0x1 - strh r0, [r4, 0x30] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B433A - ldrh r1, [r4, 0x2E] - subs r1, 0x1 - strh r1, [r4, 0x2E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B433A - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B4340 @ =sub_80B4344 - str r0, [r4, 0x1C] -_080B433A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4340: .4byte sub_80B4344 - thumb_func_end sub_80B42E8 - - thumb_func_start sub_80B4344 -sub_80B4344: @ 80B4344 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B4344 - - thumb_func_start sub_80B4364 -sub_80B4364: @ 80B4364 - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B4384 - ldr r1, _080B4380 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - b _080B43A6 - .align 2, 0 -_080B4380: .4byte gUnknown_2037F02 -_080B4384: - ldr r0, _080B4480 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B43A6 - ldr r1, _080B4484 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080B43A6: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B43F6 - ldr r0, _080B4480 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, 0 - ldr r5, _080B4488 @ =gUnknown_2037F1B - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080B43F6 - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - beq _080B43E4 - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B43F6 -_080B43E4: - ldr r0, _080B4484 @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r1, [r0, r2] - negs r1, r1 - strh r1, [r0, 0x4] - movs r2, 0 - ldrsh r1, [r0, r2] - negs r1, r1 - strh r1, [r0] -_080B43F6: - adds r0, r7, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r5, _080B4488 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - adds r4, r0, 0 - lsls r4, 24 - ldr r6, _080B4484 @ =gUnknown_2037F02 - lsrs r4, 24 - ldrh r0, [r6, 0x4] - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r6, 0x6] - adds r1, r2 - lsls r1, 16 - ldrh r2, [r7, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - subs r0, r2 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r7, 0x22] - lsrs r5, r1, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_8075B30 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8075A1C - ldrh r0, [r6, 0x8] - strh r0, [r7, 0x2E] - strh r4, [r7, 0x32] - strh r5, [r7, 0x36] - ldr r0, _080B448C @ =sub_8075590 - str r0, [r7, 0x1C] - ldr r1, _080B4490 @ =DestroyAnimSprite - adds r0, r7, 0 - bl StoreSpriteCallbackInData6 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B4480: .4byte gUnknown_2037F1A -_080B4484: .4byte gUnknown_2037F02 -_080B4488: .4byte gUnknown_2037F1B -_080B448C: .4byte sub_8075590 -_080B4490: .4byte DestroyAnimSprite - thumb_func_end sub_80B4364 - - thumb_func_start sub_80B4494 -sub_80B4494: @ 80B4494 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080B4500 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B44B4 - ldr r1, _080B4504 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080B44B4: - ldr r4, _080B4504 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080B4508 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_8075068 - ldr r0, _080B450C @ =sub_80B4510 - str r0, [r6, 0x1C] - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B4500: .4byte gUnknown_2037F1A -_080B4504: .4byte gUnknown_2037F02 -_080B4508: .4byte gUnknown_2037F1B -_080B450C: .4byte sub_80B4510 - thumb_func_end sub_80B4494 - - thumb_func_start sub_80B4510 -sub_80B4510: @ 80B4510 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B453C - adds r0, r4, 0 - bl DestroyAnimSprite - b _080B45CC -_080B453C: - movs r0, 0x2E - adds r0, r4 - mov r8, r0 - ldrh r7, [r4, 0x20] - ldrh r5, [r4, 0x24] - ldrh r1, [r4, 0x22] - mov r12, r1 - ldrh r6, [r4, 0x26] - mov r2, r8 - add r1, sp, 0x4 - movs r3, 0x7 -_080B4552: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080B4552 - adds r0, r7, r5 - lsls r0, 16 - lsrs r5, r0, 16 - mov r2, r12 - adds r0, r2, r6 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080B45CC - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - lsls r1, r5, 16 - asrs r1, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r1, r2 - lsls r2, r6, 16 - asrs r2, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_8075B30 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8075A1C - add r2, sp, 0x4 - mov r1, r8 - movs r3, 0x7 -_080B45BE: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080B45BE -_080B45CC: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B4510 - - thumb_func_start sub_80B45D8 -sub_80B45D8: @ 80B45D8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B45EC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B45F4 - ldr r4, _080B45F0 @ =gUnknown_2037F1A - b _080B45F6 - .align 2, 0 -_080B45EC: .4byte gUnknown_2037F02 -_080B45F0: .4byte gUnknown_2037F1A -_080B45F4: - ldr r4, _080B4628 @ =gUnknown_2037F1B -_080B45F6: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x12 - strh r0, [r5, 0x22] - ldr r1, _080B462C @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B4630 @ =sub_8074F50 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4628: .4byte gUnknown_2037F1B -_080B462C: .4byte move_anim_8074EE0 -_080B4630: .4byte sub_8074F50 - thumb_func_end sub_80B45D8 - - thumb_func_start sub_80B4634 -sub_80B4634: @ 80B4634 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080B46A0 @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080B4654 - ldr r0, _080B46A4 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C -_080B4654: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r4, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0xE - strh r0, [r5, 0x22] - ldrb r1, [r6, 0x2] - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl AnimateSprite - strh r4, [r5, 0x2E] - strh r4, [r5, 0x30] - movs r0, 0x4 - strh r0, [r5, 0x32] - movs r0, 0x10 - strh r0, [r5, 0x34] - ldr r0, _080B46A8 @ =0x0000ffba - strh r0, [r5, 0x36] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x38] - ldr r1, _080B46AC @ =sub_80B46B4 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080B46B0 @ =sub_8074BE4 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B46A0: .4byte gUnknown_2037F02 -_080B46A4: .4byte gUnknown_2037F1B -_080B46A8: .4byte 0x0000ffba -_080B46AC: .4byte sub_80B46B4 -_080B46B0: .4byte sub_8074BE4 - thumb_func_end sub_80B4634 - - thumb_func_start sub_80B46B4 -sub_80B46B4: @ 80B46B4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x38] - ldrh r2, [r4, 0x20] - adds r0, r1, r2 - strh r0, [r4, 0x20] - movs r0, 0xC0 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r0, 0x4 - strh r0, [r4, 0x32] - movs r0, 0x20 - strh r0, [r4, 0x34] - ldr r0, _080B46EC @ =0x0000ffe8 - strh r0, [r4, 0x36] - ldr r1, _080B46F0 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080B46F4 @ =sub_8074BE4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B46EC: .4byte 0x0000ffe8 -_080B46F0: .4byte move_anim_8074EE0 -_080B46F4: .4byte sub_8074BE4 - thumb_func_end sub_80B46B4 - - thumb_func_start sub_80B46F8 -sub_80B46F8: @ 80B46F8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B4720 @ =gUnknown_2037F02 - ldrb r1, [r4, 0xA] - bl StartSpriteAnim - adds r0, r5, 0 - bl AnimateSprite - ldr r0, _080B4724 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B4728 - ldrh r0, [r5, 0x20] - ldrh r1, [r4] - subs r0, r1 - b _080B472E - .align 2, 0 -_080B4720: .4byte gUnknown_2037F02 -_080B4724: .4byte gUnknown_2037F1A -_080B4728: - ldrh r0, [r4] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080B472E: - strh r0, [r5, 0x20] - ldr r3, _080B4770 @ =gUnknown_2037F02 - ldrh r2, [r3, 0x2] - ldrh r0, [r5, 0x22] - adds r2, r0 - movs r4, 0 - strh r2, [r5, 0x22] - ldrh r0, [r3, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r1, [r3, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - strh r2, [r5, 0x34] - ldrh r0, [r3, 0x6] - adds r2, r0 - strh r2, [r5, 0x36] - adds r0, r5, 0 - bl sub_80754B8 - strh r4, [r5, 0x34] - strh r4, [r5, 0x36] - ldr r0, _080B4774 @ =sub_8074D00 - str r0, [r5, 0x1C] - ldr r1, _080B4778 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4770: .4byte gUnknown_2037F02 -_080B4774: .4byte sub_8074D00 -_080B4778: .4byte move_anim_8074EE0 - thumb_func_end sub_80B46F8 - - thumb_func_start sub_80B477C -sub_80B477C: @ 80B477C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B4794 @ =gUnknown_2037F02 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B4798 - adds r0, r4, 0 - movs r1, 0 - bl sub_8075160 - b _080B47A0 - .align 2, 0 -_080B4794: .4byte gUnknown_2037F02 -_080B4798: - adds r0, r4, 0 - movs r1, 0 - bl sub_8075114 -_080B47A0: - ldr r1, _080B47BC @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080B47C0 @ =sub_80B47C4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B47BC: .4byte gUnknown_2037F02 -_080B47C0: .4byte sub_80B47C4 - thumb_func_end sub_80B477C - - thumb_func_start sub_80B47C4 -sub_80B47C4: @ 80B47C4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - ldrh r1, [r4, 0x38] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B480A - adds r0, r4, 0 - bl DestroyAnimSprite -_080B480A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B47C4 - - thumb_func_start do_boulder_dust -do_boulder_dust: @ 80B4810 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r1, _080B48E4 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B4854 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080B4854: - ldr r0, _080B48E8 @ =gUnknown_2022978 - strh r5, [r0] - ldr r4, _080B48EC @ =gUnknown_202297A - strh r5, [r4] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x16 - bl SetGpuReg - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080B48F0 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap - bl sub_807543C - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080B48F4 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080B48F8 @ =gFile_graphics_battle_anims_sprites_261_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B48B0 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080B48B0: - ldr r0, _080B48FC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080B48CA - ldr r0, _080B4900 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B48CA - movs r5, 0x1 -_080B48CA: - ldr r0, _080B4904 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - strh r5, [r1, 0x8] - ldr r0, _080B4908 @ =sub_80B490C - str r0, [r1] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B48E4: .4byte 0x00003f42 -_080B48E8: .4byte gUnknown_2022978 -_080B48EC: .4byte gUnknown_202297A -_080B48F0: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap -_080B48F4: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet -_080B48F8: .4byte gFile_graphics_battle_anims_sprites_261_palette -_080B48FC: .4byte gUnknown_2037F02 -_080B4900: .4byte gUnknown_2037F1A -_080B4904: .4byte gTasks -_080B4908: .4byte sub_80B490C - thumb_func_end do_boulder_dust - - thumb_func_start sub_80B490C -sub_80B490C: @ 80B490C - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080B4934 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0 - bne _080B4940 - ldr r1, _080B4938 @ =gUnknown_2022978 - ldr r3, _080B493C @ =0x0000fffa - adds r0, r3, 0 - ldrh r3, [r1] - adds r0, r3 - b _080B4946 - .align 2, 0 -_080B4934: .4byte gTasks -_080B4938: .4byte gUnknown_2022978 -_080B493C: .4byte 0x0000fffa -_080B4940: - ldr r1, _080B4974 @ =gUnknown_2022978 - ldrh r0, [r1] - adds r0, 0x6 -_080B4946: - strh r0, [r1] - ldr r1, _080B4978 @ =gUnknown_202297A - ldr r3, _080B497C @ =0x0000ffff - adds r0, r3, 0 - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r0, r2 - movs r3, 0x20 - ldrsh r0, [r0, r3] - adds r4, r1, 0 - cmp r0, 0x4 - bls _080B4968 - b _080B4A96 -_080B4968: - lsls r0, 2 - ldr r1, _080B4980 @ =_080B4984 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B4974: .4byte gUnknown_2022978 -_080B4978: .4byte gUnknown_202297A -_080B497C: .4byte 0x0000ffff -_080B4980: .4byte _080B4984 - .align 2, 0 -_080B4984: - .4byte _080B4998 - .4byte _080B49DA - .4byte _080B49F4 - .4byte _080B4A36 - .4byte _080B4A58 -_080B4998: - adds r0, r4, r5 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080B4A96 - strh r5, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bne _080B4A96 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x1E] - b _080B4A96 -_080B49DA: - adds r0, r4, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bne _080B4A96 - movs r0, 0x7 - strh r0, [r1, 0x1E] - b _080B4A4C -_080B49F4: - adds r0, r4, r5 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080B4A96 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080B4A96 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080B4A96 -_080B4A36: - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - bl sub_8075358 - ldr r0, _080B4A54 @ =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 -_080B4A4C: - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080B4A96 - .align 2, 0 -_080B4A54: .4byte gTasks -_080B4A58: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B4A6C - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080B4A6C: - ldr r0, _080B4AA0 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B4AA4 @ =gUnknown_202297A - strh r1, [r0] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B4A96: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4AA0: .4byte gUnknown_2022978 -_080B4AA4: .4byte gUnknown_202297A - thumb_func_end sub_80B490C - - thumb_func_start sub_80B4AA8 -sub_80B4AA8: @ 80B4AA8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B4B24 - ldr r4, _080B4AEC @ =gUnknown_2037F02 - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B4AF4 - ldr r0, _080B4AF0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B4AF4 - movs r0, 0x98 - lsls r0, 1 - strh r0, [r5, 0x20] - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r5, 0x38] - ldrb r1, [r5, 0x3] - subs r0, 0x40 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x3] - b _080B4AF8 - .align 2, 0 -_080B4AEC: .4byte gUnknown_2037F02 -_080B4AF0: .4byte gUnknown_2037F1A -_080B4AF4: - ldr r0, _080B4B18 @ =0x0000ffc0 - strh r0, [r5, 0x20] -_080B4AF8: - ldr r4, _080B4B1C @ =gUnknown_2037F02 - ldrh r0, [r4] - strh r0, [r5, 0x22] - ldr r1, _080B4B20 @ =gUnknown_83E7470 - adds r0, r5, 0 - bl SetSubspriteTables - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080B4B80 - .align 2, 0 -_080B4B18: .4byte 0x0000ffc0 -_080B4B1C: .4byte gUnknown_2037F02 -_080B4B20: .4byte gUnknown_83E7470 -_080B4B24: - ldrh r1, [r5, 0x30] - ldrh r3, [r5, 0x34] - adds r1, r3 - ldrh r2, [r5, 0x32] - ldrh r0, [r5, 0x36] - adds r2, r0 - lsls r0, r1, 16 - asrs r0, 24 - ldrh r3, [r5, 0x24] - adds r0, r3 - strh r0, [r5, 0x24] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r3, [r5, 0x26] - adds r0, r3 - strh r0, [r5, 0x26] - movs r0, 0xFF - ands r1, r0 - strh r1, [r5, 0x34] - ands r2, r0 - strh r2, [r5, 0x36] - movs r1, 0x38 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B4B6A - movs r2, 0x20 - ldrsh r0, [r5, r2] - movs r3, 0x24 - ldrsh r1, [r5, r3] - adds r0, r1 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - ble _080B4B80 - b _080B4B7C -_080B4B6A: - movs r1, 0x20 - ldrsh r0, [r5, r1] - movs r2, 0x24 - ldrsh r1, [r5, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080B4B80 -_080B4B7C: - ldr r0, _080B4B88 @ =DestroyAnimSprite - str r0, [r5, 0x1C] -_080B4B80: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4B88: .4byte DestroyAnimSprite - thumb_func_end sub_80B4AA8 - - thumb_func_start sub_80B4B8C -sub_80B4B8C: @ 80B4B8C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B4BC4 @ =gUnknown_2037F02 - ldrb r1, [r5, 0x8] - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl sub_8075160 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x4] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x36] - ldr r0, _080B4BC8 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080B4BCC @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4BC4: .4byte gUnknown_2037F02 -_080B4BC8: .4byte sub_8075590 -_080B4BCC: .4byte DestroyAnimSprite - thumb_func_end sub_80B4B8C - - thumb_func_start sub_80B4BD0 -sub_80B4BD0: @ 80B4BD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B4C50 @ =gTasks - adds r6, r1, r0 - ldr r5, _080B4C54 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 8 - movs r1, 0xC0 - lsls r1, 13 - adds r0, r1 - lsrs r7, r0, 16 - ldr r4, _080B4C58 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xC0 - lsls r2, 13 - adds r0, r2 - lsrs r0, 16 - mov r8, r0 - ldrb r1, [r5] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080B4C40 - mov r8, r7 -_080B4C40: - bl sub_80B4FB8 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _080B4C5C - movs r0, 0x20 - b _080B4C62 - .align 2, 0 -_080B4C50: .4byte gTasks -_080B4C54: .4byte gUnknown_2037F1A -_080B4C58: .4byte gUnknown_2037F1B -_080B4C5C: - lsls r1, r5, 3 - movs r0, 0x30 - subs r0, r1 -_080B4C62: - strh r0, [r6, 0x18] - movs r4, 0 - strh r4, [r6, 0x8] - strh r4, [r6, 0x1E] - strh r4, [r6, 0x1A] - movs r0, 0x1 - strh r0, [r6, 0x20] - movs r1, 0x18 - ldrsh r0, [r6, r1] - cmp r0, 0 - bge _080B4C7A - adds r0, 0x7 -_080B4C7A: - asrs r0, 3 - subs r0, 0x1 - strh r0, [r6, 0x1C] - mov r2, r9 - lsls r0, r2, 3 - strh r0, [r6, 0xC] - lsls r0, r7, 3 - strh r0, [r6, 0xE] - mov r1, r10 - subs r0, r1, r2 - lsls r0, 3 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x10] - mov r1, r8 - subs r0, r1, r7 - lsls r0, 3 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x12] - strh r4, [r6, 0x14] - strh r4, [r6, 0x16] - movs r0, 0x40 - negs r0, r0 - bl sub_8073A44 - adds r4, r0, 0 - lsls r4, 24 - asrs r4, 8 - lsrs r4, 16 - movs r0, 0x3F - bl sub_8073A44 - lsls r0, 24 - strh r4, [r6, 0x22] - asrs r0, 24 - lsls r4, 16 - asrs r4, 16 - subs r0, r4 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x24] - strh r5, [r6, 0xA] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x26] - ldr r0, _080B4CFC @ =sub_80B4D00 - str r0, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B4CFC: .4byte sub_80B4D00 - thumb_func_end sub_80B4BD0 - - thumb_func_start sub_80B4D00 -sub_80B4D00: @ 80B4D00 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B4D24 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080B4D1A - b _080B4E68 -_080B4D1A: - lsls r0, 2 - ldr r1, _080B4D28 @ =_080B4D2C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B4D24: .4byte gTasks -_080B4D28: .4byte _080B4D2C - .align 2, 0 -_080B4D2C: - .4byte _080B4D40 - .4byte _080B4DA4 - .4byte _080B4DAC - .4byte _080B4E08 - .4byte _080B4E5A -_080B4D40: - ldrh r2, [r4, 0x14] - ldrh r0, [r4, 0x10] - subs r2, r0 - strh r2, [r4, 0x14] - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x16] - ldr r3, _080B4DA0 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - lsls r2, 16 - asrs r2, 19 - strh r2, [r0, 0x24] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080B4D90 - movs r0, 0x14 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B4D90: - ldrh r1, [r4, 0x22] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x9B - bl PlaySE12WithPanning - b _080B4E68 - .align 2, 0 -_080B4DA0: .4byte gSprites -_080B4DA4: - ldrh r0, [r4, 0x1E] - subs r0, 0x1 - strh r0, [r4, 0x1E] - b _080B4E4C -_080B4DAC: - ldrh r0, [r4, 0x1A] - subs r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _080B4DCC - ldrh r0, [r4, 0x10] - ldrh r2, [r4, 0x14] - adds r0, r2 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x16] - adds r0, r1 - strh r0, [r4, 0x16] - b _080B4DD6 -_080B4DCC: - strh r0, [r4, 0x14] - strh r0, [r4, 0x16] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B4DD6: - ldr r2, _080B4E04 @ =gSprites - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x24] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x26] - b _080B4E68 - .align 2, 0 -_080B4E04: .4byte gSprites -_080B4E08: - ldrh r0, [r4, 0x10] - ldrh r2, [r4, 0xC] - adds r0, r2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1C - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080B4E46 - movs r0, 0 - strh r0, [r4, 0x1A] - adds r0, r4, 0 - bl sub_80B4E70 - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x22] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xA8 - bl PlaySE12WithPanning -_080B4E46: - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] -_080B4E4C: - lsls r0, 16 - cmp r0, 0 - bne _080B4E68 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B4E68 -_080B4E5A: - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B4E68 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B4E68: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B4D00 - - thumb_func_start sub_80B4E70 -sub_80B4E70: @ 80B4E70 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bhi _080B4F60 - lsls r0, 2 - ldr r1, _080B4E8C @ =_080B4E90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B4E8C: .4byte _080B4E90 - .align 2, 0 -_080B4E90: - .4byte _080B4EA4 - .4byte _080B4EB0 - .4byte _080B4EB0 - .4byte _080B4EBC - .4byte _080B4EC8 -_080B4EA4: - ldr r3, _080B4EAC @ =gUnknown_83E74D8 - movs r5, 0 - b _080B4ECC - .align 2, 0 -_080B4EAC: .4byte gUnknown_83E74D8 -_080B4EB0: - ldr r3, _080B4EB8 @ =gUnknown_83E74F0 - movs r5, 0x50 - b _080B4ECC - .align 2, 0 -_080B4EB8: .4byte gUnknown_83E74F0 -_080B4EBC: - ldr r3, _080B4EC4 @ =gUnknown_83E74F0 - movs r5, 0x40 - b _080B4ECC - .align 2, 0 -_080B4EC4: .4byte gUnknown_83E74F0 -_080B4EC8: - ldr r3, _080B4F68 @ =gUnknown_83E74F0 - movs r5, 0x30 -_080B4ECC: - ldrh r1, [r4, 0xC] - lsls r1, 16 - asrs r1, 19 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r4, 0xE] - lsls r2, 16 - asrs r2, 19 - lsls r2, 16 - movs r6, 0x20 - ldrsh r0, [r4, r6] - lsls r0, 2 - adds r1, r0 - lsls r1, 16 - lsrs r6, r1, 16 - asrs r1, 16 - lsrs r7, r2, 16 - asrs r2, 16 - adds r0, r3, 0 - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080B4F58 - ldr r1, _080B4F6C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x12 - strh r1, [r0, 0x2E] - movs r2, 0x20 - ldrsh r1, [r4, r2] - lsls r2, r1, 2 - adds r2, r1 - lsls r2, 2 - adds r2, r6, r2 - movs r6, 0xA - ldrsh r3, [r4, r6] - lsls r1, r3, 1 - adds r1, r3 - adds r2, r1 - strh r2, [r0, 0x32] - strh r7, [r0, 0x36] - movs r1, 0xA - ldrsh r2, [r4, r1] - lsls r2, 1 - movs r3, 0x10 - negs r3, r3 - adds r1, r3, 0 - subs r1, r2 - strh r1, [r0, 0x38] - ldrh r3, [r0, 0x4] - lsls r2, r3, 22 - lsrs r2, 22 - adds r2, r5 - ldr r5, _080B4F70 @ =0x000003ff - adds r1, r5, 0 - ands r2, r1 - ldr r1, _080B4F74 @ =0xfffffc00 - ands r1, r3 - orrs r1, r2 - strh r1, [r0, 0x4] - bl sub_8075068 - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] -_080B4F58: - movs r6, 0x20 - ldrsh r0, [r4, r6] - negs r0, r0 - strh r0, [r4, 0x20] -_080B4F60: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B4F68: .4byte gUnknown_83E74F0 -_080B4F6C: .4byte gSprites -_080B4F70: .4byte 0x000003ff -_080B4F74: .4byte 0xfffffc00 - thumb_func_end sub_80B4E70 - - thumb_func_start sub_80B4F78 -sub_80B4F78: @ 80B4F78 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B4FAA - ldr r0, _080B4FB0 @ =sub_80B4D00 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080B4FA4 - ldr r0, _080B4FB4 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1E] - subs r0, 0x1 - strh r0, [r1, 0x1E] -_080B4FA4: - adds r0, r4, 0 - bl DestroySprite -_080B4FAA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4FB0: .4byte sub_80B4D00 -_080B4FB4: .4byte gTasks - thumb_func_end sub_80B4F78 - - thumb_func_start sub_80B4FB8 -sub_80B4FB8: @ 80B4FB8 - push {lr} - ldr r0, _080B4FE0 @ =gUnknown_2037EE4 - ldr r0, [r0] - ldrb r1, [r0, 0x11] - lsrs r0, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B4FDA - movs r1, 0x1 -_080B4FDA: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080B4FE0: .4byte gUnknown_2037EE4 - thumb_func_end sub_80B4FB8 - - thumb_func_start sub_80B4FE4 -sub_80B4FE4: @ 80B4FE4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B501C @ =gUnknown_2037F02 - ldrb r1, [r5, 0x8] - bl StartSpriteAnim - ldrh r0, [r5] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - ldrh r1, [r5, 0x4] - subs r0, r1 - strh r0, [r4, 0x34] - movs r0, 0x3 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080B5020 @ =sub_80B5024 - str r0, [r4, 0x1C] - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B501C: .4byte gUnknown_2037F02 -_080B5020: .4byte sub_80B5024 - thumb_func_end sub_80B4FE4 - - thumb_func_start sub_80B5024 -sub_80B5024: @ 80B5024 - push {lr} - adds r2, r0, 0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r3] - ldrh r1, [r2, 0x34] - movs r3, 0x34 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080B505C - ldrh r3, [r2, 0x32] - adds r0, r1, r3 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r1, r0 - strh r1, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r1, 16 - cmp r1, 0 - ble _080B506E - movs r0, 0 - strh r0, [r2, 0x34] - b _080B506E -_080B505C: - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080B506E - adds r0, r2, 0 - bl DestroyAnimSprite -_080B506E: - pop {r0} - bx r0 - thumb_func_end sub_80B5024 - - thumb_func_start sub_80B5074 -sub_80B5074: @ 80B5074 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B509C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B5090 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080B5090: - adds r0, r4, 0 - bl sub_8075DF4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B509C: .4byte gUnknown_2037F1A - thumb_func_end sub_80B5074 - - thumb_func_start sub_80B50A0 -sub_80B50A0: @ 80B50A0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B50EC @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B50F0 @ =gUnknown_2037F02 - ldrh r3, [r2] - ldrh r5, [r4, 0x20] - adds r1, r3, r5 - strh r1, [r4, 0x20] - ldrh r1, [r2, 0x2] - adds r0, r1 - strh r0, [r4, 0x22] - strh r3, [r4, 0x30] - strh r1, [r4, 0x32] - ldrh r0, [r2, 0x4] - strh r0, [r4, 0x38] - ldrb r1, [r2, 0x6] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080B50F4 @ =sub_80B50F8 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B50EC: .4byte gUnknown_2037F1B -_080B50F0: .4byte gUnknown_2037F02 -_080B50F4: .4byte sub_80B50F8 - thumb_func_end sub_80B50A0 - - thumb_func_start sub_80B50F8 -sub_80B50F8: @ 80B50F8 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x8 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl __divsi3 - ldrh r1, [r4, 0x24] - adds r1, r0 - strh r1, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - subs r1, r0 - strh r1, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x8C - ble _080B5142 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B5142: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B50F8 - - thumb_func_start sub_80B5148 -sub_80B5148: @ 80B5148 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080B5180 @ =gUnknown_2037EE8 - ldr r0, [r2] - cmp r0, 0x20 - bgt _080B515C - ldr r1, _080B5184 @ =gUnknown_2037F02 - movs r0, 0 - strh r0, [r1, 0xE] -_080B515C: - ldr r2, [r2] - adds r0, r2, 0 - subs r0, 0x21 - cmp r0, 0x20 - bhi _080B516C - ldr r1, _080B5184 @ =gUnknown_2037F02 - movs r0, 0x1 - strh r0, [r1, 0xE] -_080B516C: - cmp r2, 0x41 - ble _080B5176 - ldr r1, _080B5184 @ =gUnknown_2037F02 - movs r0, 0x2 - strh r0, [r1, 0xE] -_080B5176: - adds r0, r3, 0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080B5180: .4byte gUnknown_2037EE8 -_080B5184: .4byte gUnknown_2037F02 - thumb_func_end sub_80B5148 - - thumb_func_start sub_80B5188 -sub_80B5188: @ 80B5188 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080B51E4 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B51AA - movs r0, 0 - bl sub_8075458 - movs r0, 0xC8 - strh r0, [r5, 0xA] -_080B51AA: - ldr r4, _080B51E8 @ =gUnknown_2022982 - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r1, 0xA - bl __divsi3 - ldrh r1, [r4] - adds r1, r0 - strh r1, [r4] - ldrh r0, [r5, 0xA] - subs r0, 0x3 - strh r0, [r5, 0xA] - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x78 - bne _080B51D6 - movs r0, 0x1 - bl sub_8075458 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080B51D6: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B51E4: .4byte gTasks -_080B51E8: .4byte gUnknown_2022982 - thumb_func_end sub_80B5188 - - thumb_func_start sub_80B51EC -sub_80B51EC: @ 80B51EC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080B5258 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B5218 - movs r0, 0 - bl sub_8075458 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080B525C @ =gUnknown_2022982 - ldrh r0, [r0] - strh r0, [r4, 0xC] -_080B5218: - ldrh r0, [r4, 0xA] - adds r0, 0x50 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0xA] - ldr r6, _080B525C @ =gUnknown_2022982 - movs r2, 0xA - ldrsh r1, [r4, r2] - movs r0, 0x4 - bl Cos - ldrh r4, [r4, 0xC] - adds r0, r4 - strh r0, [r6] - ldr r0, _080B5260 @ =gUnknown_2037F02 - movs r2, 0xE - ldrsh r1, [r0, r2] - ldr r0, _080B5264 @ =0x00000fff - cmp r1, r0 - bne _080B5250 - movs r0, 0 - strh r0, [r6] - movs r0, 0x1 - bl sub_8075458 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B5250: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B5258: .4byte gTasks -_080B525C: .4byte gUnknown_2022982 -_080B5260: .4byte gUnknown_2037F02 -_080B5264: .4byte 0x00000fff - thumb_func_end sub_80B51EC - - thumb_func_start sub_80B5268 -sub_80B5268: @ 80B5268 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080B52C4 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080B52C8 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_8075678 - ldr r0, _080B52CC @ =sub_80B52D0 - str r0, [r4, 0x1C] - movs r0, 0x10 - strh r0, [r4, 0x3A] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r4, 0x3A] - movs r0, 0x52 - bl SetGpuReg - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B52C4: .4byte gUnknown_2037F02 -_080B52C8: .4byte gUnknown_2037F1B -_080B52CC: .4byte sub_80B52D0 - thumb_func_end sub_80B5268 - - thumb_func_start sub_80B52D0 -sub_80B52D0: @ 80B52D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80B53C0 - adds r0, r4, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080B52F0 - ldr r0, _080B52EC @ =sub_80B5344 - str r0, [r4, 0x1C] - b _080B533A - .align 2, 0 -_080B52EC: .4byte sub_80B5344 -_080B52F0: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080B5328 - cmp r2, 0xC4 - ble _080B533A -_080B5328: - lsls r0, 16 - cmp r0, 0 - ble _080B533A - ldr r0, _080B5340 @ =gUnknown_2037F24 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xBD - bl PlaySE12WithPanning -_080B533A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5340: .4byte gUnknown_2037F24 - thumb_func_end sub_80B52D0 - - thumb_func_start sub_80B5344 -sub_80B5344: @ 80B5344 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80755E0 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080B538A - cmp r2, 0xC4 - ble _080B5396 -_080B538A: - lsls r0, 16 - cmp r0, 0 - ble _080B5396 - movs r0, 0xBD - bl PlaySE -_080B5396: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B53B4 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B53B0 @ =sub_8074F88 - str r0, [r4, 0x1C] - b _080B53BA - .align 2, 0 -_080B53B0: .4byte sub_8074F88 -_080B53B4: - adds r0, r4, 0 - bl sub_80B53C0 -_080B53BA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B5344 - - thumb_func_start sub_80B53C0 -sub_80B53C0: @ 80B53C0 - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x3A] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0xFF - ble _080B53E4 - adds r0, r2, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - ldr r1, _080B53E0 @ =0x010d0000 - cmp r0, r1 - bne _080B544A - movs r0, 0 - b _080B5448 - .align 2, 0 -_080B53E0: .4byte 0x010d0000 -_080B53E4: - ldrh r1, [r4, 0x3C] - adds r3, r1, 0x1 - strh r3, [r4, 0x3C] - movs r0, 0xFF - ands r0, r1 - cmp r0, 0 - bne _080B544A - ldr r1, _080B5408 @ =0xffffff00 - ands r1, r3 - strh r1, [r4, 0x3C] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080B540C - adds r0, r2, 0x1 - b _080B540E - .align 2, 0 -_080B5408: .4byte 0xffffff00 -_080B540C: - subs r0, r2, 0x1 -_080B540E: - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3A] - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B5430 - cmp r0, 0x10 - bne _080B543C -_080B5430: - ldrh r0, [r4, 0x3C] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - eors r0, r1 - strh r0, [r4, 0x3C] -_080B543C: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B544A - movs r0, 0x80 - lsls r0, 1 -_080B5448: - strh r0, [r4, 0x3A] -_080B544A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B53C0 - - thumb_func_start sub_80B5450 -sub_80B5450: @ 80B5450 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r1, _080B546C @ =sub_80B5470 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B546C: .4byte sub_80B5470 - thumb_func_end sub_80B5450 - - thumb_func_start sub_80B5470 -sub_80B5470: @ 80B5470 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x82 - bhi _080B54A4 - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x8 - b _080B54AE -_080B54A4: - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 -_080B54AE: - orrs r1, r0 - strb r1, [r4, 0x5] - ldrh r0, [r4, 0x2E] - adds r0, 0x13 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x50 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3D - bne _080B54E0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B54E0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B5470 - - thumb_func_start sub_80B54E8 -sub_80B54E8: @ 80B54E8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80758E0 - adds r0, r4, 0 - movs r1, 0x80 - movs r2, 0x80 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, _080B5560 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r1, _080B5564 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x80 - strh r1, [r0, 0x8] - ldr r1, _080B5568 @ =gUnknown_2037F02 - ldrh r1, [r1] - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r1, 0x10 - strh r1, [r0, 0xE] - ldr r1, _080B556C @ =sub_80B5570 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B5560: .4byte gSprites -_080B5564: .4byte gTasks -_080B5568: .4byte gUnknown_2037F02 -_080B556C: .4byte sub_80B5570 - thumb_func_end sub_80B54E8 - - thumb_func_start sub_80B5570 -sub_80B5570: @ 80B5570 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B55C0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080B55B8 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0xC] - adds r1, 0x1 - strh r1, [r4, 0xC] - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x9 - bne _080B55B8 - ldr r0, _080B55C4 @ =sub_80B55C8 - str r0, [r4] -_080B55B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B55C0: .4byte gTasks -_080B55C4: .4byte sub_80B55C8 - thumb_func_end sub_80B5570 - - thumb_func_start sub_80B55C8 -sub_80B55C8: @ 80B55C8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080B55EC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080B55F0 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - b _080B5634 - .align 2, 0 -_080B55EC: .4byte gTasks -_080B55F0: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r1, r0, 24 - ldrh r0, [r4, 0x8] - adds r0, 0x8 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - bgt _080B5618 - movs r0, 0x8 - ldrsh r2, [r4, r0] - adds r0, r1, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - b _080B5634 -_080B5618: - adds r0, r1, 0 - bl sub_8075980 - adds r0, r5, 0 - bl DestroyAnimVisualTask - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg -_080B5634: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B55C8 - - thumb_func_start sub_80B563C -sub_80B563C: @ 80B563C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r5, [r4, 0x20] - ldrh r6, [r4, 0x22] - ldr r0, _080B56D8 @ =gUnknown_2037F1A - mov r8, r0 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - mov r9, r1 - strh r0, [r4, 0x20] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - mov r1, r9 - strh r1, [r4, 0x2E] - ldr r2, _080B56DC @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r4, 0x30] - ldrh r1, [r2, 0x2] - strh r1, [r4, 0x32] - ldrh r1, [r2, 0x4] - strh r1, [r4, 0x34] - ldrh r1, [r4, 0x20] - lsls r1, 4 - strh r1, [r4, 0x36] - lsls r0, 4 - strh r0, [r4, 0x38] - lsls r5, 16 - asrs r5, 16 - movs r1, 0x20 - ldrsh r0, [r4, r1] - subs r5, r0 - lsls r5, 4 - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r1, 1 - adds r0, r5, 0 - str r2, [sp] - bl __divsi3 - strh r0, [r4, 0x3A] - lsls r6, 16 - asrs r6, 16 - movs r1, 0x22 - ldrsh r0, [r4, r1] - subs r6, r0 - lsls r6, 4 - ldr r2, [sp] - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r1, 1 - adds r0, r6, 0 - bl __divsi3 - strh r0, [r4, 0x3C] - ldr r0, _080B56E0 @ =sub_80B56E4 - str r0, [r4, 0x1C] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B56D8: .4byte gUnknown_2037F1A -_080B56DC: .4byte gUnknown_2037F02 -_080B56E0: .4byte sub_80B56E4 - thumb_func_end sub_80B563C - - thumb_func_start sub_80B56E4 -sub_80B56E4: @ 80B56E4 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080B572E - cmp r0, 0x1 - bgt _080B56FA - cmp r0, 0 - beq _080B5704 - b _080B57F2 -_080B56FA: - cmp r0, 0x2 - beq _080B5798 - cmp r0, 0x3 - beq _080B57EC - b _080B57F2 -_080B5704: - ldrh r0, [r5, 0x3A] - ldrh r2, [r5, 0x36] - adds r0, r2 - strh r0, [r5, 0x36] - ldrh r1, [r5, 0x3C] - ldrh r2, [r5, 0x38] - adds r1, r2 - strh r1, [r5, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r5, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x30] - subs r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - cmp r0, 0 - bgt _080B57F2 - b _080B57DE -_080B572E: - ldrh r0, [r5, 0x32] - subs r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - cmp r0, 0 - bgt _080B57F2 - ldr r4, _080B5794 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x30] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x20] - lsls r0, 4 - strh r0, [r5, 0x36] - ldrh r0, [r5, 0x22] - lsls r0, 4 - strh r0, [r5, 0x38] - movs r1, 0x30 - ldrsh r0, [r5, r1] - movs r2, 0x20 - ldrsh r1, [r5, r2] - subs r0, r1 - lsls r0, 4 - movs r2, 0x34 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0x3A] - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r2, 0x22 - ldrsh r1, [r5, r2] - subs r0, r1 - lsls r0, 4 - movs r2, 0x34 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0x3C] - b _080B57DE - .align 2, 0 -_080B5794: .4byte gUnknown_2037F1B -_080B5798: - ldrh r0, [r5, 0x3A] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r1, [r5, 0x3C] - ldrh r2, [r5, 0x38] - adds r1, r2 - strh r1, [r5, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r5, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x34] - subs r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - cmp r0, 0 - bgt _080B57F2 - ldr r4, _080B57E8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_080B57DE: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080B57F2 - .align 2, 0 -_080B57E8: .4byte gUnknown_2037F1B -_080B57EC: - adds r0, r5, 0 - bl move_anim_8074EE0 -_080B57F2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B56E4 - - thumb_func_start sub_80B57F8 -sub_80B57F8: @ 80B57F8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r0, _080B580C @ =sub_80B5810 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B580C: .4byte sub_80B5810 - thumb_func_end sub_80B57F8 - - thumb_func_start sub_80B5810 -sub_80B5810: @ 80B5810 - push {r4-r6,lr} - adds r3, r0, 0 - movs r5, 0 - movs r6, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B58A6 - adds r1, r3, 0 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x4 - ands r0, r2 - adds r4, r1, 0 - cmp r0, 0 - bne _080B583A - movs r0, 0x4 - orrs r0, r2 - strb r0, [r4] -_080B583A: - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _080B584A - cmp r0, 0x1 - beq _080B5854 - movs r6, 0x1 - b _080B585E -_080B584A: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0x2 - bne _080B585E - b _080B5862 -_080B5854: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0x4 - bne _080B585E - movs r5, 0x1 -_080B585E: - cmp r5, 0 - beq _080B5894 -_080B5862: - ldrb r2, [r4] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r3, 0x32] - strh r1, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080B58A6 - strh r1, [r3, 0x32] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080B58A6 -_080B5894: - cmp r6, 0 - beq _080B58A0 - adds r0, r3, 0 - bl DestroyAnimSprite - b _080B58A6 -_080B58A0: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] -_080B58A6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B5810 - - thumb_func_start sub_80B58AC -sub_80B58AC: @ 80B58AC - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080B58D8 @ =gTasks - adds r5, r0, r1 - movs r0, 0x1 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - movs r6, 0 - movs r1, 0 - strh r0, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bge _080B58DC - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080B59B8 - .align 2, 0 -_080B58D8: .4byte gTasks -_080B58DC: - strh r1, [r5, 0xA] - movs r0, 0xF - strh r0, [r5, 0xC] - movs r0, 0x2 - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r5, 0xE] - lsls r1, 8 - ldrh r0, [r5, 0xC] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r4, _080B5944 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x50 - strh r1, [r0, 0x2E] - ldr r0, _080B5948 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B5950 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080B594C @ =0x0000ff70 - strh r1, [r0, 0x30] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x70 - b _080B596E - .align 2, 0 -_080B5944: .4byte gSprites -_080B5948: .4byte gUnknown_2037F1B -_080B594C: .4byte 0x0000ff70 -_080B5950: - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x90 - strh r1, [r0, 0x30] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080B59C0 @ =0x0000ff90 -_080B596E: - strh r1, [r0, 0x32] - ldr r4, _080B59C4 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r2, 0 - strh r2, [r0, 0x34] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x36] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080B59C8 @ =SpriteCallbackDummy - bl StoreSpriteCallbackInData6 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080B59CC @ =sub_8074D00 - str r1, [r0] - ldr r0, _080B59D0 @ =sub_80B59D4 - str r0, [r5] -_080B59B8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B59C0: .4byte 0x0000ff90 -_080B59C4: .4byte gSprites -_080B59C8: .4byte SpriteCallbackDummy -_080B59CC: .4byte sub_8074D00 -_080B59D0: .4byte sub_80B59D4 - thumb_func_end sub_80B58AC - - thumb_func_start sub_80B59D4 -sub_80B59D4: @ 80B59D4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B59F8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B5A78 - cmp r0, 0x1 - bgt _080B59FC - cmp r0, 0 - beq _080B5A02 - b _080B5AA4 - .align 2, 0 -_080B59F8: .4byte gTasks -_080B59FC: - cmp r0, 0x2 - beq _080B5A9E - b _080B5AA4 -_080B5A02: - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x3 - ands r0, r1 - strh r0, [r4, 0x12] - cmp r0, 0x1 - bne _080B5A20 - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080B5A20 - subs r0, r1, 0x1 - strh r0, [r4, 0xC] -_080B5A20: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - bne _080B5A36 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B5A36 - adds r0, r1, 0x1 - strh r0, [r4, 0xE] -_080B5A36: - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0xC] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r1, [r4, 0xC] - movs r0, 0x80 - lsls r0, 13 - cmp r1, r0 - bne _080B5AA4 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x50 - ble _080B5AA4 - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B5A74 @ =gSprites - adds r0, r1 - bl obj_delete_but_dont_free_vram - movs r0, 0x1 - strh r0, [r4, 0x10] - b _080B5AA4 - .align 2, 0 -_080B5A74: .4byte gSprites -_080B5A78: - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B5AA4 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - b _080B5AA4 -_080B5A9E: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B5AA4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B59D4 - - thumb_func_start sub_80B5AAC -sub_80B5AAC: @ 80B5AAC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _080B5ACC @ =gTasks - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x26] - ldr r2, _080B5AD0 @ =sub_80B5AD4 - str r2, [r1] - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_080B5ACC: .4byte gTasks -_080B5AD0: .4byte sub_80B5AD4 - thumb_func_end sub_80B5AAC - - thumb_func_start sub_80B5AD4 -sub_80B5AD4: @ 80B5AD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080B5B0C @ =gTasks - adds r5, r0, r1 - ldr r0, _080B5B10 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080B5B00 - b _080B5D22 -_080B5B00: - lsls r0, 2 - ldr r1, _080B5B14 @ =_080B5B18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B5B0C: .4byte gTasks -_080B5B10: .4byte gUnknown_2037F1B -_080B5B14: .4byte _080B5B18 - .align 2, 0 -_080B5B18: - .4byte _080B5B2C - .4byte _080B5C2C - .4byte _080B5C70 - .4byte _080B5CD8 - .4byte _080B5D04 -_080B5B2C: - ldr r7, _080B5B64 @ =0x00002771 - adds r0, r7, 0 - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - mov r8, r2 - strh r0, [r5, 0x24] - cmp r0, 0xFF - beq _080B5B5A - cmp r0, 0xF - beq _080B5B5A - movs r0, 0x1 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - strh r0, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bge _080B5B68 - adds r0, r7, 0 - bl FreeSpritePaletteByTag -_080B5B5A: - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080B5D28 - .align 2, 0 -_080B5B64: .4byte 0x00002771 -_080B5B68: - ldr r4, _080B5C14 @ =gSprites - movs r1, 0x8 - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r2, [r5, 0x24] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r2, 0x8 - ldrsh r0, [r5, r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x8 - ldrsh r0, [r5, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldr r0, _080B5C18 @ =gUnknown_2024018 - ldr r1, [r0] - ldr r0, _080B5C1C @ =gUnknown_2037F1B - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 31 - adds r2, 0x3E - lsrs r1, 31 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - mov r2, r8 - strh r2, [r5, 0xA] - strh r2, [r5, 0xC] - movs r0, 0x10 - strh r0, [r5, 0xE] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0x22 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r0, 4 - strh r0, [r5, 0x10] - cmp r6, 0x1 - bne _080B5C20 - movs r1, 0x80 - lsls r1, 2 - b _080B5C24 - .align 2, 0 -_080B5C14: .4byte gSprites -_080B5C18: .4byte gUnknown_2024018 -_080B5C1C: .4byte gUnknown_2037F1B -_080B5C20: - movs r1, 0x80 - lsls r1, 3 -_080B5C24: - movs r0, 0 - bl ClearGpuRegBits - b _080B5D22 -_080B5C2C: - movs r1, 0x24 - ldrsh r0, [r5, r1] - adds r0, 0x10 - lsls r0, 4 - strh r0, [r5, 0x24] - movs r2, 0x10 - ldrsh r0, [r5, r2] - lsls r0, 1 - ldr r1, _080B5C60 @ =gPlttBufferUnfaded - adds r0, r1 - movs r2, 0x24 - ldrsh r1, [r5, r2] - lsls r1, 1 - ldr r2, _080B5C64 @ =gPlttBufferFaded - adds r1, r2 - ldr r2, _080B5C68 @ =0x04000008 - bl CpuSet - ldrh r0, [r5, 0x10] - ldr r3, _080B5C6C @ =0x00003c0d - movs r1, 0x10 - movs r2, 0xA - bl BlendPalette - b _080B5D22 - .align 2, 0 -_080B5C60: .4byte gPlttBufferUnfaded -_080B5C64: .4byte gPlttBufferFaded -_080B5C68: .4byte 0x04000008 -_080B5C6C: .4byte 0x00003c0d -_080B5C70: - ldr r2, _080B5CAC @ =gSprites - movs r0, 0x22 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - subs r1, 0x20 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r1, 0 - bge _080B5C90 - movs r2, 0 -_080B5C90: - cmp r6, 0x1 - bne _080B5CB0 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x4 - str r2, [sp, 0x4] - str r6, [sp, 0x8] - b _080B5CC8 - .align 2, 0 -_080B5CAC: .4byte gSprites -_080B5CB0: - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x8 - str r2, [sp, 0x4] - movs r2, 0x1 - str r2, [sp, 0x8] -_080B5CC8: - movs r2, 0x2 - movs r3, 0x6 - bl sub_8088230 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - b _080B5D22 -_080B5CD8: - cmp r6, 0x1 - bne _080B5CEC - ldr r1, _080B5CE8 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - b _080B5CF4 - .align 2, 0 -_080B5CE8: .4byte 0x00003f42 -_080B5CEC: - ldr r1, _080B5D00 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg -_080B5CF4: - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - b _080B5D22 - .align 2, 0 -_080B5D00: .4byte 0x00003f44 -_080B5D04: - cmp r6, 0x1 - bne _080B5D14 - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl SetGpuRegBits - b _080B5D1E -_080B5D14: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits -_080B5D1E: - ldr r0, _080B5D34 @ =sub_80B5D38 - str r0, [r5] -_080B5D22: - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] -_080B5D28: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5D34: .4byte sub_80B5D38 - thumb_func_end sub_80B5AD4 - - thumb_func_start sub_80B5D38 -sub_80B5D38: @ 80B5D38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B5DC0 @ =gTasks - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x1 - ands r0, r1 - strh r0, [r4, 0x12] - cmp r0, 0 - bne _080B5D70 - ldr r1, _080B5DC4 @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - strh r0, [r4, 0xC] -_080B5D70: - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _080B5D92 - ldr r1, _080B5DC4 @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - movs r1, 0x10 - subs r1, r0 - strh r1, [r4, 0xE] -_080B5D92: - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0xC] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x80 - bne _080B5DBA - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080B5DC8 @ =sub_80B5DCC - str r1, [r4] - adds r0, r5, 0 - bl _call_via_r1 -_080B5DBA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B5DC0: .4byte gTasks -_080B5DC4: .4byte gUnknown_825E074 -_080B5DC8: .4byte sub_80B5DCC - thumb_func_end sub_80B5D38 - - thumb_func_start sub_80B5DCC -sub_80B5DCC: @ 80B5DCC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B5DFC @ =gTasks - adds r4, r0, r1 - ldr r0, _080B5E00 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B5E38 - cmp r0, 0x1 - bgt _080B5E04 - cmp r0, 0 - beq _080B5E0A - b _080B5EB4 - .align 2, 0 -_080B5DFC: .4byte gTasks -_080B5E00: .4byte gUnknown_2037F1B -_080B5E04: - cmp r0, 0x2 - beq _080B5E4C - b _080B5EB4 -_080B5E0A: - ldr r1, _080B5E28 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - cmp r6, 0x1 - bne _080B5E2C - movs r1, 0x80 - lsls r1, 2 - b _080B5E30 - .align 2, 0 -_080B5E28: .4byte gUnknown_2039600 -_080B5E2C: - movs r1, 0x80 - lsls r1, 3 -_080B5E30: - movs r0, 0 - bl ClearGpuRegBits - b _080B5EB4 -_080B5E38: - ldrh r0, [r4, 0x10] - ldr r3, _080B5E48 @ =0x00003c0d - movs r1, 0x10 - movs r2, 0 - bl BlendPalette - b _080B5EB4 - .align 2, 0 -_080B5E48: .4byte 0x00003c0d -_080B5E4C: - ldr r3, _080B5E9C @ =gSprites - movs r0, 0x24 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - bl obj_delete_but_dont_free_vram - ldr r0, _080B5EA0 @ =0x00002771 - bl FreeSpritePaletteByTag - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - cmp r6, 0x1 - bne _080B5EA4 - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl SetGpuRegBits - b _080B5EAE - .align 2, 0 -_080B5E9C: .4byte gSprites -_080B5EA0: .4byte 0x00002771 -_080B5EA4: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits -_080B5EAE: - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B5EB4: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B5DCC - - thumb_func_start sub_80B5EC0 -sub_80B5EC0: @ 80B5EC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - ldr r0, _080B5EFC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B5F08 - ldr r4, _080B5F00 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xE0 - lsls r2, 13 - adds r0, r2 - lsrs r5, r0, 16 - ldr r4, _080B5F04 @ =gUnknown_2037F1B - b _080B5F2C - .align 2, 0 -_080B5EFC: .4byte gUnknown_2037F02 -_080B5F00: .4byte gUnknown_2037F1A -_080B5F04: .4byte gUnknown_2037F1B -_080B5F08: - ldr r4, _080B5FD0 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xE0 - lsls r2, 13 - adds r0, r2 - lsrs r5, r0, 16 - ldr r4, _080B5FD4 @ =gUnknown_2037F1A -_080B5F2C: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 8 - movs r1, 0xE0 - lsls r1, 13 - adds r0, r1 - lsrs r0, 16 - mov r9, r0 - mov r8, r5 - mov r2, r9 - subs r4, r2, r5 - lsls r4, 16 - lsrs r4, 16 - lsls r0, r6, 4 - strh r0, [r7, 0x2E] - lsls r0, r5, 4 - strh r0, [r7, 0x30] - mov r1, r10 - subs r0, r1, r6 - lsls r0, 4 - ldr r5, _080B5FD8 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r7, 0x32] - lsls r4, 16 - asrs r4, 12 - movs r0, 0x2 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl __divsi3 - strh r0, [r7, 0x34] - ldrh r0, [r5, 0x2] - strh r0, [r7, 0x36] - mov r1, r10 - strh r1, [r7, 0x38] - mov r2, r9 - strh r2, [r7, 0x3A] - movs r1, 0x36 - ldrsh r0, [r7, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r7, 0x3C] - ldrb r1, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r7, 0x5] - strh r6, [r7, 0x20] - mov r2, r8 - strh r2, [r7, 0x22] - ldr r0, _080B5FDC @ =sub_80B5FE0 - str r0, [r7, 0x1C] - adds r2, r7, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5FD0: .4byte gUnknown_2037F1B -_080B5FD4: .4byte gUnknown_2037F1A -_080B5FD8: .4byte gUnknown_2037F02 -_080B5FDC: .4byte sub_80B5FE0 - thumb_func_end sub_80B5EC0 - - thumb_func_start sub_80B5FE0 -sub_80B5FE0: @ 80B5FE0 - push {r4,lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x36] - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080B6018 - ldrh r0, [r2, 0x32] - ldrh r4, [r2, 0x2E] - adds r0, r4 - strh r0, [r2, 0x2E] - ldrh r1, [r2, 0x34] - ldrh r4, [r2, 0x30] - adds r1, r4 - strh r1, [r2, 0x30] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r2, 0x22] - subs r0, r3, 0x1 - strh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080B6018 - strh r0, [r2, 0x2E] -_080B6018: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B5FE0 - - thumb_func_start sub_80B6020 -sub_80B6020: @ 80B6020 - 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 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B6170 @ =gTasks - adds r1, r0 - str r1, [sp] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0 - ldr r1, [sp] - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - strh r0, [r1, 0x16] - strh r0, [r1, 0x18] - movs r0, 0x10 - strh r0, [r1, 0x1A] - ldr r2, _080B6174 @ =gUnknown_2037F02 - ldrh r0, [r2] - strh r0, [r1, 0x1C] - ldr r4, _080B6178 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8076B2C - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B6090 - b _080B618C -_080B6090: - movs r4, 0 -_080B6092: - lsls r1, r4, 16 - asrs r3, r1, 16 - ldr r0, _080B6178 @ =gUnknown_2037F1A - ldrb r2, [r0] - str r1, [sp, 0x10] - cmp r3, r2 - beq _080B615E - movs r0, 0x2 - eors r2, r0 - cmp r3, r2 - beq _080B615E - lsls r0, r4, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B615E - ldr r6, [sp, 0x4] - ldr r3, [sp, 0x8] - lsls r0, r3, 16 - asrs r7, r0, 16 - ldr r0, _080B617C @ =gUnknown_83E7668 - adds r1, r6, 0 - adds r2, r7, 0 - movs r3, 0x37 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x40 - beq _080B615E - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - adds r0, r4, 0 - movs r1, 0x3 - bl sub_8076B2C - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r0, r8 - lsls r5, r0, 4 - add r5, r8 - lsls r5, 2 - ldr r1, _080B6180 @ =gSprites - adds r4, r5, r1 - lsls r0, r6, 4 - strh r0, [r4, 0x2E] - lsls r0, r7, 4 - strh r0, [r4, 0x30] - mov r2, r10 - subs r0, r2, r6 - lsls r0, 4 - ldr r3, _080B6174 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r1, [r3, r2] - bl __divsi3 - strh r0, [r4, 0x32] - mov r3, r9 - lsls r0, r3, 16 - asrs r0, 16 - subs r0, r7 - lsls r0, 4 - ldr r2, _080B6174 @ =gUnknown_2037F02 - movs r3, 0x2 - ldrsh r1, [r2, r3] - bl __divsi3 - strh r0, [r4, 0x34] - ldr r1, _080B6174 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x36] - mov r2, r10 - strh r2, [r4, 0x38] - mov r3, r9 - strh r3, [r4, 0x3A] - ldr r0, _080B6184 @ =gSprites + 0x1C - adds r5, r0 - ldr r0, _080B6188 @ =sub_80B5FE0 - str r0, [r5] - ldr r2, [sp] - movs r3, 0x20 - ldrsh r1, [r2, r3] - adds r1, 0xD - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1 - mov r1, r8 - strh r1, [r0] - ldrh r0, [r2, 0x20] - adds r0, 0x1 - strh r0, [r2, 0x20] -_080B615E: - ldr r2, [sp, 0x10] - movs r3, 0x80 - lsls r3, 9 - adds r0, r2, r3 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080B6092 - b _080B6210 - .align 2, 0 -_080B6170: .4byte gTasks -_080B6174: .4byte gUnknown_2037F02 -_080B6178: .4byte gUnknown_2037F1A -_080B617C: .4byte gUnknown_83E7668 -_080B6180: .4byte gSprites -_080B6184: .4byte gSprites + 0x1C -_080B6188: .4byte sub_80B5FE0 -_080B618C: - ldr r0, _080B6228 @ =gUnknown_83E7668 - ldr r7, [sp, 0x4] - ldr r2, [sp, 0x8] - lsls r1, r2, 16 - asrs r1, 16 - str r1, [sp, 0xC] - adds r1, r7, 0 - ldr r2, [sp, 0xC] - movs r3, 0x37 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x40 - beq _080B6210 - movs r3, 0x30 - mov r10, r3 - movs r0, 0x28 - mov r9, r0 - ldr r6, _080B622C @ =gSprites - mov r1, r8 - lsls r5, r1, 4 - add r5, r8 - lsls r5, 2 - adds r4, r5, r6 - lsls r0, r7, 4 - strh r0, [r4, 0x2E] - ldr r2, [sp, 0xC] - lsls r0, r2, 4 - strh r0, [r4, 0x30] - subs r0, r3, r7 - lsls r0, 4 - ldr r3, _080B6230 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r1, [r3, r2] - bl __divsi3 - strh r0, [r4, 0x32] - mov r3, r9 - ldr r1, [sp, 0xC] - subs r0, r3, r1 - lsls r0, 4 - ldr r2, _080B6230 @ =gUnknown_2037F02 - movs r3, 0x2 - ldrsh r1, [r2, r3] - bl __divsi3 - strh r0, [r4, 0x34] - ldr r1, _080B6230 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x36] - mov r2, r10 - strh r2, [r4, 0x38] - mov r3, r9 - strh r3, [r4, 0x3A] - adds r6, 0x1C - adds r5, r6 - ldr r0, _080B6234 @ =sub_80B5FE0 - str r0, [r5] - mov r1, r8 - ldr r0, [sp] - strh r1, [r0, 0x22] - movs r0, 0x1 - ldr r2, [sp] - strh r0, [r2, 0x20] -_080B6210: - ldr r0, _080B6238 @ =sub_80B623C - ldr r3, [sp] - str r0, [r3] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B6228: .4byte gUnknown_83E7668 -_080B622C: .4byte gSprites -_080B6230: .4byte gUnknown_2037F02 -_080B6234: .4byte sub_80B5FE0 -_080B6238: .4byte sub_80B623C - thumb_func_end sub_80B6020 - - thumb_func_start sub_80B623C -sub_80B623C: @ 80B623C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B6260 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080B62F2 - cmp r1, 0x1 - bgt _080B6264 - cmp r1, 0 - beq _080B6272 - b _080B63AE - .align 2, 0 -_080B6260: .4byte gTasks -_080B6264: - cmp r1, 0x2 - bne _080B626A - b _080B6384 -_080B626A: - cmp r1, 0x3 - bne _080B6270 - b _080B6398 -_080B6270: - b _080B63AE -_080B6272: - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B62D8 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B62D8 - strh r1, [r4, 0x12] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B62A8 - ldrh r1, [r4, 0x18] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B62B6 - adds r0, r1, 0x1 - strh r0, [r4, 0x18] - b _080B62B6 -_080B62A8: - ldrh r1, [r4, 0x1A] - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B62B6 - subs r0, r1, 0x1 - strh r0, [r4, 0x1A] -_080B62B6: - ldrh r1, [r4, 0x1A] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0x17 - ble _080B62D8 - movs r0, 0 - strh r0, [r4, 0x16] - movs r0, 0x1 - strh r0, [r4, 0x14] -_080B62D8: - ldrh r1, [r4, 0x1C] - movs r2, 0x1C - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B62E8 - subs r0, r1, 0x1 - strh r0, [r4, 0x1C] - b _080B63AE -_080B62E8: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B63AE - b _080B6390 -_080B62F2: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B63AE - movs r0, 0 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - ands r0, r1 - lsls r0, 16 - cmp r0, 0 - beq _080B6322 - ldrh r1, [r4, 0x18] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B6330 - subs r0, r1, 0x1 - strh r0, [r4, 0x18] - b _080B6330 -_080B6322: - ldrh r1, [r4, 0x1A] - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B6330 - adds r0, r1, 0x1 - strh r0, [r4, 0x1A] -_080B6330: - ldrh r1, [r4, 0x1A] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r1, [r4, 0x18] - movs r0, 0x80 - lsls r0, 13 - cmp r1, r0 - bne _080B63AE - movs r5, 0 - b _080B6374 -_080B6350: - adds r1, r5, 0 - adds r1, 0xD - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x8 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B6380 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080B6374: - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r5, r0 - blt _080B6350 - b _080B6390 - .align 2, 0 -_080B6380: .4byte gSprites -_080B6384: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - cmp r0, 0 - ble _080B63AE -_080B6390: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B63AE -_080B6398: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B63AE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B623C - - thumb_func_start sub_80B63B4 -sub_80B63B4: @ 80B63B4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080B6400 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B6404 @ =gUnknown_2022986 - strh r1, [r0] - ldr r1, _080B6408 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080B640C @ =0x00003f1f - movs r0, 0x4A - bl SetGpuReg - movs r0, 0x50 - movs r1, 0xC8 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0x10 - bl SetGpuReg - ldr r0, _080B6410 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B63FC - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B6414 -_080B63FC: - movs r6, 0x28 - b _080B6416 - .align 2, 0 -_080B6400: .4byte gUnknown_2022984 -_080B6404: .4byte gUnknown_2022986 -_080B6408: .4byte 0x00003f3f -_080B640C: .4byte 0x00003f1f -_080B6410: .4byte gUnknown_2037F1A -_080B6414: - movs r6, 0xC8 -_080B6416: - ldr r1, _080B6454 @ =gUnknown_2022984 - lsls r3, r6, 16 - asrs r2, r3, 16 - lsls r0, r2, 8 - orrs r0, r2 - strh r0, [r1] - ldr r1, _080B6458 @ =gUnknown_2022986 - movs r5, 0x28 - ldr r0, _080B645C @ =0x00002828 - strh r0, [r1] - lsrs r3, 16 - movs r1, 0xF0 - subs r1, r2 - movs r4, 0x48 - ldr r2, _080B6460 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - strh r3, [r0, 0xA] - strh r1, [r0, 0xC] - strh r5, [r0, 0xE] - strh r4, [r0, 0x10] - strh r6, [r0, 0x12] - strh r5, [r0, 0x14] - ldr r1, _080B6464 @ =sub_80B6468 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B6454: .4byte gUnknown_2022984 -_080B6458: .4byte gUnknown_2022986 -_080B645C: .4byte 0x00002828 -_080B6460: .4byte gTasks -_080B6464: .4byte sub_80B6468 - thumb_func_end sub_80B63B4 - - thumb_func_start sub_80B6468 -sub_80B6468: @ 80B6468 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B6588 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0x8] - adds r0, r1, 0x1 - strh r0, [r4, 0x8] - ldrh r5, [r4, 0xA] - ldrh r7, [r4, 0xC] - ldrh r0, [r4, 0xE] - mov r10, r0 - ldrh r2, [r4, 0x10] - str r2, [sp, 0xC] - ldrh r0, [r4, 0x12] - ldrh r2, [r4, 0x14] - mov r8, r2 - lsls r1, 16 - asrs r6, r1, 16 - cmp r6, 0xF - ble _080B64A4 - b _080B6594 -_080B64A4: - lsls r0, 16 - asrs r0, 16 - bl __floatsidf - str r0, [sp, 0x10] - str r1, [sp, 0x14] - lsls r0, r5, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080B658C @ =0x3fb00000 - ldr r3, _080B6590 @ =0x00000000 - bl __muldf3 - adds r5, r1, 0 - adds r4, r0, 0 - adds r0, r6, 0 - bl __floatsidf - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - adds r1, r5, 0 - adds r0, r4, 0 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - bl __subdf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r0, r7, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080B658C @ =0x3fb00000 - ldr r3, _080B6590 @ =0x00000000 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - bl __adddf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r7, r0, 16 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - bl __floatsidf - adds r5, r1, 0 - adds r4, r0, 0 - mov r2, r10 - lsls r0, r2, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080B658C @ =0x3fb00000 - ldr r3, _080B6590 @ =0x00000000 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - adds r1, r5, 0 - adds r0, r4, 0 - bl __subdf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, [sp, 0xC] - lsls r0, r1, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080B658C @ =0x3fb00000 - ldr r3, _080B6590 @ =0x00000000 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - adds r1, r5, 0 - adds r0, r4, 0 - bl __adddf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r5, r0, 16 - b _080B65C2 - .align 2, 0 -_080B6588: .4byte gTasks -_080B658C: .4byte 0x3fb00000 -_080B6590: .4byte 0x00000000 -_080B6594: - movs r2, 0 - mov r9, r2 - movs r7, 0xF0 - movs r6, 0 - movs r5, 0x70 - str r6, [sp] - str r6, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r3, 0 - bl sub_8075BE8 - lsls r0, 16 - lsrs r0, 16 - str r6, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080B65E4 @ =sub_80B65F0 - str r0, [r4] -_080B65C2: - ldr r1, _080B65E8 @ =gUnknown_2022984 - mov r2, r9 - lsls r0, r2, 8 - orrs r7, r0 - strh r7, [r1] - ldr r1, _080B65EC @ =gUnknown_2022986 - lsls r0, r6, 8 - orrs r5, r0 - strh r5, [r1] - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B65E4: .4byte sub_80B65F0 -_080B65E8: .4byte gUnknown_2022984 -_080B65EC: .4byte gUnknown_2022986 - thumb_func_end sub_80B6468 - - thumb_func_start sub_80B65F0 -sub_80B65F0: @ 80B65F0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080B663C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080B6636 - ldr r0, _080B6640 @ =gUnknown_2022984 - strh r1, [r0] - ldr r0, _080B6644 @ =gUnknown_2022986 - strh r1, [r0] - ldr r4, _080B6648 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B6636: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B663C: .4byte gPaletteFade -_080B6640: .4byte gUnknown_2022984 -_080B6644: .4byte gUnknown_2022986 -_080B6648: .4byte 0x00003f3f - thumb_func_end sub_80B65F0 - - thumb_func_start sub_80B664C -sub_80B664C: @ 80B664C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080B6678 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B6680 - movs r2, 0x18 - ldr r3, _080B667C @ =0x0000fffe - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r4, 0x3] - b _080B6684 - .align 2, 0 -_080B6678: .4byte gUnknown_2037F1A -_080B667C: .4byte 0x0000fffe -_080B6680: - ldr r2, _080B66A0 @ =0x0000ffe8 - movs r3, 0x2 -_080B6684: - lsls r0, r2, 16 - asrs r0, 16 - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r3, [r4, 0x30] - movs r0, 0x3C - strh r0, [r4, 0x2E] - ldr r0, _080B66A4 @ =sub_80B66A8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B66A0: .4byte 0x0000ffe8 -_080B66A4: .4byte sub_80B66A8 - thumb_func_end sub_80B664C - - thumb_func_start sub_80B66A8 -sub_80B66A8: @ 80B66A8 - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x2E] - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080B66BA - subs r0, r1, 0x1 - b _080B671E -_080B66BA: - ldrh r0, [r3, 0x30] - ldrh r4, [r3, 0x24] - adds r1, r0, r4 - strh r1, [r3, 0x24] - adds r0, r1, 0x7 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xE - bls _080B6720 - ldrh r0, [r3, 0x20] - adds r0, r1 - strh r0, [r3, 0x20] - movs r0, 0 - strh r0, [r3, 0x24] - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r4, _080B670C @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080B6710 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080B671C - movs r0, 0x1E - strh r0, [r3, 0x2E] - ldr r0, _080B6714 @ =sub_8074C44 - str r0, [r3, 0x1C] - ldr r1, _080B6718 @ =sub_80B6728 - adds r0, r3, 0 - bl StoreSpriteCallbackInData6 - b _080B6720 - .align 2, 0 -_080B670C: .4byte 0x000003ff -_080B6710: .4byte 0xfffffc00 -_080B6714: .4byte sub_8074C44 -_080B6718: .4byte sub_80B6728 -_080B671C: - movs r0, 0x28 -_080B671E: - strh r0, [r3, 0x2E] -_080B6720: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B66A8 - - thumb_func_start sub_80B6728 -sub_80B6728: @ 80B6728 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _080B6752 - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - b _080B6796 -_080B6752: - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bgt _080B6762 - adds r0, r1, 0x1 - strh r0, [r4, 0x30] - b _080B6796 -_080B6762: - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - movs r1, 0x10 - subs r1, r0 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080B6796 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B679C @ =sub_80B67A0 - str r0, [r4, 0x1C] -_080B6796: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B679C: .4byte sub_80B67A0 - thumb_func_end sub_80B6728 - - thumb_func_start sub_80B67A0 -sub_80B67A0: @ 80B67A0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - ldr r0, _080B67CC @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B67D0 @ =gUnknown_2022986 - strh r1, [r0] - adds r0, r4, 0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B67CC: .4byte gUnknown_2022984 -_080B67D0: .4byte gUnknown_2022986 - thumb_func_end sub_80B67A0 - - thumb_func_start sub_80B67D4 -sub_80B67D4: @ 80B67D4 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r1, 0xC - bl Sin - strh r0, [r5, 0x24] - ldr r0, _080B683C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B67F8 - ldrh r0, [r5, 0x24] - negs r0, r0 - strh r0, [r5, 0x24] -_080B67F8: - ldrh r0, [r5, 0x2E] - adds r0, 0x6 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x2E] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r5, 0x30] - adds r0, r1 - strh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080B6844 - ldr r0, _080B6840 @ =0x0000050b - strh r0, [r5, 0x3A] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r5, 0x3A] - movs r0, 0x52 - bl SetGpuReg - b _080B689C - .align 2, 0 -_080B683C: .4byte gUnknown_2037F1A -_080B6840: .4byte 0x0000050b -_080B6844: - cmp r0, 0x1E - ble _080B689C - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x3A] - lsls r0, r1, 16 - asrs r0, 24 - lsls r0, 16 - movs r6, 0xFF - ands r6, r1 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r7, r0, 16 - cmp r7, 0x10 - bls _080B6868 - movs r7, 0x10 -_080B6868: - subs r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r0, 0 - bge _080B6874 - movs r6, 0 -_080B6874: - lsls r4, r7, 8 - orrs r4, r6 - lsls r1, r4, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - strh r4, [r5, 0x3A] - cmp r7, 0x10 - bne _080B689C - cmp r6, 0 - bne _080B689C - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B68A4 @ =sub_80B68A8 - str r0, [r5, 0x1C] -_080B689C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B68A4: .4byte sub_80B68A8 - thumb_func_end sub_80B67D4 - - thumb_func_start sub_80B68A8 -sub_80B68A8: @ 80B68A8 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B68A8 - - thumb_func_start sub_80B68C8 -sub_80B68C8: @ 80B68C8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080B6960 @ =gTasks - adds r4, r0 - movs r6, 0 - strh r6, [r4, 0x8] - movs r0, 0x10 - mov r8, r0 - mov r0, r8 - strh r0, [r4, 0xA] - ldr r5, _080B6964 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - ldrb r0, [r5] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - asrs r1, 1 - adds r1, 0x8 - strh r1, [r4, 0x1E] - strh r6, [r4, 0x16] - ldrb r0, [r5] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - ldrb r0, [r5] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x2 - strh r0, [r4, 0x14] - strh r6, [r4, 0xE] - mov r0, r8 - strh r0, [r4, 0x10] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - strh r6, [r4, 0x18] - ldr r0, _080B6968 @ =sub_80B696C - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B6960: .4byte gTasks -_080B6964: .4byte gUnknown_2037F1A -_080B6968: .4byte sub_80B696C - thumb_func_end sub_80B68C8 - - thumb_func_start sub_80B696C -sub_80B696C: @ 80B696C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080B6990 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080B6986 - b _080B6AF2 -_080B6986: - lsls r0, 2 - ldr r1, _080B6994 @ =_080B6998 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B6990: .4byte gTasks -_080B6994: .4byte _080B6998 - .align 2, 0 -_080B6998: - .4byte _080B69B0 - .4byte _080B6A20 - .4byte _080B6A62 - .4byte _080B6A76 - .4byte _080B6ACC - .4byte _080B6ADC -_080B69B0: - movs r6, 0 -_080B69B2: - movs r2, 0x1A - ldrsh r1, [r4, r2] - movs r0, 0x1C - ldrsh r2, [r4, r0] - ldrb r3, [r4, 0x14] - ldr r0, _080B6A14 @ =gUnknown_83E76E0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080B6A06 - ldr r1, _080B6A18 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r1 - strh r7, [r5, 0x2E] - ldr r0, _080B6A1C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _080B69E8 - movs r1, 0x1 -_080B69E8: - strh r1, [r5, 0x30] - movs r0, 0x2A - muls r0, r6 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x1E] - strh r0, [r5, 0x34] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 1 - strh r0, [r5, 0x38] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] -_080B6A06: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080B69B2 - b _080B6AD4 - .align 2, 0 -_080B6A14: .4byte gUnknown_83E76E0 -_080B6A18: .4byte gSprites -_080B6A1C: .4byte gUnknown_2037F1A -_080B6A20: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B6A3E - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0xD - bgt _080B6A4C - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080B6A4C -_080B6A3E: - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0x4 - ble _080B6A4C - subs r0, r1, 0x1 - strh r0, [r4, 0x10] -_080B6A4C: - movs r1, 0xE - ldrsh r0, [r4, r1] - ldrh r2, [r4, 0xE] - ldrh r1, [r4, 0x10] - cmp r0, 0xE - bne _080B6ABC - cmp r1, 0x4 - bne _080B6ABC - movs r0, 0 - strh r0, [r4, 0xA] - b _080B6AB6 -_080B6A62: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080B6AF2 - movs r0, 0 - strh r0, [r4, 0xA] - b _080B6AD4 -_080B6A76: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B6A94 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080B6AA2 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080B6AA2 -_080B6A94: - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B6AA2 - adds r0, r1, 0x1 - strh r0, [r4, 0x10] -_080B6AA2: - movs r1, 0xE - ldrsh r0, [r4, r1] - ldrh r2, [r4, 0xE] - ldrh r1, [r4, 0x10] - cmp r0, 0 - bne _080B6ABC - cmp r1, 0x10 - bne _080B6ABC - movs r0, 0x1 - strh r0, [r4, 0x18] -_080B6AB6: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B6ABC: - lsls r1, 8 - orrs r1, r2 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - b _080B6AF2 -_080B6ACC: - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B6AF2 -_080B6AD4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B6AF2 -_080B6ADC: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r7, 0 - bl DestroyAnimVisualTask -_080B6AF2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B696C - - thumb_func_start sub_80B6AF8 -sub_80B6AF8: @ 80B6AF8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B6B0A - ldrh r0, [r4, 0x32] - adds r0, 0x2 - b _080B6B0E -_080B6B0A: - ldrh r0, [r4, 0x32] - subs r0, 0x2 -_080B6B0E: - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x32] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7E - bhi _080B6B50 - ldr r2, _080B6B4C @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x12] - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - b _080B6B64 - .align 2, 0 -_080B6B4C: .4byte gTasks -_080B6B50: - ldr r2, _080B6BB8 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x3 - ldrb r1, [r0, 0x12] - ands r1, r2 -_080B6B64: - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsls r0, 3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - movs r1, 0x7 - bl Sin - strh r0, [r4, 0x26] - ldr r2, _080B6BB8 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r2 - movs r2, 0x18 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080B6BB2 - ldrh r0, [r1, 0x16] - subs r0, 0x1 - strh r0, [r1, 0x16] - adds r0, r4, 0 - bl DestroySprite -_080B6BB2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B6BB8: .4byte gTasks - thumb_func_end sub_80B6AF8 - - thumb_func_start sub_80B6BBC -sub_80B6BBC: @ 80B6BBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _080B6BDC @ =gTasks - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x26] - ldr r2, _080B6BE0 @ =sub_80B6BE4 - str r2, [r1] - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_080B6BDC: .4byte gTasks -_080B6BE0: .4byte sub_80B6BE4 - thumb_func_end sub_80B6BBC - - thumb_func_start sub_80B6BE4 -sub_80B6BE4: @ 80B6BE4 - push {r4-r6,lr} - sub sp, 0x1C - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B6C18 @ =gTasks - adds r6, r1, r0 - ldr r0, _080B6C1C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0x26 - ldrsh r0, [r6, r1] - cmp r0, 0x7 - bls _080B6C0C - b _080B6F1E -_080B6C0C: - lsls r0, 2 - ldr r1, _080B6C20 @ =_080B6C24 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B6C18: .4byte gTasks -_080B6C1C: .4byte gUnknown_2037F1A -_080B6C20: .4byte _080B6C24 - .align 2, 0 -_080B6C24: - .4byte _080B6C44 - .4byte _080B6CCC - .4byte _080B6D28 - .4byte _080B6D8C - .4byte _080B6E04 - .4byte _080B6E6C - .4byte _080B6E82 - .4byte _080B6EEC -_080B6C44: - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x2 - bl SetAnimBgAttribute - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0 - strh r0, [r6, 0xA] - strh r0, [r6, 0xC] - movs r0, 0x10 - strh r0, [r6, 0xE] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x10] - ldr r3, _080B6CC8 @ =gSprites - movs r2, 0x10 - ldrsh r1, [r6, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x5] - lsls r0, 28 - lsrs r0, 30 - strh r0, [r6, 0x12] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r0, 4 - strh r0, [r6, 0x14] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r0, 0x10 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - movs r0, 0x80 - strh r0, [r6, 0x16] - b _080B6F1E - .align 2, 0 -_080B6CC8: .4byte gSprites -_080B6CCC: - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] - movs r5, 0x1 - ands r5, r0 - cmp r5, 0 - beq _080B6CDC - b _080B6F24 -_080B6CDC: - ldrh r0, [r6, 0x14] - ldrb r2, [r6, 0xC] - ldr r4, _080B6D08 @ =0x000066e0 - movs r1, 0x10 - adds r3, r4, 0 - bl BlendPalette - ldrh r0, [r6, 0x16] - ldrb r2, [r6, 0xC] - movs r1, 0x10 - adds r3, r4, 0 - bl BlendPalette - ldrh r1, [r6, 0xC] - movs r2, 0xC - ldrsh r0, [r6, r2] - cmp r0, 0xB - bgt _080B6D0C - adds r0, r1, 0x1 - strh r0, [r6, 0xC] - b _080B6F24 - .align 2, 0 -_080B6D08: .4byte 0x000066e0 -_080B6D0C: - strh r5, [r6, 0xA] - strh r5, [r6, 0xC] - ldr r1, _080B6D24 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - b _080B6F1E - .align 2, 0 -_080B6D24: .4byte 0x00003f44 -_080B6D28: - movs r0, 0x2 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - ldr r0, _080B6D7C @ =gUnknown_202297C - movs r1, 0 - strh r1, [r0] - ldr r4, _080B6D80 @ =gUnknown_202297E - strh r1, [r4] - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x1A - bl SetGpuReg - add r0, sp, 0xC - movs r1, 0x2 - bl sub_80752C8 - add r0, sp, 0xC - ldrb r0, [r0, 0x9] - ldr r1, _080B6D84 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet - add r2, sp, 0xC - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080B6D88 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette - add r1, sp, 0xC - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080B6F1E - .align 2, 0 -_080B6D7C: .4byte gUnknown_202297C -_080B6D80: .4byte gUnknown_202297E -_080B6D84: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet -_080B6D88: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette -_080B6D8C: - add r0, sp, 0xC - movs r1, 0x2 - bl sub_80752C8 - movs r0, 0x80 - lsls r0, 6 - bl AllocZeroed - adds r1, r0, 0 - ldr r5, _080B6DFC @ =gMonSpritesGfxPtr - ldr r0, [r5] - movs r4, 0xBE - lsls r4, 1 - adds r0, r4 - str r1, [r0] - ldr r0, _080B6E00 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap - bl LZDecompressWram - add r0, sp, 0xC - ldrb r0, [r0, 0x8] - ldr r1, [r5] - adds r1, r4 - ldr r1, [r1] - movs r2, 0x80 - lsls r2, 1 - movs r3, 0 - bl sub_80730C0 - add r0, sp, 0xC - ldrb r0, [r0, 0x9] - ldr r1, [r5] - adds r1, r4 - ldr r1, [r1] - movs r2, 0x20 - str r2, [sp] - str r2, [sp, 0x4] - movs r2, 0x11 - str r2, [sp, 0x8] - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - ldr r0, [r5] - adds r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r5] - adds r0, r4 - movs r1, 0 - str r1, [r0] - b _080B6F1E - .align 2, 0 -_080B6DFC: .4byte gMonSpritesGfxPtr -_080B6E00: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap -_080B6E04: - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B6E14 - b _080B6F24 -_080B6E14: - ldrh r1, [r6, 0xC] - adds r1, 0x1 - strh r1, [r6, 0xC] - ldrh r0, [r6, 0xE] - subs r0, 0x1 - strh r0, [r6, 0xE] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0xE - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080B6F24 - strh r0, [r6, 0xA] - strh r0, [r6, 0xC] - movs r0, 0x10 - strh r0, [r6, 0xE] - ldr r1, _080B6E68 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x2 - bl SetAnimBgAttribute - b _080B6F1E - .align 2, 0 -_080B6E68: .4byte 0x00003f42 -_080B6E6C: - cmp r4, 0x1 - bne _080B6E76 - movs r1, 0x80 - lsls r1, 2 - b _080B6E7A -_080B6E76: - movs r1, 0x80 - lsls r1, 3 -_080B6E7A: - movs r0, 0 - bl ClearGpuRegBits - b _080B6F1E -_080B6E82: - ldr r2, _080B6EC0 @ =gSprites - movs r0, 0x10 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - subs r1, 0x20 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r1, 0 - bge _080B6EA2 - movs r2, 0 -_080B6EA2: - cmp r4, 0x1 - bne _080B6EC4 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x4 - str r2, [sp, 0x4] - str r4, [sp, 0x8] - b _080B6EDE - .align 2, 0 -_080B6EC0: .4byte gSprites -_080B6EC4: - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x8 - str r2, [sp, 0x4] - movs r2, 0x1 - str r2, [sp, 0x8] - movs r2, 0x4 -_080B6EDE: - movs r3, 0x8 - bl sub_8088230 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x1C] - b _080B6F1E -_080B6EEC: - ldrh r0, [r6, 0x16] - ldr r3, _080B6F08 @ =0x000077ff - movs r1, 0x10 - movs r2, 0xC - bl BlendPalette - cmp r4, 0x1 - bne _080B6F0C - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl SetGpuRegBits - b _080B6F16 - .align 2, 0 -_080B6F08: .4byte 0x000077ff -_080B6F0C: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits -_080B6F16: - ldr r0, _080B6F2C @ =sub_80B6F30 - str r0, [r6] - movs r0, 0 - strh r0, [r6, 0x26] -_080B6F1E: - ldrh r0, [r6, 0x26] - adds r0, 0x1 - strh r0, [r6, 0x26] -_080B6F24: - add sp, 0x1C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B6F2C: .4byte sub_80B6F30 - thumb_func_end sub_80B6BE4 - - thumb_func_start sub_80B6F30 -sub_80B6F30: @ 80B6F30 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B6FB8 @ =gTasks - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x1 - ands r0, r1 - strh r0, [r4, 0x18] - cmp r0, 0 - bne _080B6F68 - ldr r1, _080B6FBC @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - strh r0, [r4, 0xC] -_080B6F68: - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _080B6F8A - ldr r1, _080B6FBC @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - movs r1, 0x10 - subs r1, r0 - strh r1, [r4, 0xE] -_080B6F8A: - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0xC] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x80 - bne _080B6FB2 - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080B6FC0 @ =sub_80B6FC4 - str r1, [r4] - adds r0, r5, 0 - bl _call_via_r1 -_080B6FB2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6FB8: .4byte gTasks -_080B6FBC: .4byte gUnknown_825E074 -_080B6FC0: .4byte sub_80B6FC4 - thumb_func_end sub_80B6F30 - - thumb_func_start sub_80B6FC4 -sub_80B6FC4: @ 80B6FC4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080B6FE8 @ =gTasks - adds r6, r0, r1 - movs r1, 0x26 - ldrsh r0, [r6, r1] - cmp r0, 0x5 - bls _080B6FDE - b _080B7148 -_080B6FDE: - lsls r0, 2 - ldr r1, _080B6FEC @ =_080B6FF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B6FE8: .4byte gTasks -_080B6FEC: .4byte _080B6FF0 - .align 2, 0 -_080B6FF0: - .4byte _080B7008 - .4byte _080B7024 - .4byte _080B7044 - .4byte _080B707C - .4byte _080B709C - .4byte _080B70E8 -_080B7008: - ldr r1, _080B701C @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] - ldrh r0, [r6, 0x16] - ldr r3, _080B7020 @ =0x000066e0 - movs r1, 0x10 - movs r2, 0xC - bl BlendPalette - b _080B7148 - .align 2, 0 -_080B701C: .4byte gUnknown_2039600 -_080B7020: .4byte 0x000066e0 -_080B7024: - ldr r1, _080B7040 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - movs r1, 0 - movs r0, 0x10 - strh r0, [r6, 0xC] - strh r1, [r6, 0xE] - b _080B7148 - .align 2, 0 -_080B7040: .4byte 0x00003f44 -_080B7044: - ldrh r1, [r6, 0xC] - subs r1, 0x1 - strh r1, [r6, 0xC] - ldrh r0, [r6, 0xE] - adds r0, 0x1 - strh r0, [r6, 0xE] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0xE - ldrsh r0, [r6, r2] - cmp r0, 0xF - ble _080B714E - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x2 - bl SetAnimBgAttribute - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x2 - bl SetAnimBgAttribute - b _080B7148 -_080B707C: - movs r0, 0x2 - bl sub_8075358 - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette - movs r0, 0x2 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute - movs r0, 0xC - strh r0, [r6, 0xA] - b _080B7148 -_080B709C: - ldrh r0, [r6, 0x14] - ldrb r2, [r6, 0xA] - ldr r4, _080B70C8 @ =0x000066e0 - movs r1, 0x10 - adds r3, r4, 0 - bl BlendPalette - ldrh r0, [r6, 0x16] - ldrb r2, [r6, 0xA] - movs r1, 0x10 - adds r3, r4, 0 - bl BlendPalette - ldrh r0, [r6, 0xA] - movs r2, 0xA - ldrsh r1, [r6, r2] - cmp r1, 0 - beq _080B70CC - subs r0, 0x1 - strh r0, [r6, 0xA] - b _080B714E - .align 2, 0 -_080B70C8: .4byte 0x000066e0 -_080B70CC: - strh r1, [r6, 0xA] - ldr r1, _080B70E4 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - b _080B7148 - .align 2, 0 -_080B70E4: .4byte 0x00003f44 -_080B70E8: - ldr r5, _080B7154 @ =gSprites - movs r1, 0x10 - ldrsh r0, [r6, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - movs r0, 0x3 - ldrb r2, [r6, 0x12] - ands r2, r0 - lsls r2, 2 - ldrb r4, [r1, 0x5] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r0, r4 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r2, 0x10 - ldrsh r1, [r6, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ands r3, r1 - strb r3, [r0, 0x1] - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r7, 0 - bl DestroyAnimVisualTask -_080B7148: - ldrh r0, [r6, 0x26] - adds r0, 0x1 - strh r0, [r6, 0x26] -_080B714E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7154: .4byte gSprites - thumb_func_end sub_80B6FC4 - - thumb_func_start sub_80B7158 -sub_80B7158: @ 80B7158 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - ldr r2, _080B719C @ =gUnknown_2023D44 - ldr r1, _080B71A0 @ =gUnknown_2037F1A - ldrb r1, [r1] - adds r1, r2 - ldrb r1, [r1] - strh r1, [r0, 0x38] - movs r1, 0x80 - strh r1, [r0, 0x2E] - movs r1, 0xA - strh r1, [r0, 0x30] - ldr r2, _080B71A4 @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0x32] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x34] - ldr r1, _080B71A8 @ =sub_80B71B0 - str r1, [r0, 0x1C] - ldr r2, _080B71AC @ =gSprites - movs r3, 0x38 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080B719C: .4byte gUnknown_2023D44 -_080B71A0: .4byte gUnknown_2037F1A -_080B71A4: .4byte gUnknown_2037F02 -_080B71A8: .4byte sub_80B71B0 -_080B71AC: .4byte gSprites - thumb_func_end sub_80B7158 - - thumb_func_start sub_80B71B0 -sub_80B71B0: @ 80B71B0 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x34] - movs r1, 0x34 - ldrsh r3, [r5, r1] - cmp r3, 0 - beq _080B7218 - subs r0, 0x1 - strh r0, [r5, 0x34] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Sin - ldr r4, _080B7210 @ =gSprites - movs r1, 0x38 - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x24] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Cos - movs r1, 0x38 - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x26] - ldrh r0, [r5, 0x32] - ldrh r2, [r5, 0x2E] - adds r1, r0, r2 - strh r1, [r5, 0x2E] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080B724C - ldr r2, _080B7214 @ =0xffffff00 - adds r0, r1, r2 - strh r0, [r5, 0x2E] - b _080B724C - .align 2, 0 -_080B7210: .4byte gSprites -_080B7214: .4byte 0xffffff00 -_080B7218: - ldr r2, _080B7254 @ =gSprites - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x8 - strh r1, [r0, 0x22] - ldr r0, _080B7258 @ =move_anim_8074EE0 - str r0, [r5, 0x1C] -_080B724C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7254: .4byte gSprites -_080B7258: .4byte move_anim_8074EE0 - thumb_func_end sub_80B71B0 - - thumb_func_start sub_80B725C -sub_80B725C: @ 80B725C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B72A4 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B72AC - ldr r2, _080B72A8 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r2, 0x6] - negs r0, r0 - strh r0, [r2, 0x6] - ldrh r0, [r2, 0x8] - negs r0, r0 - strh r0, [r2, 0x8] - adds r1, r2, 0 - b _080B72B6 - .align 2, 0 -_080B72A4: .4byte gUnknown_2037F1A -_080B72A8: .4byte gUnknown_2037F02 -_080B72AC: - ldr r1, _080B72EC @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] -_080B72B6: - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x38] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080B72F0 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B72F4 @ =sub_8074E70 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B72EC: .4byte gUnknown_2037F02 -_080B72F0: .4byte move_anim_8074EE0 -_080B72F4: .4byte sub_8074E70 - thumb_func_end sub_80B725C - - thumb_func_start sub_80B72F8 -sub_80B72F8: @ 80B72F8 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8074FCC - ldr r4, _080B7350 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080B7354 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B735C - ldr r2, _080B7358 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x20] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r1, r0 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x32] - ldrh r1, [r2, 0x4] - subs r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r2, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - b _080B7386 - .align 2, 0 -_080B7350: .4byte gUnknown_2037F1B -_080B7354: .4byte gUnknown_2037F1A -_080B7358: .4byte gUnknown_2037F02 -_080B735C: - ldr r1, _080B73A0 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080B7386: - ldr r0, _080B73A0 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080B73A4 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080B73A8 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B73A0: .4byte gUnknown_2037F02 -_080B73A4: .4byte sub_8075590 -_080B73A8: .4byte move_anim_8074EE0 - thumb_func_end sub_80B72F8 - - thumb_func_start sub_80B73AC -sub_80B73AC: @ 80B73AC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B73C0 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B73C8 - ldr r4, _080B73C4 @ =gUnknown_2037F1A - b _080B73CA - .align 2, 0 -_080B73C0: .4byte gUnknown_2037F02 -_080B73C4: .4byte gUnknown_2037F1A -_080B73C8: - ldr r4, _080B740C @ =gUnknown_2037F1B -_080B73CA: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080B7410 @ =gUnknown_2037F02 - movs r0, 0x2 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_8074FF8 - ldrh r0, [r4, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldr r0, _080B7414 @ =sub_8074F6C - str r0, [r5, 0x1C] - ldr r1, _080B7418 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B740C: .4byte gUnknown_2037F1B -_080B7410: .4byte gUnknown_2037F02 -_080B7414: .4byte sub_8074F6C -_080B7418: .4byte move_anim_8074EE0 - thumb_func_end sub_80B73AC - - thumb_func_start sub_80B741C -sub_80B741C: @ 80B741C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B7444 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B7436 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080B7436: - adds r0, r4, 0 - bl sub_80B72F8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7444: .4byte gUnknown_2037F1A - thumb_func_end sub_80B741C - - thumb_func_start sub_80B7448 -sub_80B7448: @ 80B7448 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r4, _080B749C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r6, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - strh r5, [r6, 0x36] - movs r0, 0x1 - strh r0, [r6, 0x38] - ldr r0, _080B74A0 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r6, 0x3A] - ldr r4, _080B74A4 @ =sBattler_AI - ldrb r0, [r4] - movs r1, 0 - bl sub_8076B2C - lsls r7, r0, 16 - lsrs r5, r7, 16 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8076B2C - lsls r1, r0, 16 - lsrs r0, r1, 16 - cmp r5, r0 - bls _080B74A8 - lsrs r0, r7, 17 - b _080B74AA - .align 2, 0 -_080B749C: .4byte gUnknown_2037F1A -_080B74A0: .4byte gUnknown_2037F02 -_080B74A4: .4byte sBattler_AI -_080B74A8: - lsrs r0, r1, 17 -_080B74AA: - strh r0, [r6, 0x3C] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x3C - ldrsh r1, [r6, r2] - bl Cos - strh r0, [r6, 0x24] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x3C - ldrsh r1, [r6, r2] - bl Sin - strh r0, [r6, 0x26] - ldr r0, _080B74D4 @ =sub_80B74D8 - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B74D4: .4byte sub_80B74D8 - thumb_func_end sub_80B7448 - - thumb_func_start sub_80B74D8 -sub_80B74D8: @ 80B74D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080B74EA - cmp r5, 0x1 - beq _080B7556 - b _080B75DA -_080B74EA: - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x38] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080B753C - strh r5, [r4, 0x36] - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B753C - adds r0, r1, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080B753C - movs r0, 0x10 - strh r0, [r4, 0x38] -_080B753C: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080B75DA - movs r0, 0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B75DA -_080B7556: - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x38] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x95 - bgt _080B757E - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x95 - ble _080B757E - movs r0, 0x96 - strh r0, [r4, 0x3C] -_080B757E: - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080B75C6 - movs r0, 0 - strh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B75C6 - adds r0, r1, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080B75C6 - movs r0, 0x10 - strh r0, [r4, 0x38] -_080B75C6: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080B75DA - adds r0, r4, 0 - bl DestroyAnimSprite -_080B75DA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B74D8 - - thumb_func_start sub_80B75E0 -sub_80B75E0: @ 80B75E0 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B760C @ =gTasks - adds r4, r1, r0 - ldr r0, _080B7610 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B761C - ldr r0, _080B7614 @ =0x04000014 - str r0, [sp] - ldr r0, _080B7618 @ =gUnknown_2022978 - b _080B7622 - .align 2, 0 -_080B760C: .4byte gTasks -_080B7610: .4byte gUnknown_2037F1A -_080B7614: .4byte 0x04000014 -_080B7618: .4byte gUnknown_2022978 -_080B761C: - ldr r0, _080B7698 @ =0x04000018 - str r0, [sp] - ldr r0, _080B769C @ =gUnknown_202297C -_080B7622: - ldrh r0, [r0] - strh r0, [r4, 0xC] - ldr r0, _080B76A0 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r5, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r5, [r0, 0x9] - ldr r0, _080B76A4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0xE] - adds r0, 0x20 - strh r0, [r4, 0x10] - cmp r1, 0 - bge _080B7652 - strh r5, [r4, 0xE] -_080B7652: - ldrh r3, [r4, 0xE] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bgt _080B7680 - ldr r5, _080B76A8 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080B7664: - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r4, 0xC] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - ble _080B7664 -_080B7680: - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - ldr r0, _080B76AC @ =sub_80B76B0 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7698: .4byte 0x04000018 -_080B769C: .4byte gUnknown_202297C -_080B76A0: .4byte 0xa2600001 -_080B76A4: .4byte gUnknown_2037F1A -_080B76A8: .4byte gUnknown_2038700 -_080B76AC: .4byte sub_80B76B0 - thumb_func_end sub_80B75E0 - - thumb_func_start sub_80B76B0 -sub_80B76B0: @ 80B76B0 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080B76D4 @ =gTasks - adds r2, r0, r1 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bhi _080B7766 - lsls r0, 2 - ldr r1, _080B76D8 @ =_080B76DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B76D4: .4byte gTasks -_080B76D8: .4byte _080B76DC - .align 2, 0 -_080B76DC: - .4byte _080B76F0 - .4byte _080B7712 - .4byte _080B7722 - .4byte _080B774E - .4byte _080B7760 -_080B76F0: - ldrh r0, [r2, 0x16] - adds r0, 0x1 - strh r0, [r2, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B7746 - movs r0, 0 - strh r0, [r2, 0x16] - ldrh r0, [r2, 0x14] - adds r0, 0x1 - strh r0, [r2, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080B7746 - b _080B7740 -_080B7712: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080B7746 - b _080B7740 -_080B7722: - ldrh r0, [r2, 0x16] - adds r0, 0x1 - strh r0, [r2, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B7746 - movs r0, 0 - strh r0, [r2, 0x16] - ldrh r0, [r2, 0x14] - subs r0, 0x1 - strh r0, [r2, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _080B7746 -_080B7740: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_080B7746: - adds r0, r2, 0 - bl sub_80B776C - b _080B7766 -_080B774E: - ldr r1, _080B775C @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080B7766 - .align 2, 0 -_080B775C: .4byte gUnknown_2039600 -_080B7760: - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080B7766: - pop {r0} - bx r0 - thumb_func_end sub_80B76B0 - - thumb_func_start sub_80B776C -sub_80B776C: @ 80B776C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldrh r3, [r5, 0x12] - ldrh r4, [r5, 0xE] - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r4, r0 - bgt _080B77C2 - ldr r7, _080B77D8 @ =gUnknown_2038700 - mov r12, r7 - ldr r0, _080B77DC @ =gUnknown_825E074 - mov r8, r0 - ldr r6, _080B77E0 @ =gUnknown_2039600 -_080B778A: - lsls r2, r4, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - lsls r0, r3, 1 - add r0, r8 - movs r7, 0 - ldrsh r1, [r0, r7] - movs r7, 0x14 - ldrsh r0, [r5, r7] - muls r0, r1 - asrs r0, 7 - ldrh r1, [r5, 0xC] - adds r0, r1 - strh r0, [r2] - adds r3, 0x8 - movs r0, 0xFF - ands r3, r0 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r7, 0x10 - ldrsh r0, [r5, r7] - cmp r4, r0 - ble _080B778A -_080B77C2: - ldrh r0, [r5, 0x12] - adds r0, 0x9 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x12] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B77D8: .4byte gUnknown_2038700 -_080B77DC: .4byte gUnknown_825E074 -_080B77E0: .4byte gUnknown_2039600 - thumb_func_end sub_80B776C - - thumb_func_start sub_80B77E4 -sub_80B77E4: @ 80B77E4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - ldr r5, _080B7884 @ =gUnknown_2037F02 - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - movs r1, 0x5 - bl __divsi3 - adds r6, r0, 0 - ldr r1, _080B7888 @ =gUnknown_2037F1A - mov r8, r1 - ldrb r0, [r1] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - mov r2, r8 - ldrb r0, [r2] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r5, 0x8] - adds r0, r3 - strh r0, [r4, 0x22] - movs r1, 0x2 - ldrsh r0, [r5, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Cos - strh r0, [r4, 0x30] - movs r3, 0x2 - ldrsh r0, [r5, r3] - lsls r6, 16 - asrs r6, 16 - adds r1, r6, 0 - bl Sin - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - ldrh r2, [r5] - adds r3, r2, 0 - muls r3, r1 - adds r1, r3, 0 - ldrh r3, [r4, 0x20] - adds r1, r3 - strh r1, [r4, 0x20] - adds r1, r2, 0 - muls r1, r0 - adds r0, r1, 0 - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x34] - ldr r0, _080B788C @ =sub_80B7894 - str r0, [r4, 0x1C] - adds r4, 0x2E - ldr r2, _080B7890 @ =gUnknown_20399A4 - movs r1, 0x6 -_080B786C: - ldrh r0, [r4] - strh r0, [r2] - adds r4, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080B786C - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7884: .4byte gUnknown_2037F02 -_080B7888: .4byte gUnknown_2037F1A -_080B788C: .4byte sub_80B7894 -_080B7890: .4byte gUnknown_20399A4 - thumb_func_end sub_80B77E4 - - thumb_func_start sub_80B7894 -sub_80B7894: @ 80B7894 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080B78D8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B78D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7894 - - thumb_func_start sub_80B78E0 -sub_80B78E0: @ 80B78E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080B791C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080B7920 @ =gUnknown_2037F02 - ldrh r1, [r1] - strh r1, [r0, 0x8] - ldr r1, _080B7924 @ =gUnknown_2037F1A - ldrb r4, [r1] - movs r1, 0x10 - strh r1, [r0, 0xA] - movs r0, 0x52 - bl SetGpuReg - adds r0, r4, 0 - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B792C - ldr r1, _080B7928 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - b _080B7934 - .align 2, 0 -_080B791C: .4byte gTasks -_080B7920: .4byte gUnknown_2037F02 -_080B7924: .4byte gUnknown_2037F1A -_080B7928: .4byte 0x00003f42 -_080B792C: - ldr r1, _080B7948 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg -_080B7934: - ldr r0, _080B794C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080B7950 @ =sub_80B7954 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7948: .4byte 0x00003f44 -_080B794C: .4byte gTasks -_080B7950: .4byte sub_80B7954 - thumb_func_end sub_80B78E0 - - thumb_func_start sub_80B7954 -sub_80B7954: @ 80B7954 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080B79C0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r6, r0, r1 - ldrh r0, [r6, 0xA] - lsrs r4, r0, 8 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xC - ldrsh r0, [r6, r2] - ldrb r2, [r6, 0x8] - cmp r0, r2 - bne _080B79D0 - adds r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 8 - orrs r1, r0 - movs r5, 0 - strh r1, [r6, 0xA] - ldrh r1, [r6, 0xA] - movs r0, 0x52 - bl SetGpuReg - strh r5, [r6, 0xC] - cmp r4, 0x10 - bne _080B79D6 - ldr r2, _080B79C4 @ =gSprites - ldr r1, _080B79C8 @ =gUnknown_2023D44 - ldr r0, _080B79CC @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - 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] - adds r0, r7, 0 - bl DestroyAnimVisualTask - b _080B79D6 - .align 2, 0 -_080B79C0: .4byte gTasks -_080B79C4: .4byte gSprites -_080B79C8: .4byte gUnknown_2023D44 -_080B79CC: .4byte gUnknown_2037F1A -_080B79D0: - ldrh r0, [r6, 0xC] - adds r0, 0x1 - strh r0, [r6, 0xC] -_080B79D6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B7954 - - thumb_func_start sub_80B79DC -sub_80B79DC: @ 80B79DC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B7A08 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldr r0, _080B7A0C @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r2, 0x8] - movs r1, 0x80 - lsls r1, 5 - strh r1, [r2, 0xA] - ldr r0, _080B7A10 @ =sub_80B7A14 - str r0, [r2] - movs r0, 0x52 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080B7A08: .4byte gTasks -_080B7A0C: .4byte gUnknown_2037F02 -_080B7A10: .4byte sub_80B7A14 - thumb_func_end sub_80B79DC - - thumb_func_start sub_80B7A14 -sub_80B7A14: @ 80B7A14 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080B7A70 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r6, r0, r1 - ldrh r0, [r6, 0xA] - lsrs r4, r0, 8 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xC - ldrsh r0, [r6, r2] - ldrb r2, [r6, 0x8] - cmp r0, r2 - bne _080B7A74 - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 8 - orrs r1, r0 - movs r5, 0 - strh r1, [r6, 0xA] - ldrh r1, [r6, 0xA] - movs r0, 0x52 - bl SetGpuReg - strh r5, [r6, 0xC] - cmp r4, 0 - bne _080B7A7A - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r7, 0 - bl DestroyAnimVisualTask - b _080B7A7A - .align 2, 0 -_080B7A70: .4byte gTasks -_080B7A74: - ldrh r0, [r6, 0xC] - adds r0, 0x1 - strh r0, [r6, 0xC] -_080B7A7A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B7A14 - - thumb_func_start sub_80B7A80 -sub_80B7A80: @ 80B7A80 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - ldr r0, _080B7AAC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B7AB4 - ldr r1, _080B7AB0 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - b _080B7ABC - .align 2, 0 -_080B7AAC: .4byte gUnknown_2037F1A -_080B7AB0: .4byte 0x00003f42 -_080B7AB4: - ldr r1, _080B7AC8 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg -_080B7ABC: - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7AC8: .4byte 0x00003f44 - thumb_func_end sub_80B7A80 - - thumb_func_start sub_80B7ACC -sub_80B7ACC: @ 80B7ACC - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080B7B38 @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - ldr r5, _080B7B3C @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - movs r0, 0x7E - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80754B8 - ldrh r0, [r4, 0x30] - negs r0, r0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - negs r0, r0 - strh r0, [r4, 0x36] - ldr r0, _080B7B40 @ =0x0000ffd8 - strh r0, [r4, 0x3A] - ldr r1, _080B7B44 @ =sub_80B7B48 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7B38: .4byte gUnknown_2037F1B -_080B7B3C: .4byte gUnknown_2037F1A -_080B7B40: .4byte 0x0000ffd8 -_080B7B44: .4byte sub_80B7B48 - thumb_func_end sub_80B7ACC - - thumb_func_start sub_80B7B48 -sub_80B7B48: @ 80B7B48 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r5, [r4, 0x30] - ldrh r0, [r4, 0x34] - adds r2, r5, r0 - strh r2, [r4, 0x34] - ldrh r3, [r4, 0x32] - ldrh r6, [r4, 0x36] - adds r1, r3, r6 - strh r1, [r4, 0x36] - lsls r0, r2, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - movs r6, 0x3C - ldrsh r0, [r4, r6] - cmp r0, 0 - bne _080B7B8A - adds r0, r2, r5 - strh r0, [r4, 0x34] - adds r1, r3 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] -_080B7B8A: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - ldrh r6, [r4, 0x26] - adds r0, r6 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - cmp r0, 0x7F - ble _080B7BBA - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - adds r0, 0x14 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] -_080B7BBA: - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080B7BCC - adds r0, r4, 0 - bl DestroyAnimSprite -_080B7BCC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B7B48 - - thumb_func_start sub_80B7BD4 -sub_80B7BD4: @ 80B7BD4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B7C08 @ =gUnknown_2037F02 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x32] - ldr r0, _080B7C0C @ =sub_80B7C10 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7C08: .4byte gUnknown_2037F02 -_080B7C0C: .4byte sub_80B7C10 - thumb_func_end sub_80B7BD4 - - thumb_func_start sub_80B7C10 -sub_80B7C10: @ 80B7C10 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _080B7C46 - ldr r0, _080B7C4C @ =sub_80B7C50 - str r0, [r2, 0x1C] -_080B7C46: - pop {r0} - bx r0 - .align 2, 0 -_080B7C4C: .4byte sub_80B7C50 - thumb_func_end sub_80B7C10 - - thumb_func_start sub_80B7C50 -sub_80B7C50: @ 80B7C50 - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x36] - ldrh r0, [r3, 0x2E] - subs r1, r0 - strh r1, [r3, 0x36] - ldrh r0, [r3, 0x38] - ldrh r2, [r3, 0x30] - subs r0, r2 - strh r0, [r3, 0x38] - lsls r1, 16 - asrs r1, 24 - strh r1, [r3, 0x24] - lsls r0, 16 - asrs r0, 24 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x34] - subs r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080B7C82 - adds r0, r3, 0 - bl move_anim_8074EE0 -_080B7C82: - pop {r0} - bx r0 - thumb_func_end sub_80B7C50 - - thumb_func_start sub_80B7C88 -sub_80B7C88: @ 80B7C88 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080B7C9C @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080B7CA4 - ldr r0, _080B7CA0 @ =gUnknown_2037F1A - b _080B7CA6 - .align 2, 0 -_080B7C9C: .4byte gUnknown_2037F02 -_080B7CA0: .4byte gUnknown_2037F1A -_080B7CA4: - ldr r0, _080B7CD4 @ =gUnknown_2037F1B -_080B7CA6: - ldrb r5, [r0] - movs r6, 0x14 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x4 - ldr r7, _080B7CD8 @ =0x000003ff - adds r0, r7, 0 - ands r1, r0 - ldr r0, _080B7CDC @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - movs r1, 0x2 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080B7D04 - cmp r0, 0x1 - bgt _080B7CE0 - cmp r0, 0 - beq _080B7CEA - b _080B7D58 - .align 2, 0 -_080B7CD4: .4byte gUnknown_2037F1B -_080B7CD8: .4byte 0x000003ff -_080B7CDC: .4byte 0xfffffc00 -_080B7CE0: - cmp r0, 0x2 - beq _080B7D1E - cmp r0, 0x3 - beq _080B7D36 - b _080B7D58 -_080B7CEA: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r4, 0x22] - b _080B7D58 -_080B7D04: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x10 - strh r0, [r4, 0x22] - b _080B7D58 -_080B7D1E: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - b _080B7D4C -_080B7D36: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x10 -_080B7D4C: - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r6, 0xEC -_080B7D58: - movs r0, 0x20 - strh r0, [r4, 0x2E] - lsls r0, r6, 24 - asrs r0, 24 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r0, 0xC - strh r0, [r4, 0x36] - ldr r0, _080B7D80 @ =0x0000fff4 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_8075068 - ldr r0, _080B7D84 @ =sub_80B7D88 - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7D80: .4byte 0x0000fff4 -_080B7D84: .4byte sub_80B7D88 - thumb_func_end sub_80B7C88 - - thumb_func_start sub_80B7D88 -sub_80B7D88: @ 80B7D88 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B7D9C - adds r0, r4, 0 - bl move_anim_8074EE0 -_080B7D9C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7D88 - - thumb_func_start sub_80B7DA4 -sub_80B7DA4: @ 80B7DA4 - push {r4-r7,lr} - sub sp, 0x1C - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B7E08 @ =gTasks - adds r5, r1, r0 - ldr r4, _080B7E0C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - strh r1, [r5, 0x12] - strh r0, [r5, 0x10] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r5, 0x24] - adds r0, 0x20 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B7E14 - ldr r0, _080B7E10 @ =0x0000fff4 - b _080B7E16 - .align 2, 0 -_080B7E08: .4byte gTasks -_080B7E0C: .4byte gUnknown_2037F1A -_080B7E10: .4byte 0x0000fff4 -_080B7E14: - ldr r0, _080B7E60 @ =0x0000ffc0 -_080B7E16: - strh r0, [r5, 0x18] - ldr r0, _080B7E64 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080B7E78 - add r4, sp, 0xC - adds r0, r4, 0 - bl sub_80752A0 - ldr r0, _080B7E68 @ =gUnknown_202297A - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080B7E6C @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - ldrb r1, [r4, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - ldr r0, _080B7E70 @ =0x04000016 - str r0, [sp] - movs r7, 0x2 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B7EA8 - ldr r1, _080B7E74 @ =gUnknown_202297C - b _080B7EA2 - .align 2, 0 -_080B7E60: .4byte 0x0000ffc0 -_080B7E64: .4byte gUnknown_2037F1A -_080B7E68: .4byte gUnknown_202297A -_080B7E6C: .4byte 0x00003f42 -_080B7E70: .4byte 0x04000016 -_080B7E74: .4byte gUnknown_202297C -_080B7E78: - ldr r0, _080B7F30 @ =gUnknown_202297E - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080B7F34 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette - ldr r0, _080B7F38 @ =0x0400001a - str r0, [sp] - movs r7, 0x4 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B7EA8 - ldr r1, _080B7F3C @ =gUnknown_2022978 -_080B7EA2: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] -_080B7EA8: - ldr r0, _080B7F40 @ =0xa2600001 - str r0, [sp, 0x4] - mov r2, sp - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x8] - mov r0, sp - strb r1, [r0, 0x9] - strh r1, [r5, 0x1E] - movs r0, 0x10 - strh r0, [r5, 0x20] - strh r1, [r5, 0x8] - strh r1, [r5, 0xA] - strh r1, [r5, 0xC] - movs r0, 0x3 - bl sub_80B856C - movs r3, 0 - ldr r4, _080B7F44 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r4, r0 -_080B7ED4: - lsls r1, r3, 1 - adds r2, r1, r4 - ldrh r0, [r5, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r5, 0x1C] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080B7ED4 - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - movs r0, 0x3F - eors r7, r0 - movs r1, 0xFC - lsls r1, 6 - adds r0, r1, 0 - orrs r7, r0 - movs r0, 0x4A - adds r1, r7, 0 - bl SetGpuReg - ldr r1, _080B7F48 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r2, _080B7F4C @ =gUnknown_2022984 - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080B7F50 @ =gUnknown_2022986 - movs r0, 0xA0 - strh r0, [r1] - ldr r0, _080B7F54 @ =sub_80B7F58 - str r0, [r5] - add sp, 0x1C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7F30: .4byte gUnknown_202297E -_080B7F34: .4byte 0x00003f44 -_080B7F38: .4byte 0x0400001a -_080B7F3C: .4byte gUnknown_2022978 -_080B7F40: .4byte 0xa2600001 -_080B7F44: .4byte gUnknown_2038700 -_080B7F48: .4byte 0x00003f3f -_080B7F4C: .4byte gUnknown_2022984 -_080B7F50: .4byte gUnknown_2022986 -_080B7F54: .4byte sub_80B7F58 - thumb_func_end sub_80B7DA4 - - thumb_func_start sub_80B7F58 -sub_80B7F58: @ 80B7F58 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B7F7C @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080B7F72 - b _080B806A -_080B7F72: - lsls r0, 2 - ldr r1, _080B7F80 @ =_080B7F84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B7F7C: .4byte gTasks -_080B7F80: .4byte _080B7F84 - .align 2, 0 -_080B7F84: - .4byte _080B7F98 - .4byte _080B7FFA - .4byte _080B8014 - .4byte _080B8050 - .4byte _080B8064 -_080B7F98: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B806A - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B7FC8 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0xC - beq _080B7FD6 - adds r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080B7FD6 -_080B7FC8: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - beq _080B7FD6 - subs r0, r1, 0x1 - strh r0, [r4, 0x20] -_080B7FD6: - ldrh r1, [r4, 0x20] - lsls r1, 8 - ldrh r0, [r4, 0x1E] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0xC - bne _080B806A - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _080B806A - b _080B8056 -_080B7FFA: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80B843C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r1, r0 - bge _080B806A - b _080B8056 -_080B8014: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80B843C - ldrh r1, [r4, 0x24] - adds r1, 0x4 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r2, r0, 0x4 - strh r2, [r4, 0x26] - lsls r1, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _080B8036 - strh r2, [r4, 0x24] -_080B8036: - ldr r3, _080B804C @ =gUnknown_2022984 - ldrh r2, [r4, 0x24] - lsls r0, r2, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r3] - lsls r2, 16 - lsls r1, 16 - cmp r2, r1 - bne _080B806A - b _080B8056 - .align 2, 0 -_080B804C: .4byte gUnknown_2022984 -_080B8050: - ldr r1, _080B8060 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080B8056: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B806A - .align 2, 0 -_080B8060: .4byte gUnknown_2039600 -_080B8064: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B806A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7F58 - - thumb_func_start sub_80B8070 -sub_80B8070: @ 80B8070 - push {r4-r7,lr} - sub sp, 0x1C - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080B8098 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080B808C - b _080B829E -_080B808C: - lsls r0, 2 - ldr r1, _080B809C @ =_080B80A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B8098: .4byte gTasks -_080B809C: .4byte _080B80A0 - .align 2, 0 -_080B80A0: - .4byte _080B80B4 - .4byte _080B8138 - .4byte _080B817C - .4byte _080B81E8 - .4byte _080B8250 -_080B80B4: - bl sub_8073788 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B80F0 - ldr r0, _080B80E4 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B80E8 @ =gUnknown_2022986 - strh r1, [r0] - ldr r4, _080B80EC @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _080B829E - .align 2, 0 -_080B80E4: .4byte gUnknown_2022984 -_080B80E8: .4byte gUnknown_2022986 -_080B80EC: .4byte 0x00003f3f -_080B80F0: - ldr r0, _080B8110 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080B811C - ldr r1, _080B8114 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - ldr r1, _080B8118 @ =gUnknown_202297C - b _080B8126 - .align 2, 0 -_080B8110: .4byte gUnknown_2037F1B -_080B8114: .4byte 0x00003f42 -_080B8118: .4byte gUnknown_202297C -_080B811C: - ldr r1, _080B8130 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg - ldr r1, _080B8134 @ =gUnknown_2022978 -_080B8126: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] - b _080B823C - .align 2, 0 -_080B8130: .4byte 0x00003f44 -_080B8134: .4byte gUnknown_2022978 -_080B8138: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080B8160 - mov r0, sp - bl sub_80752A0 - ldr r0, _080B815C @ =gUnknown_202297A - ldrh r0, [r0] - strh r0, [r5, 0x1C] - mov r0, sp - ldrb r1, [r0, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - b _080B8170 - .align 2, 0 -_080B815C: .4byte gUnknown_202297A -_080B8160: - ldr r0, _080B8178 @ =gUnknown_202297E - ldrh r0, [r0] - strh r0, [r5, 0x1C] - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette -_080B8170: - movs r0, 0x3 - bl sub_80B856C - b _080B823C - .align 2, 0 -_080B8178: .4byte gUnknown_202297E -_080B817C: - ldr r4, _080B81C8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - subs r1, r0, 0x4 - strh r1, [r5, 0x24] - adds r0, 0x4 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B81D0 - ldr r0, _080B81CC @ =0x0000fff4 - b _080B81D2 - .align 2, 0 -_080B81C8: .4byte gUnknown_2037F1B -_080B81CC: .4byte 0x0000fff4 -_080B81D0: - ldr r0, _080B81E4 @ =0x0000ffc0 -_080B81D2: - strh r0, [r5, 0x18] - ldrh r0, [r5, 0x18] - strh r0, [r5, 0x10] - strh r0, [r5, 0x12] - movs r0, 0xC - strh r0, [r5, 0x1E] - movs r0, 0x8 - strh r0, [r5, 0x20] - b _080B823C - .align 2, 0 -_080B81E4: .4byte 0x0000ffc0 -_080B81E8: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080B81F8 - ldr r0, _080B81F4 @ =0x04000016 - b _080B81FA - .align 2, 0 -_080B81F4: .4byte 0x04000016 -_080B81F8: - ldr r0, _080B8244 @ =0x0400001a -_080B81FA: - str r0, [sp, 0x10] - movs r3, 0 - add r4, sp, 0x10 - ldr r6, _080B8248 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r7, r6, r0 -_080B8208: - lsls r1, r3, 1 - adds r2, r1, r6 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r2] - adds r1, r7 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080B8208 - ldr r1, _080B824C @ =0xa2600001 - str r1, [r4, 0x4] - movs r2, 0 - movs r0, 0x1 - strb r0, [r4, 0x8] - strb r2, [r4, 0x9] - ldr r0, [sp, 0x10] - ldr r2, [r4, 0x8] - bl sub_8087EE4 -_080B823C: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080B829E - .align 2, 0 -_080B8244: .4byte 0x0400001a -_080B8248: .4byte gUnknown_2038700 -_080B824C: .4byte 0xa2600001 -_080B8250: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080B8268 - ldr r1, _080B8264 @ =0x00003f3d - movs r0, 0x4A - bl SetGpuReg - b _080B8270 - .align 2, 0 -_080B8264: .4byte 0x00003f3d -_080B8268: - ldr r1, _080B82A8 @ =0x00003f3b - movs r0, 0x4A - bl SetGpuReg -_080B8270: - ldr r1, _080B82AC @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r2, _080B82B0 @ =gUnknown_2022984 - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080B82B4 @ =gUnknown_2022986 - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - strh r0, [r5, 0xC] - ldr r1, _080B82B8 @ =0x0000080c - movs r0, 0x52 - bl SetGpuReg - ldr r0, _080B82BC @ =sub_80B82C0 - str r0, [r5] -_080B829E: - add sp, 0x1C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B82A8: .4byte 0x00003f3b -_080B82AC: .4byte 0x00003f3f -_080B82B0: .4byte gUnknown_2022984 -_080B82B4: .4byte gUnknown_2022986 -_080B82B8: .4byte 0x0000080c -_080B82BC: .4byte sub_80B82C0 - thumb_func_end sub_80B8070 - - thumb_func_start sub_80B82C0 -sub_80B82C0: @ 80B82C0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B82E4 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080B82DA - b _080B842A -_080B82DA: - lsls r0, 2 - ldr r1, _080B82E8 @ =_080B82EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B82E4: .4byte gTasks -_080B82E8: .4byte _080B82EC - .align 2, 0 -_080B82EC: - .4byte _080B8300 - .4byte _080B832C - .4byte _080B8394 - .4byte _080B83F6 - .4byte _080B8408 -_080B8300: - ldrh r0, [r4, 0x12] - adds r0, 0x8 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x16] - movs r3, 0x16 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080B8316 - strh r2, [r4, 0x12] -_080B8316: - adds r0, r4, 0 - bl sub_80B843C - movs r0, 0x12 - ldrsh r1, [r4, r0] - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080B832A - b _080B842A -_080B832A: - b _080B83FC -_080B832C: - movs r3, 0x26 - ldrsh r0, [r4, r3] - movs r2, 0x24 - ldrsh r1, [r4, r2] - subs r0, r1 - cmp r0, 0x3F - bgt _080B8348 - ldrh r0, [r4, 0x24] - subs r0, 0x4 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - adds r0, 0x4 - strh r0, [r4, 0x26] - b _080B834C -_080B8348: - movs r0, 0x1 - strh r0, [r4, 0xA] -_080B834C: - ldr r2, _080B8390 @ =gUnknown_2022984 - ldrh r0, [r4, 0x24] - lsls r0, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, 0x10] - adds r0, 0x8 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x14] - movs r3, 0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080B836E - strh r2, [r4, 0x10] -_080B836E: - adds r0, r4, 0 - bl sub_80B843C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080B842A - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080B842A - movs r0, 0 - strh r0, [r4, 0xA] - b _080B83FC - .align 2, 0 -_080B8390: .4byte gUnknown_2022984 -_080B8394: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B842A - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B83C4 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B83D2 - subs r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080B83D2 -_080B83C4: - ldrh r1, [r4, 0x20] - movs r3, 0x20 - ldrsh r0, [r4, r3] - cmp r0, 0xF - bgt _080B83D2 - adds r0, r1, 0x1 - strh r0, [r4, 0x20] -_080B83D2: - ldrh r1, [r4, 0x20] - lsls r1, 8 - ldrh r0, [r4, 0x1E] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B842A - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080B842A - b _080B83FC -_080B83F6: - ldr r1, _080B8404 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080B83FC: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B842A - .align 2, 0 -_080B8404: .4byte gUnknown_2039600 -_080B8408: - ldr r0, _080B8430 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B8434 @ =gUnknown_2022986 - strh r1, [r0] - ldr r4, _080B8438 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B842A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8430: .4byte gUnknown_2022984 -_080B8434: .4byte gUnknown_2022986 -_080B8438: .4byte 0x00003f3f - thumb_func_end sub_80B82C0 - - thumb_func_start sub_80B843C -sub_80B843C: @ 80B843C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrh r0, [r6, 0x12] - ldrh r4, [r6, 0x10] - subs r0, r4 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080B8530 - movs r2, 0x22 - ldrsh r0, [r6, r2] - bl __divsi3 - mov r8, r0 - movs r3, 0x14 - ldrsh r0, [r6, r3] - lsls r5, r0, 8 - lsls r0, r4, 16 - movs r4, 0 - cmp r0, 0 - ble _080B849C - ldr r0, _080B8528 @ =gUnknown_2038700 - mov r12, r0 - ldr r7, _080B852C @ =gUnknown_2039600 -_080B8470: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r3, r0 - add r3, r12 - adds r1, r2, 0 - subs r1, 0x9F - ldrh r0, [r6, 0x1C] - subs r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r6, r1] - cmp r2, r0 - blt _080B8470 -_080B849C: - ldrh r4, [r6, 0x10] - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - bgt _080B84E6 - ldr r0, _080B8528 @ =gUnknown_2038700 - mov r12, r0 - ldr r7, _080B852C @ =gUnknown_2039600 -_080B84B0: - asrs r4, r3, 16 - cmp r4, 0 - blt _080B84D2 - asrs r1, r5, 8 - subs r1, r4 - lsls r3, r4, 1 - ldrb r2, [r7, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - add r3, r12 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r6, 0x1C] - adds r1, r2 - strh r1, [r3] -_080B84D2: - add r5, r8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080B84B0 -_080B84E6: - movs r3, 0x1C - ldrsh r0, [r6, r3] - adds r0, 0x9F - lsls r2, r4, 16 - asrs r1, r2, 16 - subs r5, r0, r1 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - bge _080B855E - ldr r7, _080B8528 @ =gUnknown_2038700 - ldr r4, _080B852C @ =gUnknown_2039600 -_080B84FE: - asrs r3, r2, 16 - cmp r3, 0 - blt _080B8516 - lsls r2, r3, 1 - ldrb r1, [r4, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - strh r5, [r2] - subs r5, 0x1 -_080B8516: - adds r0, r3, 0x1 - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - blt _080B84FE - b _080B855E - .align 2, 0 -_080B8528: .4byte gUnknown_2038700 -_080B852C: .4byte gUnknown_2039600 -_080B8530: - movs r1, 0x1C - ldrsh r0, [r6, r1] - adds r5, r0, 0 - adds r5, 0x9F - movs r4, 0 - ldr r3, _080B8568 @ =gUnknown_2038700 - movs r2, 0xF0 - lsls r2, 3 - adds r6, r3, r2 -_080B8542: - lsls r0, r4, 16 - asrs r0, 16 - lsls r2, r0, 1 - adds r1, r2, r3 - strh r5, [r1] - adds r2, r6 - strh r5, [r2] - subs r5, 0x1 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080B8542 -_080B855E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8568: .4byte gUnknown_2038700 - thumb_func_end sub_80B843C - - thumb_func_start sub_80B856C -sub_80B856C: @ 80B856C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - ldr r7, _080B85B4 @ =gSprites - movs r1, 0x3 - ands r0, r1 - lsls r5, r0, 2 - movs r0, 0xD - negs r0, r0 - adds r6, r0, 0 -_080B8582: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080B85A2 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1, 0x5] - ands r0, r6 - orrs r0, r5 - strb r0, [r1, 0x5] -_080B85A2: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080B8582 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B85B4: .4byte gSprites - thumb_func_end sub_80B856C - - thumb_func_start sub_80B85B8 -sub_80B85B8: @ 80B85B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r6, _080B8658 @ =gUnknown_2037F1A - ldrb r0, [r6] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - ldrb r0, [r6] - adds r1, r4, 0 - bl sub_8072E48 - ldr r0, _080B865C @ =gSprites - mov r9, r0 - ldr r0, _080B8660 @ =gUnknown_2023D44 - mov r8, r0 - ldrb r0, [r6] - add r0, r8 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - adds r1, 0x3E - ldrb r2, [r1] - movs r7, 0x5 - negs r7, r7 - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B8642 - ldrb r0, [r6] - eors r0, r5 - movs r1, 0x1 - eors r4, r1 - adds r1, r4, 0 - bl sub_8072E48 - ldrb r0, [r6] - eors r0, r5 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r7, 0 - ands r1, r2 - strb r1, [r0] -_080B8642: - mov r0, r10 - bl DestroyAnimVisualTask - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8658: .4byte gUnknown_2037F1A -_080B865C: .4byte gSprites -_080B8660: .4byte gUnknown_2023D44 - thumb_func_end sub_80B85B8 - - thumb_func_start sub_80B8664 -sub_80B8664: @ 80B8664 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _080B86AC @ =gUnknown_2037F1A - ldrb r0, [r4] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r5, 0 - bl sub_8073128 - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B86A0 - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8073128 -_080B86A0: - adds r0, r6, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B86AC: .4byte gUnknown_2037F1A - thumb_func_end sub_80B8664 - - thumb_func_start sub_80B86B0 -sub_80B86B0: @ 80B86B0 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080B86E0 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrb r1, [r1, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080B86E4 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldr r1, _080B86E8 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B86E0: .4byte gUnknown_2037F02 -_080B86E4: .4byte sub_8074F6C -_080B86E8: .4byte DestroyAnimSprite - thumb_func_end sub_80B86B0 - - thumb_func_start sub_80B86EC -sub_80B86EC: @ 80B86EC - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - ldr r0, _080B87EC @ =gUnknown_2022984 - strh r6, [r0] - ldr r0, _080B87F0 @ =gUnknown_2022986 - strh r6, [r0] - ldr r1, _080B87F4 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080B87F8 @ =0x00003f3d - movs r0, 0x4A - bl SetGpuReg - movs r1, 0x80 - lsls r1, 8 - movs r0, 0 - bl SetGpuRegBits - ldr r1, _080B87FC @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - ldr r1, _080B8800 @ =0x00000c08 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B8750 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080B8750: - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080B87CA - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B87CA - ldr r4, _080B8804 @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080B8780 - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - bne _080B87CA -_080B8780: - ldrb r0, [r4] - movs r5, 0x2 - eors r0, r5 - bl sub_8072DF0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B87CA - ldr r3, _080B8808 @ =gSprites - ldr r1, _080B880C @ =gUnknown_2023D44 - ldrb r0, [r4] - eors r0, r5 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r6, 0x1 -_080B87CA: - ldr r4, _080B8804 @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B8818 - ldr r1, _080B8810 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080B8814 @ =gEnemyParty - b _080B8828 - .align 2, 0 -_080B87EC: .4byte gUnknown_2022984 -_080B87F0: .4byte gUnknown_2022986 -_080B87F4: .4byte 0x00003f3f -_080B87F8: .4byte 0x00003f3d -_080B87FC: .4byte 0x00003f42 -_080B8800: .4byte 0x00000c08 -_080B8804: .4byte gUnknown_2037F1A -_080B8808: .4byte gSprites -_080B880C: .4byte gUnknown_2023D44 -_080B8810: .4byte gBattlerPartyIndexes -_080B8814: .4byte gEnemyParty -_080B8818: - ldr r1, _080B88B8 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080B88BC @ =gPlayerParty -_080B8828: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B88C0 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8076E34 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080B88C4 @ =gFile_graphics_battle_anims_masks_metal_shine_tilemap - bl sub_807543C - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080B88C8 @ =gFile_graphics_battle_anims_masks_metal_shine_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080B88CC @ =gFile_graphics_battle_anims_masks_metal_shine_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r2, _080B88D0 @ =gUnknown_2022978 - ldr r0, _080B88D4 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - negs r0, r0 - adds r0, 0x60 - strh r0, [r2] - ldr r2, _080B88D8 @ =gUnknown_202297A - ldrh r0, [r1, 0x22] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - ldr r2, _080B88DC @ =gUnknown_2037F02 - movs r3, 0x2 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080B88E0 - adds r0, r1, 0 - movs r1, 0 - bl sub_8075B48 - b _080B88EC - .align 2, 0 -_080B88B8: .4byte gBattlerPartyIndexes -_080B88BC: .4byte gPlayerParty -_080B88C0: .4byte gUnknown_2037F1A -_080B88C4: .4byte gFile_graphics_battle_anims_masks_metal_shine_tilemap -_080B88C8: .4byte gFile_graphics_battle_anims_masks_metal_shine_sheet -_080B88CC: .4byte gFile_graphics_battle_anims_masks_metal_shine_palette -_080B88D0: .4byte gUnknown_2022978 -_080B88D4: .4byte gSprites -_080B88D8: .4byte gUnknown_202297A -_080B88DC: .4byte gUnknown_2037F02 -_080B88E0: - lsls r0, r1, 4 - ldrh r3, [r2, 0x4] - movs r1, 0x10 - movs r2, 0xB - bl BlendPalette -_080B88EC: - ldr r1, _080B8914 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r2, _080B8918 @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0xE] - strh r6, [r0, 0x14] - ldr r1, _080B891C @ =sub_80B8920 - str r1, [r0] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8914: .4byte gTasks -_080B8918: .4byte gUnknown_2037F02 -_080B891C: .4byte sub_80B8920 - thumb_func_end sub_80B86EC - - thumb_func_start sub_80B8920 -sub_80B8920: @ 80B8920 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080B89E8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x4 - movs r5, 0 - strh r0, [r4, 0x1C] - ldr r2, _080B89EC @ =gUnknown_2022978 - ldrh r3, [r2] - subs r1, r3, 0x4 - strh r1, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x80 - beq _080B894E - b _080B8A5E -_080B894E: - strh r5, [r4, 0x1C] - adds r0, r3, 0 - adds r0, 0x7C - strh r0, [r2] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080B89FC - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080B89F0 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B8990 - adds r0, r1, 0 - movs r1, 0x1 - bl sub_8075B48 -_080B8990: - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - bl sub_8075358 - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080B8A5E - ldr r2, _080B89F4 @ =gUnknown_2023D44 - ldr r0, _080B89F8 @ =gUnknown_2037F1A - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - b _080B8A5E - .align 2, 0 -_080B89E8: .4byte gTasks -_080B89EC: .4byte gUnknown_2022978 -_080B89F0: .4byte gSprites -_080B89F4: .4byte gUnknown_2023D44 -_080B89F8: .4byte gUnknown_2037F1A -_080B89FC: - cmp r0, 0x3 - bne _080B8A5E - ldr r0, _080B8A68 @ =gUnknown_2022984 - strh r5, [r0] - ldr r0, _080B8A6C @ =gUnknown_2022986 - strh r5, [r0] - ldr r4, _080B8A70 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B8A2E - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080B8A2E: - movs r0, 0 - bl GetGpuReg - adds r1, r0, 0 - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - eors r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080B8A5E: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B8A68: .4byte gUnknown_2022984 -_080B8A6C: .4byte gUnknown_2022986 -_080B8A70: .4byte 0x00003f3f - thumb_func_end sub_80B8920 - - thumb_func_start sub_80B8A74 -sub_80B8A74: @ 80B8A74 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080B8A94 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0x7 - bhi _080B8AD8 - lsls r0, r1, 2 - ldr r1, _080B8A98 @ =_080B8A9C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B8A94: .4byte gUnknown_2037F02 -_080B8A98: .4byte _080B8A9C - .align 2, 0 -_080B8A9C: - .4byte _080B8ABC - .4byte _080B8ABC - .4byte _080B8ABC - .4byte _080B8ABC - .4byte _080B8AC8 - .4byte _080B8ACC - .4byte _080B8AD0 - .4byte _080B8AD4 -_080B8ABC: - ldrb r0, [r2] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - b _080B8ADA -_080B8AC8: - movs r4, 0 - b _080B8AE0 -_080B8ACC: - movs r4, 0x2 - b _080B8AE0 -_080B8AD0: - movs r4, 0x1 - b _080B8AE0 -_080B8AD4: - movs r4, 0x3 - b _080B8AE0 -_080B8AD8: - movs r2, 0xFF -_080B8ADA: - movs r0, 0 - cmp r0, 0 - beq _080B8B06 -_080B8AE0: - adds r0, r4, 0 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B8B04 - ldr r0, _080B8B00 @ =gUnknown_2023D44 - adds r0, r4, r0 - ldrb r2, [r0] - b _080B8B06 - .align 2, 0 -_080B8B00: .4byte gUnknown_2023D44 -_080B8B04: - movs r2, 0xFF -_080B8B06: - cmp r2, 0xFF - beq _080B8B22 - ldr r1, _080B8B30 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - ldr r1, _080B8B34 @ =gUnknown_2037F02 - ldrb r1, [r1, 0x2] - bl sub_8075B48 -_080B8B22: - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8B30: .4byte gSprites -_080B8B34: .4byte gUnknown_2037F02 - thumb_func_end sub_80B8A74 - - thumb_func_start sub_80B8B38 -sub_80B8B38: @ 80B8B38 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080B8B64 @ =gUnknown_2037F16 - ldrb r0, [r2] - cmp r0, 0x1 - bhi _080B8B4C - ldr r1, _080B8B68 @ =gUnknown_2037F02 - movs r0, 0 - strh r0, [r1, 0xE] -_080B8B4C: - ldrb r0, [r2] - cmp r0, 0x2 - bne _080B8B58 - ldr r1, _080B8B68 @ =gUnknown_2037F02 - movs r0, 0x1 - strh r0, [r1, 0xE] -_080B8B58: - adds r0, r3, 0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080B8B64: .4byte gUnknown_2037F16 -_080B8B68: .4byte gUnknown_2037F02 - thumb_func_end sub_80B8B38 - - thumb_func_start sub_80B8B6C -sub_80B8B6C: @ 80B8B6C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B8BC4 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r5, _080B8BC8 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080B8BCC @ =0x0000ffd8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_8075068 - ldr r0, _080B8BD0 @ =sub_80B8BD4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8BC4: .4byte gUnknown_2037F1A -_080B8BC8: .4byte gUnknown_2037F1B -_080B8BCC: .4byte 0x0000ffd8 -_080B8BD0: .4byte sub_80B8BD4 - thumb_func_end sub_80B8B6C - - thumb_func_start sub_80B8BD4 -sub_80B8BD4: @ 80B8BD4 - push {r4,r5,lr} - adds r5, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B8C28 - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - movs r0, 0x14 - strh r0, [r5, 0x2E] - ldr r4, _080B8C30 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - movs r0, 0x28 - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_8075068 - ldr r0, _080B8C34 @ =sub_80B8C38 - str r0, [r5, 0x1C] -_080B8C28: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8C30: .4byte gUnknown_2037F1A -_080B8C34: .4byte sub_80B8C38 - thumb_func_end sub_80B8BD4 - - thumb_func_start sub_80B8C38 -sub_80B8C38: @ 80B8C38 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B8C4C - adds r0, r4, 0 - bl DestroyAnimSprite -_080B8C4C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B8C38 - - thumb_func_start sub_80B8C54 -sub_80B8C54: @ 80B8C54 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r0, _080B8CB4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B8C74 - ldr r1, _080B8CB8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080B8C74: - ldr r4, _080B8CB8 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080B8CBC @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - ldr r0, _080B8CC0 @ =sub_8075590 - str r0, [r6, 0x1C] - ldr r1, _080B8CC4 @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B8CB4: .4byte gUnknown_2037F1A -_080B8CB8: .4byte gUnknown_2037F02 -_080B8CBC: .4byte gUnknown_2037F1B -_080B8CC0: .4byte sub_8075590 -_080B8CC4: .4byte DestroyAnimSprite - thumb_func_end sub_80B8C54 - - thumb_func_start sub_80B8CC8 -sub_80B8CC8: @ 80B8CC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r4, _080B8D48 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074844 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074844 - lsls r0, 24 - lsrs r7, r0, 24 - bl Random - movs r4, 0x1F - adds r5, r4, 0 - ands r5, r0 - bl Random - ands r4, r0 - adds r1, r5, 0 - cmp r1, 0x10 - ble _080B8D10 - movs r0, 0x10 - subs r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 -_080B8D10: - lsls r0, r4, 16 - asrs r1, r0, 16 - cmp r1, 0x10 - ble _080B8D20 - movs r0, 0x10 - subs r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_080B8D20: - ldr r0, _080B8D4C @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r6, 0x2E] - mov r1, r8 - adds r0, r1, r5 - strh r0, [r6, 0x32] - adds r0, r7, r4 - strh r0, [r6, 0x36] - ldr r0, _080B8D50 @ =sub_8075590 - str r0, [r6, 0x1C] - ldr r1, _080B8D54 @ =move_anim_8074EE0 - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8D48: .4byte gUnknown_2037F1B -_080B8D4C: .4byte gUnknown_2037F02 -_080B8D50: .4byte sub_8075590 -_080B8D54: .4byte move_anim_8074EE0 - thumb_func_end sub_80B8CC8 - - thumb_func_start sub_80B8D58 -sub_80B8D58: @ 80B8D58 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x1 - ldr r3, _080B8DB8 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080B8DBC @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r6, _080B8DC0 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080B8DCC - ldr r4, _080B8DC4 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x2] - adds r0, r2 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r6, 0x4] - adds r0, r3 - strh r0, [r5, 0x22] - movs r1, 0x2 - ldrsh r0, [r6, r1] - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - ble _080B8DB2 - movs r1, 0x1 -_080B8DB2: - strh r1, [r5, 0x2E] - ldr r0, _080B8DC8 @ =sub_80B8DE8 - b _080B8DDA - .align 2, 0 -_080B8DB8: .4byte 0x000003ff -_080B8DBC: .4byte 0xfffffc00 -_080B8DC0: .4byte gUnknown_2037F02 -_080B8DC4: .4byte gUnknown_2037F1A -_080B8DC8: .4byte sub_80B8DE8 -_080B8DCC: - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x20] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x22] - negs r0, r0 - strh r0, [r5, 0x26] - ldr r0, _080B8DE4 @ =sub_80B8E24 -_080B8DDA: - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B8DE4: .4byte sub_80B8E24 - thumb_func_end sub_80B8D58 - - thumb_func_start sub_80B8DE8 -sub_80B8DE8: @ 80B8DE8 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B8E06 - movs r0, 0 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] -_080B8E06: - ldrh r0, [r2, 0x22] - subs r0, 0x4 - strh r0, [r2, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x4 - negs r1, r1 - cmp r0, r1 - bge _080B8E1E - adds r0, r2, 0 - bl DestroyAnimSprite -_080B8E1E: - pop {r0} - bx r0 - thumb_func_end sub_80B8DE8 - - thumb_func_start sub_80B8E24 -sub_80B8E24: @ 80B8E24 - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _080B8E36 - cmp r1, 0x1 - beq _080B8E4C - b _080B8E8E -_080B8E36: - ldrh r0, [r3, 0x26] - adds r0, 0x4 - strh r0, [r3, 0x26] - lsls r0, 16 - cmp r0, 0 - blt _080B8E8E - strh r1, [r3, 0x26] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080B8E8E -_080B8E4C: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - cmp r0, 0 - ble _080B8E8E - movs r0, 0 - strh r0, [r3, 0x30] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r2, [r1] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080B8E8E - adds r0, r3, 0 - bl DestroyAnimSprite -_080B8E8E: - pop {r0} - bx r0 - thumb_func_end sub_80B8E24 - - thumb_func_start sub_80B8E94 -sub_80B8E94: @ 80B8E94 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B8EB4 @ =gTasks - adds r1, r0, r1 - ldr r0, _080B8EB8 @ =gUnknown_2037F02 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080B8EC0 - ldr r0, _080B8EBC @ =sub_80B8ED4 - b _080B8EC2 - .align 2, 0 -_080B8EB4: .4byte gTasks -_080B8EB8: .4byte gUnknown_2037F02 -_080B8EBC: .4byte sub_80B8ED4 -_080B8EC0: - ldr r0, _080B8ED0 @ =sub_80B908C -_080B8EC2: - str r0, [r1] - ldr r1, [r1] - adds r0, r2, 0 - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B8ED0: .4byte sub_80B908C - thumb_func_end sub_80B8E94 - - thumb_func_start sub_80B8ED4 -sub_80B8ED4: @ 80B8ED4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B8EF8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080B8EEE - b _080B9082 -_080B8EEE: - lsls r0, 2 - ldr r1, _080B8EFC @ =_080B8F00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B8EF8: .4byte gTasks -_080B8EFC: .4byte _080B8F00 - .align 2, 0 -_080B8F00: - .4byte _080B8F14 - .4byte _080B8F9C - .4byte _080B8FAC - .4byte _080B9050 - .4byte _080B9064 -_080B8F14: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r0, _080B8F3C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1E] - cmp r0, 0x1 - bne _080B8F48 - ldr r0, _080B8F40 @ =gUnknown_2022978 - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080B8F44 @ =gUnknown_202297A - b _080B8F50 - .align 2, 0 -_080B8F3C: .4byte gUnknown_2037F1A -_080B8F40: .4byte gUnknown_2022978 -_080B8F44: .4byte gUnknown_202297A -_080B8F48: - ldr r0, _080B8F8C @ =gUnknown_202297C - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080B8F90 @ =gUnknown_202297E -_080B8F50: - ldrh r0, [r0] - strh r0, [r4, 0x22] - ldr r0, _080B8F94 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0x24] - adds r0, 0x20 - strh r0, [r4, 0x26] - cmp r1, 0 - bge _080B8F72 - movs r0, 0 - strh r0, [r4, 0x24] -_080B8F72: - ldr r2, _080B8F98 @ =gSprites - movs r3, 0x1C - ldrsh r1, [r4, r3] - 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] - b _080B9056 - .align 2, 0 -_080B8F8C: .4byte gUnknown_202297C -_080B8F90: .4byte gUnknown_202297E -_080B8F94: .4byte gUnknown_2037F1A -_080B8F98: .4byte gSprites -_080B8F9C: - ldrb r0, [r4, 0x1E] - movs r2, 0x24 - ldrsh r1, [r4, r2] - movs r3, 0x26 - ldrsh r2, [r4, r3] - bl sub_80B92B8 - b _080B9056 -_080B8FAC: - ldrh r0, [r4, 0xC] - adds r0, 0x6 - movs r1, 0x7F - ands r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080B8FCE - movs r0, 0 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] -_080B8FCE: - ldr r1, _080B8FF0 @ =gUnknown_825E074 - movs r2, 0xC - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 20 - ldrh r3, [r4, 0xE] - adds r2, r0, r3 - strh r2, [r4, 0x12] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080B8FF8 - ldr r1, _080B8FF4 @ =gUnknown_202297A - b _080B8FFA - .align 2, 0 -_080B8FF0: .4byte gUnknown_825E074 -_080B8FF4: .4byte gUnknown_202297A -_080B8FF8: - ldr r1, _080B901C @ =gUnknown_202297E -_080B8FFA: - ldrh r0, [r4, 0x22] - subs r0, r2 - strh r0, [r1] - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0x3F - ble _080B9082 - ldrh r0, [r4, 0x24] - movs r1, 0x78 - subs r2, r1, r0 - strh r2, [r4, 0x12] - movs r3, 0x1E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080B9024 - ldr r1, _080B9020 @ =gUnknown_202297A - b _080B9026 - .align 2, 0 -_080B901C: .4byte gUnknown_202297E -_080B9020: .4byte gUnknown_202297A -_080B9024: - ldr r1, _080B9048 @ =gUnknown_202297E -_080B9026: - ldrh r0, [r4, 0x22] - subs r0, r2 - strh r0, [r1] - ldr r2, _080B904C @ =gSprites - movs r1, 0x1C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x20] - movs r3, 0x88 - lsls r3, 1 - adds r0, r3, 0 - subs r0, r2 - strh r0, [r1, 0x24] - b _080B9056 - .align 2, 0 -_080B9048: .4byte gUnknown_202297E -_080B904C: .4byte gSprites -_080B9050: - ldr r1, _080B9060 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080B9056: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B9082 - .align 2, 0 -_080B9060: .4byte gUnknown_2039600 -_080B9064: - adds r0, r2, 0 - bl DestroyAnimVisualTask - ldr r2, _080B9088 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - 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] -_080B9082: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9088: .4byte gSprites - thumb_func_end sub_80B8ED4 - - thumb_func_start sub_80B908C -sub_80B908C: @ 80B908C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B90CC @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r3] - movs r4, 0 - strh r4, [r1, 0x24] - strh r4, [r1, 0x26] - ldr r0, _080B90D0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B90D8 - ldr r0, _080B90D4 @ =gUnknown_202297A - b _080B90DA - .align 2, 0 -_080B90CC: .4byte gSprites -_080B90D0: .4byte gUnknown_2037F1A -_080B90D4: .4byte gUnknown_202297A -_080B90D8: - ldr r0, _080B90E8 @ =gUnknown_202297E -_080B90DA: - strh r4, [r0] - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B90E8: .4byte gUnknown_202297E - thumb_func_end sub_80B908C - - thumb_func_start sub_80B90EC -sub_80B90EC: @ 80B90EC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B910C @ =gTasks - adds r1, r0, r1 - ldr r0, _080B9110 @ =gUnknown_2037F02 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080B9118 - ldr r0, _080B9114 @ =sub_80B912C - b _080B911A - .align 2, 0 -_080B910C: .4byte gTasks -_080B9110: .4byte gUnknown_2037F02 -_080B9114: .4byte sub_80B912C -_080B9118: - ldr r0, _080B9128 @ =sub_80B91B0 -_080B911A: - str r0, [r1] - ldr r1, [r1] - adds r0, r2, 0 - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B9128: .4byte sub_80B91B0 - thumb_func_end sub_80B90EC - - thumb_func_start sub_80B912C -sub_80B912C: @ 80B912C - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B914C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080B9150 - cmp r5, 0x1 - beq _080B91A4 - b _080B91AA - .align 2, 0 -_080B914C: .4byte gTasks -_080B9150: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r3, _080B91A0 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r5, [r0, 0x24] - movs r1, 0x1C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x22] - movs r0, 0xA0 - subs r0, r2 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B91AA - .align 2, 0 -_080B91A0: .4byte gSprites -_080B91A4: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B91AA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B912C - - thumb_func_start sub_80B91B0 -sub_80B91B0: @ 80B91B0 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B91D4 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _080B92B2 - lsls r0, 2 - ldr r1, _080B91D8 @ =_080B91DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B91D4: .4byte gTasks -_080B91D8: .4byte _080B91DC - .align 2, 0 -_080B91DC: - .4byte _080B91F0 - .4byte _080B9244 - .4byte _080B9252 - .4byte _080B926C - .4byte _080B92AC -_080B91F0: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r0, _080B9214 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1E] - cmp r0, 0x1 - bne _080B921C - ldr r0, _080B9218 @ =gUnknown_2022978 - b _080B921E - .align 2, 0 -_080B9214: .4byte gUnknown_2037F1A -_080B9218: .4byte gUnknown_2022978 -_080B921C: - ldr r0, _080B923C @ =gUnknown_202297C -_080B921E: - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080B9240 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0x24] - adds r0, 0x20 - strh r0, [r4, 0x26] - b _080B929A - .align 2, 0 -_080B923C: .4byte gUnknown_202297C -_080B9240: .4byte gUnknown_2037F1A -_080B9244: - ldrb r0, [r4, 0x1E] - movs r1, 0x26 - ldrsh r2, [r4, r1] - movs r1, 0 - bl sub_80B92B8 - b _080B929A -_080B9252: - ldr r2, _080B9268 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x60 - strh r1, [r0, 0x26] - b _080B929A - .align 2, 0 -_080B9268: .4byte gSprites -_080B926C: - ldr r2, _080B92A4 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x8 - strh r1, [r0, 0x26] - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x26 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B92B2 - ldr r1, _080B92A8 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080B929A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B92B2 - .align 2, 0 -_080B92A4: .4byte gSprites -_080B92A8: .4byte gUnknown_2039600 -_080B92AC: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B92B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B91B0 - - thumb_func_start sub_80B92B8 -sub_80B92B8: @ 80B92B8 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - cmp r0, 0x1 - bne _080B92DC - ldr r0, _080B92D4 @ =gUnknown_2022978 - ldrh r3, [r0] - ldr r0, _080B92D8 @ =0x04000014 - b _080B92E2 - .align 2, 0 -_080B92D4: .4byte gUnknown_2022978 -_080B92D8: .4byte 0x04000014 -_080B92DC: - ldr r0, _080B9368 @ =gUnknown_202297C - ldrh r3, [r0] - ldr r0, _080B936C @ =0x04000018 -_080B92E2: - str r0, [sp] - lsls r0, r1, 16 - cmp r0, 0 - bge _080B92EC - movs r1, 0 -_080B92EC: - lsls r2, r1, 16 - lsls r0, r4, 16 - asrs r4, r0, 16 - cmp r2, r0 - bge _080B9318 - ldr r5, _080B9370 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080B92FE: - asrs r2, 16 - lsls r1, r2, 1 - adds r0, r1, r5 - strh r3, [r0] - adds r1, r6 - strh r3, [r1] - adds r2, 0x1 - lsls r2, 16 - lsrs r1, r2, 16 - lsls r2, r1, 16 - asrs r0, r2, 16 - cmp r0, r4 - blt _080B92FE -_080B9318: - lsls r1, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080B9346 - ldr r4, _080B9370 @ =gUnknown_2038700 - lsls r0, r3, 16 - asrs r0, 16 - adds r3, r0, 0 - adds r3, 0xF0 - movs r0, 0xF0 - lsls r0, 3 - adds r5, r4, r0 -_080B9330: - asrs r2, r1, 16 - lsls r1, r2, 1 - adds r0, r1, r4 - strh r3, [r0] - adds r1, r5 - strh r3, [r1] - adds r2, 0x1 - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080B9330 -_080B9346: - ldr r0, _080B9374 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9368: .4byte gUnknown_202297C -_080B936C: .4byte 0x04000018 -_080B9370: .4byte gUnknown_2038700 -_080B9374: .4byte 0xa2600001 - thumb_func_end sub_80B92B8 - - thumb_func_start sub_80B9378 -sub_80B9378: @ 80B9378 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080B938C @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r7, r0, 0 - cmp r1, 0 - bne _080B9394 - ldr r0, _080B9390 @ =gUnknown_2037F1A - b _080B9396 - .align 2, 0 -_080B938C: .4byte gUnknown_2037F02 -_080B9390: .4byte gUnknown_2037F1A -_080B9394: - ldr r0, _080B93F8 @ =gUnknown_2037F1B -_080B9396: - ldrb r4, [r0] - movs r6, 0x18 - adds r1, r7, 0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _080B93B2 - negs r0, r6 - lsls r0, 16 - lsrs r6, r0, 16 - movs r2, 0x4 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x4] -_080B93B2: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x20] - adds r0, r4, 0 - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1E - strh r0, [r5, 0x22] - ldrh r1, [r7, 0xA] - strh r1, [r5, 0x2E] - ldrh r1, [r7, 0x4] - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x32] - ldrh r1, [r7, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r7, 0x8] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_8075068 - ldr r0, _080B93FC @ =sub_80B9400 - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B93F8: .4byte gUnknown_2037F1B -_080B93FC: .4byte sub_80B9400 - thumb_func_end sub_80B9378 - - thumb_func_start sub_80B9400 -sub_80B9400: @ 80B9400 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B9414 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B9414: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B9400 - - thumb_func_start sub_80B941C -sub_80B941C: @ 80B941C - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080B9430 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B9438 - ldr r0, _080B9434 @ =gUnknown_2037F1A - b _080B943A - .align 2, 0 -_080B9430: .4byte gUnknown_2037F02 -_080B9434: .4byte gUnknown_2037F1A -_080B9438: - ldr r0, _080B9498 @ =gUnknown_2037F1B -_080B943A: - ldrb r5, [r0] - adds r0, r5, 0 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B949C @ =0x0000fff0 - adds r0, r2 - ldr r4, _080B94A0 @ =gUnknown_2037F02 - movs r3, 0x2 - ldrsh r1, [r4, r3] - lsls r1, 5 - adds r0, r1 - strh r0, [r6, 0x20] - adds r0, r5, 0 - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r6, 0x22] - ldrh r2, [r6, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x2 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r1, r0 - ldr r3, _080B94A4 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080B94A8 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r6, 0x4] - ldr r1, _080B94AC @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x2E] - ldr r0, _080B94B0 @ =sub_8074C44 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9498: .4byte gUnknown_2037F1B -_080B949C: .4byte 0x0000fff0 -_080B94A0: .4byte gUnknown_2037F02 -_080B94A4: .4byte 0x000003ff -_080B94A8: .4byte 0xfffffc00 -_080B94AC: .4byte DestroyAnimSprite -_080B94B0: .4byte sub_8074C44 - thumb_func_end sub_80B941C - - thumb_func_start sub_80B94B4 -sub_80B94B4: @ 80B94B4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B94D8 @ =gTasks - adds r4, r0, r1 - ldr r0, _080B94DC @ =gUnknown_2037F02 - ldrh r2, [r0, 0x2] - movs r3, 0x2 - ldrsh r1, [r0, r3] - adds r6, r0, 0 - cmp r1, 0 - beq _080B94E0 - adds r0, r2, 0x3 - b _080B94EC - .align 2, 0 -_080B94D8: .4byte gTasks -_080B94DC: .4byte gUnknown_2037F02 -_080B94E0: - ldr r0, _080B950C @ =gUnknown_2037EEC - ldrh r0, [r0] - movs r1, 0xA - bl __udivsi3 - adds r0, 0x3 -_080B94EC: - strh r0, [r4, 0x26] - strh r0, [r4, 0x24] - adds r1, r6, 0 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0xE] - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - beq _080B9518 - cmp r0, 0x5 - bne _080B9558 - ldr r0, _080B9510 @ =gUnknown_2022980 - ldrh r0, [r0] - strh r0, [r4, 0x22] - ldr r0, _080B9514 @ =sub_80B9584 - b _080B9576 - .align 2, 0 -_080B950C: .4byte gUnknown_2037EEC -_080B9510: .4byte gUnknown_2022980 -_080B9514: .4byte sub_80B9584 -_080B9518: - movs r0, 0 - strh r0, [r4, 0x22] - movs r5, 0 -_080B951E: - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B9548 - movs r3, 0x22 - ldrsh r0, [r4, r3] - adds r0, 0x9 - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x8 - adds r1, r0 - ldr r0, _080B9554 @ =gUnknown_2023D44 - adds r0, r5, r0 - ldrb r0, [r0] - strh r0, [r1] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_080B9548: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080B951E - b _080B9574 - .align 2, 0 -_080B9554: .4byte gUnknown_2023D44 -_080B9558: - ldrb r0, [r6] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - cmp r0, 0xFF - bne _080B9570 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _080B9578 -_080B9570: - movs r0, 0x1 - strh r0, [r4, 0x22] -_080B9574: - ldr r0, _080B9580 @ =sub_80B967C -_080B9576: - str r0, [r4] -_080B9578: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9580: .4byte sub_80B967C - thumb_func_end sub_80B94B4 - - thumb_func_start sub_80B9584 -sub_80B9584: @ 80B9584 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B95A8 @ =gTasks - adds r3, r0, r1 - movs r0, 0x8 - ldrsh r1, [r3, r0] - cmp r1, 0x1 - beq _080B9608 - cmp r1, 0x1 - bgt _080B95AC - cmp r1, 0 - beq _080B95B2 - b _080B9674 - .align 2, 0 -_080B95A8: .4byte gTasks -_080B95AC: - cmp r1, 0x2 - beq _080B9668 - b _080B9674 -_080B95B2: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B9674 - strh r1, [r3, 0xA] - ldrh r1, [r3, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080B95DC - ldr r1, _080B95D8 @ =gUnknown_2022980 - ldrh r0, [r3, 0x26] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r1] - b _080B95E6 - .align 2, 0 -_080B95D8: .4byte gUnknown_2022980 -_080B95DC: - ldr r0, _080B9604 @ =gUnknown_2022980 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x26] - subs r1, r2 - strh r1, [r0] -_080B95E6: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xE - ldrsh r1, [r3, r2] - cmp r0, r1 - bne _080B9674 - movs r0, 0 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x24] - subs r0, 0x1 - strh r0, [r3, 0x24] - b _080B965C - .align 2, 0 -_080B9604: .4byte gUnknown_2022980 -_080B9608: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B9674 - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r0, [r3, 0xC] - ands r1, r0 - cmp r1, 0 - bne _080B9634 - ldr r1, _080B9630 @ =gUnknown_2022980 - ldrh r0, [r3, 0x24] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r1] - b _080B963E - .align 2, 0 -_080B9630: .4byte gUnknown_2022980 -_080B9634: - ldr r0, _080B9664 @ =gUnknown_2022980 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x24] - subs r1, r2 - strh r1, [r0] -_080B963E: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080B9674 - movs r0, 0 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x24] - subs r0, 0x1 - strh r0, [r3, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080B9674 -_080B965C: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080B9674 - .align 2, 0 -_080B9664: .4byte gUnknown_2022980 -_080B9668: - ldr r1, _080B9678 @ =gUnknown_2022980 - ldrh r0, [r3, 0x22] - strh r0, [r1] - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B9674: - pop {r0} - bx r0 - .align 2, 0 -_080B9678: .4byte gUnknown_2022980 - thumb_func_end sub_80B9584 - - thumb_func_start sub_80B967C -sub_80B967C: @ 80B967C - push {r4-r7,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080B96A0 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080B96DC - cmp r5, 0x1 - bgt _080B96A4 - cmp r5, 0 - beq _080B96AA - b _080B9756 - .align 2, 0 -_080B96A0: .4byte gTasks -_080B96A4: - cmp r5, 0x2 - beq _080B9718 - b _080B9756 -_080B96AA: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B9756 - strh r5, [r4, 0xA] - adds r0, r4, 0 - bl sub_80B9760 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080B9756 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0x24] - subs r0, 0x1 - strh r0, [r4, 0x24] - b _080B9710 -_080B96DC: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B9756 - strh r5, [r4, 0xA] - adds r0, r4, 0 - bl sub_80B9760 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080B9756 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0x24] - subs r0, 0x1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080B9756 -_080B9710: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B9756 -_080B9718: - movs r2, 0 - movs r7, 0x22 - ldrsh r0, [r4, r7] - cmp r2, r0 - bge _080B9750 - ldr r0, _080B975C @ =gSprites - mov r12, r0 - adds r5, r4, 0 - adds r5, 0x8 - movs r6, 0 -_080B972C: - adds r0, r2, 0 - adds r0, 0x9 - lsls r0, 1 - adds r0, r5, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r12 - strh r6, [r0, 0x24] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _080B972C -_080B9750: - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080B9756: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B975C: .4byte gSprites - thumb_func_end sub_80B967C - - thumb_func_start sub_80B9760 -sub_80B9760: @ 80B9760 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0xC] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080B9788 - movs r0, 0x24 - ldrsh r1, [r3, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r2, [r3, 0x24] - adds r0, r4, 0 - ands r0, r2 - adds r1, r0 - lsls r1, 16 - lsrs r4, r1, 16 - b _080B9798 -_080B9788: - movs r1, 0x24 - ldrsh r0, [r3, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 -_080B9798: - movs r2, 0 - movs r7, 0x22 - ldrsh r0, [r3, r7] - cmp r2, r0 - bge _080B97CC - ldr r6, _080B97D4 @ =gSprites - adds r5, r3, 0 - adds r5, 0x8 -_080B97A8: - adds r0, r2, 0 - adds r0, 0x9 - lsls r0, 1 - adds r0, r5, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r4, [r0, 0x24] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x22 - ldrsh r0, [r3, r1] - cmp r2, r0 - blt _080B97A8 -_080B97CC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B97D4: .4byte gSprites - thumb_func_end sub_80B9760 - - thumb_func_start sub_80B97D8 -sub_80B97D8: @ 80B97D8 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, _080B97F8 @ =gUnknown_2037F02 - movs r2, 0 - ldr r0, _080B97FC @ =gUnknown_2037EEC - ldrh r0, [r0] - cmp r0, 0x63 - bls _080B97EC - movs r2, 0x1 -_080B97EC: - strh r2, [r3, 0x1E] - adds r0, r1, 0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080B97F8: .4byte gUnknown_2037F02 -_080B97FC: .4byte gUnknown_2037EEC - thumb_func_end sub_80B97D8 - - thumb_func_start sub_80B9800 -sub_80B9800: @ 80B9800 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080B9818 @ =gUnknown_2037F02 - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - beq _080B9820 - ldr r0, _080B981C @ =gUnknown_2037F1B - b _080B9822 - .align 2, 0 -_080B9818: .4byte gUnknown_2037F02 -_080B981C: .4byte gUnknown_2037F1B -_080B9820: - ldr r0, _080B9890 @ =gUnknown_2037F1A -_080B9822: - ldrb r0, [r0] - adds r5, r0, 0 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - ble _080B9832 - movs r0, 0x2 - eors r5, r0 -_080B9832: - ldr r0, _080B9894 @ =sub_80B98A8 - ldrb r1, [r6, 0x2] - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080B9898 @ =gTasks - adds r4, r0 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x20 - subs r1, r0 - ldr r2, _080B989C @ =0x000001ff - adds r0, r2, 0 - ands r1, r0 - strh r1, [r4, 0xA] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x40 - subs r1, r0 - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0xC] - ldr r2, _080B98A0 @ =gUnknown_2022980 - ldrh r0, [r4, 0xA] - strh r0, [r2] - ldr r0, _080B98A4 @ =gUnknown_2022982 - strh r1, [r0] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0xE] - adds r0, r7, 0 - bl DestroyAnimVisualTask - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9890: .4byte gUnknown_2037F1A -_080B9894: .4byte sub_80B98A8 -_080B9898: .4byte gTasks -_080B989C: .4byte 0x000001ff -_080B98A0: .4byte gUnknown_2022980 -_080B98A4: .4byte gUnknown_2022982 - thumb_func_end sub_80B9800 - - thumb_func_start sub_80B98A8 -sub_80B98A8: @ 80B98A8 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080B98D8 @ =gTasks - adds r2, r0, r1 - ldr r0, _080B98DC @ =gUnknown_2037F02 - movs r4, 0xE - ldrsh r1, [r0, r4] - movs r4, 0xE - ldrsh r0, [r2, r4] - cmp r1, r0 - bne _080B98E8 - ldr r0, _080B98E0 @ =gUnknown_2022980 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B98E4 @ =gUnknown_2022982 - strh r1, [r0] - adds r0, r3, 0 - bl DestroyTask - b _080B98F4 - .align 2, 0 -_080B98D8: .4byte gTasks -_080B98DC: .4byte gUnknown_2037F02 -_080B98E0: .4byte gUnknown_2022980 -_080B98E4: .4byte gUnknown_2022982 -_080B98E8: - ldr r1, _080B98FC @ =gUnknown_2022980 - ldrh r0, [r2, 0xA] - strh r0, [r1] - ldr r1, _080B9900 @ =gUnknown_2022982 - ldrh r0, [r2, 0xC] - strh r0, [r1] -_080B98F4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B98FC: .4byte gUnknown_2022980 -_080B9900: .4byte gUnknown_2022982 - thumb_func_end sub_80B98A8 - - thumb_func_start sub_80B9904 -sub_80B9904: @ 80B9904 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B993C @ =gUnknown_2037F02 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080B9940 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080B9944 - ldrh r0, [r5, 0x6] - negs r0, r0 - strh r0, [r4, 0x30] - movs r0, 0x1 - strh r0, [r4, 0x36] - b _080B9952 - .align 2, 0 -_080B993C: .4byte gUnknown_2037F02 -_080B9940: .4byte gUnknown_2037F1A -_080B9944: - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - strh r1, [r4, 0x36] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080B9952: - ldr r0, _080B9968 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x8] - strh r0, [r4, 0x34] - ldr r1, _080B996C @ =sub_80B9970 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9968: .4byte gUnknown_2037F02 -_080B996C: .4byte sub_80B9970 - thumb_func_end sub_80B9904 - - thumb_func_start sub_80B9970 -sub_80B9970: @ 80B9970 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x1E - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r1, 0xA - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - cmp r0, 0x7F - bhi _080B99A2 - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080B99AA -_080B99A2: - ldrb r0, [r4, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r4, 0x5] -_080B99AA: - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x2E] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080B99CE - adds r0, r4, 0 - bl DestroyAnimSprite -_080B99CE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B9970 - - thumb_func_start sub_80B99D4 -sub_80B99D4: @ 80B99D4 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldr r4, _080B9A0C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r4, r1] - bl sub_80B9A14 - movs r1, 0x2 - ldrsb r1, [r4, r1] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - ldrh r4, [r4, 0x8] - str r4, [sp] - bl BeginNormalPaletteFade - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B9A10 @ =sub_80B9A5C - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9A0C: .4byte gUnknown_2037F02 -_080B9A10: .4byte sub_80B9A5C - thumb_func_end sub_80B99D4 - - thumb_func_start sub_80B9A14 -sub_80B9A14: @ 80B9A14 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - lsls r0, 16 - lsrs r0, 16 - movs r4, 0x1 - mov r8, r0 - mov r1, r8 - ands r1, r4 - mov r8, r1 - lsls r0, 16 - asrs r1, r0, 17 - ands r1, r4 - asrs r2, r0, 18 - ands r2, r4 - asrs r3, r0, 19 - ands r3, r4 - asrs r6, r0, 20 - ands r6, r4 - asrs r5, r0, 21 - ands r5, r4 - asrs r0, 22 - ands r0, r4 - str r6, [sp] - str r5, [sp, 0x4] - str r0, [sp, 0x8] - mov r0, r8 - bl sub_8075BE8 - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80B9A14 - - thumb_func_start sub_80B9A5C -sub_80B9A5C: @ 80B9A5C - push {lr} - adds r2, r0, 0 - ldr r0, _080B9A78 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9A72 - adds r0, r2, 0 - bl DestroyAnimSprite -_080B9A72: - pop {r0} - bx r0 - .align 2, 0 -_080B9A78: .4byte gPaletteFade - thumb_func_end sub_80B9A5C - - thumb_func_start sub_80B9A7C -sub_80B9A7C: @ 80B9A7C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B9AC8 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x2E] - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x34] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0x38] - ldrh r0, [r4, 0xC] - strh r0, [r5, 0x3A] - ldrh r0, [r4] - strh r0, [r5, 0x3C] - movs r1, 0x3C - ldrsh r0, [r5, r1] - bl sub_80B9A14 - ldrb r1, [r4, 0x8] - ldrh r2, [r4, 0x6] - bl BlendPalettes - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B9ACC @ =sub_80B9AD0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9AC8: .4byte gUnknown_2037F02 -_080B9ACC: .4byte sub_80B9AD0 - thumb_func_end sub_80B9A7C - - thumb_func_start sub_80B9AD0 -sub_80B9AD0: @ 80B9AD0 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080B9AE4 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080B9B54 -_080B9AE4: - ldr r0, _080B9B00 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9B54 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B9B08 - ldr r0, _080B9B04 @ =sub_80B9B5C - str r0, [r4, 0x1C] - b _080B9B54 - .align 2, 0 -_080B9B00: .4byte gPaletteFade -_080B9B04: .4byte sub_80B9B5C -_080B9B08: - movs r2, 0x3C - ldrsh r0, [r4, r2] - bl sub_80B9A14 - adds r3, r0, 0 - ldrh r1, [r4, 0x30] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080B9B2E - ldrh r1, [r4, 0x36] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x34] - adds r0, r3, 0 - bl BlendPalettes - b _080B9B3C -_080B9B2E: - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x38] - adds r0, r3, 0 - bl BlendPalettes -_080B9B3C: - ldrh r0, [r4, 0x30] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - eors r0, r1 - strh r0, [r4, 0x30] - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - subs r0, 0x1 - strh r0, [r4, 0x32] -_080B9B54: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B9AD0 - - thumb_func_start sub_80B9B5C -sub_80B9B5C: @ 80B9B5C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B9B88 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9B82 - movs r1, 0x3C - ldrsh r0, [r4, r1] - bl sub_80B9A14 - movs r1, 0 - movs r2, 0 - bl BlendPalettes - adds r0, r4, 0 - bl DestroyAnimSprite -_080B9B82: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9B88: .4byte gPaletteFade - thumb_func_end sub_80B9B5C - - thumb_func_start sub_80B9B8C -sub_80B9B8C: @ 80B9B8C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080B9BD0 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - movs r2, 0 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r2, [r4, 0x2E] - movs r0, 0xA - strh r0, [r4, 0x30] - movs r0, 0x8 - strh r0, [r4, 0x32] - movs r0, 0x28 - strh r0, [r4, 0x34] - movs r0, 0x70 - strh r0, [r4, 0x36] - strh r2, [r4, 0x38] - ldr r1, _080B9BD4 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080B9BD8 @ =sub_8074AE0 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9BD0: .4byte gUnknown_2037F02 -_080B9BD4: .4byte move_anim_8074EE0 -_080B9BD8: .4byte sub_8074AE0 - thumb_func_end sub_80B9B8C - - thumb_func_start sub_80B9BDC -sub_80B9BDC: @ 80B9BDC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B9C20 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r3, _080B9C24 @ =gUnknown_2037F02 - ldrh r1, [r3] - movs r5, 0 - strh r1, [r4, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r4, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r4, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r4, 0xE] - ldrh r2, [r3, 0x8] - strh r2, [r4, 0x10] - ldrh r1, [r3, 0xA] - strh r1, [r4, 0x12] - strh r5, [r4, 0x18] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - bl sub_80B9C2C - ldr r0, _080B9C28 @ =sub_80B9C7C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9C20: .4byte gTasks -_080B9C24: .4byte gUnknown_2037F02 -_080B9C28: .4byte sub_80B9C7C - thumb_func_end sub_80B9BDC - - thumb_func_start sub_80B9C2C -sub_80B9C2C: @ 80B9C2C - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r1, _080B9C78 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - bl sub_80B9A14 - movs r1, 0xA - ldrsb r1, [r4, r1] - ldrh r2, [r4, 0x12] - str r2, [sp] - adds r2, r5, 0 - adds r3, r6, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x18] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x18] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9C78: .4byte gTasks - thumb_func_end sub_80B9C2C - - thumb_func_start sub_80B9C7C -sub_80B9C7C: @ 80B9C7C - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - ldr r0, _080B9CB4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9CDE - ldr r1, _080B9CB8 @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0xC - ldrsh r0, [r3, r5] - adds r6, r1, 0 - adds r5, r2, 0 - cmp r0, 0 - ble _080B9CD8 - movs r1, 0x18 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080B9CBC - ldrb r1, [r3, 0xE] - ldrb r2, [r3, 0x10] - b _080B9CC0 - .align 2, 0 -_080B9CB4: .4byte gPaletteFade -_080B9CB8: .4byte gTasks -_080B9CBC: - ldrb r1, [r3, 0x10] - ldrb r2, [r3, 0xE] -_080B9CC0: - adds r0, r5, r4 - lsls r0, 3 - adds r0, r6 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _080B9CD0 - movs r2, 0 -_080B9CD0: - adds r0, r4, 0 - bl sub_80B9C2C - b _080B9CDE -_080B9CD8: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080B9CDE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B9C7C - - thumb_func_start sub_80B9CE4 -sub_80B9CE4: @ 80B9CE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r3, _080B9D88 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r3 - ldr r2, _080B9D8C @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0x8] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0xE] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0x10] - ldrh r1, [r2, 0xA] - strh r1, [r0, 0x12] - strh r5, [r0, 0x18] - movs r4, 0 - ldr r0, _080B9D90 @ =gBattlersCount - ldrb r1, [r0] - mov r9, r3 - mov r8, r2 - cmp r5, r1 - bge _080B9D4C - ldr r0, _080B9D94 @ =gUnknown_2037F1A - ldrb r3, [r0] - ldr r7, _080B9D98 @ =gUnknown_2037F1B - movs r0, 0x1 - mov r12, r0 - adds r2, r1, 0 -_080B9D32: - cmp r4, r3 - beq _080B9D46 - ldrb r1, [r7] - cmp r4, r1 - beq _080B9D46 - adds r1, r4, 0 - adds r1, 0x10 - mov r0, r12 - lsls r0, r1 - orrs r5, r0 -_080B9D46: - adds r4, 0x1 - cmp r4, r2 - blt _080B9D32 -_080B9D4C: - mov r2, r8 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080B9D5A - movs r0, 0xE - orrs r5, r0 -_080B9D5A: - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - add r4, r9 - lsrs r0, r5, 16 - strh r0, [r4, 0x1A] - movs r0, 0xFF - ands r5, r0 - strh r5, [r4, 0x1C] - ldrb r2, [r4, 0x10] - adds r0, r6, 0 - movs r1, 0 - bl sub_80B9DA0 - ldr r0, _080B9D9C @ =sub_80B9DF0 - str r0, [r4] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9D88: .4byte gTasks -_080B9D8C: .4byte gUnknown_2037F02 -_080B9D90: .4byte gBattlersCount -_080B9D94: .4byte gUnknown_2037F1A -_080B9D98: .4byte gUnknown_2037F1B -_080B9D9C: .4byte sub_80B9DF0 - thumb_func_end sub_80B9CE4 - - thumb_func_start sub_80B9DA0 -sub_80B9DA0: @ 80B9DA0 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _080B9DEC @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrh r0, [r4, 0x1A] - lsls r0, 16 - ldrh r1, [r4, 0x1C] - orrs r0, r1 - movs r1, 0xA - ldrsb r1, [r4, r1] - ldrh r2, [r4, 0x12] - str r2, [sp] - adds r2, r5, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x18] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x18] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9DEC: .4byte gTasks - thumb_func_end sub_80B9DA0 - - thumb_func_start sub_80B9DF0 -sub_80B9DF0: @ 80B9DF0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - ldr r0, _080B9E28 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9E52 - ldr r1, _080B9E2C @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0xC - ldrsh r0, [r3, r5] - adds r6, r1, 0 - adds r5, r2, 0 - cmp r0, 0 - ble _080B9E4C - movs r1, 0x18 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080B9E30 - ldrb r1, [r3, 0xE] - ldrb r2, [r3, 0x10] - b _080B9E34 - .align 2, 0 -_080B9E28: .4byte gPaletteFade -_080B9E2C: .4byte gTasks -_080B9E30: - ldrb r1, [r3, 0x10] - ldrb r2, [r3, 0xE] -_080B9E34: - adds r0, r5, r4 - lsls r0, 3 - adds r0, r6 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _080B9E44 - movs r2, 0 -_080B9E44: - adds r0, r4, 0 - bl sub_80B9DA0 - b _080B9E52 -_080B9E4C: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080B9E52: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B9DF0 - - thumb_func_start sub_80B9E58 -sub_80B9E58: @ 80B9E58 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B9E9C @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r3, _080B9EA0 @ =gUnknown_2037F02 - ldrh r1, [r3] - movs r5, 0 - strh r1, [r4, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r4, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r4, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r4, 0xE] - ldrh r2, [r3, 0x8] - strh r2, [r4, 0x10] - ldrh r1, [r3, 0xA] - strh r1, [r4, 0x12] - strh r5, [r4, 0x18] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - bl sub_80B9EA8 - ldr r0, _080B9EA4 @ =sub_80B9F04 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9E9C: .4byte gTasks -_080B9EA0: .4byte gUnknown_2037F02 -_080B9EA4: .4byte sub_80B9F04 - thumb_func_end sub_80B9E58 - - thumb_func_start sub_80B9EA8 -sub_80B9EA8: @ 80B9EA8 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r1, _080B9F00 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrh r0, [r4, 0x8] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r2, 0x1 - lsls r2, r0 - movs r1, 0xA - ldrsb r1, [r4, r1] - ldrh r0, [r4, 0x12] - str r0, [sp] - adds r0, r2, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x18] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x18] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9F00: .4byte gTasks - thumb_func_end sub_80B9EA8 - - thumb_func_start sub_80B9F04 -sub_80B9F04: @ 80B9F04 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - ldr r0, _080B9F3C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9F66 - ldr r1, _080B9F40 @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0xC - ldrsh r0, [r3, r5] - adds r6, r1, 0 - adds r5, r2, 0 - cmp r0, 0 - ble _080B9F60 - movs r1, 0x18 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080B9F44 - ldrb r1, [r3, 0xE] - ldrb r2, [r3, 0x10] - b _080B9F48 - .align 2, 0 -_080B9F3C: .4byte gPaletteFade -_080B9F40: .4byte gTasks -_080B9F44: - ldrb r1, [r3, 0x10] - ldrb r2, [r3, 0xE] -_080B9F48: - adds r0, r5, r4 - lsls r0, 3 - adds r0, r6 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _080B9F58 - movs r2, 0 -_080B9F58: - adds r0, r4, 0 - bl sub_80B9EA8 - b _080B9F66 -_080B9F60: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080B9F66: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B9F04 - - thumb_func_start sub_80B9F6C -sub_80B9F6C: @ 80B9F6C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B9FCC @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r5, _080B9FD0 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x8] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x10] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x12] - ldrh r0, [r5, 0xC] - strh r0, [r4, 0x14] - ldrh r0, [r5] - strh r0, [r4, 0x16] - ldrh r0, [r5] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - ldrb r3, [r5, 0x8] - ldrh r0, [r5, 0x6] - str r0, [sp] - adds r0, r1, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080B9FD4 @ =sub_80B9FD8 - str r0, [r4] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9FCC: .4byte gTasks -_080B9FD0: .4byte gUnknown_2037F02 -_080B9FD4: .4byte sub_80B9FD8 - thumb_func_end sub_80B9F6C - - thumb_func_start sub_80B9FD8 -sub_80B9FD8: @ 80B9FD8 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080B9FFC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080BA000 - subs r0, r1, 0x1 - strh r0, [r4, 0x8] - b _080BA084 - .align 2, 0 -_080B9FFC: .4byte gTasks -_080BA000: - ldr r0, _080BA01C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BA084 - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080BA024 - ldr r0, _080BA020 @ =sub_80BA090 - str r0, [r4] - b _080BA084 - .align 2, 0 -_080BA01C: .4byte gPaletteFade -_080BA020: .4byte sub_80BA090 -_080BA024: - ldrh r0, [r4, 0x16] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r2, 0x1 - lsls r2, r0 - ldrh r1, [r4, 0xA] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080BA052 - ldrb r3, [r4, 0x10] - ldrh r0, [r4, 0xE] - str r0, [sp] - adds r0, r2, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade - b _080BA062 -_080BA052: - ldrb r3, [r4, 0x14] - ldrh r0, [r4, 0x12] - str r0, [sp] - adds r0, r2, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade -_080BA062: - ldr r0, _080BA08C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - movs r3, 0x80 - lsls r3, 1 - adds r2, r3, 0 - eors r0, r2 - strh r0, [r1, 0xA] - movs r2, 0xFF - ands r0, r2 - strh r0, [r1, 0x8] - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] -_080BA084: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA08C: .4byte gTasks - thumb_func_end sub_80B9FD8 - - thumb_func_start sub_80BA090 -sub_80BA090: @ 80BA090 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080BA0E0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080BA0D6 - ldr r1, _080BA0E4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x16] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - str r5, [sp] - adds r0, r1, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080BA0D6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA0E0: .4byte gPaletteFade -_080BA0E4: .4byte gTasks - thumb_func_end sub_80BA090 - - thumb_func_start sub_80BA0E8 -sub_80BA0E8: @ 80BA0E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r2, 0 - ldr r0, _080BA160 @ =gUnknown_2037F1A - ldrb r6, [r0] - ldr r0, _080BA164 @ =gUnknown_2037F1B - ldrb r7, [r0] - ldr r4, _080BA168 @ =gUnknown_2037F02 - ldrh r1, [r4] - movs r5, 0x80 - lsls r5, 1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA122 - str r2, [sp] - str r2, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r3, 0 - bl sub_8075BE8 - adds r2, r0, 0 -_080BA122: - ldrh r1, [r4, 0x2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA134 - movs r0, 0x80 - lsls r0, 9 - lsls r0, r6 - orrs r2, r0 -_080BA134: - ldrh r1, [r4, 0x4] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA146 - movs r0, 0x80 - lsls r0, 9 - lsls r0, r7 - orrs r2, r0 -_080BA146: - adds r0, r2, 0 - bl InvertPlttBuffer - mov r0, r8 - bl DestroyAnimVisualTask - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA160: .4byte gUnknown_2037F1A -_080BA164: .4byte gUnknown_2037F1B -_080BA168: .4byte gUnknown_2037F02 - thumb_func_end sub_80BA0E8 - - thumb_func_start sub_80BA16C -sub_80BA16C: @ 80BA16C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r1, _080BA260 @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BA1AE - ldr r1, _080BA264 @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0xC] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0xE] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x10] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0xA] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x12] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x14] - ldrh r0, [r1, 0xC] - strh r0, [r4, 0x16] -_080BA1AE: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080BA268 @ =gUnknown_2037F1A - ldrb r0, [r0] - mov r9, r0 - ldr r0, _080BA26C @ =gUnknown_2037F1B - ldrb r0, [r0] - mov r10, r0 - ldrh r1, [r4, 0xC] - movs r7, 0x80 - lsls r7, 1 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA1D0 - ldr r5, _080BA270 @ =0x0000ffff -_080BA1D0: - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA200 - ldr r2, _080BA274 @ =gSprites - ldr r0, _080BA278 @ =gUnknown_3004FF0 - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x14 - adds r0, r2 - ldr r0, [r0] - ldrh r0, [r0, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r1, r6, 0 - lsls r1, r0 - lsls r1, 16 - orrs r5, r1 -_080BA200: - ldrh r1, [r4, 0xE] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA214 - adds r0, r6, 0 - mov r2, r9 - lsls r0, r2 - lsls r0, 16 - orrs r5, r0 -_080BA214: - ldrh r1, [r4, 0x10] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA228 - adds r0, r6, 0 - mov r1, r10 - lsls r0, r1 - lsls r0, 16 - orrs r5, r0 -_080BA228: - movs r1, 0x12 - ldrsb r1, [r4, r1] - movs r2, 0x14 - ldrsb r2, [r4, r2] - movs r3, 0x16 - ldrsb r3, [r4, r3] - adds r0, r5, 0 - bl TintPlttBuffer - movs r2, 0x8 - ldrsh r1, [r4, r2] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080BA252 - adds r0, r5, 0 - bl UnfadePlttBuffer - mov r0, r8 - bl DestroyAnimVisualTask -_080BA252: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA260: .4byte gTasks -_080BA264: .4byte gUnknown_2037F02 -_080BA268: .4byte gUnknown_2037F1A -_080BA26C: .4byte gUnknown_2037F1B -_080BA270: .4byte 0x0000ffff -_080BA274: .4byte gSprites -_080BA278: .4byte gUnknown_3004FF0 - thumb_func_end sub_80BA16C - - thumb_func_start sub_80BA27C -sub_80BA27C: @ 80BA27C - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080BA2B0 @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x34] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080BA2C4 - cmp r0, 0x1 - bgt _080BA2B4 - cmp r0, 0 - beq _080BA2BA - b _080BA2DC - .align 2, 0 -_080BA2B0: .4byte gUnknown_2037F02 -_080BA2B4: - cmp r0, 0x2 - beq _080BA2CC - b _080BA2DC -_080BA2BA: - ldr r1, _080BA2C0 @ =gUnknown_2022980 - b _080BA2CE - .align 2, 0 -_080BA2C0: .4byte gUnknown_2022980 -_080BA2C4: - ldr r1, _080BA2C8 @ =gUnknown_2022982 - b _080BA2CE - .align 2, 0 -_080BA2C8: .4byte gUnknown_2022982 -_080BA2CC: - ldr r1, _080BA2D8 @ =gSpriteCoordOffsetX -_080BA2CE: - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - b _080BA2E4 - .align 2, 0 -_080BA2D8: .4byte gSpriteCoordOffsetX -_080BA2DC: - ldr r1, _080BA314 @ =gSpriteCoordOffsetY - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 -_080BA2E4: - movs r0, 0x3A - ldrsh r1, [r4, r0] - movs r2, 0x3C - ldrsh r0, [r4, r2] - lsls r0, 16 - orrs r1, r0 - ldrh r0, [r1] - strh r0, [r4, 0x36] - ldr r0, _080BA318 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x6] - strh r0, [r4, 0x38] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BA308 - bl sub_80BA3CC -_080BA308: - ldr r0, _080BA31C @ =sub_80BA320 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA314: .4byte gSpriteCoordOffsetY -_080BA318: .4byte gUnknown_2037F02 -_080BA31C: .4byte sub_80BA320 - thumb_func_end sub_80BA27C - - thumb_func_start sub_80BA320 -sub_80BA320: @ 80BA320 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x34] - movs r2, 0x34 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080BA362 - subs r0, r1, 0x1 - strh r0, [r3, 0x34] - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080BA342 - subs r0, r1, 0x1 - strh r0, [r3, 0x30] - b _080BA3BA -_080BA342: - ldrh r0, [r3, 0x32] - strh r0, [r3, 0x30] - movs r0, 0x3A - ldrsh r1, [r3, r0] - movs r2, 0x3C - ldrsh r0, [r3, r2] - lsls r0, 16 - orrs r1, r0 - ldrh r0, [r3, 0x2E] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - ldrh r0, [r3, 0x2E] - negs r0, r0 - strh r0, [r3, 0x2E] - b _080BA3BA -_080BA362: - movs r0, 0x3A - ldrsh r1, [r3, r0] - movs r2, 0x3C - ldrsh r0, [r3, r2] - lsls r0, 16 - orrs r1, r0 - ldrh r0, [r3, 0x36] - strh r0, [r1] - ldrh r0, [r3, 0x38] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BA3B4 - movs r4, 0 - ldr r5, _080BA3C0 @ =gBattlersCount - ldrb r0, [r5] - cmp r4, r0 - bcs _080BA3B4 - ldr r2, _080BA3C4 @ =gSprites - mov r12, r2 - ldr r6, _080BA3C8 @ =gUnknown_2023D44 - movs r7, 0x3 - negs r7, r7 -_080BA392: - adds r0, r4, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5] - cmp r4, r0 - bcc _080BA392 -_080BA3B4: - adds r0, r3, 0 - bl DestroyAnimSprite -_080BA3BA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA3C0: .4byte gBattlersCount -_080BA3C4: .4byte gSprites -_080BA3C8: .4byte gUnknown_2023D44 - thumb_func_end sub_80BA320 - - thumb_func_start sub_80BA3CC -sub_80BA3CC: @ 80BA3CC - push {r4-r6,lr} - ldr r6, _080BA440 @ =gSprites - ldr r4, _080BA444 @ =gUnknown_2023D44 - ldr r5, _080BA448 @ =gUnknown_2037F1A - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x3 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r3, _080BA44C @ =gUnknown_2037F1B - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - ldr r0, _080BA450 @ =gUnknown_2037F02 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x2 - bne _080BA454 - ldrb r0, [r5] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - b _080BA470 - .align 2, 0 -_080BA440: .4byte gSprites -_080BA444: .4byte gUnknown_2023D44 -_080BA448: .4byte gUnknown_2037F1A -_080BA44C: .4byte gUnknown_2037F1B -_080BA450: .4byte gUnknown_2037F02 -_080BA454: - cmp r0, 0 - bne _080BA45C - ldrb r0, [r5] - b _080BA45E -_080BA45C: - ldrb r0, [r3] -_080BA45E: - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 -_080BA470: - orrs r1, r2 - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BA3CC - - thumb_func_start sub_80BA47C -sub_80BA47C: @ 80BA47C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080BA4BC @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldr r3, _080BA4C0 @ =gUnknown_2037F02 - ldrh r1, [r3] - strh r1, [r2, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r2, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0xE] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0x18] - ldr r4, _080BA4C4 @ =gUnknown_2022980 - ldrh r1, [r3] - strh r1, [r4] - ldr r4, _080BA4C8 @ =gUnknown_2022982 - ldrh r1, [r3, 0x2] - strh r1, [r4] - ldr r1, _080BA4CC @ =sub_80BA4D0 - str r1, [r2] - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA4BC: .4byte gTasks -_080BA4C0: .4byte gUnknown_2037F02 -_080BA4C4: .4byte gUnknown_2022980 -_080BA4C8: .4byte gUnknown_2022982 -_080BA4CC: .4byte sub_80BA4D0 - thumb_func_end sub_80BA47C - - thumb_func_start sub_80BA4D0 -sub_80BA4D0: @ 80BA4D0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080BA500 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r2, [r3, 0xE] - movs r4, 0xE - ldrsh r0, [r3, r4] - mov r12, r1 - cmp r0, 0 - bne _080BA556 - ldr r0, _080BA504 @ =gUnknown_2022980 - ldrh r2, [r0] - movs r7, 0x8 - ldrsh r1, [r3, r7] - adds r6, r0, 0 - cmp r2, r1 - bne _080BA508 - ldrh r0, [r3, 0x8] - negs r0, r0 - b _080BA50A - .align 2, 0 -_080BA500: .4byte gTasks -_080BA504: .4byte gUnknown_2022980 -_080BA508: - ldrh r0, [r3, 0x8] -_080BA50A: - strh r0, [r6] - ldr r2, _080BA528 @ =gUnknown_2022982 - ldrh r3, [r2] - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - mov r7, r12 - adds r4, r0, r7 - movs r7, 0xA - ldrsh r0, [r4, r7] - cmn r3, r0 - bne _080BA52C - movs r0, 0 - b _080BA530 - .align 2, 0 -_080BA528: .4byte gUnknown_2022982 -_080BA52C: - ldrh r0, [r4, 0xA] - negs r0, r0 -_080BA530: - strh r0, [r2] - adds r0, r1, r5 - lsls r0, 3 - add r0, r12 - ldrh r1, [r0, 0x18] - strh r1, [r0, 0xE] - ldrh r1, [r0, 0xC] - subs r1, 0x1 - strh r1, [r0, 0xC] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0 - bne _080BA55A - strh r1, [r6] - strh r1, [r2] - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _080BA55A -_080BA556: - subs r0, r2, 0x1 - strh r0, [r3, 0xE] -_080BA55A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BA4D0 - - thumb_func_start sub_80BA560 -sub_80BA560: @ 80BA560 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080BA580 @ =gUnknown_2037F02 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BA584 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - b _080BA58C - .align 2, 0 -_080BA580: .4byte gUnknown_2037F02 -_080BA584: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075114 -_080BA58C: - ldr r0, _080BA5A0 @ =sub_8074F50 - str r0, [r5, 0x1C] - ldr r1, _080BA5A4 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA5A0: .4byte sub_8074F50 -_080BA5A4: .4byte DestroyAnimSprite - thumb_func_end sub_80BA560 - - thumb_func_start sub_80BA5A8 -sub_80BA5A8: @ 80BA5A8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080BA5C8 @ =gUnknown_2037F02 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BA5CC - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - b _080BA5D4 - .align 2, 0 -_080BA5C8: .4byte gUnknown_2037F02 -_080BA5CC: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075114 -_080BA5D4: - ldr r0, _080BA5EC @ =gUnknown_2037F02 - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080BA5F0 @ =sub_8074F50 - str r0, [r5, 0x1C] - ldr r1, _080BA5F4 @ =sub_80B1D3C - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA5EC: .4byte gUnknown_2037F02 -_080BA5F0: .4byte sub_8074F50 -_080BA5F4: .4byte sub_80B1D3C - thumb_func_end sub_80BA5A8 - - thumb_func_start sub_80BA5F8 -sub_80BA5F8: @ 80BA5F8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080BA628 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080BA61C - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BA61C - ldr r1, _080BA62C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080BA61C: - adds r0, r4, 0 - bl sub_80BA560 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA628: .4byte gUnknown_2037F1A -_080BA62C: .4byte gUnknown_2037F02 - thumb_func_end sub_80BA5F8 - - thumb_func_start sub_80BA630 -sub_80BA630: @ 80BA630 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080BA668 @ =gUnknown_2037F02 - movs r0, 0x2 - ldrsh r1, [r5, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080BA64C - bl Random - movs r1, 0x3 - ands r1, r0 - strh r1, [r5, 0x2] -_080BA64C: - ldrb r1, [r5, 0x2] - adds r0, r4, 0 - bl StartSpriteAffineAnim - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080BA66C - adds r0, r4, 0 - movs r1, 0 - bl sub_8075160 - b _080BA674 - .align 2, 0 -_080BA668: .4byte gUnknown_2037F02 -_080BA66C: - adds r0, r4, 0 - movs r1, 0 - bl sub_8075114 -_080BA674: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x30 - bl __umodsi3 - ldr r1, _080BA6B8 @ =0x0000ffe8 - adds r0, r1 - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x18 - bl __umodsi3 - ldr r1, _080BA6BC @ =0x0000fff4 - adds r0, r1 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldr r1, _080BA6C0 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080BA6C4 @ =sub_8074F50 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA6B8: .4byte 0x0000ffe8 -_080BA6BC: .4byte 0x0000fff4 -_080BA6C0: .4byte move_anim_8074EE0 -_080BA6C4: .4byte sub_8074F50 - thumb_func_end sub_80BA630 - - thumb_func_start sub_80BA6C8 -sub_80BA6C8: @ 80BA6C8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080BA728 @ =gUnknown_2037F02 - ldrb r0, [r5] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, _080BA72C @ =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r1, r0 - strh r1, [r4, 0x20] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - strh r1, [r4, 0x22] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x26] - ldrb r1, [r5, 0x6] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldr r1, _080BA730 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080BA734 @ =sub_8074F50 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA728: .4byte gUnknown_2037F02 -_080BA72C: .4byte gSprites -_080BA730: .4byte move_anim_8074EE0 -_080BA734: .4byte sub_8074F50 - thumb_func_end sub_80BA6C8 - - thumb_func_start sub_80BA738 -sub_80BA738: @ 80BA738 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080BA750 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080BA754 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075160 - b _080BA75C - .align 2, 0 -_080BA750: .4byte gUnknown_2037F02 -_080BA754: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 -_080BA75C: - ldr r0, _080BA774 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x6] - strh r0, [r4, 0x2E] - ldr r1, _080BA778 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080BA77C @ =sub_8074C44 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA774: .4byte gUnknown_2037F02 -_080BA778: .4byte DestroyAnimSprite -_080BA77C: .4byte sub_8074C44 - thumb_func_end sub_80BA738 - - thumb_func_start sub_80BA780 -sub_80BA780: @ 80BA780 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080BA7A0 @ =gUnknown_2037F02 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BA7A4 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - b _080BA7AC - .align 2, 0 -_080BA7A0: .4byte gUnknown_2037F02 -_080BA7A4: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075114 -_080BA7AC: - ldr r0, _080BA7B8 @ =sub_80BA7BC - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA7B8: .4byte sub_80BA7BC - thumb_func_end sub_80BA780 - - thumb_func_start sub_80BA7BC -sub_80BA7BC: @ 80BA7BC - push {lr} - adds r3, r0, 0 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x2E] - adds r1, r0, 0x1 - strh r1, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080BA7F2 - adds r0, r3, 0 - bl DestroyAnimSprite -_080BA7F2: - pop {r0} - bx r0 - thumb_func_end sub_80BA7BC - - thumb_func_start sub_80BA7F8 -sub_80BA7F8: @ 80BA7F8 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080BA838 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r4, r1] - bl sub_80B9A14 - adds r6, r0, 0 - ldrh r3, [r4] - lsls r3, 16 - asrs r0, r3, 23 - movs r4, 0x1 - ands r0, r4 - asrs r1, r3, 24 - ands r1, r4 - asrs r2, r3, 25 - ands r2, r4 - asrs r3, 26 - ands r3, r4 - bl sub_8075CB8 - orrs r6, r0 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80BAA4C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BA838: .4byte gUnknown_2037F02 - thumb_func_end sub_80BA7F8 - - thumb_func_start sub_80BA83C -sub_80BA83C: @ 80BA83C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x1] - movs r0, 0x1 - bl sub_80B9A14 - adds r5, r0, 0 - ldr r0, _080BA868 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x7 - bhi _080BA8E6 - lsls r0, 2 - ldr r1, _080BA86C @ =_080BA870 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BA868: .4byte gUnknown_2037F02 -_080BA86C: .4byte _080BA870 - .align 2, 0 -_080BA870: - .4byte _080BA892 - .4byte _080BA89E - .4byte _080BA890 - .4byte _080BA89C - .4byte _080BA8AC - .4byte _080BA8C4 - .4byte _080BA8CC - .4byte _080BA8D8 -_080BA890: - movs r5, 0 -_080BA892: - mov r0, sp - ldr r1, _080BA898 @ =gUnknown_2037F1A - b _080BA8A2 - .align 2, 0 -_080BA898: .4byte gUnknown_2037F1A -_080BA89C: - movs r5, 0 -_080BA89E: - mov r0, sp - ldr r1, _080BA8A8 @ =gUnknown_2037F1B -_080BA8A2: - ldrb r1, [r1] - strb r1, [r0] - b _080BA8E6 - .align 2, 0 -_080BA8A8: .4byte gUnknown_2037F1B -_080BA8AC: - mov r1, sp - ldr r0, _080BA8BC @ =gUnknown_2037F1A - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080BA8C0 @ =gUnknown_2037F1B - ldrb r0, [r0] - strb r0, [r1, 0x1] - b _080BA8E6 - .align 2, 0 -_080BA8BC: .4byte gUnknown_2037F1A -_080BA8C0: .4byte gUnknown_2037F1B -_080BA8C4: - mov r1, sp - movs r0, 0xFF - strb r0, [r1] - b _080BA8E6 -_080BA8CC: - movs r5, 0 - mov r2, sp - ldr r0, _080BA8D4 @ =gUnknown_2037F1A - b _080BA8DE - .align 2, 0 -_080BA8D4: .4byte gUnknown_2037F1A -_080BA8D8: - movs r5, 0 - mov r2, sp - ldr r0, _080BA930 @ =gUnknown_2037F1B -_080BA8DE: - ldrb r0, [r0] - movs r1, 0x2 - eors r0, r1 - strb r0, [r2] -_080BA8E6: - movs r4, 0 - mov r6, sp -_080BA8EA: - ldrb r0, [r6] - cmp r4, r0 - beq _080BA914 - ldrb r0, [r6, 0x1] - cmp r4, r0 - beq _080BA914 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080BA914 - adds r0, r4, 0 - bl sub_8075D80 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - orrs r5, r1 -_080BA914: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080BA8EA - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_80BAA4C - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA930: .4byte gUnknown_2037F1B - thumb_func_end sub_80BA83C - - thumb_func_start sub_80BA934 -sub_80BA934: @ 80BA934 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080BA958 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - bl sub_80B9A14 - adds r2, r0, 0 - ldr r0, _080BA95C @ =gUnknown_2022B50 - ldrb r0, [r0] - cmp r0, 0x9 - bhi _080BAA0A - lsls r0, 2 - ldr r1, _080BA960 @ =_080BA964 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BA958: .4byte gUnknown_2037F02 -_080BA95C: .4byte gUnknown_2022B50 -_080BA960: .4byte _080BA964 - .align 2, 0 -_080BA964: - .4byte _080BA98C - .4byte _080BA99C - .4byte _080BA9A8 - .4byte _080BA9B8 - .4byte _080BA9C4 - .4byte _080BA9D4 - .4byte _080BA9E4 - .4byte _080BA9F4 - .4byte _080BAA04 - .4byte _080BAA04 -_080BA98C: - ldr r1, _080BA994 @ =gUnknown_2037F02 - ldr r0, _080BA998 @ =0x00000b0c - b _080BAA08 - .align 2, 0 -_080BA994: .4byte gUnknown_2037F02 -_080BA998: .4byte 0x00000b0c -_080BA99C: - ldr r1, _080BA9A4 @ =gUnknown_2037F02 - movs r0, 0x9E - lsls r0, 4 - b _080BAA08 - .align 2, 0 -_080BA9A4: .4byte gUnknown_2037F02 -_080BA9A8: - ldr r1, _080BA9B0 @ =gUnknown_2037F02 - ldr r0, _080BA9B4 @ =0x00002f1e - b _080BAA08 - .align 2, 0 -_080BA9B0: .4byte gUnknown_2037F02 -_080BA9B4: .4byte 0x00002f1e -_080BA9B8: - ldr r1, _080BA9C0 @ =gUnknown_2037F02 - movs r0, 0x90 - lsls r0, 7 - b _080BAA08 - .align 2, 0 -_080BA9C0: .4byte gUnknown_2037F02 -_080BA9C4: - ldr r1, _080BA9CC @ =gUnknown_2037F02 - ldr r0, _080BA9D0 @ =0x00007ecb - b _080BAA08 - .align 2, 0 -_080BA9CC: .4byte gUnknown_2037F02 -_080BA9D0: .4byte 0x00007ecb -_080BA9D4: - ldr r1, _080BA9DC @ =gUnknown_2037F02 - ldr r0, _080BA9E0 @ =0x00007ecb - b _080BAA08 - .align 2, 0 -_080BA9DC: .4byte gUnknown_2037F02 -_080BA9E0: .4byte 0x00007ecb -_080BA9E4: - ldr r1, _080BA9EC @ =gUnknown_2037F02 - ldr r0, _080BA9F0 @ =0x00002a16 - b _080BAA08 - .align 2, 0 -_080BA9EC: .4byte gUnknown_2037F02 -_080BA9F0: .4byte 0x00002a16 -_080BA9F4: - ldr r1, _080BA9FC @ =gUnknown_2037F02 - ldr r0, _080BAA00 @ =0x00000d2e - b _080BAA08 - .align 2, 0 -_080BA9FC: .4byte gUnknown_2037F02 -_080BAA00: .4byte 0x00000d2e -_080BAA04: - ldr r1, _080BAA18 @ =gUnknown_2037F02 - ldr r0, _080BAA1C @ =0x00007fff -_080BAA08: - strh r0, [r1, 0x8] -_080BAA0A: - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80BAA4C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BAA18: .4byte gUnknown_2037F02 -_080BAA1C: .4byte 0x00007fff - thumb_func_end sub_80BA934 - - thumb_func_start sub_80BAA20 -sub_80BAA20: @ 80BAA20 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080BAA48 @ =gUnknown_2037F02 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - adds r0, r4, 0 - bl sub_80BAA4C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BAA48: .4byte gUnknown_2037F02 - thumb_func_end sub_80BAA20 - - thumb_func_start sub_80BAA4C -sub_80BAA4C: @ 80BAA4C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080BAA84 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - strh r1, [r2, 0x8] - lsrs r1, 16 - strh r1, [r2, 0xA] - ldr r3, _080BAA88 @ =gUnknown_2037F02 - ldrh r1, [r3, 0x2] - strh r1, [r2, 0xC] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0xE] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0x10] - ldrh r1, [r3, 0x8] - strh r1, [r2, 0x12] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0x1C] - ldr r1, _080BAA8C @ =sub_80BAA90 - str r1, [r2] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080BAA84: .4byte gTasks -_080BAA88: .4byte gUnknown_2037F02 -_080BAA8C: .4byte sub_80BAA90 - thumb_func_end sub_80BAA4C - - thumb_func_start sub_80BAA90 -sub_80BAA90: @ 80BAA90 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - ldr r2, _080BAB10 @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1A] - mov r8, r0 - movs r4, 0x1A - ldrsh r1, [r3, r4] - movs r4, 0xC - ldrsh r0, [r3, r4] - mov r9, r2 - cmp r1, r0 - bne _080BAB26 - strh r6, [r3, 0x1A] - movs r0, 0x8 - ldrsh r4, [r3, r0] - movs r1, 0xA - ldrsh r0, [r3, r1] - lsls r0, 16 - orrs r4, r0 - mov r8, r5 - cmp r4, 0 - beq _080BAAF2 - adds r5, r3, 0 -_080BAAD0: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080BAAE4 - ldrb r2, [r5, 0x1C] - ldrh r3, [r5, 0x12] - adds r0, r6, 0 - movs r1, 0x10 - bl BlendPalette -_080BAAE4: - adds r0, r6, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r4, 1 - cmp r4, 0 - bne _080BAAD0 -_080BAAF2: - mov r4, r8 - adds r0, r4, r7 - lsls r0, 3 - mov r1, r9 - adds r2, r0, r1 - ldrh r0, [r2, 0x1C] - movs r4, 0x1C - ldrsh r3, [r2, r4] - movs r4, 0x10 - ldrsh r1, [r2, r4] - cmp r3, r1 - bge _080BAB14 - adds r0, 0x1 - strh r0, [r2, 0x1C] - b _080BAB2C - .align 2, 0 -_080BAB10: .4byte gTasks -_080BAB14: - cmp r3, r1 - ble _080BAB1E - subs r0, 0x1 - strh r0, [r2, 0x1C] - b _080BAB2C -_080BAB1E: - adds r0, r7, 0 - bl DestroyAnimVisualTask - b _080BAB2C -_080BAB26: - mov r0, r8 - adds r0, 0x1 - strh r0, [r3, 0x1A] -_080BAB2C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BAA90 - - thumb_func_start sub_80BAB38 -sub_80BAB38: @ 80BAB38 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080BAB6C @ =gUnknown_2037F02 - ldrb r0, [r4] - ldrb r1, [r4, 0x2] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - ldrb r4, [r4, 0x8] - str r4, [sp] - bl BeginHardwarePaletteFade - ldr r1, _080BAB70 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BAB74 @ =sub_80BAB78 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BAB6C: .4byte gUnknown_2037F02 -_080BAB70: .4byte gTasks -_080BAB74: .4byte sub_80BAB78 - thumb_func_end sub_80BAB38 - - thumb_func_start sub_80BAB78 -sub_80BAB78: @ 80BAB78 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080BAB94 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BAB90 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080BAB90: - pop {r0} - bx r0 - .align 2, 0 -_080BAB94: .4byte gPaletteFade - thumb_func_end sub_80BAB78 - - thumb_func_start sub_80BAB98 -sub_80BAB98: @ 80BAB98 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080BABC4 @ =gTasks - adds r1, r0 - ldr r2, _080BABC8 @ =gUnknown_2037F02 - ldrh r0, [r2] - movs r3, 0 - strh r0, [r1, 0x8] - strh r3, [r1, 0xA] - ldrh r0, [r2, 0x2] - strh r0, [r1, 0xC] - ldrh r0, [r2, 0x4] - strh r0, [r1, 0xE] - ldrh r0, [r2, 0x6] - strh r0, [r1, 0x10] - strh r3, [r1, 0x12] - ldr r0, _080BABCC @ =sub_80BABD0 - str r0, [r1] - bx lr - .align 2, 0 -_080BABC4: .4byte gTasks -_080BABC8: .4byte gUnknown_2037F02 -_080BABCC: .4byte sub_80BABD0 - thumb_func_end sub_80BAB98 - - thumb_func_start sub_80BABD0 -sub_80BABD0: @ 80BABD0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080BABFC @ =gTasks - adds r4, r0, r1 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080BAC94 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080BAC00 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - b _080BACA2 - .align 2, 0 -_080BABFC: .4byte gTasks -_080BAC00: - ldrb r0, [r4, 0x8] - bl duplicate_obj_of_side_rel2move_in_transparent_mode - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - blt _080BAC7E - ldr r6, _080BAC8C @ =gSprites - movs r1, 0x14 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r3, r1, r6 - movs r2, 0x8 - ldrsh r0, [r4, r2] - movs r2, 0x2 - cmp r0, 0 - beq _080BAC28 - movs r2, 0x1 -_080BAC28: - lsls r2, 2 - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x5] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0xE] - strh r1, [r0, 0x2E] - movs r2, 0x14 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r5, [r0, 0x30] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - strh r1, [r0, 0x32] - movs r2, 0x14 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080BAC90 @ =sub_80BACA8 - str r1, [r0] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] -_080BAC7E: - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - strh r0, [r4, 0xA] - b _080BACA2 - .align 2, 0 -_080BAC8C: .4byte gSprites -_080BAC90: .4byte sub_80BACA8 -_080BAC94: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BACA2 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080BACA2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BABD0 - - thumb_func_start sub_80BACA8 -sub_80BACA8: @ 80BACA8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080BACBC - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080BACE0 -_080BACBC: - ldr r3, _080BACE8 @ =gTasks - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl obj_delete_but_dont_free_vram -_080BACE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BACE8: .4byte gTasks - thumb_func_end sub_80BACA8 - - thumb_func_start sub_80BACEC -sub_80BACEC: @ 80BACEC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r0, _080BAE20 @ =gUnknown_2022984 - strh r7, [r0] - ldr r0, _080BAE24 @ =gUnknown_2022986 - strh r7, [r0] - ldr r1, _080BAE28 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080BAE2C @ =0x00003f3d - movs r0, 0x4A - bl SetGpuReg - movs r1, 0x80 - lsls r1, 8 - movs r0, 0 - bl SetGpuRegBits - ldr r1, _080BAE30 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - ldr r1, _080BAE34 @ =0x00000c08 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0xA - bl GetGpuReg - add r4, sp, 0x10 - strh r0, [r4] - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - mov r8, r0 - ands r0, r1 - strb r0, [r4] - mov r2, sp - adds r2, 0x11 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2] - ldrh r1, [r4] - movs r0, 0xA - bl SetGpuReg - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BAD7A - ldrb r1, [r4] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r4] - movs r0, 0xA - bl SetGpuReg -_080BAD7A: - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080BADFE - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BADFE - ldr r5, _080BAE38 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080BADAA - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - bne _080BADFE -_080BADAA: - ldrb r0, [r5] - movs r6, 0x2 - eors r0, r6 - bl sub_8072DF0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BADFE - ldr r3, _080BAE3C @ =gSprites - ldr r1, _080BAE40 @ =gUnknown_2023D44 - ldrb r0, [r5] - eors r0, r6 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r1, [r4] - mov r0, r8 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r4] - movs r0, 0xA - bl SetGpuReg - movs r7, 0x1 -_080BADFE: - ldr r4, _080BAE38 @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080BAE4C - ldr r1, _080BAE44 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BAE48 @ =gEnemyParty - b _080BAE5C - .align 2, 0 -_080BAE20: .4byte gUnknown_2022984 -_080BAE24: .4byte gUnknown_2022986 -_080BAE28: .4byte 0x00003f3f -_080BAE2C: .4byte 0x00003f3d -_080BAE30: .4byte 0x00003f42 -_080BAE34: .4byte 0x00000c08 -_080BAE38: .4byte gUnknown_2037F1A -_080BAE3C: .4byte gSprites -_080BAE40: .4byte gUnknown_2023D44 -_080BAE44: .4byte gBattlerPartyIndexes -_080BAE48: .4byte gEnemyParty -_080BAE4C: - ldr r1, _080BAF0C @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BAF10 @ =gPlayerParty -_080BAE5C: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r0, _080BAF14 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8076E34 - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080BAF18 @ =gFile_graphics_battle_anims_masks_curse_tilemap - bl sub_807543C - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080BAEAC - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080BAEAC: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080BAF1C @ =gFile_graphics_battle_anims_masks_curse_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080BAF20 @ =gUnknown_83E7CC8 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - adds r1, 0x1 - movs r2, 0x2 - bl LoadPalette - ldr r2, _080BAF24 @ =gUnknown_2022978 - ldr r0, _080BAF28 @ =gSprites - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldr r2, _080BAF2C @ =gUnknown_202297A - ldrh r0, [r1, 0x22] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldr r1, _080BAF30 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - strh r7, [r0, 0x14] - ldr r1, _080BAF34 @ =sub_80BAF38 - str r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BAF0C: .4byte gBattlerPartyIndexes -_080BAF10: .4byte gPlayerParty -_080BAF14: .4byte gUnknown_2037F1A -_080BAF18: .4byte gFile_graphics_battle_anims_masks_curse_tilemap -_080BAF1C: .4byte gFile_graphics_battle_anims_masks_curse_sheet -_080BAF20: .4byte gUnknown_83E7CC8 -_080BAF24: .4byte gUnknown_2022978 -_080BAF28: .4byte gSprites -_080BAF2C: .4byte gUnknown_202297A -_080BAF30: .4byte gTasks -_080BAF34: .4byte sub_80BAF38 - thumb_func_end sub_80BACEC - - thumb_func_start sub_80BAF38 -sub_80BAF38: @ 80BAF38 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080BB068 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x1C] - adds r0, 0x4 - movs r1, 0 - mov r8, r1 - strh r0, [r5, 0x1C] - ldr r7, _080BB06C @ =gUnknown_202297A - ldrh r2, [r7] - subs r1, r2, 0x4 - strh r1, [r7] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _080BB05A - mov r0, r8 - strh r0, [r5, 0x1C] - adds r0, r2, 0 - adds r0, 0x3C - strh r0, [r7] - ldrh r0, [r5, 0x1E] - adds r0, 0x1 - strh r0, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080BB05A - movs r0, 0 - bl sub_8073128 - ldr r0, _080BB070 @ =gUnknown_2022984 - mov r1, r8 - strh r1, [r0] - ldr r0, _080BB074 @ =gUnknown_2022986 - strh r1, [r0] - ldr r4, _080BB078 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BAFCA - movs r0, 0xA - bl GetGpuReg - add r1, sp, 0x10 - strh r0, [r1] - ldrb r2, [r1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrh r1, [r1] - movs r0, 0xA - bl SetGpuReg -_080BAFCA: - movs r0, 0 - bl GetGpuReg - adds r1, r0, 0 - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - eors r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl GetAnimBankSpriteId - ldr r4, _080BB07C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - bl sub_8075358 - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080BB050 - ldr r2, _080BB080 @ =gUnknown_2023D44 - ldr r0, _080BB084 @ =gUnknown_2037F1A - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080BB050: - mov r2, r8 - strh r2, [r7] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080BB05A: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BB068: .4byte gTasks -_080BB06C: .4byte gUnknown_202297A -_080BB070: .4byte gUnknown_2022984 -_080BB074: .4byte gUnknown_2022986 -_080BB078: .4byte 0x00003f3f -_080BB07C: .4byte gSprites -_080BB080: .4byte gUnknown_2023D44 -_080BB084: .4byte gUnknown_2037F1A - thumb_func_end sub_80BAF38 - - thumb_func_start sub_80BB088 -sub_80BB088: @ 80BB088 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080BB0C8 @ =gUnknown_20399B4 - movs r0, 0x18 - bl AllocZeroed - str r0, [r4] - movs r2, 0 - ldr r3, _080BB0CC @ =gUnknown_2037F02 -_080BB09C: - ldr r1, [r4] - lsls r0, r2, 1 - adds r1, 0x4 - adds r1, r0 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _080BB09C - ldr r0, _080BB0D0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BB0D4 @ =sub_80BB0D8 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BB0C8: .4byte gUnknown_20399B4 -_080BB0CC: .4byte gUnknown_2037F02 -_080BB0D0: .4byte gTasks -_080BB0D4: .4byte sub_80BB0D8 - thumb_func_end sub_80BB088 - - thumb_func_start sub_80BB0D8 -sub_80BB0D8: @ 80BB0D8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080BB0F0 @ =gUnknown_20399B4 - ldr r1, [r0] - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080BB0F8 - ldr r0, _080BB0F4 @ =gUnknown_2037F1A - b _080BB0FA - .align 2, 0 -_080BB0F0: .4byte gUnknown_20399B4 -_080BB0F4: .4byte gUnknown_2037F1A -_080BB0F8: - ldr r0, _080BB230 @ =gUnknown_2037F1B -_080BB0FA: - ldrb r0, [r0] - strb r0, [r1] - ldr r4, _080BB234 @ =gUnknown_20399B4 - ldr r2, [r4] - ldrb r0, [r2] - movs r1, 0x2 - eors r0, r1 - strb r0, [r2, 0x1] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BB12A - ldr r1, [r4] - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080BB130 - ldrb r0, [r1, 0x1] - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - bne _080BB130 -_080BB12A: - ldr r1, [r4] - movs r0, 0 - strh r0, [r1, 0xA] -_080BB130: - ldr r0, _080BB238 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080BB23C @ =gUnknown_2022986 - strh r1, [r0] - ldr r1, _080BB240 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080BB244 @ =0x00003f3d - movs r0, 0x4A - bl SetGpuReg - movs r1, 0x80 - lsls r1, 8 - movs r0, 0 - bl SetGpuRegBits - ldr r1, _080BB248 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BB18E - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080BB18E: - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080BB20A - ldr r4, _080BB234 @ =gUnknown_20399B4 - ldr r1, [r4] - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080BB20A - ldrb r0, [r1] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080BB1C0 - ldr r0, [r4] - ldrb r0, [r0] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - bne _080BB20A -_080BB1C0: - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8072DF0 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _080BB20A - ldr r3, _080BB24C @ =gSprites - ldr r1, _080BB250 @ =gUnknown_2023D44 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - ldr r0, [r4] - strb r5, [r0, 0x2] -_080BB20A: - ldr r4, _080BB234 @ =gUnknown_20399B4 - ldr r0, [r4] - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080BB25C - ldr r1, _080BB254 @ =gBattlerPartyIndexes - ldr r0, [r4] - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BB258 @ =gEnemyParty - b _080BB26E - .align 2, 0 -_080BB230: .4byte gUnknown_2037F1B -_080BB234: .4byte gUnknown_20399B4 -_080BB238: .4byte gUnknown_2022984 -_080BB23C: .4byte gUnknown_2022986 -_080BB240: .4byte 0x00003f3f -_080BB244: .4byte 0x00003f3d -_080BB248: .4byte 0x00003f42 -_080BB24C: .4byte gSprites -_080BB250: .4byte gUnknown_2023D44 -_080BB254: .4byte gBattlerPartyIndexes -_080BB258: .4byte gEnemyParty -_080BB25C: - ldr r1, _080BB290 @ =gBattlerPartyIndexes - ldr r0, [r4] - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BB294 @ =gPlayerParty -_080BB26E: - adds r0, r1 - movs r1, 0xB - bl GetMonData - ldr r1, [r4] - strh r0, [r1, 0x14] - ldr r0, _080BB298 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BB29C @ =sub_80BB2A0 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB290: .4byte gBattlerPartyIndexes -_080BB294: .4byte gPlayerParty -_080BB298: .4byte gTasks -_080BB29C: .4byte sub_80BB2A0 - thumb_func_end sub_80BB0D8 - - thumb_func_start sub_80BB2A0 -sub_80BB2A0: @ 80BB2A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - mov r8, r0 - ldr r6, _080BB300 @ =gUnknown_2023D44 - ldr r4, _080BB304 @ =gUnknown_20399B4 - ldr r2, [r4] - ldrb r0, [r2] - adds r1, r0, r6 - ldrb r1, [r1] - ldrh r2, [r2, 0x14] - bl sub_8076E34 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, [r4] - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080BB2E2 - ldrb r0, [r2, 0x1] - adds r1, r0, r6 - ldrb r1, [r1] - ldrh r2, [r2, 0x14] - bl sub_8076E34 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_080BB2E2: - mov r0, sp - bl sub_80752A0 - ldr r0, [r4] - movs r4, 0x4 - ldrsh r0, [r0, r4] - cmp r0, 0 - bne _080BB30C - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080BB308 @ =gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap - bl sub_807543C - b _080BB316 - .align 2, 0 -_080BB300: .4byte gUnknown_2023D44 -_080BB304: .4byte gUnknown_20399B4 -_080BB308: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap -_080BB30C: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080BB354 @ =gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap - bl sub_807543C -_080BB316: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080BB32E - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080BB32E: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080BB358 @ =gFile_graphics_battle_anims_masks_stat_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080BB35C @ =gUnknown_20399B4 - ldr r0, [r0] - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0x6 - bhi _080BB3C4 - lsls r0, 2 - ldr r1, _080BB360 @ =_080BB364 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BB354: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap -_080BB358: .4byte gFile_graphics_battle_anims_masks_stat_sheet -_080BB35C: .4byte gUnknown_20399B4 -_080BB360: .4byte _080BB364 - .align 2, 0 -_080BB364: - .4byte _080BB380 - .4byte _080BB388 - .4byte _080BB390 - .4byte _080BB398 - .4byte _080BB3A0 - .4byte _080BB3A8 - .4byte _080BB3B0 -_080BB380: - ldr r0, _080BB384 @ =gFile_graphics_battle_anims_masks_stat2_palette - b _080BB3B2 - .align 2, 0 -_080BB384: .4byte gFile_graphics_battle_anims_masks_stat2_palette -_080BB388: - ldr r0, _080BB38C @ =gFile_graphics_battle_anims_masks_stat1_palette - b _080BB3B2 - .align 2, 0 -_080BB38C: .4byte gFile_graphics_battle_anims_masks_stat1_palette -_080BB390: - ldr r0, _080BB394 @ =gFile_graphics_battle_anims_masks_stat3_palette - b _080BB3B2 - .align 2, 0 -_080BB394: .4byte gFile_graphics_battle_anims_masks_stat3_palette -_080BB398: - ldr r0, _080BB39C @ =gFile_graphics_battle_anims_masks_stat4_palette - b _080BB3B2 - .align 2, 0 -_080BB39C: .4byte gFile_graphics_battle_anims_masks_stat4_palette -_080BB3A0: - ldr r0, _080BB3A4 @ =gFile_graphics_battle_anims_masks_stat6_palette - b _080BB3B2 - .align 2, 0 -_080BB3A4: .4byte gFile_graphics_battle_anims_masks_stat6_palette -_080BB3A8: - ldr r0, _080BB3AC @ =gFile_graphics_battle_anims_masks_stat7_palette - b _080BB3B2 - .align 2, 0 -_080BB3AC: .4byte gFile_graphics_battle_anims_masks_stat7_palette -_080BB3B0: - ldr r0, _080BB3C0 @ =gFile_graphics_battle_anims_masks_stat8_palette -_080BB3B2: - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080BB3D2 - .align 2, 0 -_080BB3C0: .4byte gFile_graphics_battle_anims_masks_stat8_palette -_080BB3C4: - ldr r0, _080BB3FC @ =gFile_graphics_battle_anims_masks_stat5_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_080BB3D2: - ldr r3, _080BB400 @ =gUnknown_2022978 - movs r2, 0 - strh r2, [r3] - ldr r0, _080BB404 @ =gUnknown_202297A - strh r2, [r0] - ldr r1, _080BB408 @ =gUnknown_20399B4 - ldr r0, [r1] - movs r4, 0x4 - ldrsh r0, [r0, r4] - adds r4, r1, 0 - cmp r0, 0x1 - bne _080BB414 - movs r0, 0x40 - strh r0, [r3] - ldr r2, _080BB40C @ =gTasks - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - ldr r1, _080BB410 @ =0x0000fffd - b _080BB420 - .align 2, 0 -_080BB3FC: .4byte gFile_graphics_battle_anims_masks_stat5_palette -_080BB400: .4byte gUnknown_2022978 -_080BB404: .4byte gUnknown_202297A -_080BB408: .4byte gUnknown_20399B4 -_080BB40C: .4byte gTasks -_080BB410: .4byte 0x0000fffd -_080BB414: - ldr r2, _080BB43C @ =gTasks - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x3 -_080BB420: - strh r1, [r0, 0xA] - ldr r0, [r4] - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080BB440 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0xA - strh r1, [r0, 0x10] - movs r1, 0x14 - b _080BB44C - .align 2, 0 -_080BB43C: .4byte gTasks -_080BB440: - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0xD - strh r1, [r0, 0x10] - movs r1, 0x1E -_080BB44C: - strh r1, [r0, 0x12] - adds r1, r3, r5 - lsls r1, 3 - adds r1, r2 - strh r7, [r1, 0x8] - ldr r3, [r4] - ldrh r0, [r3, 0xA] - strh r0, [r1, 0xC] - mov r4, r8 - strh r4, [r1, 0xE] - ldrb r0, [r3, 0x2] - strh r0, [r1, 0x14] - ldr r2, _080BB490 @ =gUnknown_2023D44 - ldrb r0, [r3, 0x1] - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1, 0x16] - ldr r0, _080BB494 @ =sub_80BB4B8 - str r0, [r1] - movs r1, 0x4 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080BB498 - movs r0, 0x40 - negs r0, r0 - bl sub_8073B08 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xE8 - bl PlaySE12WithPanning - b _080BB4AC - .align 2, 0 -_080BB490: .4byte gUnknown_2023D44 -_080BB494: .4byte sub_80BB4B8 -_080BB498: - movs r0, 0x40 - negs r0, r0 - bl sub_8073B08 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xEE - bl PlaySE12WithPanning -_080BB4AC: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BB2A0 - - thumb_func_start sub_80BB4B8 -sub_80BB4B8: @ 80BB4B8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080BB4E4 @ =gUnknown_202297A - ldr r1, _080BB4E8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0xA] - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - movs r0, 0x26 - ldrsh r2, [r5, r0] - cmp r2, 0x1 - beq _080BB52E - cmp r2, 0x1 - bgt _080BB4EC - cmp r2, 0 - beq _080BB4F6 - b _080BB644 - .align 2, 0 -_080BB4E4: .4byte gUnknown_202297A -_080BB4E8: .4byte gTasks -_080BB4EC: - cmp r2, 0x2 - beq _080BB544 - cmp r2, 0x3 - beq _080BB582 - b _080BB644 -_080BB4F6: - ldrh r0, [r5, 0x1E] - adds r1, r0, 0x1 - strh r1, [r5, 0x1E] - lsls r0, 16 - cmp r0, 0 - bgt _080BB504 - b _080BB644 -_080BB504: - strh r2, [r5, 0x1E] - ldrh r1, [r5, 0x20] - adds r1, 0x1 - strh r1, [r5, 0x20] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - beq _080BB52C - b _080BB644 -_080BB52C: - b _080BB57A -_080BB52E: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r5, r2] - cmp r0, r1 - beq _080BB542 - b _080BB644 -_080BB542: - b _080BB57A -_080BB544: - ldrh r0, [r5, 0x1E] - adds r1, r0, 0x1 - strh r1, [r5, 0x1E] - lsls r0, 16 - cmp r0, 0 - ble _080BB644 - movs r0, 0 - strh r0, [r5, 0x1E] - ldrh r1, [r5, 0x20] - subs r1, 0x1 - strh r1, [r5, 0x20] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x20 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080BB644 - movs r0, 0 - bl sub_8073128 -_080BB57A: - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] - b _080BB644 -_080BB582: - ldr r0, _080BB64C @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080BB650 @ =gUnknown_2022986 - strh r1, [r0] - ldr r4, _080BB654 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BB5B2 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080BB5B2: - movs r0, 0 - bl GetGpuReg - adds r1, r0, 0 - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - eors r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080BB658 @ =gSprites - adds r0, r4 - bl DestroySprite - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080BB606 - movs r2, 0xE - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_080BB606: - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080BB632 - movs r2, 0x16 - ldrsh r0, [r5, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080BB632: - ldr r4, _080BB65C @ =gUnknown_20399B4 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080BB644: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB64C: .4byte gUnknown_2022984 -_080BB650: .4byte gUnknown_2022986 -_080BB654: .4byte 0x00003f3f -_080BB658: .4byte gSprites -_080BB65C: .4byte gUnknown_20399B4 - thumb_func_end sub_80BB4B8 - - thumb_func_start sub_80BB660 -sub_80BB660: @ 80BB660 - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8075CB8 - adds r6, r0, 0 - movs r1, 0 - bl sub_80BB790 - ldr r0, _080BB6C0 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - lsrs r0, r6, 16 - movs r5, 0 - strh r0, [r4, 0x24] - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - adds r6, r0, 0 - ldr r1, _080BB6C4 @ =0x0000ffff - ands r6, r1 - adds r0, r6, 0 - bl sub_80BB790 - strh r6, [r4, 0x26] - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - ldr r0, _080BB6C8 @ =sub_80BB6CC - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB6C0: .4byte gTasks -_080BB6C4: .4byte 0x0000ffff -_080BB6C8: .4byte sub_80BB6CC - thumb_func_end sub_80BB660 - - thumb_func_start sub_80BB6CC -sub_80BB6CC: @ 80BB6CC - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080BB6F0 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080BB710 - cmp r1, 0x1 - bgt _080BB6F4 - cmp r1, 0 - beq _080BB6FA - b _080BB78A - .align 2, 0 -_080BB6F0: .4byte gTasks -_080BB6F4: - cmp r1, 0x2 - beq _080BB784 - b _080BB78A -_080BB6FA: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080BB78A - strh r1, [r4, 0xA] - movs r0, 0x10 - strh r0, [r4, 0xC] - b _080BB778 -_080BB710: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080BB78A - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - movs r5, 0 - movs r6, 0x1 -_080BB72C: - movs r1, 0x26 - ldrsh r0, [r4, r1] - asrs r0, r5 - ands r0, r6 - cmp r0, 0 - beq _080BB746 - lsls r0, r5, 20 - lsrs r0, 16 - ldrb r2, [r4, 0xC] - movs r1, 0x10 - ldr r3, _080BB780 @ =0x0000ffff - bl BlendPalette -_080BB746: - movs r1, 0x24 - ldrsh r0, [r4, r1] - asrs r0, r5 - ands r0, r6 - cmp r0, 0 - beq _080BB766 - lsls r0, r5, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldrb r2, [r4, 0xC] - movs r1, 0x10 - movs r3, 0 - bl BlendPalette -_080BB766: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _080BB72C - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BB78A -_080BB778: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080BB78A - .align 2, 0 -_080BB780: .4byte 0x0000ffff -_080BB784: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080BB78A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BB6CC - - thumb_func_start sub_80BB790 -sub_80BB790: @ 80BB790 - push {r4-r6,lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - movs r2, 0 -_080BB79A: - movs r0, 0x1 - ands r0, r3 - lsrs r4, r3, 1 - adds r5, r2, 0x1 - cmp r0, 0 - beq _080BB7C6 - lsls r0, r2, 20 - lsrs r2, r0, 16 - adds r0, r2, 0 - adds r0, 0x10 - cmp r2, r0 - bge _080BB7C6 - ldr r1, _080BB7D8 @ =gPlttBufferFaded - adds r3, r0, 0 -_080BB7B6: - lsls r0, r2, 1 - adds r0, r1 - strh r6, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - blt _080BB7B6 -_080BB7C6: - adds r3, r4, 0 - lsls r0, r5, 16 - lsrs r2, r0, 16 - cmp r2, 0x1F - bls _080BB79A - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB7D8: .4byte gPlttBufferFaded - thumb_func_end sub_80BB790 - - thumb_func_start sub_80BB7DC -sub_80BB7DC: @ 80BB7DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - movs r2, 0 - ldr r0, _080BB824 @ =gUnknown_2037F1A - ldrb r3, [r0] - movs r5, 0x1 -_080BB7EC: - cmp r3, r2 - beq _080BB7FA - adds r1, r2, 0 - adds r1, 0x10 - adds r0, r5, 0 - lsls r0, r1 - orrs r4, r0 -_080BB7FA: - adds r2, 0x1 - cmp r2, 0x3 - bls _080BB7EC - movs r2, 0x5 - ldr r0, _080BB828 @ =gUnknown_2037F02 - adds r1, r0, 0 - adds r1, 0x8 -_080BB808: - ldrh r0, [r1] - strh r0, [r1, 0x2] - subs r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080BB808 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80BAA4C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB824: .4byte gUnknown_2037F1A -_080BB828: .4byte gUnknown_2037F02 - thumb_func_end sub_80BB7DC - - thumb_func_start sub_80BB82C -sub_80BB82C: @ 80BB82C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl sub_8075458 - ldr r0, _080BB894 @ =sub_80BB8A4 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080BB898 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080BB868 - ldr r0, _080BB89C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080BB868 - ldrh r0, [r4] - negs r0, r0 - strh r0, [r4] - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] -_080BB868: - ldr r0, _080BB8A0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r2, _080BB898 @ =gUnknown_2037F02 - ldrh r0, [r2] - strh r0, [r1, 0xA] - ldrh r0, [r2, 0x2] - strh r0, [r1, 0xC] - ldrh r0, [r2, 0x6] - strh r0, [r1, 0xE] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - adds r0, r6, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB894: .4byte sub_80BB8A4 -_080BB898: .4byte gUnknown_2037F02 -_080BB89C: .4byte gUnknown_2037F1A -_080BB8A0: .4byte gTasks - thumb_func_end sub_80BB82C - - thumb_func_start sub_80BB8A4 -sub_80BB8A4: @ 80BB8A4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080BB910 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r3, [r1, 0xA] - ldrh r0, [r1, 0x1C] - adds r3, r0 - movs r4, 0 - mov r12, r4 - strh r3, [r1, 0x1C] - ldrh r2, [r1, 0xC] - ldrh r7, [r1, 0x1E] - adds r2, r7 - strh r2, [r1, 0x1E] - ldr r6, _080BB914 @ =gUnknown_2022980 - lsls r0, r3, 16 - asrs r0, 24 - ldrh r4, [r6] - adds r0, r4 - strh r0, [r6] - ldr r4, _080BB918 @ =gUnknown_2022982 - lsls r0, r2, 16 - asrs r0, 24 - ldrh r7, [r4] - adds r0, r7 - strh r0, [r4] - movs r0, 0xFF - ands r3, r0 - strh r3, [r1, 0x1C] - ands r2, r0 - strh r2, [r1, 0x1E] - ldr r0, _080BB91C @ =gUnknown_2037F02 - movs r3, 0xE - ldrsh r2, [r0, r3] - movs r7, 0xE - ldrsh r0, [r1, r7] - cmp r2, r0 - bne _080BB90A - mov r0, r12 - strh r0, [r6] - strh r0, [r4] - movs r0, 0x1 - bl sub_8075458 - adds r0, r5, 0 - bl DestroyTask -_080BB90A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BB910: .4byte gTasks -_080BB914: .4byte gUnknown_2022980 -_080BB918: .4byte gUnknown_2022982 -_080BB91C: .4byte gUnknown_2037F02 - thumb_func_end sub_80BB8A4 - - thumb_func_start sub_80BB920 -sub_80BB920: @ 80BB920 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080BB944 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - ldr r1, _080BB948 @ =gUnknown_2037F02 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xE] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB944: .4byte gUnknown_2037F1A -_080BB948: .4byte gUnknown_2037F02 - thumb_func_end sub_80BB920 - - thumb_func_start sub_80BB94C -sub_80BB94C: @ 80BB94C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080BB970 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - ldr r1, _080BB974 @ =gUnknown_2037F02 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xE] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB970: .4byte gUnknown_2037F1B -_080BB974: .4byte gUnknown_2037F02 - thumb_func_end sub_80BB94C - - thumb_func_start sub_80BB978 -sub_80BB978: @ 80BB978 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r5, _080BB9A4 @ =gUnknown_2037F02 - movs r4, 0 - ldr r0, _080BB9A8 @ =gUnknown_2037F1A - ldrb r2, [r0] - movs r0, 0x2 - ldr r1, _080BB9AC @ =gUnknown_2037F1B - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bne _080BB994 - movs r4, 0x1 -_080BB994: - strh r4, [r5, 0xE] - adds r0, r3, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BB9A4: .4byte gUnknown_2037F02 -_080BB9A8: .4byte gUnknown_2037F1A -_080BB9AC: .4byte gUnknown_2037F1B - thumb_func_end sub_80BB978 - - thumb_func_start sub_80BB9B0 -sub_80BB9B0: @ 80BB9B0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r6, _080BBA10 @ =gSprites -_080BB9BA: - ldr r0, _080BBA14 @ =gUnknown_2037F1A - ldrb r0, [r0] - cmp r4, r0 - beq _080BB9F8 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080BB9F8 - ldr r0, _080BBA18 @ =gUnknown_2023D44 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldr r1, _080BBA1C @ =gUnknown_2037F02 - adds r2, 0x3E - movs r0, 0x1 - ldrb r3, [r1] - ands r3, r0 - lsls r3, 2 - ldrb r0, [r2] - movs r7, 0x5 - negs r7, r7 - adds r1, r7, 0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_080BB9F8: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080BB9BA - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BBA10: .4byte gSprites -_080BBA14: .4byte gUnknown_2037F1A -_080BBA18: .4byte gUnknown_2023D44 -_080BBA1C: .4byte gUnknown_2037F02 - thumb_func_end sub_80BB9B0 - - thumb_func_start sub_80BBA20 -sub_80BBA20: @ 80BBA20 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - ldr r1, [sp, 0x44] - ldr r4, [sp, 0x48] - ldr r5, [sp, 0x4C] - ldr r6, [sp, 0x50] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x14] - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x18] - lsls r5, 24 - lsrs r5, 24 - str r5, [sp, 0x1C] - lsls r6, 24 - lsrs r6, 24 - mov r10, r6 - movs r0, 0 - str r0, [sp, 0x20] - movs r0, 0x2 - adds r6, r7, 0 - eors r6, r0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BBA82 - mov r1, r8 - cmp r1, 0 - beq _080BBA86 - adds r0, r6, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - bne _080BBA86 -_080BBA82: - movs r2, 0 - mov r8, r2 -_080BBA86: - ldr r0, _080BBB20 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080BBB24 @ =gUnknown_2022986 - strh r1, [r0] - ldr r1, _080BBB28 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080BBB2C @ =0x00003f3d - movs r0, 0x4A - bl SetGpuReg - movs r1, 0x80 - lsls r1, 8 - movs r0, 0 - bl SetGpuRegBits - ldr r1, _080BBB30 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0xA - bl GetGpuReg - add r4, sp, 0x10 - strh r0, [r4] - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - mov r2, sp - adds r2, 0x11 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2] - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BBAFC - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080BBAFC: - ldrh r1, [r4] - movs r0, 0xA - bl SetGpuReg - adds r0, r7, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080BBB3C - ldr r1, _080BBB34 @ =gBattlerPartyIndexes - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BBB38 @ =gEnemyParty - b _080BBB4A - .align 2, 0 -_080BBB20: .4byte gUnknown_2022984 -_080BBB24: .4byte gUnknown_2022986 -_080BBB28: .4byte 0x00003f3f -_080BBB2C: .4byte 0x00003f3d -_080BBB30: .4byte 0x00003f42 -_080BBB34: .4byte gBattlerPartyIndexes -_080BBB38: .4byte gEnemyParty -_080BBB3C: - ldr r1, _080BBC10 @ =gBattlerPartyIndexes - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BBC14 @ =gPlayerParty -_080BBB4A: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, _080BBC18 @ =gUnknown_2023D44 - adds r0, r7, r5 - ldrb r1, [r0] - adds r0, r7, 0 - adds r2, r4, 0 - bl sub_8076E34 - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, r8 - cmp r0, 0 - beq _080BBB80 - adds r0, r6, r5 - ldrb r1, [r0] - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_8076E34 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x20] -_080BBB80: - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, [sp, 0x58] - bl sub_807543C - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080BBBA8 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080BBBA8: - mov r0, sp - ldrb r0, [r0, 0x9] - mov r1, sp - ldrh r2, [r1, 0xA] - ldr r1, [sp, 0x54] - bl sub_80753B4 - mov r0, sp - ldrb r1, [r0, 0x8] - lsls r1, 4 - ldr r0, [sp, 0x5C] - movs r2, 0x20 - bl LoadCompressedPalette - ldr r0, _080BBC1C @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r0, _080BBC20 @ =gUnknown_202297A - strh r1, [r0] - ldr r1, _080BBC24 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - mov r1, sp - ldrh r1, [r1, 0x14] - strh r1, [r0, 0xA] - mov r2, sp - ldrh r2, [r2, 0x18] - strh r2, [r0, 0x10] - mov r1, r10 - strh r1, [r0, 0x12] - mov r2, sp - ldrh r2, [r2, 0x1C] - strh r2, [r0, 0x14] - strh r7, [r0, 0x8] - mov r1, r8 - strh r1, [r0, 0xC] - mov r2, sp - ldrh r2, [r2, 0x20] - strh r2, [r0, 0xE] - ldr r1, _080BBC28 @ =sub_80BBC2C - str r1, [r0] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BBC10: .4byte gBattlerPartyIndexes -_080BBC14: .4byte gPlayerParty -_080BBC18: .4byte gUnknown_2023D44 -_080BBC1C: .4byte gUnknown_2022978 -_080BBC20: .4byte gUnknown_202297A -_080BBC24: .4byte gTasks -_080BBC28: .4byte sub_80BBC2C - thumb_func_end sub_80BBA20 - - thumb_func_start sub_80BBC2C -sub_80BBC2C: @ 80BBC2C - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080BBC68 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r0, 0xA - ldrsh r2, [r3, r0] - adds r5, r1, 0 - cmp r2, 0 - bge _080BBC4A - negs r2, r2 -_080BBC4A: - ldrh r0, [r3, 0x22] - adds r4, r0, r2 - strh r4, [r3, 0x22] - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0 - bge _080BBC70 - ldr r2, _080BBC6C @ =gUnknown_202297A - lsls r1, r4, 16 - asrs r1, 24 - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - b _080BBC7C - .align 2, 0 -_080BBC68: .4byte gTasks -_080BBC6C: .4byte gUnknown_202297A -_080BBC70: - ldr r1, _080BBCA0 @ =gUnknown_202297A - lsls r0, r4, 16 - asrs r0, 24 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] -_080BBC7C: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r5 - ldrh r1, [r5, 0x22] - movs r0, 0xFF - ands r0, r1 - movs r2, 0 - strh r0, [r5, 0x22] - movs r3, 0x26 - ldrsh r0, [r5, r3] - cmp r0, 0x1 - beq _080BBCE6 - cmp r0, 0x1 - bgt _080BBCA4 - cmp r0, 0 - beq _080BBCAA - b _080BBDD8 - .align 2, 0 -_080BBCA0: .4byte gUnknown_202297A -_080BBCA4: - cmp r0, 0x2 - beq _080BBD00 - b _080BBDD8 -_080BBCAA: - ldrh r0, [r5, 0x1E] - adds r1, r0, 0x1 - strh r1, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x14 - ldrsh r1, [r5, r3] - cmp r0, r1 - bge _080BBCBE - b _080BBDD8 -_080BBCBE: - strh r2, [r5, 0x1E] - ldrh r1, [r5, 0x20] - adds r1, 0x1 - strh r1, [r5, 0x20] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x20 - ldrsh r1, [r5, r0] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _080BBDD8 - b _080BBCF8 -_080BBCE6: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r5, r3] - cmp r0, r1 - bne _080BBDD8 -_080BBCF8: - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] - b _080BBDD8 -_080BBD00: - ldrh r0, [r5, 0x1E] - adds r1, r0, 0x1 - strh r1, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x14 - ldrsh r1, [r5, r3] - cmp r0, r1 - blt _080BBDD8 - strh r2, [r5, 0x1E] - ldrh r1, [r5, 0x20] - subs r1, 0x1 - strh r1, [r5, 0x20] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x20 - ldrsh r4, [r5, r0] - cmp r4, 0 - bne _080BBDD8 - movs r0, 0 - bl sub_8073128 - ldr r0, _080BBDE0 @ =gUnknown_2022984 - strh r4, [r0] - ldr r0, _080BBDE4 @ =gUnknown_2022986 - strh r4, [r0] - ldr r4, _080BBDE8 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BBD7E - movs r0, 0xA - bl GetGpuReg - mov r1, sp - strh r0, [r1] - mov r2, sp - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] - mov r0, sp - ldrh r1, [r0] - movs r0, 0xA - bl SetGpuReg -_080BBD7E: - movs r0, 0 - bl GetGpuReg - adds r1, r0, 0 - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - eors r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r3, 0x8 - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080BBDEC @ =gSprites - adds r0, r4 - bl DestroySprite - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080BBDD2 - movs r2, 0xE - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_080BBDD2: - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080BBDD8: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BBDE0: .4byte gUnknown_2022984 -_080BBDE4: .4byte gUnknown_2022986 -_080BBDE8: .4byte 0x00003f3f -_080BBDEC: .4byte gSprites - thumb_func_end sub_80BBC2C - - thumb_func_start sub_80BBDF0 -sub_80BBDF0: @ 80BBDF0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BBE08 @ =gUnknown_2037F02 - ldr r1, _080BBE0C @ =gUnknown_2022B50 - ldrb r1, [r1] - strh r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080BBE08: .4byte gUnknown_2037F02 -_080BBE0C: .4byte gUnknown_2022B50 - thumb_func_end sub_80BBDF0 - - thumb_func_start sub_80BBE10 -sub_80BBE10: @ 80BBE10 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x80 - lsls r0, 6 - bl AllocZeroed - ldr r1, _080BBE38 @ =gMonSpritesGfxPtr - ldr r1, [r1] - movs r2, 0xBE - lsls r2, 1 - adds r1, r2 - str r0, [r1] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BBE38: .4byte gMonSpritesGfxPtr - thumb_func_end sub_80BBE10 - - thumb_func_start sub_80BBE3C -sub_80BBE3C: @ 80BBE3C - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r6, _080BBE68 @ =gMonSpritesGfxPtr - ldr r0, [r6] - movs r5, 0xBE - lsls r5, 1 - adds r0, r5 - ldr r0, [r0] - bl Free - ldr r0, [r6] - adds r0, r5 - movs r1, 0 - str r1, [r0] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BBE68: .4byte gMonSpritesGfxPtr - thumb_func_end sub_80BBE3C - - thumb_func_start sub_80BBE6C -sub_80BBE6C: @ 80BBE6C - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080BBEAC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080BBEB0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BBEC8 - movs r2, 0x1 -_080BBE9E: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080BBE9E - b _080BBEC8 - .align 2, 0 -_080BBEAC: .4byte gUnknown_2037F02 -_080BBEB0: - cmp r0, 0x1 - bne _080BBEBC - ldr r0, _080BBEB8 @ =gUnknown_2037F1A - b _080BBEC2 - .align 2, 0 -_080BBEB8: .4byte gUnknown_2037F1A -_080BBEBC: - cmp r0, 0x2 - bne _080BBEC8 - ldr r0, _080BBEF8 @ =gUnknown_2037F1B -_080BBEC2: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080BBEC8: - ldr r0, _080BBEFC @ =gMonSpritesGfxPtr - ldr r1, [r0] - ldr r0, _080BBF00 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r0, [r0, r2] - movs r2, 0xBE - lsls r2, 1 - adds r1, r2 - ldr r1, [r1] - lsls r0, 5 - adds r0, r1 - lsls r1, r4, 5 - ldr r2, _080BBF04 @ =gPlttBufferUnfaded - adds r1, r2 - movs r2, 0x20 - bl memcpy - adds r0, r5, 0 - bl DestroyAnimVisualTask - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BBEF8: .4byte gUnknown_2037F1B -_080BBEFC: .4byte gMonSpritesGfxPtr -_080BBF00: .4byte gUnknown_2037F02 -_080BBF04: .4byte gPlttBufferUnfaded - thumb_func_end sub_80BBE6C - - thumb_func_start sub_80BBF08 -sub_80BBF08: @ 80BBF08 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080BBF48 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080BBF4C - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BBF64 - movs r2, 0x1 -_080BBF3A: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080BBF3A - b _080BBF64 - .align 2, 0 -_080BBF48: .4byte gUnknown_2037F02 -_080BBF4C: - cmp r0, 0x1 - bne _080BBF58 - ldr r0, _080BBF54 @ =gUnknown_2037F1A - b _080BBF5E - .align 2, 0 -_080BBF54: .4byte gUnknown_2037F1A -_080BBF58: - cmp r0, 0x2 - bne _080BBF64 - ldr r0, _080BBF94 @ =gUnknown_2037F1B -_080BBF5E: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080BBF64: - lsls r0, r4, 5 - ldr r1, _080BBF98 @ =gPlttBufferUnfaded - adds r0, r1 - ldr r1, _080BBF9C @ =gMonSpritesGfxPtr - ldr r2, [r1] - ldr r1, _080BBFA0 @ =gUnknown_2037F02 - movs r3, 0x2 - ldrsh r1, [r1, r3] - movs r3, 0xBE - lsls r3, 1 - adds r2, r3 - ldr r2, [r2] - lsls r1, 5 - adds r1, r2 - movs r2, 0x20 - bl memcpy - adds r0, r5, 0 - bl DestroyAnimVisualTask - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BBF94: .4byte gUnknown_2037F1B -_080BBF98: .4byte gPlttBufferUnfaded -_080BBF9C: .4byte gMonSpritesGfxPtr -_080BBFA0: .4byte gUnknown_2037F02 - thumb_func_end sub_80BBF08 - - thumb_func_start sub_80BBFA4 -sub_80BBFA4: @ 80BBFA4 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080BBFE4 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080BBFE8 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BC000 - movs r2, 0x1 -_080BBFD6: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080BBFD6 - b _080BC000 - .align 2, 0 -_080BBFE4: .4byte gUnknown_2037F02 -_080BBFE8: - cmp r0, 0x1 - bne _080BBFF4 - ldr r0, _080BBFF0 @ =gUnknown_2037F1A - b _080BBFFA - .align 2, 0 -_080BBFF0: .4byte gUnknown_2037F1A -_080BBFF4: - cmp r0, 0x2 - bne _080BC000 - ldr r0, _080BC020 @ =gUnknown_2037F1B -_080BBFFA: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080BC000: - lsls r1, r4, 5 - ldr r0, _080BC024 @ =gPlttBufferUnfaded - adds r0, r1, r0 - ldr r2, _080BC028 @ =gPlttBufferFaded - adds r1, r2 - movs r2, 0x20 - bl memcpy - adds r0, r5, 0 - bl DestroyAnimVisualTask - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC020: .4byte gUnknown_2037F1B -_080BC024: .4byte gPlttBufferUnfaded -_080BC028: .4byte gPlttBufferFaded - thumb_func_end sub_80BBFA4 - - thumb_func_start sub_80BC02C -sub_80BC02C: @ 80BC02C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8073788 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080BC04C - ldr r1, _080BC048 @ =gUnknown_2037F02 - movs r0, 0x1 - strh r0, [r1, 0xE] - b _080BC050 - .align 2, 0 -_080BC048: .4byte gUnknown_2037F02 -_080BC04C: - ldr r0, _080BC05C @ =gUnknown_2037F02 - strh r1, [r0, 0xE] -_080BC050: - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC05C: .4byte gUnknown_2037F02 - thumb_func_end sub_80BC02C - - thumb_func_start sub_80BC060 -sub_80BC060: @ 80BC060 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BC080 @ =gUnknown_2037F1A - ldr r1, _080BC084 @ =gBattlerTarget - ldrb r1, [r1] - strb r1, [r2] - ldr r2, _080BC088 @ =gUnknown_2037F1B - ldr r1, _080BC08C @ =gUnknown_2023D6E - ldrb r1, [r1] - strb r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080BC080: .4byte gUnknown_2037F1A -_080BC084: .4byte gBattlerTarget -_080BC088: .4byte gUnknown_2037F1B -_080BC08C: .4byte gUnknown_2023D6E - thumb_func_end sub_80BC060 - - thumb_func_start sub_80BC090 -sub_80BC090: @ 80BC090 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080BC0B8 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, 0 - ldr r0, _080BC0BC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080BC0C4 - ldr r1, _080BC0C0 @ =gUnknown_2037F02 - movs r0, 0x1 - b _080BC0C8 - .align 2, 0 -_080BC0B8: .4byte gUnknown_2037F1A -_080BC0BC: .4byte gUnknown_2037F1B -_080BC0C0: .4byte gUnknown_2037F02 -_080BC0C4: - ldr r1, _080BC0D8 @ =gUnknown_2037F02 - movs r0, 0 -_080BC0C8: - strh r0, [r1, 0xE] - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC0D8: .4byte gUnknown_2037F02 - thumb_func_end sub_80BC090 - - thumb_func_start sub_80BC0DC -sub_80BC0DC: @ 80BC0DC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BC0F4 @ =gUnknown_2037F1B - ldr r1, _080BC0F8 @ =gBattlerTarget - ldrb r1, [r1] - strb r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080BC0F4: .4byte gUnknown_2037F1B -_080BC0F8: .4byte gBattlerTarget - thumb_func_end sub_80BC0DC - - thumb_func_start sub_80BC0FC -sub_80BC0FC: @ 80BC0FC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BC11C @ =gUnknown_2037F1A - ldr r1, _080BC120 @ =sBattler_AI - ldrb r1, [r1] - strb r1, [r2] - ldr r2, _080BC124 @ =gUnknown_2037F1B - ldr r1, _080BC128 @ =gUnknown_2023D6E - ldrb r1, [r1] - strb r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080BC11C: .4byte gUnknown_2037F1A -_080BC120: .4byte sBattler_AI -_080BC124: .4byte gUnknown_2037F1B -_080BC128: .4byte gUnknown_2023D6E - thumb_func_end sub_80BC0FC - - thumb_func_start sub_80BC12C -sub_80BC12C: @ 80BC12C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080BC144 - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080BC180 -_080BC144: - ldr r0, _080BC188 @ =gTasks - lsls r3, r4, 2 - adds r3, r4 - lsls r3, 3 - adds r3, r0 - ldr r0, _080BC18C @ =gUnknown_2024018 - ldr r4, [r0] - ldr r2, _080BC190 @ =gUnknown_2037F1A - ldrb r0, [r2] - ldr r1, [r4] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 31 - lsrs r0, 31 - strh r0, [r3, 0x8] - ldrb r1, [r2] - ldr r0, [r4] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r0, _080BC194 @ =sub_80BC19C - str r0, [r3] - ldr r1, _080BC198 @ =gUnknown_2037EE2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080BC180: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC188: .4byte gTasks -_080BC18C: .4byte gUnknown_2024018 -_080BC190: .4byte gUnknown_2037F1A -_080BC194: .4byte sub_80BC19C -_080BC198: .4byte gUnknown_2037EE2 - thumb_func_end sub_80BC12C - - thumb_func_start sub_80BC19C -sub_80BC19C: @ 80BC19C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080BC1E8 @ =gUnknown_2037F02 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bne _080BC1E0 - ldr r0, _080BC1EC @ =gUnknown_2024018 - ldr r1, [r0] - ldr r0, _080BC1F0 @ =gUnknown_2037F1A - ldrb r3, [r0] - ldr r0, [r1] - lsls r3, 2 - adds r3, r0 - ldr r1, _080BC1F4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r1, 0x1 - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, 0 - bl DestroyTask -_080BC1E0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC1E8: .4byte gUnknown_2037F02 -_080BC1EC: .4byte gUnknown_2024018 -_080BC1F0: .4byte gUnknown_2037F1A -_080BC1F4: .4byte gTasks - thumb_func_end sub_80BC19C - - thumb_func_start SetAnimBgAttribute -SetAnimBgAttribute: @ 80BC1F8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - cmp r6, 0x3 - bls _080BC20C - b _080BC2FE -_080BC20C: - ldr r0, _080BC228 @ =gUnknown_83E7CCA - adds r0, r6, r0 - ldrb r0, [r0] - bl GetGpuReg - ldr r1, _080BC22C @ =gUnknown_20399B8 - strh r0, [r1] - cmp r5, 0x6 - bhi _080BC2F0 - lsls r0, r5, 2 - ldr r1, _080BC230 @ =_080BC234 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BC228: .4byte gUnknown_83E7CCA -_080BC22C: .4byte gUnknown_20399B8 -_080BC230: .4byte _080BC234 - .align 2, 0 -_080BC234: - .4byte _080BC250 - .4byte _080BC264 - .4byte _080BC27C - .4byte _080BC294 - .4byte _080BC2AC - .4byte _080BC2C8 - .4byte _080BC2DC -_080BC250: - ldr r2, _080BC260 @ =gUnknown_20399B8 - lsls r3, r4, 6 - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x1] - b _080BC2F0 - .align 2, 0 -_080BC260: .4byte gUnknown_20399B8 -_080BC264: - ldr r3, _080BC278 @ =gUnknown_20399B8 - movs r0, 0x1 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 5 - ldrb r2, [r3, 0x1] - movs r0, 0x21 - negs r0, r0 - b _080BC2EA - .align 2, 0 -_080BC278: .4byte gUnknown_20399B8 -_080BC27C: - ldr r3, _080BC290 @ =gUnknown_20399B8 - movs r0, 0x1 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x41 - negs r0, r0 - b _080BC2BA - .align 2, 0 -_080BC290: .4byte gUnknown_20399B8 -_080BC294: - ldr r3, _080BC2A8 @ =gUnknown_20399B8 - movs r0, 0x3 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0xD - negs r0, r0 - b _080BC2BA - .align 2, 0 -_080BC2A8: .4byte gUnknown_20399B8 -_080BC2AC: - ldr r3, _080BC2C4 @ =gUnknown_20399B8 - movs r0, 0x3 - adds r1, r4, 0 - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x4 - negs r0, r0 -_080BC2BA: - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080BC2F0 - .align 2, 0 -_080BC2C4: .4byte gUnknown_20399B8 -_080BC2C8: - ldr r2, _080BC2D8 @ =gUnknown_20399B8 - lsls r3, r4, 7 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - b _080BC2F0 - .align 2, 0 -_080BC2D8: .4byte gUnknown_20399B8 -_080BC2DC: - ldr r3, _080BC304 @ =gUnknown_20399B8 - movs r0, 0x1F - adds r1, r4, 0 - ands r1, r0 - ldrb r2, [r3, 0x1] - movs r0, 0x20 - negs r0, r0 -_080BC2EA: - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x1] -_080BC2F0: - ldr r0, _080BC308 @ =gUnknown_83E7CCA - adds r0, r6, r0 - ldrb r0, [r0] - ldr r1, _080BC304 @ =gUnknown_20399B8 - ldrh r1, [r1] - bl SetGpuReg -_080BC2FE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BC304: .4byte gUnknown_20399B8 -_080BC308: .4byte gUnknown_83E7CCA - thumb_func_end SetAnimBgAttribute - - thumb_func_start sub_80BC30C -sub_80BC30C: @ 80BC30C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r2, 0x3 - bhi _080BC394 - ldr r0, _080BC338 @ =gUnknown_83E7CCE - adds r0, r2, r0 - ldrb r0, [r0] - bl GetGpuReg - mov r1, sp - strh r0, [r1] - cmp r4, 0x6 - bhi _080BC394 - lsls r0, r4, 2 - ldr r1, _080BC33C @ =_080BC340 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BC338: .4byte gUnknown_83E7CCE -_080BC33C: .4byte _080BC340 - .align 2, 0 -_080BC340: - .4byte _080BC35C - .4byte _080BC364 - .4byte _080BC36C - .4byte _080BC374 - .4byte _080BC37C - .4byte _080BC384 - .4byte _080BC38C -_080BC35C: - ldr r0, [sp] - lsls r0, 16 - lsrs r0, 30 - b _080BC396 -_080BC364: - ldr r0, [sp] - lsls r0, 18 - lsrs r0, 31 - b _080BC396 -_080BC36C: - ldr r0, [sp] - lsls r0, 25 - lsrs r0, 31 - b _080BC396 -_080BC374: - ldr r0, [sp] - lsls r0, 28 - lsrs r0, 30 - b _080BC396 -_080BC37C: - ldr r0, [sp] - lsls r0, 30 - lsrs r0, 30 - b _080BC396 -_080BC384: - ldr r0, [sp] - lsls r0, 24 - lsrs r0, 31 - b _080BC396 -_080BC38C: - ldr r0, [sp] - lsls r0, 19 - lsrs r0, 27 - b _080BC396 -_080BC394: - movs r0, 0 -_080BC396: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BC30C - - thumb_func_start sub_80BC3A0 -sub_80BC3A0: @ 80BC3A0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080BC3B8 @ =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BC3C0 - ldr r0, _080BC3BC @ =sub_80BCC4C - b _080BC3E8 - .align 2, 0 -_080BC3B8: .4byte gBattleTypeFlags -_080BC3BC: .4byte sub_80BCC4C -_080BC3C0: - movs r0, 0x80 - lsls r0, 5 - ands r1, r0 - cmp r1, 0 - beq _080BC3E0 - ldr r0, _080BC3D8 @ =gGameVersion - ldrb r0, [r0] - cmp r0, 0x2 - beq _080BC3E0 - movs r4, 0x3 - ldr r0, _080BC3DC @ =task00_battle_intro_80BC6C8 - b _080BC3E8 - .align 2, 0 -_080BC3D8: .4byte gGameVersion -_080BC3DC: .4byte task00_battle_intro_80BC6C8 -_080BC3E0: - ldr r1, _080BC414 @ =gUnknown_83E7CD4 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] -_080BC3E8: - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080BC418 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x8] - strh r4, [r1, 0xA] - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - strh r0, [r1, 0x10] - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC414: .4byte gUnknown_83E7CD4 -_080BC418: .4byte gTasks - thumb_func_end sub_80BC3A0 - - thumb_func_start sub_80BC41C -sub_80BC41C: @ 80BC41C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r0, _080BC468 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r0, _080BC46C @ =gUnknown_202297A - strh r1, [r0] - ldr r0, _080BC470 @ =gUnknown_202297C - strh r1, [r0] - ldr r0, _080BC474 @ =gUnknown_202297E - strh r1, [r0] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r4, _080BC478 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC468: .4byte gUnknown_2022978 -_080BC46C: .4byte gUnknown_202297A -_080BC470: .4byte gUnknown_202297C -_080BC474: .4byte gUnknown_202297E -_080BC478: .4byte 0x00003f3f - thumb_func_end sub_80BC41C - - thumb_func_start task_battle_intro_80BC47C -task_battle_intro_80BC47C: @ 80BC47C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080BC4B4 @ =gUnknown_2022978 - ldrh r0, [r1] - adds r0, 0x6 - strh r0, [r1] - ldr r1, _080BC4B8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, 0x4 - bls _080BC4A8 - b _080BC6BA -_080BC4A8: - lsls r0, 2 - ldr r1, _080BC4BC @ =_080BC4C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BC4B4: .4byte gUnknown_2022978 -_080BC4B8: .4byte gTasks -_080BC4BC: .4byte _080BC4C0 - .align 2, 0 -_080BC4C0: - .4byte _080BC4D4 - .4byte _080BC504 - .4byte _080BC52C - .4byte _080BC574 - .4byte _080BC6B4 -_080BC4D4: - ldr r0, _080BC4EC @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BC4F0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - movs r1, 0x10 - b _080BC4FA - .align 2, 0 -_080BC4EC: .4byte gBattleTypeFlags -_080BC4F0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - movs r1, 0x1 -_080BC4FA: - strh r1, [r0, 0xC] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080BC6BA -_080BC504: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - mov r3, r8 - adds r1, r0, r3 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080BC51C - b _080BC6BA -_080BC51C: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - b _080BC6BA -_080BC52C: - ldr r1, _080BC568 @ =gUnknown_2022986 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080BC544 - b _080BC6BA -_080BC544: - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - ldr r2, _080BC56C @ =gUnknown_2023F4C - ldrh r1, [r2] - ldr r0, _080BC570 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080BC6BA - .align 2, 0 -_080BC568: .4byte gUnknown_2022986 -_080BC56C: .4byte gUnknown_2023F4C -_080BC570: .4byte 0x0000fffe -_080BC574: - lsls r0, r4, 2 - adds r1, r0, r4 - lsls r1, 3 - mov r5, r8 - adds r2, r1, r5 - ldrh r3, [r2, 0xE] - movs r5, 0xE - ldrsh r1, [r2, r5] - mov r12, r0 - cmp r1, 0 - beq _080BC590 - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - b _080BC5BE -_080BC590: - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080BC5B0 - ldr r2, _080BC5A8 @ =gUnknown_202297A - ldrh r1, [r2] - ldr r0, _080BC5AC @ =0x0000ffb0 - cmp r1, r0 - beq _080BC5BE - subs r0, r1, 0x2 - b _080BC5BC - .align 2, 0 -_080BC5A8: .4byte gUnknown_202297A -_080BC5AC: .4byte 0x0000ffb0 -_080BC5B0: - ldr r2, _080BC690 @ =gUnknown_202297A - ldrh r1, [r2] - ldr r0, _080BC694 @ =0x0000ffc8 - cmp r1, r0 - beq _080BC5BE - subs r0, r1, 0x1 -_080BC5BC: - strh r0, [r2] -_080BC5BE: - ldr r2, _080BC698 @ =gUnknown_2022986 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080BC5D2 - ldr r3, _080BC69C @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080BC5D2: - mov r5, r12 - adds r0, r5, r4 - lsls r0, 3 - mov r2, r8 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BC5EA - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080BC5EA: - movs r3, 0 - ldr r5, _080BC6A0 @ =gUnknown_2039600 - mov r9, r5 - ldr r7, _080BC6A4 @ =gUnknown_2038700 - mov r6, r9 - adds r5, r1, 0 -_080BC5F6: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080BC5F6 - cmp r3, 0x9F - bgt _080BC63A - ldr r7, _080BC6A4 @ =gUnknown_2038700 - ldr r6, _080BC6A0 @ =gUnknown_2039600 - ldr r1, _080BC6A8 @ =gTasks - mov r2, r12 - adds r0, r2, r4 - lsls r0, 3 - adds r5, r0, r1 -_080BC620: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080BC620 -_080BC63A: - mov r3, r12 - adds r0, r3, r4 - lsls r0, 3 - mov r5, r8 - adds r1, r0, r5 - movs r0, 0xC - ldrsh r2, [r1, r0] - cmp r2, 0 - bne _080BC6BA - movs r0, 0x3 - mov r3, r9 - strb r0, [r3, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080BC6AC @ =0x0600e000 - ldr r2, _080BC6B0 @ =0x05000200 - mov r0, sp - bl CpuSet - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r1, 0x9C - lsls r1, 8 - movs r0, 0xA - bl SetGpuReg - movs r1, 0xBC - lsls r1, 7 - movs r0, 0xC - bl SetGpuReg - b _080BC6BA - .align 2, 0 -_080BC690: .4byte gUnknown_202297A -_080BC694: .4byte 0x0000ffc8 -_080BC698: .4byte gUnknown_2022986 -_080BC69C: .4byte 0xfffffc04 -_080BC6A0: .4byte gUnknown_2039600 -_080BC6A4: .4byte gUnknown_2038700 -_080BC6A8: .4byte gTasks -_080BC6AC: .4byte 0x0600e000 -_080BC6B0: .4byte 0x05000200 -_080BC6B4: - adds r0, r4, 0 - bl sub_80BC41C -_080BC6BA: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end task_battle_intro_80BC47C - - thumb_func_start task00_battle_intro_80BC6C8 -task00_battle_intro_80BC6C8: @ 80BC6C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080BC6F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0xA - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x3 - beq _080BC708 - cmp r0, 0x3 - bgt _080BC6F8 - cmp r0, 0x2 - beq _080BC6FC - b _080BC710 - .align 2, 0 -_080BC6F4: .4byte gTasks -_080BC6F8: - cmp r0, 0x4 - bne _080BC710 -_080BC6FC: - ldr r1, _080BC704 @ =gUnknown_2022978 - ldrh r0, [r1] - adds r0, 0x8 - b _080BC70E - .align 2, 0 -_080BC704: .4byte gUnknown_2022978 -_080BC708: - ldr r1, _080BC74C @ =gUnknown_2022978 - ldrh r0, [r1] - adds r0, 0x6 -_080BC70E: - strh r0, [r1] -_080BC710: - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - adds r4, r1, r2 - movs r3, 0xA - ldrsh r1, [r4, r3] - adds r6, r0, 0 - cmp r1, 0x4 - bne _080BC774 - ldr r7, _080BC750 @ =gUnknown_202297A - ldrh r0, [r4, 0x14] - bl Cos2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080BC736 - ldr r1, _080BC754 @ =0x000001ff - adds r0, r1 -_080BC736: - asrs r0, 9 - subs r0, 0x8 - strh r0, [r7] - ldrh r1, [r4, 0x14] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0xB3 - bgt _080BC758 - adds r0, r1, 0x4 - b _080BC75A - .align 2, 0 -_080BC74C: .4byte gUnknown_2022978 -_080BC750: .4byte gUnknown_202297A -_080BC754: .4byte 0x000001ff -_080BC758: - adds r0, r1, 0x6 -_080BC75A: - strh r0, [r4, 0x14] - ldr r2, _080BC790 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r3, r0, r2 - movs r0, 0x14 - ldrsh r1, [r3, r0] - movs r0, 0xB4 - lsls r0, 1 - cmp r1, r0 - bne _080BC774 - movs r0, 0 - strh r0, [r3, 0x14] -_080BC774: - adds r0, r6, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bls _080BC784 - b _080BC9AA -_080BC784: - lsls r0, 2 - ldr r1, _080BC794 @ =_080BC798 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BC790: .4byte gTasks -_080BC794: .4byte _080BC798 - .align 2, 0 -_080BC798: - .4byte _080BC7AC - .4byte _080BC7DC - .4byte _080BC808 - .4byte _080BC858 - .4byte _080BC9A4 -_080BC7AC: - ldr r1, _080BC7C8 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x10 - strh r3, [r2, 0x10] - ldr r0, _080BC7CC @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BC7D0 - strh r3, [r2, 0xC] - b _080BC7D4 - .align 2, 0 -_080BC7C8: .4byte gTasks -_080BC7CC: .4byte gBattleTypeFlags -_080BC7D0: - movs r0, 0x1 - strh r0, [r2, 0xC] -_080BC7D4: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080BC9AA -_080BC7DC: - ldr r0, _080BC804 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080BC7F2 - b _080BC9AA -_080BC7F2: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - b _080BC9AA - .align 2, 0 -_080BC804: .4byte gTasks -_080BC808: - ldr r1, _080BC848 @ =gUnknown_2022986 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080BC820 - b _080BC9AA -_080BC820: - ldr r0, _080BC84C @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x12] - ldr r2, _080BC850 @ =gUnknown_2023F4C - ldrh r1, [r2] - ldr r0, _080BC854 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080BC9AA - .align 2, 0 -_080BC848: .4byte gUnknown_2022986 -_080BC84C: .4byte gTasks -_080BC850: .4byte gUnknown_2023F4C -_080BC854: .4byte 0x0000fffe -_080BC858: - ldr r0, _080BC890 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xE] - movs r3, 0xE - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BC898 - subs r0, r2, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080BC8B8 - ldr r1, _080BC894 @ =0x00001842 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0xF - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - b _080BC8B8 - .align 2, 0 -_080BC890: .4byte gTasks -_080BC894: .4byte 0x00001842 -_080BC898: - ldrh r2, [r1, 0x10] - movs r0, 0x1F - ands r0, r2 - cmp r0, 0 - beq _080BC8B8 - ldrh r0, [r1, 0x12] - subs r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080BC8B8 - adds r0, r2, 0 - adds r0, 0xFF - strh r0, [r1, 0x10] - movs r0, 0x4 - strh r0, [r1, 0x12] -_080BC8B8: - ldr r2, _080BC988 @ =gUnknown_2022986 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080BC8CC - ldr r3, _080BC98C @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080BC8CC: - ldr r0, _080BC990 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BC8E2 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080BC8E2: - movs r3, 0 - ldr r0, _080BC994 @ =gUnknown_2039600 - mov r8, r0 - ldr r2, _080BC998 @ =gUnknown_2038700 - mov r12, r2 - mov r7, r8 - adds r4, r1, 0 -_080BC8F0: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080BC8F0 - cmp r3, 0x9F - bgt _080BC934 - ldr r0, _080BC998 @ =gUnknown_2038700 - mov r12, r0 - ldr r7, _080BC994 @ =gUnknown_2039600 - ldr r1, _080BC990 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r4, r0, r1 -_080BC91A: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080BC91A -_080BC934: - ldr r1, _080BC990 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0xC - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080BC9AA - movs r0, 0x3 - mov r3, r8 - strb r0, [r3, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080BC99C @ =0x0600e000 - ldr r2, _080BC9A0 @ =0x05000200 - mov r0, sp - bl CpuSet - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r1, 0x9C - lsls r1, 8 - movs r0, 0xA - bl SetGpuReg - movs r1, 0xBC - lsls r1, 7 - movs r0, 0xC - bl SetGpuReg - b _080BC9AA - .align 2, 0 -_080BC988: .4byte gUnknown_2022986 -_080BC98C: .4byte 0xfffffc04 -_080BC990: .4byte gTasks -_080BC994: .4byte gUnknown_2039600 -_080BC998: .4byte gUnknown_2038700 -_080BC99C: .4byte 0x0600e000 -_080BC9A0: .4byte 0x05000200 -_080BC9A4: - adds r0, r5, 0 - bl sub_80BC41C -_080BC9AA: - ldr r0, _080BC9D0 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - beq _080BC9C2 - ldrh r1, [r1, 0x10] - movs r0, 0x52 - bl SetGpuReg -_080BC9C2: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BC9D0: .4byte gTasks - thumb_func_end task00_battle_intro_80BC6C8 - - thumb_func_start task_battle_intro_anim -task_battle_intro_anim: @ 80BC9D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080BCA08 @ =gUnknown_2022978 - ldrh r0, [r1] - adds r0, 0x8 - strh r0, [r1] - ldr r1, _080BCA0C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x4 - bls _080BC9FE - b _080BCC22 -_080BC9FE: - lsls r0, 2 - ldr r1, _080BCA10 @ =_080BCA14 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BCA08: .4byte gUnknown_2022978 -_080BCA0C: .4byte gTasks -_080BCA10: .4byte _080BCA14 - .align 2, 0 -_080BCA14: - .4byte _080BCA28 - .4byte _080BCA7C - .4byte _080BCAA8 - .4byte _080BCAF8 - .4byte _080BCC1C -_080BCA28: - ldr r1, _080BCA60 @ =0x00001842 - movs r0, 0x50 - bl SetGpuReg - ldr r4, _080BCA64 @ =0x00000808 - movs r0, 0x52 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r1, _080BCA68 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - strh r4, [r2, 0x10] - ldr r0, _080BCA6C @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BCA70 - movs r0, 0x10 - b _080BCA72 - .align 2, 0 -_080BCA60: .4byte 0x00001842 -_080BCA64: .4byte 0x00000808 -_080BCA68: .4byte gTasks -_080BCA6C: .4byte gBattleTypeFlags -_080BCA70: - movs r0, 0x1 -_080BCA72: - strh r0, [r2, 0xC] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080BCC22 -_080BCA7C: - ldr r0, _080BCAA4 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080BCA94 - b _080BCC22 -_080BCA94: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - b _080BCC22 - .align 2, 0 -_080BCAA4: .4byte gTasks -_080BCAA8: - ldr r1, _080BCAE8 @ =gUnknown_2022986 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080BCAC0 - b _080BCC22 -_080BCAC0: - ldr r0, _080BCAEC @ =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] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x12] - ldr r2, _080BCAF0 @ =gUnknown_2023F4C - ldrh r1, [r2] - ldr r0, _080BCAF4 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080BCC22 - .align 2, 0 -_080BCAE8: .4byte gUnknown_2022986 -_080BCAEC: .4byte gTasks -_080BCAF0: .4byte gUnknown_2023F4C -_080BCAF4: .4byte 0x0000fffe -_080BCAF8: - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - adds r2, r1, r4 - ldrh r3, [r2, 0xE] - movs r6, 0xE - ldrsh r1, [r2, r6] - mov r12, r0 - cmp r1, 0 - beq _080BCB12 - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - b _080BCB32 -_080BCB12: - ldrh r1, [r2, 0x10] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - beq _080BCB32 - ldrh r0, [r2, 0x12] - subs r0, 0x1 - strh r0, [r2, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080BCB32 - adds r0, r1, 0 - adds r0, 0xFF - strh r0, [r2, 0x10] - movs r0, 0x6 - strh r0, [r2, 0x12] -_080BCB32: - ldr r2, _080BCC00 @ =gUnknown_2022986 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080BCB46 - ldr r3, _080BCC04 @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080BCB46: - mov r6, r12 - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r4 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BCB5C - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080BCB5C: - movs r3, 0 - ldr r6, _080BCC08 @ =gUnknown_2039600 - mov r8, r6 - ldr r7, _080BCC0C @ =gUnknown_2038700 - adds r4, r1, 0 -_080BCB66: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080BCB66 - cmp r3, 0x9F - bgt _080BCBAA - ldr r7, _080BCC0C @ =gUnknown_2038700 - ldr r6, _080BCC08 @ =gUnknown_2039600 - ldr r1, _080BCC10 @ =gTasks - mov r2, r12 - adds r0, r2, r5 - lsls r0, 3 - adds r4, r0, r1 -_080BCB90: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080BCB90 -_080BCBAA: - ldr r1, _080BCC10 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0xC - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080BCC22 - movs r0, 0x3 - mov r6, r8 - strb r0, [r6, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080BCC14 @ =0x0600e000 - ldr r2, _080BCC18 @ =0x05000200 - mov r0, sp - bl CpuSet - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r1, 0x9C - lsls r1, 8 - movs r0, 0xA - bl SetGpuReg - movs r1, 0xBC - lsls r1, 7 - movs r0, 0xC - bl SetGpuReg - b _080BCC22 - .align 2, 0 -_080BCC00: .4byte gUnknown_2022986 -_080BCC04: .4byte 0xfffffc04 -_080BCC08: .4byte gUnknown_2039600 -_080BCC0C: .4byte gUnknown_2038700 -_080BCC10: .4byte gTasks -_080BCC14: .4byte 0x0600e000 -_080BCC18: .4byte 0x05000200 -_080BCC1C: - adds r0, r5, 0 - bl sub_80BC41C -_080BCC22: - ldr r0, _080BCC48 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - beq _080BCC3C - ldrh r1, [r1, 0x10] - movs r0, 0x52 - bl SetGpuReg -_080BCC3C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCC48: .4byte gTasks - thumb_func_end task_battle_intro_anim - - thumb_func_start sub_80BCC4C -sub_80BCC4C: @ 80BCC4C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080BCC98 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0x1 - ble _080BCCC2 - movs r2, 0x10 - ldrsh r0, [r7, r2] - cmp r0, 0 - bne _080BCCC2 - ldr r2, _080BCC9C @ =gUnknown_2022978 - ldrh r1, [r2] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _080BCC8A - cmp r1, 0x4F - bhi _080BCCA4 -_080BCC8A: - adds r0, r1, 0x3 - strh r0, [r2] - ldr r1, _080BCCA0 @ =gUnknown_202297C - ldrh r0, [r1] - subs r0, 0x3 - strh r0, [r1] - b _080BCCC2 - .align 2, 0 -_080BCC98: .4byte gTasks -_080BCC9C: .4byte gUnknown_2022978 -_080BCCA0: .4byte gUnknown_202297C -_080BCCA4: - str r5, [sp] - ldr r1, _080BCCE4 @ =0x0600e000 - ldr r4, _080BCCE8 @ =0x05000200 - mov r0, sp - adds r2, r4, 0 - bl CpuSet - str r5, [sp, 0x4] - add r0, sp, 0x4 - ldr r1, _080BCCEC @ =0x0600f000 - adds r2, r4, 0 - bl CpuSet - movs r0, 0x1 - strh r0, [r7, 0x10] -_080BCCC2: - ldr r0, _080BCCF0 @ =gTasks - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r1, [r1, r3] - mov r9, r0 - adds r5, r2, 0 - cmp r1, 0x4 - bls _080BCCDA - b _080BCEE6 -_080BCCDA: - lsls r0, r1, 2 - ldr r1, _080BCCF4 @ =_080BCCF8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BCCE4: .4byte 0x0600e000 -_080BCCE8: .4byte 0x05000200 -_080BCCEC: .4byte 0x0600f000 -_080BCCF0: .4byte gTasks -_080BCCF4: .4byte _080BCCF8 - .align 2, 0 -_080BCCF8: - .4byte _080BCD0C - .4byte _080BCD1E - .4byte _080BCDC4 - .4byte _080BCE08 - .4byte _080BCEE0 -_080BCD0C: - adds r0, r5, r6 - lsls r0, 3 - add r0, r9 - movs r1, 0x20 - strh r1, [r0, 0xC] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080BCEE6 -_080BCD1E: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r9 - adds r1, r0, r2 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080BCD34 - b _080BCEE6 -_080BCD34: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r4, _080BCDB4 @ =gSprites - ldr r5, _080BCDB8 @ =gBattleStruct - ldr r0, [r5] - adds r0, 0x7D - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r3, [r1, 0x1] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - movs r3, 0x8 - mov r9, r3 - mov r3, r9 - orrs r0, r3 - strb r0, [r1, 0x1] - ldr r3, [r5] - adds r0, r3, 0 - adds r0, 0x7D - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - movs r1, 0x1C - adds r1, r4 - mov r8, r1 - add r0, r8 - ldr r6, _080BCDBC @ =sub_801182C - str r6, [r0] - adds r3, 0x7E - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - ands r2, r1 - mov r3, r9 - orrs r2, r3 - strb r2, [r0, 0x1] - ldr r0, [r5] - adds r0, 0x7E - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - str r6, [r0] - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - ldr r1, _080BCDC0 @ =0x00003f06 - movs r0, 0x4A - bl SetGpuReg - b _080BCEE6 - .align 2, 0 -_080BCDB4: .4byte gSprites -_080BCDB8: .4byte gBattleStruct -_080BCDBC: .4byte sub_801182C -_080BCDC0: .4byte 0x00003f06 -_080BCDC4: - ldr r1, _080BCDFC @ =gUnknown_2022986 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080BCDDC - b _080BCEE6 -_080BCDDC: - adds r1, r5, r6 - lsls r1, 3 - add r1, r9 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - ldr r2, _080BCE00 @ =gUnknown_2023F4C - ldrh r1, [r2] - ldr r0, _080BCE04 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080BCEE6 - .align 2, 0 -_080BCDFC: .4byte gUnknown_2022986 -_080BCE00: .4byte gUnknown_2023F4C -_080BCE04: .4byte 0x0000fffe -_080BCE08: - ldr r2, _080BCECC @ =gUnknown_2022986 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080BCE1C - ldr r3, _080BCED0 @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080BCE1C: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r9 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BCE32 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080BCE32: - movs r3, 0 - ldr r0, _080BCED4 @ =gUnknown_2039600 - mov r12, r0 - ldr r2, _080BCED8 @ =gUnknown_2038700 - mov r8, r2 - mov r7, r12 - adds r4, r1, 0 -_080BCE40: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r8 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080BCE40 - cmp r3, 0x9F - bgt _080BCE84 - ldr r0, _080BCED8 @ =gUnknown_2038700 - mov r8, r0 - ldr r7, _080BCED4 @ =gUnknown_2039600 - ldr r1, _080BCEDC @ =gTasks - adds r0, r5, r6 - lsls r0, 3 - adds r4, r0, r1 -_080BCE6A: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r8 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080BCE6A -_080BCE84: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r9 - adds r1, r0, r2 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080BCEE6 - movs r0, 0x3 - mov r2, r12 - strb r0, [r2, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r1, 0x9C - lsls r1, 8 - movs r0, 0xA - bl SetGpuReg - movs r1, 0xBC - lsls r1, 7 - movs r0, 0xC - bl SetGpuReg - b _080BCEE6 - .align 2, 0 -_080BCECC: .4byte gUnknown_2022986 -_080BCED0: .4byte 0xfffffc04 -_080BCED4: .4byte gUnknown_2039600 -_080BCED8: .4byte gUnknown_2038700 -_080BCEDC: .4byte gTasks -_080BCEE0: - adds r0, r6, 0 - bl sub_80BC41C -_080BCEE6: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BCC4C - - thumb_func_start sub_80BCEF4 -sub_80BCEF4: @ 80BCEF4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - str r0, [sp] - adds r6, r2, 0 - adds r4, r3, 0 - ldr r0, [sp, 0x24] - ldr r7, [sp, 0x28] - ldr r2, [sp, 0x2C] - mov r9, r2 - ldr r5, [sp, 0x30] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080BCFC4 @ =gMonSpritesGfxPtr - ldr r2, [r1] - lsls r4, 2 - adds r2, 0x4 - adds r2, r4 - ldr r1, _080BCFC8 @ =gBattleMonForms - adds r0, r1 - ldrb r1, [r0] - lsls r1, 11 - ldr r0, [r2] - adds r0, r1 - movs r2, 0x80 - lsls r2, 3 - adds r1, r7, 0 - bl CpuSet - ldr r1, [sp] - lsls r0, r1, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 5 - adds r1, r7, 0 - adds r3, r5, 0 - bl LoadBgTiles - adds r0, r6, 0 - adds r0, 0x8 - cmp r6, r0 - bge _080BCFA0 - mov r12, r0 - mov r2, r8 - lsls r7, r2, 1 -_080BCF72: - mov r1, r8 - adds r2, r1, 0 - adds r2, 0x8 - adds r4, r6, 0x1 - cmp r1, r2 - bge _080BCF9A - mov r0, r10 - lsls r3, r0, 12 - lsls r0, r6, 6 - add r0, r9 - adds r6, r7, r0 - subs r1, r2, r1 -_080BCF8A: - adds r0, r5, 0 - orrs r0, r3 - strh r0, [r6] - adds r5, 0x1 - adds r6, 0x2 - subs r1, 0x1 - cmp r1, 0 - bne _080BCF8A -_080BCF9A: - adds r6, r4, 0 - cmp r6, r12 - blt _080BCF72 -_080BCFA0: - ldr r1, [sp] - lsls r0, r1, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 4 - mov r1, r9 - movs r3, 0 - bl LoadBgTilemap - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCFC4: .4byte gMonSpritesGfxPtr -_080BCFC8: .4byte gBattleMonForms - thumb_func_end sub_80BCEF4 - - thumb_func_start sub_80BCFCC -sub_80BCFCC: @ 80BCFCC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - ldr r5, [sp, 0x28] - mov r8, r5 - ldr r5, [sp, 0x2C] - ldr r6, [sp, 0x30] - mov r9, r6 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 24 - lsls r2, 24 - lsls r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - mov r7, r8 - lsls r7, 16 - lsrs r6, r7, 16 - lsls r5, 24 - lsrs r5, 24 - mov r0, r9 - lsls r0, 24 - mov r9, r0 - ldr r4, _080BD090 @ =0x040000d4 - ldr r0, _080BD094 @ =gMonSpritesGfxPtr - ldr r0, [r0] - lsrs r2, 22 - adds r0, 0x4 - adds r0, r2 - lsrs r3, 13 - ldr r0, [r0] - adds r0, r3 - str r0, [r4] - movs r0, 0xC0 - lsls r0, 19 - adds r6, r0 - str r6, [r4, 0x4] - ldr r0, _080BD098 @ =0x80000400 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r2, r7, 0 - lsrs r2, 21 - mov r6, r9 - lsrs r6, 15 - subs r4, r2, r6 - lsrs r0, r1, 24 - adds r1, r0, 0 - adds r1, 0x8 - cmp r0, r1 - bge _080BD080 - mov r9, r1 - mov r7, r12 - lsls r7, 1 - mov r8, r7 - lsls r5, 11 - str r5, [sp] -_080BD048: - mov r2, r12 - adds r3, r2, 0 - adds r3, 0x8 - adds r5, r0, 0x1 - cmp r2, r3 - bge _080BD07A - mov r1, r10 - lsls r6, r1, 12 - lsls r0, 6 - movs r7, 0xC0 - lsls r7, 19 - adds r0, r7 - ldr r1, [sp] - adds r0, r1, r0 - mov r7, r8 - adds r1, r7, r0 - subs r2, r3, r2 -_080BD06A: - adds r0, r4, 0 - orrs r0, r6 - strh r0, [r1] - adds r4, 0x1 - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080BD06A -_080BD07A: - adds r0, r5, 0 - cmp r0, r9 - blt _080BD048 -_080BD080: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BD090: .4byte 0x040000d4 -_080BD094: .4byte gMonSpritesGfxPtr -_080BD098: .4byte 0x80000400 - thumb_func_end sub_80BCFCC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s new file mode 100644 index 000000000..18289e193 --- /dev/null +++ b/asm/battle_anim_effects_1.s @@ -0,0 +1,9882 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80A22E8 +sub_80A22E8: @ 80A22E8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080A231C @ =gBattleAnimArgs + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080A2320 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2324 + ldrh r0, [r5, 0x8] + negs r0, r0 + b _080A2326 + .align 2, 0 +_080A231C: .4byte gBattleAnimArgs +_080A2320: .4byte gBattleAnimAttacker +_080A2324: + ldrh r0, [r5, 0x8] +_080A2326: + strh r0, [r4, 0x34] + ldr r0, _080A2338 @ =gBattleAnimArgs + ldrh r0, [r0, 0xA] + strh r0, [r4, 0x36] + ldr r0, _080A233C @ =sub_80A2340 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2338: .4byte gBattleAnimArgs +_080A233C: .4byte sub_80A2340 + thumb_func_end sub_80A22E8 + + thumb_func_start sub_80A2340 +sub_80A2340: @ 80A2340 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A237C + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r1, r0 + strh r1, [r4, 0x32] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080A2382 +_080A237C: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A2382: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2340 + + thumb_func_start sub_80A2388 +sub_80A2388: @ 80A2388 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080A23C8 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r5, _080A23CC @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080A23D0 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080A23D4 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A23C8: .4byte gBattleAnimArgs +_080A23CC: .4byte gBattleAnimAttacker +_080A23D0: .4byte sub_8075590 +_080A23D4: .4byte move_anim_8074EE0 + thumb_func_end sub_80A2388 + + thumb_func_start sub_80A23D8 +sub_80A23D8: @ 80A23D8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r5, _080A2420 @ =gBattleAnimArgs + ldrb r1, [r5, 0x6] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldr r5, _080A2424 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080A2428 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080A242C @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2420: .4byte gBattleAnimArgs +_080A2424: .4byte gBattleAnimTarget +_080A2428: .4byte sub_8075590 +_080A242C: .4byte DestroyAnimSprite + thumb_func_end sub_80A23D8 + + thumb_func_start sub_80A2430 +sub_80A2430: @ 80A2430 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r6, _080A2480 @ =gBattleAnimArgs + ldrh r0, [r6, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080A2484 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r6, 0x6] + strh r0, [r4, 0x38] + ldr r1, _080A2488 @ =sub_80A248C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2480: .4byte gBattleAnimArgs +_080A2484: .4byte gBattleAnimTarget +_080A2488: .4byte sub_80A248C + thumb_func_end sub_80A2430 + + thumb_func_start sub_80A248C +sub_80A248C: @ 80A248C + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080A24A2 + adds r0, r4, 0 + bl DestroySprite + b _080A24F6 +_080A24A2: + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + ble _080A24BC + ldr r0, _080A24B8 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + adds r0, 0x1 + b _080A24C6 + .align 2, 0 +_080A24B8: .4byte gBattleAnimTarget +_080A24BC: + ldr r0, _080A24FC @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + adds r0, 0x6 +_080A24C6: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0xF + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] +_080A24F6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A24FC: .4byte gBattleAnimTarget + thumb_func_end sub_80A248C + + thumb_func_start sub_80A2500 +sub_80A2500: @ 80A2500 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080A2570 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + subs r0, 0x1 + movs r2, 0 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080A255A + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + movs r0, 0x6 + strh r0, [r5, 0x8] + ldr r1, _080A2574 @ =gBattleAnimArgs + movs r0, 0xF + strh r0, [r1] + strh r2, [r1, 0x2] + movs r0, 0x50 + strh r0, [r1, 0x4] + strh r2, [r1, 0x6] + ldr r4, _080A2578 @ =gUnknown_83E2A88 + ldr r0, _080A257C @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + adds r3, r0, 0 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl CreateSpriteAndAnimate +_080A255A: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0xF + bne _080A2568 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A2568: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2570: .4byte gTasks +_080A2574: .4byte gBattleAnimArgs +_080A2578: .4byte gUnknown_83E2A88 +_080A257C: .4byte gBattleAnimTarget + thumb_func_end sub_80A2500 + + thumb_func_start sub_80A2580 +sub_80A2580: @ 80A2580 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r6, _080A25C4 @ =gBattleAnimArgs + ldrh r0, [r6, 0x6] + strh r0, [r4, 0x2E] + ldr r5, _080A25C8 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_8075068 + ldr r0, _080A25CC @ =sub_80A25D0 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A25C4: .4byte gBattleAnimArgs +_080A25C8: .4byte gBattleAnimAttacker +_080A25CC: .4byte sub_80A25D0 + thumb_func_end sub_80A2580 + + thumb_func_start sub_80A25D0 +sub_80A25D0: @ 80A25D0 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080A25E4 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A25E4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A25D0 + + thumb_func_start sub_80A25EC +sub_80A25EC: @ 80A25EC + push {r4,r5,lr} + adds r5, r0, 0 + bl Random + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x7 + ands r1, r0 + adds r0, r5, 0 + bl StartSpriteAnim + ldr r4, _080A2634 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2638 + ldrh r0, [r5, 0x20] + subs r0, 0x14 + b _080A263C + .align 2, 0 +_080A2634: .4byte gBattleAnimAttacker +_080A2638: + ldrh r0, [r5, 0x20] + adds r0, 0x14 +_080A263C: + strh r0, [r5, 0x20] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1F + ands r0, r1 + adds r0, 0x40 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080A269C @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8075804 + bl Random + movs r1, 0xFF + ands r1, r0 + strh r1, [r5, 0x38] + adds r0, r5, 0 + adds r0, 0x43 + ldrb r0, [r0] + strh r0, [r5, 0x3A] + ldr r1, _080A26A0 @ =sub_80A26A4 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A269C: .4byte gBattleAnimTarget +_080A26A0: .4byte sub_80A26A4 + thumb_func_end sub_80A25EC + + thumb_func_start sub_80A26A4 +sub_80A26A4: @ 80A26A4 + push {r4,lr} + adds r4, r0, 0 + bl sub_807578C + lsls r0, 24 + cmp r0, 0 + beq _080A26BA + adds r0, r4, 0 + bl DestroyAnimSprite + b _080A26EA +_080A26BA: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xC + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7E + bgt _080A26D6 + ldrh r0, [r4, 0x3A] + b _080A26DA +_080A26D6: + ldrh r0, [r4, 0x3A] + adds r0, 0x1 +_080A26DA: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r4, 0x38] + adds r0, 0x18 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] +_080A26EA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A26A4 + + thumb_func_start sub_80A26F0 +sub_80A26F0: @ 80A26F0 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080A2750 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2710 + ldr r1, _080A2754 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080A2710: + ldr r4, _080A2754 @ =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080A2758 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r6, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + adds r0, r6, 0 + bl sub_8075068 + ldr r0, _080A275C @ =sub_80A2760 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2750: .4byte gBattleAnimAttacker +_080A2754: .4byte gBattleAnimArgs +_080A2758: .4byte gBattleAnimTarget +_080A275C: .4byte sub_80A2760 + thumb_func_end sub_80A26F0 + + thumb_func_start sub_80A2760 +sub_80A2760: @ 80A2760 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080A278A + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0xA + strh r0, [r4, 0x2E] + ldr r0, _080A2790 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080A2794 @ =sub_80A2798 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 +_080A278A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2790: .4byte sub_8074C44 +_080A2794: .4byte sub_80A2798 + thumb_func_end sub_80A2760 + + thumb_func_start sub_80A2798 +sub_80A2798: @ 80A2798 + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x3C + strh r0, [r4, 0x2E] + ldr r0, _080A27C8 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080A27CC @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A27C8: .4byte sub_8074C44 +_080A27CC: .4byte DestroyAnimSprite + thumb_func_end sub_80A2798 + + thumb_func_start sub_80A27D0 +sub_80A27D0: @ 80A27D0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r5, _080A2814 @ =gBattleAnimArgs + ldrb r1, [r5, 0x8] + adds r0, r4, 0 + bl StartSpriteAnim + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080A27FA + ldrb r0, [r4, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4, 0x1] +_080A27FA: + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldr r1, _080A2818 @ =sub_80A281C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2814: .4byte gBattleAnimArgs +_080A2818: .4byte sub_80A281C + thumb_func_end sub_80A27D0 + + thumb_func_start sub_80A281C +sub_80A281C: @ 80A281C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x32] + adds r1, 0x18 + strh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080A2870 + ldr r0, _080A286C @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + b _080A2894 + .align 2, 0 +_080A286C: .4byte gBattleAnimTarget +_080A2870: + ldr r0, _080A28C0 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + adds r0, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080A2884 + movs r2, 0x3 +_080A2884: + movs r0, 0x3 + ands r2, r0 + lsls r2, 2 + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r2 +_080A2894: + strb r0, [r4, 0x5] + ldrh r0, [r4, 0x30] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080A28B8 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A28B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A28C0: .4byte gBattleAnimTarget + thumb_func_end sub_80A281C + + thumb_func_start sub_80A28C4 +sub_80A28C4: @ 80A28C4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A28DE + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _080A28E6 +_080A28DE: + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080A2918 +_080A28E6: + ldr r0, _080A2904 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A2908 + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x3 + bl SetAnimBgAttribute + b _080A2912 + .align 2, 0 +_080A2904: .4byte gBattleAnimTarget +_080A2908: + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute +_080A2912: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A2918: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A28C4 + + thumb_func_start sub_80A2920 +sub_80A2920: @ 80A2920 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r5, _080A2968 @ =gBattleAnimArgs + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldr r0, _080A296C @ =gBattleAnimAttacker + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x4] + adds r0, r5 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r4, 0x38] + ldr r1, _080A2970 @ =sub_80A2974 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2968: .4byte gBattleAnimArgs +_080A296C: .4byte gBattleAnimAttacker +_080A2970: .4byte sub_80A2974 + thumb_func_end sub_80A2920 + + thumb_func_start sub_80A2974 +sub_80A2974: @ 80A2974 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080A29E0 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x5 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080A29C0 + ldr r0, _080A29BC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807685C + subs r0, 0x1 + b _080A29CA + .align 2, 0 +_080A29BC: .4byte gBattleAnimAttacker +_080A29C0: + ldr r0, _080A29DC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807685C + adds r0, 0x1 +_080A29CA: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r4, 0x38] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080A29E6 + .align 2, 0 +_080A29DC: .4byte gBattleAnimAttacker +_080A29E0: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A29E6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2974 + + thumb_func_start sub_80A29EC +sub_80A29EC: @ 80A29EC + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r5, _080A2A34 @ =gBattleAnimArgs + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldr r0, _080A2A38 @ =gBattleAnimAttacker + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x4] + adds r0, r5 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r4, 0x38] + ldr r1, _080A2A3C @ =sub_80A2A40 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2A34: .4byte gBattleAnimArgs +_080A2A38: .4byte gBattleAnimAttacker +_080A2A3C: .4byte sub_80A2A40 + thumb_func_end sub_80A29EC + + thumb_func_start sub_80A2A40 +sub_80A2A40: @ 80A2A40 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080A2A98 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r1, [r4, 0x38] + adds r0, r1, 0 + subs r0, 0x3B + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bls _080A2A78 + adds r0, r1, 0 + subs r0, 0xBB + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bhi _080A2A8C +_080A2A78: + ldrb r2, [r4, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x8 + eors r1, r0 + lsls r1, 1 + subs r0, 0x47 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] +_080A2A8C: + ldrh r0, [r4, 0x38] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080A2A9E +_080A2A98: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A2A9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2A40 + + thumb_func_start sub_80A2AA4 +sub_80A2AA4: @ 80A2AA4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080A2AE0 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r1, _080A2AE4 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x32] + ldr r0, _080A2AE8 @ =sub_80A2AEC + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2AE0: .4byte gBattleAnimAttacker +_080A2AE4: .4byte gBattleAnimArgs +_080A2AE8: .4byte sub_80A2AEC + thumb_func_end sub_80A2AA4 + + thumb_func_start sub_80A2AEC +sub_80A2AEC: @ 80A2AEC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x32] + movs r2, 0x32 + ldrsh r3, [r1, r2] + cmp r3, 0 + bne _080A2B20 + ldrh r0, [r1, 0x30] + movs r2, 0x1 + ands r2, r0 + cmp r2, 0 + beq _080A2B0E + movs r0, 0x80 + strh r0, [r1, 0x2E] + strh r3, [r1, 0x30] + strh r3, [r1, 0x32] + b _080A2B14 +_080A2B0E: + strh r2, [r1, 0x2E] + strh r2, [r1, 0x30] + strh r2, [r1, 0x32] +_080A2B14: + ldr r0, _080A2B1C @ =sub_80A2B38 + str r0, [r1, 0x1C] + b _080A2B34 + .align 2, 0 +_080A2B1C: .4byte sub_80A2B38 +_080A2B20: + subs r0, 0x1 + strh r0, [r1, 0x32] + ldrh r0, [r1, 0x2E] + ldrh r2, [r1, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x30] + ldrh r2, [r1, 0x22] + adds r0, r2 + strh r0, [r1, 0x22] +_080A2B34: + pop {r0} + bx r0 + thumb_func_end sub_80A2AEC + + thumb_func_start sub_80A2B38 +sub_80A2B38: @ 80A2B38 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A2B58 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2B5C + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x19 + bl Sin + negs r0, r0 + b _080A2B66 + .align 2, 0 +_080A2B58: .4byte gBattleAnimAttacker +_080A2B5C: + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x19 + bl Sin +_080A2B66: + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A2B86 + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] +_080A2B86: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x50 + ble _080A2B94 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A2B94: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2B38 + + thumb_func_start sub_80A2B9C +sub_80A2B9C: @ 80A2B9C + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080A2BF0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2BBC + ldr r1, _080A2BF4 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080A2BBC: + ldr r6, _080A2BF4 @ =gBattleAnimArgs + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + movs r1, 0xC + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A2BFC + ldr r4, _080A2BF8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + b _080A2C1C + .align 2, 0 +_080A2BF0: .4byte gBattleAnimAttacker +_080A2BF4: .4byte gBattleAnimArgs +_080A2BF8: .4byte gBattleAnimTarget +_080A2BFC: + ldr r0, _080A2C48 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_8076D9C + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x32] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 +_080A2C1C: + strh r0, [r5, 0x36] + ldr r0, _080A2C4C @ =gBattleAnimArgs + ldrh r0, [r0, 0xA] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_8075068 + ldr r0, _080A2C50 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + adds r4, r0, 0 + ldr r0, _080A2C48 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080A2C54 + movs r0, 0x1 + b _080A2C56 + .align 2, 0 +_080A2C48: .4byte gBattleAnimTarget +_080A2C4C: .4byte gBattleAnimArgs +_080A2C50: .4byte gBattleAnimAttacker +_080A2C54: + movs r0, 0 +_080A2C56: + strh r0, [r5, 0x2E] + ldr r0, _080A2C64 @ =sub_80A2C68 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2C64: .4byte sub_80A2C68 + thumb_func_end sub_80A2B9C + + thumb_func_start sub_80A2C68 +sub_80A2C68: @ 80A2C68 + push {r4-r7,lr} + adds r6, r0, 0 + movs r7, 0 + ldrh r5, [r6, 0x2E] + ldrh r4, [r6, 0x3C] + movs r0, 0x1 + strh r0, [r6, 0x2E] + adds r0, r6, 0 + bl AnimateBallThrow + ldrh r0, [r6, 0x3C] + strh r5, [r6, 0x2E] + lsls r4, 16 + asrs r4, 16 + cmp r4, 0xC8 + ble _080A2C9A + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x37 + bgt _080A2C9A + ldrh r0, [r6, 0x6] + cmp r0, 0 + bne _080A2CA0 + adds r0, 0x1 + strh r0, [r6, 0x6] +_080A2C9A: + ldrh r0, [r6, 0x6] + cmp r0, 0 + beq _080A2CD2 +_080A2CA0: + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080A2CD2 + adds r3, r6, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r6, 0x6] + adds r0, 0x1 + strh r0, [r6, 0x6] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bne _080A2CD2 + movs r7, 0x1 +_080A2CD2: + movs r2, 0x20 + ldrsh r0, [r6, r2] + movs r2, 0x24 + ldrsh r1, [r6, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080A2CFC + movs r0, 0x22 + ldrsh r1, [r6, r0] + movs r2, 0x26 + ldrsh r0, [r6, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080A2CFC + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080A2CFE +_080A2CFC: + movs r7, 0x1 +_080A2CFE: + cmp r7, 0 + beq _080A2D08 + adds r0, r6, 0 + bl DestroyAnimSprite +_080A2D08: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A2C68 + + thumb_func_start sub_80A2D10 +sub_80A2D10: @ 80A2D10 + push {r4,lr} + adds r4, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A2D3C + bl sub_8075290 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A2D3C + ldr r0, _080A2D64 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_8076D9C +_080A2D3C: + ldrh r0, [r4, 0x22] + adds r0, 0x20 + strh r0, [r4, 0x22] + ldr r1, _080A2D68 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x36] + ldr r0, _080A2D6C @ =sub_80A2D70 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2D64: .4byte gBattleAnimTarget +_080A2D68: .4byte gBattleAnimArgs +_080A2D6C: .4byte sub_80A2D70 + thumb_func_end sub_80A2D10 + + thumb_func_start sub_80A2D70 +sub_80A2D70: @ 80A2D70 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0xFF + bne _080A2D86 + ldrh r0, [r4, 0x22] + subs r0, 0x2 + strh r0, [r4, 0x22] + b _080A2D94 +_080A2D86: + cmp r0, 0 + ble _080A2D94 + ldrh r0, [r4, 0x22] + subs r0, 0x2 + strh r0, [r4, 0x22] + subs r0, r1, 0x2 + strh r0, [r4, 0x30] +_080A2D94: + ldrh r3, [r4, 0x32] + ldrh r5, [r4, 0x38] + adds r2, r3, r5 + strh r2, [r4, 0x38] + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r5, 0x36 + ldrsh r0, [r4, r5] + cmp r1, r0 + bge _080A2DAC + adds r0, r2, r3 + strh r0, [r4, 0x38] +_080A2DAC: + ldrh r1, [r4, 0x38] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r5, 0x38 + ldrsh r0, [r4, r5] + movs r1, 0x5 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _080A2DEC + ldr r0, _080A2DE8 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + b _080A2DFA + .align 2, 0 +_080A2DE8: .4byte gBattleAnimTarget +_080A2DEC: + ldr r0, _080A2E24 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 +_080A2DFA: + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080A2E1E + adds r0, r4, 0 + bl DestroyAnimSprite +_080A2E1E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2E24: .4byte gBattleAnimTarget + thumb_func_end sub_80A2D70 + + thumb_func_start sub_80A2E28 +sub_80A2E28: @ 80A2E28 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8075114 + adds r2, r5, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r4, _080A2E5C @ =gBattleAnimArgs + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAffineAnim + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x3A] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x3C] + ldr r0, _080A2E60 @ =sub_80A2E64 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2E5C: .4byte gBattleAnimArgs +_080A2E60: .4byte sub_80A2E64 + thumb_func_end sub_80A2E28 + + thumb_func_start sub_80A2E64 +sub_80A2E64: @ 80A2E64 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A2E94 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080A2E98 @ =0x0000ffff + cmp r1, r0 + bne _080A2E8E + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + movs r0, 0x1 + bl GetAnimBankSpriteId + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x2E] + ldr r0, _080A2E9C @ =sub_80A2EA0 + str r0, [r4, 0x1C] +_080A2E8E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2E94: .4byte gBattleAnimArgs +_080A2E98: .4byte 0x0000ffff +_080A2E9C: .4byte sub_80A2EA0 + thumb_func_end sub_80A2E64 + + thumb_func_start sub_80A2EA0 +sub_80A2EA0: @ 80A2EA0 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + bl GetAnimBankSpriteId + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A2EB8 + ldrh r0, [r4, 0x2E] + adds r0, 0xB + b _080A2EBC +_080A2EB8: + ldrh r0, [r4, 0x2E] + subs r0, 0xB +_080A2EBC: + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080A2ED8 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x32] +_080A2ED8: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A2F06 + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + cmp r0, 0 + ble _080A2F00 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAffineAnim + b _080A2F06 +_080A2F00: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A2F06: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2EA0 + + thumb_func_start sub_80A2F0C +sub_80A2F0C: @ 80A2F0C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080A2F38 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _080A2F3C + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080A2F62 + .align 2, 0 +_080A2F38: .4byte gSprites +_080A2F3C: + adds r0, r2, 0 + movs r1, 0x1 + bl sub_80758E0 + ldr r1, _080A2F68 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080A2F6C @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0x8] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0xA] + movs r1, 0x80 + lsls r1, 1 + strh r1, [r0, 0x1E] + ldr r1, _080A2F70 @ =sub_80A2F74 + str r1, [r0] +_080A2F62: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2F68: .4byte gTasks +_080A2F6C: .4byte gBattleAnimArgs +_080A2F70: .4byte sub_80A2F74 + thumb_func_end sub_80A2F0C + + thumb_func_start sub_80A2F74 +sub_80A2F74: @ 80A2F74 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080A2FF4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x8] + ldrh r0, [r4, 0x1C] + adds r1, r0 + strh r1, [r4, 0x1C] + ldr r2, _080A2FF8 @ =gSprites + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r5, r0, r2 + lsls r1, 16 + asrs r1, 24 + strh r1, [r5, 0x24] + ldr r0, _080A2FFC @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2FBE + ldrh r0, [r5, 0x24] + negs r0, r0 + strh r0, [r5, 0x24] +_080A2FBE: + ldrh r0, [r4, 0x1E] + adds r0, 0x10 + strh r0, [r4, 0x1E] + movs r0, 0x1E + ldrsh r2, [r4, r0] + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + adds r0, r6, 0 + bl sub_8076440 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080A2FEC + strh r0, [r4, 0x8] + ldr r0, _080A3000 @ =sub_80A3004 + str r0, [r4] +_080A2FEC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2FF4: .4byte gTasks +_080A2FF8: .4byte gSprites +_080A2FFC: .4byte gBattleAnimTarget +_080A3000: .4byte sub_80A3004 + thumb_func_end sub_80A2F74 + + thumb_func_start sub_80A3004 +sub_80A3004: @ 80A3004 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080A3050 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080A3054 @ =0x0000ffff + cmp r1, r0 + bne _080A3060 + ldr r0, _080A3058 @ =gTasks + lsls r2, r3, 2 + adds r1, r2, r3 + lsls r1, 3 + adds r6, r1, r0 + movs r1, 0x8 + ldrsh r5, [r6, r1] + adds r4, r0, 0 + cmp r5, 0 + bne _080A3074 + movs r0, 0x1 + bl GetAnimBankSpriteId + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8075980 + ldr r1, _080A305C @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + strh r5, [r0, 0x24] + strh r5, [r0, 0x26] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + b _080A308E + .align 2, 0 +_080A3050: .4byte gBattleAnimArgs +_080A3054: .4byte 0x0000ffff +_080A3058: .4byte gTasks +_080A305C: .4byte gSprites +_080A3060: + ldr r1, _080A3094 @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r0, r1 + movs r4, 0x8 + ldrsh r0, [r0, r4] + adds r4, r1, 0 + cmp r0, 0 + beq _080A308E +_080A3074: + adds r1, r2, r3 + lsls r1, 3 + adds r1, r4 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080A308E + adds r0, r3, 0 + bl DestroyAnimVisualTask +_080A308E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A3094: .4byte gTasks + thumb_func_end sub_80A3004 + + thumb_func_start sub_80A3098 +sub_80A3098: @ 80A3098 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080A30AA + cmp r0, 0x1 + beq _080A3104 + b _080A3156 +_080A30AA: + ldr r6, _080A30FC @ =gBattleAnimTarget + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A30C2 + ldr r1, _080A3100 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] +_080A30C2: + ldrb r0, [r6] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A3100 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080A3156 + .align 2, 0 +_080A30FC: .4byte gBattleAnimTarget +_080A3100: .4byte gBattleAnimArgs +_080A3104: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A3156 + adds r0, r5, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim + movs r0, 0x19 + strh r0, [r5, 0x2E] + ldr r4, _080A315C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080A3160 @ =sub_8075764 + str r0, [r5, 0x1C] + ldr r1, _080A3164 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 +_080A3156: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A315C: .4byte gBattleAnimAttacker +_080A3160: .4byte sub_8075764 +_080A3164: .4byte DestroyAnimSprite + thumb_func_end sub_80A3098 + + thumb_func_start sub_80A3168 +sub_80A3168: @ 80A3168 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A31D4 + ldr r4, _080A31E0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080A31E4 @ =gBattleAnimArgs + ldrh r0, [r4] + strh r0, [r5, 0x24] + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x26] + ldrb r0, [r4, 0x4] + adds r0, 0x1E + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r4, 0x6] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + movs r2, 0x22 + ldrsh r0, [r5, r2] + movs r2, 0x26 + ldrsh r1, [r5, r2] + adds r0, r1 + cmp r0, 0x78 + ble _080A31D4 + ldrh r0, [r5, 0x22] + adds r1, r0, 0 + subs r1, 0x78 + ldrh r2, [r5, 0x26] + adds r0, r2 + adds r1, r0 + strh r1, [r5, 0x22] +_080A31D4: + ldr r0, _080A31E8 @ =sub_80A32DC + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A31E0: .4byte gBattleAnimAttacker +_080A31E4: .4byte gBattleAnimArgs +_080A31E8: .4byte sub_80A32DC + thumb_func_end sub_80A3168 + + thumb_func_start sub_80A31EC +sub_80A31EC: @ 80A31EC + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + mov r9, r0 + ldr r4, _080A32C8 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r6, _080A32CC @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + adds r2, r0, 0 + lsls r2, 24 + subs r4, r5 + lsls r4, 16 + lsrs r2, 24 + mov r1, r8 + subs r2, r1 + lsls r2, 16 + lsrs r2, 16 + lsrs r3, r4, 16 + mov r10, r3 + asrs r4, 16 + ldr r6, _080A32D0 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + muls r0, r4 + movs r1, 0x64 + str r2, [sp] + bl __divsi3 + adds r5, r0 + mov r3, r9 + strh r5, [r3, 0x20] + ldr r2, [sp] + lsls r0, r2, 16 + asrs r0, 16 + movs r3, 0 + ldrsh r1, [r6, r3] + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + add r8, r0 + mov r1, r8 + mov r0, r9 + strh r1, [r0, 0x22] + ldrh r0, [r6, 0x2] + mov r3, r9 + strh r0, [r3, 0x24] + ldrh r0, [r6, 0x4] + strh r0, [r3, 0x26] + ldrb r0, [r6, 0x6] + adds r0, 0x1E + mov r1, r9 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0x8] + mov r0, r9 + bl StartSpriteAnim + ldrh r0, [r6, 0xA] + mov r1, r9 + strh r0, [r1, 0x32] + ldr r0, _080A32D4 @ =sub_80A32DC + str r0, [r1, 0x1C] + ldr r1, _080A32D8 @ =gUnknown_203999C + mov r3, r9 + ldrh r0, [r3, 0x20] + strh r0, [r1] + ldrh r0, [r3, 0x22] + strh r0, [r1, 0x2] + mov r0, r10 + strh r0, [r1, 0x4] + ldr r2, [sp] + strh r2, [r1, 0x6] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A32C8: .4byte gBattleAnimAttacker +_080A32CC: .4byte gBattleAnimTarget +_080A32D0: .4byte gBattleAnimArgs +_080A32D4: .4byte sub_80A32DC +_080A32D8: .4byte gUnknown_203999C + thumb_func_end sub_80A31EC + + thumb_func_start sub_80A32DC +sub_80A32DC: @ 80A32DC + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x2E] + adds r1, 0x1 + strh r1, [r3, 0x2E] + lsls r1, 16 + asrs r1, 16 + movs r2, 0x32 + ldrsh r0, [r3, r2] + subs r0, 0xA + cmp r1, r0 + ble _080A331C + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + movs r2, 0x3E + adds r2, r3 + mov r12, r2 + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080A331C: + movs r2, 0x2E + ldrsh r1, [r3, r2] + movs r2, 0x32 + ldrsh r0, [r3, r2] + cmp r1, r0 + ble _080A332E + adds r0, r3, 0 + bl DestroyAnimSprite +_080A332E: + pop {r0} + bx r0 + thumb_func_end sub_80A32DC + + thumb_func_start sub_80A3334 +sub_80A3334: @ 80A3334 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A3374 + ldr r5, _080A33B0 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A33B4 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r2, [r4] + adds r0, r2 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x30] + ldrh r0, [r4, 0x6] + strh r0, [r6, 0x32] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x34] +_080A3374: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + strh r0, [r6, 0x2E] + ldrh r1, [r6, 0x30] + muls r0, r1 + strh r0, [r6, 0x24] + movs r2, 0x2E + ldrsh r1, [r6, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + movs r1, 0xFF + ands r0, r1 + movs r2, 0x32 + ldrsh r1, [r6, r2] + bl Sin + strh r0, [r6, 0x26] + movs r0, 0x2E + ldrsh r1, [r6, r0] + movs r2, 0x34 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080A33AA + adds r0, r6, 0 + bl DestroyAnimSprite +_080A33AA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A33B0: .4byte gBattleAnimAttacker +_080A33B4: .4byte gBattleAnimArgs + thumb_func_end sub_80A3334 + + thumb_func_start sub_80A33B8 +sub_80A33B8: @ 80A33B8 + push {r4,r5,lr} + movs r2, 0x20 + ldrsh r4, [r0, r2] + lsls r4, 8 + movs r3, 0x22 + ldrsh r2, [r0, r3] + orrs r4, r2 + movs r5, 0x3A + ldrsh r2, [r0, r5] + lsls r2, 8 + movs r5, 0x3C + ldrsh r3, [r0, r5] + orrs r2, r3 + lsls r1, 8 + strh r4, [r0, 0x38] + strh r2, [r0, 0x3A] + strh r1, [r0, 0x3C] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A33B8 + + thumb_func_start sub_80A33E0 +sub_80A33E0: @ 80A33E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + ldrh r0, [r0, 0x38] + lsrs r1, r0, 8 + mov r10, r1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + mov r1, r8 + ldrh r0, [r1, 0x3A] + lsrs r2, r0, 8 + lsls r0, 24 + lsrs r4, r0, 24 + ldrh r1, [r1, 0x3C] + lsls r0, r1, 16 + asrs r0, 24 + lsls r0, 16 + lsrs r6, r0, 16 + movs r3, 0xFF + ands r3, r1 + cmp r2, 0 + bne _080A341A + movs r2, 0x20 + negs r2, r2 + b _080A3422 +_080A341A: + cmp r2, 0xFF + bne _080A3422 + movs r2, 0x88 + lsls r2, 1 +_080A3422: + mov r0, r9 + subs r4, r0 + lsls r4, 16 + lsrs r4, 16 + mov r1, r10 + subs r0, r2, r1 + lsls r5, r3, 16 + asrs r5, 16 + muls r0, r5 + lsls r1, r6, 16 + asrs r7, r1, 16 + adds r1, r7, 0 + bl __divsi3 + adds r6, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + muls r0, r5 + adds r1, r7, 0 + bl __divsi3 + add r6, r10 + mov r1, r8 + strh r6, [r1, 0x20] + add r0, r9 + strh r0, [r1, 0x22] + adds r5, 0x1 + lsls r5, 16 + lsrs r3, r5, 16 + asrs r5, 16 + cmp r5, r7 + beq _080A3474 + lsls r1, r7, 8 + lsls r0, r3, 16 + asrs r0, 16 + orrs r0, r1 + mov r1, r8 + strh r0, [r1, 0x3C] + movs r0, 0 + b _080A3476 +_080A3474: + movs r0, 0x1 +_080A3476: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A33E0 + + thumb_func_start sub_80A3484 +sub_80A3484: @ 80A3484 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xA + bne _080A3498 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080A3498: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + ble _080A34AC + adds r0, r4, 0 + bl DestroyAnimSprite +_080A34AC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A3484 + + thumb_func_start sub_80A34B4 +sub_80A34B4: @ 80A34B4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080A34DE + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080A34DE: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + adds r0, r4, 0 + bl sub_80A33E0 + lsls r0, 24 + cmp r0, 0 + beq _080A350E + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + ldr r0, _080A3514 @ =sub_80A3484 + str r0, [r4, 0x1C] +_080A350E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A3514: .4byte sub_80A3484 + thumb_func_end sub_80A34B4 + + thumb_func_start sub_80A3518 +sub_80A3518: @ 80A3518 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r4, _080A3560 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080A3564 @ =gBattleAnimAttacker + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080A3568 + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80A33B8 + movs r0, 0x1 + b _080A357A + .align 2, 0 +_080A3560: .4byte gBattleAnimTarget +_080A3564: .4byte gBattleAnimAttacker +_080A3568: + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80A33B8 + movs r0, 0x3 +_080A357A: + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080A358C @ =sub_80A34B4 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A358C: .4byte sub_80A34B4 + thumb_func_end sub_80A3518 + + thumb_func_start sub_80A3590 +sub_80A3590: @ 80A3590 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080A35BA + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080A35BA: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + adds r0, r4, 0 + bl sub_80A33E0 + lsls r0, 24 + cmp r0, 0 + beq _080A35EC + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + adds r0, r4, 0 + bl DestroyAnimSprite +_080A35EC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A3590 + + thumb_func_start sub_80A35F4 +sub_80A35F4: @ 80A35F4 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080A3630 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080A3638 + strh r0, [r5, 0x3A] + adds r0, r6, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x28 + bl sub_80A33B8 + movs r0, 0x3 + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080A3634 @ =sub_80A34B4 + b _080A3662 + .align 2, 0 +_080A3630: .4byte gBattleAnimTarget +_080A3634: .4byte sub_80A34B4 +_080A3638: + movs r0, 0xFF + strh r0, [r5, 0x3A] + adds r0, r6, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A3650 + movs r0, 0 + strh r0, [r5, 0x3A] +_080A3650: + adds r0, r5, 0 + movs r1, 0x28 + bl sub_80A33B8 + movs r0, 0x3 + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080A366C @ =sub_80A3590 +_080A3662: + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A366C: .4byte sub_80A3590 + thumb_func_end sub_80A35F4 + + thumb_func_start sub_80A3670 +sub_80A3670: @ 80A3670 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A368A + adds r0, r4, 0 + movs r1, 0 + bl sub_8075114 + ldr r0, _080A36B0 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x30] +_080A368A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x30] + muls r0, r1 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A36AA + adds r0, r4, 0 + bl DestroyAnimSprite +_080A36AA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A36B0: .4byte gBattleAnimArgs + thumb_func_end sub_80A3670 + + thumb_func_start sub_80A36B4 +sub_80A36B4: @ 80A36B4 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8075114 + ldr r4, _080A36FC @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080A3700 @ =gBattleAnimTarget + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080A3704 + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80A33B8 + movs r0, 0x1 + b _080A3716 + .align 2, 0 +_080A36FC: .4byte gBattleAnimAttacker +_080A3700: .4byte gBattleAnimTarget +_080A3704: + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80A33B8 + movs r0, 0x3 +_080A3716: + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080A3728 @ =sub_80A372C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A3728: .4byte sub_80A372C + thumb_func_end sub_80A36B4 + + thumb_func_start sub_80A372C +sub_80A372C: @ 80A372C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080A3756 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080A3756: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + bne _080A378A + movs r0, 0x3F + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x76 + bl PlaySE12WithPanning +_080A378A: + adds r0, r4, 0 + bl sub_80A33E0 + lsls r0, 24 + cmp r0, 0 + beq _080A37B2 + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + ldr r0, _080A37B8 @ =sub_80A3484 + str r0, [r4, 0x1C] + movs r0, 0x40 + negs r0, r0 + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x76 + bl PlaySE12WithPanning +_080A37B2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A37B8: .4byte sub_80A3484 + thumb_func_end sub_80A372C + + thumb_func_start sub_80A37BC +sub_80A37BC: @ 80A37BC + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A3850 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A37E4 + ldr r0, _080A37E0 @ =gBattleAnimArgs + ldrh r1, [r0, 0x2] + strh r1, [r4, 0x30] + movs r1, 0x78 + strh r1, [r4, 0x20] + adds r5, r0, 0 + b _080A3806 + .align 2, 0 +_080A37E0: .4byte gBattleAnimArgs +_080A37E4: + ldr r0, _080A3840 @ =gBattleAnimArgs + movs r1, 0x2 + ldrsh r3, [r0, r1] + adds r1, r3, 0 + subs r1, 0x20 + adds r2, r1, 0 + adds r5, r0, 0 + cmp r1, 0 + bge _080A37FA + adds r2, r3, 0 + adds r2, 0xDF +_080A37FA: + asrs r0, r2, 8 + lsls r0, 8 + subs r0, r1, r0 + strh r0, [r4, 0x30] + movs r0, 0x46 + strh r0, [r4, 0x20] +_080A3806: + ldrh r0, [r5] + strh r0, [r4, 0x22] + strh r0, [r4, 0x32] + movs r0, 0x14 + strh r0, [r4, 0x36] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3C + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] + ldr r0, _080A3844 @ =sub_80A3858 + str r0, [r4, 0x1C] + ldrh r0, [r4, 0x30] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBE + bhi _080A3848 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F + b _080A384E + .align 2, 0 +_080A3840: .4byte gBattleAnimArgs +_080A3844: .4byte sub_80A3858 +_080A3848: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D +_080A384E: + strb r0, [r1] +_080A3850: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A37BC + + thumb_func_start sub_80A3858 +sub_80A3858: @ 80A3858 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A386A + cmp r0, 0x1 + beq _080A389A + b _080A38BA +_080A386A: + ldrh r5, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x4E + ble _080A3882 + movs r0, 0x1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080A38BA +_080A3882: + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + adds r0, r5, r0 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x36] + adds r1, 0x3 + strh r1, [r4, 0x36] + strh r0, [r4, 0x22] + b _080A38BA +_080A389A: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A38BA + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A38BA + movs r0, 0 + strh r0, [r4, 0x2E] + strh r0, [r4, 0x32] + ldr r0, _080A38C0 @ =sub_80A38C4 + str r0, [r4, 0x1C] +_080A38BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A38C0: .4byte sub_80A38C4 + thumb_func_end sub_80A3858 + + thumb_func_start sub_80A38C4 +sub_80A38C4: @ 80A38C4 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080A3908 @ =gUnknown_83E2F78 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r3, r0, r1 + adds r0, r5, 0x1 + adds r0, r3, r0 + ldrh r2, [r4, 0x32] + movs r6, 0x32 + ldrsh r1, [r4, r6] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080A3910 + adds r0, r5, 0x2 + adds r0, r3, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x7F + bne _080A38FC + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080A390C @ =sub_80A397C + str r0, [r4, 0x1C] +_080A38FC: + movs r0, 0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080A3976 + .align 2, 0 +_080A3908: .4byte gUnknown_83E2F78 +_080A390C: .4byte sub_80A397C +_080A3910: + adds r0, r2, 0x1 + strh r0, [r4, 0x32] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + adds r1, r0, r5 + movs r2, 0 + ldrsb r2, [r1, r2] + adds r1, r5, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + muls r0, r2 + ldrh r1, [r4, 0x30] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A395E + ldrh r0, [r4, 0x30] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBE + bhi _080A3956 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F + b _080A395C +_080A3956: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D +_080A395C: + strb r0, [r1] +_080A395E: + movs r6, 0x30 + ldrsh r0, [r4, r6] + movs r1, 0x3C + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] +_080A3976: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A38C4 + + thumb_func_start sub_80A397C +sub_80A397C: @ 80A397C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x14 + ble _080A398E + adds r0, r4, 0 + bl DestroyAnimSprite +_080A398E: + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A397C + + thumb_func_start sub_80A39C0 +sub_80A39C0: @ 80A39C0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080A3B14 @ =gTasks + adds r5, r0, r1 + ldr r4, _080A3B18 @ =gBattleAnimTarget + ldrb r0, [r4] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + strh r0, [r5, 0x10] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8076B2C + strh r0, [r5, 0x1C] + ldrb r0, [r4] + movs r1, 0 + bl sub_8076B2C + strh r0, [r5, 0x1E] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0x1 + bne _080A3A28 + movs r1, 0x1 +_080A3A28: + strh r1, [r5, 0x12] + movs r3, 0x12 + ldrsh r0, [r5, r3] + lsls r0, 6 + movs r1, 0x38 + subs r1, r0 + strh r1, [r5, 0x1A] + ldrh r0, [r5, 0x16] + subs r0, r1 + ldrh r1, [r5, 0x14] + adds r0, r1 + strh r0, [r5, 0x18] + ldr r0, _080A3B1C @ =gUnknown_83E2FF0 + movs r2, 0x18 + ldrsh r1, [r5, r2] + movs r3, 0x1A + ldrsh r2, [r5, r3] + ldrb r3, [r5, 0x10] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xC] + cmp r0, 0x40 + bne _080A3A60 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A3A60: + ldr r4, _080A3B20 @ =gSprites + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xA + strh r1, [r0, 0x2E] + movs r2, 0xC + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x18] + strh r1, [r0, 0x30] + movs r3, 0xC + ldrsh r0, [r5, r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + movs r1, 0x1C + ldrsh r0, [r5, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r5, r3] + muls r1, r0 + ldrh r0, [r5, 0x14] + subs r0, r1 + strh r0, [r2, 0x32] + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x1A] + strh r1, [r0, 0x34] + movs r1, 0xC + ldrsh r0, [r5, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r2, 0x1E + ldrsh r0, [r5, r2] + lsrs r2, r0, 31 + adds r0, r2 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r2, [r5, r3] + muls r0, r2 + ldrh r2, [r5, 0x16] + adds r0, r2 + strh r0, [r1, 0x36] + movs r3, 0xC + ldrsh r1, [r5, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_80A3F04 + movs r1, 0xC + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x38] + movs r2, 0xC + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8075068 + ldr r0, _080A3B24 @ =sub_80A3B28 + str r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A3B14: .4byte gTasks +_080A3B18: .4byte gBattleAnimTarget +_080A3B1C: .4byte gUnknown_83E2FF0 +_080A3B20: .4byte gSprites +_080A3B24: .4byte sub_80A3B28 + thumb_func_end sub_80A39C0 + + thumb_func_start sub_80A3B28 +sub_80A3B28: @ 80A3B28 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080A3B6C @ =gTasks + adds r6, r0, r1 + movs r0, 0xC + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A3B70 @ =gSprites + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r5, [r6, r1] + cmp r5, 0x7 + bne _080A3B50 + b _080A3D80 +_080A3B50: + cmp r5, 0x7 + bgt _080A3B9E + cmp r5, 0x3 + bne _080A3B5A + b _080A3C72 +_080A3B5A: + cmp r5, 0x3 + bgt _080A3B74 + cmp r5, 0x1 + beq _080A3C04 + cmp r5, 0x1 + bgt _080A3C54 + cmp r5, 0 + beq _080A3BE6 + b _080A3EFC + .align 2, 0 +_080A3B6C: .4byte gTasks +_080A3B70: .4byte gSprites +_080A3B74: + cmp r5, 0x5 + bne _080A3B7A + b _080A3CE8 +_080A3B7A: + cmp r5, 0x5 + ble _080A3B80 + b _080A3D62 +_080A3B80: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080A3B96 + b _080A3EFC +_080A3B96: + movs r0, 0x5 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3B9E: + cmp r5, 0xB + bne _080A3BA4 + b _080A3E64 +_080A3BA4: + cmp r5, 0xB + bgt _080A3BD2 + cmp r5, 0x9 + bne _080A3BAE + b _080A3DD2 +_080A3BAE: + cmp r5, 0x9 + ble _080A3BB4 + b _080A3E48 +_080A3BB4: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080A3BCA + b _080A3EFC +_080A3BCA: + movs r0, 0x9 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3BD2: + cmp r5, 0xD + bne _080A3BD8 + b _080A3ED6 +_080A3BD8: + cmp r5, 0xD + bge _080A3BDE + b _080A3EB6 +_080A3BDE: + cmp r5, 0xFF + bne _080A3BE4 + b _080A3EE6 +_080A3BE4: + b _080A3EFC +_080A3BE6: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080A3BFC + b _080A3EFC +_080A3BFC: + movs r0, 0x1 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3C04: + ldrh r2, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r2, r3 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x14] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x16] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + ldrh r0, [r6, 0x10] + adds r0, 0x2 + strh r0, [r6, 0x10] + strh r5, [r6, 0xE] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3C54: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080A3C6A + b _080A3EFC +_080A3C6A: + movs r0, 0x3 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3C72: + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r1, r0 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r1, r0 + ldrh r0, [r6, 0x14] + subs r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r1, 0x1E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r2, 0x12 + ldrsh r1, [r6, r2] + muls r1, r0 + ldrh r0, [r6, 0x16] + subs r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + movs r0, 0x2 + strh r0, [r6, 0xE] + ldrh r0, [r6, 0x10] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3CE8: + ldrh r1, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r1, r3 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r0, r1 + ldrh r1, [r6, 0x14] + adds r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r2, 0x1E + ldrsh r0, [r6, r2] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r0, r1 + ldrh r1, [r6, 0x16] + adds r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + subs r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x3 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3D62: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080A3D78 + b _080A3EFC +_080A3D78: + movs r0, 0x7 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3D80: + ldrh r2, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r2, r3 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x14] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x16] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + adds r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x4 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3DD2: + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r1, r0 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r1, r0 + ldrh r0, [r6, 0x14] + subs r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r1, 0x1E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r2, 0x12 + ldrsh r1, [r6, r2] + muls r0, r1 + ldrh r3, [r6, 0x16] + adds r0, r3 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + movs r0, 0x5 + strh r0, [r6, 0xE] + ldrh r0, [r6, 0x10] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3E48: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080A3EFC + movs r0, 0xB + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3E64: + ldrh r2, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r2, r0 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x18] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x1A] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + subs r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x6 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3EB6: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080A3EFC + adds r0, r4, 0 + bl DestroySprite + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3ED6: + movs r1, 0x20 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A3EFC + adds r0, r2, 0 + bl DestroyAnimVisualTask + b _080A3EFC +_080A3EE6: + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080A3EFC + movs r0, 0 + strh r0, [r6, 0xA] + ldrh r0, [r6, 0x26] +_080A3EFA: + strh r0, [r6, 0x8] +_080A3EFC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A3B28 + + thumb_func_start sub_80A3F04 +sub_80A3F04: @ 80A3F04 + push {lr} + movs r2, 0x8 + movs r3, 0x36 + ldrsh r1, [r0, r3] + movs r3, 0x22 + ldrsh r0, [r0, r3] + cmp r1, r0 + bge _080A3F1A + negs r0, r2 + lsls r0, 16 + lsrs r2, r0, 16 +_080A3F1A: + lsls r0, r2, 16 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80A3F04 + + thumb_func_start sub_80A3F24 +sub_80A3F24: @ 80A3F24 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + lsls r1, 24 + lsrs r7, r1, 24 + ldrh r0, [r6, 0x24] + adds r0, 0x1 + strh r0, [r6, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080A3FBA + movs r0, 0 + strh r0, [r6, 0x24] + ldr r0, _080A3FC4 @ =gSprites + mov r8, r0 + movs r2, 0xC + ldrsh r1, [r6, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrh r1, [r0, 0x24] + ldrh r2, [r0, 0x20] + adds r1, r2 + ldrh r2, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r2, r0 + ldr r0, _080A3FC8 @ =gUnknown_83E2FF0 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + ldrb r3, [r6, 0x10] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080A3FBA + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + mov r0, r8 + adds r4, r5, r0 + strh r7, [r4, 0x3A] + movs r0, 0xC + strh r0, [r4, 0x3C] + ldr r0, _080A3FCC @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + ldrh r2, [r6, 0x22] + movs r0, 0x1 + ands r0, r2 + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r6, 0x10] + adds r4, 0x43 + strb r0, [r4] + mov r0, r8 + adds r0, 0x1C + adds r5, r0 + ldr r0, _080A3FD0 @ =sub_80A3FD4 + str r0, [r5] +_080A3FBA: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3FC4: .4byte gSprites +_080A3FC8: .4byte gUnknown_83E2FF0 +_080A3FCC: .4byte gTasks +_080A3FD0: .4byte sub_80A3FD4 + thumb_func_end sub_80A3F24 + + thumb_func_start sub_80A3FD4 +sub_80A3FD4: @ 80A3FD4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A4036 + movs r0, 0 + strh r0, [r4, 0x2E] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A4036 + ldr r3, _080A403C @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080A4036: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A403C: .4byte gTasks + thumb_func_end sub_80A3FD4 + + thumb_func_start sub_80A4040 +sub_80A4040: @ 80A4040 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080A4054 @ =gBattleAnimArgs + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A405C + ldr r0, _080A4058 @ =gBattleAnimAttacker + b _080A405E + .align 2, 0 +_080A4054: .4byte gBattleAnimArgs +_080A4058: .4byte gBattleAnimAttacker +_080A405C: + ldr r0, _080A407C @ =gBattleAnimTarget +_080A405E: + ldrb r6, [r0] + adds r0, r6, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A4088 + movs r0, 0 + strh r0, [r4, 0x36] + ldr r1, _080A4080 @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x32] + ldr r0, _080A4084 @ =0x0000fff0 + b _080A4098 + .align 2, 0 +_080A407C: .4byte gBattleAnimTarget +_080A4080: .4byte gBattleAnimArgs +_080A4084: .4byte 0x0000fff0 +_080A4088: + movs r0, 0x1 + strh r0, [r4, 0x36] + ldr r1, _080A40BC @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r4, 0x32] + movs r0, 0x80 + lsls r0, 1 +_080A4098: + strh r0, [r4, 0x20] + adds r7, r1, 0 + adds r5, r7, 0 + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x34] + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080A40CE + cmp r0, 0x1 + bgt _080A40C0 + cmp r0, 0 + beq _080A40CA + b _080A4138 + .align 2, 0 +_080A40BC: .4byte gBattleAnimArgs +_080A40C0: + cmp r0, 0x2 + beq _080A40D4 + cmp r0, 0x3 + beq _080A4100 + b _080A4138 +_080A40CA: + ldrh r0, [r5] + b _080A40E4 +_080A40CE: + ldrh r0, [r5] + strh r0, [r4, 0x22] + b _080A411A +_080A40D4: + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5] + adds r0, r5 +_080A40E4: + strh r0, [r4, 0x22] + adds r0, r6, 0 + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080A4138 +_080A4100: + ldr r0, _080A4144 @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r7, [r7] + adds r0, r7 + strh r0, [r4, 0x22] + movs r0, 0x1 + bl GetAnimBankSpriteId +_080A411A: + adds r0, r6, 0 + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_080A4138: + ldr r0, _080A4148 @ =sub_80A414C + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4144: .4byte gBattleAnimTarget +_080A4148: .4byte sub_80A414C + thumb_func_end sub_80A4040 + + thumb_func_start sub_80A414C +sub_80A414C: @ 80A414C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x3C + ldrsh r3, [r4, r0] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + movs r1, 0x30 + ldrsh r2, [r4, r1] + ldr r1, _080A41A0 @ =gSineTable + movs r5, 0x2E + ldrsh r0, [r4, r5] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + muls r0, r2 + asrs r0, 8 + strh r0, [r4, 0x26] + movs r2, 0x32 + ldrsh r0, [r4, r2] + muls r0, r3 + strh r0, [r4, 0x24] + movs r5, 0x34 + ldrsh r0, [r4, r5] + muls r0, r3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A41A4 + movs r2, 0x24 + ldrsh r0, [r4, r2] + movs r5, 0x20 + ldrsh r1, [r4, r5] + adds r0, r1 + cmp r0, 0xF7 + ble _080A41BC + b _080A41B6 + .align 2, 0 +_080A41A0: .4byte gSineTable +_080A41A4: + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r2, 0x20 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bgt _080A41BC +_080A41B6: + adds r0, r4, 0 + bl move_anim_8074EE0 +_080A41BC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A414C + + thumb_func_start sub_80A41C4 +sub_80A41C4: @ 80A41C4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080A41E4 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080A41E8 + cmp r0, 0x1 + beq _080A421C + b _080A4276 + .align 2, 0 +_080A41E4: .4byte gTasks +_080A41E8: + ldr r0, _080A4214 @ =0x0000274f + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r2, 0x80 + lsls r2, 1 + adds r4, r2, 0 + adds r0, r4 + strh r0, [r5, 0x18] + ldr r0, _080A4218 @ =0x000027b0 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + adds r0, r4 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080A4276 + .align 2, 0 +_080A4214: .4byte 0x0000274f +_080A4218: .4byte 0x000027b0 +_080A421C: + ldrh r0, [r5, 0x1A] + adds r0, 0x1 + movs r7, 0 + strh r0, [r5, 0x1A] + lsls r0, 16 + cmp r0, 0 + blt _080A4276 + strh r7, [r5, 0x1A] + ldrh r0, [r5, 0x18] + ldrb r2, [r5, 0x1C] + ldr r4, _080A4290 @ =gUnknown_83E30F0 + movs r3, 0x1E + ldrsh r1, [r5, r3] + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r5, 0x20] + ldrb r2, [r5, 0x1C] + movs r3, 0x1E + ldrsh r1, [r5, r3] + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x11 + bne _080A4276 + strh r7, [r5, 0x1C] + ldrh r0, [r5, 0x1E] + adds r0, 0x1 + strh r0, [r5, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bne _080A4276 + strh r7, [r5, 0x1E] +_080A4276: + ldr r0, _080A4294 @ =gBattleAnimArgs + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080A428A + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A428A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4290: .4byte gUnknown_83E30F0 +_080A4294: .4byte gBattleAnimArgs + thumb_func_end sub_80A41C4 + + thumb_func_start sub_80A4298 +sub_80A4298: @ 80A4298 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + ldr r1, _080A42B0 @ =gBattleAnimArgs + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080A42B4 + adds r0, r6, 0 + bl DestroyAnimSprite + b _080A438E + .align 2, 0 +_080A42B0: .4byte gBattleAnimArgs +_080A42B4: + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080A42C4 + ldr r4, _080A42C0 @ =gBattleAnimAttacker + b _080A42C6 + .align 2, 0 +_080A42C0: .4byte gBattleAnimAttacker +_080A42C4: + ldr r4, _080A4300 @ =gBattleAnimTarget +_080A42C6: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080A4304 @ =gBattleAnimArgs + ldrh r1, [r0, 0x8] + strh r1, [r6, 0x2E] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r7, r0, 0 + cmp r1, 0 + bne _080A4308 + ldrh r0, [r7, 0x4] + adds r0, r5 + strh r0, [r6, 0x20] + ldrh r0, [r7, 0x6] + adds r0, r2 + strh r0, [r6, 0x22] + strh r5, [r6, 0x38] + strh r2, [r6, 0x3A] + b _080A4318 + .align 2, 0 +_080A4300: .4byte gBattleAnimTarget +_080A4304: .4byte gBattleAnimArgs +_080A4308: + strh r5, [r6, 0x20] + strh r2, [r6, 0x22] + ldrh r0, [r7, 0x4] + adds r0, r5 + strh r0, [r6, 0x38] + ldrh r0, [r7, 0x6] + adds r0, r2 + strh r0, [r6, 0x3A] +_080A4318: + ldrh r4, [r6, 0x20] + lsls r0, r4, 4 + strh r0, [r6, 0x30] + ldrh r5, [r6, 0x22] + lsls r0, r5, 4 + strh r0, [r6, 0x32] + movs r1, 0x38 + ldrsh r0, [r6, r1] + movs r2, 0x20 + ldrsh r1, [r6, r2] + subs r0, r1 + lsls r0, 4 + movs r3, 0x8 + ldrsh r1, [r7, r3] + bl __divsi3 + strh r0, [r6, 0x34] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x22 + ldrsh r1, [r6, r2] + subs r0, r1 + lsls r0, 4 + movs r3, 0x8 + ldrsh r1, [r7, r3] + bl __divsi3 + strh r0, [r6, 0x36] + ldrh r0, [r6, 0x38] + subs r0, r4 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r6, 0x3A] + subs r1, r5 + lsls r1, 16 + asrs r1, 16 + bl sub_8075B30 + lsls r0, 16 + lsrs r4, r0, 16 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A437A + ldr r1, _080A4398 @ =0xffff8000 + adds r0, r4, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_080A437A: + movs r3, 0x80 + lsls r3, 1 + str r4, [sp] + adds r0, r6, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8075A1C + ldr r0, _080A439C @ =sub_80A43A0 + str r0, [r6, 0x1C] +_080A438E: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4398: .4byte 0xffff8000 +_080A439C: .4byte sub_80A43A0 + thumb_func_end sub_80A4298 + + thumb_func_start sub_80A43A0 +sub_80A43A0: @ 80A43A0 + push {r4,lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x2E] + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080A43D0 + ldrh r0, [r2, 0x34] + ldrh r4, [r2, 0x30] + adds r0, r4 + strh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + ldrh r4, [r2, 0x32] + adds r1, r4 + strh r1, [r2, 0x32] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r2, 0x22] + subs r0, r3, 0x1 + strh r0, [r2, 0x2E] + b _080A43D6 +_080A43D0: + adds r0, r2, 0 + bl move_anim_8074EE0 +_080A43D6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A43A0 + + thumb_func_start sub_80A43DC +sub_80A43DC: @ 80A43DC + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A43F2 + adds r0, r2, 0 + bl DestroyAnimSprite +_080A43F2: + pop {r0} + bx r0 + thumb_func_end sub_80A43DC + + thumb_func_start sub_80A43F8 +sub_80A43F8: @ 80A43F8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A4418 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A4420 + ldr r2, _080A441C @ =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + b _080A442C + .align 2, 0 +_080A4418: .4byte gBattleAnimAttacker +_080A441C: .4byte gBattleAnimArgs +_080A4420: + ldr r0, _080A4444 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] +_080A442C: + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080A4448 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldr r1, _080A444C @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4444: .4byte gBattleAnimArgs +_080A4448: .4byte sub_8074F6C +_080A444C: .4byte DestroyAnimSprite + thumb_func_end sub_80A43F8 + + thumb_func_start sub_80A4450 +sub_80A4450: @ 80A4450 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080A4488 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A446A + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080A446A: + ldr r0, _080A448C @ =sub_80A43DC + str r0, [r5, 0x1C] + ldr r4, _080A4490 @ =gBattleAnimArgs + movs r0, 0 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_8074FF8 + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4488: .4byte gBattleAnimAttacker +_080A448C: .4byte sub_80A43DC +_080A4490: .4byte gBattleAnimArgs + thumb_func_end sub_80A4450 + + thumb_func_start sub_80A4494 +sub_80A4494: @ 80A4494 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080A44D4 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x38] + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldr r1, _080A44D8 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A44DC @ =sub_8074E70 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A44D4: .4byte gBattleAnimArgs +_080A44D8: .4byte move_anim_8074EE0 +_080A44DC: .4byte sub_8074E70 + thumb_func_end sub_80A4494 + + thumb_func_start sub_80A44E0 +sub_80A44E0: @ 80A44E0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080A4530 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A4514 + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] +_080A4514: + ldr r0, _080A4534 @ =sub_80A46CC + str r0, [r5, 0x1C] + ldr r0, _080A4538 @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080A453C + ldrh r0, [r3] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x20] + b _080A4550 + .align 2, 0 +_080A4530: .4byte gBattleAnimTarget +_080A4534: .4byte sub_80A46CC +_080A4538: .4byte gBattleAnimArgs +_080A453C: + ldrh r0, [r5, 0x20] + ldrh r1, [r3] + subs r0, r1 + strh r0, [r5, 0x20] + adds r2, r5, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080A4550: + ldrh r0, [r3, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldr r1, _080A4584 @ =0xfffffc00 + adds r0, r1, 0 + ldrh r2, [r5, 0x30] + adds r1, r0, r2 + strh r1, [r5, 0x30] + movs r2, 0x80 + lsls r2, 3 + adds r0, r2, 0 + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] + ldrh r0, [r3, 0x4] + strh r0, [r5, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A457E + negs r0, r1 + strh r0, [r5, 0x30] +_080A457E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4584: .4byte 0xfffffc00 + thumb_func_end sub_80A44E0 + + thumb_func_start sub_80A4588 +sub_80A4588: @ 80A4588 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldr r0, _080A45A4 @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080A45A8 + cmp r0, 0x1 + ble _080A4624 + cmp r0, 0x2 + beq _080A45C8 + b _080A4624 + .align 2, 0 +_080A45A4: .4byte gBattleAnimArgs +_080A45A8: + ldr r5, _080A45C4 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r5] + eors r4, r0 + adds r0, r4, 0 + b _080A4634 + .align 2, 0 +_080A45C4: .4byte gBattleAnimTarget +_080A45C8: + ldr r5, _080A4620 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r5] + movs r2, 0x2 + mov r8, r2 + mov r1, r8 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A463E + ldrb r0, [r5] + mov r2, r8 + eors r0, r2 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + lsrs r7, r0, 1 + ldrb r0, [r5] + mov r1, r8 + eors r0, r1 + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + lsrs r4, r0, 1 + b _080A463E + .align 2, 0 +_080A4620: .4byte gBattleAnimTarget +_080A4624: + ldr r4, _080A4670 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r4] +_080A4634: + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r4, r0, 24 +_080A463E: + strh r7, [r6, 0x20] + strh r4, [r6, 0x22] + ldr r0, _080A4670 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A4656 + ldrh r0, [r6, 0x22] + adds r0, 0x8 + strh r0, [r6, 0x22] +_080A4656: + ldr r0, _080A4674 @ =sub_80A46CC + str r0, [r6, 0x1C] + ldr r0, _080A4678 @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080A467C + ldrh r0, [r3] + ldrh r1, [r6, 0x20] + adds r0, r1 + strh r0, [r6, 0x20] + b _080A4690 + .align 2, 0 +_080A4670: .4byte gBattleAnimTarget +_080A4674: .4byte sub_80A46CC +_080A4678: .4byte gBattleAnimArgs +_080A467C: + ldrh r0, [r6, 0x20] + ldrh r1, [r3] + subs r0, r1 + strh r0, [r6, 0x20] + adds r2, r6, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080A4690: + ldrh r0, [r3, 0x2] + ldrh r2, [r6, 0x22] + adds r0, r2 + strh r0, [r6, 0x22] + ldr r1, _080A46C8 @ =0xfffffc00 + adds r0, r1, 0 + ldrh r2, [r6, 0x30] + adds r1, r0, r2 + strh r1, [r6, 0x30] + movs r2, 0x80 + lsls r2, 3 + adds r0, r2, 0 + ldrh r2, [r6, 0x32] + adds r0, r2 + strh r0, [r6, 0x32] + ldrh r0, [r3, 0x4] + strh r0, [r6, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A46BE + negs r0, r1 + strh r0, [r6, 0x30] +_080A46BE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A46C8: .4byte 0xfffffc00 + thumb_func_end sub_80A4588 + + thumb_func_start sub_80A46CC +sub_80A46CC: @ 80A46CC + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + ldrh r2, [r4, 0x34] + adds r0, r1, r2 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080A46EE + adds r0, r1, 0 + adds r0, 0x18 + b _080A46F2 +_080A46EE: + adds r0, r1, 0 + subs r0, 0x18 +_080A46F2: + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + subs r0, 0x18 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080A4728 + ldr r1, _080A4730 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + movs r0, 0x3 + strh r0, [r4, 0x2E] + ldr r0, _080A4734 @ =sub_8074C44 + str r0, [r4, 0x1C] +_080A4728: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4730: .4byte DestroyAnimSprite +_080A4734: .4byte sub_8074C44 + thumb_func_end sub_80A46CC + + thumb_func_start sub_80A4738 +sub_80A4738: @ 80A4738 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x32] + movs r2, 0x32 + ldrsh r0, [r5, r2] + cmp r0, 0x1 + ble _080A47DC + ldrh r1, [r5, 0x34] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A4794 + adds r3, r5, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + strb r0, [r3] + ldr r4, _080A4790 @ =gSprites + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r3, [r0] + adds r1, r2, 0 + ands r1, r3 + strb r1, [r0] + movs r0, 0x30 + ldrsh r1, [r5, r0] + 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] + b _080A47CA + .align 2, 0 +_080A4790: .4byte gSprites +_080A4794: + adds r1, r5, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldr r3, _080A47D8 @ =gSprites + movs r0, 0x2E + ldrsh r1, [r5, 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] + movs r0, 0x30 + ldrsh r1, [r5, 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] +_080A47CA: + movs r0, 0 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + b _080A47E0 + .align 2, 0 +_080A47D8: .4byte gSprites +_080A47DC: + adds r0, r1, 0x1 + strh r0, [r5, 0x32] +_080A47E0: + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0xA + bne _080A4810 + movs r2, 0x2E + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080A4818 @ =gSprites + adds r0, r4 + bl DestroySprite + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + adds r0, r5, 0 + bl DestroyAnimSprite +_080A4810: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4818: .4byte gSprites + thumb_func_end sub_80A4738 + + thumb_func_start sub_80A481C +sub_80A481C: @ 80A481C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080A483C @ =gBattleAnimArgs + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080A4840 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A4844 + ldrh r0, [r5, 0x20] + ldrh r1, [r4] + subs r0, r1 + b _080A484A + .align 2, 0 +_080A483C: .4byte gBattleAnimArgs +_080A4840: .4byte gBattleAnimAttacker +_080A4844: + ldrh r0, [r4] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080A484A: + strh r0, [r5, 0x20] + ldr r4, _080A4878 @ =gBattleAnimArgs + ldrb r1, [r4, 0xA] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x6] + negs r0, r0 + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x34] + ldr r1, _080A487C @ =sub_80A4880 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4878: .4byte gBattleAnimArgs +_080A487C: .4byte sub_80A4880 + thumb_func_end sub_80A481C + + thumb_func_start sub_80A4880 +sub_80A4880: @ 80A4880 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x64 + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _080A48AC + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0 + b _080A48B2 +_080A48AC: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0xE +_080A48B2: + strb r0, [r1] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x2E] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x38] + adds r0, 0x82 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080A48E8 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A48E8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4880 + + thumb_func_start sub_80A48F0 +sub_80A48F0: @ 80A48F0 + push {r4-r6,lr} + adds r5, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A4906 + ldr r1, _080A4964 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + adds r0, 0x8 + strh r0, [r1, 0x2] +_080A4906: + ldr r6, _080A4968 @ =gBattleAnimAttacker + ldrb r0, [r6] + movs r1, 0 + bl sub_8074844 + lsls r0, 24 + ldr r4, _080A4964 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8074844 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A4944 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A496C +_080A4944: + ldrb r0, [r6] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r5, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + b _080A4984 + .align 2, 0 +_080A4964: .4byte gBattleAnimArgs +_080A4968: .4byte gBattleAnimAttacker +_080A496C: + ldrb r0, [r6] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] +_080A4984: + ldr r0, _080A49C8 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080A49CC @ =0x00002828 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r5, 0x32] + movs r4, 0x10 + movs r0, 0x10 + strh r0, [r5, 0x3C] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r0, [r5, 0x3C] + lsls r1, r0, 8 + subs r4, r0 + orrs r1, r4 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080A49D0 @ =sub_80A49D4 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A49C8: .4byte gBattleAnimArgs +_080A49CC: .4byte 0x00002828 +_080A49D0: .4byte sub_80A49D4 + thumb_func_end sub_80A48F0 + + thumb_func_start sub_80A49D4 +sub_80A49D4: @ 80A49D4 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x60 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A4A32 + movs r0, 0 + strh r0, [r4, 0x30] + ldr r1, _080A4A7C @ =gPlttBufferFaded + movs r2, 0x32 + ldrsh r0, [r4, r2] + adds r0, 0x1 + lsls r0, 1 + adds r0, r1 + ldrh r5, [r0] + movs r2, 0 + adds r6, r1, 0 + adds r3, r6, 0 +_080A4A0C: + movs r1, 0x32 + ldrsh r0, [r4, r1] + adds r2, 0x1 + adds r0, r2 + lsls r1, r0, 1 + adds r1, r3 + adds r0, 0x1 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + cmp r2, 0x5 + ble _080A4A0C + movs r2, 0x32 + ldrsh r0, [r4, r2] + adds r0, 0x7 + lsls r0, 1 + adds r0, r6 + strh r5, [r0] +_080A4A32: + ldrh r2, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x6 + ble _080A4A6C + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + ble _080A4A80 + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A4A6C + movs r0, 0 + strh r0, [r4, 0x3A] + subs r2, 0x1 + strh r2, [r4, 0x3C] + lsls r1, r2, 8 + movs r0, 0x10 + subs r0, r2 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg +_080A4A6C: + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A4A80 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080A4AC2 + .align 2, 0 +_080A4A7C: .4byte gPlttBufferFaded +_080A4A80: + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A4AC2 + movs r0, 0 + strh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r2, 0x1 + strh r2, [r4, 0x3C] + lsls r1, r2, 8 + movs r0, 0x10 + subs r0, r2 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080A4AC2 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080A4AC8 @ =sub_8074F88 + str r0, [r4, 0x1C] +_080A4AC2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4AC8: .4byte sub_8074F88 + thumb_func_end sub_80A49D4 + + thumb_func_start sub_80A4ACC +sub_80A4ACC: @ 80A4ACC + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080A4B2C @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A4B30 @ =0x0000ffe8 + adds r0, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] + strh r5, [r4, 0x34] + strh r5, [r4, 0x36] + strh r5, [r4, 0x3A] + movs r0, 0x10 + strh r0, [r4, 0x3C] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r4, 0x3C] + lsls r1, 8 + ldrh r0, [r4, 0x3A] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080A4B34 @ =sub_80A4B38 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4B2C: .4byte gBattleAnimTarget +_080A4B30: .4byte 0x0000ffe8 +_080A4B34: .4byte sub_80A4B38 + thumb_func_end sub_80A4ACC + + thumb_func_start sub_80A4B38 +sub_80A4B38: @ 80A4B38 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080A4B46 + b _080A4C90 +_080A4B46: + lsls r0, 2 + ldr r1, _080A4B50 @ =_080A4B54 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A4B50: .4byte _080A4B54 + .align 2, 0 +_080A4B54: + .4byte _080A4B68 + .4byte _080A4BCC + .4byte _080A4BE8 + .4byte _080A4C66 + .4byte _080A4C7A +_080A4B68: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + cmp r0, 0 + bgt _080A4B76 + b _080A4C90 +_080A4B76: + movs r0, 0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A4B98 + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080A4BA6 + adds r0, r1, 0x1 + strh r0, [r4, 0x3A] + b _080A4BA6 +_080A4B98: + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A4BA6 + subs r0, r1, 0x1 + strh r0, [r4, 0x3C] +_080A4BA6: + ldrh r1, [r4, 0x3C] + lsls r1, 8 + ldrh r0, [r4, 0x3A] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080A4C90 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080A4C90 + strh r0, [r4, 0x30] + b _080A4C72 +_080A4BCC: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A4C90 + movs r0, 0 + strh r0, [r4, 0x30] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080A4C72 +_080A4BE8: + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x4 + bl sub_80A4C98 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080A4C0A + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_080A4C0A: + ldrh r0, [r4, 0x32] + adds r1, r0, 0x1 + strh r1, [r4, 0x32] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080A4C90 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080A4C30 + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A4C3E + subs r0, r1, 0x1 + strh r0, [r4, 0x3A] + b _080A4C3E +_080A4C30: + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080A4C3E + adds r0, r1, 0x1 + strh r0, [r4, 0x3C] +_080A4C3E: + ldrh r1, [r4, 0x3C] + lsls r1, 8 + ldrh r0, [r4, 0x3A] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x3A + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _080A4C90 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bne _080A4C90 + strh r1, [r4, 0x30] + strh r1, [r4, 0x32] + b _080A4C72 +_080A4C66: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080A4C72: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080A4C90 +_080A4C7A: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimSprite +_080A4C90: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4B38 + + thumb_func_start sub_80A4C98 +sub_80A4C98: @ 80A4C98 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0xB + bgt _080A4CAA + ldrh r0, [r4, 0x36] + adds r0, 0x2 + strh r0, [r4, 0x36] +_080A4CAA: + ldrh r5, [r4, 0x34] + adds r0, r5, 0 + subs r0, 0x12 + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + cmp r0, 0x17 + bhi _080A4CC0 + ldrh r0, [r4, 0x36] + subs r0, 0x2 + strh r0, [r4, 0x36] +_080A4CC0: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x2F + ble _080A4CCE + ldrh r0, [r4, 0x36] + adds r0, 0x2 + strh r0, [r4, 0x36] +_080A4CCE: + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0x9 + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl __divsi3 + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + bge _080A4CF4 + movs r1, 0x26 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x26] +_080A4CF4: + adds r0, r5, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + ble _080A4D04 + movs r0, 0 + strh r0, [r4, 0x34] +_080A4D04: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A4C98 + + thumb_func_start sub_80A4D0C +sub_80A4D0C: @ 80A4D0C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080A4D50 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A4D20 + adds r0, r4, 0 + bl sub_8074FCC +_080A4D20: + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_8074FF8 + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x32] + ldr r1, _080A4D54 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A4D58 @ =sub_8074D00 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4D50: .4byte gBattleAnimArgs +_080A4D54: .4byte DestroyAnimSprite +_080A4D58: .4byte sub_8074D00 + thumb_func_end sub_80A4D0C + + thumb_func_start sub_80A4D5C +sub_80A4D5C: @ 80A4D5C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080A4D70 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A4D78 + ldr r0, _080A4D74 @ =gBattleAnimAttacker + b _080A4D7A + .align 2, 0 +_080A4D70: .4byte gBattleAnimArgs +_080A4D74: .4byte gBattleAnimAttacker +_080A4D78: + ldr r0, _080A4DBC @ =gBattleAnimTarget +_080A4D7A: + ldrb r6, [r0] + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080A4DC4 + movs r1, 0x2 + adds r0, r6, 0 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A4DC4 + ldr r4, _080A4DC0 @ =gBattleAnimArgs + ldrb r1, [r4, 0xC] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + adds r0, r6, 0 + bl sub_8076D9C + movs r2, 0 + ldrsh r1, [r4, r2] + adds r0, r5, 0 + bl sub_8074FF8 + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + b _080A4E14 + .align 2, 0 +_080A4DBC: .4byte gBattleAnimTarget +_080A4DC0: .4byte gBattleAnimArgs +_080A4DC4: + ldr r4, _080A4DE4 @ =gBattleAnimArgs + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080A4DE8 + adds r0, r6, 0 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x1 + b _080A4DFA + .align 2, 0 +_080A4DE4: .4byte gBattleAnimArgs +_080A4DE8: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 +_080A4DFA: + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + ldr r0, _080A4E34 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + adds r0, r5, 0 + bl sub_8074FF8 +_080A4E14: + ldr r1, _080A4E34 @ =gBattleAnimArgs + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x32] + ldr r1, _080A4E38 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A4E3C @ =sub_8074D00 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4E34: .4byte gBattleAnimArgs +_080A4E38: .4byte DestroyAnimSprite +_080A4E3C: .4byte sub_8074D00 + thumb_func_end sub_80A4D5C + + thumb_func_start sub_80A4E40 +sub_80A4E40: @ 80A4E40 + push {r4,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r0, _080A4E6C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A4E74 + ldr r0, _080A4E70 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + b _080A4E8E + .align 2, 0 +_080A4E6C: .4byte gBattleAnimAttacker +_080A4E70: .4byte gBattleAnimArgs +_080A4E74: + ldr r2, _080A4E98 @ =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080A4E8E: + ldr r0, _080A4E9C @ =sub_80A4EA0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4E98: .4byte gBattleAnimArgs +_080A4E9C: .4byte sub_80A4EA0 + thumb_func_end sub_80A4E40 + + thumb_func_start sub_80A4EA0 +sub_80A4EA0: @ 80A4EA0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080A4ED8 + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r0, 0x1E + subs r0, r1 + movs r1, 0x3 + bl __divsi3 + strh r0, [r4, 0x26] + movs r1, 0x30 + ldrsh r0, [r4, r1] + lsls r0, 18 + asrs r0, 16 + movs r1, 0x3 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_080A4ED8: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A4EEC + adds r0, r4, 0 + bl DestroyAnimSprite +_080A4EEC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4EA0 + + thumb_func_start sub_80A4EF4 +sub_80A4EF4: @ 80A4EF4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r0, _080A4F24 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A4F2C + ldr r1, _080A4F28 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x1 + strh r0, [r4, 0x34] + b _080A4F4A + .align 2, 0 +_080A4F24: .4byte gBattleAnimAttacker +_080A4F28: .4byte gBattleAnimArgs +_080A4F2C: + ldr r2, _080A4F54 @ =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldr r0, _080A4F58 @ =0x0000ffff + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080A4F4A: + ldr r0, _080A4F5C @ =sub_80A4F60 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4F54: .4byte gBattleAnimArgs +_080A4F58: .4byte 0x0000ffff +_080A4F5C: .4byte sub_80A4F60 + thumb_func_end sub_80A4EF4 + + thumb_func_start sub_80A4F60 +sub_80A4F60: @ 80A4F60 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl __divsi3 + negs r0, r0 + strh r0, [r4, 0x26] + movs r2, 0x36 + ldrsh r0, [r4, r2] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 1 + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080A4FA4 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080A4FA4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4F60 + + thumb_func_start sub_80A4FAC +sub_80A4FAC: @ 80A4FAC + push {lr} + ldrh r1, [r0, 0x20] + subs r1, 0x20 + strh r1, [r0, 0x20] + ldrh r1, [r0, 0x22] + subs r1, 0x20 + strh r1, [r0, 0x22] + movs r1, 0x14 + strh r1, [r0, 0x2E] + ldr r1, _080A4FCC @ =sub_8074C44 + str r1, [r0, 0x1C] + ldr r1, _080A4FD0 @ =sub_80A4FD4 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080A4FCC: .4byte sub_8074C44 +_080A4FD0: .4byte sub_80A4FD4 + thumb_func_end sub_80A4FAC + + thumb_func_start sub_80A4FD4 +sub_80A4FD4: @ 80A4FD4 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r6, [r5, 0x38] + movs r1, 0x1 + adds r0, r1, 0 + ands r0, r6 + cmp r0, 0 + beq _080A4FEA + cmp r0, 0x1 + beq _080A5004 + b _080A506A +_080A4FEA: + strh r1, [r5, 0x2E] + ldr r0, _080A4FFC @ =sub_8074C44 + str r0, [r5, 0x1C] + ldr r1, _080A5000 @ =sub_80A4FD4 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + b _080A506A + .align 2, 0 +_080A4FFC: .4byte sub_8074C44 +_080A5000: .4byte sub_80A4FD4 +_080A5004: + ldrh r3, [r5, 0x24] + ldrh r0, [r5, 0x20] + adds r3, r0 + movs r0, 0 + strh r3, [r5, 0x20] + ldrh r4, [r5, 0x26] + ldrh r1, [r5, 0x22] + adds r4, r1 + strh r4, [r5, 0x22] + strh r0, [r5, 0x26] + strh r0, [r5, 0x24] + movs r0, 0x8 + strh r0, [r5, 0x2E] + ldr r2, _080A5078 @ =gUnknown_83E3548 + lsls r0, r6, 16 + asrs r0, 24 + lsls r0, 1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r3, r1 + strh r3, [r5, 0x32] + adds r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r4, r0 + strh r4, [r5, 0x36] + ldr r0, _080A507C @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A5080 @ =sub_80A5084 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + movs r0, 0x3F + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xCB + bl PlaySE12WithPanning +_080A506A: + ldrh r0, [r5, 0x38] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x38] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5078: .4byte gUnknown_83E3548 +_080A507C: .4byte sub_8075590 +_080A5080: .4byte sub_80A5084 + thumb_func_end sub_80A4FD4 + + thumb_func_start sub_80A5084 +sub_80A5084: @ 80A5084 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x38] + lsls r0, 16 + asrs r0, 24 + cmp r0, 0x4 + bne _080A50AC + movs r0, 0xA + strh r0, [r2, 0x2E] + ldr r0, _080A50A4 @ =sub_8074C44 + str r0, [r2, 0x1C] + ldr r1, _080A50A8 @ =sub_80A50B8 + adds r0, r2, 0 + bl StoreSpriteCallbackInData6 + b _080A50B0 + .align 2, 0 +_080A50A4: .4byte sub_8074C44 +_080A50A8: .4byte sub_80A50B8 +_080A50AC: + ldr r0, _080A50B4 @ =sub_80A4FD4 + str r0, [r2, 0x1C] +_080A50B0: + pop {r0} + bx r0 + .align 2, 0 +_080A50B4: .4byte sub_80A4FD4 + thumb_func_end sub_80A5084 + + thumb_func_start sub_80A50B8 +sub_80A50B8: @ 80A50B8 + push {r4-r7,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x6] + cmp r1, 0 + bne _080A50E0 + movs r0, 0x3 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + strh r1, [r5, 0x32] + ldr r0, _080A50D8 @ =sub_8074C44 + str r0, [r5, 0x1C] + ldr r1, _080A50DC @ =sub_80A5174 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + b _080A5160 + .align 2, 0 +_080A50D8: .4byte sub_8074C44 +_080A50DC: .4byte sub_80A5174 +_080A50E0: + ldrh r0, [r5, 0x6] + cmp r0, 0x2 + beq _080A5100 + cmp r0, 0x2 + bgt _080A50F0 + cmp r0, 0x1 + beq _080A50F6 + b _080A5114 +_080A50F0: + cmp r0, 0x3 + beq _080A5108 + b _080A5114 +_080A50F6: + ldr r6, _080A50FC @ =0x0000fff8 + adds r7, r6, 0 + b _080A5118 + .align 2, 0 +_080A50FC: .4byte 0x0000fff8 +_080A5100: + ldr r7, _080A5104 @ =0x0000fff8 + b _080A5116 + .align 2, 0 +_080A5104: .4byte 0x0000fff8 +_080A5108: + movs r7, 0x8 + ldr r6, _080A5110 @ =0x0000fff8 + b _080A5118 + .align 2, 0 +_080A5110: .4byte 0x0000fff8 +_080A5114: + movs r7, 0x8 +_080A5116: + movs r6, 0x8 +_080A5118: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080A5168 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + ldr r0, _080A516C @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A5170 @ =sub_80A5220 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 +_080A5160: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A5168: .4byte gBattleAnimTarget +_080A516C: .4byte sub_8075590 +_080A5170: .4byte sub_80A5220 + thumb_func_end sub_80A50B8 + + thumb_func_start sub_80A5174 +sub_80A5174: @ 80A5174 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A5194 + ldrh r0, [r4, 0x30] + adds r0, 0x3 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080A51A4 + movs r0, 0x10 + b _080A51A2 +_080A5194: + ldrh r0, [r4, 0x30] + subs r0, 0x3 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bge _080A51A4 + movs r0, 0 +_080A51A2: + strh r0, [r4, 0x30] +_080A51A4: + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_8075BE8 + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080A5200 @ =0x00007fff + bl BlendPalettes + movs r3, 0x30 + ldrsh r0, [r4, r3] + cmp r0, 0x10 + bne _080A520C + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + ldrb r1, [r4, 0x5] + lsrs r1, 4 + lsls r0, r1, 5 + ldr r2, _080A5204 @ =gPlttBufferUnfaded + 0x210 + adds r0, r2 + lsls r1, 4 + ldr r3, _080A5208 @ =0x00000101 + adds r2, r3, 0 + orrs r1, r2 + movs r2, 0x4 + bl LoadPalette + movs r0, 0x3F + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xB9 + bl PlaySE12WithPanning + b _080A5214 + .align 2, 0 +_080A5200: .4byte 0x00007fff +_080A5204: .4byte gPlttBufferUnfaded + 0x210 +_080A5208: .4byte 0x00000101 +_080A520C: + cmp r0, 0 + bne _080A5214 + ldr r0, _080A521C @ =sub_80A5220 + str r0, [r4, 0x1C] +_080A5214: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A521C: .4byte sub_80A5220 + thumb_func_end sub_80A5174 + + thumb_func_start sub_80A5220 +sub_80A5220: @ 80A5220 + push {lr} + adds r2, r0, 0 + ldr r0, _080A523C @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080A5240 @ =0x0000ffff + cmp r1, r0 + bne _080A5238 + movs r0, 0 + strh r0, [r2, 0x30] + strh r0, [r2, 0x2E] + ldr r0, _080A5244 @ =sub_80A5248 + str r0, [r2, 0x1C] +_080A5238: + pop {r0} + bx r0 + .align 2, 0 +_080A523C: .4byte gBattleAnimArgs +_080A5240: .4byte 0x0000ffff +_080A5244: .4byte sub_80A5248 + thumb_func_end sub_80A5220 + + thumb_func_start sub_80A5248 +sub_80A5248: @ 80A5248 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080A527C + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080A527C: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x8 + bne _080A5290 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A5290: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5248 + + thumb_func_start sub_80A5298 +sub_80A5298: @ 80A5298 + push {r4,lr} + adds r3, r0, 0 + ldr r0, _080A52B8 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r3, 0x6] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A52BC + ldrh r0, [r3, 0x20] + subs r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + subs r0, 0x18 + strh r0, [r3, 0x22] + b _080A530E + .align 2, 0 +_080A52B8: .4byte gBattleAnimArgs +_080A52BC: + cmp r0, 0x2 + bne _080A52D8 + ldrh r0, [r3, 0x20] + subs r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + adds r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x20 + b _080A530A +_080A52D8: + cmp r0, 0x3 + bne _080A52F4 + ldrh r0, [r3, 0x20] + adds r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + subs r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + b _080A530A +_080A52F4: + ldrh r0, [r3, 0x20] + adds r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + adds r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x30 +_080A530A: + orrs r0, r1 + strb r0, [r3, 0x3] +_080A530E: + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x10 + ldr r4, _080A5334 @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080A5338 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldr r1, _080A533C @ =sub_80A4FAC + str r1, [r3, 0x1C] + adds r0, r3, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5334: .4byte 0x000003ff +_080A5338: .4byte 0xfffffc00 +_080A533C: .4byte sub_80A4FAC + thumb_func_end sub_80A5298 + + thumb_func_start sub_80A5340 +sub_80A5340: @ 80A5340 + push {lr} + adds r3, r0, 0 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0 + strh r0, [r3, 0x2E] + ldr r0, _080A5368 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080A537C + cmp r0, 0x1 + bgt _080A536C + cmp r0, 0 + beq _080A5372 + b _080A538C + .align 2, 0 +_080A5368: .4byte gBattleAnimArgs +_080A536C: + cmp r0, 0x2 + beq _080A5384 + b _080A538C +_080A5372: + ldr r0, _080A5378 @ =sub_80A5398 + b _080A538E + .align 2, 0 +_080A5378: .4byte sub_80A5398 +_080A537C: + ldr r0, _080A5380 @ =sub_80A5474 + b _080A538E + .align 2, 0 +_080A5380: .4byte sub_80A5474 +_080A5384: + ldr r0, _080A5388 @ =sub_80A54C4 + b _080A538E + .align 2, 0 +_080A5388: .4byte sub_80A54C4 +_080A538C: + ldr r0, _080A5394 @ =sub_80A5584 +_080A538E: + str r0, [r3, 0x1C] + pop {r0} + bx r0 + .align 2, 0 +_080A5394: .4byte sub_80A5584 + thumb_func_end sub_80A5340 + + thumb_func_start sub_80A5398 +sub_80A5398: @ 80A5398 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + strh r0, [r4, 0x2E] + ldr r5, _080A53D8 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, 24 + movs r2, 0x2 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + beq _080A53B6 + movs r1, 0x2 +_080A53B6: + strh r1, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080A53DC @ =gBattlerSpriteIds + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x34] + ldr r1, _080A53E0 @ =sub_80A53E8 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A53E4 @ =sub_8074DC4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A53D8: .4byte gBattleAnimAttacker +_080A53DC: .4byte gBattlerSpriteIds +_080A53E0: .4byte sub_80A53E8 +_080A53E4: .4byte sub_8074DC4 + thumb_func_end sub_80A5398 + + thumb_func_start sub_80A53E8 +sub_80A53E8: @ 80A53E8 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x2E + ldrsh r6, [r5, r0] + cmp r6, 0 + bne _080A5424 + ldr r1, _080A5464 @ =gBattlerSpriteIds + ldr r4, _080A5468 @ =gBattleAnimAttacker + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5, 0x34] + movs r1, 0 + bl sub_80758E0 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + ldr r2, _080A546C @ =0xfffffd00 + adds r1, r2, 0 + cmp r0, 0 + beq _080A5420 + movs r0, 0xC0 + lsls r0, 2 + adds r1, r0, 0 +_080A5420: + strh r1, [r5, 0x36] + strh r6, [r5, 0x38] +_080A5424: + ldrh r0, [r5, 0x36] + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r5, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_80759DC + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A545E + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080A5470 @ =sub_80A5584 + str r0, [r5, 0x1C] +_080A545E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5464: .4byte gBattlerSpriteIds +_080A5468: .4byte gBattleAnimAttacker +_080A546C: .4byte 0xfffffd00 +_080A5470: .4byte sub_80A5584 + thumb_func_end sub_80A53E8 + + thumb_func_start sub_80A5474 +sub_80A5474: @ 80A5474 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x4 + strh r0, [r4, 0x2E] + ldr r5, _080A54B4 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, 24 + movs r1, 0x3 + cmp r0, 0 + beq _080A5492 + movs r0, 0x3 + negs r0, r0 + adds r1, r0, 0 +_080A5492: + strh r1, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080A54B8 @ =gBattlerSpriteIds + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x34] + ldr r1, _080A54BC @ =sub_80A5584 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A54C0 @ =sub_8074DC4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A54B4: .4byte gBattleAnimAttacker +_080A54B8: .4byte gBattlerSpriteIds +_080A54BC: .4byte sub_80A5584 +_080A54C0: .4byte sub_8074DC4 + thumb_func_end sub_80A5474 + + thumb_func_start sub_80A54C4 +sub_80A54C4: @ 80A54C4 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A54DE + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080A54E4 @ =sub_80A54E8 + str r0, [r1, 0x1C] +_080A54DE: + pop {r0} + bx r0 + .align 2, 0 +_080A54E4: .4byte sub_80A54E8 + thumb_func_end sub_80A54C4 + + thumb_func_start sub_80A54E8 +sub_80A54E8: @ 80A54E8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A5538 + ldr r1, _080A5524 @ =gBattlerSpriteIds + ldr r4, _080A5528 @ =gBattleAnimAttacker + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5, 0x34] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A552C + movs r0, 0xFC + lsls r0, 8 + strh r0, [r5, 0x36] + movs r0, 0xC0 + lsls r0, 4 + b _080A5536 + .align 2, 0 +_080A5524: .4byte gBattlerSpriteIds +_080A5528: .4byte gBattleAnimAttacker +_080A552C: + movs r0, 0x80 + lsls r0, 3 + strh r0, [r5, 0x36] + movs r0, 0xF4 + lsls r0, 8 +_080A5536: + strh r0, [r5, 0x38] +_080A5538: + ldrh r0, [r5, 0x36] + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r5, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_80759DC + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080A5578 + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_8075980 + ldr r0, _080A5580 @ =sub_80A5584 + str r0, [r5, 0x1C] +_080A5578: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5580: .4byte sub_80A5584 + thumb_func_end sub_80A54E8 + + thumb_func_start sub_80A5584 +sub_80A5584: @ 80A5584 + push {lr} + bl DestroyAnimSprite + pop {r0} + bx r0 + thumb_func_end sub_80A5584 + + thumb_func_start sub_80A5590 +sub_80A5590: @ 80A5590 + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r1, _080A559C @ =sub_80A55A0 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080A559C: .4byte sub_80A55A0 + thumb_func_end sub_80A5590 + + thumb_func_start sub_80A55A0 +sub_80A55A0: @ 80A55A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080A55FA + cmp r5, 0x1 + bgt _080A55B6 + cmp r5, 0 + beq _080A55BC + b _080A568E +_080A55B6: + cmp r5, 0x2 + beq _080A564C + b _080A568E +_080A55BC: + strh r5, [r4, 0x30] + ldr r1, _080A5640 @ =gBattlerSpriteIds + ldr r2, _080A5644 @ =gBattleAnimAttacker + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x32] + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x34] + ldr r2, _080A5648 @ =0xfffffe00 + adds r1, r2, 0 + cmp r0, 0 + beq _080A55E4 + movs r0, 0x80 + lsls r0, 2 + adds r1, r0, 0 +_080A55E4: + strh r1, [r4, 0x36] + strh r5, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80758E0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_080A55FA: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80759DC + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A568E + movs r0, 0 + strh r0, [r4, 0x30] + movs r2, 0x36 + ldrsh r0, [r4, r2] + negs r0, r0 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080A568E + .align 2, 0 +_080A5640: .4byte gBattlerSpriteIds +_080A5644: .4byte gBattleAnimAttacker +_080A5648: .4byte 0xfffffe00 +_080A564C: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80759DC + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A568E + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_8075980 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A568E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A55A0 + + thumb_func_start sub_80A5694 +sub_80A5694: @ 80A5694 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080A56D8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldr r1, _080A56DC @ =gBattlerSpriteIds + ldr r2, _080A56E0 @ =gBattleAnimAttacker + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + movs r4, 0 + strh r0, [r5, 0x8] + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, 24 + lsrs r2, r0, 24 + strh r2, [r5, 0xA] + strh r4, [r5, 0xC] + ldr r0, _080A56E4 @ =gBattleAnimArgs + movs r3, 0 + ldrsh r1, [r0, r3] + cmp r1, 0 + beq _080A56E8 + cmp r1, 0x1 + beq _080A5704 + adds r0, r6, 0 + bl DestroyAnimVisualTask + b _080A5722 + .align 2, 0 +_080A56D8: .4byte gTasks +_080A56DC: .4byte gBattlerSpriteIds +_080A56E0: .4byte gBattleAnimAttacker +_080A56E4: .4byte gBattleAnimArgs +_080A56E8: + strh r1, [r5, 0xC] + movs r0, 0x8 + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] + movs r0, 0x3 + strh r0, [r5, 0x12] + cmp r2, 0 + bne _080A56FC + negs r0, r0 + strh r0, [r5, 0x12] +_080A56FC: + ldr r0, _080A5700 @ =sub_80A572C + b _080A5720 + .align 2, 0 +_080A5700: .4byte sub_80A572C +_080A5704: + movs r0, 0x8 + strh r0, [r5, 0xE] + movs r0, 0xC0 + lsls r0, 3 + strh r0, [r5, 0x10] + movs r1, 0xC0 + strh r1, [r5, 0x12] + cmp r2, 0 + bne _080A571E + negs r0, r0 + strh r0, [r5, 0x10] + negs r0, r1 + strh r0, [r5, 0x12] +_080A571E: + ldr r0, _080A5728 @ =sub_80A58EC +_080A5720: + str r0, [r5] +_080A5722: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5728: .4byte sub_80A58EC + thumb_func_end sub_80A5694 + + thumb_func_start sub_80A572C +sub_80A572C: @ 80A572C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080A5750 @ =gTasks + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080A5746 + b _080A58E6 +_080A5746: + lsls r0, 2 + ldr r1, _080A5754 @ =_080A5758 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A5750: .4byte gTasks +_080A5754: .4byte _080A5758 + .align 2, 0 +_080A5758: + .4byte _080A576C + .4byte _080A579E + .4byte _080A57F8 + .4byte _080A5870 + .4byte _080A58B4 +_080A576C: + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r1, 0 + beq _080A577C + ldrh r2, [r4, 0x12] + ldrh r3, [r4, 0x10] + adds r2, r3 + b _080A58C2 +_080A577C: + movs r0, 0x8 + strh r0, [r4, 0xE] + strh r1, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r1, 0xC0 + cmp r0, 0 + bne _080A5792 + movs r2, 0xC0 + negs r2, r2 + adds r1, r2, 0 +_080A5792: + strh r1, [r4, 0x12] + ldrb r0, [r4, 0x8] + movs r1, 0 + bl sub_80758E0 + b _080A58A8 +_080A579E: + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080A57C4 + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x10] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_80759DC + b _080A58D4 +_080A57C4: + movs r0, 0x8 + strh r0, [r4, 0xE] + ldr r2, _080A57F4 @ =gSprites + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x24] + strh r0, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x2 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080A57EA + movs r1, 0x2 +_080A57EA: + strh r1, [r4, 0x12] + movs r0, 0x1 + strh r0, [r4, 0x14] + b _080A58A8 + .align 2, 0 +_080A57F4: .4byte gSprites +_080A57F8: + ldrh r2, [r4, 0xE] + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080A5854 + ldrh r1, [r4, 0x14] + movs r3, 0x14 + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080A5812 + subs r0, r1, 0x1 + strh r0, [r4, 0x14] + b _080A58E6 +_080A5812: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080A5834 + ldr r2, _080A5830 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x12] + ldrh r2, [r4, 0x10] + adds r1, r2 + b _080A5848 + .align 2, 0 +_080A5830: .4byte gSprites +_080A5834: + ldr r2, _080A5850 @ =gSprites + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + ldrh r2, [r4, 0x12] + subs r1, r2 +_080A5848: + strh r1, [r0, 0x24] + movs r0, 0x1 + strh r0, [r4, 0x14] + b _080A58D4 + .align 2, 0 +_080A5850: .4byte gSprites +_080A5854: + ldr r2, _080A586C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + strh r1, [r0, 0x24] + movs r0, 0xC + strh r0, [r4, 0xE] + b _080A58A8 + .align 2, 0 +_080A586C: .4byte gSprites +_080A5870: + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080A5880 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080A58E6 +_080A5880: + movs r0, 0x3 + strh r0, [r4, 0xE] + ldr r2, _080A58B0 @ =gSprites + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x24] + strh r0, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x8 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080A58A6 + movs r1, 0x8 +_080A58A6: + strh r1, [r4, 0x12] +_080A58A8: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _080A58E6 + .align 2, 0 +_080A58B0: .4byte gSprites +_080A58B4: + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080A58E0 + ldrh r2, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r2, r0 +_080A58C2: + strh r2, [r4, 0x10] + ldr r3, _080A58DC @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x24] +_080A58D4: + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080A58E6 + .align 2, 0 +_080A58DC: .4byte gSprites +_080A58E0: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080A58E6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A572C + + thumb_func_start sub_80A58EC +sub_80A58EC: @ 80A58EC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A5928 @ =gTasks + adds r4, r0, r1 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A592C + ldrh r0, [r4, 0x10] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x10] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_80759DC + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080A5938 + .align 2, 0 +_080A5928: .4byte gTasks +_080A592C: + ldrb r0, [r4, 0x8] + bl sub_8075980 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A5938: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A58EC + + thumb_func_start sub_80A5940 +sub_80A5940: @ 80A5940 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080A5954 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A595C + ldr r4, _080A5958 @ =gBattleAnimAttacker + b _080A595E + .align 2, 0 +_080A5954: .4byte gBattleAnimArgs +_080A5958: .4byte gBattleAnimAttacker +_080A595C: + ldr r4, _080A599C @ =gBattleAnimTarget +_080A595E: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x4] + adds r0, r6 + strh r0, [r5, 0x22] + movs r0, 0 + strh r0, [r5, 0x2E] + strh r0, [r5, 0x30] + ldr r1, _080A59A0 @ =sub_80A5A8C + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A59A4 @ =sub_8074F6C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A599C: .4byte gBattleAnimTarget +_080A59A0: .4byte sub_80A5A8C +_080A59A4: .4byte sub_8074F6C + thumb_func_end sub_80A5940 + + thumb_func_start sub_80A59A8 +sub_80A59A8: @ 80A59A8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080A59E0 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A59E4 @ =0x0000ffd0 + adds r0, r1 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r1, _080A59E8 @ =sub_80A5A44 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A59EC @ =sub_8074F6C + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A59E0: .4byte gBattleAnimTarget +_080A59E4: .4byte 0x0000ffd0 +_080A59E8: .4byte sub_80A5A44 +_080A59EC: .4byte sub_8074F6C + thumb_func_end sub_80A59A8 + + thumb_func_start sub_80A59F0 +sub_80A59F0: @ 80A59F0 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080A5A34 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A5A38 @ =gBattleAnimArgs + ldr r2, _080A5A3C @ =0x0000ffd0 + adds r0, r2 + ldrh r1, [r1] + adds r0, r1 + movs r6, 0 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + strh r6, [r4, 0x2E] + strh r6, [r4, 0x30] + ldr r0, _080A5A40 @ =sub_80A5A8C + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5A34: .4byte gBattleAnimTarget +_080A5A38: .4byte gBattleAnimArgs +_080A5A3C: .4byte 0x0000ffd0 +_080A5A40: .4byte sub_80A5A8C + thumb_func_end sub_80A59F0 + + thumb_func_start sub_80A5A44 +sub_80A5A44: @ 80A5A44 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A5A6E + movs r0, 0xC + strh r0, [r4, 0x2E] + movs r0, 0x8 + strh r0, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080A5A74 @ =sub_80A5A7C + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A5A78 @ =sub_8074CD0 + str r0, [r4, 0x1C] +_080A5A6E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5A74: .4byte sub_80A5A7C +_080A5A78: .4byte sub_8074CD0 + thumb_func_end sub_80A5A44 + + thumb_func_start sub_80A5A7C +sub_80A5A7C: @ 80A5A7C + movs r1, 0 + strh r1, [r0, 0x2E] + strh r1, [r0, 0x30] + ldr r1, _080A5A88 @ =sub_80A5A8C + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080A5A88: .4byte sub_80A5A8C + thumb_func_end sub_80A5A7C + + thumb_func_start sub_80A5A8C +sub_80A5A8C: @ 80A5A8C + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A5AD4 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A5AD4 + adds r0, r3, 0 + bl DestroyAnimSprite +_080A5AD4: + pop {r0} + bx r0 + thumb_func_end sub_80A5A8C + + thumb_func_start sub_80A5AD8 +sub_80A5AD8: @ 80A5AD8 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080A5AEC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A5AF4 + ldr r4, _080A5AF0 @ =gBattleAnimAttacker + b _080A5AF6 + .align 2, 0 +_080A5AEC: .4byte gBattleAnimArgs +_080A5AF0: .4byte gBattleAnimAttacker +_080A5AF4: + ldr r4, _080A5B30 @ =gBattleAnimTarget +_080A5AF6: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x4] + adds r0, r6 + strh r0, [r5, 0x22] + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080A5B34 @ =gBattleAnimArgs + ldrh r0, [r0, 0x6] + strh r0, [r5, 0x30] + ldr r0, _080A5B38 @ =sub_80A5B3C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5B30: .4byte gBattleAnimTarget +_080A5B34: .4byte gBattleAnimArgs +_080A5B38: .4byte sub_80A5B3C + thumb_func_end sub_80A5AD8 + + thumb_func_start sub_80A5B3C +sub_80A5B3C: @ 80A5B3C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x30 + ldrsh r1, [r2, r3] + cmp r0, r1 + ble _080A5B5C + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x22] + subs r0, 0x1 + strh r0, [r2, 0x22] +_080A5B5C: + ldrh r0, [r2, 0x22] + ldrh r1, [r2, 0x2E] + subs r0, r1 + strh r0, [r2, 0x22] + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A5B78 + adds r0, r2, 0 + bl DestroyAnimSprite +_080A5B78: + pop {r0} + bx r0 + thumb_func_end sub_80A5B3C + + thumb_func_start sub_80A5B7C +sub_80A5B7C: @ 80A5B7C + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080A5BC4 @ =gBattleAnimAttacker + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0xC + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + movs r0, 0x2 + strh r0, [r4, 0x30] + strh r5, [r4, 0x32] + strh r5, [r4, 0x34] + strh r5, [r4, 0x36] + subs r0, 0x42 + bl sub_8073A44 + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0x38] + ldr r0, _080A5BC8 @ =sub_80A5BCC + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5BC4: .4byte gBattleAnimAttacker +_080A5BC8: .4byte sub_80A5BCC + thumb_func_end sub_80A5B7C + + thumb_func_start sub_80A5BCC +sub_80A5BCC: @ 80A5BCC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x30 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080A5C38 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r1, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080A5C1E + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A5C1E + ldrh r1, [r4, 0x38] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xBB + bl PlaySE12WithPanning +_080A5C1E: + movs r1, 0 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A5C38 + strh r1, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_080A5C38: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A5C62 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x10 + ble _080A5C62 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080A5C62 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A5C62: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5BCC + + thumb_func_start sub_80A5C68 +sub_80A5C68: @ 80A5C68 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A5CB2 + ldr r4, _080A5CC8 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + ldr r5, _080A5CCC @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x2] + adds r0, r5 + strh r0, [r6, 0x22] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A5CAC + ldrh r0, [r6, 0x22] + adds r0, 0xA + strh r0, [r6, 0x22] +_080A5CAC: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + strh r0, [r6, 0x2E] +_080A5CB2: + ldr r0, _080A5CCC @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080A5CD0 @ =0x0000ffff + cmp r1, r0 + bne _080A5CC2 + adds r0, r6, 0 + bl DestroyAnimSprite +_080A5CC2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5CC8: .4byte gBattleAnimAttacker +_080A5CCC: .4byte gBattleAnimArgs +_080A5CD0: .4byte 0x0000ffff + thumb_func_end sub_80A5C68 + + thumb_func_start sub_80A5CD4 +sub_80A5CD4: @ 80A5CD4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080A5CF4 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080A5D00 + ldr r1, _080A5CF8 @ =gBattleAnimArgs + ldr r0, _080A5CFC @ =0x0000ffff + strh r0, [r1, 0xE] + b _080A5D3E + .align 2, 0 +_080A5CF4: .4byte gTasks +_080A5CF8: .4byte gBattleAnimArgs +_080A5CFC: .4byte 0x0000ffff +_080A5D00: + cmp r0, 0x2 + bne _080A5D0C + adds r0, r2, 0 + bl DestroyAnimVisualTask + b _080A5D44 +_080A5D0C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080A5D44 + movs r0, 0 + strh r0, [r4, 0x8] + ldrh r2, [r4, 0xA] + adds r2, 0x1 + strh r2, [r4, 0xA] + lsls r1, r2, 8 + movs r0, 0x10 + subs r0, r2 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080A5D44 +_080A5D3E: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] +_080A5D44: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5CD4 + + thumb_func_start sub_80A5D4C +sub_80A5D4C: @ 80A5D4C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075114 + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080A5D74 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080A5D78 @ =sub_80A5D7C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5D74: .4byte gBattleAnimArgs +_080A5D78: .4byte sub_80A5D7C + thumb_func_end sub_80A5D4C + + thumb_func_start sub_80A5D7C +sub_80A5D7C: @ 80A5D7C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080A5D90 + subs r0, r1, 0x1 + strh r0, [r5, 0x2E] + b _080A5DCC +_080A5D90: + adds r2, r5, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + movs r0, 0x1E + strh r0, [r5, 0x2E] + ldr r4, _080A5DD4 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080A5DD8 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A5DDC @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 +_080A5DCC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5DD4: .4byte gBattleAnimAttacker +_080A5DD8: .4byte sub_8075590 +_080A5DDC: .4byte DestroyAnimSprite + thumb_func_end sub_80A5D7C + + thumb_func_start sub_80A5DE0 +sub_80A5DE0: @ 80A5DE0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A5E30 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080A5E28 + movs r0, 0 + strh r0, [r4, 0x8] + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080A5E28 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A5E28: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5E30: .4byte gTasks + thumb_func_end sub_80A5DE0 + + thumb_func_start sub_80A5E34 +sub_80A5E34: @ 80A5E34 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + ldr r0, _080A5E9C @ =gBattlersCount + ldrb r0, [r0] + cmp r4, r0 + bcs _080A5E90 + ldr r6, _080A5EA0 @ =gBattleAnimArgs + ldr r5, _080A5EA4 @ =gUnknown_3004FF0 +_080A5E48: + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bne _080A5E64 + adds r0, r4, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A5E64 + adds r0, r4, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible +_080A5E64: + movs r1, 0x2 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bne _080A5E82 + adds r0, r4, 0 + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A5E82 + adds r0, r4, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible +_080A5E82: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080A5E9C @ =gBattlersCount + ldrb r0, [r0] + cmp r4, r0 + bcc _080A5E48 +_080A5E90: + adds r0, r7, 0 + bl DestroyAnimVisualTask + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A5E9C: .4byte gBattlersCount +_080A5EA0: .4byte gBattleAnimArgs +_080A5EA4: .4byte gUnknown_3004FF0 + thumb_func_end sub_80A5E34 + + thumb_func_start sub_80A5EA8 +sub_80A5EA8: @ 80A5EA8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + b _080A5EC2 +_080A5EB2: + ldr r0, _080A5ED8 @ =gUnknown_3004FF0 + adds r0, r4, r0 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080A5EC2: + ldr r0, _080A5EDC @ =gBattlersCount + ldrb r0, [r0] + cmp r4, r0 + bcc _080A5EB2 + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5ED8: .4byte gUnknown_3004FF0 +_080A5EDC: .4byte gBattlersCount + thumb_func_end sub_80A5EA8 + + thumb_func_start sub_80A5EE0 +sub_80A5EE0: @ 80A5EE0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A5EF6 + movs r0, 0x30 + strh r0, [r4, 0x20] + movs r0, 0x28 + b _080A5EFE +_080A5EF6: + ldr r0, _080A5F20 @ =gBattleAnimArgs + ldrh r1, [r0] + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] +_080A5EFE: + strh r0, [r4, 0x22] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r4, 0x3] + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080A5F24 @ =sub_80A5F28 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5F20: .4byte gBattleAnimArgs +_080A5F24: .4byte sub_80A5F28 + thumb_func_end sub_80A5EE0 + + thumb_func_start sub_80A5F28 +sub_80A5F28: @ 80A5F28 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080A5F3A + adds r0, r1, 0 + bl DestroyAnimSprite +_080A5F3A: + pop {r0} + bx r0 + thumb_func_end sub_80A5F28 + + thumb_func_start sub_80A5F40 +sub_80A5F40: @ 80A5F40 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A5F78 @ =gBattleAnimAttacker + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r2, _080A5F7C @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r2] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + strh r0, [r4, 0x22] + strh r1, [r4, 0x2E] + strh r1, [r4, 0x30] + strh r1, [r4, 0x32] + strh r1, [r4, 0x34] + movs r0, 0x1 + strh r0, [r4, 0x36] + ldr r0, _080A5F80 @ =sub_80A5F84 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5F78: .4byte gBattleAnimAttacker +_080A5F7C: .4byte gBattleAnimArgs +_080A5F80: .4byte sub_80A5F84 + thumb_func_end sub_80A5F40 + + thumb_func_start sub_80A5F84 +sub_80A5F84: @ 80A5F84 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A5FAE + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r2, [r1, 0x32] + movs r3, 0x32 + ldrsh r0, [r1, r3] + cmp r0, 0x77 + bgt _080A5FAE + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] + adds r0, r2, 0x1 + strh r0, [r1, 0x32] +_080A5FAE: + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080A5FBC + adds r0, r1, 0 + bl DestroyAnimSprite +_080A5FBC: + pop {r0} + bx r0 + thumb_func_end sub_80A5F84 + + thumb_func_start sub_80A5FC0 +sub_80A5FC0: @ 80A5FC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + mov r8, r0 + ldr r0, _080A6090 @ =0x0000ffff + mov r1, r8 + ands r1, r0 + mov r8, r1 + ldr r0, _080A6094 @ =gTasks + mov r9, r0 + lsls r5, r7, 2 + adds r5, r7 + lsls r5, 3 + adds r6, r5, r0 + strh r4, [r6, 0x8] + strh r4, [r6, 0xA] + strh r4, [r6, 0xC] + strh r1, [r6, 0xE] + strh r4, [r6, 0x10] + strh r4, [r6, 0x12] + strh r4, [r6, 0x14] + movs r0, 0xD + strh r0, [r6, 0x16] + movs r0, 0xE + strh r0, [r6, 0x18] + movs r0, 0xF + strh r0, [r6, 0x1A] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_8075CB8 + mov r10, r0 + mov r1, r8 + orrs r1, r0 + mov r8, r1 + movs r0, 0x8 + add r9, r0 + add r5, r9 + adds r0, r5, 0 + adds r0, 0x1C + adds r5, 0x1E + adds r1, r5, 0 + mov r2, r8 + bl sub_80765C0 + ldr r0, _080A6098 @ =0x000027d2 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r4, 0x80 + lsls r4, 9 + adds r1, r4, 0 + lsls r1, r0 + mov r0, r10 + orrs r0, r1 + mov r10, r0 + ldr r0, _080A609C @ =0x000027d3 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0 + mov r1, r10 + orrs r4, r1 + ldr r0, _080A60A0 @ =0x00007fbb + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080A60A4 @ =sub_80A60A8 + str r1, [r6] + adds r0, r7, 0 + bl _call_via_r1 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6090: .4byte 0x0000ffff +_080A6094: .4byte gTasks +_080A6098: .4byte 0x000027d2 +_080A609C: .4byte 0x000027d3 +_080A60A0: .4byte 0x00007fbb +_080A60A4: .4byte sub_80A60A8 + thumb_func_end sub_80A5FC0 + + thumb_func_start sub_80A60A8 +sub_80A60A8: @ 80A60A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080A60D0 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080A6194 + cmp r1, 0x1 + bgt _080A60D4 + cmp r1, 0 + beq _080A60E2 + b _080A6232 + .align 2, 0 +_080A60D0: .4byte gTasks +_080A60D4: + cmp r1, 0x2 + bne _080A60DA + b _080A61EC +_080A60DA: + cmp r1, 0x3 + bne _080A60E0 + b _080A6220 +_080A60E0: + b _080A6232 +_080A60E2: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bgt _080A60F0 + b _080A6232 +_080A60F0: + strh r1, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bgt _080A613C + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + ldrh r2, [r4, 0x18] + ldrh r3, [r4, 0x12] + adds r2, r3 + strh r2, [r4, 0x12] + ldrh r1, [r4, 0x1A] + ldrh r5, [r4, 0x14] + adds r1, r5 + strh r1, [r4, 0x14] + lsls r0, 16 + asrs r0, 19 + lsls r0, 16 + lsrs r0, 16 + lsls r2, 16 + asrs r2, 19 + lsls r2, 16 + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r2, 11 + orrs r0, r2 + lsrs r1, 6 + orrs r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + b _080A6146 +_080A613C: + ldr r7, _080A618C @ =0x00007fbb + mov r12, r7 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080A6146: + movs r2, 0x1 + movs r3, 0 + movs r1, 0 +_080A614C: + movs r5, 0xE + ldrsh r0, [r4, r5] + ands r0, r2 + lsls r5, r2, 17 + adds r6, r3, 0 + adds r6, 0x10 + adds r1, 0x1 + mov r8, r1 + cmp r0, 0 + beq _080A6178 + movs r1, 0x1 + ldr r2, _080A6190 @ =gPlttBufferFaded +_080A6164: + adds r0, r3, r1 + lsls r0, 1 + adds r0, r2 + mov r7, r12 + strh r7, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _080A6164 +_080A6178: + lsrs r2, r5, 16 + lsls r0, r6, 16 + lsrs r3, r0, 16 + mov r1, r8 + lsls r0, r1, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _080A614C + b _080A6232 + .align 2, 0 +_080A618C: .4byte 0x00007fbb +_080A6190: .4byte gPlttBufferFaded +_080A6194: + ldr r0, _080A61DC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A6232 + movs r2, 0 + ldr r3, _080A61E0 @ =gSprites + movs r5, 0x14 + adds r5, r3 + mov r12, r5 + ldr r7, _080A61E4 @ =gUnknown_83E3734 + mov r8, r7 + ldr r6, _080A61E8 @ =gUnknown_83E3764 + movs r5, 0x1 +_080A61B2: + lsls r0, r2, 4 + adds r0, r2 + lsls r1, r0, 2 + mov r7, r12 + adds r0, r1, r7 + ldr r0, [r0] + cmp r0, r8 + beq _080A61C6 + cmp r0, r6 + bne _080A61CA +_080A61C6: + adds r0, r1, r3 + strh r5, [r0, 0x2E] +_080A61CA: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3F + bls _080A61B2 + movs r0, 0 + strh r0, [r4, 0xA] + b _080A6214 + .align 2, 0 +_080A61DC: .4byte gPaletteFade +_080A61E0: .4byte gSprites +_080A61E4: .4byte gUnknown_83E3734 +_080A61E8: .4byte gUnknown_83E3764 +_080A61EC: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080A6232 + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + bl sub_80765C8 + ldr r1, _080A621C @ =0x00007fbb + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_080A6214: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080A6232 + .align 2, 0 +_080A621C: .4byte 0x00007fbb +_080A6220: + ldr r0, _080A6240 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A6232 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080A6232: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6240: .4byte gPaletteFade + thumb_func_end sub_80A60A8 + + thumb_func_start sub_80A6244 +sub_80A6244: @ 80A6244 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080A62C8 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bgt _080A6256 + movs r0, 0x2 + strh r0, [r6, 0x4] +_080A6256: + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0x7F + ble _080A6262 + movs r0, 0x7F + strh r0, [r6, 0x4] +_080A6262: + movs r0, 0 + strh r0, [r5, 0x2E] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x30] + ldr r4, _080A62CC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x2] + adds r0, r6 + strh r0, [r5, 0x22] + ldrh r1, [r5, 0x20] + strh r1, [r5, 0x3A] + strh r0, [r5, 0x3C] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A62D4 + ldrb r1, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x3] + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + adds r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080A62D0 @ =0xffffec00 + b _080A62FA + .align 2, 0 +_080A62C8: .4byte gBattleAnimArgs +_080A62CC: .4byte gBattleAnimTarget +_080A62D0: .4byte 0xffffec00 +_080A62D4: + ldr r0, _080A6314 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A631C + ldrh r0, [r5, 0x20] + subs r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + adds r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + movs r0, 0xA0 + lsls r0, 5 +_080A62FA: + bl __divsi3 + strh r0, [r5, 0x34] + lsls r4, 7 + strh r4, [r5, 0x36] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080A6318 @ =0xfffff600 + bl __divsi3 + strh r0, [r5, 0x38] + b _080A6358 + .align 2, 0 +_080A6314: .4byte gBattleAnimAttacker +_080A6318: .4byte 0xfffff600 +_080A631C: + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + subs r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080A6364 @ =0xffffec00 + bl __divsi3 + strh r0, [r5, 0x34] + lsls r4, 7 + strh r4, [r5, 0x36] + movs r0, 0x30 + ldrsh r1, [r5, r0] + movs r0, 0xA0 + lsls r0, 4 + bl __divsi3 + strh r0, [r5, 0x38] + ldrb r1, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x30 + orrs r0, r1 + strb r0, [r5, 0x3] +_080A6358: + ldr r0, _080A6368 @ =sub_80A636C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6364: .4byte 0xffffec00 +_080A6368: .4byte sub_80A636C + thumb_func_end sub_80A6244 + + thumb_func_start sub_80A636C +sub_80A636C: @ 80A636C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r2, 0x38] + ldrh r3, [r2, 0x36] + adds r1, r3 + strh r1, [r2, 0x36] + lsls r0, 16 + asrs r0, 23 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 23 + strh r1, [r2, 0x22] + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A63A2 + ldrh r0, [r2, 0x3A] + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x3C] + strh r0, [r2, 0x22] +_080A63A2: + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080A63B0 + adds r0, r2, 0 + bl DestroyAnimSprite +_080A63B0: + pop {r0} + bx r0 + thumb_func_end sub_80A636C + + thumb_func_start sub_80A63B4 +sub_80A63B4: @ 80A63B4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, _080A6444 @ =gTasks + adds r6, r0, r1 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x8] + ldr r0, _080A6448 @ =0x00002771 + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0xA] + movs r1, 0xA + ldrsh r0, [r6, r1] + lsls r0, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + ldr r2, _080A644C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r4, r0, 4 + movs r5, 0x1 + ldr r2, _080A6450 @ =gPlttBufferUnfaded +_080A640C: + adds r1, r3, r5 + lsls r1, 1 + adds r1, r2 + adds r0, r4, r5 + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xF + bls _080A640C + adds r0, r3, 0 + movs r1, 0x10 + movs r2, 0xB + movs r3, 0 + bl BlendPalette + movs r0, 0 + strh r0, [r6, 0xE] + movs r5, 0 + ldr r7, _080A644C @ =gSprites + movs r1, 0x1C + adds r1, r7 + mov r9, r1 + b _080A6488 + .align 2, 0 +_080A6444: .4byte gTasks +_080A6448: .4byte 0x00002771 +_080A644C: .4byte gSprites +_080A6450: .4byte gPlttBufferUnfaded +_080A6454: + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r4, r2, r7 + ldrb r1, [r6, 0xA] + lsls r1, 4 + ldrb r3, [r4, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r1 + strb r0, [r4, 0x5] + movs r0, 0 + strh r0, [r4, 0x2E] + lsls r0, r5, 7 + strh r0, [r4, 0x30] + mov r0, r8 + strh r0, [r4, 0x32] + add r2, r9 + ldr r0, _080A64BC @ =sub_80A653C + str r0, [r2] + ldrh r0, [r6, 0xE] + adds r0, 0x1 + strh r0, [r6, 0xE] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080A6488: + cmp r5, 0x1 + bhi _080A649A + movs r0, 0 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080A6454 +_080A649A: + ldr r0, _080A64C0 @ =sub_80A64E0 + str r0, [r6] + ldr r0, _080A64C4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A64C8 + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + bl ClearGpuRegBits + b _080A64D2 + .align 2, 0 +_080A64BC: .4byte sub_80A653C +_080A64C0: .4byte sub_80A64E0 +_080A64C4: .4byte gBattleAnimAttacker +_080A64C8: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl ClearGpuRegBits +_080A64D2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A63B4 + + thumb_func_start sub_80A64E0 +sub_80A64E0: @ 80A64E0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A6514 @ =gTasks + adds r0, r1 + movs r1, 0xE + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6532 + ldr r0, _080A6518 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A651C + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + bl SetGpuRegBits + b _080A6526 + .align 2, 0 +_080A6514: .4byte gTasks +_080A6518: .4byte gBattleAnimAttacker +_080A651C: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl SetGpuRegBits +_080A6526: + ldr r0, _080A6538 @ =0x00002771 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A6532: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6538: .4byte 0x00002771 + thumb_func_end sub_80A64E0 + + thumb_func_start sub_80A653C +sub_80A653C: @ 80A653C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A6558 + movs r0, 0 + strh r0, [r5, 0x34] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_080A6558: + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x40 + ble _080A6580 + ldr r2, _080A657C @ =gTasks + movs r0, 0x32 + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0xE] + subs r1, 0x1 + strh r1, [r0, 0xE] + adds r0, r5, 0 + bl obj_delete_but_dont_free_vram + b _080A65C2 + .align 2, 0 +_080A657C: .4byte gTasks +_080A6580: + ldr r4, _080A65C8 @ =gSineTable + movs r1, 0x2E + ldrsh r0, [r5, r1] + lsls r0, 1 + adds r0, r4 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x6 + bl __divsi3 + strh r0, [r5, 0x36] + movs r1, 0x2E + ldrsh r0, [r5, r1] + lsls r0, 1 + adds r0, r4 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0xD + bl __divsi3 + strh r0, [r5, 0x38] + ldrh r1, [r5, 0x30] + adds r1, r0 + movs r0, 0xFF + ands r1, r0 + strh r1, [r5, 0x30] + movs r1, 0x30 + ldrsh r0, [r5, r1] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] +_080A65C2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A65C8: .4byte gSineTable + thumb_func_end sub_80A653C + + thumb_func_start sub_80A65CC +sub_80A65CC: @ 80A65CC + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080A65E0 @ =DestroyAnimSprite + bl StoreSpriteCallbackInData6 + ldr r0, _080A65E4 @ =sub_8074F6C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A65E0: .4byte DestroyAnimSprite +_080A65E4: .4byte sub_8074F6C + thumb_func_end sub_80A65CC + + thumb_func_start sub_80A65E8 +sub_80A65E8: @ 80A65E8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r4, _080A6698 @ =gUnknown_83E3898 + ldrh r0, [r4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xFF + beq _080A662C + lsls r0, r3, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + movs r2, 0x1 + ldr r5, _080A669C @ =gPlttBufferFaded +_080A6614: + adds r1, r3, r2 + lsls r1, 1 + adds r1, r5 + lsls r0, r2, 1 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080A6614 +_080A662C: + movs r4, 0x1 + ldr r0, _080A6698 @ =gUnknown_83E3898 + mov r8, r0 +_080A6632: + lsls r0, r4, 1 + adds r0, r4 + lsls r5, r0, 2 + mov r1, r8 + adds r0, r5, r1 + ldrh r0, [r0] + bl AllocSpritePalette + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, 0x1 + mov r12, r4 + cmp r3, 0xFF + beq _080A667A + lsls r0, r3, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + movs r2, 0x1 + ldr r7, _080A669C @ =gPlttBufferFaded + ldr r6, _080A6698 @ =gUnknown_83E3898 + adds r4, r5, 0 +_080A6660: + adds r1, r3, r2 + lsls r1, 1 + adds r1, r7 + lsls r0, r2, 1 + adds r0, r4 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080A6660 +_080A667A: + mov r1, r12 + lsls r0, r1, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080A6632 + mov r0, r9 + bl DestroyAnimVisualTask + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6698: .4byte gUnknown_83E3898 +_080A669C: .4byte gPlttBufferFaded + thumb_func_end sub_80A65E8 + + thumb_func_start sub_80A66A0 +sub_80A66A0: @ 80A66A0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0x1 + ldr r6, _080A66D0 @ =gUnknown_83E3898 +_080A66AA: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r6 + ldrh r0, [r0] + bl FreeSpritePaletteByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080A66AA + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A66D0: .4byte gUnknown_83E3898 + thumb_func_end sub_80A66A0 + + thumb_func_start sub_80A66D4 +sub_80A66D4: @ 80A66D4 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_8074FCC + ldr r4, _080A672C @ =gBattleAnimArgs + ldrb r1, [r4] + adds r0, r5, 0 + bl StartSpriteAnim + ldr r2, _080A6730 @ =gUnknown_83E3898 + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080A6710 + lsls r2, r0, 4 + ldrb r1, [r5, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x5] +_080A6710: + ldrh r0, [r4, 0x2] + movs r1, 0 + strh r0, [r5, 0x30] + strh r1, [r5, 0x32] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x34] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A6734 + movs r6, 0x30 + movs r3, 0x28 + b _080A674E + .align 2, 0 +_080A672C: .4byte gBattleAnimArgs +_080A6730: .4byte gUnknown_83E3898 +_080A6734: + ldr r4, _080A6784 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r3, r0, 24 +_080A674E: + ldrh r0, [r5, 0x20] + lsls r1, r0, 4 + strh r1, [r5, 0x36] + ldrh r1, [r5, 0x22] + lsls r2, r1, 4 + strh r2, [r5, 0x38] + subs r0, r6, r0 + lsls r0, 16 + asrs r0, 16 + subs r1, r3, r1 + lsls r1, 16 + asrs r1, 16 + adds r2, r5, 0 + adds r2, 0x3A + adds r3, r5, 0 + adds r3, 0x3C + movs r4, 0x28 + str r4, [sp] + bl sub_80A678C + ldr r0, _080A6788 @ =sub_80A67E4 + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6784: .4byte gBattleAnimTarget +_080A6788: .4byte sub_80A67E4 + thumb_func_end sub_80A66D4 + + thumb_func_start sub_80A678C +sub_80A678C: @ 80A678C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r2, 0 + mov r8, r3 + ldr r2, [sp, 0x18] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 24 + lsrs r1, r2, 24 + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + bge _080A67AE + lsls r0, r1, 24 + negs r0, r0 + lsrs r1, r0, 24 +_080A67AE: + lsls r5, r2, 8 + lsls r1, 24 + asrs r1, 24 + adds r0, r5, 0 + bl __divsi3 + adds r4, r0, 0 + cmp r4, 0 + bne _080A67C2 + movs r4, 0x1 +_080A67C2: + adds r0, r5, 0 + adds r1, r4, 0 + bl __divsi3 + strh r0, [r7] + lsls r0, r6, 16 + asrs r0, 8 + adds r1, r4, 0 + bl __divsi3 + mov r1, r8 + strh r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A678C + + thumb_func_start sub_80A67E4 +sub_80A67E4: @ 80A67E4 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x2E] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r1, r0, r1 + adds r0, r1, 0 + cmp r1, 0 + bge _080A6800 + adds r0, 0xFF +_080A6800: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + ldrh r1, [r4, 0x3A] + ldrh r2, [r4, 0x36] + adds r1, r2 + strh r1, [r4, 0x36] + ldrh r2, [r4, 0x3C] + ldrh r3, [r4, 0x38] + adds r2, r3 + strh r2, [r4, 0x38] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x20] + lsls r2, 16 + asrs r2, 20 + strh r2, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r1, 0xF + bl Sin + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + ldrh r0, [r4, 0x20] + adds r0, 0x10 + lsls r0, 16 + movs r1, 0x88 + lsls r1, 17 + cmp r0, r1 + bhi _080A684E + lsls r0, r2, 16 + asrs r1, r0, 16 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + blt _080A684E + cmp r1, 0x80 + ble _080A6856 +_080A684E: + adds r0, r4, 0 + bl move_anim_8074EE0 + b _080A68A6 +_080A6856: + movs r0, 0x34 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _080A68A6 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, r1 + ble _080A68A6 + strh r5, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A687E + strh r5, [r4, 0x30] +_080A687E: + ldr r2, _080A68AC @ =gUnknown_83E3898 + movs r3, 0x30 + ldrsh r1, [r4, r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080A68A6 + lsls r2, r0, 4 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] +_080A68A6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A68AC: .4byte gUnknown_83E3898 + thumb_func_end sub_80A67E4 + + thumb_func_start sub_80A68B0 +sub_80A68B0: @ 80A68B0 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r7, _080A6934 @ =gBattleAnimAttacker + ldrb r0, [r7] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A68CE + ldr r1, _080A6938 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080A68CE: + ldrb r0, [r7] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A6938 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + movs r5, 0 + strh r0, [r6, 0x20] + ldrb r0, [r7] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r4, 0x4] + adds r0, r2 + strh r0, [r6, 0x22] + ldrb r1, [r4] + adds r0, r6, 0 + bl StartSpriteAnim + strh r5, [r6, 0x32] + strh r5, [r6, 0x34] + ldrh r0, [r6, 0x20] + lsls r0, 4 + strh r0, [r6, 0x36] + ldrh r0, [r6, 0x22] + lsls r0, 4 + strh r0, [r6, 0x38] + movs r1, 0x2 + ldrsh r0, [r4, r1] + lsls r0, 4 + movs r1, 0x5 + bl __divsi3 + strh r0, [r6, 0x3A] + movs r2, 0x4 + ldrsh r0, [r4, r2] + lsls r0, 7 + movs r1, 0x5 + bl __divsi3 + strh r0, [r6, 0x3C] + ldr r0, _080A693C @ =sub_80A6940 + str r0, [r6, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6934: .4byte gBattleAnimAttacker +_080A6938: .4byte gBattleAnimArgs +_080A693C: .4byte sub_80A6940 + thumb_func_end sub_80A68B0 + + thumb_func_start sub_80A6940 +sub_80A6940: @ 80A6940 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + ldrh r1, [r4, 0x3C] + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x22] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x5 + ble _080A699E + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080A699E + ldrh r0, [r4, 0x32] + adds r0, 0x10 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0x12 + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0x12 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A699E + movs r0, 0x1 + strh r0, [r4, 0x34] +_080A699E: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x30 + bne _080A69B2 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080A69B2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6940 + + thumb_func_start sub_80A69B8 +sub_80A69B8: @ 80A69B8 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080A69D8 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080A69DC + ldrb r0, [r5, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r5, 0x3] + movs r6, 0x10 + b _080A69DE + .align 2, 0 +_080A69D8: .4byte gBattleAnimArgs +_080A69DC: + ldr r6, _080A6A18 @ =0x0000fff0 +_080A69DE: + ldr r4, _080A6A1C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x8 + strh r0, [r5, 0x22] + movs r0, 0x8 + strh r0, [r5, 0x2E] + ldr r0, _080A6A20 @ =sub_8074C44 + str r0, [r5, 0x1C] + ldr r1, _080A6A24 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6A18: .4byte 0x0000fff0 +_080A6A1C: .4byte gBattleAnimAttacker +_080A6A20: .4byte sub_8074C44 +_080A6A24: .4byte DestroyAnimSprite + thumb_func_end sub_80A69B8 + + thumb_func_start sub_80A6A28 +sub_80A6A28: @ 80A6A28 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldrh r0, [r4, 0x22] + adds r0, 0x8 + strh r0, [r4, 0x22] + ldr r5, _080A6AA0 @ =gBattleAnimArgs + ldrb r1, [r5, 0x2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r2, _080A6AA4 @ =gUnknown_83E3898 + movs r0, 0x4 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080A6A68 + lsls r2, r0, 4 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] +_080A6A68: + movs r1, 0 + ldrsh r0, [r5, r1] + movs r2, 0x20 + cmp r0, 0 + bne _080A6A74 + ldr r2, _080A6AA8 @ =0x0000ffe0 +_080A6A74: + movs r0, 0x28 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x20] + strh r1, [r4, 0x30] + lsls r0, r2, 16 + asrs r0, 16 + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + subs r0, 0x28 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x38] + ldr r0, _080A6AAC @ =sub_80A6AB0 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6AA0: .4byte gBattleAnimArgs +_080A6AA4: .4byte gUnknown_83E3898 +_080A6AA8: .4byte 0x0000ffe0 +_080A6AAC: .4byte sub_80A6AB0 + thumb_func_end sub_80A6A28 + + thumb_func_start sub_80A6AB0 +sub_80A6AB0: @ 80A6AB0 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080A6B00 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + lsls r0, 16 + lsrs r1, r0, 16 + ldrh r2, [r4, 0x24] + movs r3, 0x24 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _080A6ADC + lsls r0, r1, 16 + negs r0, r0 + lsrs r1, r0, 16 +_080A6ADC: + lsls r0, r1, 16 + asrs r0, 16 + adds r0, r2 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + ldrh r3, [r4, 0x26] + adds r0, r3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080A6B06 +_080A6B00: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A6B06: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6AB0 + + thumb_func_start sub_80A6B0C +sub_80A6B0C: @ 80A6B0C + push {r4-r6,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A6B2C + adds r0, r5, 0 + movs r1, 0x5 + bl sub_8076B2C + adds r0, 0x8 + b _080A6B36 +_080A6B2C: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_8076B2C + subs r0, 0x8 +_080A6B36: + strh r0, [r6, 0x20] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8074480 + adds r4, r0, 0 + adds r0, r5, 0 + movs r1, 0 + bl sub_8076B2C + lsls r4, 24 + lsrs r4, 24 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080A6B58 + adds r0, 0x3 +_080A6B58: + asrs r0, 2 + subs r0, r4, r0 + strh r0, [r6, 0x22] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A6B0C + + thumb_func_start sub_80A6B64 +sub_80A6B64: @ 80A6B64 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080A6B78 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6B80 + ldr r0, _080A6B7C @ =gBattleAnimAttacker + b _080A6B82 + .align 2, 0 +_080A6B78: .4byte gBattleAnimArgs +_080A6B7C: .4byte gBattleAnimAttacker +_080A6B80: + ldr r0, _080A6BC0 @ =gBattleAnimTarget +_080A6B82: + ldrb r4, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A6B0C + adds r0, r4, 0 + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + ldr r0, _080A6BC4 @ =gBattleAnimArgs + ldrh r0, [r0, 0x2] + strh r0, [r5, 0x2E] + adds r0, r1, 0x2 + strh r0, [r5, 0x30] + adds r0, r5, 0 + bl StartSpriteAnim + ldr r1, _080A6BC8 @ =sub_80A6BD0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A6BCC @ =sub_8074F6C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6BC0: .4byte gBattleAnimTarget +_080A6BC4: .4byte gBattleAnimArgs +_080A6BC8: .4byte sub_80A6BD0 +_080A6BCC: .4byte sub_8074F6C + thumb_func_end sub_80A6B64 + + thumb_func_start sub_80A6BD0 +sub_80A6BD0: @ 80A6BD0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080A6BF8 + ldr r1, _080A6C00 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080A6C04 @ =sub_8074F6C + str r0, [r4, 0x1C] +_080A6BF8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6C00: .4byte DestroyAnimSprite +_080A6C04: .4byte sub_8074F6C + thumb_func_end sub_80A6BD0 + + thumb_func_start sub_80A6C08 +sub_80A6C08: @ 80A6C08 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A6C1C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6C24 + ldr r0, _080A6C20 @ =gBattleAnimAttacker + b _080A6C26 + .align 2, 0 +_080A6C1C: .4byte gBattleAnimArgs +_080A6C20: .4byte gBattleAnimAttacker +_080A6C24: + ldr r0, _080A6C44 @ =gBattleAnimTarget +_080A6C26: + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80A6B0C + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r1, _080A6C48 @ =sub_80A6C50 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A6C4C @ =sub_8074F50 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6C44: .4byte gBattleAnimTarget +_080A6C48: .4byte sub_80A6C50 +_080A6C4C: .4byte sub_8074F50 + thumb_func_end sub_80A6C08 + + thumb_func_start sub_80A6C50 +sub_80A6C50: @ 80A6C50 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080A6C76 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080A6C7C @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A6C80 @ =sub_8074F50 + str r0, [r4, 0x1C] +_080A6C76: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6C7C: .4byte move_anim_8074EE0 +_080A6C80: .4byte sub_8074F50 + thumb_func_end sub_80A6C50 + + thumb_func_start sub_80A6C84 +sub_80A6C84: @ 80A6C84 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r0, _080A6C98 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6CA0 + ldr r0, _080A6C9C @ =gBattleAnimAttacker + b _080A6CA2 + .align 2, 0 +_080A6C98: .4byte gBattleAnimArgs +_080A6C9C: .4byte gBattleAnimAttacker +_080A6CA0: + ldr r0, _080A6CF4 @ =gBattleAnimTarget +_080A6CA2: + ldrb r5, [r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8076B2C + strh r0, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bgt _080A6CCA + movs r0, 0xA + strh r0, [r4, 0x22] +_080A6CCA: + movs r0, 0x1 + strh r0, [r4, 0x2E] + strh r6, [r4, 0x30] + adds r1, r4, 0 + adds r1, 0x43 + ldrb r0, [r1] + strh r0, [r4, 0x32] + ldrb r0, [r1] + adds r0, 0x4 + strh r0, [r4, 0x34] + strh r6, [r4, 0x36] + ldr r1, _080A6CF8 @ =sub_80A6D00 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A6CFC @ =sub_8074F50 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6CF4: .4byte gBattleAnimTarget +_080A6CF8: .4byte sub_80A6D00 +_080A6CFC: .4byte sub_8074F50 + thumb_func_end sub_80A6C84 + + thumb_func_start sub_80A6D00 +sub_80A6D00: @ 80A6D00 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x36] + adds r0, 0x1 + strh r0, [r1, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080A6D16 + ldr r0, _080A6D1C @ =sub_80A6D20 + str r0, [r1, 0x1C] +_080A6D16: + pop {r0} + bx r0 + .align 2, 0 +_080A6D1C: .4byte sub_80A6D20 + thumb_func_end sub_80A6D00 + + thumb_func_start sub_80A6D20 +sub_80A6D20: @ 80A6D20 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r1, r0, 0x4 + strh r1, [r2, 0x30] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFE + ble _080A6D52 + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080A6D4C + strh r0, [r2, 0x24] + ldr r0, _080A6D48 @ =sub_80A6C50 + str r0, [r2, 0x1C] + b _080A6D88 + .align 2, 0 +_080A6D48: .4byte sub_80A6C50 +_080A6D4C: + movs r0, 0xFF + ands r1, r0 + strh r1, [r2, 0x30] +_080A6D52: + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0x4F + ble _080A6D62 + ldrh r0, [r2, 0x34] + adds r1, r2, 0 + adds r1, 0x43 + strb r0, [r1] +_080A6D62: + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0x9F + ble _080A6D72 + ldrh r0, [r2, 0x32] + adds r1, r2, 0 + adds r1, 0x43 + strb r0, [r1] +_080A6D72: + ldr r1, _080A6D8C @ =gSineTable + movs r3, 0x30 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 19 + asrs r1, r0, 1 + adds r0, r1 + strh r0, [r2, 0x24] +_080A6D88: + pop {r0} + bx r0 + .align 2, 0 +_080A6D8C: .4byte gSineTable + thumb_func_end sub_80A6D20 + + thumb_func_start sub_80A6D90 +sub_80A6D90: @ 80A6D90 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080A6DA4 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6DAC + ldr r0, _080A6DA8 @ =gBattleAnimAttacker + b _080A6DAE + .align 2, 0 +_080A6DA4: .4byte gBattleAnimArgs +_080A6DA8: .4byte gBattleAnimAttacker +_080A6DAC: + ldr r0, _080A6DD0 @ =gBattleAnimTarget +_080A6DAE: + ldrb r4, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A6B0C + adds r0, r4, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A6DD4 + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAnim + movs r0, 0x2 + b _080A6DDE + .align 2, 0 +_080A6DD0: .4byte gBattleAnimTarget +_080A6DD4: + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x3 +_080A6DDE: + strh r0, [r5, 0x2E] + ldr r0, _080A6DEC @ =sub_80A6DF0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6DEC: .4byte sub_80A6DF0 + thumb_func_end sub_80A6D90 + + thumb_func_start sub_80A6DF0 +sub_80A6DF0: @ 80A6DF0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080A6E1E + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x2E] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r1, _080A6E24 @ =sub_80A6E2C + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A6E28 @ =sub_8074F6C + str r0, [r4, 0x1C] +_080A6E1E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6E24: .4byte sub_80A6E2C +_080A6E28: .4byte sub_8074F6C + thumb_func_end sub_80A6DF0 + + thumb_func_start sub_80A6E2C +sub_80A6E2C: @ 80A6E2C + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080A6E44 + adds r0, r1, 0 + bl DestroyAnimSprite +_080A6E44: + pop {r0} + bx r0 + thumb_func_end sub_80A6E2C + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s new file mode 100644 index 000000000..34bb0db27 --- /dev/null +++ b/asm/battle_anim_effects_2.s @@ -0,0 +1,7946 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80A6E48 +sub_80A6E48: @ 80A6E48 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r5, _080A6E8C @ =gBattleAnimArgs + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_8074FF8 + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x34] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x36] + ldr r1, _080A6E90 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080A6E94 @ =sub_8074BE4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6E8C: .4byte gBattleAnimArgs +_080A6E90: .4byte move_anim_8074EE0 +_080A6E94: .4byte sub_8074BE4 + thumb_func_end sub_80A6E48 + + thumb_func_start sub_80A6E98 +sub_80A6E98: @ 80A6E98 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A6EAC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6EB4 + ldr r0, _080A6EB0 @ =gBattleAnimAttacker + b _080A6EB6 + .align 2, 0 +_080A6EAC: .4byte gBattleAnimArgs +_080A6EB0: .4byte gBattleAnimAttacker +_080A6EB4: + ldr r0, _080A6ED0 @ =gBattleAnimTarget +_080A6EB6: + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80A6B0C + movs r0, 0 + strh r0, [r4, 0x2E] + strh r0, [r4, 0x30] + ldr r0, _080A6ED4 @ =sub_80A6ED8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6ED0: .4byte gBattleAnimTarget +_080A6ED4: .4byte sub_80A6ED8 + thumb_func_end sub_80A6E98 + + thumb_func_start sub_80A6ED8 +sub_80A6ED8: @ 80A6ED8 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080A6F0A + cmp r0, 0x1 + bgt _080A6EEE + cmp r0, 0 + beq _080A6EF4 + b _080A6F38 +_080A6EEE: + cmp r0, 0x2 + beq _080A6F24 + b _080A6F38 +_080A6EF4: + ldrh r0, [r1, 0x26] + subs r0, 0x3 + strh r0, [r1, 0x26] + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080A6F38 + b _080A6F1C +_080A6F0A: + ldrh r0, [r1, 0x26] + adds r0, 0x3 + strh r0, [r1, 0x26] + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080A6F38 +_080A6F1C: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _080A6F38 +_080A6F24: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _080A6F38 + adds r0, r1, 0 + bl DestroyAnimSprite +_080A6F38: + pop {r0} + bx r0 + thumb_func_end sub_80A6ED8 + + thumb_func_start sub_80A6F3C +sub_80A6F3C: @ 80A6F3C + push {r4,lr} + adds r4, r0, 0 + ldr r3, _080A6F88 @ =gSprites + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r4, 0x30] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x30] + movs r0, 0x2E + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _080A6F7A + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x24] + adds r0, r4, 0 + bl move_anim_8074EE0 +_080A6F7A: + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6F88: .4byte gSprites + thumb_func_end sub_80A6F3C + + thumb_func_start sub_80A6F8C +sub_80A6F8C: @ 80A6F8C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080A6FD4 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080A6FD8 @ =gBattlerSpriteIds + ldr r0, _080A6FDC @ =gBattleAnimTarget + ldrb r0, [r0] + adds r0, r1 + ldrb r6, [r0] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A6FE4 + ldr r0, _080A6FE0 @ =gBattleAnimArgs + ldrh r1, [r5, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r5, 0x20] + adds r1, r0, 0 + b _080A6FEE + .align 2, 0 +_080A6FD4: .4byte gBattleAnimAttacker +_080A6FD8: .4byte gBattlerSpriteIds +_080A6FDC: .4byte gBattleAnimTarget +_080A6FE0: .4byte gBattleAnimArgs +_080A6FE4: + ldr r1, _080A7018 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] +_080A6FEE: + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + strh r6, [r5, 0x32] + ldr r0, _080A701C @ =sub_80A6F3C + str r0, [r5, 0x1C] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A7018: .4byte gBattleAnimArgs +_080A701C: .4byte sub_80A6F3C + thumb_func_end sub_80A6F8C + + thumb_func_start sub_80A7020 +sub_80A7020: @ 80A7020 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080A704C @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x38] + ldr r0, _080A7050 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080A7054 @ =sub_80A7058 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A704C: .4byte gBattleAnimArgs +_080A7050: .4byte sub_8074C44 +_080A7054: .4byte sub_80A7058 + thumb_func_end sub_80A7020 + + thumb_func_start sub_80A7058 +sub_80A7058: @ 80A7058 + push {lr} + ldrh r1, [r0, 0x30] + strh r1, [r0, 0x2E] + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + adds r1, 0xF + strh r1, [r0, 0x36] + ldr r1, _080A7078 @ =sub_8075590 + str r1, [r0, 0x1C] + ldr r1, _080A707C @ =sub_80A7080 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080A7078: .4byte sub_8075590 +_080A707C: .4byte sub_80A7080 + thumb_func_end sub_80A7058 + + thumb_func_start sub_80A7080 +sub_80A7080: @ 80A7080 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x38] + movs r3, 0x38 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080A7096 + adds r0, r1, 0 + bl DestroyAnimSprite + b _080A709A +_080A7096: + subs r0, r2, 0x1 + strh r0, [r1, 0x38] +_080A709A: + pop {r0} + bx r0 + thumb_func_end sub_80A7080 + + thumb_func_start sub_80A70A0 +sub_80A70A0: @ 80A70A0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080A70CC @ =gBattlerSpriteIds + ldr r0, _080A70D0 @ =gBattleAnimAttacker + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_80758E0 + ldr r1, _080A70D4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A70D8 @ =sub_80A70DC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A70CC: .4byte gBattlerSpriteIds +_080A70D0: .4byte gBattleAnimAttacker +_080A70D4: .4byte gTasks +_080A70D8: .4byte sub_80A70DC + thumb_func_end sub_80A70A0 + + thumb_func_start sub_80A70DC +sub_80A70DC: @ 80A70DC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A710C @ =gBattlerSpriteIds + ldr r0, _080A7110 @ =gBattleAnimAttacker + ldrb r0, [r0] + adds r1, r0, r1 + ldrb r4, [r1] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A7118 + ldr r1, _080A7114 @ =gTasks + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + negs r0, r0 + lsls r0, 16 + lsrs r3, r0, 16 + adds r6, r2, 0 + b _080A7126 + .align 2, 0 +_080A710C: .4byte gBattlerSpriteIds +_080A7110: .4byte gBattleAnimAttacker +_080A7114: .4byte gTasks +_080A7118: + ldr r2, _080A7158 @ =gTasks + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r0, r2 + ldrh r3, [r0, 0x8] + adds r6, r1, 0 +_080A7126: + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + bl obj_id_set_rotscale + ldr r1, _080A7158 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080A7160 + ldrh r0, [r1, 0x8] + adds r0, 0xB0 + strh r0, [r1, 0x8] + ldr r1, _080A715C @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x26] + adds r1, 0x1 + b _080A718A + .align 2, 0 +_080A7158: .4byte gTasks +_080A715C: .4byte gSprites +_080A7160: + cmp r0, 0x1 + bne _080A7176 + ldrh r0, [r1, 0xE] + adds r0, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + bne _080A71D0 + movs r0, 0x2 + b _080A71CE +_080A7176: + ldrh r0, [r1, 0x8] + subs r0, 0xB0 + strh r0, [r1, 0x8] + ldr r1, _080A71C4 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x26] + subs r1, 0x1 +_080A718A: + strh r1, [r0, 0x26] + adds r0, r4, 0 + bl sub_80759DC + ldr r0, _080A71C8 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + movs r3, 0x8 + ldrsh r2, [r1, r3] + movs r0, 0xF2 + lsls r0, 4 + cmp r2, r0 + beq _080A71AA + cmp r2, 0 + bne _080A71D0 +_080A71AA: + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x2 + bne _080A71CC + adds r0, r4, 0 + bl sub_8075980 + adds r0, r5, 0 + bl DestroyAnimVisualTask + b _080A71D0 + .align 2, 0 +_080A71C4: .4byte gSprites +_080A71C8: .4byte gTasks +_080A71CC: + adds r0, r2, 0x1 +_080A71CE: + strh r0, [r1, 0xA] +_080A71D0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A70DC + + thumb_func_start sub_80A71D8 +sub_80A71D8: @ 80A71D8 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r0, _080A71FC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A7204 + ldr r0, _080A7200 @ =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + adds r5, r0, 0 + b _080A7210 + .align 2, 0 +_080A71FC: .4byte gBattleAnimAttacker +_080A7200: .4byte gBattleAnimArgs +_080A7204: + ldr r1, _080A7244 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r5, r1, 0 +_080A7210: + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080A7248 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A724C + adds r3, r4, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x1 + adds r2, r0, 0 + orrs r2, r1 + strb r2, [r3] + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080A7260 + movs r0, 0x2 + orrs r2, r0 + strb r2, [r3] + b _080A7260 + .align 2, 0 +_080A7244: .4byte gBattleAnimArgs +_080A7248: .4byte gBattleAnimAttacker +_080A724C: + movs r2, 0x4 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080A7260 + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2] +_080A7260: + ldr r0, _080A7274 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldr r1, _080A7278 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7274: .4byte sub_8074F6C +_080A7278: .4byte DestroyAnimSprite + thumb_func_end sub_80A71D8 + + thumb_func_start sub_80A727C +sub_80A727C: @ 80A727C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r0, _080A7298 @ =sub_8074F50 + str r0, [r4, 0x1C] + ldr r1, _080A729C @ =sub_80A72A0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7298: .4byte sub_8074F50 +_080A729C: .4byte sub_80A72A0 + thumb_func_end sub_80A727C + + thumb_func_start sub_80A72A0 +sub_80A72A0: @ 80A72A0 + push {lr} + movs r1, 0x6 + strh r1, [r0, 0x2E] + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + subs r1, 0x20 + strh r1, [r0, 0x36] + ldr r1, _080A72C0 @ =sub_8075590 + str r1, [r0, 0x1C] + ldr r1, _080A72C4 @ =DestroyAnimSprite + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080A72C0: .4byte sub_8075590 +_080A72C4: .4byte DestroyAnimSprite + thumb_func_end sub_80A72A0 + + thumb_func_start sub_80A72C8 +sub_80A72C8: @ 80A72C8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A72EC + ldr r1, _080A72E8 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + b _080A730E + .align 2, 0 +_080A72E8: .4byte gBattleAnimArgs +_080A72EC: + ldr r0, _080A73B4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A730E + ldr r1, _080A73B8 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080A730E: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r4, _080A73BC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r6, _080A73B8 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x6] + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + adds r7, r0, 0 + ldrh r1, [r5, 0x20] + mov r2, r8 + lsls r0, r2, 16 + asrs r0, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_8075B30 + lsls r0, 16 + movs r1, 0xF0 + lsls r1, 24 + adds r0, r1 + lsrs r4, r0, 16 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A7380 + ldr r2, _080A73C0 @ =0xffffa000 + adds r0, r4, r2 + lsls r0, 16 + lsrs r4, r0, 16 +_080A7380: + movs r3, 0x80 + lsls r3, 1 + str r4, [sp] + adds r0, r5, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8075A1C + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + mov r0, r8 + strh r0, [r5, 0x32] + strh r7, [r5, 0x36] + ldr r0, _080A73C4 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A73C8 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A73B4: .4byte gBattleAnimAttacker +_080A73B8: .4byte gBattleAnimArgs +_080A73BC: .4byte gBattleAnimTarget +_080A73C0: .4byte 0xffffa000 +_080A73C4: .4byte sub_8075590 +_080A73C8: .4byte DestroyAnimSprite + thumb_func_end sub_80A72C8 + + thumb_func_start sub_80A73CC +sub_80A73CC: @ 80A73CC + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + subs r1, r0, 0x1 + strh r1, [r3, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080A73F6 + ldr r2, _080A73FC @ =gTasks + movs r0, 0x3C + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0xA] + subs r1, 0x1 + strh r1, [r0, 0xA] + adds r0, r3, 0 + bl DestroySprite +_080A73F6: + pop {r0} + bx r0 + .align 2, 0 +_080A73FC: .4byte gTasks + thumb_func_end sub_80A73CC + + thumb_func_start sub_80A7400 +sub_80A7400: @ 80A7400 + push {r4,lr} + adds r2, r0, 0 + movs r0, 0x3C + ldrsh r1, [r2, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _080A7430 @ =gTasks + adds r4, r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _080A7434 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x38] + adds r0, r1 + strh r0, [r2, 0x38] + ldrh r0, [r2, 0x36] + ldrh r3, [r2, 0x3A] + adds r0, r3 + b _080A7442 + .align 2, 0 +_080A7430: .4byte gTasks +_080A7434: + ldrh r0, [r2, 0x38] + ldrh r1, [r2, 0x34] + subs r0, r1 + strh r0, [r2, 0x38] + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x36] + subs r0, r1 +_080A7442: + strh r0, [r2, 0x3A] + ldrh r0, [r2, 0x38] + ldrh r1, [r2, 0x30] + adds r3, r0, r1 + strh r3, [r2, 0x30] + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r4, 0x16] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A7466 + lsls r0, r3, 16 + lsrs r0, 24 + negs r0, r0 + b _080A746A +_080A7466: + lsls r0, r3, 16 + lsrs r0, 24 +_080A746A: + strh r0, [r2, 0x24] + ldrh r1, [r4, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A747E + ldrh r0, [r2, 0x32] + lsrs r0, 8 + negs r0, r0 + b _080A7482 +_080A747E: + ldrh r0, [r2, 0x32] + lsrs r0, 8 +_080A7482: + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + subs r1, r0, 0x1 + strh r1, [r2, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080A7498 + movs r0, 0x1E + strh r0, [r2, 0x2E] + ldr r0, _080A74A0 @ =sub_80A73CC + str r0, [r2, 0x1C] +_080A7498: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A74A0: .4byte sub_80A73CC + thumb_func_end sub_80A7400 + + thumb_func_start sub_80A74A4 +sub_80A74A4: @ 80A74A4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r0, 0x3C + ldrsh r1, [r7, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _080A74E8 @ =gTasks + adds r6, r0, r1 + ldrh r2, [r6, 0x16] + movs r1, 0x2 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + ldrh r3, [r7, 0x30] + adds r2, r0, r3 + strh r2, [r7, 0x30] + ldrh r0, [r6, 0x18] + ands r1, r0 + ldrh r0, [r7, 0x32] + adds r1, r0 + strh r1, [r7, 0x32] + ldrh r1, [r6, 0x16] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A74EC + lsls r0, r2, 16 + lsrs r0, 24 + negs r0, r0 + b _080A74F0 + .align 2, 0 +_080A74E8: .4byte gTasks +_080A74EC: + lsls r0, r2, 16 + lsrs r0, 24 +_080A74F0: + strh r0, [r7, 0x24] + ldrh r1, [r6, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A7504 + ldrh r0, [r7, 0x32] + lsrs r0, 8 + negs r0, r0 + b _080A7508 +_080A7504: + ldrh r0, [r7, 0x32] + lsrs r0, 8 +_080A7508: + strh r0, [r7, 0x26] + ldrh r0, [r7, 0x2E] + subs r1, r0, 0x1 + strh r1, [r7, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080A75D4 + movs r4, 0 + movs r0, 0x8 + strh r0, [r7, 0x2E] + movs r0, 0x4 + strh r0, [r6, 0x12] + movs r0, 0x80 + lsls r0, 5 + bl sub_80D8B90 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r7, 0x24] + ldrh r1, [r7, 0x20] + adds r2, r0, r1 + strh r2, [r7, 0x20] + ldrh r0, [r7, 0x26] + ldrh r3, [r7, 0x22] + adds r0, r3 + strh r0, [r7, 0x22] + strh r4, [r7, 0x26] + strh r4, [r7, 0x24] + ldrh r3, [r6, 0x1E] + movs r0, 0x1E + ldrsh r1, [r6, r0] + lsls r0, r2, 16 + asrs r0, 16 + cmp r1, r0 + blt _080A7552 + subs r0, r3, r2 + b _080A7554 +_080A7552: + subs r0, r2, r3 +_080A7554: + lsls r0, 24 + lsrs r4, r0, 16 + ldrh r3, [r6, 0x20] + movs r0, 0x20 + ldrsh r1, [r6, r0] + ldrh r2, [r7, 0x22] + movs r6, 0x22 + ldrsh r0, [r7, r6] + cmp r1, r0 + blt _080A756C + subs r0, r3, r2 + b _080A756E +_080A756C: + subs r0, r2, r3 +_080A756E: + lsls r0, 24 + lsrs r0, 16 + mov r8, r0 + movs r0, 0 + strh r0, [r7, 0x32] + strh r0, [r7, 0x30] + strh r0, [r7, 0x3A] + strh r0, [r7, 0x38] + lsls r0, r4, 16 + asrs r0, 16 + lsls r5, 16 + asrs r5, 16 + adds r1, r5, 0 + bl sub_80D8AA0 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + movs r6, 0xE0 + lsls r6, 1 + adds r0, r6, 0 + bl sub_80D8B90 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_80D8AA0 + strh r0, [r7, 0x34] + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + adds r1, r5, 0 + bl sub_80D8AA0 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r6, 0 + bl sub_80D8B90 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_80D8AA0 + strh r0, [r7, 0x36] + ldr r0, _080A75E0 @ =sub_80A7400 + str r0, [r7, 0x1C] +_080A75D4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A75E0: .4byte sub_80A7400 + thumb_func_end sub_80A74A4 + + thumb_func_start sub_80A75E4 +sub_80A75E4: @ 80A75E4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080A7608 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A7602 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080A7602: + pop {r0} + bx r0 + .align 2, 0 +_080A7608: .4byte gTasks + thumb_func_end sub_80A75E4 + + thumb_func_start sub_80A760C +sub_80A760C: @ 80A760C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080A7660 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + subs r1, r0, 0x1 + strh r1, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bgt _080A76E0 + ldr r0, _080A7664 @ =gUnknown_83E3C28 + movs r2, 0x1A + ldrsh r1, [r5, r2] + movs r3, 0x1C + ldrsh r2, [r5, r3] + ldrb r3, [r5, 0xC] + ldrb r4, [r5, 0xA] + subs r3, r4 + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r0, 4 + add r0, r12 + lsls r0, 2 + ldr r1, _080A7668 @ =gSprites + adds r6, r0, r1 + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080A766C + cmp r0, 0x2 + beq _080A7682 + b _080A7690 + .align 2, 0 +_080A7660: .4byte gTasks +_080A7664: .4byte gUnknown_83E3C28 +_080A7668: .4byte gSprites +_080A766C: + ldrb r2, [r6, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x18 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x57 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, 0x3] + b _080A7690 +_080A7682: + ldrb r0, [r6, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r6, 0x3] +_080A7690: + ldr r3, _080A76E8 @ =gTasks + lsls r2, r7, 2 + adds r2, r7 + lsls r2, 3 + adds r4, r2, r3 + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x14] + subs r0, r1 + strh r0, [r6, 0x2E] + strh r7, [r6, 0x3C] + movs r1, 0xA + ldrsh r0, [r4, r1] + adds r0, 0xD + lsls r0, 1 + adds r0, r2 + adds r3, 0x8 + adds r0, r3 + mov r2, r12 + strh r2, [r0] + ldrh r0, [r4, 0xE] + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0x3F + negs r0, r0 + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x93 + bl PlaySE12WithPanning + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0x2 + ble _080A76E0 + ldr r0, _080A76EC @ =sub_80A75E4 + str r0, [r4] +_080A76E0: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A76E8: .4byte gTasks +_080A76EC: .4byte sub_80A75E4 + thumb_func_end sub_80A760C + + thumb_func_start sub_80A76F0 +sub_80A76F0: @ 80A76F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r9, r0 + movs r5, 0 + mov r0, sp + mov r1, r9 + strh r1, [r0] + mov r4, sp + adds r4, 0x2 + strh r1, [r4] + bl sub_8073788 + lsls r0, 24 + mov r10, r4 + cmp r0, 0 + beq _080A775C + ldr r1, _080A774C @ =gTasks + lsls r2, r7, 2 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x10] + ldr r3, _080A7750 @ =gBattleAnimArgs + ldrh r0, [r3] + negs r0, r0 + strh r0, [r3] + ldrh r1, [r3, 0x4] + movs r0, 0x1 + ands r0, r1 + mov r8, r2 + cmp r0, 0 + beq _080A7754 + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strh r0, [r3, 0x4] + b _080A77B6 + .align 2, 0 +_080A774C: .4byte gTasks +_080A7750: .4byte gBattleAnimArgs +_080A7754: + movs r0, 0x1 + orrs r0, r1 + strh r0, [r3, 0x4] + b _080A77B6 +_080A775C: + ldr r1, _080A77A0 @ =gUnknown_2023BD6 + ldr r0, _080A77A4 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + lsls r2, r7, 2 + mov r8, r2 + cmp r0, 0 + bne _080A77B6 + ldr r1, _080A77A8 @ =gTasks + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x10] + ldr r2, _080A77AC @ =gBattleAnimArgs + ldrh r0, [r2] + negs r0, r0 + strh r0, [r2] + ldrh r0, [r2, 0x2] + negs r0, r0 + strh r0, [r2, 0x2] + ldrh r1, [r2, 0x4] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080A77B0 + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + b _080A77B4 + .align 2, 0 +_080A77A0: .4byte gUnknown_2023BD6 +_080A77A4: .4byte gBattleAnimTarget +_080A77A8: .4byte gTasks +_080A77AC: .4byte gBattleAnimArgs +_080A77B0: + movs r0, 0x1 + orrs r0, r1 +_080A77B4: + strh r0, [r2, 0x4] +_080A77B6: + ldr r5, _080A7810 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + ldr r1, _080A7814 @ =gTasks + mov r3, r8 + adds r4, r3, r7 + lsls r4, 3 + adds r4, r1 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + adds r6, r0, 0 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + mov r9, r0 + ldr r0, _080A7818 @ =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A7820 + ldr r4, _080A781C @ =gBattleAnimTarget + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A7820 + ldrb r0, [r4] + movs r1, 0 + mov r2, sp + mov r3, r10 + bl sub_8076D9C + b _080A7842 + .align 2, 0 +_080A7810: .4byte gBattleAnimAttacker +_080A7814: .4byte gTasks +_080A7818: .4byte gBattleTypeFlags +_080A781C: .4byte gBattleAnimTarget +_080A7820: + mov r5, sp + ldr r4, _080A787C @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r1, r10 + strh r0, [r1] +_080A7842: + mov r4, sp + ldr r0, _080A7880 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + mov r2, sp + ldr r3, _080A7884 @ =gBattleAnimArgs + ldrh r0, [r3] + ldrh r2, [r2] + adds r0, r2 + strh r0, [r1, 0x1E] + strh r0, [r4] + ldrh r0, [r3, 0x2] + mov r3, r10 + ldrh r3, [r3] + adds r0, r3 + strh r0, [r1, 0x20] + mov r1, r10 + strh r0, [r1] + mov r0, sp + ldrh r2, [r0] + movs r3, 0 + ldrsh r0, [r0, r3] + adds r1, r6, 0 + cmp r0, r1 + blt _080A7888 + subs r0, r2, r1 + b _080A788A + .align 2, 0 +_080A787C: .4byte gBattleAnimTarget +_080A7880: .4byte gTasks +_080A7884: .4byte gBattleAnimArgs +_080A7888: + subs r0, r1, r2 +_080A788A: + lsls r0, 16 + lsrs r0, 16 + lsls r4, r0, 16 + asrs r4, 16 + ldr r5, _080A7900 @ =gBattleAnimArgs + ldrh r1, [r5, 0x4] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + lsls r0, 16 + asrs r0, 16 + bl sub_80D8B90 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_80D8AA0 + ldr r2, _080A7904 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r6, r1, r2 + strh r0, [r6, 0x12] + movs r1, 0x12 + ldrsh r0, [r6, r1] + movs r1, 0x80 + bl sub_80D8AA0 + strh r0, [r6, 0x14] + ldrh r0, [r5, 0x4] + strh r0, [r6, 0x16] + mov r2, r10 + ldrh r1, [r2] + movs r3, 0 + ldrsh r0, [r2, r3] + mov r4, r9 + cmp r0, r4 + blt _080A7908 + subs r4, r1, r4 + lsls r4, 16 + asrs r4, 16 + movs r1, 0x12 + ldrsh r0, [r6, r1] + bl sub_80D8B90 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_80D8AA0 + movs r1, 0x2 + negs r1, r1 + ands r1, r0 + strh r1, [r6, 0x18] + b _080A7928 + .align 2, 0 +_080A7900: .4byte gBattleAnimArgs +_080A7904: .4byte gTasks +_080A7908: + subs r4, r1 + lsls r4, 16 + asrs r4, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + bl sub_80D8B90 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_80D8AA0 + movs r1, 0x1 + orrs r0, r1 + strh r0, [r6, 0x18] +_080A7928: + ldr r1, _080A7968 @ =gTasks + mov r3, r8 + adds r0, r3, r7 + lsls r0, 3 + adds r5, r0, r1 + ldr r4, _080A796C @ =gBattleAnimArgs + ldrh r0, [r4, 0x6] + strh r0, [r5, 0xE] + ldrh r1, [r4, 0x8] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080A7978 + movs r0, 0x80 + eors r0, r1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3F + ble _080A79A0 + ldr r0, _080A7970 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A7974 @ =0x0000ffc0 + adds r1, r2, 0 + ldrh r4, [r4, 0x8] + adds r1, r4 + adds r0, r1 + b _080A79B0 + .align 2, 0 +_080A7968: .4byte gTasks +_080A796C: .4byte gBattleAnimArgs +_080A7970: .4byte gBattleAnimTarget +_080A7974: .4byte 0x0000ffc0 +_080A7978: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x3F + ble _080A79A0 + ldr r0, _080A7998 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080A799C @ =0x0000ffc0 + adds r1, r3, 0 + ldrh r4, [r4, 0x8] + adds r1, r4 + adds r0, r1 + b _080A79B0 + .align 2, 0 +_080A7998: .4byte gBattleAnimTarget +_080A799C: .4byte 0x0000ffc0 +_080A79A0: + ldr r0, _080A79DC @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x8] + subs r0, r1 +_080A79B0: + strh r0, [r5, 0xC] + ldr r0, _080A79E0 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0x2 + bgt _080A79C8 + movs r0, 0x3 + strh r0, [r1, 0xC] +_080A79C8: + ldr r0, _080A79E4 @ =sub_80A760C + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A79DC: .4byte gBattleAnimTarget +_080A79E0: .4byte gTasks +_080A79E4: .4byte sub_80A760C + thumb_func_end sub_80A76F0 + + thumb_func_start sub_80A79E8 +sub_80A79E8: @ 80A79E8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r0, _080A7A10 @ =gUnknown_83E3D18 + ldrh r0, [r0, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r4, 0x2E] + ldr r0, _080A7A14 @ =sub_80A7A18 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7A10: .4byte gUnknown_83E3D18 +_080A7A14: .4byte sub_80A7A18 + thumb_func_end sub_80A79E8 + + thumb_func_start sub_80A7A18 +sub_80A7A18: @ 80A7A18 + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080A7A7C + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r5, [r4, 0x2E] + ldr r1, _080A7A84 @ =gPlttBufferFaded + adds r0, r5, 0 + adds r0, 0x8 + lsls r0, 1 + adds r0, r1 + ldrh r7, [r0] + adds r6, r1, 0 + adds r1, r5, 0 + adds r1, 0x9 + lsls r0, r5, 1 + adds r0, r6 + adds r2, r0, 0 + adds r2, 0x10 + movs r3, 0x7 + lsls r1, 1 + adds r1, r6 +_080A7A50: + ldrh r0, [r1] + strh r0, [r2] + adds r1, 0x2 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080A7A50 + adds r0, r5, 0 + adds r0, 0xF + lsls r0, 1 + adds r0, r6 + strh r7, [r0] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + bne _080A7A7C + adds r0, r4, 0 + bl DestroyAnimSprite +_080A7A7C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A7A84: .4byte gPlttBufferFaded + thumb_func_end sub_80A7A18 + + thumb_func_start sub_80A7A88 +sub_80A7A88: @ 80A7A88 + push {r4-r7,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r4, _080A7B28 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A7B2C @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, _080A7B30 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A7ACC + ldrh r0, [r4, 0x4] + negs r0, r0 + strh r0, [r4, 0x4] +_080A7ACC: + lsls r0, r6, 16 + asrs r0, 16 + ldrh r1, [r4, 0x4] + adds r0, r1 + lsls r0, 16 + ldrh r1, [r5, 0x20] + lsrs r6, r0, 16 + asrs r0, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_8075B30 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8075A1C + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x2E] + strh r6, [r5, 0x32] + strh r7, [r5, 0x36] + ldr r0, _080A7B34 @ =sub_80756A4 + str r0, [r5, 0x1C] + ldr r1, _080A7B38 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A7B28: .4byte gBattleAnimTarget +_080A7B2C: .4byte gBattleAnimArgs +_080A7B30: .4byte gBattleAnimAttacker +_080A7B34: .4byte sub_80756A4 +_080A7B38: .4byte DestroyAnimSprite + thumb_func_end sub_80A7A88 + + thumb_func_start sub_80A7B3C +sub_80A7B3C: @ 80A7B3C + ldr r1, _080A7B4C @ =0x0000fff0 + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + ldr r1, _080A7B50 @ =sub_80A7B54 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080A7B4C: .4byte 0x0000fff0 +_080A7B50: .4byte sub_80A7B54 + thumb_func_end sub_80A7B3C + + thumb_func_start sub_80A7B54 +sub_80A7B54: @ 80A7B54 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldr r0, _080A7BC0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A7B78 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] +_080A7B78: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x5 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7E + ble _080A7BB8 + movs r0, 0 + strh r0, [r4, 0x30] + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080A7BB8 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A7BB8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7BC0: .4byte gBattleAnimAttacker + thumb_func_end sub_80A7B54 + + thumb_func_start sub_80A7BC4 +sub_80A7BC4: @ 80A7BC4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r5, _080A7C10 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080A7C14 @ =sub_8075590 + str r0, [r4, 0x1C] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080A7C18 @ =sub_80A7C1C + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7C10: .4byte gBattleAnimTarget +_080A7C14: .4byte sub_8075590 +_080A7C18: .4byte sub_80A7C1C + thumb_func_end sub_80A7BC4 + + thumb_func_start sub_80A7C1C +sub_80A7C1C: @ 80A7C1C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3F + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x9F + bl PlaySE12WithPanning + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + movs r2, 0 + movs r1, 0x7 + adds r0, r4, 0 + adds r0, 0x3C +_080A7C50: + strh r2, [r0] + subs r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080A7C50 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x7 + ands r0, r1 + ldr r2, _080A7C98 @ =0x0000fff4 + adds r1, r2, 0 + subs r1, r0 + strh r1, [r4, 0x3A] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA0 + bl __umodsi3 + adds r0, 0xA0 + strh r0, [r4, 0x3C] + ldr r0, _080A7C9C @ =sub_80A7CA0 + str r0, [r4, 0x1C] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7C98: .4byte 0x0000fff4 +_080A7C9C: .4byte sub_80A7CA0 + thumb_func_end sub_80A7C1C + + thumb_func_start sub_80A7CA0 +sub_80A7CA0: @ 80A7CA0 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x3C] + ldrh r2, [r4, 0x2E] + adds r0, r1, r2 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r2, r0, 24 + strh r2, [r4, 0x24] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A7CBE + negs r0, r2 + strh r0, [r4, 0x24] +_080A7CBE: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x8 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7E + ble _080A7CFE + movs r0, 0 + strh r0, [r4, 0x30] + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A7CFE + adds r0, r4, 0 + bl DestroyAnimSprite +_080A7CFE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A7CA0 + + thumb_func_start sub_80A7D04 +sub_80A7D04: @ 80A7D04 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r0, _080A7D54 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A7D22 + ldrh r0, [r4, 0x22] + adds r0, 0x10 + strh r0, [r4, 0x22] +_080A7D22: + ldr r1, _080A7D58 @ =gBattleAnimArgs + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0xC] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldr r0, _080A7D5C @ =sub_8074A80 + str r0, [r4, 0x1C] + ldr r1, _080A7D60 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7D54: .4byte gBattleAnimAttacker +_080A7D58: .4byte gBattleAnimArgs +_080A7D5C: .4byte sub_8074A80 +_080A7D60: .4byte DestroyAnimSprite + thumb_func_end sub_80A7D04 + + thumb_func_start sub_80A7D64 +sub_80A7D64: @ 80A7D64 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + movs r7, 0x20 + ldr r4, _080A7DE0 @ =0x0000ffe0 + movs r0, 0x10 + mov r8, r0 + ldr r6, _080A7DE4 @ =0x0000fff0 + ldr r0, _080A7DE8 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080A7D90 + adds r7, r4, 0 + movs r4, 0x20 + mov r8, r6 + movs r6, 0x10 + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080A7D90: + lsls r0, r7, 16 + asrs r0, 16 + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080A7DEC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + add r0, r8 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + ldr r0, _080A7DF0 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A7DF4 @ =sub_80A7DF8 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A7DE0: .4byte 0x0000ffe0 +_080A7DE4: .4byte 0x0000fff0 +_080A7DE8: .4byte gBattleAnimArgs +_080A7DEC: .4byte gBattleAnimTarget +_080A7DF0: .4byte sub_8075590 +_080A7DF4: .4byte sub_80A7DF8 + thumb_func_end sub_80A7D64 + + thumb_func_start sub_80A7DF8 +sub_80A7DF8: @ 80A7DF8 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A7E0E + adds r0, r2, 0 + bl DestroyAnimSprite +_080A7E0E: + pop {r0} + bx r0 + thumb_func_end sub_80A7DF8 + + thumb_func_start sub_80A7E14 +sub_80A7E14: @ 80A7E14 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r0, 0x20 + mov r8, r0 + ldr r4, _080A7EA8 @ =0x0000ffe0 + movs r2, 0x10 + mov r9, r2 + ldr r6, _080A7EAC @ =0x0000fff0 + ldr r7, _080A7EB0 @ =gBattleAnimArgs + ldrh r1, [r7] + movs r2, 0 + ldrsh r0, [r7, r2] + cmp r0, 0 + beq _080A7E48 + mov r8, r4 + movs r4, 0x20 + mov r9, r6 + movs r6, 0x10 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim +_080A7E48: + mov r0, r8 + lsls r1, r0, 16 + asrs r1, 16 + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + movs r0, 0x6 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + ldr r4, _080A7EB4 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + add r0, r9 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r7] + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x2E] + strh r0, [r5, 0x3A] + ldr r0, _080A7EB8 @ =sub_80A7EBC + str r0, [r5, 0x1C] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A7EA8: .4byte 0x0000ffe0 +_080A7EAC: .4byte 0x0000fff0 +_080A7EB0: .4byte gBattleAnimArgs +_080A7EB4: .4byte gBattleAnimTarget +_080A7EB8: .4byte sub_80A7EBC + thumb_func_end sub_80A7E14 + + thumb_func_start sub_80A7EBC +sub_80A7EBC: @ 80A7EBC + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080A7F20 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A7F20 + adds r0, r4, 0 + movs r1, 0 + bl SeekSpriteAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r2, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x2 + strh r0, [r4, 0x24] + ldr r0, _080A7F28 @ =0x0000fffe + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + eors r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x36] + strh r2, [r4, 0x34] + ldr r0, _080A7F2C @ =sub_80A7F30 + str r0, [r4, 0x1C] +_080A7F20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7F28: .4byte 0x0000fffe +_080A7F2C: .4byte sub_80A7F30 + thumb_func_end sub_80A7EBC + + thumb_func_start sub_80A7F30 +sub_80A7F30: @ 80A7F30 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A7F48 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + negs r0, r0 + strh r0, [r4, 0x26] +_080A7F48: + ldrh r0, [r4, 0x34] + movs r1, 0x1 + eors r0, r1 + movs r1, 0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080A7F8A + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + strh r1, [r4, 0x36] + strh r1, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + movs r1, 0x1 + eors r1, r0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080A7F90 @ =sub_80A7F94 + str r0, [r4, 0x1C] +_080A7F8A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7F90: .4byte sub_80A7F94 + thumb_func_end sub_80A7F30 + + thumb_func_start sub_80A7F94 +sub_80A7F94: @ 80A7F94 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080A7FA8 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A7FA8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A7F94 + + thumb_func_start sub_80A7FB0 +sub_80A7FB0: @ 80A7FB0 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x1 + bl GetAnimBankSpriteId + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80758E0 + adds r0, r4, 0 + movs r1, 0xD0 + movs r2, 0xD0 + movs r3, 0 + bl obj_id_set_rotscale + ldr r1, _080A8008 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0 + bl sub_8075B48 + ldr r1, _080A800C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x50 + strh r1, [r0, 0x8] + ldr r1, _080A8010 @ =sub_80A8014 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8008: .4byte gSprites +_080A800C: .4byte gTasks +_080A8010: .4byte sub_80A8014 + thumb_func_end sub_80A7FB0 + + thumb_func_start sub_80A8014 +sub_80A8014: @ 80A8014 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A806C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080A8064 + movs r0, 0x1 + bl GetAnimBankSpriteId + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8075980 + ldr r1, _080A8070 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0x1 + bl sub_8075B48 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A8064: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A806C: .4byte gTasks +_080A8070: .4byte gSprites + thumb_func_end sub_80A8014 + + thumb_func_start sub_80A8074 +sub_80A8074: @ 80A8074 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A80C0 @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x8] + movs r1, 0 + bl sub_80758E0 + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x10] + strh r5, [r4, 0x12] + strh r5, [r4, 0x14] + ldr r0, _080A80C4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x16] + ldr r0, _080A80C8 @ =sub_80A80CC + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A80C0: .4byte gTasks +_080A80C4: .4byte gBattleAnimAttacker +_080A80C8: .4byte sub_80A80CC + thumb_func_end sub_80A8074 + + thumb_func_start sub_80A80CC +sub_80A80CC: @ 80A80CC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A80F0 @ =gTasks + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080A80E6 + b _080A81F6 +_080A80E6: + lsls r0, 2 + ldr r1, _080A80F4 @ =_080A80F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A80F0: .4byte gTasks +_080A80F4: .4byte _080A80F8 + .align 2, 0 +_080A80F8: + .4byte _080A8110 + .4byte _080A8158 + .4byte _080A818E + .4byte _080A8194 + .4byte _080A81A4 + .4byte _080A81D8 +_080A8110: + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080A8120 + cmp r0, 0x3 + beq _080A8120 + cmp r0, 0x6 + bne _080A8128 +_080A8120: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A8200 +_080A8128: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + adds r0, 0x28 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r1, 0x10 + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8076440 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x20 + bne _080A81F6 + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + b _080A81D0 +_080A8158: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A81F6 + movs r2, 0x12 + ldrsh r1, [r4, r2] + cmp r1, 0x3 + bne _080A816E + strh r0, [r4, 0xC] + strh r1, [r4, 0xA] + b _080A81F6 +_080A816E: + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r2, 0x80 + lsls r2, 1 + strh r2, [r4, 0x10] + ldrb r0, [r4, 0x8] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8076440 + movs r0, 0x2 + strh r0, [r4, 0xA] + b _080A81F6 +_080A818E: + movs r0, 0 + strh r0, [r4, 0xA] + b _080A81F6 +_080A8194: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _080A81F6 + b _080A81CC +_080A81A4: + ldrh r0, [r4, 0xC] + adds r0, 0x2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + subs r0, 0x50 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r1, 0x10 + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8076440 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x20 + bne _080A81F6 +_080A81CC: + movs r0, 0 + strh r0, [r4, 0xC] +_080A81D0: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080A81F6 +_080A81D8: + ldrb r0, [r4, 0x8] + bl sub_8075980 + ldr r2, _080A81FC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x26] + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A81F6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A81FC: .4byte gSprites + thumb_func_end sub_80A80CC + + thumb_func_start sub_80A8200 +sub_80A8200: @ 80A8200 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r0, 0 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r0, 16 + asrs r4, r0, 16 + cmp r4, 0 + blt _080A82DA + bl AllocOamMatrix + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xFF + bne _080A8244 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _080A8240 @ =gSprites + adds r0, r1 + bl obj_delete_but_dont_free_vram + b _080A82DA + .align 2, 0 +_080A8240: .4byte gSprites +_080A8244: + ldr r5, _080A82E8 @ =gSprites + lsls r3, r4, 4 + adds r3, r4 + lsls r3, 2 + adds r4, r3, r5 + ldrb r1, [r4, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x1F + ands r6, r0 + lsls r2, r6, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + ldrb r0, [r7, 0x16] + ldrb r1, [r7, 0xE] + subs r0, r1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r7, 0xE] + adds r0, 0x1 + strh r0, [r7, 0xE] + ldrh r0, [r7, 0x14] + adds r0, 0x1 + strh r0, [r7, 0x14] + movs r0, 0x10 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + movs r0, 0x6 + strh r0, [r4, 0x32] + adds r5, 0x1C + adds r3, r5 + ldr r0, _080A82EC @ =sub_80A82F0 + str r0, [r3] + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + movs r1, 0x10 + ldrsh r2, [r7, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x1] + movs r3, 0x4 + negs r3, r3 + ands r3, r0 + movs r0, 0x1 + orrs r3, r0 + strb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec +_080A82DA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A82E8: .4byte gSprites +_080A82EC: .4byte sub_80A82F0 + thumb_func_end sub_80A8200 + + thumb_func_start sub_80A82F0 +sub_80A82F0: @ 80A82F0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080A832E + ldr r3, _080A8334 @ =gTasks + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl obj_delete_but_dont_free_vram +_080A832E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8334: .4byte gTasks + thumb_func_end sub_80A82F0 + + thumb_func_start sub_80A8338 +sub_80A8338: @ 80A8338 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080A835C @ =gTasks + adds r4, r0, r1 + ldr r5, _080A8360 @ =gBattleAnimArgs + movs r1, 0x2 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A8364 + adds r0, r2, 0 + bl DestroyAnimVisualTask + b _080A838A + .align 2, 0 +_080A835C: .4byte gTasks +_080A8360: .4byte gBattleAnimArgs +_080A8364: + ldrb r0, [r5] + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + strh r1, [r4, 0x8] + strh r2, [r4, 0xA] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0xC] + strh r2, [r4, 0xE] + strh r2, [r4, 0x10] + ldr r2, _080A8390 @ =gUnknown_83E3E60 + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080A8394 @ =sub_80A8398 + str r0, [r4] +_080A838A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8390: .4byte gUnknown_83E3E60 +_080A8394: .4byte sub_80A8398 + thumb_func_end sub_80A8338 + + thumb_func_start sub_80A8398 +sub_80A8398: @ 80A8398 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080A83BC @ =gTasks + adds r4, r0, r1 + movs r0, 0xA + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080A8400 + cmp r5, 0x1 + bgt _080A83C0 + cmp r5, 0 + beq _080A83CA + b _080A84A8 + .align 2, 0 +_080A83BC: .4byte gTasks +_080A83C0: + cmp r5, 0x2 + beq _080A8434 + cmp r5, 0x3 + beq _080A8464 + b _080A84A8 +_080A83CA: + adds r0, r4, 0 + bl sub_8076308 + ldrh r2, [r4, 0x10] + adds r2, 0x3 + strh r2, [r4, 0x10] + ldr r3, _080A83FC @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x26] + adds r1, r2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080A84A8 + strh r5, [r4, 0xE] + b _080A845C + .align 2, 0 +_080A83FC: .4byte gSprites +_080A8400: + adds r0, r4, 0 + bl sub_8076308 + ldr r2, _080A8430 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + ldrh r2, [r0, 0x26] + adds r1, r2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080A84A8 + movs r0, 0 + strh r0, [r4, 0xE] + b _080A845C + .align 2, 0 +_080A8430: .4byte gSprites +_080A8434: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A845C + ldr r2, _080A8458 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0x10] + subs r0, 0x2 + strh r0, [r4, 0x10] + b _080A84A8 + .align 2, 0 +_080A8458: .4byte gSprites +_080A845C: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080A84A8 +_080A8464: + adds r0, r4, 0 + bl sub_8076308 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080A84A8 + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _080A849C + ldr r2, _080A8498 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x26] + adds r0, r6, 0 + bl DestroyAnimVisualTask + b _080A84A8 + .align 2, 0 +_080A8498: .4byte gSprites +_080A849C: + ldrb r1, [r4, 0x8] + ldr r2, _080A84B0 @ =gUnknown_83E3E60 + adds r0, r4, 0 + bl sub_80762D0 + strh r5, [r4, 0xA] +_080A84A8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A84B0: .4byte gUnknown_83E3E60 + thumb_func_end sub_80A8398 + + thumb_func_start sub_80A84B4 +sub_80A84B4: @ 80A84B4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A84E4 @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080A84E8 @ =gUnknown_83E3E80 + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080A84EC @ =sub_80A84F0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A84E4: .4byte gTasks +_080A84E8: .4byte gUnknown_83E3E80 +_080A84EC: .4byte sub_80A84F0 + thumb_func_end sub_80A84B4 + + thumb_func_start sub_80A84F0 +sub_80A84F0: @ 80A84F0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A8518 @ =gTasks + adds r0, r1 + bl sub_8076308 + lsls r0, 24 + cmp r0, 0 + bne _080A8510 + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A8510: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8518: .4byte gTasks + thumb_func_end sub_80A84F0 + + thumb_func_start sub_80A851C +sub_80A851C: @ 80A851C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080A854C @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A8550 + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r4, 0x20] + movs r0, 0x40 + b _080A856A + .align 2, 0 +_080A854C: .4byte gBattleAnimAttacker +_080A8550: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x20 + strh r0, [r4, 0x20] + ldr r0, _080A859C @ =0x0000ffc0 +_080A856A: + strh r0, [r4, 0x30] + ldr r0, _080A85A0 @ =gBattleAnimAttacker + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4, 0x22] + movs r0, 0x34 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x32] + strh r1, [r4, 0x34] + strh r1, [r4, 0x36] + ldr r1, _080A85A4 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A85A8 @ =sub_8074D00 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A859C: .4byte 0x0000ffc0 +_080A85A0: .4byte gBattleAnimAttacker +_080A85A4: .4byte DestroyAnimSprite +_080A85A8: .4byte sub_8074D00 + thumb_func_end sub_80A851C + + thumb_func_start sub_80A85AC +sub_80A85AC: @ 80A85AC + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080A85C0 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A85C8 + ldr r0, _080A85C4 @ =gBattleAnimAttacker + b _080A85CA + .align 2, 0 +_080A85C0: .4byte gBattleAnimArgs +_080A85C4: .4byte gBattleAnimAttacker +_080A85C8: + ldr r0, _080A8628 @ =gBattleAnimTarget +_080A85CA: + ldrb r5, [r0] + adds r0, r5, 0 + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A85E4 + ldr r1, _080A862C @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080A85E4: + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A862C @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x20] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x4] + adds r0, r4 + strh r0, [r6, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bgt _080A8616 + movs r0, 0x8 + strh r0, [r6, 0x22] +_080A8616: + ldr r1, _080A8630 @ =move_anim_8074EE0 + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A8634 @ =sub_8074F50 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A8628: .4byte gBattleAnimTarget +_080A862C: .4byte gBattleAnimArgs +_080A8630: .4byte move_anim_8074EE0 +_080A8634: .4byte sub_8074F50 + thumb_func_end sub_80A85AC + + thumb_func_start sub_80A8638 +sub_80A8638: @ 80A8638 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A866C @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + strh r1, [r4, 0x8] + strh r0, [r4, 0xA] + ldr r2, _080A8670 @ =gUnknown_83E3F1C + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080A8674 @ =sub_80A8678 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A866C: .4byte gTasks +_080A8670: .4byte gUnknown_83E3F1C +_080A8674: .4byte sub_80A8678 + thumb_func_end sub_80A8638 + + thumb_func_start sub_80A8678 +sub_80A8678: @ 80A8678 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A86A0 @ =gTasks + adds r0, r1 + bl sub_8076308 + lsls r0, 24 + cmp r0, 0 + bne _080A8698 + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A8698: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A86A0: .4byte gTasks + thumb_func_end sub_80A8678 + + thumb_func_start sub_80A86A4 +sub_80A86A4: @ 80A86A4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A8718 @ =gTasks + adds r4, r1, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + strh r0, [r4, 0x8] + strh r2, [r4, 0xA] + movs r0, 0x4 + strh r0, [r4, 0xC] + movs r0, 0x7 + strh r0, [r4, 0xE] + movs r0, 0x3 + strh r0, [r4, 0x10] + ldr r3, _080A871C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x20] + strh r0, [r4, 0x12] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x14] + strh r2, [r4, 0x16] + strh r2, [r4, 0x18] + movs r0, 0x2 + strh r0, [r4, 0x1A] + ldr r0, _080A8720 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A870E + movs r1, 0xC + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0xC] +_080A870E: + ldr r0, _080A8724 @ =sub_80A8728 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8718: .4byte gTasks +_080A871C: .4byte gSprites +_080A8720: .4byte gBattleAnimAttacker +_080A8724: .4byte sub_80A8728 + thumb_func_end sub_80A86A4 + + thumb_func_start sub_80A8728 +sub_80A8728: @ 80A8728 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A8770 @ =gTasks + adds r3, r0, r1 + ldrh r0, [r3, 0x16] + adds r0, 0x1 + strh r0, [r3, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080A878E + movs r0, 0 + strh r0, [r3, 0x16] + ldrh r0, [r3, 0x18] + adds r0, 0x1 + strh r0, [r3, 0x18] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A8778 + ldr r2, _080A8774 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x1A] + ldrh r2, [r0, 0x22] + adds r1, r2 + b _080A878C + .align 2, 0 +_080A8770: .4byte gTasks +_080A8774: .4byte gSprites +_080A8778: + ldr r2, _080A87A0 @ =gSprites + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + ldrh r2, [r3, 0x1A] + subs r1, r2 +_080A878C: + strh r1, [r0, 0x22] +_080A878E: + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _080A87DC + cmp r0, 0x1 + bgt _080A87A4 + cmp r0, 0 + beq _080A87AA + b _080A886C + .align 2, 0 +_080A87A0: .4byte gSprites +_080A87A4: + cmp r0, 0x2 + beq _080A880C + b _080A886C +_080A87AA: + ldr r2, _080A87D8 @ =gSprites + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0xC] + ldrh r2, [r0, 0x20] + adds r1, r2 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080A886C + movs r0, 0xE + strh r0, [r3, 0xE] + movs r0, 0x1 + strh r0, [r3, 0xA] + b _080A886C + .align 2, 0 +_080A87D8: .4byte gSprites +_080A87DC: + ldr r2, _080A8808 @ =gSprites + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + ldrh r2, [r3, 0xC] + subs r1, r2 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080A886C + movs r0, 0x7 + strh r0, [r3, 0xE] + movs r0, 0x2 + strh r0, [r3, 0xA] + b _080A886C + .align 2, 0 +_080A8808: .4byte gSprites +_080A880C: + ldr r2, _080A8844 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0xC] + ldrh r5, [r0, 0x20] + adds r1, r5 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + bne _080A886C + ldrh r0, [r3, 0x10] + subs r0, 0x1 + strh r0, [r3, 0x10] + lsls r0, 16 + cmp r0, 0 + beq _080A8848 + movs r0, 0x7 + strh r0, [r3, 0xE] + strh r1, [r3, 0xA] + b _080A886C + .align 2, 0 +_080A8844: .4byte gSprites +_080A8848: + ldrh r1, [r3, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A8866 + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + ldrh r2, [r3, 0x1A] + subs r1, r2 + strh r1, [r0, 0x22] +_080A8866: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A886C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A8728 + + thumb_func_start sub_80A8874 +sub_80A8874: @ 80A8874 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A88C4 @ =gTasks + adds r5, r1, r0 + ldr r4, _080A88C8 @ =gBattleAnimTarget + ldrb r0, [r4] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + movs r1, 0 + strh r0, [r5, 0x8] + movs r0, 0x4 + strh r0, [r5, 0xA] + strh r1, [r5, 0xC] + strh r1, [r5, 0xE] + strh r1, [r5, 0x10] + strh r1, [r5, 0x12] + ldrb r0, [r4] + bl sub_8076B2C + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A88D4 + ldr r0, _080A88CC @ =gBattle_BG1_X + ldrh r0, [r0] + strh r0, [r5, 0x14] + ldr r0, _080A88D0 @ =0x04000014 + b _080A88DC + .align 2, 0 +_080A88C4: .4byte gTasks +_080A88C8: .4byte gBattleAnimTarget +_080A88CC: .4byte gBattle_BG1_X +_080A88D0: .4byte 0x04000014 +_080A88D4: + ldr r0, _080A8940 @ =gBattle_BG2_X + ldrh r0, [r0] + strh r0, [r5, 0x14] + ldr r0, _080A8944 @ =0x04000018 +_080A88DC: + str r0, [sp] + ldrh r0, [r5, 0x8] + adds r1, r0, 0 + subs r1, 0x40 + lsls r2, r1, 16 + lsls r0, 16 + cmp r2, r0 + bgt _080A891A + ldr r4, _080A8948 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r4, r0 +_080A88F4: + asrs r3, r2, 16 + cmp r3, 0 + blt _080A890C + lsls r1, r3, 1 + adds r2, r1, r4 + ldrh r0, [r5, 0x14] + adds r0, 0xF0 + strh r0, [r2] + adds r1, r6 + ldrh r0, [r5, 0x14] + adds r0, 0xF0 + strh r0, [r1] +_080A890C: + adds r0, r3, 0x1 + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r3, 0x8 + ldrsh r0, [r5, r3] + cmp r1, r0 + ble _080A88F4 +_080A891A: + ldr r0, _080A894C @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + ldr r0, _080A8950 @ =sub_80A8954 + str r0, [r5] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A8940: .4byte gBattle_BG2_X +_080A8944: .4byte 0x04000018 +_080A8948: .4byte gScanlineEffectRegBuffers +_080A894C: .4byte 0xa2600001 +_080A8950: .4byte sub_80A8954 + thumb_func_end sub_80A8874 + + thumb_func_start sub_80A8954 +sub_80A8954: @ 80A8954 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A8974 @ =gTasks + adds r3, r0, r1 + movs r1, 0x10 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080A8978 + cmp r0, 0x1 + beq _080A898E + b _080A8A0E + .align 2, 0 +_080A8974: .4byte gTasks +_080A8978: + ldrh r0, [r3, 0x12] + adds r0, 0x1 + strh r0, [r3, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080A8A0E + ldrh r0, [r3, 0x10] + adds r0, 0x1 + strh r0, [r3, 0x10] + b _080A8A0E +_080A898E: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A8A0E + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r1, [r3, 0xE] + movs r0, 0x3 + ands r0, r1 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x8] + subs r0, r1 + strh r0, [r3, 0x12] + movs r2, 0xC + ldrsh r1, [r3, r2] + cmp r1, 0x1 + beq _080A89C4 + cmp r1, 0x1 + ble _080A89CC + cmp r1, 0x2 + beq _080A89C8 + cmp r1, 0x3 + beq _080A89C8 + b _080A89CC +_080A89C4: + subs r0, 0x2 + b _080A89CA +_080A89C8: + adds r0, 0x1 +_080A89CA: + strh r0, [r3, 0x12] +_080A89CC: + movs r1, 0x12 + ldrsh r0, [r3, r1] + cmp r0, 0 + blt _080A89F0 + ldr r2, _080A8A14 @ =gScanlineEffectRegBuffers + lsls r0, 1 + adds r0, r2 + ldrh r1, [r3, 0x14] + strh r1, [r0] + movs r1, 0x12 + ldrsh r0, [r3, r1] + lsls r0, 1 + movs r1, 0xF0 + lsls r1, 3 + adds r2, r1 + adds r0, r2 + ldrh r1, [r3, 0x14] + strh r1, [r0] +_080A89F0: + ldrh r0, [r3, 0xE] + adds r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x26 + ldrsh r1, [r3, r2] + cmp r0, r1 + blt _080A8A0E + ldr r1, _080A8A18 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A8A0E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8A14: .4byte gScanlineEffectRegBuffers +_080A8A18: .4byte gScanlineEffect + thumb_func_end sub_80A8954 + + thumb_func_start sub_80A8A1C +sub_80A8A1C: @ 80A8A1C + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080A8A70 @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x10 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] + movs r0, 0x10 + strh r0, [r4, 0x34] + strh r5, [r4, 0x36] + ldrb r0, [r6] + movs r1, 0 + bl sub_8076B2C + adds r0, 0x2 + strh r0, [r4, 0x38] + movs r0, 0x3F + bl sub_8073A44 + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0x3A] + ldr r0, _080A8A74 @ =sub_80A8A78 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A8A70: .4byte gBattleAnimTarget +_080A8A74: .4byte sub_80A8A78 + thumb_func_end sub_80A8A1C + + thumb_func_start sub_80A8A78 +sub_80A8A78: @ 80A8A78 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080A8ADC + cmp r1, 0x1 + bgt _080A8A8E + cmp r1, 0 + beq _080A8A94 + b _080A8BBC +_080A8A8E: + cmp r1, 0x2 + beq _080A8B6E + b _080A8BBC +_080A8A94: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A8ABE + strh r1, [r4, 0x32] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080A8ABE: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080A8BBC + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + b _080A8B66 +_080A8ADC: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A8B22 + ldrh r2, [r4, 0x32] + movs r3, 0x32 + ldrsh r1, [r4, r3] + movs r3, 0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080A8B22 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + subs r0, 0x1 + strh r0, [r4, 0x22] + adds r0, r2, 0x1 + strh r0, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080A8B22 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xC6 + bl PlaySE12WithPanning +_080A8B22: + ldrh r0, [r4, 0x34] + ldrh r2, [r4, 0x36] + adds r1, r0, r2 + strh r1, [r4, 0x36] + lsls r0, r1, 16 + asrs r2, r0, 16 + cmp r2, 0x1F + ble _080A8B36 + movs r0, 0x40 + b _080A8B44 +_080A8B36: + movs r0, 0x20 + negs r0, r0 + cmp r2, r0 + bgt _080A8B50 + movs r2, 0x40 + negs r2, r2 + adds r0, r2, 0 +_080A8B44: + subs r0, r1 + strh r0, [r4, 0x36] + movs r3, 0x34 + ldrsh r0, [r4, r3] + negs r0, r0 + strh r0, [r4, 0x34] +_080A8B50: + ldrh r0, [r4, 0x36] + movs r2, 0 + strh r0, [r4, 0x24] + movs r0, 0x38 + ldrsh r1, [r4, r0] + movs r3, 0x32 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080A8BBC + strh r2, [r4, 0x30] + strh r2, [r4, 0x32] +_080A8B66: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080A8BBC +_080A8B6E: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A8B9A + movs r0, 0 + strh r0, [r4, 0x32] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080A8B9A: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080A8BBC + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + bl DestroyAnimSprite +_080A8BBC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A8A78 + + thumb_func_start sub_80A8BC4 +sub_80A8BC4: @ 80A8BC4 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + movs r5, 0 + mov r0, sp + strh r5, [r0] + mov r1, sp + adds r1, 0x2 + strh r5, [r1] + ldr r0, _080A8BE8 @ =gBattleAnimArgs + movs r3, 0x4 + ldrsh r2, [r0, r3] + adds r7, r1, 0 + adds r1, r0, 0 + cmp r2, 0 + bne _080A8BF0 + ldr r0, _080A8BEC @ =gBattleAnimAttacker + b _080A8BF2 + .align 2, 0 +_080A8BE8: .4byte gBattleAnimArgs +_080A8BEC: .4byte gBattleAnimAttacker +_080A8BF0: + ldr r0, _080A8C2C @ =gBattleAnimTarget +_080A8BF2: + ldrb r5, [r0] + ldrb r1, [r1, 0x6] + movs r0, 0x1 + adds r4, r0, 0 + eors r4, r1 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080A8C6A + movs r1, 0x2 + adds r0, r5, 0 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A8C6A + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, sp + adds r3, r7, 0 + bl sub_8076D9C + cmp r4, 0 + bne _080A8C30 + adds r0, r5, 0 + movs r1, 0 + b _080A8C34 + .align 2, 0 +_080A8C2C: .4byte gBattleAnimTarget +_080A8C30: + adds r0, r5, 0 + movs r1, 0x2 +_080A8C34: + bl sub_8074480 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A8C60 + ldr r2, _080A8C5C @ =gBattleAnimArgs + mov r0, sp + ldrh r1, [r0] + subs r1, r4 + ldrh r0, [r2] + subs r1, r0 + subs r0, r1 + strh r0, [r2] + b _080A8C6A + .align 2, 0 +_080A8C5C: .4byte gBattleAnimArgs +_080A8C60: + ldr r1, _080A8C7C @ =gBattleAnimArgs + mov r0, sp + ldrh r0, [r0] + subs r0, r4 + strh r0, [r1] +_080A8C6A: + ldr r1, _080A8C80 @ =sub_8075D9C + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A8C7C: .4byte gBattleAnimArgs +_080A8C80: .4byte sub_8075D9C + thumb_func_end sub_80A8BC4 + + thumb_func_start sub_80A8C84 +sub_80A8C84: @ 80A8C84 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080A8C9E + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroyAnimSprite +_080A8C9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A8C84 + + thumb_func_start sub_80A8CA4 +sub_80A8CA4: @ 80A8CA4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r0, 0 + movs r6, 0 + mov r0, sp + strh r6, [r0] + mov r1, sp + adds r1, 0x2 + strh r6, [r1] + ldr r0, _080A8CD0 @ =gBattleAnimArgs + movs r2, 0xA + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080A8CDC + ldr r0, _080A8CD4 @ =gBattleAnimAttacker + ldrb r7, [r0] + ldr r0, _080A8CD8 @ =gBattleAnimTarget + b _080A8CE2 + .align 2, 0 +_080A8CD0: .4byte gBattleAnimArgs +_080A8CD4: .4byte gBattleAnimAttacker +_080A8CD8: .4byte gBattleAnimTarget +_080A8CDC: + ldr r0, _080A8CFC @ =gBattleAnimTarget + ldrb r7, [r0] + ldr r0, _080A8D00 @ =gBattleAnimAttacker +_080A8CE2: + ldrb r0, [r0] + mov r8, r0 + ldr r0, _080A8D04 @ =gBattleAnimArgs + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080A8D08 + movs r0, 0 + mov r10, r0 + movs r1, 0x1 + str r1, [sp, 0x4] + b _080A8D10 + .align 2, 0 +_080A8CFC: .4byte gBattleAnimTarget +_080A8D00: .4byte gBattleAnimAttacker +_080A8D04: .4byte gBattleAnimArgs +_080A8D08: + movs r2, 0x2 + mov r10, r2 + movs r3, 0x3 + str r3, [sp, 0x4] +_080A8D10: + adds r0, r7, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A8D6C + adds r0, r7, 0 + mov r1, r10 + bl sub_8074480 + lsls r0, 24 + ldr r1, _080A8D50 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r0, 0x2 + mov r4, r8 + eors r4, r0 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A8D5C + ldr r2, _080A8D54 @ =gSprites + ldr r0, _080A8D58 @ =gBattlerSpriteIds + adds r0, r4, r0 + b _080A8DEA + .align 2, 0 +_080A8D50: .4byte gBattleAnimArgs +_080A8D54: .4byte gSprites +_080A8D58: .4byte gBattlerSpriteIds +_080A8D5C: + ldr r2, _080A8D64 @ =gSprites + ldr r0, _080A8D68 @ =gBattlerSpriteIds + add r0, r8 + b _080A8DEA + .align 2, 0 +_080A8D64: .4byte gSprites +_080A8D68: .4byte gBattlerSpriteIds +_080A8D6C: + adds r0, r7, 0 + mov r1, r10 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A8DD4 @ =gBattleAnimArgs + ldrh r1, [r1] + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A8DE4 + movs r0, 0x2 + adds r4, r7, 0 + eors r4, r0 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A8DE4 + ldr r3, _080A8DD8 @ =gSprites + ldr r2, _080A8DDC @ =gBattlerSpriteIds + adds r0, r7, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r6, r0, r3 + adds r2, r4, r2 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r3 + movs r0, 0x20 + ldrsh r1, [r6, r0] + movs r3, 0x20 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080A8DE0 + adds r0, r2, 0 + adds r0, 0x43 + ldrb r0, [r0] + adds r0, 0x1 + b _080A8DFA + .align 2, 0 +_080A8DD4: .4byte gBattleAnimArgs +_080A8DD8: .4byte gSprites +_080A8DDC: .4byte gBattlerSpriteIds +_080A8DE0: + adds r0, r6, 0 + b _080A8DF4 +_080A8DE4: + ldr r2, _080A8E40 @ =gSprites + ldr r0, _080A8E44 @ =gBattlerSpriteIds + adds r0, r7, r0 +_080A8DEA: + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 +_080A8DF4: + adds r0, 0x43 + ldrb r0, [r0] + subs r0, 0x1 +_080A8DFA: + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] + adds r0, r7, 0 + ldr r1, [sp, 0x4] + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A8E48 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A8E4C + movs r1, 0x2 + mov r0, r8 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A8E4C + ldrb r1, [r4, 0xC] + mov r0, r8 + mov r2, sp + mov r3, sp + adds r3, 0x2 + bl sub_8076D9C + b _080A8E6C + .align 2, 0 +_080A8E40: .4byte gSprites +_080A8E44: .4byte gBattlerSpriteIds +_080A8E48: .4byte gBattleAnimArgs +_080A8E4C: + mov r4, sp + mov r0, r8 + mov r1, r10 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + mov r0, r8 + ldr r1, [sp, 0x4] + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r2, sp + strh r0, [r2, 0x2] +_080A8E6C: + mov r0, r8 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A8E90 + mov r3, sp + mov r2, sp + ldr r1, _080A8E8C @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + ldrh r2, [r2] + adds r0, r2 + strh r0, [r3] + adds r2, r1, 0 + b _080A8E9E + .align 2, 0 +_080A8E8C: .4byte gBattleAnimArgs +_080A8E90: + mov r3, sp + mov r0, sp + ldr r2, _080A8EE0 @ =gBattleAnimArgs + ldrh r0, [r0] + ldrh r1, [r2, 0x6] + subs r0, r1 + strh r0, [r3] +_080A8E9E: + ldrh r1, [r2, 0x8] + mov r3, sp + ldrh r3, [r3, 0x2] + adds r1, r3 + mov r0, sp + strh r1, [r0, 0x2] + mov r3, r9 + strh r3, [r5, 0x30] + strh r3, [r5, 0x20] + strh r6, [r5, 0x34] + strh r6, [r5, 0x22] + ldrh r0, [r0] + strh r0, [r5, 0x32] + strh r1, [r5, 0x36] + ldrh r0, [r2] + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080A8EE4 @ =sub_80A8C84 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A8EE0: .4byte gBattleAnimArgs +_080A8EE4: .4byte sub_80A8C84 + thumb_func_end sub_80A8CA4 + + thumb_func_start sub_80A8EE8 +sub_80A8EE8: @ 80A8EE8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A8F28 @ =0x000027db + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080A8F0E + lsls r0, 20 + ldr r1, _080A8F2C @ =0x01010000 + adds r0, r1 + lsrs r0, 16 + ldr r1, _080A8F30 @ =gBattleAnimArgs + ldrb r2, [r1, 0xA] + ldrh r3, [r1, 0x8] + movs r1, 0xF + bl BlendPalette +_080A8F0E: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080A8F34 @ =sub_8075D9C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8F28: .4byte 0x000027db +_080A8F2C: .4byte 0x01010000 +_080A8F30: .4byte gBattleAnimArgs +_080A8F34: .4byte sub_8075D9C + thumb_func_end sub_80A8EE8 + + thumb_func_start sub_80A8F38 +sub_80A8F38: @ 80A8F38 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r0, _080A8F6C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + movs r1, 0xA0 + cmp r0, 0 + beq _080A8F54 + ldr r1, _080A8F70 @ =0x0000ff60 +_080A8F54: + movs r0, 0xE0 + lsls r0, 2 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + ldr r0, _080A8F74 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x3C] + ldr r0, _080A8F78 @ =sub_80A8F7C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8F6C: .4byte gBattleAnimAttacker +_080A8F70: .4byte 0x0000ff60 +_080A8F74: .4byte gBattleAnimArgs +_080A8F78: .4byte sub_80A8F7C + thumb_func_end sub_80A8F38 + + thumb_func_start sub_80A8F7C +sub_80A8F7C: @ 80A8F7C + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + subs r1, r0 + movs r5, 0 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + subs r2, 0x20 + strh r2, [r4, 0x2E] + ldr r0, _080A8FE8 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + movs r1, 0xA0 + cmp r0, 0 + beq _080A8FAC + ldr r1, _080A8FEC @ =0x0000ff60 +_080A8FAC: + lsls r0, r1, 16 + asrs r0, 16 + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x26] + movs r2, 0x26 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A8FE0 + ldrh r2, [r4, 0x22] + adds r0, r1, r2 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x26] + strh r5, [r4, 0x24] + strh r5, [r4, 0x2E] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _080A8FF0 @ =sub_80A8FF4 + str r0, [r4, 0x1C] +_080A8FE0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8FE8: .4byte gBattleAnimAttacker +_080A8FEC: .4byte 0x0000ff60 +_080A8FF0: .4byte sub_80A8FF4 + thumb_func_end sub_80A8F7C + + thumb_func_start sub_80A8FF4 +sub_80A8FF4: @ 80A8FF4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080A9012 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080A9018 @ =sub_80A901C + str r0, [r4, 0x1C] +_080A9012: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9018: .4byte sub_80A901C + thumb_func_end sub_80A8FF4 + + thumb_func_start sub_80A901C +sub_80A901C: @ 80A901C + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A9082 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r0, 0 + strh r0, [r4, 0x2E] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A9068 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x10 + ldr r3, _080A905C @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080A9060 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r0, _080A9064 @ =sub_80A9094 + b _080A9080 + .align 2, 0 +_080A905C: .4byte 0x000003ff +_080A9060: .4byte 0xfffffc00 +_080A9064: .4byte sub_80A9094 +_080A9068: + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x20 + ldr r3, _080A9088 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080A908C @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r0, _080A9090 @ =sub_80A911C +_080A9080: + str r0, [r4, 0x1C] +_080A9082: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9088: .4byte 0x000003ff +_080A908C: .4byte 0xfffffc00 +_080A9090: .4byte sub_80A911C + thumb_func_end sub_80A901C + + thumb_func_start sub_80A9094 +sub_80A9094: @ 80A9094 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x26] + subs r0, 0x2 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bne _080A90CA + movs r0, 0x10 + strh r0, [r4, 0x2E] + movs r0, 0 + strh r0, [r4, 0x30] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r4, 0x2E] + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080A90D0 @ =sub_80A90D4 + str r0, [r4, 0x1C] +_080A90CA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A90D0: .4byte sub_80A90D4 + thumb_func_end sub_80A9094 + + thumb_func_start sub_80A90D4 +sub_80A90D4: @ 80A90D4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080A9112 + ldrh r1, [r4, 0x2E] + subs r1, 0x1 + strh r1, [r4, 0x2E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A9112 + ldr r0, _080A9118 @ =sub_80A911C + str r0, [r4, 0x1C] +_080A9112: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9118: .4byte sub_80A911C + thumb_func_end sub_80A90D4 + + thumb_func_start sub_80A911C +sub_80A911C: @ 80A911C + push {lr} + adds r3, r0, 0 + ldr r0, _080A9144 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080A9148 @ =0x0000ffff + cmp r1, r0 + bne _080A9154 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r1, 0x3C + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080A9150 + ldr r0, _080A914C @ =sub_80A915C + b _080A9152 + .align 2, 0 +_080A9144: .4byte gBattleAnimArgs +_080A9148: .4byte 0x0000ffff +_080A914C: .4byte sub_80A915C +_080A9150: + ldr r0, _080A9158 @ =DestroyAnimSprite +_080A9152: + str r0, [r3, 0x1C] +_080A9154: + pop {r0} + bx r0 + .align 2, 0 +_080A9158: .4byte DestroyAnimSprite + thumb_func_end sub_80A911C + + thumb_func_start sub_80A915C +sub_80A915C: @ 80A915C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A915C + + thumb_func_start sub_80A917C +sub_80A917C: @ 80A917C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A91AC @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + strh r1, [r4, 0x8] + ldr r2, _080A91B0 @ =gUnknown_83E4128 + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080A91B4 @ =sub_80A91B8 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A91AC: .4byte gTasks +_080A91B0: .4byte gUnknown_83E4128 +_080A91B4: .4byte sub_80A91B8 + thumb_func_end sub_80A917C + + thumb_func_start sub_80A91B8 +sub_80A91B8: @ 80A91B8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A9208 @ =gTasks + adds r4, r0, r1 + adds r0, r4, 0 + bl sub_8076308 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080A9202 + ldr r2, _080A920C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] + movs r0, 0x8 + ldrsh r1, [r4, r0] + 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] + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A9202: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9208: .4byte gTasks +_080A920C: .4byte gSprites + thumb_func_end sub_80A91B8 + + thumb_func_start sub_80A9210 +sub_80A9210: @ 80A9210 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A9244 @ =gTasks + adds r4, r1, r0 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r0, 0x3 + strh r0, [r4, 0x20] + ldr r0, _080A9248 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A9250 + ldr r0, _080A924C @ =0x0000ffff + strh r0, [r4, 0x22] + movs r0, 0x8 + b _080A9256 + .align 2, 0 +_080A9244: .4byte gTasks +_080A9248: .4byte gBattleAnimTarget +_080A924C: .4byte 0x0000ffff +_080A9250: + movs r0, 0x1 + strh r0, [r4, 0x22] + ldr r0, _080A9270 @ =0x0000fff8 +_080A9256: + strh r0, [r4, 0x24] + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080A9274 @ =sub_80A9278 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9270: .4byte 0x0000fff8 +_080A9274: .4byte sub_80A9278 + thumb_func_end sub_80A9210 + + thumb_func_start sub_80A9278 +sub_80A9278: @ 80A9278 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A929C @ =gTasks + adds r3, r0, r1 + movs r0, 0x8 + ldrsh r4, [r3, r0] + cmp r4, 0x1 + beq _080A92CC + cmp r4, 0x1 + bgt _080A92A0 + cmp r4, 0 + beq _080A92AA + b _080A9392 + .align 2, 0 +_080A929C: .4byte gTasks +_080A92A0: + cmp r4, 0x2 + beq _080A9348 + cmp r4, 0x3 + beq _080A9362 + b _080A9392 +_080A92AA: + ldr r2, _080A92C8 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x24] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + strh r4, [r3, 0xA] + strh r4, [r3, 0xC] + strh r4, [r3, 0xE] + b _080A935A + .align 2, 0 +_080A92C8: .4byte gSprites +_080A92CC: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A9392 + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + ands r0, r4 + lsls r0, 16 + cmp r0, 0 + beq _080A9304 + ldr r2, _080A9300 @ =gSprites + movs r4, 0x26 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + adds r1, 0x6 + b _080A9316 + .align 2, 0 +_080A9300: .4byte gSprites +_080A9304: + ldr r2, _080A9344 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + subs r1, 0x6 +_080A9316: + strh r1, [r0, 0x24] + ldrh r0, [r3, 0xE] + adds r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080A9392 + ldrh r1, [r3, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A935A + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x24] + subs r0, 0x6 + strh r0, [r1, 0x24] + b _080A935A + .align 2, 0 +_080A9344: .4byte gSprites +_080A9348: + ldrh r0, [r3, 0x20] + subs r0, 0x1 + strh r0, [r3, 0x20] + lsls r0, 16 + cmp r0, 0 + beq _080A935A + movs r0, 0 + strh r0, [r3, 0x8] + b _080A9392 +_080A935A: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080A9392 +_080A9362: + ldr r2, _080A9398 @ =gSprites + movs r4, 0x26 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x22] + ldrh r4, [r0, 0x24] + adds r1, r4 + strh r1, [r0, 0x24] + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x24 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A9392 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A9392: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9398: .4byte gSprites + thumb_func_end sub_80A9278 + + thumb_func_start sub_80A939C +sub_80A939C: @ 80A939C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A93D8 @ =gTasks + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r0, 0x1 + strh r0, [r4, 0x10] + movs r0, 0xE + strh r0, [r4, 0x22] + movs r0, 0x2 + strh r0, [r4, 0x24] + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080A93DC @ =sub_80A93E0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A93D8: .4byte gTasks +_080A93DC: .4byte sub_80A93E0 + thumb_func_end sub_80A939C + + thumb_func_start sub_80A93E0 +sub_80A93E0: @ 80A93E0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A9434 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _080A94A6 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x10 + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _080A94A6 + strh r2, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A943C + ldr r3, _080A9438 @ =gSprites + movs r6, 0x26 + ldrsh r1, [r4, r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + b _080A9452 + .align 2, 0 +_080A9434: .4byte gTasks +_080A9438: .4byte gSprites +_080A943C: + ldr r3, _080A9484 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 +_080A9452: + strb r1, [r0] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + movs r2, 0 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r6, 0x22 + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _080A94A6 + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + movs r6, 0x24 + ldrsh r1, [r4, r6] + cmp r0, r1 + bge _080A9488 + strh r2, [r4, 0xA] + strh r2, [r4, 0xC] + strh r2, [r4, 0xE] + b _080A94A6 + .align 2, 0 +_080A9484: .4byte gSprites +_080A9488: + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A94A6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A93E0 + + thumb_func_start sub_80A94AC +sub_80A94AC: @ 80A94AC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A94FC @ =gTasks + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x8] + movs r1, 0x4 + strh r1, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + strh r0, [r4, 0x12] + strh r0, [r4, 0x14] + strh r0, [r4, 0x16] + strh r0, [r4, 0x18] + strh r0, [r4, 0x22] + ldr r5, _080A9500 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080A9504 @ =sub_80A9508 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A94FC: .4byte gTasks +_080A9500: .4byte gBattleAnimAttacker +_080A9504: .4byte sub_80A9508 + thumb_func_end sub_80A94AC + + thumb_func_start sub_80A9508 +sub_80A9508: @ 80A9508 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080A952C @ =gTasks + adds r4, r0, r1 + movs r0, 0x18 + ldrsh r2, [r4, r0] + cmp r2, 0x1 + beq _080A9574 + cmp r2, 0x1 + bgt _080A9530 + cmp r2, 0 + beq _080A9536 + b _080A9590 + .align 2, 0 +_080A952C: .4byte gTasks +_080A9530: + cmp r2, 0x2 + beq _080A958C + b _080A9590 +_080A9536: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A9590 + strh r2, [r4, 0x10] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x14] + adds r0, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080A9590 + movs r1, 0x16 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A956E + strh r2, [r4, 0x14] + movs r0, 0x1 + strh r0, [r4, 0x18] + b _080A9590 +_080A956E: + movs r0, 0x2 + strh r0, [r4, 0x18] + b _080A9590 +_080A9574: + movs r1, 0 + strh r1, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080A9590 + strh r2, [r4, 0x16] + strh r1, [r4, 0x18] + b _080A9590 +_080A958C: + movs r0, 0x1 + strh r0, [r4, 0x12] +_080A9590: + movs r2, 0x8 + ldrsh r5, [r4, r2] + cmp r5, 0 + beq _080A959E + cmp r5, 0x1 + beq _080A9634 + b _080A9642 +_080A959E: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080A9642 + strh r5, [r4, 0xA] + ldr r0, _080A9628 @ =gUnknown_83E4154 + movs r3, 0x24 + ldrsh r1, [r4, r3] + movs r3, 0x26 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080A9642 + ldr r0, _080A962C @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + strh r6, [r1, 0x2E] + movs r0, 0xD + strh r0, [r1, 0x30] + ldr r2, _080A9630 @ =gUnknown_83E416C + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + strh r0, [r1, 0x24] + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A9642 + strh r5, [r4, 0xC] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080A9642 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080A9642 + .align 2, 0 +_080A9628: .4byte gUnknown_83E4154 +_080A962C: .4byte gSprites +_080A9630: .4byte gUnknown_83E416C +_080A9634: + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A9642 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A9642: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A9508 + + thumb_func_start sub_80A9648 +sub_80A9648: @ 80A9648 + push {r4,lr} + adds r3, r0, 0 + ldr r4, _080A96B0 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + movs r2, 0x1 + ldrb r1, [r0, 0x12] + ands r1, r2 + lsls r1, 2 + mov r0, r12 + ldrb r2, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + adds r0, r3, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A96AA + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r1, 1 + movs r0, 0x2E + ldrsh r2, [r3, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r0, r4, 0 + adds r0, 0x8 + adds r1, r0 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r3, 0 + bl DestroySprite +_080A96AA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A96B0: .4byte gTasks + thumb_func_end sub_80A9648 + + thumb_func_start sub_80A96B4 +sub_80A96B4: @ 80A96B4 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080A9750 @ =0x000027de + bl IndexOfSpritePaletteTag + mov r1, sp + strb r0, [r1] + movs r4, 0x1 + ldr r0, _080A9754 @ =0x00002710 + adds r5, r0, 0 +_080A96CC: + subs r0, r5, r4 + lsls r0, 16 + lsrs r0, 16 + bl AllocSpritePalette + mov r2, sp + adds r1, r2, r4 + strb r0, [r1] + adds r4, 0x1 + cmp r4, 0x2 + ble _080A96CC + movs r0, 0x80 + lsls r0, 6 + bl AllocZeroed + adds r1, r0, 0 + ldr r0, _080A9758 @ =gMonSpritesGfxPtr + ldr r0, [r0] + movs r2, 0xBE + lsls r2, 1 + adds r0, r2 + str r1, [r0] + ldr r0, _080A975C @ =gFile_graphics_battle_anims_sprites_206_palette + bl LZDecompressWram + movs r4, 0 +_080A9700: + ldr r5, _080A9758 @ =gMonSpritesGfxPtr + ldr r0, [r5] + movs r1, 0xBE + lsls r1, 1 + adds r0, r1 + lsls r1, r4, 6 + ldr r0, [r0] + adds r0, r1 + mov r2, sp + adds r1, r2, r4 + ldrb r1, [r1] + lsls r1, 20 + movs r2, 0x80 + lsls r2, 17 + adds r1, r2 + lsrs r1, 16 + movs r2, 0x20 + bl LoadPalette + adds r4, 0x1 + cmp r4, 0x2 + ble _080A9700 + ldr r0, [r5] + movs r4, 0xBE + lsls r4, 1 + adds r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r5] + adds r0, r4 + movs r1, 0 + str r1, [r0] + adds r0, r6, 0 + bl DestroyAnimVisualTask + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9750: .4byte 0x000027de +_080A9754: .4byte 0x00002710 +_080A9758: .4byte gMonSpritesGfxPtr +_080A975C: .4byte gFile_graphics_battle_anims_sprites_206_palette + thumb_func_end sub_80A96B4 + + thumb_func_start sub_80A9760 +sub_80A9760: @ 80A9760 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _080A9784 @ =gUnknown_83E41C8 + movs r4, 0x2 +_080A976A: + ldrh r0, [r5] + bl FreeSpritePaletteByTag + adds r5, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080A976A + adds r0, r6, 0 + bl DestroyAnimVisualTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9784: .4byte gUnknown_83E41C8 + thumb_func_end sub_80A9760 + + thumb_func_start sub_80A9788 +sub_80A9788: @ 80A9788 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsls r2, 24 + lsrs r3, r2, 24 + movs r0, 0x1 + ands r3, r0 + negs r0, r3 + orrs r0, r3 + asrs r0, 31 + movs r3, 0x20 + ands r0, r3 + ldrh r4, [r5, 0x4] + lsls r3, r4, 22 + lsrs r3, 22 + lsrs r1, 22 + adds r0, r1 + adds r3, r0 + ldr r1, _080A97DC @ =0x000003ff + adds r0, r1, 0 + ands r3, r0 + ldr r0, _080A97E0 @ =0xfffffc00 + ands r0, r4 + orrs r0, r3 + strh r0, [r5, 0x4] + ldr r0, _080A97E4 @ =gUnknown_83E41C8 + lsrs r2, 25 + lsls r2, 1 + adds r2, r0 + ldrh r0, [r2] + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r5, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A97DC: .4byte 0x000003ff +_080A97E0: .4byte 0xfffffc00 +_080A97E4: .4byte gUnknown_83E41C8 + thumb_func_end sub_80A9788 + + thumb_func_start sub_80A97E8 +sub_80A97E8: @ 80A97E8 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r6, _080A9850 @ =gBattleAnimAttacker + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A9808 + ldr r1, _080A9854 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080A9808: + ldr r4, _080A9854 @ =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x2E] + ldrb r0, [r6] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldr r0, _080A9858 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A985C @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldrb r1, [r4, 0xA] + ldrb r2, [r4, 0xC] + adds r0, r5, 0 + bl sub_80A9788 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9850: .4byte gBattleAnimAttacker +_080A9854: .4byte gBattleAnimArgs +_080A9858: .4byte sub_8075590 +_080A985C: .4byte DestroyAnimSprite + thumb_func_end sub_80A97E8 + + thumb_func_start sub_80A9860 +sub_80A9860: @ 80A9860 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A987A + adds r0, r4, 0 + movs r1, 0 + bl sub_8075160 +_080A987A: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x32] + lsls r0, r2, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x7 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + subs r2, 0x80 + strh r2, [r4, 0x32] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x3C + bne _080A98AA + adds r0, r4, 0 + bl DestroyAnimSprite +_080A98AA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A9860 + + thumb_func_start sub_80A98B0 +sub_80A98B0: @ 80A98B0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + bl sub_8073788 + lsls r0, 24 + movs r6, 0xF0 + cmp r0, 0 + beq _080A98C4 + movs r6, 0x98 +_080A98C4: + movs r5, 0 + ldr r1, _080A9918 @ =gUnknown_2022984 + strh r6, [r1] + ldr r4, _080A991C @ =gUnknown_2022986 + movs r0, 0xA0 + strh r0, [r4] + ldrh r1, [r1] + movs r0, 0x40 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x44 + bl SetGpuReg + ldr r1, _080A9920 @ =0x00003f1f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080A9924 @ =0x00003f3f + movs r0, 0x4A + bl SetGpuReg + movs r0, 0x50 + movs r1, 0xC8 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0x10 + bl SetGpuReg + ldr r1, _080A9928 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + strh r6, [r0, 0xA] + ldr r1, _080A992C @ =sub_80A9930 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A9918: .4byte gUnknown_2022984 +_080A991C: .4byte gUnknown_2022986 +_080A9920: .4byte 0x00003f1f +_080A9924: .4byte 0x00003f3f +_080A9928: .4byte gTasks +_080A992C: .4byte sub_80A9930 + thumb_func_end sub_80A98B0 + + thumb_func_start sub_80A9930 +sub_80A9930: @ 80A9930 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A9964 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r0, [r3, 0x8] + adds r4, r0, 0 + adds r4, 0xD + strh r4, [r3, 0x8] + ldrh r0, [r3, 0xA] + adds r2, r0, 0 + subs r2, 0xD + strh r2, [r3, 0xA] + lsls r1, r4, 16 + lsls r0, r2, 16 + cmp r1, r0 + blt _080A9970 + ldr r0, _080A9968 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080A996C @ =sub_80A9984 + str r0, [r3] + b _080A9978 + .align 2, 0 +_080A9964: .4byte gTasks +_080A9968: .4byte gUnknown_2022984 +_080A996C: .4byte sub_80A9984 +_080A9970: + ldr r1, _080A9980 @ =gUnknown_2022984 + lsls r0, r4, 8 + orrs r2, r0 + strh r2, [r1] +_080A9978: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9980: .4byte gUnknown_2022984 + thumb_func_end sub_80A9930 + + thumb_func_start sub_80A9984 +sub_80A9984: @ 80A9984 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080A99D0 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080A99D8 + movs r0, 0x88 + strh r0, [r1, 0x1E] + movs r0, 0x50 + movs r1, 0x88 + bl SetGpuReg + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + ldr r2, _080A99D4 @ =0x00007fff + movs r1, 0x10 + bl BlendPalettes + b _080A9A0C + .align 2, 0 +_080A99D0: .4byte gTasks +_080A99D4: .4byte 0x00007fff +_080A99D8: + cmp r0, 0x4 + ble _080A9A0C + ldr r0, _080A9A14 @ =gUnknown_2022984 + strh r4, [r0] + ldr r0, _080A9A18 @ =gUnknown_2022986 + strh r4, [r0] + ldr r4, _080A9A1C @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A9A0C: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9A14: .4byte gUnknown_2022984 +_080A9A18: .4byte gUnknown_2022986 +_080A9A1C: .4byte 0x00003f3f + thumb_func_end sub_80A9984 + + thumb_func_start sub_80A9A20 +sub_80A9A20: @ 80A9A20 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080A9A70 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A9A7C + movs r0, 0x1 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080A9A74 @ =gUnknown_83E4200 + adds r0, r5, 0 + bl sub_80762D0 + ldr r1, _080A9A78 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x24] + b _080A9AA4 + .align 2, 0 +_080A9A70: .4byte gTasks +_080A9A74: .4byte gUnknown_83E4200 +_080A9A78: .4byte gSprites +_080A9A7C: + ldr r1, _080A9AAC @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + adds r0, r5, 0 + bl sub_8076308 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080A9AA4 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A9AA4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9AAC: .4byte gSprites + thumb_func_end sub_80A9A20 + + thumb_func_start sub_80A9AB0 +sub_80A9AB0: @ 80A9AB0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080A9B00 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A9B0C + movs r0, 0 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080A9B04 @ =gUnknown_83E4200 + adds r0, r5, 0 + bl sub_80762D0 + ldr r1, _080A9B08 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x24] + b _080A9B34 + .align 2, 0 +_080A9B00: .4byte gTasks +_080A9B04: .4byte gUnknown_83E4200 +_080A9B08: .4byte gSprites +_080A9B0C: + ldr r1, _080A9B3C @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + adds r0, r5, 0 + bl sub_8076308 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080A9B34 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A9B34: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9B3C: .4byte gSprites + thumb_func_end sub_80A9AB0 + + thumb_func_start sub_80A9B40 +sub_80A9B40: @ 80A9B40 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + movs r0, 0x5F + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080A9B84 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080A9B88 @ =sub_80A9B8C + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9B84: .4byte gBattleAnimTarget +_080A9B88: .4byte sub_80A9B8C + thumb_func_end sub_80A9B40 + + thumb_func_start sub_80A9B8C +sub_80A9B8C: @ 80A9B8C + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080A9BB6 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080A9BBC +_080A9BB6: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A9BBC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A9B8C + + thumb_func_start sub_80A9BC4 +sub_80A9BC4: @ 80A9BC4 + push {r4,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A9BE8 + ldr r1, _080A9BE4 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x32] + adds r0, r2, 0x1 + strh r0, [r4, 0x2E] + b _080A9C44 + .align 2, 0 +_080A9BE4: .4byte gBattleAnimArgs +_080A9BE8: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x64 + ble _080A9C36 + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080A9C36: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x78 + ble _080A9C44 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A9C44: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A9BC4 + + thumb_func_start sub_80A9C4C +sub_80A9C4C: @ 80A9C4C + push {lr} + ldr r2, _080A9C70 @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0x20] + movs r1, 0xA0 + strh r1, [r0, 0x22] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x2E] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x30] + ldr r1, _080A9C74 @ =sub_8074C44 + str r1, [r0, 0x1C] + ldr r1, _080A9C78 @ =sub_80A9C7C + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080A9C70: .4byte gBattleAnimArgs +_080A9C74: .4byte sub_8074C44 +_080A9C78: .4byte sub_80A9C7C + thumb_func_end sub_80A9C4C + + thumb_func_start sub_80A9C7C +sub_80A9C7C: @ 80A9C7C + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + lsls r0, 16 + lsrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + lsls r0, 16 + asrs r5, r0, 16 + cmp r5, 0x48 + bgt _080A9CE2 + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + cmp r5, 0x40 + bgt _080A9CE2 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A9CE2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A9C7C + + thumb_func_start sub_80A9CE8 +sub_80A9CE8: @ 80A9CE8 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A9DA0 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x3 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A9D2A + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080A9D2A: + ldr r0, _080A9DA4 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r4, _080A9DA8 @ =gBattle_BG1_Y + strh r1, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap + bl sub_807543C + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A9D88 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080A9D88: + ldr r0, _080A9DB8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080A9DBC @ =sub_80A9DC0 + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9DA0: .4byte 0x00003f42 +_080A9DA4: .4byte gBattle_BG1_X +_080A9DA8: .4byte gBattle_BG1_Y +_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap +_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet +_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette +_080A9DB8: .4byte gTasks +_080A9DBC: .4byte sub_80A9DC0 + thumb_func_end sub_80A9CE8 + + thumb_func_start sub_80A9DC0 +sub_80A9DC0: @ 80A9DC0 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080A9DE8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080A9DDE + b _080A9F08 +_080A9DDE: + lsls r0, 2 + ldr r1, _080A9DEC @ =_080A9DF0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A9DE8: .4byte gTasks +_080A9DEC: .4byte _080A9DF0 + .align 2, 0 +_080A9DF0: + .4byte _080A9E04 + .4byte _080A9E48 + .4byte _080A9E6A + .4byte _080A9EAE + .4byte _080A9ED4 +_080A9E04: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080A9F08 + strh r5, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + adds r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080A9F08 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x1E] + b _080A9F08 +_080A9E48: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8D + bne _080A9F08 + movs r0, 0x10 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080A9F08 +_080A9E6A: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080A9F08 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080A9F08 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080A9F08 +_080A9EAE: + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + bl sub_8075358 + ldr r1, _080A9ED0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + b _080A9F08 + .align 2, 0 +_080A9ED0: .4byte gTasks +_080A9ED4: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A9EE8 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080A9EE8: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A9F08: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A9DC0 + + thumb_func_start sub_80A9F10 +sub_80A9F10: @ 80A9F10 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A9F88 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A9F52 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080A9F52: + ldr r0, _080A9F8C @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r4, _080A9F90 @ =gBattle_BG1_Y + strh r1, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80752A0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A9F98 + ldr r0, _080A9F94 @ =gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap + ldr r1, [sp, 0x4] + bl LZDecompressVram + b _080A9FC6 + .align 2, 0 +_080A9F88: .4byte 0x00003f42 +_080A9F8C: .4byte gBattle_BG1_X +_080A9F90: .4byte gBattle_BG1_Y +_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap +_080A9F98: + ldr r0, _080A9FB4 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A9FBC + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap + bl sub_807543C + b _080A9FC6 + .align 2, 0 +_080A9FB4: .4byte gBattleAnimTarget +_080A9FB8: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap +_080A9FBC: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap + bl sub_807543C +_080A9FC6: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A9FFA + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080A9FFA: + ldr r0, _080AA01C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AA020 @ =sub_80AA024 + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA010: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap +_080AA014: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet +_080AA018: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette +_080AA01C: .4byte gTasks +_080AA020: .4byte sub_80AA024 + thumb_func_end sub_80A9F10 + + thumb_func_start sub_80AA024 +sub_80AA024: @ 80AA024 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080AA04C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080AA042 + b _080AA168 +_080AA042: + lsls r0, 2 + ldr r1, _080AA050 @ =_080AA054 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AA04C: .4byte gTasks +_080AA050: .4byte _080AA054 + .align 2, 0 +_080AA054: + .4byte _080AA068 + .4byte _080AA0AC + .4byte _080AA0CE + .4byte _080AA112 + .4byte _080AA134 +_080AA068: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080AA168 + strh r5, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + adds r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0xE + bne _080AA168 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x1E] + b _080AA168 +_080AA0AC: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080AA168 + movs r0, 0xE + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080AA168 +_080AA0CE: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080AA168 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080AA168 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080AA168 +_080AA112: + mov r0, sp + bl sub_80752A0 + movs r0, 0x1 + bl sub_8075358 + movs r0, 0x2 + bl sub_8075358 + ldr r0, _080AA170 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] +_080AA134: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AA148 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080AA148: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AA168: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA170: .4byte gTasks + thumb_func_end sub_80AA024 + + thumb_func_start sub_80AA174 +sub_80AA174: @ 80AA174 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080AA1C8 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080AA1CC @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrb r0, [r5] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x3C] + ldr r1, _080AA1D0 @ =sub_80AA1D4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA1C8: .4byte gBattleAnimAttacker +_080AA1CC: .4byte gBattleAnimArgs +_080AA1D0: .4byte sub_80AA1D4 + thumb_func_end sub_80AA174 + + thumb_func_start sub_80AA1D4 +sub_80AA1D4: @ 80AA1D4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080AA1EA + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + b _080AA1EE +_080AA1EA: + ldrh r0, [r4, 0x3C] + subs r0, 0x1 +_080AA1EE: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r2, 0x30 + ldrsh r0, [r4, r2] + ldrh r1, [r4, 0x34] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x9 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r3, 0x38 + ldrsh r2, [r4, r3] + cmp r2, 0 + beq _080AA260 + cmp r2, 0x1 + bne _080AA290 + ldr r1, _080AA258 @ =0xfffffc00 + adds r0, r1, 0 + ldrh r2, [r4, 0x32] + adds r0, r2 + strh r0, [r4, 0x32] + ldr r3, _080AA25C @ =0xffffff00 + adds r0, r3, 0 + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x2E + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080AA290 + movs r0, 0x2 + strh r0, [r4, 0x38] + b _080AA2A0 + .align 2, 0 +_080AA258: .4byte 0xfffffc00 +_080AA25C: .4byte 0xffffff00 +_080AA260: + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x2E + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _080AA290 + strh r2, [r4, 0x36] + movs r0, 0x1 + strh r0, [r4, 0x38] +_080AA290: + ldr r0, _080AA2A8 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080AA2AC @ =0x0000ffff + cmp r1, r0 + bne _080AA2A0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA2A0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA2A8: .4byte gBattleAnimArgs +_080AA2AC: .4byte 0x0000ffff + thumb_func_end sub_80AA1D4 + + thumb_func_start sub_80AA2B0 +sub_80AA2B0: @ 80AA2B0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080AA2F8 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080AA2FC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + strh r0, [r5, 0x2E] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x7 + bl Cos + strh r0, [r5, 0x30] + ldr r0, _080AA300 @ =sub_80AA304 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA2F8: .4byte gBattleAnimAttacker +_080AA2FC: .4byte gBattleAnimArgs +_080AA300: .4byte sub_80AA304 + thumb_func_end sub_80AA2B0 + + thumb_func_start sub_80AA304 +sub_80AA304: @ 80AA304 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x30] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] + movs r1, 0x20 + ldrsh r0, [r2, r1] + movs r3, 0x24 + ldrsh r1, [r2, r3] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080AA342 + movs r0, 0x22 + ldrsh r1, [r2, r0] + movs r3, 0x26 + ldrsh r0, [r2, r3] + adds r1, r0 + cmp r1, 0xA0 + bgt _080AA342 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080AA348 +_080AA342: + adds r0, r2, 0 + bl DestroyAnimSprite +_080AA348: + pop {r0} + bx r0 + thumb_func_end sub_80AA304 + + thumb_func_start sub_80AA34C +sub_80AA34C: @ 80AA34C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x30] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r1, r0, 0x1 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080AA378 + adds r0, r2, 0 + bl DestroyAnimSprite +_080AA378: + pop {r0} + bx r0 + thumb_func_end sub_80AA34C + + thumb_func_start sub_80AA37C +sub_80AA37C: @ 80AA37C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080AA3C8 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080AA3CC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + strh r0, [r5, 0x2E] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x7 + bl Cos + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x32] + ldr r0, _080AA3D0 @ =sub_80AA34C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA3C8: .4byte gBattleAnimAttacker +_080AA3CC: .4byte gBattleAnimArgs +_080AA3D0: .4byte sub_80AA34C + thumb_func_end sub_80AA37C + + thumb_func_start sub_80AA3D4 +sub_80AA3D4: @ 80AA3D4 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AA3EA + adds r0, r2, 0 + bl DestroyAnimSprite +_080AA3EA: + pop {r0} + bx r0 + thumb_func_end sub_80AA3D4 + + thumb_func_start sub_80AA3F0 +sub_80AA3F0: @ 80AA3F0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080AA404 @ =sub_80AA3D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA404: .4byte sub_80AA3D4 + thumb_func_end sub_80AA3F0 + + thumb_func_start sub_80AA408 +sub_80AA408: @ 80AA408 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA426 + ldr r0, _080AA498 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080AA426: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r2, 0x2E + ldrsh r1, [r4, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r5, r0, 1 + movs r0, 0xFF + ands r5, r0 + adds r0, r5, 0 + movs r1, 0x50 + bl Sin + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x4F + bgt _080AA46A + adds r0, r5, 0 + movs r1, 0x50 + bl Cos + movs r2, 0x2E + ldrsh r1, [r4, r2] + lsrs r2, r1, 31 + adds r1, r2 + asrs r1, 1 + lsls r0, 16 + asrs r0, 24 + adds r1, r0 + strh r1, [r4, 0x26] +_080AA46A: + movs r0, 0x2E + ldrsh r2, [r4, r0] + cmp r2, 0x5A + ble _080AA488 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r0, [r4, 0x24] + subs r0, r1 + strh r0, [r4, 0x24] +_080AA488: + cmp r2, 0x64 + ble _080AA492 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA492: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA498: .4byte gBattleAnimArgs + thumb_func_end sub_80AA408 + + thumb_func_start sub_80AA49C +sub_80AA49C: @ 80AA49C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x14 + ble _080AA4F2 + adds r1, r0, 0 + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080AA4F2: + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x1E + ble _080AA500 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA500: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AA49C + + thumb_func_start sub_80AA508 +sub_80AA508: @ 80AA508 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA52C + ldr r1, _080AA528 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x32] + adds r0, r2, 0x1 + strh r0, [r4, 0x2E] + b _080AA580 + .align 2, 0 +_080AA528: .4byte gBattleAnimArgs +_080AA52C: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + movs r5, 0 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x46 + ble _080AA580 + ldr r0, _080AA588 @ =sub_80AA49C + str r0, [r4, 0x1C] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x22] + adds r0, r2, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x24] + strh r5, [r4, 0x26] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB4 + bl __umodsi3 + strh r0, [r4, 0x34] +_080AA580: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA588: .4byte sub_80AA49C + thumb_func_end sub_80AA508 + + thumb_func_start sub_80AA58C +sub_80AA58C: @ 80AA58C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA5C6 + ldr r1, _080AA688 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim + ldr r0, _080AA68C @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r0, 0x1 + strh r0, [r4, 0x32] +_080AA5C6: + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r0, r2 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r1, r0, 2 + adds r0, r1, 0 + cmp r1, 0 + bge _080AA5DC + adds r0, 0xFF +_080AA5DC: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bge _080AA5EE + movs r0, 0 + strh r0, [r4, 0x30] +_080AA5EE: + movs r0, 0x30 + ldrsh r2, [r4, r0] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080AA5FC + adds r0, 0x3 +_080AA5FC: + asrs r0, 2 + movs r1, 0x1E + subs r1, r0 + adds r0, r2, 0 + bl Cos + strh r0, [r4, 0x24] + movs r0, 0x30 + ldrsh r2, [r4, r0] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080AA618 + adds r0, 0x7 +_080AA618: + asrs r0, 3 + movs r1, 0xA + subs r1, r0 + adds r0, r2, 0 + bl Sin + strh r0, [r4, 0x26] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x80 + ble _080AA63C + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080AA63C + ldr r0, _080AA690 @ =0x0000ffff + strh r0, [r4, 0x32] +_080AA63C: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA650 + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _080AA650 + movs r0, 0x1 + strh r0, [r4, 0x32] +_080AA650: + ldrh r0, [r4, 0x34] + adds r1, r0, 0x1 + strh r1, [r4, 0x34] + subs r0, 0x9 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x46 + bls _080AA694 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080AA6A2 + .align 2, 0 +_080AA688: .4byte gBattleAnimArgs +_080AA68C: .4byte gBattleAnimTarget +_080AA690: .4byte 0x0000ffff +_080AA694: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080AA6A2: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x5A + ble _080AA6B0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA6B0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AA58C + + thumb_func_start sub_80AA6B8 +sub_80AA6B8: @ 80AA6B8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA6EC + ldr r1, _080AA6E8 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrb r1, [r1, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080AA700 + .align 2, 0 +_080AA6E8: .4byte gBattleAnimArgs +_080AA6EC: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AA700 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA700: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AA6B8 + + thumb_func_start sub_80AA708 +sub_80AA708: @ 80AA708 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r1, _080AA720 @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080AA724 + adds r0, r5, 0 + bl DestroyAnimSprite + b _080AA788 + .align 2, 0 +_080AA720: .4byte gBattleAnimArgs +_080AA724: + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080AA734 + ldr r4, _080AA730 @ =gBattleAnimAttacker + b _080AA736 + .align 2, 0 +_080AA730: .4byte gBattleAnimAttacker +_080AA734: + ldr r4, _080AA764 @ =gBattleAnimTarget +_080AA736: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080AA768 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r1, [r0, r2] + adds r2, r0, 0 + cmp r1, 0 + bne _080AA76C + ldrh r0, [r5, 0x20] + adds r0, 0x20 + b _080AA770 + .align 2, 0 +_080AA764: .4byte gBattleAnimTarget +_080AA768: .4byte gBattleAnimArgs +_080AA76C: + ldrh r0, [r5, 0x20] + subs r0, 0x20 +_080AA770: + strh r0, [r5, 0x20] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x2E] + ldrh r1, [r2, 0x2] + strh r1, [r5, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + ldr r0, _080AA790 @ =sub_80AA794 + str r0, [r5, 0x1C] +_080AA788: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA790: .4byte sub_80AA794 + thumb_func_end sub_80AA708 + + thumb_func_start sub_80AA794 +sub_80AA794: @ 80AA794 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AA7C4 + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + cmp r0, 0 + beq _080AA7BE + ldrh r1, [r2, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim + b _080AA7C4 +_080AA7BE: + adds r0, r2, 0 + bl DestroyAnimSprite +_080AA7C4: + pop {r0} + bx r0 + thumb_func_end sub_80AA794 + + thumb_func_start sub_80AA7C8 +sub_80AA7C8: @ 80AA7C8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080AA7FC @ =gBattleAnimArgs + ldrb r0, [r0] + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080AA800 @ =gTasks + adds r4, r0 + ldr r2, _080AA804 @ =gUnknown_83E4410 + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080AA808 @ =sub_80AA80C + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA7FC: .4byte gBattleAnimArgs +_080AA800: .4byte gTasks +_080AA804: .4byte gUnknown_83E4410 +_080AA808: .4byte sub_80AA80C + thumb_func_end sub_80AA7C8 + + thumb_func_start sub_80AA80C +sub_80AA80C: @ 80AA80C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080AA834 @ =gTasks + adds r0, r1 + bl sub_8076308 + lsls r0, 24 + cmp r0, 0 + bne _080AA82C + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AA82C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA834: .4byte gTasks + thumb_func_end sub_80AA80C + + thumb_func_start sub_80AA838 +sub_80AA838: @ 80AA838 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080AA84C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080AA854 + ldr r0, _080AA850 @ =gBattleAnimAttacker + b _080AA856 + .align 2, 0 +_080AA84C: .4byte gBattleAnimArgs +_080AA850: .4byte gBattleAnimAttacker +_080AA854: + ldr r0, _080AA8EC @ =gBattleAnimTarget +_080AA856: + ldrb r6, [r0] + adds r0, r6, 0 + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080AA870 + ldr r1, _080AA8F0 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080AA870: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r7, _080AA8F0 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r3, [r7, 0x2] + adds r0, r3 + movs r4, 0 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r7, 0x4] + adds r0, r1 + strh r0, [r5, 0x22] + strh r4, [r5, 0x2E] + ldrh r1, [r5, 0x20] + lsls r1, 3 + strh r1, [r5, 0x30] + lsls r0, 3 + strh r0, [r5, 0x32] + movs r2, 0x2 + ldrsh r0, [r7, r2] + lsls r0, 3 + cmp r0, 0 + bge _080AA8B0 + adds r0, 0x7 +_080AA8B0: + asrs r0, 3 + strh r0, [r5, 0x34] + movs r3, 0x4 + ldrsh r0, [r7, r3] + lsls r0, 3 + cmp r0, 0 + bge _080AA8C0 + adds r0, 0x7 +_080AA8C0: + asrs r0, 3 + strh r0, [r5, 0x36] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x6 + ldrsh r0, [r7, r3] + lsls r0, 4 + adds r1, r0 + ldr r3, _080AA8F4 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080AA8F8 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r0, _080AA8FC @ =sub_80AA900 + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AA8EC: .4byte gBattleAnimTarget +_080AA8F0: .4byte gBattleAnimArgs +_080AA8F4: .4byte 0x000003ff +_080AA8F8: .4byte 0xfffffc00 +_080AA8FC: .4byte sub_80AA900 + thumb_func_end sub_80AA838 + + thumb_func_start sub_80AA900 +sub_80AA900: @ 80AA900 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x30] + adds r0, r1 + strh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + ldrh r3, [r2, 0x32] + adds r1, r3 + strh r1, [r2, 0x32] + lsls r0, 16 + asrs r0, 19 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 19 + strh r1, [r2, 0x22] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080AA934 + adds r0, r2, 0 + bl DestroyAnimSprite +_080AA934: + pop {r0} + bx r0 + thumb_func_end sub_80AA900 + + thumb_func_start sub_80AA938 +sub_80AA938: @ 80AA938 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA95A + ldr r0, _080AA994 @ =gBattleAnimArgs + ldrh r1, [r0] + movs r0, 0x78 + subs r0, r1 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080AA95A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x30 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080AA978 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0 + bl sub_8075B48 +_080AA978: + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r2, 0x30 + ldrsh r0, [r4, r2] + adds r0, 0x50 + cmp r1, r0 + bne _080AA98C + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA98C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA994: .4byte gBattleAnimArgs + thumb_func_end sub_80AA938 + + thumb_func_start sub_80AA998 +sub_80AA998: @ 80AA998 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080AA9C6 + movs r5, 0x78 + strh r5, [r6, 0x20] + ldr r4, _080AAA48 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r0, [r4, r2] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r0, 0xF + strh r0, [r6, 0x22] + ldrb r1, [r4, 0x2] + adds r0, r6, 0 + bl StartSpriteAnim + strh r5, [r6, 0x38] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x34] +_080AA9C6: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + movs r5, 0 + strh r0, [r6, 0x2E] + movs r1, 0x2E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r6, 0x30] + movs r2, 0x2E + ldrsh r0, [r6, r2] + lsls r4, r0, 1 + adds r4, r0 + ldrh r0, [r6, 0x34] + adds r4, r0 + movs r2, 0xFF + ldrh r0, [r6, 0x3A] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r6, 0x3A] + ands r4, r2 + adds r0, r4, 0 + movs r1, 0x64 + bl Cos + strh r0, [r6, 0x24] + adds r0, r4, 0 + movs r1, 0xA + bl Sin + adds r4, r0, 0 + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r1, 0x4 + bl Cos + ldrh r2, [r6, 0x30] + adds r4, r2 + adds r0, r4 + strh r0, [r6, 0x26] + movs r0, 0x2E + ldrsh r1, [r6, r0] + movs r2, 0x38 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080AAA42 + ldr r0, _080AAA4C @ =sub_80AAA50 + str r0, [r6, 0x1C] + strh r5, [r6, 0x2E] + adds r0, r6, 0 + bl oamt_add_pos2_onto_pos1 + movs r0, 0x5 + strh r0, [r6, 0x32] + strh r5, [r6, 0x36] + strh r5, [r6, 0x34] + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080AAA42: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AAA48: .4byte gBattleAnimArgs +_080AAA4C: .4byte sub_80AAA50 + thumb_func_end sub_80AA998 + + thumb_func_start sub_80AAA50 +sub_80AAA50: @ 80AAA50 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080AAA6A + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080AAA70 @ =sub_80AAA74 + str r0, [r1, 0x1C] +_080AAA6A: + pop {r0} + bx r0 + .align 2, 0 +_080AAA70: .4byte sub_80AAA74 + thumb_func_end sub_80AAA50 + + thumb_func_start sub_80AAA74 +sub_80AAA74: @ 80AAA74 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x34] + adds r0, r1, r2 + strh r0, [r4, 0x34] + strh r0, [r4, 0x26] + adds r1, 0x1 + strh r1, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x30 + ble _080AAA9E + lsls r0, r1, 16 + cmp r0, 0 + ble _080AAA9E + ldrh r0, [r4, 0x36] + subs r1, r0, 0x5 + strh r1, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x36] +_080AAA9E: + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + ble _080AAAD0 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, 0 + bl DestroyAnimSprite +_080AAAD0: + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bne _080AAADE + adds r0, r4, 0 + bl DestroyAnimSprite +_080AAADE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AAA74 + + thumb_func_start sub_80AAAE4 +sub_80AAAE4: @ 80AAAE4 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080AAB28 @ =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AAB30 + ldr r4, _080AAB2C @ =gBattleAnimAttacker + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080AAB30 + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C + ldrh r0, [r5, 0x22] + adds r0, 0x28 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080AAB50 + .align 2, 0 +_080AAB28: .4byte gBattleTypeFlags +_080AAB2C: .4byte gBattleAnimAttacker +_080AAB30: + ldr r4, _080AAB70 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x28 + strh r0, [r5, 0x22] +_080AAB50: + movs r0, 0xD + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + subs r0, 0x48 + strh r0, [r5, 0x36] + ldr r0, _080AAB74 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080AAB78 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AAB70: .4byte gBattleAnimAttacker +_080AAB74: .4byte sub_8075590 +_080AAB78: .4byte DestroyAnimSprite + thumb_func_end sub_80AAAE4 + + thumb_func_start sub_80AAB7C +sub_80AAB7C: @ 80AAB7C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080AAB98 @ =gBattleAnimArgs + ldr r1, _080AAB9C @ =gAnimDisableStructPtr + ldr r1, [r1] + ldrb r2, [r1, 0x10] + movs r1, 0x1 + ands r1, r2 + strh r1, [r3, 0xE] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080AAB98: .4byte gBattleAnimArgs +_080AAB9C: .4byte gAnimDisableStructPtr + thumb_func_end sub_80AAB7C + + thumb_func_start update_fury_cutter_counter_copy +update_fury_cutter_counter_copy: @ 80AABA0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AABB8 @ =gBattleAnimArgs + ldr r1, _080AABBC @ =gAnimDisableStructPtr + ldr r1, [r1] + ldrb r1, [r1, 0x10] + strh r1, [r2, 0xE] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080AABB8: .4byte gBattleAnimArgs +_080AABBC: .4byte gAnimDisableStructPtr + thumb_func_end update_fury_cutter_counter_copy + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_80DE2C0.s b/asm/battle_anim_effects_3.s index f3ddeb0b1..74f6ef9fc 100644 --- a/asm/battle_anim_80DE2C0.s +++ b/asm/battle_anim_effects_3.s @@ -9,7 +9,7 @@ sub_80DE2C0: @ 80DE2C0 push {lr} adds r2, r0, 0 - ldr r1, _080DE2E4 @ =gUnknown_2037F02 + ldr r1, _080DE2E4 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r3, [r2, 0x20] adds r0, r3 @@ -25,7 +25,7 @@ sub_80DE2C0: @ 80DE2C0 ldrh r0, [r1, 0x4] b _080DE2EC .align 2, 0 -_080DE2E4: .4byte gUnknown_2037F02 +_080DE2E4: .4byte gBattleAnimArgs _080DE2E8: ldrh r0, [r1, 0x4] negs r0, r0 @@ -89,7 +89,7 @@ sub_80DE34C: @ 80DE34C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, _080DE398 @ =gUnknown_2037F1B + ldr r6, _080DE398 @ =gBattleAnimTarget ldrb r0, [r6] movs r1, 0x2 bl sub_8074480 @@ -119,7 +119,7 @@ sub_80DE34C: @ 80DE34C pop {r0} bx r0 .align 2, 0 -_080DE398: .4byte gUnknown_2037F1B +_080DE398: .4byte gBattleAnimTarget thumb_func_end sub_80DE34C thumb_func_start sub_80DE39C @@ -213,7 +213,7 @@ sub_80DE440: @ 80DE440 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 - ldr r4, _080DE4CC @ =gUnknown_2037F1B + ldr r4, _080DE4CC @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -260,7 +260,7 @@ _080DE49E: movs r1, 0 adds r2, r3, 0 bl sub_8075A1C - ldr r0, _080DE4D0 @ =gUnknown_2037F02 + ldr r0, _080DE4D0 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] strh r7, [r5, 0x32] @@ -275,8 +275,8 @@ _080DE49E: pop {r0} bx r0 .align 2, 0 -_080DE4CC: .4byte gUnknown_2037F1B -_080DE4D0: .4byte gUnknown_2037F02 +_080DE4CC: .4byte gBattleAnimTarget +_080DE4D0: .4byte gBattleAnimArgs _080DE4D4: .4byte sub_8075590 _080DE4D8: .4byte DestroyAnimSprite thumb_func_end sub_80DE440 @@ -642,7 +642,7 @@ _080DE766: add r0, r9 strh r1, [r0, 0x12] _080DE788: - ldr r0, _080DE7AC @ =gUnknown_2037F02 + ldr r0, _080DE7AC @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080DE7B0 @ =0x0000ffff cmp r1, r0 @@ -659,7 +659,7 @@ _080DE798: .align 2, 0 _080DE7A4: .4byte gTasks _080DE7A8: .4byte gPlttBufferFaded -_080DE7AC: .4byte gUnknown_2037F02 +_080DE7AC: .4byte gBattleAnimArgs _080DE7B0: .4byte 0x0000ffff thumb_func_end sub_80DE718 @@ -770,7 +770,7 @@ _080DE85A: adds r0, r2 strh r1, [r0, 0x12] _080DE87E: - ldr r0, _080DE8A8 @ =gUnknown_2037F02 + ldr r0, _080DE8A8 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080DE8AC @ =0x0000ffff cmp r1, r0 @@ -789,7 +789,7 @@ _080DE88E: _080DE89C: .4byte gTasks _080DE8A0: .4byte gPlttBufferFaded _080DE8A4: .4byte gPlttBufferUnfaded -_080DE8A8: .4byte gUnknown_2037F02 +_080DE8A8: .4byte gBattleAnimArgs _080DE8AC: .4byte 0x0000ffff thumb_func_end sub_80DE7DC @@ -800,7 +800,7 @@ sub_80DE8B0: @ 80DE8B0 adds r4, r0, 0 movs r1, 0x1 bl sub_8075160 - ldr r0, _080DE914 @ =gUnknown_2037F1B + ldr r0, _080DE914 @ =gBattleAnimTarget ldrb r0, [r0] mov r5, sp adds r5, 0x2 @@ -808,18 +808,18 @@ sub_80DE8B0: @ 80DE8B0 mov r2, sp adds r3, r5, 0 bl sub_8076D9C - ldr r0, _080DE918 @ =gUnknown_2037F1A + ldr r0, _080DE918 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080DE8E4 - ldr r1, _080DE91C @ =gUnknown_2037F02 + ldr r1, _080DE91C @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080DE8E4: - ldr r1, _080DE91C @ =gUnknown_2037F02 + ldr r1, _080DE91C @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] mov r2, sp @@ -842,9 +842,9 @@ _080DE8E4: pop {r0} bx r0 .align 2, 0 -_080DE914: .4byte gUnknown_2037F1B -_080DE918: .4byte gUnknown_2037F1A -_080DE91C: .4byte gUnknown_2037F02 +_080DE914: .4byte gBattleAnimTarget +_080DE918: .4byte gBattleAnimAttacker +_080DE91C: .4byte gBattleAnimArgs _080DE920: .4byte 0x0000ffce _080DE924: .4byte sub_80DE928 thumb_func_end sub_80DE8B0 @@ -919,7 +919,7 @@ sub_80DE99C: @ 80DE99C push {r4,r5,lr} adds r4, r0, 0 bl sub_8074FCC - ldr r5, _080DE9CC @ =gUnknown_2037F02 + ldr r5, _080DE9CC @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -937,7 +937,7 @@ sub_80DE99C: @ 80DE99C pop {r0} bx r0 .align 2, 0 -_080DE9CC: .4byte gUnknown_2037F02 +_080DE9CC: .4byte gBattleAnimArgs _080DE9D0: .4byte sub_8074F6C _080DE9D4: .4byte DestroyAnimSprite thumb_func_end sub_80DE99C @@ -952,7 +952,7 @@ sub_80DE9D8: @ 80DE9D8 bne _080DEA38 adds r0, r4, 0 bl sub_8074FCC - ldr r5, _080DEA14 @ =gUnknown_2037F02 + ldr r5, _080DEA14 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r5, r2] adds r0, r4, 0 @@ -961,7 +961,7 @@ sub_80DE9D8: @ 80DE9D8 lsls r0, 24 cmp r0, 0 bne _080DEA2C - ldr r0, _080DEA18 @ =gUnknown_2037F1A + ldr r0, _080DEA18 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -970,8 +970,8 @@ sub_80DE9D8: @ 80DE9D8 ldrh r0, [r5, 0x4] b _080DEA32 .align 2, 0 -_080DEA14: .4byte gUnknown_2037F02 -_080DEA18: .4byte gUnknown_2037F1A +_080DEA14: .4byte gBattleAnimArgs +_080DEA18: .4byte gBattleAnimAttacker _080DEA1C: movs r1, 0x4 ldrsh r0, [r5, r1] @@ -1061,21 +1061,21 @@ sub_80DEAB4: @ 80DEAB4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080DEAD0 @ =gUnknown_2037F1B + ldr r0, _080DEAD0 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DEAD8 - ldr r1, _080DEAD4 @ =gUnknown_2037F02 + ldr r1, _080DEAD4 @ =gBattleAnimArgs movs r0, 0 b _080DEADC .align 2, 0 -_080DEAD0: .4byte gUnknown_2037F1B -_080DEAD4: .4byte gUnknown_2037F02 +_080DEAD0: .4byte gBattleAnimTarget +_080DEAD4: .4byte gBattleAnimArgs _080DEAD8: - ldr r1, _080DEAEC @ =gUnknown_2037F02 + ldr r1, _080DEAEC @ =gBattleAnimArgs movs r0, 0x1 _080DEADC: strh r0, [r1, 0xE] @@ -1085,7 +1085,7 @@ _080DEADC: pop {r0} bx r0 .align 2, 0 -_080DEAEC: .4byte gUnknown_2037F02 +_080DEAEC: .4byte gBattleAnimArgs thumb_func_end sub_80DEAB4 thumb_func_start sub_80DEAF0 @@ -1097,14 +1097,14 @@ sub_80DEAF0: @ 80DEAF0 ldr r0, [r0] cmp r0, 0 ble _080DEB0C - ldr r1, _080DEB08 @ =gUnknown_2037F02 + ldr r1, _080DEB08 @ =gBattleAnimArgs movs r0, 0 b _080DEB10 .align 2, 0 _080DEB04: .4byte gUnknown_2037EE8 -_080DEB08: .4byte gUnknown_2037F02 +_080DEB08: .4byte gBattleAnimArgs _080DEB0C: - ldr r1, _080DEB1C @ =gUnknown_2037F02 + ldr r1, _080DEB1C @ =gBattleAnimArgs movs r0, 0x1 _080DEB10: strh r0, [r1, 0xE] @@ -1113,7 +1113,7 @@ _080DEB10: pop {r0} bx r0 .align 2, 0 -_080DEB1C: .4byte gUnknown_2037F02 +_080DEB1C: .4byte gBattleAnimArgs thumb_func_end sub_80DEAF0 thumb_func_start sub_80DEB20 @@ -1303,12 +1303,12 @@ _080DEC8C: .4byte 0x00003f3f sub_80DEC90: @ 80DEC90 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080DED04 @ =gUnknown_2037F02 + ldr r6, _080DED04 @ =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 bne _080DECBC - ldr r4, _080DED08 @ =gUnknown_2037F1A + ldr r4, _080DED08 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 bl sub_8074480 @@ -1358,8 +1358,8 @@ _080DECBC: movs r0, 0x2 b _080DED1E .align 2, 0 -_080DED04: .4byte gUnknown_2037F02 -_080DED08: .4byte gUnknown_2037F1A +_080DED04: .4byte gBattleAnimArgs +_080DED08: .4byte gBattleAnimAttacker _080DED0C: .4byte 0x000003ff _080DED10: .4byte 0xfffffc00 _080DED14: .4byte 0x0000fff4 @@ -1369,7 +1369,7 @@ _080DED18: ldr r0, _080DED3C @ =0x0000fffe _080DED1E: strh r0, [r5, 0x30] - ldr r1, _080DED40 @ =gUnknown_2037F02 + ldr r1, _080DED40 @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] movs r2, 0x34 @@ -1386,7 +1386,7 @@ _080DED32: bx r0 .align 2, 0 _080DED3C: .4byte 0x0000fffe -_080DED40: .4byte gUnknown_2037F02 +_080DED40: .4byte gBattleAnimArgs _080DED44: .4byte sub_80DED48 thumb_func_end sub_80DEC90 @@ -1575,18 +1575,18 @@ _080DEEB8: .4byte gUnknown_202298A sub_80DEEBC: @ 80DEEBC push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080DEED0 @ =gUnknown_2037F02 + ldr r6, _080DEED0 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080DEED8 - ldr r4, _080DEED4 @ =gUnknown_2037F1A + ldr r4, _080DEED4 @ =gBattleAnimAttacker b _080DEEDA .align 2, 0 -_080DEED0: .4byte gUnknown_2037F02 -_080DEED4: .4byte gUnknown_2037F1A +_080DEED0: .4byte gBattleAnimArgs +_080DEED4: .4byte gBattleAnimAttacker _080DEED8: - ldr r4, _080DEF2C @ =gUnknown_2037F1B + ldr r4, _080DEF2C @ =gBattleAnimTarget _080DEEDA: ldrb r0, [r4] movs r1, 0 @@ -1602,7 +1602,7 @@ _080DEEDA: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r2, _080DEF30 @ =gUnknown_2037F02 + ldr r2, _080DEF30 @ =gBattleAnimArgs ldrh r0, [r2, 0x4] strh r0, [r5, 0x26] movs r3, 0 @@ -1629,8 +1629,8 @@ _080DEF12: pop {r0} bx r0 .align 2, 0 -_080DEF2C: .4byte gUnknown_2037F1B -_080DEF30: .4byte gUnknown_2037F02 +_080DEF2C: .4byte gBattleAnimTarget +_080DEF30: .4byte gBattleAnimArgs _080DEF34: .4byte sub_80DEF38 thumb_func_end sub_80DEEBC @@ -1644,7 +1644,7 @@ sub_80DEF38: @ 80DEF38 movs r1, 0xFF ands r0, r1 strh r0, [r2, 0x30] - ldr r1, _080DEF80 @ =gUnknown_825E074 + ldr r1, _080DEF80 @ =gSineTable movs r3, 0x30 ldrsh r0, [r2, r3] lsls r0, 1 @@ -1671,7 +1671,7 @@ sub_80DEF38: @ 80DEF38 bl DestroyAnimSprite b _080DEF96 .align 2, 0 -_080DEF80: .4byte gUnknown_825E074 +_080DEF80: .4byte gSineTable _080DEF84: lsls r0, r1, 16 asrs r0, 16 @@ -1697,19 +1697,19 @@ sub_80DEF9C: @ 80DEF9C lsls r1, 3 ldr r0, _080DEFBC @ =gTasks adds r5, r1, r0 - ldr r0, _080DEFC0 @ =gUnknown_2037F02 + ldr r0, _080DEFC0 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DEFC8 - ldr r4, _080DEFC4 @ =gUnknown_2037F1A + ldr r4, _080DEFC4 @ =gBattleAnimAttacker b _080DEFCA .align 2, 0 _080DEFBC: .4byte gTasks -_080DEFC0: .4byte gUnknown_2037F02 -_080DEFC4: .4byte gUnknown_2037F1A +_080DEFC0: .4byte gBattleAnimArgs +_080DEFC4: .4byte gBattleAnimAttacker _080DEFC8: - ldr r4, _080DF010 @ =gUnknown_2037F1B + ldr r4, _080DF010 @ =gBattleAnimTarget _080DEFCA: ldrb r0, [r4] bl sub_807492C @@ -1735,21 +1735,21 @@ _080DEFF4: strh r0, [r5, 0xE] movs r0, 0x8 strh r0, [r5, 0x10] - ldr r1, _080DF014 @ =gUnknown_2037F02 + ldr r1, _080DF014 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x12] strh r2, [r5, 0x14] strh r2, [r5, 0x16] cmp r7, 0x1 bne _080DF01C - ldr r0, _080DF018 @ =gUnknown_2022978 + ldr r0, _080DF018 @ =gBattle_BG1_X b _080DF01E .align 2, 0 -_080DF010: .4byte gUnknown_2037F1B -_080DF014: .4byte gUnknown_2037F02 -_080DF018: .4byte gUnknown_2022978 +_080DF010: .4byte gBattleAnimTarget +_080DF014: .4byte gBattleAnimArgs +_080DF018: .4byte gBattle_BG1_X _080DF01C: - ldr r0, _080DF03C @ =gUnknown_202297C + ldr r0, _080DF03C @ =gBattle_BG2_X _080DF01E: ldrh r2, [r0] strh r2, [r5, 0x18] @@ -1766,7 +1766,7 @@ _080DF01E: ldrh r3, [r5, 0x18] b _080DF044 .align 2, 0 -_080DF03C: .4byte gUnknown_202297C +_080DF03C: .4byte gBattle_BG2_X _080DF040: strh r2, [r5, 0x1E] ldrh r3, [r5, 0x1A] @@ -1780,7 +1780,7 @@ _080DF044: ldrsh r0, [r5, r6] cmp r1, r0 bgt _080DF07A - ldr r4, _080DF084 @ =gUnknown_2038700 + ldr r4, _080DF084 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r0, r4 @@ -1805,7 +1805,7 @@ _080DF07A: ldr r0, _080DF088 @ =0x04000014 b _080DF08E .align 2, 0 -_080DF084: .4byte gUnknown_2038700 +_080DF084: .4byte gScanlineEffectRegBuffers _080DF088: .4byte 0x04000014 _080DF08C: ldr r0, _080DF0B8 @ =0x04000018 @@ -1822,7 +1822,7 @@ _080DF08E: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams ldr r0, _080DF0C0 @ =sub_80DF0C4 str r0, [r5] add sp, 0xC @@ -1917,7 +1917,7 @@ _080DF148: ldrsh r0, [r4, r2] cmp r1, r0 bge _080DF17C - ldr r5, _080DF1D4 @ =gUnknown_2038700 + ldr r5, _080DF1D4 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -1945,7 +1945,7 @@ _080DF17C: ldrsh r0, [r4, r2] cmp r1, r0 bgt _080DF1B0 - ldr r5, _080DF1D4 @ =gUnknown_2038700 + ldr r5, _080DF1D4 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -1974,7 +1974,7 @@ _080DF1B0: ldrsh r0, [r4, r1] cmp r0, 0 beq _080DF1C6 - ldr r1, _080DF1D8 @ =gUnknown_2039600 + ldr r1, _080DF1D8 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _080DF1C6: @@ -1985,8 +1985,8 @@ _080DF1CC: pop {r0} bx r0 .align 2, 0 -_080DF1D4: .4byte gUnknown_2038700 -_080DF1D8: .4byte gUnknown_2039600 +_080DF1D4: .4byte gScanlineEffectRegBuffers +_080DF1D8: .4byte gScanlineEffect thumb_func_end sub_80DF0C4 thumb_func_start sub_80DF1DC @@ -2002,7 +2002,7 @@ sub_80DF1DC: @ 80DF1DC movs r5, 0 strh r5, [r4, 0x8] strh r5, [r4, 0xA] - ldr r6, _080DF234 @ =gUnknown_2037F1A + ldr r6, _080DF234 @ =gBattleAnimAttacker ldrb r0, [r6] movs r1, 0x2 bl sub_8074480 @@ -2032,7 +2032,7 @@ sub_80DF1DC: @ 80DF1DC bx r0 .align 2, 0 _080DF230: .4byte gTasks -_080DF234: .4byte gUnknown_2037F1A +_080DF234: .4byte gBattleAnimAttacker _080DF238: .4byte 0x0000ffec _080DF23C: .4byte sub_80DF240 thumb_func_end sub_80DF1DC @@ -2391,7 +2391,7 @@ _080DF4C4: strh r1, [r5, 0x26] movs r0, 0x14 strh r0, [r5, 0x2E] - ldr r4, _080DF51C @ =gUnknown_2037F1B + ldr r4, _080DF51C @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -2412,7 +2412,7 @@ _080DF510: bx r0 .align 2, 0 _080DF518: .4byte DestroyAnimSprite -_080DF51C: .4byte gUnknown_2037F1B +_080DF51C: .4byte gBattleAnimTarget _080DF520: .4byte sub_8075590 thumb_func_end sub_80DF468 @@ -2488,7 +2488,7 @@ _080DF5A0: beq _080DF664 b _080DF682 _080DF5AA: - ldr r4, _080DF5DC @ =gUnknown_2037F1A + ldr r4, _080DF5DC @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -2510,7 +2510,7 @@ _080DF5AA: strh r0, [r5, 0x32] b _080DF658 .align 2, 0 -_080DF5DC: .4byte gUnknown_2037F1A +_080DF5DC: .4byte gBattleAnimAttacker _080DF5E0: ldrh r0, [r5, 0x30] adds r0, 0x60 @@ -2602,7 +2602,7 @@ _080DF682: sub_80DF688: @ 80DF688 push {r4,lr} adds r4, r0, 0 - ldr r0, _080DF6A0 @ =gUnknown_2037F1A + ldr r0, _080DF6A0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2611,7 +2611,7 @@ sub_80DF688: @ 80DF688 ldr r0, _080DF6A4 @ =0x0000fff0 b _080DF6AC .align 2, 0 -_080DF6A0: .4byte gUnknown_2037F1A +_080DF6A0: .4byte gBattleAnimAttacker _080DF6A4: .4byte 0x0000fff0 _080DF6A8: movs r0, 0x80 @@ -2636,7 +2636,7 @@ sub_80DF6C0: @ 80DF6C0 ldrh r0, [r4, 0x2E] adds r0, 0x48 strh r0, [r4, 0x2E] - ldr r0, _080DF6E0 @ =gUnknown_2037F1A + ldr r0, _080DF6E0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2647,7 +2647,7 @@ sub_80DF6C0: @ 80DF6C0 asrs r0, 20 b _080DF6EC .align 2, 0 -_080DF6E0: .4byte gUnknown_2037F1A +_080DF6E0: .4byte gBattleAnimAttacker _080DF6E4: ldrh r0, [r4, 0x2E] lsls r0, 16 @@ -2947,7 +2947,7 @@ _080DF90A: movs r0, 0x90 lsls r0, 4 strh r0, [r4, 0x30] - ldr r0, _080DF930 @ =gUnknown_2037F1A + ldr r0, _080DF930 @ =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0x3 bl sub_8074480 @@ -2959,7 +2959,7 @@ _080DF90A: strh r0, [r4, 0x2E] b _080DF95C .align 2, 0 -_080DF930: .4byte gUnknown_2037F1A +_080DF930: .4byte gBattleAnimAttacker _080DF934: ldrh r2, [r4, 0x30] lsls r1, r2, 16 @@ -3067,7 +3067,7 @@ _080DFA00: movs r0, 0x4C movs r1, 0 bl SetGpuReg - ldr r0, _080DFA24 @ =gUnknown_2037F1A + ldr r0, _080DFA24 @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_80768B0 lsls r0, 24 @@ -3080,7 +3080,7 @@ _080DFA00: bl SetAnimBgAttribute b _080DFA32 .align 2, 0 -_080DFA24: .4byte gUnknown_2037F1A +_080DFA24: .4byte gBattleAnimAttacker _080DFA28: movs r0, 0x2 movs r1, 0x2 @@ -3092,13 +3092,13 @@ _080DFA32: adds r1, r5 lsls r1, 3 adds r1, r0 - ldr r0, _080DFA48 @ =gUnknown_2037F02 + ldr r0, _080DFA48 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r1, 0x1C] b _080DFB00 .align 2, 0 _080DFA44: .4byte gTasks -_080DFA48: .4byte gUnknown_2037F02 +_080DFA48: .4byte gBattleAnimArgs _080DFA4C: lsls r0, r5, 2 adds r0, r5 @@ -3131,9 +3131,9 @@ _080DFA64: _080DFA84: b _080DFB50 _080DFA86: - ldr r6, _080DFAB4 @ =gUnknown_2037F1A + ldr r6, _080DFAB4 @ =gBattleAnimAttacker ldrb r0, [r6] - ldr r1, _080DFAB8 @ =gUnknown_2037F1B + ldr r1, _080DFAB8 @ =gBattleAnimTarget ldrb r1, [r1] lsls r4, r5, 2 adds r2, r4, r5 @@ -3151,8 +3151,8 @@ _080DFA86: movs r1, 0 b _080DFAC6 .align 2, 0 -_080DFAB4: .4byte gUnknown_2037F1A -_080DFAB8: .4byte gUnknown_2037F1B +_080DFAB4: .4byte gBattleAnimAttacker +_080DFAB8: .4byte gBattleAnimTarget _080DFABC: ldrb r0, [r6] bl GetBattlerPosition @@ -3165,7 +3165,7 @@ _080DFAC6: adds r2, 0x4 adds r2, r0 ldr r1, _080DFB0C @ =gBattleMonForms - ldr r0, _080DFB10 @ =gUnknown_2037F1A + ldr r0, _080DFB10 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -3194,7 +3194,7 @@ _080DFB00: .align 2, 0 _080DFB08: .4byte gMonSpritesGfxPtr _080DFB0C: .4byte gBattleMonForms -_080DFB10: .4byte gUnknown_2037F1A +_080DFB10: .4byte gBattleAnimAttacker _080DFB14: .4byte 0x04000200 _080DFB18: .4byte gTasks _080DFB1C: @@ -3232,7 +3232,7 @@ _080DFB58: movs r0, 0x4C movs r1, 0 bl SetGpuReg - ldr r0, _080DFB7C @ =gUnknown_2037F1A + ldr r0, _080DFB7C @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_80768B0 lsls r0, 24 @@ -3245,7 +3245,7 @@ _080DFB58: bl SetAnimBgAttribute b _080DFB8A .align 2, 0 -_080DFB7C: .4byte gUnknown_2037F1A +_080DFB7C: .4byte gBattleAnimAttacker _080DFB80: movs r0, 0x2 movs r1, 0x2 @@ -3256,7 +3256,7 @@ _080DFB8A: lsls r0, 24 cmp r0, 0 bne _080DFBC8 - ldr r4, _080DFBD8 @ =gUnknown_2037F1A + ldr r4, _080DFBD8 @ =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -3289,7 +3289,7 @@ _080DFBCE: pop {r0} bx r0 .align 2, 0 -_080DFBD8: .4byte gUnknown_2037F1A +_080DFBD8: .4byte gBattleAnimAttacker _080DFBDC: .4byte gTasks _080DFBE0: .4byte gUnknown_2024018 thumb_func_end sub_80DF9BC @@ -3299,10 +3299,10 @@ c3_80DFBE4: @ 80DFBE4 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r4, _080DFC14 @ =gUnknown_2037F02 + ldr r4, _080DFC14 @ =gBattleAnimArgs ldr r3, _080DFC18 @ =gSprites - ldr r2, _080DFC1C @ =gUnknown_2023D44 - ldr r1, _080DFC20 @ =gUnknown_2037F1A + ldr r2, _080DFC1C @ =gBattlerSpriteIds + ldr r1, _080DFC20 @ =gBattleAnimAttacker ldrb r1, [r1] adds r1, r2 ldrb r2, [r1] @@ -3320,10 +3320,10 @@ c3_80DFBE4: @ 80DFBE4 pop {r0} bx r0 .align 2, 0 -_080DFC14: .4byte gUnknown_2037F02 +_080DFC14: .4byte gBattleAnimArgs _080DFC18: .4byte gSprites -_080DFC1C: .4byte gUnknown_2023D44 -_080DFC20: .4byte gUnknown_2037F1A +_080DFC1C: .4byte gBattlerSpriteIds +_080DFC20: .4byte gBattleAnimAttacker thumb_func_end c3_80DFBE4 thumb_func_start sub_80DFC24 @@ -3332,9 +3332,9 @@ sub_80DFC24: @ 80DFC24 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080DFC48 @ =gUnknown_2037F1A + ldr r0, _080DFC48 @ =gBattleAnimAttacker ldrb r0, [r0] - ldr r1, _080DFC4C @ =gUnknown_2037F1B + ldr r1, _080DFC4C @ =gBattleAnimTarget ldrb r1, [r1] movs r2, 0x1 bl sub_8034BF4 @@ -3344,8 +3344,8 @@ sub_80DFC24: @ 80DFC24 pop {r0} bx r0 .align 2, 0 -_080DFC48: .4byte gUnknown_2037F1A -_080DFC4C: .4byte gUnknown_2037F1B +_080DFC48: .4byte gBattleAnimAttacker +_080DFC4C: .4byte gBattleAnimTarget thumb_func_end sub_80DFC24 thumb_func_start sub_80DFC50 @@ -3434,7 +3434,7 @@ _080DFCCE: movs r2, 0 movs r3, 0 bl sub_80730C0 - ldr r1, _080DFD28 @ =gUnknown_2022978 + ldr r1, _080DFD28 @ =gBattle_BG1_X ldr r3, _080DFD2C @ =0x0000ffc8 b _080DFD58 .align 2, 0 @@ -3442,31 +3442,31 @@ _080DFD18: .4byte 0x00003f42 _080DFD1C: .4byte gFile_graphics_battle_anims_masks_morning_sun_tilemap _080DFD20: .4byte gFile_graphics_battle_anims_masks_morning_sun_sheet _080DFD24: .4byte gFile_graphics_battle_anims_masks_morning_sun_palette -_080DFD28: .4byte gUnknown_2022978 +_080DFD28: .4byte gBattle_BG1_X _080DFD2C: .4byte 0x0000ffc8 _080DFD30: - ldr r0, _080DFD48 @ =gUnknown_2037F1A + ldr r0, _080DFD48 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080DFD54 - ldr r1, _080DFD4C @ =gUnknown_2022978 + ldr r1, _080DFD4C @ =gBattle_BG1_X ldr r2, _080DFD50 @ =0x0000ff79 adds r0, r2, 0 b _080DFD5A .align 2, 0 -_080DFD48: .4byte gUnknown_2037F1A -_080DFD4C: .4byte gUnknown_2022978 +_080DFD48: .4byte gBattleAnimAttacker +_080DFD4C: .4byte gBattle_BG1_X _080DFD50: .4byte 0x0000ff79 _080DFD54: - ldr r1, _080DFD80 @ =gUnknown_2022978 + ldr r1, _080DFD80 @ =gBattle_BG1_X ldr r3, _080DFD84 @ =0x0000fff6 _080DFD58: adds r0, r3, 0 _080DFD5A: strh r0, [r1] - ldr r1, _080DFD88 @ =gUnknown_202297A + ldr r1, _080DFD88 @ =gBattle_BG1_Y movs r0, 0 strh r0, [r1] ldr r0, _080DFD8C @ =gTasks @@ -3474,19 +3474,19 @@ _080DFD5A: adds r1, r4 lsls r1, 3 adds r1, r0 - ldr r0, _080DFD80 @ =gUnknown_2022978 + ldr r0, _080DFD80 @ =gBattle_BG1_X ldrh r0, [r0] strh r0, [r1, 0x1C] - ldr r0, _080DFD88 @ =gUnknown_202297A + ldr r0, _080DFD88 @ =gBattle_BG1_Y ldrh r0, [r0] strh r0, [r1, 0x1E] ldrh r0, [r1, 0x8] adds r0, 0x1 b _080DFE66 .align 2, 0 -_080DFD80: .4byte gUnknown_2022978 +_080DFD80: .4byte gBattle_BG1_X _080DFD84: .4byte 0x0000fff6 -_080DFD88: .4byte gUnknown_202297A +_080DFD88: .4byte gBattle_BG1_Y _080DFD8C: .4byte gTasks _080DFD90: lsls r0, r4, 2 @@ -3557,7 +3557,7 @@ _080DFDF8: ldrsh r0, [r4, r2] cmp r0, 0 bne _080DFECA - ldr r2, _080DFE3C @ =gUnknown_2022978 + ldr r2, _080DFE3C @ =gBattle_BG1_X ldr r1, _080DFE40 @ =gUnknown_83FF240 movs r3, 0xC ldrsh r0, [r4, r3] @@ -3578,7 +3578,7 @@ _080DFDF8: strh r0, [r4, 0x8] b _080DFECA .align 2, 0 -_080DFE3C: .4byte gUnknown_2022978 +_080DFE3C: .4byte gBattle_BG1_X _080DFE40: .4byte gUnknown_83FF240 _080DFE44: movs r0, 0x3 @@ -3629,10 +3629,10 @@ _080DFEA0: movs r1, 0x4 movs r2, 0x1 bl SetAnimBgAttribute - ldr r0, _080DFED4 @ =gUnknown_2022978 + ldr r0, _080DFED4 @ =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, _080DFED8 @ =gUnknown_202297A + ldr r0, _080DFED8 @ =gBattle_BG1_Y strh r1, [r0] movs r0, 0x50 movs r1, 0 @@ -3648,8 +3648,8 @@ _080DFECA: pop {r0} bx r0 .align 2, 0 -_080DFED4: .4byte gUnknown_2022978 -_080DFED8: .4byte gUnknown_202297A +_080DFED4: .4byte gBattle_BG1_X +_080DFED8: .4byte gBattle_BG1_Y thumb_func_end sub_80DFC50 thumb_func_start sub_80DFEDC @@ -3675,7 +3675,7 @@ sub_80DFEDC: @ 80DFEDC lsls r0, 16 lsrs r5, r0, 16 _080DFF06: - ldr r4, _080E0000 @ =gUnknown_2037F1A + ldr r4, _080E0000 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 bl sub_8074480 @@ -3690,7 +3690,7 @@ _080DFF06: lsrs r0, 24 adds r0, 0x20 strh r0, [r7, 0x22] - ldr r1, _080E0004 @ =gUnknown_2037F02 + ldr r1, _080E0004 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r7, 0x30] ldrh r0, [r1, 0x2] @@ -3748,7 +3748,7 @@ _080DFF06: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim - ldr r1, _080E0004 @ =gUnknown_2037F02 + ldr r1, _080E0004 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r5, 0x30] ldrh r0, [r1, 0x2] @@ -3794,8 +3794,8 @@ _080DFF06: pop {r0} bx r0 .align 2, 0 -_080E0000: .4byte gUnknown_2037F1A -_080E0004: .4byte gUnknown_2037F02 +_080E0000: .4byte gBattleAnimAttacker +_080E0004: .4byte gBattleAnimArgs _080E0008: .4byte gUnknown_83FF26C _080E000C: .4byte gSprites _080E0010: .4byte 0x0000ffff @@ -4076,7 +4076,7 @@ _080E01FC: movs r2, 0 movs r3, 0 bl sub_80730C0 - ldr r1, _080E025C @ =gUnknown_2022978 + ldr r1, _080E025C @ =gBattle_BG1_X ldr r3, _080E0260 @ =0x0000ffc8 adds r0, r3, 0 b _080E02CE @@ -4086,10 +4086,10 @@ _080E024C: .4byte 0x00000d03 _080E0250: .4byte gFile_graphics_battle_anims_masks_morning_sun_tilemap _080E0254: .4byte gFile_graphics_battle_anims_masks_morning_sun_sheet _080E0258: .4byte gFile_graphics_battle_anims_masks_morning_sun_palette -_080E025C: .4byte gUnknown_2022978 +_080E025C: .4byte gBattle_BG1_X _080E0260: .4byte 0x0000ffc8 _080E0264: - ldr r0, _080E02A4 @ =gUnknown_2037F1B + ldr r0, _080E02A4 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerPosition lsls r0, 24 @@ -4099,7 +4099,7 @@ _080E0264: lsrs r0, 24 cmp r0, 0x1 bne _080E02B8 - ldr r1, _080E02A8 @ =gUnknown_2022978 + ldr r1, _080E02A8 @ =gBattle_BG1_X cmp r4, 0x1 bne _080E0288 ldr r2, _080E02AC @ =0x0000ff65 @@ -4119,33 +4119,33 @@ _080E0292: _080E029A: cmp r4, 0x2 bne _080E02D0 - ldr r1, _080E02A8 @ =gUnknown_2022978 + ldr r1, _080E02A8 @ =gBattle_BG1_X ldr r2, _080E02B4 @ =0x0000ffec b _080E02CC .align 2, 0 -_080E02A4: .4byte gUnknown_2037F1B -_080E02A8: .4byte gUnknown_2022978 +_080E02A4: .4byte gBattleAnimTarget +_080E02A8: .4byte gBattle_BG1_X _080E02AC: .4byte 0x0000ff65 _080E02B0: .4byte 0x0000ff8d _080E02B4: .4byte 0x0000ffec _080E02B8: cmp r4, 0x1 bne _080E02C4 - ldr r1, _080E02F0 @ =gUnknown_2022978 + ldr r1, _080E02F0 @ =gBattle_BG1_X ldr r3, _080E02F4 @ =0x0000ff79 adds r0, r3, 0 strh r0, [r1] _080E02C4: cmp r4, 0 bne _080E02D0 - ldr r1, _080E02F0 @ =gUnknown_2022978 + ldr r1, _080E02F0 @ =gBattle_BG1_X ldr r2, _080E02F8 @ =0x0000fff6 _080E02CC: adds r0, r2, 0 _080E02CE: strh r0, [r1] _080E02D0: - ldr r1, _080E02FC @ =gUnknown_202297A + ldr r1, _080E02FC @ =gBattle_BG1_Y movs r0, 0 strh r0, [r1] ldr r0, _080E0300 @ =gTasks @@ -4153,18 +4153,18 @@ _080E02D0: adds r1, r6 lsls r1, 3 adds r1, r0 - ldr r0, _080E02F0 @ =gUnknown_2022978 + ldr r0, _080E02F0 @ =gBattle_BG1_X ldrh r0, [r0] strh r0, [r1, 0x1C] - ldr r0, _080E02FC @ =gUnknown_202297A + ldr r0, _080E02FC @ =gBattle_BG1_Y ldrh r0, [r0] strh r0, [r1, 0x1E] b _080E0384 .align 2, 0 -_080E02F0: .4byte gUnknown_2022978 +_080E02F0: .4byte gBattle_BG1_X _080E02F4: .4byte 0x0000ff79 _080E02F8: .4byte 0x0000fff6 -_080E02FC: .4byte gUnknown_202297A +_080E02FC: .4byte gBattle_BG1_Y _080E0300: .4byte gTasks _080E0304: ldr r1, _080E0338 @ =gTasks @@ -4174,14 +4174,14 @@ _080E0304: adds r5, r0, r1 movs r0, 0 strh r0, [r5, 0xE] - ldr r0, _080E033C @ =gUnknown_2037F1B + ldr r0, _080E033C @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E0348 - ldr r2, _080E0340 @ =gUnknown_2022978 + ldr r2, _080E0340 @ =gBattle_BG1_X ldr r1, _080E0344 @ =gUnknown_83FF284 movs r3, 0xC ldrsh r0, [r5, r3] @@ -4194,11 +4194,11 @@ _080E0304: b _080E035A .align 2, 0 _080E0338: .4byte gTasks -_080E033C: .4byte gUnknown_2037F1B -_080E0340: .4byte gUnknown_2022978 +_080E033C: .4byte gBattleAnimTarget +_080E0340: .4byte gBattle_BG1_X _080E0344: .4byte gUnknown_83FF284 _080E0348: - ldr r2, _080E0378 @ =gUnknown_2022978 + ldr r2, _080E0378 @ =gBattle_BG1_X ldr r1, _080E037C @ =gUnknown_83FF284 movs r3, 0xC ldrsh r0, [r5, r3] @@ -4223,7 +4223,7 @@ _080E035A: strh r0, [r1, 0x8] b _080E0476 .align 2, 0 -_080E0378: .4byte gUnknown_2022978 +_080E0378: .4byte gBattle_BG1_X _080E037C: .4byte gUnknown_83FF284 _080E0380: .4byte gTasks _080E0384: @@ -4332,10 +4332,10 @@ _080E044C: movs r1, 0x4 movs r2, 0x1 bl SetAnimBgAttribute - ldr r0, _080E0480 @ =gUnknown_2022978 + ldr r0, _080E0480 @ =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, _080E0484 @ =gUnknown_202297A + ldr r0, _080E0484 @ =gBattle_BG1_Y strh r1, [r0] movs r0, 0x50 movs r1, 0 @@ -4351,8 +4351,8 @@ _080E0476: pop {r0} bx r0 .align 2, 0 -_080E0480: .4byte gUnknown_2022978 -_080E0484: .4byte gUnknown_202297A +_080E0480: .4byte gBattle_BG1_X +_080E0484: .4byte gBattle_BG1_Y thumb_func_end sub_80E017C thumb_func_start sub_80E0488 @@ -4426,7 +4426,7 @@ _080E04FE: ldrh r0, [r4, 0x32] adds r0, 0x80 strh r0, [r4, 0x32] - ldr r0, _080E052C @ =gUnknown_2037F1A + ldr r0, _080E052C @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4438,7 +4438,7 @@ _080E04FE: negs r0, r0 b _080E0536 .align 2, 0 -_080E052C: .4byte gUnknown_2037F1A +_080E052C: .4byte gBattleAnimAttacker _080E0530: ldrh r0, [r4, 0x30] lsls r0, 16 @@ -4473,7 +4473,7 @@ sub_80E0558: @ 80E0558 lsls r0, 3 ldr r1, _080E057C @ =gTasks adds r4, r0, r1 - ldr r5, _080E0580 @ =gUnknown_2037F02 + ldr r5, _080E0580 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0 @@ -4483,7 +4483,7 @@ sub_80E0558: @ 80E0558 b _080E0618 .align 2, 0 _080E057C: .4byte gTasks -_080E0580: .4byte gUnknown_2037F02 +_080E0580: .4byte gBattleAnimArgs _080E0584: movs r1, 0x4 ldrsh r0, [r5, r1] @@ -4531,12 +4531,12 @@ _080E059C: ldrsh r0, [r5, r1] cmp r0, 0 bne _080E05E8 - ldr r0, _080E05E4 @ =gUnknown_2037F1A + ldr r0, _080E05E4 @ =gBattleAnimAttacker b _080E05EA .align 2, 0 -_080E05E4: .4byte gUnknown_2037F1A +_080E05E4: .4byte gBattleAnimAttacker _080E05E8: - ldr r0, _080E0620 @ =gUnknown_2037F1B + ldr r0, _080E0620 @ =gBattleAnimTarget _080E05EA: ldrb r0, [r0] bl GetBattlerSide @@ -4565,7 +4565,7 @@ _080E0618: pop {r0} bx r0 .align 2, 0 -_080E0620: .4byte gUnknown_2037F1B +_080E0620: .4byte gBattleAnimTarget _080E0624: .4byte sub_80E0628 thumb_func_end sub_80E0558 @@ -4754,7 +4754,7 @@ _080E0788: sub_80E0790: @ 80E0790 push {r4,lr} adds r4, r0, 0 - ldr r0, _080E07AC @ =gUnknown_2037F1A + ldr r0, _080E07AC @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4762,16 +4762,16 @@ sub_80E0790: @ 80E0790 cmp r0, 0 bne _080E07B4 strh r0, [r4, 0x20] - ldr r1, _080E07B0 @ =gUnknown_2037F02 + ldr r1, _080E07B0 @ =gBattleAnimArgs ldrh r0, [r1] b _080E07BE .align 2, 0 -_080E07AC: .4byte gUnknown_2037F1A -_080E07B0: .4byte gUnknown_2037F02 +_080E07AC: .4byte gBattleAnimAttacker +_080E07B0: .4byte gBattleAnimArgs _080E07B4: movs r0, 0xF0 strh r0, [r4, 0x20] - ldr r1, _080E07D8 @ =gUnknown_2037F02 + ldr r1, _080E07D8 @ =gBattleAnimArgs ldrh r0, [r1] subs r0, 0x1E _080E07BE: @@ -4787,7 +4787,7 @@ _080E07BE: pop {r0} bx r0 .align 2, 0 -_080E07D8: .4byte gUnknown_2037F02 +_080E07D8: .4byte gBattleAnimArgs _080E07DC: .4byte sub_80E07E0 thumb_func_end sub_80E0790 @@ -4798,7 +4798,7 @@ sub_80E07E0: @ 80E07E0 ldrh r0, [r4, 0x2E] adds r0, 0x3 strh r0, [r4, 0x2E] - ldr r0, _080E0820 @ =gUnknown_2037F1A + ldr r0, _080E0820 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4824,7 +4824,7 @@ _080E0812: bl Sin b _080E0848 .align 2, 0 -_080E0820: .4byte gUnknown_2037F1A +_080E0820: .4byte gBattleAnimAttacker _080E0824: ldrh r1, [r4, 0x20] subs r1, 0x5 @@ -4872,7 +4872,7 @@ sub_80E0850: @ 80E0850 movs r0, 0x80 lsls r0, 4 strh r0, [r4, 0x24] - ldr r0, _080E089C @ =gUnknown_2037F02 + ldr r0, _080E089C @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId lsls r0, 24 @@ -4887,7 +4887,7 @@ sub_80E0850: @ 80E0850 bx r0 .align 2, 0 _080E0898: .4byte gTasks -_080E089C: .4byte gUnknown_2037F02 +_080E089C: .4byte gBattleAnimArgs _080E08A0: .4byte sub_80E08A4 thumb_func_end sub_80E0850 @@ -5108,12 +5108,12 @@ sub_80E0A3C: @ 80E0A3C ldrsh r0, [r5, r1] cmp r0, 0 bne _080E0A9C - ldr r6, _080E0A94 @ =gUnknown_2037F02 + ldr r6, _080E0A94 @ =gBattleAnimArgs movs r2, 0x4 ldrsh r0, [r6, r2] cmp r0, 0 bne _080E0A70 - ldr r4, _080E0A98 @ =gUnknown_2037F1A + ldr r4, _080E0A98 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -5146,8 +5146,8 @@ _080E0A70: strh r0, [r5, 0x2E] b _080E0AFA .align 2, 0 -_080E0A94: .4byte gUnknown_2037F02 -_080E0A98: .4byte gUnknown_2037F1A +_080E0A94: .4byte gBattleAnimArgs +_080E0A98: .4byte gBattleAnimAttacker _080E0A9C: ldrh r1, [r5, 0x30] lsls r0, r1, 16 @@ -5218,20 +5218,20 @@ sub_80E0B00: @ 80E0B00 ldrsh r0, [r2, r1] cmp r0, 0 bne _080E0C0C - ldr r0, _080E0B34 @ =gUnknown_2037F02 + ldr r0, _080E0B34 @ =gBattleAnimArgs movs r3, 0 ldrsh r1, [r0, r3] mov r8, r0 cmp r1, 0 bne _080E0B3C - ldr r0, _080E0B38 @ =gUnknown_2037F1A + ldr r0, _080E0B38 @ =gBattleAnimAttacker b _080E0B3E .align 2, 0 _080E0B30: .4byte gTasks -_080E0B34: .4byte gUnknown_2037F02 -_080E0B38: .4byte gUnknown_2037F1A +_080E0B34: .4byte gBattleAnimArgs +_080E0B38: .4byte gBattleAnimAttacker _080E0B3C: - ldr r0, _080E0B78 @ =gUnknown_2037F1B + ldr r0, _080E0B78 @ =gBattleAnimTarget _080E0B3E: ldrb r0, [r0] strh r0, [r2, 0x1E] @@ -5261,7 +5261,7 @@ _080E0B3E: lsls r2, r5, 4 b _080E0BE8 .align 2, 0 -_080E0B78: .4byte gUnknown_2037F1B +_080E0B78: .4byte gBattleAnimTarget _080E0B7C: .4byte gTasks _080E0B80: cmp r0, 0x2 @@ -5443,7 +5443,7 @@ _080E0CDA: subs r0, r1 _080E0CE2: strh r0, [r4, 0x30] - ldr r0, _080E0CF4 @ =gUnknown_2037F02 + ldr r0, _080E0CF4 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x32] lsls r0, 16 @@ -5452,7 +5452,7 @@ _080E0CE2: ldr r0, _080E0CF8 @ =0x0000fff8 b _080E0CFE .align 2, 0 -_080E0CF4: .4byte gUnknown_2037F02 +_080E0CF4: .4byte gBattleAnimArgs _080E0CF8: .4byte 0x0000fff8 _080E0CFC: movs r0, 0xF8 @@ -5546,7 +5546,7 @@ sub_80E0D74: @ 80E0D74 ldrh r1, [r4] movs r0, 0x44 bl SetGpuReg - ldr r0, _080E0DE4 @ =gUnknown_2037F02 + ldr r0, _080E0DE4 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] adds r0, r5, 0 @@ -5574,7 +5574,7 @@ sub_80E0D74: @ 80E0D74 _080E0DD8: .4byte 0x00001f3f _080E0DDC: .4byte gUnknown_2022984 _080E0DE0: .4byte gUnknown_2022986 -_080E0DE4: .4byte gUnknown_2037F02 +_080E0DE4: .4byte gBattleAnimArgs _080E0DE8: .4byte sub_80E0DEC thumb_func_end sub_80E0D74 @@ -5672,7 +5672,7 @@ _080E0E90: .4byte 0x00003f3f sub_80E0E94: @ 80E0E94 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080E0ED0 @ =gUnknown_2037F1A + ldr r5, _080E0ED0 @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_8074480 @@ -5685,7 +5685,7 @@ sub_80E0E94: @ 80E0E94 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] - ldr r1, _080E0ED4 @ =gUnknown_2037F02 + ldr r1, _080E0ED4 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] @@ -5698,8 +5698,8 @@ sub_80E0E94: @ 80E0E94 pop {r0} bx r0 .align 2, 0 -_080E0ED0: .4byte gUnknown_2037F1A -_080E0ED4: .4byte gUnknown_2037F02 +_080E0ED0: .4byte gBattleAnimAttacker +_080E0ED4: .4byte gBattleAnimArgs _080E0ED8: .4byte sub_80E0EDC thumb_func_end sub_80E0E94 @@ -5733,15 +5733,15 @@ sub_80E0EDC: @ 80E0EDC cmp r0, 0xC3 ble _080E0F28 _080E0F16: - ldr r0, _080E0F24 @ =gUnknown_2037F1A + ldr r0, _080E0F24 @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_807685C subs r0, 0x1 b _080E0F32 .align 2, 0 -_080E0F24: .4byte gUnknown_2037F1A +_080E0F24: .4byte gBattleAnimAttacker _080E0F28: - ldr r0, _080E0F74 @ =gUnknown_2037F1A + ldr r0, _080E0F74 @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_807685C adds r0, 0x1 @@ -5779,7 +5779,7 @@ _080E0F32: strh r0, [r4, 0x38] b _080E0FA8 .align 2, 0 -_080E0F74: .4byte gUnknown_2037F1A +_080E0F74: .4byte gBattleAnimAttacker _080E0F78: cmp r2, 0x1 bne _080E0FA8 @@ -5826,7 +5826,7 @@ sub_80E0FB8: @ 80E0FB8 str r0, [sp, 0x18] movs r0, 0 bl GetAnimBankSpriteId - ldr r0, _080E1040 @ =gUnknown_2037F1A + ldr r0, _080E1040 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -5835,7 +5835,7 @@ sub_80E0FB8: @ 80E0FB8 movs r0, 0 str r0, [sp, 0x1C] ldr r6, _080E1044 @ =gBattlerPartyIndexes - ldr r4, _080E1048 @ =gUnknown_2037F1B + ldr r4, _080E1048 @ =gBattleAnimTarget ldrb r0, [r4] lsls r0, 1 adds r0, r6 @@ -5878,9 +5878,9 @@ sub_80E0FB8: @ 80E0FB8 adds r0, r7 b _080E1062 .align 2, 0 -_080E1040: .4byte gUnknown_2037F1A +_080E1040: .4byte gBattleAnimAttacker _080E1044: .4byte gBattlerPartyIndexes -_080E1048: .4byte gUnknown_2037F1B +_080E1048: .4byte gBattleAnimTarget _080E104C: .4byte gPlayerParty _080E1050: .4byte gUnknown_2024018 _080E1054: @@ -5909,7 +5909,7 @@ _080E107C: movs r2, 0x1 str r2, [sp, 0x1C] ldr r6, _080E10E0 @ =gBattlerPartyIndexes - ldr r4, _080E10E4 @ =gUnknown_2037F1B + ldr r4, _080E10E4 @ =gBattleAnimTarget ldrb r0, [r4] lsls r0, 1 adds r0, r6 @@ -5954,7 +5954,7 @@ _080E107C: b _080E1100 .align 2, 0 _080E10E0: .4byte gBattlerPartyIndexes -_080E10E4: .4byte gUnknown_2037F1B +_080E10E4: .4byte gBattleAnimTarget _080E10E8: .4byte gEnemyParty _080E10EC: .4byte gUnknown_2024018 _080E10F0: .4byte gPlayerParty @@ -5977,12 +5977,12 @@ _080E110E: ldr r3, _080E11FC @ =0x0000ffec mov r8, r3 _080E1112: - ldr r0, _080E1200 @ =gUnknown_2037F1A + ldr r0, _080E1200 @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_8076884 lsls r0, 24 lsrs r7, r0, 24 - ldr r5, _080E1200 @ =gUnknown_2037F1A + ldr r5, _080E1200 @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 bl sub_8074480 @@ -6007,7 +6007,7 @@ _080E1112: str r3, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] - ldr r0, _080E1204 @ =gUnknown_2037F1B + ldr r0, _080E1204 @ =gBattleAnimTarget ldrb r0, [r0] str r0, [sp, 0x10] movs r0, 0x1 @@ -6089,8 +6089,8 @@ _080E1112: bx r0 .align 2, 0 _080E11FC: .4byte 0x0000ffec -_080E1200: .4byte gUnknown_2037F1A -_080E1204: .4byte gUnknown_2037F1B +_080E1200: .4byte gBattleAnimAttacker +_080E1204: .4byte gBattleAnimTarget _080E1208: .4byte gSprites _080E120C: .4byte 0x00007fff _080E1210: .4byte gTasks @@ -6222,19 +6222,19 @@ sub_80E12F8: @ 80E12F8 lsls r1, 3 ldr r0, _080E1318 @ =gTasks adds r4, r1, r0 - ldr r0, _080E131C @ =gUnknown_2037F02 + ldr r0, _080E131C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E1324 - ldr r0, _080E1320 @ =gUnknown_2037F1A + ldr r0, _080E1320 @ =gBattleAnimAttacker b _080E1326 .align 2, 0 _080E1318: .4byte gTasks -_080E131C: .4byte gUnknown_2037F02 -_080E1320: .4byte gUnknown_2037F1A +_080E131C: .4byte gBattleAnimArgs +_080E1320: .4byte gBattleAnimAttacker _080E1324: - ldr r0, _080E13A4 @ =gUnknown_2037F1B + ldr r0, _080E13A4 @ =gBattleAnimTarget _080E1326: ldrb r5, [r0] movs r6, 0 @@ -6274,7 +6274,7 @@ _080E136C: ldrh r0, [r4, 0x22] adds r0, 0x42 strh r0, [r4, 0x24] - ldr r0, _080E13A8 @ =gUnknown_2037F02 + ldr r0, _080E13A8 @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId lsls r0, 24 @@ -6291,31 +6291,31 @@ _080E136C: ldr r1, _080E13B0 @ =0x00003f42 movs r0, 0x50 bl SetGpuReg - ldr r0, _080E13B4 @ =gUnknown_2022978 + ldr r0, _080E13B4 @ =gBattle_BG1_X ldrh r5, [r0] - ldr r0, _080E13B8 @ =gUnknown_202297A + ldr r0, _080E13B8 @ =gBattle_BG1_Y b _080E13CE .align 2, 0 -_080E13A4: .4byte gUnknown_2037F1B -_080E13A8: .4byte gUnknown_2037F02 +_080E13A4: .4byte gBattleAnimTarget +_080E13A8: .4byte gBattleAnimArgs _080E13AC: .4byte 0x04000014 _080E13B0: .4byte 0x00003f42 -_080E13B4: .4byte gUnknown_2022978 -_080E13B8: .4byte gUnknown_202297A +_080E13B4: .4byte gBattle_BG1_X +_080E13B8: .4byte gBattle_BG1_Y _080E13BC: ldr r0, _080E1434 @ =0x04000018 str r0, [sp] ldr r1, _080E1438 @ =0x00003f44 movs r0, 0x50 bl SetGpuReg - ldr r0, _080E143C @ =gUnknown_202297C + ldr r0, _080E143C @ =gBattle_BG2_X ldrh r5, [r0] - ldr r0, _080E1440 @ =gUnknown_202297E + ldr r0, _080E1440 @ =gBattle_BG2_Y _080E13CE: ldrh r3, [r0] movs r7, 0 movs r2, 0 - ldr r6, _080E1444 @ =gUnknown_2038700 + ldr r6, _080E1444 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r0, r6 @@ -6356,7 +6356,7 @@ _080E13DE: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams ldr r0, _080E144C @ =sub_80E1450 str r0, [r4] add sp, 0xC @@ -6366,9 +6366,9 @@ _080E13DE: .align 2, 0 _080E1434: .4byte 0x04000018 _080E1438: .4byte 0x00003f44 -_080E143C: .4byte gUnknown_202297C -_080E1440: .4byte gUnknown_202297E -_080E1444: .4byte gUnknown_2038700 +_080E143C: .4byte gBattle_BG2_X +_080E1440: .4byte gBattle_BG2_Y +_080E1444: .4byte gScanlineEffectRegBuffers _080E1448: .4byte 0xa6600001 _080E144C: .4byte sub_80E1450 thumb_func_end sub_80E12F8 @@ -6394,20 +6394,20 @@ sub_80E1450: @ 80E1450 lsrs r0, 24 cmp r0, 0x1 bne _080E1490 - ldr r0, _080E1488 @ =gUnknown_2022978 + ldr r0, _080E1488 @ =gBattle_BG1_X ldrh r0, [r0] str r0, [sp, 0x4] - ldr r0, _080E148C @ =gUnknown_202297A + ldr r0, _080E148C @ =gBattle_BG1_Y b _080E1498 .align 2, 0 _080E1484: .4byte gTasks -_080E1488: .4byte gUnknown_2022978 -_080E148C: .4byte gUnknown_202297A +_080E1488: .4byte gBattle_BG1_X +_080E148C: .4byte gBattle_BG1_Y _080E1490: - ldr r0, _080E14B0 @ =gUnknown_202297C + ldr r0, _080E14B0 @ =gBattle_BG2_X ldrh r0, [r0] str r0, [sp, 0x4] - ldr r0, _080E14B4 @ =gUnknown_202297E + ldr r0, _080E14B4 @ =gBattle_BG2_Y _080E1498: ldrh r0, [r0] str r0, [sp, 0x8] @@ -6423,8 +6423,8 @@ _080E14A6: beq _080E14C6 b _080E16F4 .align 2, 0 -_080E14B0: .4byte gUnknown_202297C -_080E14B4: .4byte gUnknown_202297E +_080E14B0: .4byte gBattle_BG2_X +_080E14B4: .4byte gBattle_BG2_Y _080E14B8: cmp r0, 0x2 bne _080E14BE @@ -6480,7 +6480,7 @@ _080E14C6: ldrsh r0, [r6, r3] cmp r1, r0 ble _080E15E6 - ldr r0, _080E163C @ =gUnknown_2039600 + ldr r0, _080E163C @ =gScanlineEffect mov r10, r0 ldr r1, [sp, 0x4] lsls r0, r1, 16 @@ -6501,7 +6501,7 @@ _080E1536: subs r0, r1 lsls r0, 7 adds r2, r0 - ldr r0, _080E1640 @ =gUnknown_2038700 + ldr r0, _080E1640 @ =gScanlineEffectRegBuffers adds r2, r0 lsls r4, 16 asrs r4, 16 @@ -6519,7 +6519,7 @@ _080E1536: subs r0, r1 lsls r0, 7 adds r3, r0 - ldr r1, _080E1640 @ =gUnknown_2038700 + ldr r1, _080E1640 @ =gScanlineEffectRegBuffers adds r3, r1 lsls r1, r7, 16 asrs r1, 16 @@ -6529,7 +6529,7 @@ _080E1536: lsls r2, r7, 16 asrs r2, 16 lsls r0, r2, 1 - ldr r7, _080E1644 @ =gUnknown_825E074 + ldr r7, _080E1644 @ =gSineTable adds r0, r7 ldrh r0, [r0] lsls r0, 16 @@ -6583,7 +6583,7 @@ _080E15E6: lsls r1, r2, 17 cmp r1, 0 blt _080E1612 - ldr r4, _080E1640 @ =gUnknown_2038700 + ldr r4, _080E1640 @ =gScanlineEffectRegBuffers ldr r7, [sp, 0x4] lsls r0, r7, 16 asrs r0, 16 @@ -6625,9 +6625,9 @@ _080E1612: strh r0, [r6, 0xE] b _080E1652 .align 2, 0 -_080E163C: .4byte gUnknown_2039600 -_080E1640: .4byte gUnknown_2038700 -_080E1644: .4byte gUnknown_825E074 +_080E163C: .4byte gScanlineEffect +_080E1640: .4byte gScanlineEffectRegBuffers +_080E1644: .4byte gSineTable _080E1648: .4byte 0xffff0000 _080E164C: ldrh r0, [r6, 0x10] @@ -6667,14 +6667,14 @@ _080E1684: asrs r0, 16 cmp r0, 0xC ble _080E16F4 - ldr r1, _080E16A0 @ =gUnknown_2039600 + ldr r1, _080E16A0 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0 strh r0, [r6, 0xC] b _080E16E6 .align 2, 0 -_080E16A0: .4byte gUnknown_2039600 +_080E16A0: .4byte gScanlineEffect _080E16A4: ldrh r0, [r6, 0xC] adds r0, 0x1 @@ -6741,7 +6741,7 @@ sub_80E1704: @ 80E1704 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] - ldr r0, _080E1740 @ =gUnknown_2037F02 + ldr r0, _080E1740 @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId adds r1, r0, 0 @@ -6758,7 +6758,7 @@ sub_80E1704: @ 80E1704 bx r0 .align 2, 0 _080E173C: .4byte gTasks -_080E1740: .4byte gUnknown_2037F02 +_080E1740: .4byte gBattleAnimArgs _080E1744: .4byte gUnknown_83FF3D0 _080E1748: .4byte sub_80E174C thumb_func_end sub_80E1704 @@ -6921,7 +6921,7 @@ sub_80E186C: @ 80E186C ldrh r6, [r4, 0x20] ldrh r5, [r4, 0x22] bl sub_8074FCC - ldr r0, _080E18B4 @ =gUnknown_2037F02 + ldr r0, _080E18B4 @ =gBattleAnimArgs ldrb r1, [r0] adds r0, r4, 0 bl StartSpriteAffineAnim @@ -6948,7 +6948,7 @@ sub_80E186C: @ 80E186C pop {r0} bx r0 .align 2, 0 -_080E18B4: .4byte gUnknown_2037F02 +_080E18B4: .4byte gBattleAnimArgs _080E18B8: .4byte sub_80E18BC thumb_func_end sub_80E186C @@ -7012,13 +7012,13 @@ _080E1922: sub_80E1928: @ 80E1928 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080E1980 @ =gUnknown_2037F02 + ldr r6, _080E1980 @ =gBattleAnimArgs ldrh r0, [r6, 0x6] strh r0, [r5, 0x2E] ldrb r1, [r6] adds r0, r5, 0 bl StartSpriteAffineAnim - ldr r0, _080E1984 @ =gUnknown_2037F1B + ldr r0, _080E1984 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -7028,7 +7028,7 @@ sub_80E1928: @ 80E1928 negs r0, r0 strh r0, [r6, 0x2] _080E194E: - ldr r4, _080E1988 @ =gUnknown_2037F1A + ldr r4, _080E1988 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -7051,9 +7051,9 @@ _080E194E: pop {r0} bx r0 .align 2, 0 -_080E1980: .4byte gUnknown_2037F02 -_080E1984: .4byte gUnknown_2037F1B -_080E1988: .4byte gUnknown_2037F1A +_080E1980: .4byte gBattleAnimArgs +_080E1984: .4byte gBattleAnimTarget +_080E1988: .4byte gBattleAnimAttacker _080E198C: .4byte sub_80B1D3C thumb_func_end sub_80E1928 @@ -7441,13 +7441,13 @@ sub_80E1C48: @ 80E1C48 lsls r0, 3 mov r1, r8 adds r4, r0, r1 - ldr r1, _080E1CAC @ =gUnknown_2023D44 - ldr r2, _080E1CB0 @ =gUnknown_2037F1A + ldr r1, _080E1CAC @ =gBattlerSpriteIds + ldr r2, _080E1CB0 @ =gBattleAnimAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x26] - ldr r5, _080E1CB4 @ =gUnknown_2037F02 + ldr r5, _080E1CB4 @ =gBattleAnimArgs ldrh r0, [r5] strh r0, [r4, 0x24] ldrh r0, [r5] @@ -7478,9 +7478,9 @@ _080E1C8C: b _080E1D2C .align 2, 0 _080E1CA8: .4byte gTasks -_080E1CAC: .4byte gUnknown_2023D44 -_080E1CB0: .4byte gUnknown_2037F1A -_080E1CB4: .4byte gUnknown_2037F02 +_080E1CAC: .4byte gBattlerSpriteIds +_080E1CB0: .4byte gBattleAnimAttacker +_080E1CB4: .4byte gBattleAnimArgs _080E1CB8: .4byte 0xffff8000 _080E1CBC: movs r7, 0x2 @@ -7503,7 +7503,7 @@ _080E1CD8: orrs r0, r1 _080E1CE0: strh r0, [r4, 0xC] - ldr r0, _080E1D0C @ =gUnknown_2037F02 + ldr r0, _080E1D0C @ =gBattleAnimArgs movs r3, 0x4 ldrsh r1, [r0, r3] movs r2, 0x80 @@ -7523,7 +7523,7 @@ _080E1CE0: b _080E1D2A .align 2, 0 _080E1D08: .4byte 0xffff8000 -_080E1D0C: .4byte gUnknown_2037F02 +_080E1D0C: .4byte gBattleAnimArgs _080E1D10: .4byte gTasks _080E1D14: .4byte 0x00007fff _080E1D18: @@ -7572,7 +7572,7 @@ sub_80E1D5C: @ 80E1D5C lsls r0, 3 ldr r1, _080E1D94 @ =gTasks adds r5, r0, r1 - ldr r4, _080E1D98 @ =gUnknown_2037F02 + ldr r4, _080E1D98 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 @@ -7590,14 +7590,14 @@ _080E1D7C: ldrsh r0, [r4, r1] cmp r0, 0 bne _080E1DA0 - ldr r0, _080E1D9C @ =gUnknown_2037F1A + ldr r0, _080E1D9C @ =gBattleAnimAttacker b _080E1DA2 .align 2, 0 _080E1D94: .4byte gTasks -_080E1D98: .4byte gUnknown_2037F02 -_080E1D9C: .4byte gUnknown_2037F1A +_080E1D98: .4byte gBattleAnimArgs +_080E1D9C: .4byte gBattleAnimAttacker _080E1DA0: - ldr r0, _080E1DF0 @ =gUnknown_2037F1B + ldr r0, _080E1DF0 @ =gBattleAnimTarget _080E1DA2: ldrb r4, [r0] adds r0, r4, 0 @@ -7617,7 +7617,7 @@ _080E1DA2: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] - ldr r0, _080E1DF4 @ =gUnknown_2037F02 + ldr r0, _080E1DF4 @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId adds r1, r0, 0 @@ -7633,8 +7633,8 @@ _080E1DA2: pop {r0} bx r0 .align 2, 0 -_080E1DF0: .4byte gUnknown_2037F1B -_080E1DF4: .4byte gUnknown_2037F02 +_080E1DF0: .4byte gBattleAnimTarget +_080E1DF4: .4byte gBattleAnimArgs _080E1DF8: .4byte gUnknown_83FF52C _080E1DFC: .4byte sub_80E1E00 thumb_func_end sub_80E1D5C @@ -7888,7 +7888,7 @@ sub_80E1FC4: @ 80E1FC4 adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] - ldr r1, _080E2010 @ =gUnknown_2037F02 + ldr r1, _080E2010 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrb r0, [r1] @@ -7915,7 +7915,7 @@ sub_80E1FC4: @ 80E1FC4 bx r0 .align 2, 0 _080E200C: .4byte gTasks -_080E2010: .4byte gUnknown_2037F02 +_080E2010: .4byte gBattleAnimArgs _080E2014: .4byte gSprites _080E2018: .4byte sub_80E201C thumb_func_end sub_80E1FC4 @@ -7983,9 +7983,9 @@ sub_80E2084: @ 80E2084 lsrs r0, 24 movs r2, 0xD0 lsls r2, 1 - ldr r1, _080E20C0 @ =gUnknown_2037F1A + ldr r1, _080E20C0 @ =gBattleAnimAttacker ldrb r3, [r1] - ldr r1, _080E20C4 @ =gUnknown_2037F02 + ldr r1, _080E20C4 @ =gBattleAnimArgs ldrb r1, [r1] str r1, [sp] movs r1, 0xA @@ -8006,8 +8006,8 @@ sub_80E2084: @ 80E2084 pop {r0} bx r0 .align 2, 0 -_080E20C0: .4byte gUnknown_2037F1A -_080E20C4: .4byte gUnknown_2037F02 +_080E20C0: .4byte gBattleAnimAttacker +_080E20C4: .4byte gBattleAnimArgs _080E20C8: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_sheet _080E20CC: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_tilemap _080E20D0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette @@ -8017,14 +8017,14 @@ _080E20D0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette sub_80E20D4: @ 80E20D4 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080E212C @ =gUnknown_2037F1A + ldr r6, _080E212C @ =gBattleAnimAttacker ldrb r0, [r6] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E20F0 - ldr r1, _080E2130 @ =gUnknown_2037F02 + ldr r1, _080E2130 @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -8033,7 +8033,7 @@ _080E20F0: movs r1, 0 bl sub_8074480 lsls r0, 24 - ldr r4, _080E2130 @ =gUnknown_2037F02 + ldr r4, _080E2130 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -8057,8 +8057,8 @@ _080E20F0: strh r0, [r5, 0x30] b _080E2160 .align 2, 0 -_080E212C: .4byte gUnknown_2037F1A -_080E2130: .4byte gUnknown_2037F02 +_080E212C: .4byte gBattleAnimAttacker +_080E2130: .4byte gBattleAnimArgs _080E2134: .4byte 0x0000fd80 _080E2138: cmp r0, 0x1 @@ -8082,7 +8082,7 @@ _080E2152: lsls r0, 2 strh r0, [r5, 0x2E] _080E2160: - ldr r0, _080E218C @ =gUnknown_2037F1A + ldr r0, _080E218C @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -8104,7 +8104,7 @@ _080E2180: pop {r0} bx r0 .align 2, 0 -_080E218C: .4byte gUnknown_2037F1A +_080E218C: .4byte gBattleAnimAttacker _080E2190: .4byte sub_80E2194 thumb_func_end sub_80E20D4 @@ -8156,7 +8156,7 @@ sub_80E21CC: @ 80E21CC movs r0, 0x3 strh r0, [r6, 0x14] strh r1, [r6, 0x16] - ldr r5, _080E2220 @ =gUnknown_2037F1A + ldr r5, _080E2220 @ =gBattleAnimAttacker ldrb r0, [r5] bl GetBattlerSide lsls r0, 24 @@ -8182,7 +8182,7 @@ _080E2216: b _080E2248 .align 2, 0 _080E221C: .4byte gTasks -_080E2220: .4byte gUnknown_2037F1A +_080E2220: .4byte gBattleAnimAttacker _080E2224: ldrb r0, [r5] movs r1, 0x2 @@ -8203,7 +8203,7 @@ _080E2244: subs r0, r4, r0 _080E2248: strh r0, [r6, 0x1E] - ldr r5, _080E229C @ =gUnknown_2037F1A + ldr r5, _080E229C @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x3 bl sub_8074480 @@ -8222,7 +8222,7 @@ _080E226C: asrs r0, 2 subs r0, r4, r0 strh r0, [r6, 0x20] - ldr r4, _080E22A0 @ =gUnknown_2037F1B + ldr r4, _080E22A0 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -8241,8 +8241,8 @@ _080E226C: pop {r0} bx r0 .align 2, 0 -_080E229C: .4byte gUnknown_2037F1A -_080E22A0: .4byte gUnknown_2037F1B +_080E229C: .4byte gBattleAnimAttacker +_080E22A0: .4byte gBattleAnimTarget _080E22A4: .4byte sub_80E22A8 thumb_func_end sub_80E21CC @@ -8551,7 +8551,7 @@ _080E24DC: .4byte gTasks sub_80E24E0: @ 80E24E0 push {r4,lr} adds r4, r0, 0 - ldr r1, _080E250C @ =gUnknown_2037F02 + ldr r1, _080E250C @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] @@ -8571,7 +8571,7 @@ sub_80E24E0: @ 80E24E0 pop {r0} bx r0 .align 2, 0 -_080E250C: .4byte gUnknown_2037F02 +_080E250C: .4byte gBattleAnimArgs _080E2510: .4byte DestroyAnimSprite _080E2514: .4byte sub_8075764 thumb_func_end sub_80E24E0 @@ -8591,7 +8591,7 @@ sub_80E2518: @ 80E2518 lsls r0, 3 ldr r1, _080E2638 @ =gTasks adds r7, r0, r1 - ldr r0, _080E263C @ =gUnknown_2037F1A + ldr r0, _080E263C @ =gBattleAnimAttacker mov r10, r0 ldrb r0, [r0] movs r1, 0x2 @@ -8606,7 +8606,7 @@ sub_80E2518: @ 80E2518 lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] - ldr r0, _080E2640 @ =gUnknown_2037F1B + ldr r0, _080E2640 @ =gBattleAnimTarget mov r8, r0 ldrb r0, [r0] movs r1, 0x2 @@ -8716,8 +8716,8 @@ _080E2632: b _080E265A .align 2, 0 _080E2638: .4byte gTasks -_080E263C: .4byte gUnknown_2037F1A -_080E2640: .4byte gUnknown_2037F1B +_080E263C: .4byte gBattleAnimAttacker +_080E2640: .4byte gBattleAnimTarget _080E2644: .4byte gUnknown_83FF62C _080E2648: .4byte gSprites _080E264C: .4byte 0x0000ffe0 @@ -8877,19 +8877,19 @@ _080E276E: sub_80E2774: @ 80E2774 push {r4-r6,lr} adds r4, r0, 0 - ldr r0, _080E2788 @ =gUnknown_2037F02 + ldr r0, _080E2788 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r6, r0, 0 cmp r1, 0 bne _080E2790 - ldr r0, _080E278C @ =gUnknown_2037F1A + ldr r0, _080E278C @ =gBattleAnimAttacker b _080E2792 .align 2, 0 -_080E2788: .4byte gUnknown_2037F02 -_080E278C: .4byte gUnknown_2037F1A +_080E2788: .4byte gBattleAnimArgs +_080E278C: .4byte gBattleAnimAttacker _080E2790: - ldr r0, _080E27F8 @ =gUnknown_2037F1B + ldr r0, _080E27F8 @ =gBattleAnimTarget _080E2792: ldrb r5, [r0] ldrh r2, [r4, 0x4] @@ -8942,7 +8942,7 @@ _080E27C0: subs r0, 0x8 b _080E280E .align 2, 0 -_080E27F8: .4byte gUnknown_2037F1B +_080E27F8: .4byte gBattleAnimTarget _080E27FC: .4byte 0x000003ff _080E2800: .4byte 0xfffffc00 _080E2804: @@ -9072,7 +9072,7 @@ sub_80E28DC: @ 80E28DC push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 - ldr r2, _080E28F4 @ =gUnknown_2037F02 + ldr r2, _080E28F4 @ =gBattleAnimArgs movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0 @@ -9081,7 +9081,7 @@ sub_80E28DC: @ 80E28DC bl DestroyAnimVisualTask b _080E2920 .align 2, 0 -_080E28F4: .4byte gUnknown_2037F02 +_080E28F4: .4byte gBattleAnimArgs _080E28F8: ldr r0, _080E2928 @ =gTasks lsls r4, r1, 2 @@ -9210,18 +9210,18 @@ _080E29EA: sub_80E29F0: @ 80E29F0 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080E2A04 @ =gUnknown_2037F02 + ldr r0, _080E2A04 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E2A0C - ldr r4, _080E2A08 @ =gUnknown_2037F1A + ldr r4, _080E2A08 @ =gBattleAnimAttacker b _080E2A0E .align 2, 0 -_080E2A04: .4byte gUnknown_2037F02 -_080E2A08: .4byte gUnknown_2037F1A +_080E2A04: .4byte gBattleAnimArgs +_080E2A08: .4byte gBattleAnimAttacker _080E2A0C: - ldr r4, _080E2A4C @ =gUnknown_2037F1B + ldr r4, _080E2A4C @ =gBattleAnimTarget _080E2A0E: ldrb r0, [r4] movs r1, 0x2 @@ -9242,7 +9242,7 @@ _080E2A0E: _080E2A32: movs r2, 0 strh r2, [r5, 0x2E] - ldr r1, _080E2A50 @ =gUnknown_2037F02 + ldr r1, _080E2A50 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x30] strh r2, [r5, 0x32] @@ -9254,8 +9254,8 @@ _080E2A32: pop {r0} bx r0 .align 2, 0 -_080E2A4C: .4byte gUnknown_2037F1B -_080E2A50: .4byte gUnknown_2037F02 +_080E2A4C: .4byte gBattleAnimTarget +_080E2A50: .4byte gBattleAnimArgs _080E2A54: .4byte sub_80E2A58 thumb_func_end sub_80E29F0 @@ -9311,7 +9311,7 @@ _080E2AAC: sub_80E2AB0: @ 80E2AB0 push {lr} adds r3, r0, 0 - ldr r0, _080E2ADC @ =gUnknown_2037F02 + ldr r0, _080E2ADC @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -9331,7 +9331,7 @@ sub_80E2AB0: @ 80E2AB0 movs r0, 0x1 b _080E2AE6 .align 2, 0 -_080E2ADC: .4byte gUnknown_2037F02 +_080E2ADC: .4byte gBattleAnimArgs _080E2AE0: movs r0, 0x8C strh r0, [r3, 0x20] @@ -9427,7 +9427,7 @@ _080E2B80: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r3, _080E2BBC @ =gUnknown_825E074 + ldr r3, _080E2BBC @ =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 @@ -9448,7 +9448,7 @@ _080E2B80: _080E2BB8: b _080E2CAE .align 2, 0 -_080E2BBC: .4byte gUnknown_825E074 +_080E2BBC: .4byte gSineTable _080E2BC0: ldrh r0, [r4, 0x30] adds r0, 0x1 @@ -9471,7 +9471,7 @@ _080E2BD2: ldrh r0, [r4, 0x22] subs r0, r1 strh r0, [r4, 0x22] - ldr r3, _080E2C0C @ =gUnknown_825E074 + ldr r3, _080E2C0C @ =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 @@ -9490,7 +9490,7 @@ _080E2BD2: bne _080E2CDC b _080E2CB2 .align 2, 0 -_080E2C0C: .4byte gUnknown_825E074 +_080E2C0C: .4byte gSineTable _080E2C10: ldrh r2, [r4, 0x30] adds r2, 0x1 @@ -9502,7 +9502,7 @@ _080E2C10: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r3, _080E2C68 @ =gUnknown_825E074 + ldr r3, _080E2C68 @ =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 @@ -9537,7 +9537,7 @@ _080E2C5C: bne _080E2CDC b _080E2CAE .align 2, 0 -_080E2C68: .4byte gUnknown_825E074 +_080E2C68: .4byte gSineTable _080E2C6C: .4byte 0x000003ff _080E2C70: .4byte 0xfffffc00 _080E2C74: @@ -9622,7 +9622,7 @@ sub_80E2CE4: @ 80E2CE4 lsrs r7, r0, 24 cmp r7, 0x1 bne _080E2D44 - ldr r5, _080E2D38 @ =gUnknown_2037F1A + ldr r5, _080E2D38 @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 bl sub_8074480 @@ -9642,14 +9642,14 @@ sub_80E2CE4: @ 80E2CE4 b _080E2D64 .align 2, 0 _080E2D34: .4byte gTasks -_080E2D38: .4byte gUnknown_2037F1A +_080E2D38: .4byte gBattleAnimAttacker _080E2D3C: ldr r0, _080E2D40 @ =0x0000ffff b _080E2D62 .align 2, 0 _080E2D40: .4byte 0x0000ffff _080E2D44: - ldr r0, _080E2D58 @ =gUnknown_2037F1A + ldr r0, _080E2D58 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -9658,7 +9658,7 @@ _080E2D44: ldr r0, _080E2D5C @ =0x0000ffff b _080E2D62 .align 2, 0 -_080E2D58: .4byte gUnknown_2037F1A +_080E2D58: .4byte gBattleAnimAttacker _080E2D5C: .4byte 0x0000ffff _080E2D60: movs r0, 0x1 @@ -9895,7 +9895,7 @@ _080E2F10: .4byte gSprites sub_80E2F14: @ 80E2F14 push {r4,lr} adds r4, r0, 0 - ldr r0, _080E2F30 @ =gUnknown_2037F02 + ldr r0, _080E2F30 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -9903,13 +9903,13 @@ sub_80E2F14: @ 80E2F14 adds r0, r4, 0 movs r1, 0x1 bl sub_8075160 - ldr r0, _080E2F34 @ =gUnknown_2037F1A + ldr r0, _080E2F34 @ =gBattleAnimAttacker b _080E2F3A .align 2, 0 -_080E2F30: .4byte gUnknown_2037F02 -_080E2F34: .4byte gUnknown_2037F1A +_080E2F30: .4byte gBattleAnimArgs +_080E2F34: .4byte gBattleAnimAttacker _080E2F38: - ldr r0, _080E2F90 @ =gUnknown_2037F1B + ldr r0, _080E2F90 @ =gBattleAnimTarget _080E2F3A: ldrb r0, [r0] strh r0, [r4, 0x3C] @@ -9954,7 +9954,7 @@ _080E2F5E: pop {r0} bx r0 .align 2, 0 -_080E2F90: .4byte gUnknown_2037F1B +_080E2F90: .4byte gBattleAnimTarget _080E2F94: .4byte sub_80E2F98 thumb_func_end sub_80E2F14 @@ -10295,7 +10295,7 @@ _080E3218: .4byte gUnknown_83FF180 sub_80E321C: @ 80E321C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080E3250 @ =gUnknown_2037F1B + ldr r4, _080E3250 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -10307,7 +10307,7 @@ sub_80E321C: @ 80E321C lsls r0, 24 cmp r0, 0 bne _080E3258 - ldr r2, _080E3254 @ =gUnknown_2037F02 + ldr r2, _080E3254 @ =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r0, [r2] subs r0, r1, r0 @@ -10316,10 +10316,10 @@ sub_80E321C: @ 80E321C subs r1, r0 b _080E3266 .align 2, 0 -_080E3250: .4byte gUnknown_2037F1B -_080E3254: .4byte gUnknown_2037F02 +_080E3250: .4byte gBattleAnimTarget +_080E3254: .4byte gBattleAnimArgs _080E3258: - ldr r2, _080E328C @ =gUnknown_2037F02 + ldr r2, _080E328C @ =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r0, [r2] adds r0, r1, r0 @@ -10347,7 +10347,7 @@ _080E3266: pop {r0} bx r0 .align 2, 0 -_080E328C: .4byte gUnknown_2037F02 +_080E328C: .4byte gBattleAnimArgs _080E3290: .4byte sub_80E319C thumb_func_end sub_80E321C @@ -10431,7 +10431,7 @@ _080E3328: .align 2, 0 _080E3330: .4byte gSprites _080E3334: - ldr r0, _080E336C @ =gUnknown_2037F1A + ldr r0, _080E336C @ =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0 bl LoadBattleMonGfxAndAnimate @@ -10461,7 +10461,7 @@ _080E3360: pop {r0} bx r0 .align 2, 0 -_080E336C: .4byte gUnknown_2037F1A +_080E336C: .4byte gBattleAnimAttacker _080E3370: .4byte sub_80E3374 thumb_func_end sub_80E3294 @@ -10647,7 +10647,7 @@ _080E34CC: .4byte gSprites sub_80E34D0: @ 80E34D0 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080E34F4 @ =gUnknown_2037F1B + ldr r4, _080E34F4 @ =gBattleAnimTarget ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -10662,7 +10662,7 @@ sub_80E34D0: @ 80E34D0 ldr r4, _080E34F8 @ =0x0000ff70 b _080E350C .align 2, 0 -_080E34F4: .4byte gUnknown_2037F1B +_080E34F4: .4byte gBattleAnimTarget _080E34F8: .4byte 0x0000ff70 _080E34FC: ldrb r0, [r4] @@ -10673,7 +10673,7 @@ _080E34FC: strb r0, [r1] ldr r4, _080E3528 @ =0x0000ffa0 _080E350C: - ldr r0, _080E352C @ =gUnknown_2037F1B + ldr r0, _080E352C @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x3 bl sub_8074480 @@ -10688,7 +10688,7 @@ _080E350C: bx r0 .align 2, 0 _080E3528: .4byte 0x0000ffa0 -_080E352C: .4byte gUnknown_2037F1B +_080E352C: .4byte gBattleAnimTarget _080E3530: .4byte sub_80E3534 thumb_func_end sub_80E34D0 @@ -10738,7 +10738,7 @@ _080E3588: adds r1, 0x4 movs r5, 0 strh r1, [r4, 0x30] - ldr r2, _080E35C4 @ =gUnknown_825E074 + ldr r2, _080E35C4 @ =gSineTable movs r3, 0x30 ldrsh r0, [r4, r3] lsls r0, 1 @@ -10763,13 +10763,13 @@ _080E3588: strh r5, [r4, 0x26] b _080E361C .align 2, 0 -_080E35C4: .4byte gUnknown_825E074 +_080E35C4: .4byte gSineTable _080E35C8: ldrh r1, [r4, 0x30] adds r1, 0x6 movs r3, 0 strh r1, [r4, 0x30] - ldr r2, _080E35F4 @ =gUnknown_825E074 + ldr r2, _080E35F4 @ =gSineTable movs r5, 0x30 ldrsh r0, [r4, r5] lsls r0, 1 @@ -10787,7 +10787,7 @@ _080E35C8: strh r3, [r4, 0x26] b _080E361C .align 2, 0 -_080E35F4: .4byte gUnknown_825E074 +_080E35F4: .4byte gSineTable _080E35F8: ldrh r0, [r4, 0x30] adds r0, 0x1 @@ -10929,7 +10929,7 @@ _080E36B4: strh r1, [r0, 0x8] ldr r0, _080E3750 @ =gUnknown_2024018 ldr r1, [r0] - ldr r0, _080E3754 @ =gUnknown_2037F1B + ldr r0, _080E3754 @ =gBattleAnimTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -10961,7 +10961,7 @@ _080E3744: .4byte gSprites _080E3748: .4byte 0x0000fff0 _080E374C: .4byte gTasks _080E3750: .4byte gUnknown_2024018 -_080E3754: .4byte gUnknown_2037F1B +_080E3754: .4byte gBattleAnimTarget _080E3758: adds r1, r5, 0 adds r1, 0x3E @@ -11065,7 +11065,7 @@ sub_80E37FC: @ 80E37FC strh r0, [r4, 0x30] ldr r0, _080E3870 @ =gUnknown_2024018 ldr r1, [r0] - ldr r0, _080E3874 @ =gUnknown_2037F1B + ldr r0, _080E3874 @ =gBattleAnimTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -11112,7 +11112,7 @@ _080E3846: b _080E38CE .align 2, 0 _080E3870: .4byte gUnknown_2024018 -_080E3874: .4byte gUnknown_2037F1B +_080E3874: .4byte gBattleAnimTarget _080E3878: ldrh r0, [r4, 0x32] adds r0, 0x1 @@ -11170,7 +11170,7 @@ sub_80E38D8: @ 80E38D8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r3, _080E3924 @ =gUnknown_2037F02 + ldr r3, _080E3924 @ =gBattleAnimArgs movs r2, 0 strh r2, [r3, 0xE] ldr r1, _080E3928 @ =gUnknown_2037EFE @@ -11208,7 +11208,7 @@ _080E3918: pop {r0} bx r0 .align 2, 0 -_080E3924: .4byte gUnknown_2037F02 +_080E3924: .4byte gBattleAnimArgs _080E3928: .4byte gUnknown_2037EFE thumb_func_end sub_80E38D8 @@ -11266,7 +11266,7 @@ _080E3978: ldrh r1, [r6, 0xA] adds r0, r1 strh r0, [r6, 0xA] - ldr r0, _080E39C8 @ =gUnknown_2037F1A + ldr r0, _080E39C8 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11287,7 +11287,7 @@ _080E3978: b _080E39EA .align 2, 0 _080E39C4: .4byte gTasks -_080E39C8: .4byte gUnknown_2037F1A +_080E39C8: .4byte gBattleAnimAttacker _080E39CC: .4byte gSprites _080E39D0: ldr r3, _080E3A24 @ =gSprites @@ -11337,7 +11337,7 @@ _080E3A16: _080E3A24: .4byte gSprites _080E3A28: .4byte gTasks _080E3A2C: - ldr r4, _080E3A90 @ =gUnknown_2037F1A + ldr r4, _080E3A90 @ =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -11384,7 +11384,7 @@ _080E3A2C: lsrs r5, r0, 16 b _080E3AA2 .align 2, 0 -_080E3A90: .4byte gUnknown_2037F1A +_080E3A90: .4byte gBattleAnimAttacker _080E3A94: .4byte gBattlerPartyIndexes _080E3A98: .4byte gPlayerParty _080E3A9C: .4byte gUnknown_2024018 @@ -11476,7 +11476,7 @@ _080E3B32: movs r7, 0x1 ldr r6, _080E3BD4 @ =0x0000ffe0 _080E3B54: - ldr r0, _080E3BD8 @ =gUnknown_2037F1B + ldr r0, _080E3BD8 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x1 bl sub_8074480 @@ -11490,7 +11490,7 @@ _080E3B54: str r2, [sp, 0x8] mov r4, r9 str r4, [sp, 0xC] - ldr r4, _080E3BDC @ =gUnknown_2037F1A + ldr r4, _080E3BDC @ =gBattleAnimAttacker ldrb r0, [r4] str r0, [sp, 0x10] movs r0, 0 @@ -11538,8 +11538,8 @@ _080E3BBE: .align 2, 0 _080E3BD0: .4byte gSprites _080E3BD4: .4byte 0x0000ffe0 -_080E3BD8: .4byte gUnknown_2037F1B -_080E3BDC: .4byte gUnknown_2037F1A +_080E3BD8: .4byte gBattleAnimTarget +_080E3BDC: .4byte gBattleAnimAttacker _080E3BE0: .4byte gUnknown_2024018 _080E3BE4: .4byte 0x00007fff _080E3BE8: .4byte gTasks @@ -11559,7 +11559,7 @@ _080E3BEC: ldrh r2, [r6, 0xA] adds r0, r2 strh r0, [r6, 0xA] - ldr r0, _080E3C3C @ =gUnknown_2037F1A + ldr r0, _080E3C3C @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11582,7 +11582,7 @@ _080E3BEC: b _080E3C5A .align 2, 0 _080E3C38: .4byte gTasks -_080E3C3C: .4byte gUnknown_2037F1A +_080E3C3C: .4byte gBattleAnimAttacker _080E3C40: .4byte gSprites _080E3C44: ldr r2, _080E3CA8 @ =gSprites @@ -11616,7 +11616,7 @@ _080E3C5A: ldrsh r0, [r6, r1] cmp r0, 0 bne _080E3CDA - ldr r0, _080E3CB0 @ =gUnknown_2037F1A + ldr r0, _080E3CB0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11624,7 +11624,7 @@ _080E3C5A: bne _080E3CB8 lsls r4, r5, 16 asrs r4, 16 - ldr r0, _080E3CB4 @ =gUnknown_2037F1B + ldr r0, _080E3CB4 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl sub_8074480 @@ -11636,12 +11636,12 @@ _080E3C5A: .align 2, 0 _080E3CA8: .4byte gSprites _080E3CAC: .4byte gTasks -_080E3CB0: .4byte gUnknown_2037F1A -_080E3CB4: .4byte gUnknown_2037F1B +_080E3CB0: .4byte gBattleAnimAttacker +_080E3CB4: .4byte gBattleAnimTarget _080E3CB8: lsls r4, r5, 16 asrs r4, 16 - ldr r0, _080E3CFC @ =gUnknown_2037F1B + ldr r0, _080E3CFC @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl sub_8074480 @@ -11653,7 +11653,7 @@ _080E3CCE: ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] - ldr r1, _080E3D00 @ =gUnknown_2037F02 + ldr r1, _080E3D00 @ =gBattleAnimArgs ldr r0, _080E3D04 @ =0x0000ffff strh r0, [r1, 0xE] _080E3CDA: @@ -11676,8 +11676,8 @@ _080E3CEC: strh r0, [r1, 0xA] b _080E3D82 .align 2, 0 -_080E3CFC: .4byte gUnknown_2037F1B -_080E3D00: .4byte gUnknown_2037F02 +_080E3CFC: .4byte gBattleAnimTarget +_080E3D00: .4byte gBattleAnimArgs _080E3D04: .4byte 0x0000ffff _080E3D08: .4byte gTasks _080E3D0C: @@ -11700,7 +11700,7 @@ _080E3D0C: ldr r5, _080E3D5C @ =gSprites adds r0, r5 bl sub_8076B20 - ldr r0, _080E3D60 @ =gUnknown_2037F1A + ldr r0, _080E3D60 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11719,7 +11719,7 @@ _080E3D0C: .align 2, 0 _080E3D58: .4byte gTasks _080E3D5C: .4byte gSprites -_080E3D60: .4byte gUnknown_2037F1A +_080E3D60: .4byte gBattleAnimAttacker _080E3D64: lsls r0, r7, 4 adds r0, r7 @@ -11761,7 +11761,7 @@ _080E3D90: ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] - ldr r0, _080E3E08 @ =gUnknown_2037F1A + ldr r0, _080E3E08 @ =gBattleAnimAttacker mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x18] @@ -11801,7 +11801,7 @@ _080E3D90: b _080E3E48 .align 2, 0 _080E3E04: .4byte gTasks -_080E3E08: .4byte gUnknown_2037F1A +_080E3E08: .4byte gBattleAnimAttacker _080E3E0C: .4byte gSprites _080E3E10: ldr r1, _080E3E7C @ =gSprites @@ -11875,7 +11875,7 @@ sub_80E3E84: @ 80E3E84 beq _080E3F36 b _080E3FB8 _080E3E96: - ldr r0, _080E3F14 @ =gUnknown_2037F02 + ldr r0, _080E3F14 @ =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 @@ -11889,7 +11889,7 @@ _080E3E96: asrs r1, 24 movs r0, 0x73 bl PlaySE12WithPanning - ldr r0, _080E3F18 @ =gUnknown_2037F1B + ldr r0, _080E3F18 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x1 bl sub_8074480 @@ -11909,7 +11909,7 @@ _080E3E96: negs r0, r0 ands r0, r1 strb r0, [r2] - ldr r0, _080E3F20 @ =gUnknown_2037F1A + ldr r0, _080E3F20 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11933,10 +11933,10 @@ _080E3E96: strb r0, [r1] b _080E3FB8 .align 2, 0 -_080E3F14: .4byte gUnknown_2037F02 -_080E3F18: .4byte gUnknown_2037F1B +_080E3F14: .4byte gBattleAnimArgs +_080E3F18: .4byte gBattleAnimTarget _080E3F1C: .4byte 0x0000ffe0 -_080E3F20: .4byte gUnknown_2037F1A +_080E3F20: .4byte gBattleAnimAttacker _080E3F24: .4byte gSprites _080E3F28: adds r0, r4, 0 @@ -11979,7 +11979,7 @@ _080E3F6A: ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] - ldr r0, _080E3F94 @ =gUnknown_2037F1A + ldr r0, _080E3F94 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11994,7 +11994,7 @@ _080E3F6A: adds r1, r2, 0 b _080E3FA4 .align 2, 0 -_080E3F94: .4byte gUnknown_2037F1A +_080E3F94: .4byte gBattleAnimAttacker _080E3F98: ldrh r1, [r4, 0x32] lsls r0, r1, 16 @@ -12051,14 +12051,14 @@ _080E3FF0: .4byte _080E40C8 .4byte _080E412E _080E4004: - ldr r0, _080E4048 @ =gUnknown_2037F1A + ldr r0, _080E4048 @ =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0 bl sub_8074480 lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 - ldr r0, _080E404C @ =gUnknown_2037F1B + ldr r0, _080E404C @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl sub_8074480 @@ -12084,12 +12084,12 @@ _080E403A: strh r0, [r1, 0x26] b _080E414C .align 2, 0 -_080E4048: .4byte gUnknown_2037F1A -_080E404C: .4byte gUnknown_2037F1B +_080E4048: .4byte gBattleAnimAttacker +_080E404C: .4byte gBattleAnimTarget _080E4050: .4byte gTasks _080E4054: - ldr r1, _080E4090 @ =gUnknown_2023D44 - ldr r0, _080E4094 @ =gUnknown_2037F1A + ldr r1, _080E4090 @ =gBattlerSpriteIds + ldr r0, _080E4094 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -12119,8 +12119,8 @@ _080E4054: ldrsh r1, [r2, r3] b _080E4122 .align 2, 0 -_080E4090: .4byte gUnknown_2023D44 -_080E4094: .4byte gUnknown_2037F1A +_080E4090: .4byte gBattlerSpriteIds +_080E4094: .4byte gBattleAnimAttacker _080E4098: .4byte gSprites _080E409C: movs r3, 0x20 @@ -12147,8 +12147,8 @@ _080E40B0: strh r1, [r0, 0x26] b _080E414C _080E40C8: - ldr r1, _080E4108 @ =gUnknown_2023D44 - ldr r0, _080E410C @ =gUnknown_2037F1A + ldr r1, _080E4108 @ =gBattlerSpriteIds + ldr r0, _080E410C @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -12180,8 +12180,8 @@ _080E40C8: bgt _080E414C b _080E4126 .align 2, 0 -_080E4108: .4byte gUnknown_2023D44 -_080E410C: .4byte gUnknown_2037F1A +_080E4108: .4byte gBattlerSpriteIds +_080E410C: .4byte gBattleAnimAttacker _080E4110: .4byte gSprites _080E4114: movs r3, 0x20 @@ -12200,8 +12200,8 @@ _080E4126: strh r0, [r2, 0x26] b _080E414C _080E412E: - ldr r1, _080E4154 @ =gUnknown_2023D44 - ldr r0, _080E4158 @ =gUnknown_2037F1A + ldr r1, _080E4154 @ =gBattlerSpriteIds + ldr r0, _080E4158 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -12219,8 +12219,8 @@ _080E414C: pop {r0} bx r0 .align 2, 0 -_080E4154: .4byte gUnknown_2023D44 -_080E4158: .4byte gUnknown_2037F1A +_080E4154: .4byte gBattlerSpriteIds +_080E4158: .4byte gBattleAnimAttacker _080E415C: .4byte gSprites thumb_func_end sub_80E3FC0 @@ -12240,7 +12240,7 @@ sub_80E4160: @ 80E4160 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0xE] - ldr r0, _080E41CC @ =gUnknown_2037F1A + ldr r0, _080E41CC @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -12279,7 +12279,7 @@ _080E4194: bx r0 .align 2, 0 _080E41C8: .4byte gTasks -_080E41CC: .4byte gUnknown_2037F1A +_080E41CC: .4byte gBattleAnimAttacker _080E41D0: .4byte gSprites _080E41D4: .4byte sub_80E41D8 thumb_func_end sub_80E4160 @@ -12322,7 +12322,7 @@ _080E4206: adds r1, r0 lsls r1, 2 adds r1, r5 - ldr r3, _080E427C @ =gUnknown_825E074 + ldr r3, _080E427C @ =gSineTable movs r6, 0x1E ldrsh r0, [r4, r6] lsls r0, 1 @@ -12368,7 +12368,7 @@ _080E4206: b _080E42C0 .align 2, 0 _080E4278: .4byte gSprites -_080E427C: .4byte gUnknown_825E074 +_080E427C: .4byte gSineTable _080E4280: ldrh r0, [r4, 0x1E] adds r0, 0x8 @@ -12382,7 +12382,7 @@ _080E4280: adds r1, r0 lsls r1, 2 adds r1, r3 - ldr r2, _080E42CC @ =gUnknown_825E074 + ldr r2, _080E42CC @ =gSineTable movs r5, 0x1E ldrsh r0, [r4, r5] lsls r0, 1 @@ -12409,7 +12409,7 @@ _080E42C0: b _080E42D6 .align 2, 0 _080E42C8: .4byte gSprites -_080E42CC: .4byte gUnknown_825E074 +_080E42CC: .4byte gSineTable _080E42D0: adds r0, r2, 0 bl DestroyAnimVisualTask @@ -12423,7 +12423,7 @@ _080E42D6: sub_80E42DC: @ 80E42DC push {r4,lr} adds r4, r0, 0 - ldr r0, _080E4330 @ =gUnknown_2037F1B + ldr r0, _080E4330 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -12460,20 +12460,20 @@ _080E4322: pop {r0} bx r0 .align 2, 0 -_080E4330: .4byte gUnknown_2037F1B +_080E4330: .4byte gBattleAnimTarget thumb_func_end sub_80E42DC thumb_func_start sub_80E4334 sub_80E4334: @ 80E4334 push {r4,lr} adds r4, r0, 0 - ldr r0, _080E436C @ =gUnknown_2037F1B + ldr r0, _080E436C @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080E4378 - ldr r2, _080E4370 @ =gUnknown_2037F02 + ldr r2, _080E4370 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -12491,15 +12491,15 @@ sub_80E4334: @ 80E4334 bl StartSpriteAffineAnim b _080E4392 .align 2, 0 -_080E436C: .4byte gUnknown_2037F1B -_080E4370: .4byte gUnknown_2037F02 +_080E436C: .4byte gBattleAnimTarget +_080E4370: .4byte gBattleAnimArgs _080E4374: .4byte 0x0000fff5 _080E4378: movs r0, 0xB strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] - ldr r1, _080E439C @ =gUnknown_2037F02 + ldr r1, _080E439C @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -12515,7 +12515,7 @@ _080E4392: pop {r0} bx r0 .align 2, 0 -_080E439C: .4byte gUnknown_2037F02 +_080E439C: .4byte gBattleAnimArgs _080E43A0: .4byte sub_80E42DC thumb_func_end sub_80E4334 @@ -12523,7 +12523,7 @@ _080E43A0: .4byte sub_80E42DC sub_80E43A4: @ 80E43A4 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080E43E8 @ =gUnknown_2037F1A + ldr r4, _080E43E8 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -12554,7 +12554,7 @@ _080E43CE: pop {r0} bx r0 .align 2, 0 -_080E43E8: .4byte gUnknown_2037F1A +_080E43E8: .4byte gBattleAnimAttacker _080E43EC: .4byte sub_80E43F0 thumb_func_end sub_80E43A4 @@ -12700,7 +12700,7 @@ sub_80E44EC: @ 80E44EC push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, _080E4508 @ =gUnknown_2037F02 + ldr r2, _080E4508 @ =gBattleAnimArgs movs r0, 0 strh r0, [r2, 0xE] ldr r0, _080E450C @ =gUnknown_2037F00 @@ -12712,7 +12712,7 @@ sub_80E44EC: @ 80E44EC movs r0, 0x1 b _080E4532 .align 2, 0 -_080E4508: .4byte gUnknown_2037F02 +_080E4508: .4byte gBattleAnimArgs _080E450C: .4byte gUnknown_2037F00 _080E4510: movs r0, 0x7 @@ -12755,7 +12755,7 @@ sub_80E4540: @ 80E4540 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] - ldr r0, _080E457C @ =gUnknown_2037F02 + ldr r0, _080E457C @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId adds r1, r0, 0 @@ -12772,7 +12772,7 @@ sub_80E4540: @ 80E4540 bx r0 .align 2, 0 _080E4578: .4byte gTasks -_080E457C: .4byte gUnknown_2037F02 +_080E457C: .4byte gBattleAnimArgs _080E4580: .4byte gUnknown_83FF7A8 _080E4584: .4byte sub_80E4588 thumb_func_end sub_80E4540 diff --git a/asm/battle_anim_8074480.s b/asm/battle_anim_mons.s index b900ba15a..aded063d4 100644 --- a/asm/battle_anim_8074480.s +++ b/asm/battle_anim_mons.s @@ -711,37 +711,37 @@ GetAnimBankSpriteId: @ 80749D4 adds r1, r0, 0 cmp r0, 0 bne _080749FC - ldr r4, _080749F4 @ =gUnknown_2037F1A + ldr r4, _080749F4 @ =gBattleAnimAttacker ldrb r0, [r4] bl sub_8075224 lsls r0, 24 cmp r0, 0 beq _08074A4A - ldr r1, _080749F8 @ =gUnknown_2023D44 + ldr r1, _080749F8 @ =gBattlerSpriteIds ldrb r0, [r4] b _08074A5A .align 2, 0 -_080749F4: .4byte gUnknown_2037F1A -_080749F8: .4byte gUnknown_2023D44 +_080749F4: .4byte gBattleAnimAttacker +_080749F8: .4byte gBattlerSpriteIds _080749FC: cmp r0, 0x1 bne _08074A1C - ldr r4, _08074A14 @ =gUnknown_2037F1B + ldr r4, _08074A14 @ =gBattleAnimTarget ldrb r0, [r4] bl sub_8075224 lsls r0, 24 cmp r0, 0 beq _08074A4A - ldr r1, _08074A18 @ =gUnknown_2023D44 + ldr r1, _08074A18 @ =gBattlerSpriteIds ldrb r0, [r4] b _08074A5A .align 2, 0 -_08074A14: .4byte gUnknown_2037F1B -_08074A18: .4byte gUnknown_2023D44 +_08074A14: .4byte gBattleAnimTarget +_08074A18: .4byte gBattlerSpriteIds _08074A1C: cmp r1, 0x2 bne _08074A38 - ldr r5, _08074A34 @ =gUnknown_2037F1A + ldr r5, _08074A34 @ =gBattleAnimAttacker ldrb r0, [r5] movs r4, 0x2 eors r0, r4 @@ -751,9 +751,9 @@ _08074A1C: beq _08074A4A b _08074A54 .align 2, 0 -_08074A34: .4byte gUnknown_2037F1A +_08074A34: .4byte gBattleAnimAttacker _08074A38: - ldr r5, _08074A50 @ =gUnknown_2037F1B + ldr r5, _08074A50 @ =gBattleAnimTarget ldrb r0, [r5] movs r4, 0x2 eors r0, r4 @@ -765,9 +765,9 @@ _08074A4A: movs r0, 0xFF b _08074A5E .align 2, 0 -_08074A50: .4byte gUnknown_2037F1B +_08074A50: .4byte gBattleAnimTarget _08074A54: - ldr r1, _08074A64 @ =gUnknown_2023D44 + ldr r1, _08074A64 @ =gBattlerSpriteIds ldrb r0, [r5] eors r0, r4 _08074A5A: @@ -778,7 +778,7 @@ _08074A5E: pop {r1} bx r1 .align 2, 0 -_08074A64: .4byte gUnknown_2023D44 +_08074A64: .4byte gBattlerSpriteIds thumb_func_end GetAnimBankSpriteId thumb_func_start StoreSpriteCallbackInData6 @@ -1242,7 +1242,7 @@ sub_8074D80: @ 8074D80 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x34] - ldr r5, _08074DBC @ =gUnknown_2037F1B + ldr r5, _08074DBC @ =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 bl sub_8074480 @@ -1261,7 +1261,7 @@ sub_8074D80: @ 8074D80 pop {r0} bx r0 .align 2, 0 -_08074DBC: .4byte gUnknown_2037F1B +_08074DBC: .4byte gBattleAnimTarget _08074DC0: .4byte sub_8074C64 thumb_func_end sub_8074D80 @@ -1443,7 +1443,7 @@ sub_8074EF4: @ 8074EF4 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x34] - ldr r5, _08074F30 @ =gUnknown_2037F1A + ldr r5, _08074F30 @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_8074480 @@ -1462,7 +1462,7 @@ sub_8074EF4: @ 8074EF4 pop {r0} bx r0 .align 2, 0 -_08074F30: .4byte gUnknown_2037F1A +_08074F30: .4byte gBattleAnimAttacker _08074F34: .4byte sub_8074C64 thumb_func_end sub_8074EF4 @@ -1553,7 +1553,7 @@ sub_8074FA8: @ 8074FA8 sub_8074FCC: @ 8074FCC push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _08074FF4 @ =gUnknown_2037F1A + ldr r4, _08074FF4 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -1570,7 +1570,7 @@ sub_8074FCC: @ 8074FCC pop {r0} bx r0 .align 2, 0 -_08074FF4: .4byte gUnknown_2037F1A +_08074FF4: .4byte gBattleAnimAttacker thumb_func_end sub_8074FCC thumb_func_start sub_8074FF8 @@ -1582,13 +1582,13 @@ sub_8074FF8: @ 8074FF8 lsls r1, 16 lsrs r5, r1, 16 mov r8, r5 - ldr r7, _08075030 @ =gUnknown_2037F1A + ldr r7, _08075030 @ =gBattleAnimAttacker ldrb r0, [r7] movs r1, 0 bl sub_8074480 lsls r0, 24 lsrs r6, r0, 24 - ldr r0, _08075034 @ =gUnknown_2037F1B + ldr r0, _08075034 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl sub_8074480 @@ -1601,8 +1601,8 @@ sub_8074FF8: @ 8074FF8 lsls r0, r5, 16 b _08075054 .align 2, 0 -_08075030: .4byte gUnknown_2037F1A -_08075034: .4byte gUnknown_2037F1B +_08075030: .4byte gBattleAnimAttacker +_08075034: .4byte gBattleAnimTarget _08075038: ldrb r0, [r7] bl GetBattlerSide @@ -1738,7 +1738,7 @@ sub_8075114: @ 8075114 lsls r1, 24 cmp r1, 0 bne _0807513C - ldr r4, _08075158 @ =gUnknown_2037F1B + ldr r4, _08075158 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 bl sub_8074844 @@ -1752,7 +1752,7 @@ sub_8075114: @ 8075114 lsrs r0, 24 strh r0, [r5, 0x22] _0807513C: - ldr r4, _0807515C @ =gUnknown_2037F02 + ldr r4, _0807515C @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -1765,8 +1765,8 @@ _0807513C: pop {r0} bx r0 .align 2, 0 -_08075158: .4byte gUnknown_2037F1B -_0807515C: .4byte gUnknown_2037F02 +_08075158: .4byte gBattleAnimTarget +_0807515C: .4byte gBattleAnimArgs thumb_func_end sub_8075114 thumb_func_start sub_8075160 @@ -1776,7 +1776,7 @@ sub_8075160: @ 8075160 lsls r1, 24 cmp r1, 0 bne _08075184 - ldr r4, _08075180 @ =gUnknown_2037F1A + ldr r4, _08075180 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 bl sub_8074844 @@ -1787,9 +1787,9 @@ sub_8075160: @ 8075160 movs r1, 0x1 b _08075198 .align 2, 0 -_08075180: .4byte gUnknown_2037F1A +_08075180: .4byte gBattleAnimAttacker _08075184: - ldr r4, _080751BC @ =gUnknown_2037F1A + ldr r4, _080751BC @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074844 @@ -1803,7 +1803,7 @@ _08075198: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, _080751C0 @ =gUnknown_2037F02 + ldr r4, _080751C0 @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -1816,8 +1816,8 @@ _08075198: pop {r0} bx r0 .align 2, 0 -_080751BC: .4byte gUnknown_2037F1A -_080751C0: .4byte gUnknown_2037F02 +_080751BC: .4byte gBattleAnimAttacker +_080751C0: .4byte gBattleAnimArgs thumb_func_end sub_8075160 thumb_func_start GetBattlerSide @@ -2011,7 +2011,7 @@ sub_8075300: @ 8075300 ldr r0, _08075338 @ =gUnknown_2022BBC ldr r0, [r0] str r0, [r4, 0x4] - ldr r0, _0807533C @ =gUnknown_2037F1A + ldr r0, _0807533C @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_80768B0 lsls r0, 24 @@ -2030,7 +2030,7 @@ sub_8075300: @ 8075300 .align 2, 0 _08075334: .4byte gUnknown_2022BB8 _08075338: .4byte gUnknown_2022BBC -_0807533C: .4byte gUnknown_2037F1A +_0807533C: .4byte gBattleAnimAttacker _08075340: movs r1, 0 movs r0, 0x9 @@ -3252,7 +3252,7 @@ sub_8075BE8: @ 8075BE8 _08075C1C: cmp r1, 0 beq _08075C2E - ldr r0, _08075CB0 @ =gUnknown_2037F1A + ldr r0, _08075CB0 @ =gBattleAnimAttacker ldrb r0, [r0] adds r1, r0, 0 adds r1, 0x10 @@ -3262,7 +3262,7 @@ _08075C1C: _08075C2E: cmp r2, 0 beq _08075C40 - ldr r0, _08075CB4 @ =gUnknown_2037F1B + ldr r0, _08075CB4 @ =gBattleAnimTarget ldrb r0, [r0] adds r1, r0, 0 adds r1, 0x10 @@ -3272,7 +3272,7 @@ _08075C2E: _08075C40: cmp r3, 0 beq _08075C64 - ldr r6, _08075CB0 @ =gUnknown_2037F1A + ldr r6, _08075CB0 @ =gBattleAnimAttacker ldrb r0, [r6] movs r5, 0x2 eors r0, r5 @@ -3290,7 +3290,7 @@ _08075C40: _08075C64: cmp r7, 0 beq _08075C88 - ldr r6, _08075CB4 @ =gUnknown_2037F1B + ldr r6, _08075CB4 @ =gBattleAnimTarget ldrb r0, [r6] movs r5, 0x2 eors r0, r5 @@ -3328,8 +3328,8 @@ _08075CA0: pop {r1} bx r1 .align 2, 0 -_08075CB0: .4byte gUnknown_2037F1A -_08075CB4: .4byte gUnknown_2037F1B +_08075CB0: .4byte gBattleAnimAttacker +_08075CB4: .4byte gBattleAnimTarget thumb_func_end sub_8075BE8 thumb_func_start sub_8075CB8 @@ -3454,7 +3454,7 @@ sub_8075D9C: @ 8075D9C ldrsh r0, [r4, r1] cmp r0, 0 bne _08075DDA - ldr r2, _08075DC8 @ =gUnknown_2037F02 + ldr r2, _08075DC8 @ =gBattleAnimArgs movs r3, 0x6 ldrsh r0, [r2, r3] movs r1, 0 @@ -3470,7 +3470,7 @@ _08075DB6: bl sub_8075160 b _08075DD2 .align 2, 0 -_08075DC8: .4byte gUnknown_2037F02 +_08075DC8: .4byte gBattleAnimArgs _08075DCC: adds r0, r4, 0 bl sub_8075114 @@ -3499,7 +3499,7 @@ _08075DEE: sub_8075DF4: @ 8075DF4 push {r4-r7,lr} adds r5, r0, 0 - ldr r6, _08075E6C @ =gUnknown_2037F02 + ldr r6, _08075E6C @ =gBattleAnimArgs movs r1, 0xA ldrsh r0, [r6, r1] movs r1, 0xFF @@ -3518,7 +3518,7 @@ _08075E0C: _08075E16: adds r0, r5, 0 bl sub_8075160 - ldr r0, _08075E70 @ =gUnknown_2037F1A + ldr r0, _08075E70 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -3530,7 +3530,7 @@ _08075E16: _08075E30: ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] - ldr r4, _08075E74 @ =gUnknown_2037F1B + ldr r4, _08075E74 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -3556,9 +3556,9 @@ _08075E30: pop {r0} bx r0 .align 2, 0 -_08075E6C: .4byte gUnknown_2037F02 -_08075E70: .4byte gUnknown_2037F1A -_08075E74: .4byte gUnknown_2037F1B +_08075E6C: .4byte gBattleAnimArgs +_08075E70: .4byte gBattleAnimAttacker +_08075E74: .4byte gBattleAnimTarget _08075E78: .4byte sub_8075590 _08075E7C: .4byte DestroyAnimSprite thumb_func_end sub_8075DF4 @@ -3569,21 +3569,21 @@ sub_8075E80: @ 8075E80 adds r6, r0, 0 movs r1, 0x1 bl sub_8075160 - ldr r0, _08075EE0 @ =gUnknown_2037F1A + ldr r0, _08075EE0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08075EA0 - ldr r1, _08075EE4 @ =gUnknown_2037F02 + ldr r1, _08075EE4 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _08075EA0: - ldr r4, _08075EE4 @ =gUnknown_2037F02 + ldr r4, _08075EE4 @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, _08075EE8 @ =gUnknown_2037F1B + ldr r5, _08075EE8 @ =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 bl sub_8074480 @@ -3610,9 +3610,9 @@ _08075EA0: pop {r0} bx r0 .align 2, 0 -_08075EE0: .4byte gUnknown_2037F1A -_08075EE4: .4byte gUnknown_2037F02 -_08075EE8: .4byte gUnknown_2037F1B +_08075EE0: .4byte gBattleAnimAttacker +_08075EE4: .4byte gBattleAnimArgs +_08075EE8: .4byte gBattleAnimTarget _08075EEC: .4byte sub_8075EF0 thumb_func_end sub_8075E80 @@ -3636,7 +3636,7 @@ _08075F04: sub_8075F0C: @ 8075F0C push {r4-r7,lr} adds r5, r0, 0 - ldr r0, _08075F20 @ =gUnknown_2037F02 + ldr r0, _08075F20 @ =gBattleAnimArgs movs r2, 0xC ldrsh r1, [r0, r2] cmp r1, 0 @@ -3645,7 +3645,7 @@ sub_8075F0C: @ 8075F0C movs r7, 0x3 b _08075F28 .align 2, 0 -_08075F20: .4byte gUnknown_2037F02 +_08075F20: .4byte gBattleAnimArgs _08075F24: movs r4, 0 movs r7, 0x1 @@ -3657,24 +3657,24 @@ _08075F28: adds r0, r5, 0 adds r1, r4, 0 bl sub_8075160 - ldr r0, _08075F3C @ =gUnknown_2037F1A + ldr r0, _08075F3C @ =gBattleAnimAttacker b _08075F4A .align 2, 0 -_08075F3C: .4byte gUnknown_2037F1A +_08075F3C: .4byte gBattleAnimAttacker _08075F40: adds r0, r5, 0 adds r1, r4, 0 bl sub_8075114 - ldr r0, _08075FA8 @ =gUnknown_2037F1B + ldr r0, _08075FA8 @ =gBattleAnimTarget _08075F4A: ldrb r6, [r0] - ldr r0, _08075FAC @ =gUnknown_2037F1A + ldr r0, _08075FAC @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08075F62 - ldr r1, _08075FB0 @ =gUnknown_2037F02 + ldr r1, _08075FB0 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] @@ -3682,7 +3682,7 @@ _08075F62: adds r0, r5, 0 adds r1, r4, 0 bl sub_8075114 - ldr r4, _08075FB0 @ =gUnknown_2037F02 + ldr r4, _08075FB0 @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r5, 0x2E] adds r0, r6, 0 @@ -3710,9 +3710,9 @@ _08075F62: pop {r0} bx r0 .align 2, 0 -_08075FA8: .4byte gUnknown_2037F1B -_08075FAC: .4byte gUnknown_2037F1A -_08075FB0: .4byte gUnknown_2037F02 +_08075FA8: .4byte gBattleAnimTarget +_08075FAC: .4byte gBattleAnimAttacker +_08075FB0: .4byte gBattleAnimArgs _08075FB4: .4byte sub_8075590 _08075FB8: .4byte DestroyAnimSprite thumb_func_end sub_8075F0C @@ -3801,7 +3801,7 @@ sub_8076048: @ 8076048 lsrs r5, r0, 24 movs r6, 0 movs r3, 0 - ldr r2, _080760C0 @ =gUnknown_2037F02 + ldr r2, _080760C0 @ =gBattleAnimArgs movs r0, 0x4 ldrsh r1, [r2, r0] movs r4, 0 @@ -3860,7 +3860,7 @@ _0807607C: pop {r0} bx r0 .align 2, 0 -_080760C0: .4byte gUnknown_2037F02 +_080760C0: .4byte gBattleAnimArgs _080760C4: .4byte 0x0000ffff _080760C8: .4byte gTasks _080760CC: .4byte sub_80760D0 @@ -3952,7 +3952,7 @@ sub_807616C: @ 807616C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _0807618C @ =gUnknown_2037F02 + ldr r0, _0807618C @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId lsls r0, 24 @@ -3963,7 +3963,7 @@ sub_807616C: @ 807616C bl DestroyAnimVisualTask b _080761B6 .align 2, 0 -_0807618C: .4byte gUnknown_2037F02 +_0807618C: .4byte gBattleAnimArgs _08076190: ldr r1, _080761BC @ =gTasks lsls r0, r4, 2 @@ -3995,7 +3995,7 @@ _080761C4: .4byte 0x00000101 thumb_func_start sub_80761C8 sub_80761C8: @ 80761C8 - ldr r3, _080761E8 @ =gUnknown_2037F02 + ldr r3, _080761E8 @ =gBattleAnimArgs ldrh r1, [r3, 0x2] movs r2, 0 strh r1, [r0, 0xA] @@ -4012,7 +4012,7 @@ sub_80761C8: @ 80761C8 str r1, [r0] bx lr .align 2, 0 -_080761E8: .4byte gUnknown_2037F02 +_080761E8: .4byte gBattleAnimArgs _080761EC: .4byte sub_80761F0 thumb_func_end sub_80761C8 @@ -4099,7 +4099,7 @@ sub_8076288: @ 8076288 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080762A8 @ =gUnknown_2037F02 + ldr r0, _080762A8 @ =gBattleAnimArgs ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 @@ -4110,7 +4110,7 @@ sub_8076288: @ 8076288 bl DestroyAnimVisualTask b _080762C2 .align 2, 0 -_080762A8: .4byte gUnknown_2037F02 +_080762A8: .4byte gBattleAnimArgs _080762AC: ldr r1, _080762C8 @ =gTasks lsls r0, r4, 2 @@ -4428,7 +4428,7 @@ sub_80764EC: @ 80764EC lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r1, _0807654C @ =gUnknown_2023D44 + ldr r1, _0807654C @ =gBattlerSpriteIds ldr r6, _08076550 @ =gBattlerPartyIndexes _08076508: adds r0, r4, r1 @@ -4463,7 +4463,7 @@ _08076508: b _0807655E .align 2, 0 _08076548: .4byte gSprites -_0807654C: .4byte gUnknown_2023D44 +_0807654C: .4byte gBattlerSpriteIds _08076550: .4byte gBattlerPartyIndexes _08076554: .4byte gUnknown_2024018 _08076558: .4byte gPlayerParty @@ -4680,7 +4680,7 @@ sub_80766B8: @ 80766B8 bhi _080766D6 movs r1, 0x2 _080766D6: - ldr r0, _080766E8 @ =gUnknown_2037F02 + ldr r0, _080766E8 @ =gBattleAnimArgs strh r1, [r0, 0xE] adds r0, r2, 0 bl DestroyAnimVisualTask @@ -4688,7 +4688,7 @@ _080766D6: bx r0 .align 2, 0 _080766E4: .4byte gUnknown_2037EFE -_080766E8: .4byte gUnknown_2037F02 +_080766E8: .4byte gBattleAnimArgs thumb_func_end sub_80766B8 thumb_func_start sub_80766EC @@ -4699,14 +4699,14 @@ sub_80766EC: @ 80766EC lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 - ldr r6, _080767E0 @ =gUnknown_2037F1B + ldr r6, _080767E0 @ =gBattleAnimTarget ldrb r0, [r6] bl sub_8072DF0 lsls r0, 24 cmp r0, 0 beq _0807672C ldr r2, _080767E4 @ =gSprites - ldr r1, _080767E8 @ =gUnknown_2023D44 + ldr r1, _080767E8 @ =gBattlerSpriteIds ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] @@ -4725,7 +4725,7 @@ sub_80766EC: @ 80766EC orrs r0, r2 strb r0, [r1, 0x5] _0807672C: - ldr r0, _080767EC @ =gUnknown_2037F1A + ldr r0, _080767EC @ =gBattleAnimAttacker mov r8, r0 ldrb r0, [r0] bl sub_8072DF0 @@ -4733,7 +4733,7 @@ _0807672C: cmp r0, 0 beq _08076764 ldr r2, _080767E4 @ =gSprites - ldr r1, _080767E8 @ =gUnknown_2023D44 + ldr r1, _080767E8 @ =gBattlerSpriteIds mov r3, r8 ldrb r0, [r3] adds r0, r1 @@ -4761,7 +4761,7 @@ _08076764: cmp r0, 0 beq _0807679C ldr r2, _080767E4 @ =gSprites - ldr r1, _080767E8 @ =gUnknown_2023D44 + ldr r1, _080767E8 @ =gBattlerSpriteIds ldrb r0, [r6] eors r0, r5 adds r0, r1 @@ -4789,7 +4789,7 @@ _0807679C: cmp r0, 0 beq _080767D4 ldr r2, _080767E4 @ =gSprites - ldr r1, _080767E8 @ =gUnknown_2023D44 + ldr r1, _080767E8 @ =gBattlerSpriteIds mov r3, r8 ldrb r0, [r3] eors r0, r5 @@ -4815,10 +4815,10 @@ _080767D4: pop {r0} bx r0 .align 2, 0 -_080767E0: .4byte gUnknown_2037F1B +_080767E0: .4byte gBattleAnimTarget _080767E4: .4byte gSprites -_080767E8: .4byte gUnknown_2023D44 -_080767EC: .4byte gUnknown_2037F1A +_080767E8: .4byte gBattlerSpriteIds +_080767EC: .4byte gBattleAnimAttacker thumb_func_end sub_80766EC thumb_func_start sub_80767F0 @@ -4840,7 +4840,7 @@ _080767FE: beq _08076840 adds r0, r4, 0 bl sub_807685C - ldr r3, _08076858 @ =gUnknown_2023D44 + ldr r3, _08076858 @ =gBattlerSpriteIds adds r3, r5, r3 ldrb r2, [r3] lsls r1, r2, 4 @@ -4875,7 +4875,7 @@ _0807684A: .align 2, 0 _08076850: .4byte gBattlersCount _08076854: .4byte gSprites -_08076858: .4byte gUnknown_2023D44 +_08076858: .4byte gBattlerSpriteIds thumb_func_end sub_80767F0 thumb_func_start sub_807685C @@ -5050,7 +5050,7 @@ _0807694E: beq _080769C4 _0807699A: lsls r0, r6, 3 - ldr r1, _080769C0 @ =gUnknown_82350AC + ldr r1, _080769C0 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080769B8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5065,10 +5065,10 @@ _080769B0: .4byte gUnknown_83AE084 _080769B4: .4byte gUnknown_83AE054 _080769B8: .4byte gMonSpritesGfxPtr _080769BC: .4byte gUnknown_2024018 -_080769C0: .4byte gUnknown_82350AC +_080769C0: .4byte gMonFrontPicTable _080769C4: lsls r0, r6, 3 - ldr r1, _080769E4 @ =gUnknown_82350AC + ldr r1, _080769E4 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080769E8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5080,10 +5080,10 @@ _080769C4: str r2, [sp] adds r2, r6, 0 mov r3, r8 - bl sub_800ECF0 + bl LoadSpecialPokePic b _08076A7C .align 2, 0 -_080769E4: .4byte gUnknown_82350AC +_080769E4: .4byte gMonFrontPicTable _080769E8: .4byte gMonSpritesGfxPtr _080769EC: adds r0, r6, 0 @@ -5120,7 +5120,7 @@ _080769EC: beq _08076A60 _08076A32: lsls r0, r6, 3 - ldr r1, _08076A58 @ =gUnknown_823654C + ldr r1, _08076A58 @ =gMonBackPicTable adds r0, r1 ldr r1, _08076A5C @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5137,11 +5137,11 @@ _08076A46: b _08076A7C .align 2, 0 _08076A54: .4byte gUnknown_2024018 -_08076A58: .4byte gUnknown_823654C +_08076A58: .4byte gMonBackPicTable _08076A5C: .4byte gMonSpritesGfxPtr _08076A60: lsls r0, r6, 3 - ldr r1, _08076AC8 @ =gUnknown_823654C + ldr r1, _08076AC8 @ =gMonBackPicTable adds r0, r1 ldr r1, _08076ACC @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5152,7 +5152,7 @@ _08076A60: str r2, [sp] adds r2, r6, 0 mov r3, r8 - bl sub_800ECF0 + bl LoadSpecialPokePic _08076A7C: ldr r5, _08076ACC @ =gMonSpritesGfxPtr ldr r0, [r5] @@ -5190,7 +5190,7 @@ _08076A7C: ldr r3, _08076AD8 @ =gUnknown_82349CC b _08076AEE .align 2, 0 -_08076AC8: .4byte gUnknown_823654C +_08076AC8: .4byte gMonBackPicTable _08076ACC: .4byte gMonSpritesGfxPtr _08076AD0: .4byte 0x06010000 _08076AD4: .4byte gUnknown_83AE054 @@ -5719,13 +5719,13 @@ sub_8076ED8: @ 8076ED8 push {r4,lr} adds r4, r0, 0 bl sub_8074FCC - ldr r0, _08076F10 @ =gUnknown_2037F1A + ldr r0, _08076F10 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08076F18 - ldr r2, _08076F14 @ =gUnknown_2037F02 + ldr r2, _08076F14 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -5742,10 +5742,10 @@ sub_8076ED8: @ 8076ED8 adds r1, r2, 0 b _08076F22 .align 2, 0 -_08076F10: .4byte gUnknown_2037F1A -_08076F14: .4byte gUnknown_2037F02 +_08076F10: .4byte gBattleAnimAttacker +_08076F14: .4byte gBattleAnimArgs _08076F18: - ldr r1, _08076F4C @ =gUnknown_2037F02 + ldr r1, _08076F4C @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -5772,7 +5772,7 @@ _08076F22: pop {r0} bx r0 .align 2, 0 -_08076F4C: .4byte gUnknown_2037F02 +_08076F4C: .4byte gBattleAnimArgs _08076F50: .4byte move_anim_8074EE0 _08076F54: .4byte sub_8074E70 thumb_func_end sub_8076ED8 @@ -5781,13 +5781,13 @@ _08076F54: .4byte sub_8074E70 sub_8076F58: @ 8076F58 push {r4,lr} adds r4, r0, 0 - ldr r0, _08076F80 @ =gUnknown_2037F1A + ldr r0, _08076F80 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08076F88 - ldr r2, _08076F84 @ =gUnknown_2037F02 + ldr r2, _08076F84 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -5799,10 +5799,10 @@ sub_8076F58: @ 8076F58 adds r1, r2, 0 b _08076F92 .align 2, 0 -_08076F80: .4byte gUnknown_2037F1A -_08076F84: .4byte gUnknown_2037F02 +_08076F80: .4byte gBattleAnimAttacker +_08076F84: .4byte gBattleAnimArgs _08076F88: - ldr r1, _08076FC4 @ =gUnknown_2037F02 + ldr r1, _08076FC4 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -5832,7 +5832,7 @@ _08076F92: pop {r0} bx r0 .align 2, 0 -_08076FC4: .4byte gUnknown_2037F02 +_08076FC4: .4byte gBattleAnimArgs _08076FC8: .4byte move_anim_8074EE0 _08076FCC: .4byte sub_8074E70 thumb_func_end sub_8076F58 @@ -5842,23 +5842,23 @@ sub_8076FD0: @ 8076FD0 push {r4,lr} adds r4, r0, 0 bl sub_8074FCC - ldr r0, _08076FF4 @ =gUnknown_2037F1A + ldr r0, _08076FF4 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08076FFC - ldr r0, _08076FF8 @ =gUnknown_2037F02 + ldr r0, _08076FF8 @ =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 strh r1, [r4, 0x20] b _08077008 .align 2, 0 -_08076FF4: .4byte gUnknown_2037F1A -_08076FF8: .4byte gUnknown_2037F02 +_08076FF4: .4byte gBattleAnimAttacker +_08076FF8: .4byte gBattleAnimArgs _08076FFC: - ldr r1, _08077024 @ =gUnknown_2037F02 + ldr r1, _08077024 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -5878,7 +5878,7 @@ _08077008: pop {r0} bx r0 .align 2, 0 -_08077024: .4byte gUnknown_2037F02 +_08077024: .4byte gBattleAnimArgs _08077028: .4byte sub_8074F6C _0807702C: .4byte DestroyAnimSprite thumb_func_end sub_8076FD0 @@ -5899,7 +5899,7 @@ sub_8077030: @ 8077030 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0x8] - ldr r7, _080770C8 @ =gUnknown_2037F1A + ldr r7, _080770C8 @ =gBattleAnimAttacker ldrb r0, [r7] bl GetBattlerSide lsls r0, 24 @@ -5959,7 +5959,7 @@ _080770C0: b _080770D6 .align 2, 0 _080770C4: .4byte gTasks -_080770C8: .4byte gUnknown_2037F1A +_080770C8: .4byte gBattleAnimAttacker _080770CC: .4byte gSprites _080770D0: .4byte 0x00002771 _080770D4: @@ -5974,7 +5974,7 @@ _080770D6: adds r1, r2 ldr r2, _0807710C @ =0x04000008 bl CpuSet - ldr r0, _08077110 @ =gUnknown_2037F02 + ldr r0, _08077110 @ =gBattleAnimArgs ldrb r2, [r0, 0x2] ldrh r3, [r0] adds r0, r6, 0 @@ -5989,7 +5989,7 @@ _080770D6: _08077104: .4byte gPlttBufferUnfaded _08077108: .4byte gPlttBufferFaded _0807710C: .4byte 0x04000008 -_08077110: .4byte gUnknown_2037F02 +_08077110: .4byte gBattleAnimArgs _08077114: .4byte sub_8077118 thumb_func_end sub_8077030 @@ -6198,7 +6198,7 @@ _08077298: .4byte gTasks sub_807729C: @ 807729C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080772D0 @ =gUnknown_2037F1A + ldr r4, _080772D0 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -6219,7 +6219,7 @@ sub_807729C: @ 807729C movs r0, 0x5 b _080772D6 .align 2, 0 -_080772D0: .4byte gUnknown_2037F1A +_080772D0: .4byte gBattleAnimAttacker _080772D4: ldr r0, _080772E8 @ =0x0000fff6 _080772D6: @@ -6289,7 +6289,7 @@ _08077348: sub_8077350: @ 8077350 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _08077388 @ =gUnknown_2037F02 + ldr r5, _08077388 @ =gBattleAnimArgs ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x8] @@ -6300,7 +6300,7 @@ sub_8077350: @ 8077350 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x36] - ldr r0, _0807738C @ =gUnknown_2037F1B + ldr r0, _0807738C @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -6315,8 +6315,8 @@ sub_8077350: @ 8077350 subs r0, 0x14 b _0807739E .align 2, 0 -_08077388: .4byte gUnknown_2037F02 -_0807738C: .4byte gUnknown_2037F1B +_08077388: .4byte gBattleAnimArgs +_0807738C: .4byte gBattleAnimTarget _08077390: ldrh r0, [r5, 0x8] subs r0, 0x1E diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s index 016e8b093..954878daa 100644 --- a/asm/battle_anim_sound_tasks.s +++ b/asm/battle_anim_sound_tasks.s @@ -15,7 +15,7 @@ sub_80DCE10: @ 80DCE10 adds r6, r0 lsls r6, 3 adds r6, r1 - ldr r1, _080DCE70 @ =gUnknown_2037F02 + ldr r1, _080DCE70 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r6, 0x8] ldrh r0, [r1, 0x2] @@ -51,7 +51,7 @@ sub_80DCE10: @ 80DCE10 bx r0 .align 2, 0 _080DCE6C: .4byte gTasks -_080DCE70: .4byte gUnknown_2037F02 +_080DCE70: .4byte gBattleAnimArgs _080DCE74: .4byte sub_80DCE78 thumb_func_end sub_80DCE10 @@ -168,7 +168,7 @@ mas_80DCF38: @ 80DCF38 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, _080DCFDC @ =gUnknown_2037F02 + ldr r0, _080DCFDC @ =gBattleAnimArgs ldrh r1, [r0] str r1, [sp] ldrb r5, [r0, 0x4] @@ -236,7 +236,7 @@ mas_80DCF38: @ 80DCF38 pop {r0} bx r0 .align 2, 0 -_080DCFDC: .4byte gUnknown_2037F02 +_080DCFDC: .4byte gBattleAnimArgs _080DCFE0: .4byte gTasks _080DCFE4: .4byte sub_80DCFE8 thumb_func_end mas_80DCF38 @@ -320,41 +320,41 @@ sub_80DD06C: @ 80DD06C bl sub_8073A44 lsls r0, 24 lsrs r6, r0, 24 - ldr r0, _080DD090 @ =gUnknown_2037F02 + ldr r0, _080DD090 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DD098 - ldr r0, _080DD094 @ =gUnknown_2037F1A + ldr r0, _080DD094 @ =gBattleAnimAttacker ldrb r4, [r0] b _080DD0BE .align 2, 0 -_080DD090: .4byte gUnknown_2037F02 -_080DD094: .4byte gUnknown_2037F1A +_080DD090: .4byte gBattleAnimArgs +_080DD094: .4byte gBattleAnimAttacker _080DD098: cmp r0, 0x1 bne _080DD0A8 - ldr r0, _080DD0A4 @ =gUnknown_2037F1B + ldr r0, _080DD0A4 @ =gBattleAnimTarget ldrb r4, [r0] b _080DD0BE .align 2, 0 -_080DD0A4: .4byte gUnknown_2037F1B +_080DD0A4: .4byte gBattleAnimTarget _080DD0A8: cmp r0, 0x2 bne _080DD0B4 - ldr r0, _080DD0B0 @ =gUnknown_2037F1A + ldr r0, _080DD0B0 @ =gBattleAnimAttacker b _080DD0B6 .align 2, 0 -_080DD0B0: .4byte gUnknown_2037F1A +_080DD0B0: .4byte gBattleAnimAttacker _080DD0B4: - ldr r0, _080DD0E0 @ =gUnknown_2037F1B + ldr r0, _080DD0E0 @ =gBattleAnimTarget _080DD0B6: ldrb r1, [r0] movs r0, 0x2 adds r4, r0, 0 eors r4, r1 _080DD0BE: - ldr r0, _080DD0E4 @ =gUnknown_2037F02 + ldr r0, _080DD0E4 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -371,8 +371,8 @@ _080DD0CC: bl DestroyAnimVisualTask b _080DD13A .align 2, 0 -_080DD0E0: .4byte gUnknown_2037F1B -_080DD0E4: .4byte gUnknown_2037F02 +_080DD0E0: .4byte gBattleAnimTarget +_080DD0E4: .4byte gBattleAnimArgs _080DD0E8: adds r0, r4, 0 bl GetBattlerSide @@ -432,41 +432,41 @@ sub_80DD148: @ 80DD148 bl sub_8073A44 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _080DD16C @ =gUnknown_2037F02 + ldr r0, _080DD16C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DD174 - ldr r0, _080DD170 @ =gUnknown_2037F1A + ldr r0, _080DD170 @ =gBattleAnimAttacker ldrb r4, [r0] b _080DD19A .align 2, 0 -_080DD16C: .4byte gUnknown_2037F02 -_080DD170: .4byte gUnknown_2037F1A +_080DD16C: .4byte gBattleAnimArgs +_080DD170: .4byte gBattleAnimAttacker _080DD174: cmp r0, 0x1 bne _080DD184 - ldr r0, _080DD180 @ =gUnknown_2037F1B + ldr r0, _080DD180 @ =gBattleAnimTarget ldrb r4, [r0] b _080DD19A .align 2, 0 -_080DD180: .4byte gUnknown_2037F1B +_080DD180: .4byte gBattleAnimTarget _080DD184: cmp r0, 0x2 bne _080DD190 - ldr r0, _080DD18C @ =gUnknown_2037F1A + ldr r0, _080DD18C @ =gBattleAnimAttacker b _080DD192 .align 2, 0 -_080DD18C: .4byte gUnknown_2037F1A +_080DD18C: .4byte gBattleAnimAttacker _080DD190: - ldr r0, _080DD1BC @ =gUnknown_2037F1B + ldr r0, _080DD1BC @ =gBattleAnimTarget _080DD192: ldrb r1, [r0] movs r0, 0x2 adds r4, r0, 0 eors r4, r1 _080DD19A: - ldr r0, _080DD1C0 @ =gUnknown_2037F02 + ldr r0, _080DD1C0 @ =gBattleAnimArgs movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x1 @@ -483,8 +483,8 @@ _080DD1A8: bl DestroyAnimVisualTask b _080DD26A .align 2, 0 -_080DD1BC: .4byte gUnknown_2037F1B -_080DD1C0: .4byte gUnknown_2037F02 +_080DD1BC: .4byte gBattleAnimTarget +_080DD1C0: .4byte gBattleAnimArgs _080DD1C4: adds r0, r4, 0 bl GetBattlerSide @@ -521,7 +521,7 @@ _080DD1F6: adds r0, r2, r6 lsls r0, 3 adds r0, r1 - ldr r4, _080DD240 @ =gUnknown_2037F02 + ldr r4, _080DD240 @ =gBattleAnimArgs ldrh r1, [r4, 0x2] strh r1, [r0, 0x8] strh r3, [r0, 0xA] @@ -543,7 +543,7 @@ _080DD1F6: _080DD234: .4byte gBattlerPartyIndexes _080DD238: .4byte gPlayerParty _080DD23C: .4byte gTasks -_080DD240: .4byte gUnknown_2037F02 +_080DD240: .4byte gBattleAnimArgs _080DD244: adds r0, r3, 0 movs r2, 0x7 @@ -677,7 +677,7 @@ sub_80DD334: @ 80DD334 negs r0, r0 bl sub_8073A44 ldr r2, _080DD374 @ =gUnknown_2037F1C - ldr r1, _080DD378 @ =gUnknown_2037F1A + ldr r1, _080DD378 @ =gBattleAnimAttacker ldrb r1, [r1] lsls r1, 1 adds r1, r2 @@ -701,7 +701,7 @@ sub_80DD334: @ 80DD334 b _080DD38A .align 2, 0 _080DD374: .4byte gUnknown_2037F1C -_080DD378: .4byte gUnknown_2037F1A +_080DD378: .4byte gBattleAnimAttacker _080DD37C: .4byte gTasks _080DD380: .4byte sub_80DD390 _080DD384: @@ -758,7 +758,7 @@ sub_80DD3DC: @ 80DD3DC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080DD40C @ =gUnknown_2037F02 + ldr r0, _080DD40C @ =gBattleAnimArgs ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 @@ -775,7 +775,7 @@ sub_80DD3DC: @ 80DD3DC pop {r0} bx r0 .align 2, 0 -_080DD40C: .4byte gUnknown_2037F02 +_080DD40C: .4byte gBattleAnimArgs thumb_func_end sub_80DD3DC thumb_func_start sub_80DD410 @@ -784,7 +784,7 @@ sub_80DD410: @ 80DD410 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080DD440 @ =gUnknown_2037F02 + ldr r0, _080DD440 @ =gBattleAnimArgs ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 @@ -801,7 +801,7 @@ sub_80DD410: @ 80DD410 pop {r0} bx r0 .align 2, 0 -_080DD440: .4byte gUnknown_2037F02 +_080DD440: .4byte gBattleAnimArgs thumb_func_end sub_80DD410 thumb_func_start sub_80DD444 @@ -814,7 +814,7 @@ sub_80DD444: @ 80DD444 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, _080DD4C8 @ =gUnknown_2037F02 + ldr r0, _080DD4C8 @ =gBattleAnimArgs ldrb r5, [r0, 0x2] ldrb r6, [r0, 0x4] ldrh r1, [r0, 0x6] @@ -868,7 +868,7 @@ sub_80DD444: @ 80DD444 pop {r0} bx r0 .align 2, 0 -_080DD4C8: .4byte gUnknown_2037F02 +_080DD4C8: .4byte gBattleAnimArgs _080DD4CC: .4byte gTasks _080DD4D0: .4byte sub_80DD4D4 thumb_func_end sub_80DD444 diff --git a/asm/battle_anim_80EEC0C.s b/asm/battle_anim_special.s index 82179f2e0..704a1e9a7 100644 --- a/asm/battle_anim_80EEC0C.s +++ b/asm/battle_anim_special.s @@ -16,7 +16,7 @@ sub_80EEC0C: @ 80EEC0C lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] - ldr r0, _080EEDB4 @ =gUnknown_2037F1A + ldr r0, _080EEDB4 @ =gBattleAnimAttacker ldrb r4, [r0] ldr r0, _080EEDB8 @ =gUnknown_2022984 movs r1, 0 @@ -168,12 +168,12 @@ sub_80EEC0C: @ 80EEC0C lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette - ldr r1, _080EEDE4 @ =gUnknown_2022978 + ldr r1, _080EEDE4 @ =gBattle_BG1_X ldrh r0, [r7, 0x20] negs r0, r0 adds r0, 0x20 strh r0, [r1] - ldr r1, _080EEDE8 @ =gUnknown_202297A + ldr r1, _080EEDE8 @ =gBattle_BG1_Y ldrh r0, [r7, 0x22] negs r0, r0 subs r0, 0x20 @@ -203,7 +203,7 @@ sub_80EEC0C: @ 80EEC0C pop {r0} bx r0 .align 2, 0 -_080EEDB4: .4byte gUnknown_2037F1A +_080EEDB4: .4byte gBattleAnimAttacker _080EEDB8: .4byte gUnknown_2022984 _080EEDBC: .4byte gUnknown_2022986 _080EEDC0: .4byte 0x00003f3f @@ -215,8 +215,8 @@ _080EEDD4: .4byte SpriteCallbackDummy _080EEDD8: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_tilemap _080EEDDC: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_sheet _080EEDE0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette -_080EEDE4: .4byte gUnknown_2022978 -_080EEDE8: .4byte gUnknown_202297A +_080EEDE4: .4byte gBattle_BG1_X +_080EEDE8: .4byte gBattle_BG1_Y _080EEDEC: .4byte gTasks _080EEDF0: .4byte sub_80EEDF4 thumb_func_end sub_80EEC0C @@ -228,7 +228,7 @@ sub_80EEDF4: @ 80EEDF4 push {r7} lsls r0, 24 lsrs r7, r0, 24 - ldr r0, _080EEE3C @ =gUnknown_2037F1A + ldr r0, _080EEE3C @ =gBattleAnimAttacker ldrb r0, [r0] mov r8, r0 ldr r1, _080EEE40 @ =gTasks @@ -241,7 +241,7 @@ sub_80EEDF4: @ 80EEDF4 adds r1, r0 movs r3, 0 strh r1, [r5, 0x22] - ldr r2, _080EEE44 @ =gUnknown_202297A + ldr r2, _080EEE44 @ =gBattle_BG1_Y lsls r0, r1, 16 lsrs r0, 24 ldrh r4, [r2] @@ -260,9 +260,9 @@ sub_80EEDF4: @ 80EEDF4 beq _080EEE4E b _080EEFA8 .align 2, 0 -_080EEE3C: .4byte gUnknown_2037F1A +_080EEE3C: .4byte gBattleAnimAttacker _080EEE40: .4byte gTasks -_080EEE44: .4byte gUnknown_202297A +_080EEE44: .4byte gBattle_BG1_Y _080EEE48: cmp r0, 0x2 beq _080EEE9C @@ -569,7 +569,7 @@ sub_80EF0B4: @ 80EF0B4 lsrs r4, 24 mov r1, sp adds r1, 0x1 - ldr r0, _080EF0DC @ =gUnknown_2037F1A + ldr r0, _080EF0DC @ =gBattleAnimAttacker ldrb r2, [r0] mov r0, sp bl sub_80EEFC8 @@ -580,7 +580,7 @@ sub_80EF0B4: @ 80EF0B4 pop {r0} bx r0 .align 2, 0 -_080EF0DC: .4byte gUnknown_2037F1A +_080EF0DC: .4byte gBattleAnimAttacker thumb_func_end sub_80EF0B4 thumb_func_start sub_80EF0E0 @@ -664,7 +664,7 @@ sub_80EF180: @ 80EF180 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080EF19C @ =gUnknown_2037F1A + ldr r0, _080EF19C @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_80EF0E0 adds r0, r4, 0 @@ -673,7 +673,7 @@ sub_80EF180: @ 80EF180 pop {r0} bx r0 .align 2, 0 -_080EF19C: .4byte gUnknown_2037F1A +_080EF19C: .4byte gBattleAnimAttacker thumb_func_end sub_80EF180 thumb_func_start sub_80EF1A0 @@ -685,7 +685,7 @@ sub_80EF1A0: @ 80EF1A0 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r2, _080EF1C4 @ =gUnknown_2037F02 + ldr r2, _080EF1C4 @ =gBattleAnimArgs ldrh r0, [r2] strh r0, [r1, 0x1C] ldrh r0, [r2, 0x2] @@ -695,7 +695,7 @@ sub_80EF1A0: @ 80EF1A0 bx lr .align 2, 0 _080EF1C0: .4byte gTasks -_080EF1C4: .4byte gUnknown_2037F02 +_080EF1C4: .4byte gBattleAnimArgs _080EF1C8: .4byte sub_80EF1CC thumb_func_end sub_80EF1A0 @@ -809,8 +809,8 @@ sub_80EF298: @ 80EF298 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r1, _080EF2C4 @ =gUnknown_2023D44 - ldr r0, _080EF2C8 @ =gUnknown_2037F1A + ldr r1, _080EF2C4 @ =gBattlerSpriteIds + ldr r0, _080EF2C8 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r5, [r0] @@ -829,8 +829,8 @@ sub_80EF298: @ 80EF298 beq _080EF2D6 b _080EF338 .align 2, 0 -_080EF2C4: .4byte gUnknown_2023D44 -_080EF2C8: .4byte gUnknown_2037F1A +_080EF2C4: .4byte gBattlerSpriteIds +_080EF2C8: .4byte gBattleAnimAttacker _080EF2CC: .4byte gTasks _080EF2D0: cmp r0, 0x2 @@ -900,8 +900,8 @@ sub_80EF344: @ 80EF344 sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 - ldr r1, _080EF37C @ =gUnknown_2023D44 - ldr r4, _080EF380 @ =gUnknown_2037F1A + ldr r1, _080EF37C @ =gBattlerSpriteIds + ldr r4, _080EF380 @ =gBattleAnimAttacker ldrb r0, [r4] adds r1, r0, r1 ldrb r1, [r1] @@ -920,8 +920,8 @@ sub_80EF344: @ 80EF344 ldr r1, _080EF388 @ =gPlayerParty b _080EF39C .align 2, 0 -_080EF37C: .4byte gUnknown_2023D44 -_080EF380: .4byte gUnknown_2037F1A +_080EF37C: .4byte gBattlerSpriteIds +_080EF380: .4byte gBattleAnimAttacker _080EF384: .4byte gBattlerPartyIndexes _080EF388: .4byte gPlayerParty _080EF38C: @@ -960,7 +960,7 @@ _080EF3CC: .4byte gBattlerPartyIndexes _080EF3D0: .4byte gEnemyParty _080EF3D4: .4byte gTasks _080EF3D8: - ldr r5, _080EF450 @ =gUnknown_2037F1A + ldr r5, _080EF450 @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 bl sub_8074480 @@ -1015,7 +1015,7 @@ _080EF3D8: strh r0, [r6, 0x8] b _080EF482 .align 2, 0 -_080EF450: .4byte gUnknown_2037F1A +_080EF450: .4byte gBattleAnimAttacker _080EF454: .4byte gSprites _080EF458: movs r1, 0x1C @@ -1103,21 +1103,21 @@ sub_80EF4E0: @ 80EF4E0 beq _080EF504 cmp r0, 0x6 beq _080EF514 - ldr r1, _080EF500 @ =gUnknown_2037F02 + ldr r1, _080EF500 @ =gBattleAnimArgs movs r0, 0 b _080EF518 .align 2, 0 _080EF4FC: .4byte gUnknown_2024018 -_080EF500: .4byte gUnknown_2037F02 +_080EF500: .4byte gBattleAnimArgs _080EF504: - ldr r1, _080EF50C @ =gUnknown_2037F02 + ldr r1, _080EF50C @ =gBattleAnimArgs ldr r0, _080EF510 @ =0x0000ffff b _080EF518 .align 2, 0 -_080EF50C: .4byte gUnknown_2037F02 +_080EF50C: .4byte gBattleAnimArgs _080EF510: .4byte 0x0000ffff _080EF514: - ldr r1, _080EF524 @ =gUnknown_2037F02 + ldr r1, _080EF524 @ =gBattleAnimArgs ldr r0, _080EF528 @ =0x0000fffe _080EF518: strh r0, [r1, 0xE] @@ -1126,7 +1126,7 @@ _080EF518: pop {r0} bx r0 .align 2, 0 -_080EF524: .4byte gUnknown_2037F02 +_080EF524: .4byte gBattleAnimArgs _080EF528: .4byte 0x0000fffe thumb_func_end sub_80EF4E0 @@ -1236,7 +1236,7 @@ sub_80EF5AC: @ 80EF5AC adds r6, r4, r1 movs r0, 0x22 strh r0, [r6, 0x2E] - ldr r2, _080EF680 @ =gUnknown_2037F1B + ldr r2, _080EF680 @ =gBattleAnimTarget mov r8, r2 ldrb r0, [r2] movs r1, 0 @@ -1260,7 +1260,7 @@ sub_80EF5AC: @ 80EF5AC ldr r0, _080EF688 @ =gUnknown_2024018 ldr r0, [r0] ldr r3, [r0, 0x8] - ldr r1, _080EF68C @ =gUnknown_2023D44 + ldr r1, _080EF68C @ =gBattlerSpriteIds mov r2, r8 ldrb r0, [r2] adds r0, r1 @@ -1300,10 +1300,10 @@ sub_80EF5AC: @ 80EF5AC _080EF674: .4byte gUnknown_2023D68 _080EF678: .4byte gUnknown_82606F4 _080EF67C: .4byte gSprites -_080EF680: .4byte gUnknown_2037F1B +_080EF680: .4byte gBattleAnimTarget _080EF684: .4byte sub_80EF8C0 _080EF688: .4byte gUnknown_2024018 -_080EF68C: .4byte gUnknown_2023D44 +_080EF68C: .4byte gBattlerSpriteIds _080EF690: .4byte gTasks _080EF694: .4byte sub_80EF698 thumb_func_end sub_80EF5AC @@ -1407,7 +1407,7 @@ _080EF708: adds r6, r4, r0 movs r0, 0x22 strh r0, [r6, 0x2E] - ldr r1, _080EF7D4 @ =gUnknown_2037F1B + ldr r1, _080EF7D4 @ =gBattleAnimTarget mov r8, r1 ldrb r0, [r1] movs r1, 0 @@ -1430,7 +1430,7 @@ _080EF708: str r0, [r4] movs r0, 0 bl GetBattlerAtPosition - ldr r1, _080EF7DC @ =gUnknown_2023D44 + ldr r1, _080EF7DC @ =gBattlerSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1460,9 +1460,9 @@ _080EF7C4: .4byte gSaveBlock2Ptr _080EF7C8: .4byte gUnknown_2023D68 _080EF7CC: .4byte gUnknown_82606F4 _080EF7D0: .4byte gSprites -_080EF7D4: .4byte gUnknown_2037F1B +_080EF7D4: .4byte gBattleAnimTarget _080EF7D8: .4byte SpriteCallbackDummy -_080EF7DC: .4byte gUnknown_2023D44 +_080EF7DC: .4byte gBattlerSpriteIds _080EF7E0: .4byte sub_8012354 _080EF7E4: .4byte gTasks _080EF7E8: .4byte sub_80EF7EC @@ -1476,7 +1476,7 @@ sub_80EF7EC: @ 80EF7EC ldr r6, _080EF84C @ =gSprites movs r0, 0 bl GetBattlerAtPosition - ldr r1, _080EF850 @ =gUnknown_2023D44 + ldr r1, _080EF850 @ =gBattlerSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1518,7 +1518,7 @@ _080EF846: bx r0 .align 2, 0 _080EF84C: .4byte gSprites -_080EF850: .4byte gUnknown_2023D44 +_080EF850: .4byte gBattlerSpriteIds _080EF854: .4byte gTasks _080EF858: .4byte sub_80EF8C0 _080EF85C: .4byte sub_80EF864 @@ -1533,7 +1533,7 @@ sub_80EF864: @ 80EF864 ldr r6, _080EF8B8 @ =gSprites movs r0, 0 bl GetBattlerAtPosition - ldr r4, _080EF8BC @ =gUnknown_2023D44 + ldr r4, _080EF8BC @ =gBattlerSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -1567,7 +1567,7 @@ _080EF8B0: bx r0 .align 2, 0 _080EF8B8: .4byte gSprites -_080EF8BC: .4byte gUnknown_2023D44 +_080EF8BC: .4byte gBattlerSpriteIds thumb_func_end sub_80EF864 thumb_func_start sub_80EF8C0 @@ -1674,7 +1674,7 @@ _080EF954: movs r2, 0x1 movs r3, 0x1C bl LaunchBallStarsTask - ldr r0, _080EF9B0 @ =gUnknown_2037F1B + ldr r0, _080EF9B0 @ =gBattleAnimTarget ldrb r1, [r0] movs r0, 0 movs r2, 0xE @@ -1688,7 +1688,7 @@ _080EF99E: .align 2, 0 _080EF9A8: .4byte sub_80EF9B4 _080EF9AC: .4byte gUnknown_2023D68 -_080EF9B0: .4byte gUnknown_2037F1B +_080EF9B0: .4byte gBattleAnimTarget thumb_func_end sub_80EF8F0 thumb_func_start sub_80EF9B4 @@ -1711,8 +1711,8 @@ sub_80EF9B4: @ 80EF9B4 ldr r0, _080EF9FC @ =sub_80EFA0C str r0, [r4, 0x1C] ldr r2, _080EFA00 @ =gSprites - ldr r1, _080EFA04 @ =gUnknown_2023D44 - ldr r0, _080EFA08 @ =gUnknown_2037F1B + ldr r1, _080EFA04 @ =gBattlerSpriteIds + ldr r0, _080EFA08 @ =gBattleAnimTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -1730,16 +1730,16 @@ _080EF9F0: _080EF9F8: .4byte TaskDummy _080EF9FC: .4byte sub_80EFA0C _080EFA00: .4byte gSprites -_080EFA04: .4byte gUnknown_2023D44 -_080EFA08: .4byte gUnknown_2037F1B +_080EFA04: .4byte gBattlerSpriteIds +_080EFA08: .4byte gBattleAnimTarget thumb_func_end sub_80EF9B4 thumb_func_start sub_80EFA0C sub_80EFA0C: @ 80EFA0C push {r4-r7,lr} adds r7, r0, 0 - ldr r1, _080EFA50 @ =gUnknown_2023D44 - ldr r0, _080EFA54 @ =gUnknown_2037F1B + ldr r1, _080EFA50 @ =gBattlerSpriteIds + ldr r0, _080EFA54 @ =gBattleAnimTarget ldrb r0, [r0] adds r0, r1 ldrb r4, [r0] @@ -1771,8 +1771,8 @@ _080EFA3E: beq _080EFA62 b _080EFB20 .align 2, 0 -_080EFA50: .4byte gUnknown_2023D44 -_080EFA54: .4byte gUnknown_2037F1B +_080EFA50: .4byte gBattlerSpriteIds +_080EFA54: .4byte gBattleAnimTarget _080EFA58: .4byte gTasks _080EFA5C: cmp r0, 0x2 @@ -2495,7 +2495,7 @@ sub_80EFFC4: @ 80EFFC4 push {r7} sub sp, 0x4 adds r6, r0, 0 - ldr r7, _080F0004 @ =gUnknown_2037F1B + ldr r7, _080F0004 @ =gBattleAnimTarget ldrh r0, [r6, 0x36] adds r0, 0x1 movs r1, 0 @@ -2519,7 +2519,7 @@ sub_80EFFC4: @ 80EFFC4 bl sub_80F01B8 b _080F0088 .align 2, 0 -_080F0004: .4byte gUnknown_2037F1B +_080F0004: .4byte gBattleAnimTarget _080F0008: cmp r1, 0x3C bne _080F0026 @@ -2555,7 +2555,7 @@ _080F004C: cmp r1, r0 bne _080F0088 ldr r5, _080F0098 @ =gSprites - ldr r4, _080F009C @ =gUnknown_2023D44 + ldr r4, _080F009C @ =gBattlerSpriteIds ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] @@ -2589,7 +2589,7 @@ _080F0088: .align 2, 0 _080F0094: .4byte 0x0000013b _080F0098: .4byte gSprites -_080F009C: .4byte gUnknown_2023D44 +_080F009C: .4byte gBattlerSpriteIds _080F00A0: .4byte sub_80F00A4 thumb_func_end sub_80EFFC4 @@ -2893,7 +2893,7 @@ sub_80F02B0: @ 80F02B0 movs r2, 0x1 movs r3, 0x1C bl LaunchBallStarsTask - ldr r0, _080F036C @ =gUnknown_2037F1B + ldr r0, _080F036C @ =gBattleAnimTarget ldrb r1, [r0] movs r0, 0x1 movs r2, 0xE @@ -2901,8 +2901,8 @@ sub_80F02B0: @ 80F02B0 bl LaunchBallFadeMonTask _080F0302: ldr r6, _080F0370 @ =gSprites - ldr r5, _080F0374 @ =gUnknown_2023D44 - ldr r4, _080F036C @ =gUnknown_2037F1B + ldr r5, _080F0374 @ =gBattlerSpriteIds + ldr r4, _080F036C @ =gBattleAnimTarget ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -2950,9 +2950,9 @@ _080F0302: .align 2, 0 _080F0364: .4byte sub_80F0378 _080F0368: .4byte gUnknown_2023D68 -_080F036C: .4byte gUnknown_2037F1B +_080F036C: .4byte gBattleAnimTarget _080F0370: .4byte gSprites -_080F0374: .4byte gUnknown_2023D44 +_080F0374: .4byte gBattlerSpriteIds thumb_func_end sub_80F02B0 thumb_func_start sub_80F0378 @@ -2974,8 +2974,8 @@ sub_80F0378: @ 80F0378 strb r0, [r2] _080F0396: ldr r4, _080F03C4 @ =gSprites - ldr r3, _080F03C8 @ =gUnknown_2023D44 - ldr r2, _080F03CC @ =gUnknown_2037F1B + ldr r3, _080F03C8 @ =gBattlerSpriteIds + ldr r2, _080F03CC @ =gBattleAnimTarget ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -2996,8 +2996,8 @@ _080F0396: b _080F03F0 .align 2, 0 _080F03C4: .4byte gSprites -_080F03C8: .4byte gUnknown_2023D44 -_080F03CC: .4byte gUnknown_2037F1B +_080F03C8: .4byte gBattlerSpriteIds +_080F03CC: .4byte gBattleAnimTarget _080F03D0: ldr r6, _080F045C @ =0xfffffee0 adds r0, r6, 0 @@ -3026,8 +3026,8 @@ _080F03F0: cmp r5, 0 beq _080F0456 ldr r4, _080F0460 @ =gSprites - ldr r3, _080F0464 @ =gUnknown_2023D44 - ldr r2, _080F0468 @ =gUnknown_2037F1B + ldr r3, _080F0464 @ =gBattlerSpriteIds + ldr r2, _080F0468 @ =gBattleAnimTarget ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -3073,8 +3073,8 @@ _080F0456: .align 2, 0 _080F045C: .4byte 0xfffffee0 _080F0460: .4byte gSprites -_080F0464: .4byte gUnknown_2023D44 -_080F0468: .4byte gUnknown_2037F1B +_080F0464: .4byte gBattlerSpriteIds +_080F0468: .4byte gBattleAnimTarget _080F046C: .4byte gUnknown_2024018 _080F0470: .4byte sub_80F018C _080F0474: .4byte gUnknown_2024005 @@ -5082,8 +5082,8 @@ sub_80F1420: @ 80F1420 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 - ldr r0, _080F1454 @ =gUnknown_2023D44 - ldr r3, _080F1458 @ =gUnknown_2037F1A + ldr r0, _080F1454 @ =gBattlerSpriteIds + ldr r3, _080F1458 @ =gBattleAnimAttacker ldrb r2, [r3] adds r0, r2, r0 ldrb r6, [r0] @@ -5102,15 +5102,15 @@ sub_80F1420: @ 80F1420 beq _080F1466 b _080F15BA .align 2, 0 -_080F1454: .4byte gUnknown_2023D44 -_080F1458: .4byte gUnknown_2037F1A +_080F1454: .4byte gBattlerSpriteIds +_080F1458: .4byte gBattleAnimAttacker _080F145C: .4byte gTasks _080F1460: cmp r0, 0x2 beq _080F150A b _080F15BA _080F1466: - ldr r0, _080F14A0 @ =gUnknown_2037F02 + ldr r0, _080F14A0 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r5, 0x1E] movs r2, 0xA0 @@ -5138,7 +5138,7 @@ _080F1466: adds r4, r3, 0 b _080F14C0 .align 2, 0 -_080F14A0: .4byte gUnknown_2037F02 +_080F14A0: .4byte gBattleAnimArgs _080F14A4: .4byte gSprites _080F14A8: ldr r3, _080F14F0 @ =gSprites @@ -5238,7 +5238,7 @@ _080F1558: adds r0, r1 ldrb r1, [r0, 0x8] strh r1, [r0, 0x8] - ldr r0, _080F1594 @ =gUnknown_2037F1A + ldr r0, _080F1594 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -5259,7 +5259,7 @@ _080F1558: .align 2, 0 _080F158C: .4byte gSprites _080F1590: .4byte gTasks -_080F1594: .4byte gUnknown_2037F1A +_080F1594: .4byte gBattleAnimAttacker _080F1598: ldr r0, _080F15C4 @ =gSprites adds r1, r4, r6 @@ -5315,7 +5315,7 @@ _080F15F0: beq _080F167E b _080F16B4 _080F15F6: - ldr r0, _080F1610 @ =gUnknown_2037F1A + ldr r0, _080F1610 @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_80768B0 lsls r0, 24 @@ -5327,7 +5327,7 @@ _080F15F6: bl SetGpuReg b _080F1620 .align 2, 0 -_080F1610: .4byte gUnknown_2037F1A +_080F1610: .4byte gBattleAnimAttacker _080F1614: .4byte 0x00003f42 _080F1618: ldr r1, _080F163C @ =0x00003f44 @@ -5379,8 +5379,8 @@ _080F1644: strh r0, [r4, 0x26] b _080F16B4 _080F167E: - ldr r1, _080F16BC @ =gUnknown_2023D44 - ldr r4, _080F16C0 @ =gUnknown_2037F1A + ldr r1, _080F16BC @ =gBattlerSpriteIds + ldr r4, _080F16C0 @ =gBattleAnimAttacker ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] @@ -5408,8 +5408,8 @@ _080F16B4: pop {r0} bx r0 .align 2, 0 -_080F16BC: .4byte gUnknown_2023D44 -_080F16C0: .4byte gUnknown_2037F1A +_080F16BC: .4byte gBattlerSpriteIds +_080F16C0: .4byte gBattleAnimAttacker _080F16C4: .4byte gSprites _080F16C8: .4byte 0x06010000 thumb_func_end sub_80F15C8 @@ -5419,10 +5419,10 @@ sub_80F16CC: @ 80F16CC push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, _080F16F4 @ =gUnknown_2037F02 + ldr r3, _080F16F4 @ =gBattleAnimArgs ldr r1, _080F16F8 @ =gUnknown_2024018 ldr r2, [r1] - ldr r1, _080F16FC @ =gUnknown_2037F1A + ldr r1, _080F16FC @ =gBattleAnimAttacker ldrb r1, [r1] ldr r2, [r2] lsls r1, 2 @@ -5435,9 +5435,9 @@ sub_80F16CC: @ 80F16CC pop {r0} bx r0 .align 2, 0 -_080F16F4: .4byte gUnknown_2037F02 +_080F16F4: .4byte gBattleAnimArgs _080F16F8: .4byte gUnknown_2024018 -_080F16FC: .4byte gUnknown_2037F1A +_080F16FC: .4byte gBattleAnimAttacker thumb_func_end sub_80F16CC thumb_func_start sub_80F1700 @@ -5445,7 +5445,7 @@ sub_80F1700: @ 80F1700 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _080F1718 @ =gUnknown_2037F1B + ldr r2, _080F1718 @ =gBattleAnimTarget ldr r1, _080F171C @ =gUnknown_2023D6E ldrb r1, [r1] strb r1, [r2] @@ -5453,7 +5453,7 @@ sub_80F1700: @ 80F1700 pop {r0} bx r0 .align 2, 0 -_080F1718: .4byte gUnknown_2037F1B +_080F1718: .4byte gBattleAnimTarget _080F171C: .4byte gUnknown_2023D6E thumb_func_end sub_80F1700 @@ -5992,7 +5992,7 @@ sub_80F1B3C: @ 80F1B3C movs r1, 0 bl sub_8074480 lsls r0, 24 - ldr r5, _080F1BB0 @ =gUnknown_2037F02 + ldr r5, _080F1BB0 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r5, 0x4] adds r0, r1 @@ -6013,8 +6013,8 @@ sub_80F1B3C: @ 80F1B3C adds r0, r4, 0 bl sub_8075068 ldr r2, _080F1BB8 @ =gSprites - ldr r1, _080F1BBC @ =gUnknown_2023D44 - ldr r0, _080F1BC0 @ =gUnknown_2037F1A + ldr r1, _080F1BBC @ =gBattlerSpriteIds + ldr r0, _080F1BC0 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -6031,11 +6031,11 @@ sub_80F1B3C: @ 80F1B3C pop {r0} bx r0 .align 2, 0 -_080F1BB0: .4byte gUnknown_2037F02 +_080F1BB0: .4byte gBattleAnimArgs _080F1BB4: .4byte 0x0000ffe0 _080F1BB8: .4byte gSprites -_080F1BBC: .4byte gUnknown_2023D44 -_080F1BC0: .4byte gUnknown_2037F1A +_080F1BBC: .4byte gBattlerSpriteIds +_080F1BC0: .4byte gBattleAnimAttacker _080F1BC4: .4byte sub_8012354 _080F1BC8: .4byte sub_80F1BCC thumb_func_end sub_80F1B3C @@ -6045,8 +6045,8 @@ sub_80F1BCC: @ 80F1BCC push {lr} adds r3, r0, 0 ldr r2, _080F1BF4 @ =gSprites - ldr r1, _080F1BF8 @ =gUnknown_2023D44 - ldr r0, _080F1BFC @ =gUnknown_2037F1A + ldr r1, _080F1BF8 @ =gBattlerSpriteIds + ldr r0, _080F1BFC @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -6065,8 +6065,8 @@ _080F1BF0: bx r0 .align 2, 0 _080F1BF4: .4byte gSprites -_080F1BF8: .4byte gUnknown_2023D44 -_080F1BFC: .4byte gUnknown_2037F1A +_080F1BF8: .4byte gBattlerSpriteIds +_080F1BFC: .4byte gBattleAnimAttacker _080F1C00: .4byte sub_80F1C04 thumb_func_end sub_80F1BCC @@ -6101,8 +6101,8 @@ sub_80F1C30: @ 80F1C30 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080F1C80 @ =gSprites - ldr r3, _080F1C84 @ =gUnknown_2023D44 - ldr r2, _080F1C88 @ =gUnknown_2037F1A + ldr r3, _080F1C84 @ =gBattlerSpriteIds + ldr r2, _080F1C88 @ =gBattleAnimAttacker ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -6138,8 +6138,8 @@ _080F1C78: bx r0 .align 2, 0 _080F1C80: .4byte gSprites -_080F1C84: .4byte gUnknown_2023D44 -_080F1C88: .4byte gUnknown_2037F1A +_080F1C84: .4byte gBattlerSpriteIds +_080F1C88: .4byte gBattleAnimAttacker thumb_func_end sub_80F1C30 thumb_func_start sub_80F1C8C @@ -6147,7 +6147,7 @@ sub_80F1C8C: @ 80F1C8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080F1CA4 @ =gUnknown_2037F02 + ldr r0, _080F1CA4 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -6156,25 +6156,25 @@ sub_80F1C8C: @ 80F1C8C beq _080F1CBC b _080F1CD0 .align 2, 0 -_080F1CA4: .4byte gUnknown_2037F02 +_080F1CA4: .4byte gBattleAnimArgs _080F1CA8: movs r0, 0 bl GetBattlerAtPosition - ldr r1, _080F1CB8 @ =gUnknown_2037F1A + ldr r1, _080F1CB8 @ =gBattleAnimAttacker strb r0, [r1] movs r0, 0x1 b _080F1CC8 .align 2, 0 -_080F1CB8: .4byte gUnknown_2037F1A +_080F1CB8: .4byte gBattleAnimAttacker _080F1CBC: movs r0, 0x1 bl GetBattlerAtPosition - ldr r1, _080F1CDC @ =gUnknown_2037F1A + ldr r1, _080F1CDC @ =gBattleAnimAttacker strb r0, [r1] movs r0, 0 _080F1CC8: bl GetBattlerAtPosition - ldr r1, _080F1CE0 @ =gUnknown_2037F1B + ldr r1, _080F1CE0 @ =gBattleAnimTarget strb r0, [r1] _080F1CD0: adds r0, r4, 0 @@ -6183,8 +6183,8 @@ _080F1CD0: pop {r0} bx r0 .align 2, 0 -_080F1CDC: .4byte gUnknown_2037F1A -_080F1CE0: .4byte gUnknown_2037F1B +_080F1CDC: .4byte gBattleAnimAttacker +_080F1CE0: .4byte gBattleAnimTarget thumb_func_end sub_80F1C8C thumb_func_start sub_80F1CE4 @@ -6196,14 +6196,14 @@ sub_80F1CE4: @ 80F1CE4 ldrb r0, [r2, 0x5] cmp r0, 0x2 bls _080F1D00 - ldr r1, _080F1CFC @ =gUnknown_2037F02 + ldr r1, _080F1CFC @ =gBattleAnimArgs movs r0, 0 b _080F1D04 .align 2, 0 _080F1CF8: .4byte gUnknown_2023E82 -_080F1CFC: .4byte gUnknown_2037F02 +_080F1CFC: .4byte gBattleAnimArgs _080F1D00: - ldr r1, _080F1D10 @ =gUnknown_2037F02 + ldr r1, _080F1D10 @ =gBattleAnimArgs ldrb r0, [r2, 0x5] _080F1D04: strh r0, [r1, 0xE] @@ -6212,7 +6212,7 @@ _080F1D04: pop {r0} bx r0 .align 2, 0 -_080F1D10: .4byte gUnknown_2037F02 +_080F1D10: .4byte gBattleAnimArgs thumb_func_end sub_80F1CE4 thumb_func_start sub_80F1D14 @@ -6226,40 +6226,40 @@ sub_80F1D14: @ 80F1D14 ldrh r1, [r0] cmp r1, 0x53 bne _080F1D34 - ldr r1, _080F1D30 @ =gUnknown_2037F02 + ldr r1, _080F1D30 @ =gBattleAnimArgs movs r0, 0x1 b _080F1D6C .align 2, 0 _080F1D2C: .4byte gUnknown_2024018 -_080F1D30: .4byte gUnknown_2037F02 +_080F1D30: .4byte gBattleAnimArgs _080F1D34: cmp r1, 0xFA bne _080F1D44 - ldr r1, _080F1D40 @ =gUnknown_2037F02 + ldr r1, _080F1D40 @ =gBattleAnimArgs movs r0, 0x2 b _080F1D6C .align 2, 0 -_080F1D40: .4byte gUnknown_2037F02 +_080F1D40: .4byte gBattleAnimArgs _080F1D44: cmp r1, 0x80 bne _080F1D54 - ldr r1, _080F1D50 @ =gUnknown_2037F02 + ldr r1, _080F1D50 @ =gBattleAnimArgs movs r0, 0x3 b _080F1D6C .align 2, 0 -_080F1D50: .4byte gUnknown_2037F02 +_080F1D50: .4byte gBattleAnimArgs _080F1D54: movs r0, 0xA4 lsls r0, 1 cmp r1, r0 bne _080F1D68 - ldr r1, _080F1D64 @ =gUnknown_2037F02 + ldr r1, _080F1D64 @ =gBattleAnimArgs movs r0, 0x4 b _080F1D6C .align 2, 0 -_080F1D64: .4byte gUnknown_2037F02 +_080F1D64: .4byte gBattleAnimArgs _080F1D68: - ldr r1, _080F1D78 @ =gUnknown_2037F02 + ldr r1, _080F1D78 @ =gBattleAnimArgs movs r0, 0 _080F1D6C: strh r0, [r1] @@ -6268,7 +6268,7 @@ _080F1D6C: pop {r0} bx r0 .align 2, 0 -_080F1D78: .4byte gUnknown_2037F02 +_080F1D78: .4byte gBattleAnimArgs thumb_func_end sub_80F1D14 thumb_func_start sub_80F1D7C @@ -6276,13 +6276,13 @@ sub_80F1D7C: @ 80F1D7C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, _080F1DA0 @ =gUnknown_2037F1A + ldr r3, _080F1DA0 @ =gBattleAnimAttacker ldr r1, _080F1DA4 @ =gUnknown_2024018 ldr r2, [r1] ldr r1, [r2, 0x8] ldrh r1, [r1] strb r1, [r3] - ldr r3, _080F1DA8 @ =gUnknown_2037F1B + ldr r3, _080F1DA8 @ =gBattleAnimTarget ldr r1, [r2, 0x8] ldrh r1, [r1] lsrs r1, 8 @@ -6291,9 +6291,9 @@ sub_80F1D7C: @ 80F1D7C pop {r0} bx r0 .align 2, 0 -_080F1DA0: .4byte gUnknown_2037F1A +_080F1DA0: .4byte gBattleAnimAttacker _080F1DA4: .4byte gUnknown_2024018 -_080F1DA8: .4byte gUnknown_2037F1B +_080F1DA8: .4byte gBattleAnimTarget thumb_func_end sub_80F1D7C .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_8078178.s b/asm/battle_anim_status_effects.s index 1080351b3..5530fd869 100644 --- a/asm/battle_anim_8078178.s +++ b/asm/battle_anim_status_effects.s @@ -16,7 +16,7 @@ sub_8078178: @ 8078178 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 - ldr r0, _0807821C @ =gUnknown_2023D44 + ldr r0, _0807821C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r6, [r0] ldr r0, _08078220 @ =sub_80782BC @@ -88,7 +88,7 @@ _08078210: bls _080781CC b _08078298 .align 2, 0 -_0807821C: .4byte gUnknown_2023D44 +_0807821C: .4byte gBattlerSpriteIds _08078220: .4byte sub_80782BC _08078224: .4byte gUnknown_83AD048 _08078228: .4byte gUnknown_83AD950 @@ -341,7 +341,7 @@ sub_80783FC: @ 80783FC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r4, _080784AC @ =gUnknown_2037F1B + ldr r4, _080784AC @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -420,7 +420,7 @@ _08078484: pop {r0} bx r0 .align 2, 0 -_080784AC: .4byte gUnknown_2037F1B +_080784AC: .4byte gBattleAnimTarget _080784B0: .4byte 0xffe00000 _080784B4: .4byte 0xffdc0000 _080784B8: .4byte 0xfffa0000 @@ -867,7 +867,7 @@ _08078830: bl DestroyAnimVisualTask b _0807885A _08078838: - ldr r0, _08078860 @ =gUnknown_2037F02 + ldr r0, _08078860 @ =gBattleAnimArgs movs r1, 0 strh r5, [r0] strh r2, [r0, 0x2] @@ -888,7 +888,7 @@ _0807885A: pop {r0} bx r0 .align 2, 0 -_08078860: .4byte gUnknown_2037F02 +_08078860: .4byte gBattleAnimArgs _08078864: .4byte gTasks _08078868: .4byte sub_80BB088 thumb_func_end sub_8078694 @@ -901,9 +901,9 @@ LaunchStatusAnimation: @ 807886C lsrs r4, 24 lsls r1, 24 lsrs r1, 24 - ldr r0, _080788A8 @ =gUnknown_2037F1A + ldr r0, _080788A8 @ =gBattleAnimAttacker strb r4, [r0] - ldr r0, _080788AC @ =gUnknown_2037F1B + ldr r0, _080788AC @ =gBattleAnimTarget strb r4, [r0] ldr r0, _080788B0 @ =gUnknown_81C6E84 movs r2, 0 @@ -923,8 +923,8 @@ LaunchStatusAnimation: @ 807886C pop {r0} bx r0 .align 2, 0 -_080788A8: .4byte gUnknown_2037F1A -_080788AC: .4byte gUnknown_2037F1B +_080788A8: .4byte gBattleAnimAttacker +_080788AC: .4byte gBattleAnimTarget _080788B0: .4byte gUnknown_81C6E84 _080788B4: .4byte task0A_80788BC _080788B8: .4byte gTasks diff --git a/asm/battle_anim_utility_funcs.s b/asm/battle_anim_utility_funcs.s new file mode 100644 index 000000000..d33f51842 --- /dev/null +++ b/asm/battle_anim_utility_funcs.s @@ -0,0 +1,5133 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80BA7F8 +sub_80BA7F8: @ 80BA7F8 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _080BA838 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r4, r1] + bl sub_80B9A14 + adds r6, r0, 0 + ldrh r3, [r4] + lsls r3, 16 + asrs r0, r3, 23 + movs r4, 0x1 + ands r0, r4 + asrs r1, r3, 24 + ands r1, r4 + asrs r2, r3, 25 + ands r2, r4 + asrs r3, 26 + ands r3, r4 + bl sub_8075CB8 + orrs r6, r0 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80BAA4C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BA838: .4byte gBattleAnimArgs + thumb_func_end sub_80BA7F8 + + thumb_func_start sub_80BA83C +sub_80BA83C: @ 80BA83C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x1] + movs r0, 0x1 + bl sub_80B9A14 + adds r5, r0, 0 + ldr r0, _080BA868 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x7 + bhi _080BA8E6 + lsls r0, 2 + ldr r1, _080BA86C @ =_080BA870 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BA868: .4byte gBattleAnimArgs +_080BA86C: .4byte _080BA870 + .align 2, 0 +_080BA870: + .4byte _080BA892 + .4byte _080BA89E + .4byte _080BA890 + .4byte _080BA89C + .4byte _080BA8AC + .4byte _080BA8C4 + .4byte _080BA8CC + .4byte _080BA8D8 +_080BA890: + movs r5, 0 +_080BA892: + mov r0, sp + ldr r1, _080BA898 @ =gBattleAnimAttacker + b _080BA8A2 + .align 2, 0 +_080BA898: .4byte gBattleAnimAttacker +_080BA89C: + movs r5, 0 +_080BA89E: + mov r0, sp + ldr r1, _080BA8A8 @ =gBattleAnimTarget +_080BA8A2: + ldrb r1, [r1] + strb r1, [r0] + b _080BA8E6 + .align 2, 0 +_080BA8A8: .4byte gBattleAnimTarget +_080BA8AC: + mov r1, sp + ldr r0, _080BA8BC @ =gBattleAnimAttacker + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _080BA8C0 @ =gBattleAnimTarget + ldrb r0, [r0] + strb r0, [r1, 0x1] + b _080BA8E6 + .align 2, 0 +_080BA8BC: .4byte gBattleAnimAttacker +_080BA8C0: .4byte gBattleAnimTarget +_080BA8C4: + mov r1, sp + movs r0, 0xFF + strb r0, [r1] + b _080BA8E6 +_080BA8CC: + movs r5, 0 + mov r2, sp + ldr r0, _080BA8D4 @ =gBattleAnimAttacker + b _080BA8DE + .align 2, 0 +_080BA8D4: .4byte gBattleAnimAttacker +_080BA8D8: + movs r5, 0 + mov r2, sp + ldr r0, _080BA930 @ =gBattleAnimTarget +_080BA8DE: + ldrb r0, [r0] + movs r1, 0x2 + eors r0, r1 + strb r0, [r2] +_080BA8E6: + movs r4, 0 + mov r6, sp +_080BA8EA: + ldrb r0, [r6] + cmp r4, r0 + beq _080BA914 + ldrb r0, [r6, 0x1] + cmp r4, r0 + beq _080BA914 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080BA914 + adds r0, r4, 0 + bl sub_8075D80 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + orrs r5, r1 +_080BA914: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080BA8EA + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_80BAA4C + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA930: .4byte gBattleAnimTarget + thumb_func_end sub_80BA83C + + thumb_func_start sub_80BA934 +sub_80BA934: @ 80BA934 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BA958 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + bl sub_80B9A14 + adds r2, r0, 0 + ldr r0, _080BA95C @ =gUnknown_2022B50 + ldrb r0, [r0] + cmp r0, 0x9 + bhi _080BAA0A + lsls r0, 2 + ldr r1, _080BA960 @ =_080BA964 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BA958: .4byte gBattleAnimArgs +_080BA95C: .4byte gUnknown_2022B50 +_080BA960: .4byte _080BA964 + .align 2, 0 +_080BA964: + .4byte _080BA98C + .4byte _080BA99C + .4byte _080BA9A8 + .4byte _080BA9B8 + .4byte _080BA9C4 + .4byte _080BA9D4 + .4byte _080BA9E4 + .4byte _080BA9F4 + .4byte _080BAA04 + .4byte _080BAA04 +_080BA98C: + ldr r1, _080BA994 @ =gBattleAnimArgs + ldr r0, _080BA998 @ =0x00000b0c + b _080BAA08 + .align 2, 0 +_080BA994: .4byte gBattleAnimArgs +_080BA998: .4byte 0x00000b0c +_080BA99C: + ldr r1, _080BA9A4 @ =gBattleAnimArgs + movs r0, 0x9E + lsls r0, 4 + b _080BAA08 + .align 2, 0 +_080BA9A4: .4byte gBattleAnimArgs +_080BA9A8: + ldr r1, _080BA9B0 @ =gBattleAnimArgs + ldr r0, _080BA9B4 @ =0x00002f1e + b _080BAA08 + .align 2, 0 +_080BA9B0: .4byte gBattleAnimArgs +_080BA9B4: .4byte 0x00002f1e +_080BA9B8: + ldr r1, _080BA9C0 @ =gBattleAnimArgs + movs r0, 0x90 + lsls r0, 7 + b _080BAA08 + .align 2, 0 +_080BA9C0: .4byte gBattleAnimArgs +_080BA9C4: + ldr r1, _080BA9CC @ =gBattleAnimArgs + ldr r0, _080BA9D0 @ =0x00007ecb + b _080BAA08 + .align 2, 0 +_080BA9CC: .4byte gBattleAnimArgs +_080BA9D0: .4byte 0x00007ecb +_080BA9D4: + ldr r1, _080BA9DC @ =gBattleAnimArgs + ldr r0, _080BA9E0 @ =0x00007ecb + b _080BAA08 + .align 2, 0 +_080BA9DC: .4byte gBattleAnimArgs +_080BA9E0: .4byte 0x00007ecb +_080BA9E4: + ldr r1, _080BA9EC @ =gBattleAnimArgs + ldr r0, _080BA9F0 @ =0x00002a16 + b _080BAA08 + .align 2, 0 +_080BA9EC: .4byte gBattleAnimArgs +_080BA9F0: .4byte 0x00002a16 +_080BA9F4: + ldr r1, _080BA9FC @ =gBattleAnimArgs + ldr r0, _080BAA00 @ =0x00000d2e + b _080BAA08 + .align 2, 0 +_080BA9FC: .4byte gBattleAnimArgs +_080BAA00: .4byte 0x00000d2e +_080BAA04: + ldr r1, _080BAA18 @ =gBattleAnimArgs + ldr r0, _080BAA1C @ =0x00007fff +_080BAA08: + strh r0, [r1, 0x8] +_080BAA0A: + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80BAA4C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BAA18: .4byte gBattleAnimArgs +_080BAA1C: .4byte 0x00007fff + thumb_func_end sub_80BA934 + + thumb_func_start sub_80BAA20 +sub_80BAA20: @ 80BAA20 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080BAA48 @ =gBattleAnimArgs + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + adds r0, r4, 0 + bl sub_80BAA4C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BAA48: .4byte gBattleAnimArgs + thumb_func_end sub_80BAA20 + + thumb_func_start sub_80BAA4C +sub_80BAA4C: @ 80BAA4C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080BAA84 @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + strh r1, [r2, 0x8] + lsrs r1, 16 + strh r1, [r2, 0xA] + ldr r3, _080BAA88 @ =gBattleAnimArgs + ldrh r1, [r3, 0x2] + strh r1, [r2, 0xC] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0xE] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0x10] + ldrh r1, [r3, 0x8] + strh r1, [r2, 0x12] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0x1C] + ldr r1, _080BAA8C @ =sub_80BAA90 + str r1, [r2] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080BAA84: .4byte gTasks +_080BAA88: .4byte gBattleAnimArgs +_080BAA8C: .4byte sub_80BAA90 + thumb_func_end sub_80BAA4C + + thumb_func_start sub_80BAA90 +sub_80BAA90: @ 80BAA90 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + ldr r2, _080BAB10 @ =gTasks + lsls r5, r7, 2 + adds r0, r5, r7 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1A] + mov r8, r0 + movs r4, 0x1A + ldrsh r1, [r3, r4] + movs r4, 0xC + ldrsh r0, [r3, r4] + mov r9, r2 + cmp r1, r0 + bne _080BAB26 + strh r6, [r3, 0x1A] + movs r0, 0x8 + ldrsh r4, [r3, r0] + movs r1, 0xA + ldrsh r0, [r3, r1] + lsls r0, 16 + orrs r4, r0 + mov r8, r5 + cmp r4, 0 + beq _080BAAF2 + adds r5, r3, 0 +_080BAAD0: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080BAAE4 + ldrb r2, [r5, 0x1C] + ldrh r3, [r5, 0x12] + adds r0, r6, 0 + movs r1, 0x10 + bl BlendPalette +_080BAAE4: + adds r0, r6, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + lsrs r4, 1 + cmp r4, 0 + bne _080BAAD0 +_080BAAF2: + mov r4, r8 + adds r0, r4, r7 + lsls r0, 3 + mov r1, r9 + adds r2, r0, r1 + ldrh r0, [r2, 0x1C] + movs r4, 0x1C + ldrsh r3, [r2, r4] + movs r4, 0x10 + ldrsh r1, [r2, r4] + cmp r3, r1 + bge _080BAB14 + adds r0, 0x1 + strh r0, [r2, 0x1C] + b _080BAB2C + .align 2, 0 +_080BAB10: .4byte gTasks +_080BAB14: + cmp r3, r1 + ble _080BAB1E + subs r0, 0x1 + strh r0, [r2, 0x1C] + b _080BAB2C +_080BAB1E: + adds r0, r7, 0 + bl DestroyAnimVisualTask + b _080BAB2C +_080BAB26: + mov r0, r8 + adds r0, 0x1 + strh r0, [r3, 0x1A] +_080BAB2C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BAA90 + + thumb_func_start sub_80BAB38 +sub_80BAB38: @ 80BAB38 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _080BAB6C @ =gBattleAnimArgs + ldrb r0, [r4] + ldrb r1, [r4, 0x2] + ldrb r2, [r4, 0x4] + ldrb r3, [r4, 0x6] + ldrb r4, [r4, 0x8] + str r4, [sp] + bl BeginHardwarePaletteFade + ldr r1, _080BAB70 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BAB74 @ =sub_80BAB78 + str r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BAB6C: .4byte gBattleAnimArgs +_080BAB70: .4byte gTasks +_080BAB74: .4byte sub_80BAB78 + thumb_func_end sub_80BAB38 + + thumb_func_start sub_80BAB78 +sub_80BAB78: @ 80BAB78 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080BAB94 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BAB90 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080BAB90: + pop {r0} + bx r0 + .align 2, 0 +_080BAB94: .4byte gPaletteFade + thumb_func_end sub_80BAB78 + + thumb_func_start sub_80BAB98 +sub_80BAB98: @ 80BAB98 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080BABC4 @ =gTasks + adds r1, r0 + ldr r2, _080BABC8 @ =gBattleAnimArgs + ldrh r0, [r2] + movs r3, 0 + strh r0, [r1, 0x8] + strh r3, [r1, 0xA] + ldrh r0, [r2, 0x2] + strh r0, [r1, 0xC] + ldrh r0, [r2, 0x4] + strh r0, [r1, 0xE] + ldrh r0, [r2, 0x6] + strh r0, [r1, 0x10] + strh r3, [r1, 0x12] + ldr r0, _080BABCC @ =sub_80BABD0 + str r0, [r1] + bx lr + .align 2, 0 +_080BABC4: .4byte gTasks +_080BABC8: .4byte gBattleAnimArgs +_080BABCC: .4byte sub_80BABD0 + thumb_func_end sub_80BAB98 + + thumb_func_start sub_80BABD0 +sub_80BABD0: @ 80BABD0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080BABFC @ =gTasks + adds r4, r0, r1 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080BAC94 + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080BAC00 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + b _080BACA2 + .align 2, 0 +_080BABFC: .4byte gTasks +_080BAC00: + ldrb r0, [r4, 0x8] + bl duplicate_obj_of_side_rel2move_in_transparent_mode + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + blt _080BAC7E + ldr r6, _080BAC8C @ =gSprites + movs r1, 0x14 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r3, r1, r6 + movs r2, 0x8 + ldrsh r0, [r4, r2] + movs r2, 0x2 + cmp r0, 0 + beq _080BAC28 + movs r2, 0x1 +_080BAC28: + lsls r2, 2 + ldrb r1, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x5] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0xE] + strh r1, [r0, 0x2E] + movs r2, 0x14 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r5, [r0, 0x30] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + strh r1, [r0, 0x32] + movs r2, 0x14 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080BAC90 @ =sub_80BACA8 + str r1, [r0] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] +_080BAC7E: + ldrh r0, [r4, 0x10] + subs r0, 0x1 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xC] + strh r0, [r4, 0xA] + b _080BACA2 + .align 2, 0 +_080BAC8C: .4byte gSprites +_080BAC90: .4byte sub_80BACA8 +_080BAC94: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BACA2 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080BACA2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BABD0 + + thumb_func_start sub_80BACA8 +sub_80BACA8: @ 80BACA8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080BACBC + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080BACE0 +_080BACBC: + ldr r3, _080BACE8 @ =gTasks + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl obj_delete_but_dont_free_vram +_080BACE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BACE8: .4byte gTasks + thumb_func_end sub_80BACA8 + + thumb_func_start sub_80BACEC +sub_80BACEC: @ 80BACEC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r7, 0 + ldr r0, _080BAE20 @ =gUnknown_2022984 + strh r7, [r0] + ldr r0, _080BAE24 @ =gUnknown_2022986 + strh r7, [r0] + ldr r1, _080BAE28 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080BAE2C @ =0x00003f3d + movs r0, 0x4A + bl SetGpuReg + movs r1, 0x80 + lsls r1, 8 + movs r0, 0 + bl SetGpuRegBits + ldr r1, _080BAE30 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + ldr r1, _080BAE34 @ =0x00000c08 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0xA + bl GetGpuReg + add r4, sp, 0x10 + strh r0, [r4] + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + mov r8, r0 + ands r0, r1 + strb r0, [r4] + mov r2, sp + adds r2, 0x11 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2] + ldrh r1, [r4] + movs r0, 0xA + bl SetGpuReg + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BAD7A + ldrb r1, [r4] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + ldrh r1, [r4] + movs r0, 0xA + bl SetGpuReg +_080BAD7A: + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080BADFE + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BADFE + ldr r5, _080BAE38 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080BADAA + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + cmp r0, 0 + bne _080BADFE +_080BADAA: + ldrb r0, [r5] + movs r6, 0x2 + eors r0, r6 + bl sub_8072DF0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BADFE + ldr r3, _080BAE3C @ =gSprites + ldr r1, _080BAE40 @ =gBattlerSpriteIds + ldrb r0, [r5] + eors r0, r6 + adds r0, r1 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + ldrb r1, [r4] + mov r0, r8 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + ldrh r1, [r4] + movs r0, 0xA + bl SetGpuReg + movs r7, 0x1 +_080BADFE: + ldr r4, _080BAE38 @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080BAE4C + ldr r1, _080BAE44 @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BAE48 @ =gEnemyParty + b _080BAE5C + .align 2, 0 +_080BAE20: .4byte gUnknown_2022984 +_080BAE24: .4byte gUnknown_2022986 +_080BAE28: .4byte 0x00003f3f +_080BAE2C: .4byte 0x00003f3d +_080BAE30: .4byte 0x00003f42 +_080BAE34: .4byte 0x00000c08 +_080BAE38: .4byte gBattleAnimAttacker +_080BAE3C: .4byte gSprites +_080BAE40: .4byte gBattlerSpriteIds +_080BAE44: .4byte gBattlerPartyIndexes +_080BAE48: .4byte gEnemyParty +_080BAE4C: + ldr r1, _080BAF0C @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BAF10 @ =gPlayerParty +_080BAE5C: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r0, _080BAF14 @ =gBattleAnimAttacker + ldrb r0, [r0] + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8076E34 + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080BAF18 @ =gFile_graphics_battle_anims_masks_curse_tilemap + bl sub_807543C + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080BAEAC + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080BAEAC: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080BAF1C @ =gFile_graphics_battle_anims_masks_curse_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080BAF20 @ =gUnknown_83E7CC8 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + adds r1, 0x1 + movs r2, 0x2 + bl LoadPalette + ldr r2, _080BAF24 @ =gBattle_BG1_X + ldr r0, _080BAF28 @ =gSprites + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x20] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldr r2, _080BAF2C @ =gBattle_BG1_Y + ldrh r0, [r1, 0x22] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldr r1, _080BAF30 @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x8] + strh r7, [r0, 0x14] + ldr r1, _080BAF34 @ =sub_80BAF38 + str r1, [r0] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BAF0C: .4byte gBattlerPartyIndexes +_080BAF10: .4byte gPlayerParty +_080BAF14: .4byte gBattleAnimAttacker +_080BAF18: .4byte gFile_graphics_battle_anims_masks_curse_tilemap +_080BAF1C: .4byte gFile_graphics_battle_anims_masks_curse_sheet +_080BAF20: .4byte gUnknown_83E7CC8 +_080BAF24: .4byte gBattle_BG1_X +_080BAF28: .4byte gSprites +_080BAF2C: .4byte gBattle_BG1_Y +_080BAF30: .4byte gTasks +_080BAF34: .4byte sub_80BAF38 + thumb_func_end sub_80BACEC + + thumb_func_start sub_80BAF38 +sub_80BAF38: @ 80BAF38 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080BB068 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x1C] + adds r0, 0x4 + movs r1, 0 + mov r8, r1 + strh r0, [r5, 0x1C] + ldr r7, _080BB06C @ =gBattle_BG1_Y + ldrh r2, [r7] + subs r1, r2, 0x4 + strh r1, [r7] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _080BB05A + mov r0, r8 + strh r0, [r5, 0x1C] + adds r0, r2, 0 + adds r0, 0x3C + strh r0, [r7] + ldrh r0, [r5, 0x1E] + adds r0, 0x1 + strh r0, [r5, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080BB05A + movs r0, 0 + bl sub_8073128 + ldr r0, _080BB070 @ =gUnknown_2022984 + mov r1, r8 + strh r1, [r0] + ldr r0, _080BB074 @ =gUnknown_2022986 + strh r1, [r0] + ldr r4, _080BB078 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BAFCA + movs r0, 0xA + bl GetGpuReg + add r1, sp, 0x10 + strh r0, [r1] + ldrb r2, [r1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrh r1, [r1] + movs r0, 0xA + bl SetGpuReg +_080BAFCA: + movs r0, 0 + bl GetGpuReg + adds r1, r0, 0 + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + eors r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0 + bl GetAnimBankSpriteId + ldr r4, _080BB07C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + bl sub_8075358 + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080BB050 + ldr r2, _080BB080 @ =gBattlerSpriteIds + ldr r0, _080BB084 @ =gBattleAnimAttacker + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + adds r0, r2 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] +_080BB050: + mov r2, r8 + strh r2, [r7] + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080BB05A: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BB068: .4byte gTasks +_080BB06C: .4byte gBattle_BG1_Y +_080BB070: .4byte gUnknown_2022984 +_080BB074: .4byte gUnknown_2022986 +_080BB078: .4byte 0x00003f3f +_080BB07C: .4byte gSprites +_080BB080: .4byte gBattlerSpriteIds +_080BB084: .4byte gBattleAnimAttacker + thumb_func_end sub_80BAF38 + + thumb_func_start sub_80BB088 +sub_80BB088: @ 80BB088 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080BB0C8 @ =gUnknown_20399B4 + movs r0, 0x18 + bl AllocZeroed + str r0, [r4] + movs r2, 0 + ldr r3, _080BB0CC @ =gBattleAnimArgs +_080BB09C: + ldr r1, [r4] + lsls r0, r2, 1 + adds r1, 0x4 + adds r1, r0 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _080BB09C + ldr r0, _080BB0D0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BB0D4 @ =sub_80BB0D8 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BB0C8: .4byte gUnknown_20399B4 +_080BB0CC: .4byte gBattleAnimArgs +_080BB0D0: .4byte gTasks +_080BB0D4: .4byte sub_80BB0D8 + thumb_func_end sub_80BB088 + + thumb_func_start sub_80BB0D8 +sub_80BB0D8: @ 80BB0D8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080BB0F0 @ =gUnknown_20399B4 + ldr r1, [r0] + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080BB0F8 + ldr r0, _080BB0F4 @ =gBattleAnimAttacker + b _080BB0FA + .align 2, 0 +_080BB0F0: .4byte gUnknown_20399B4 +_080BB0F4: .4byte gBattleAnimAttacker +_080BB0F8: + ldr r0, _080BB230 @ =gBattleAnimTarget +_080BB0FA: + ldrb r0, [r0] + strb r0, [r1] + ldr r4, _080BB234 @ =gUnknown_20399B4 + ldr r2, [r4] + ldrb r0, [r2] + movs r1, 0x2 + eors r0, r1 + strb r0, [r2, 0x1] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BB12A + ldr r1, [r4] + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080BB130 + ldrb r0, [r1, 0x1] + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + bne _080BB130 +_080BB12A: + ldr r1, [r4] + movs r0, 0 + strh r0, [r1, 0xA] +_080BB130: + ldr r0, _080BB238 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080BB23C @ =gUnknown_2022986 + strh r1, [r0] + ldr r1, _080BB240 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080BB244 @ =0x00003f3d + movs r0, 0x4A + bl SetGpuReg + movs r1, 0x80 + lsls r1, 8 + movs r0, 0 + bl SetGpuRegBits + ldr r1, _080BB248 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BB18E + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080BB18E: + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080BB20A + ldr r4, _080BB234 @ =gUnknown_20399B4 + ldr r1, [r4] + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080BB20A + ldrb r0, [r1] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080BB1C0 + ldr r0, [r4] + ldrb r0, [r0] + bl GetBattlerPosition + lsls r0, 24 + cmp r0, 0 + bne _080BB20A +_080BB1C0: + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8072DF0 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _080BB20A + ldr r3, _080BB24C @ =gSprites + ldr r1, _080BB250 @ =gBattlerSpriteIds + ldr r0, [r4] + ldrb r0, [r0, 0x1] + adds r0, r1 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + ldr r0, [r4] + strb r5, [r0, 0x2] +_080BB20A: + ldr r4, _080BB234 @ =gUnknown_20399B4 + ldr r0, [r4] + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080BB25C + ldr r1, _080BB254 @ =gBattlerPartyIndexes + ldr r0, [r4] + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BB258 @ =gEnemyParty + b _080BB26E + .align 2, 0 +_080BB230: .4byte gBattleAnimTarget +_080BB234: .4byte gUnknown_20399B4 +_080BB238: .4byte gUnknown_2022984 +_080BB23C: .4byte gUnknown_2022986 +_080BB240: .4byte 0x00003f3f +_080BB244: .4byte 0x00003f3d +_080BB248: .4byte 0x00003f42 +_080BB24C: .4byte gSprites +_080BB250: .4byte gBattlerSpriteIds +_080BB254: .4byte gBattlerPartyIndexes +_080BB258: .4byte gEnemyParty +_080BB25C: + ldr r1, _080BB290 @ =gBattlerPartyIndexes + ldr r0, [r4] + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BB294 @ =gPlayerParty +_080BB26E: + adds r0, r1 + movs r1, 0xB + bl GetMonData + ldr r1, [r4] + strh r0, [r1, 0x14] + ldr r0, _080BB298 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BB29C @ =sub_80BB2A0 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB290: .4byte gBattlerPartyIndexes +_080BB294: .4byte gPlayerParty +_080BB298: .4byte gTasks +_080BB29C: .4byte sub_80BB2A0 + thumb_func_end sub_80BB0D8 + + thumb_func_start sub_80BB2A0 +sub_80BB2A0: @ 80BB2A0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + mov r8, r0 + ldr r6, _080BB300 @ =gBattlerSpriteIds + ldr r4, _080BB304 @ =gUnknown_20399B4 + ldr r2, [r4] + ldrb r0, [r2] + adds r1, r0, r6 + ldrb r1, [r1] + ldrh r2, [r2, 0x14] + bl sub_8076E34 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, [r4] + movs r1, 0xA + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080BB2E2 + ldrb r0, [r2, 0x1] + adds r1, r0, r6 + ldrb r1, [r1] + ldrh r2, [r2, 0x14] + bl sub_8076E34 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_080BB2E2: + mov r0, sp + bl sub_80752A0 + ldr r0, [r4] + movs r4, 0x4 + ldrsh r0, [r0, r4] + cmp r0, 0 + bne _080BB30C + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080BB308 @ =gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap + bl sub_807543C + b _080BB316 + .align 2, 0 +_080BB300: .4byte gBattlerSpriteIds +_080BB304: .4byte gUnknown_20399B4 +_080BB308: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap +_080BB30C: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080BB354 @ =gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap + bl sub_807543C +_080BB316: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080BB32E + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080BB32E: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080BB358 @ =gFile_graphics_battle_anims_masks_stat_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080BB35C @ =gUnknown_20399B4 + ldr r0, [r0] + movs r1, 0x6 + ldrsh r0, [r0, r1] + cmp r0, 0x6 + bhi _080BB3C4 + lsls r0, 2 + ldr r1, _080BB360 @ =_080BB364 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BB354: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap +_080BB358: .4byte gFile_graphics_battle_anims_masks_stat_sheet +_080BB35C: .4byte gUnknown_20399B4 +_080BB360: .4byte _080BB364 + .align 2, 0 +_080BB364: + .4byte _080BB380 + .4byte _080BB388 + .4byte _080BB390 + .4byte _080BB398 + .4byte _080BB3A0 + .4byte _080BB3A8 + .4byte _080BB3B0 +_080BB380: + ldr r0, _080BB384 @ =gFile_graphics_battle_anims_masks_stat2_palette + b _080BB3B2 + .align 2, 0 +_080BB384: .4byte gFile_graphics_battle_anims_masks_stat2_palette +_080BB388: + ldr r0, _080BB38C @ =gFile_graphics_battle_anims_masks_stat1_palette + b _080BB3B2 + .align 2, 0 +_080BB38C: .4byte gFile_graphics_battle_anims_masks_stat1_palette +_080BB390: + ldr r0, _080BB394 @ =gFile_graphics_battle_anims_masks_stat3_palette + b _080BB3B2 + .align 2, 0 +_080BB394: .4byte gFile_graphics_battle_anims_masks_stat3_palette +_080BB398: + ldr r0, _080BB39C @ =gFile_graphics_battle_anims_masks_stat4_palette + b _080BB3B2 + .align 2, 0 +_080BB39C: .4byte gFile_graphics_battle_anims_masks_stat4_palette +_080BB3A0: + ldr r0, _080BB3A4 @ =gFile_graphics_battle_anims_masks_stat6_palette + b _080BB3B2 + .align 2, 0 +_080BB3A4: .4byte gFile_graphics_battle_anims_masks_stat6_palette +_080BB3A8: + ldr r0, _080BB3AC @ =gFile_graphics_battle_anims_masks_stat7_palette + b _080BB3B2 + .align 2, 0 +_080BB3AC: .4byte gFile_graphics_battle_anims_masks_stat7_palette +_080BB3B0: + ldr r0, _080BB3C0 @ =gFile_graphics_battle_anims_masks_stat8_palette +_080BB3B2: + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _080BB3D2 + .align 2, 0 +_080BB3C0: .4byte gFile_graphics_battle_anims_masks_stat8_palette +_080BB3C4: + ldr r0, _080BB3FC @ =gFile_graphics_battle_anims_masks_stat5_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette +_080BB3D2: + ldr r3, _080BB400 @ =gBattle_BG1_X + movs r2, 0 + strh r2, [r3] + ldr r0, _080BB404 @ =gBattle_BG1_Y + strh r2, [r0] + ldr r1, _080BB408 @ =gUnknown_20399B4 + ldr r0, [r1] + movs r4, 0x4 + ldrsh r0, [r0, r4] + adds r4, r1, 0 + cmp r0, 0x1 + bne _080BB414 + movs r0, 0x40 + strh r0, [r3] + ldr r2, _080BB40C @ =gTasks + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + ldr r1, _080BB410 @ =0x0000fffd + b _080BB420 + .align 2, 0 +_080BB3FC: .4byte gFile_graphics_battle_anims_masks_stat5_palette +_080BB400: .4byte gBattle_BG1_X +_080BB404: .4byte gBattle_BG1_Y +_080BB408: .4byte gUnknown_20399B4 +_080BB40C: .4byte gTasks +_080BB410: .4byte 0x0000fffd +_080BB414: + ldr r2, _080BB43C @ =gTasks + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0x3 +_080BB420: + strh r1, [r0, 0xA] + ldr r0, [r4] + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BB440 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0xA + strh r1, [r0, 0x10] + movs r1, 0x14 + b _080BB44C + .align 2, 0 +_080BB43C: .4byte gTasks +_080BB440: + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0xD + strh r1, [r0, 0x10] + movs r1, 0x1E +_080BB44C: + strh r1, [r0, 0x12] + adds r1, r3, r5 + lsls r1, 3 + adds r1, r2 + strh r7, [r1, 0x8] + ldr r3, [r4] + ldrh r0, [r3, 0xA] + strh r0, [r1, 0xC] + mov r4, r8 + strh r4, [r1, 0xE] + ldrb r0, [r3, 0x2] + strh r0, [r1, 0x14] + ldr r2, _080BB490 @ =gBattlerSpriteIds + ldrb r0, [r3, 0x1] + adds r0, r2 + ldrb r0, [r0] + strh r0, [r1, 0x16] + ldr r0, _080BB494 @ =sub_80BB4B8 + str r0, [r1] + movs r1, 0x4 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080BB498 + movs r0, 0x40 + negs r0, r0 + bl sub_8073B08 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xE8 + bl PlaySE12WithPanning + b _080BB4AC + .align 2, 0 +_080BB490: .4byte gBattlerSpriteIds +_080BB494: .4byte sub_80BB4B8 +_080BB498: + movs r0, 0x40 + negs r0, r0 + bl sub_8073B08 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xEE + bl PlaySE12WithPanning +_080BB4AC: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB2A0 + + thumb_func_start sub_80BB4B8 +sub_80BB4B8: @ 80BB4B8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _080BB4E4 @ =gBattle_BG1_Y + ldr r1, _080BB4E8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0xA] + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + movs r0, 0x26 + ldrsh r2, [r5, r0] + cmp r2, 0x1 + beq _080BB52E + cmp r2, 0x1 + bgt _080BB4EC + cmp r2, 0 + beq _080BB4F6 + b _080BB644 + .align 2, 0 +_080BB4E4: .4byte gBattle_BG1_Y +_080BB4E8: .4byte gTasks +_080BB4EC: + cmp r2, 0x2 + beq _080BB544 + cmp r2, 0x3 + beq _080BB582 + b _080BB644 +_080BB4F6: + ldrh r0, [r5, 0x1E] + adds r1, r0, 0x1 + strh r1, [r5, 0x1E] + lsls r0, 16 + cmp r0, 0 + bgt _080BB504 + b _080BB644 +_080BB504: + strh r2, [r5, 0x1E] + ldrh r1, [r5, 0x20] + adds r1, 0x1 + strh r1, [r5, 0x20] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + beq _080BB52C + b _080BB644 +_080BB52C: + b _080BB57A +_080BB52E: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r5, r2] + cmp r0, r1 + beq _080BB542 + b _080BB644 +_080BB542: + b _080BB57A +_080BB544: + ldrh r0, [r5, 0x1E] + adds r1, r0, 0x1 + strh r1, [r5, 0x1E] + lsls r0, 16 + cmp r0, 0 + ble _080BB644 + movs r0, 0 + strh r0, [r5, 0x1E] + ldrh r1, [r5, 0x20] + subs r1, 0x1 + strh r1, [r5, 0x20] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x20 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080BB644 + movs r0, 0 + bl sub_8073128 +_080BB57A: + ldrh r0, [r5, 0x26] + adds r0, 0x1 + strh r0, [r5, 0x26] + b _080BB644 +_080BB582: + ldr r0, _080BB64C @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080BB650 @ =gUnknown_2022986 + strh r1, [r0] + ldr r4, _080BB654 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BB5B2 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080BB5B2: + movs r0, 0 + bl GetGpuReg + adds r1, r0, 0 + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + eors r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080BB658 @ =gSprites + adds r0, r4 + bl DestroySprite + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080BB606 + movs r2, 0xE + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite +_080BB606: + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080BB632 + movs r2, 0x16 + ldrsh r0, [r5, r2] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] +_080BB632: + ldr r4, _080BB65C @ =gUnknown_20399B4 + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080BB644: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB64C: .4byte gUnknown_2022984 +_080BB650: .4byte gUnknown_2022986 +_080BB654: .4byte 0x00003f3f +_080BB658: .4byte gSprites +_080BB65C: .4byte gUnknown_20399B4 + thumb_func_end sub_80BB4B8 + + thumb_func_start sub_80BB660 +sub_80BB660: @ 80BB660 + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_8075CB8 + adds r6, r0, 0 + movs r1, 0 + bl sub_80BB790 + ldr r0, _080BB6C0 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + lsrs r0, r6, 16 + movs r5, 0 + strh r0, [r4, 0x24] + str r5, [sp] + str r5, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + adds r6, r0, 0 + ldr r1, _080BB6C4 @ =0x0000ffff + ands r6, r1 + adds r0, r6, 0 + bl sub_80BB790 + strh r6, [r4, 0x26] + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] + ldr r0, _080BB6C8 @ =sub_80BB6CC + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB6C0: .4byte gTasks +_080BB6C4: .4byte 0x0000ffff +_080BB6C8: .4byte sub_80BB6CC + thumb_func_end sub_80BB660 + + thumb_func_start sub_80BB6CC +sub_80BB6CC: @ 80BB6CC + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080BB6F0 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080BB710 + cmp r1, 0x1 + bgt _080BB6F4 + cmp r1, 0 + beq _080BB6FA + b _080BB78A + .align 2, 0 +_080BB6F0: .4byte gTasks +_080BB6F4: + cmp r1, 0x2 + beq _080BB784 + b _080BB78A +_080BB6FA: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080BB78A + strh r1, [r4, 0xA] + movs r0, 0x10 + strh r0, [r4, 0xC] + b _080BB778 +_080BB710: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080BB78A + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + movs r5, 0 + movs r6, 0x1 +_080BB72C: + movs r1, 0x26 + ldrsh r0, [r4, r1] + asrs r0, r5 + ands r0, r6 + cmp r0, 0 + beq _080BB746 + lsls r0, r5, 20 + lsrs r0, 16 + ldrb r2, [r4, 0xC] + movs r1, 0x10 + ldr r3, _080BB780 @ =0x0000ffff + bl BlendPalette +_080BB746: + movs r1, 0x24 + ldrsh r0, [r4, r1] + asrs r0, r5 + ands r0, r6 + cmp r0, 0 + beq _080BB766 + lsls r0, r5, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + ldrb r2, [r4, 0xC] + movs r1, 0x10 + movs r3, 0 + bl BlendPalette +_080BB766: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xF + bls _080BB72C + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BB78A +_080BB778: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080BB78A + .align 2, 0 +_080BB780: .4byte 0x0000ffff +_080BB784: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080BB78A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BB6CC + + thumb_func_start sub_80BB790 +sub_80BB790: @ 80BB790 + push {r4-r6,lr} + adds r3, r0, 0 + lsls r1, 16 + lsrs r6, r1, 16 + movs r2, 0 +_080BB79A: + movs r0, 0x1 + ands r0, r3 + lsrs r4, r3, 1 + adds r5, r2, 0x1 + cmp r0, 0 + beq _080BB7C6 + lsls r0, r2, 20 + lsrs r2, r0, 16 + adds r0, r2, 0 + adds r0, 0x10 + cmp r2, r0 + bge _080BB7C6 + ldr r1, _080BB7D8 @ =gPlttBufferFaded + adds r3, r0, 0 +_080BB7B6: + lsls r0, r2, 1 + adds r0, r1 + strh r6, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r3 + blt _080BB7B6 +_080BB7C6: + adds r3, r4, 0 + lsls r0, r5, 16 + lsrs r2, r0, 16 + cmp r2, 0x1F + bls _080BB79A + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB7D8: .4byte gPlttBufferFaded + thumb_func_end sub_80BB790 + + thumb_func_start sub_80BB7DC +sub_80BB7DC: @ 80BB7DC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + movs r2, 0 + ldr r0, _080BB824 @ =gBattleAnimAttacker + ldrb r3, [r0] + movs r5, 0x1 +_080BB7EC: + cmp r3, r2 + beq _080BB7FA + adds r1, r2, 0 + adds r1, 0x10 + adds r0, r5, 0 + lsls r0, r1 + orrs r4, r0 +_080BB7FA: + adds r2, 0x1 + cmp r2, 0x3 + bls _080BB7EC + movs r2, 0x5 + ldr r0, _080BB828 @ =gBattleAnimArgs + adds r1, r0, 0 + adds r1, 0x8 +_080BB808: + ldrh r0, [r1] + strh r0, [r1, 0x2] + subs r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _080BB808 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80BAA4C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB824: .4byte gBattleAnimAttacker +_080BB828: .4byte gBattleAnimArgs + thumb_func_end sub_80BB7DC + + thumb_func_start sub_80BB82C +sub_80BB82C: @ 80BB82C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0 + bl sub_8075458 + ldr r0, _080BB894 @ =sub_80BB8A4 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080BB898 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080BB868 + ldr r0, _080BB89C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080BB868 + ldrh r0, [r4] + negs r0, r0 + strh r0, [r4] + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] +_080BB868: + ldr r0, _080BB8A0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r2, _080BB898 @ =gBattleAnimArgs + ldrh r0, [r2] + strh r0, [r1, 0xA] + ldrh r0, [r2, 0x2] + strh r0, [r1, 0xC] + ldrh r0, [r2, 0x6] + strh r0, [r1, 0xE] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + adds r0, r6, 0 + bl DestroyAnimVisualTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB894: .4byte sub_80BB8A4 +_080BB898: .4byte gBattleAnimArgs +_080BB89C: .4byte gBattleAnimAttacker +_080BB8A0: .4byte gTasks + thumb_func_end sub_80BB82C + + thumb_func_start sub_80BB8A4 +sub_80BB8A4: @ 80BB8A4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080BB910 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r3, [r1, 0xA] + ldrh r0, [r1, 0x1C] + adds r3, r0 + movs r4, 0 + mov r12, r4 + strh r3, [r1, 0x1C] + ldrh r2, [r1, 0xC] + ldrh r7, [r1, 0x1E] + adds r2, r7 + strh r2, [r1, 0x1E] + ldr r6, _080BB914 @ =gBattle_BG3_X + lsls r0, r3, 16 + asrs r0, 24 + ldrh r4, [r6] + adds r0, r4 + strh r0, [r6] + ldr r4, _080BB918 @ =gBattle_BG3_Y + lsls r0, r2, 16 + asrs r0, 24 + ldrh r7, [r4] + adds r0, r7 + strh r0, [r4] + movs r0, 0xFF + ands r3, r0 + strh r3, [r1, 0x1C] + ands r2, r0 + strh r2, [r1, 0x1E] + ldr r0, _080BB91C @ =gBattleAnimArgs + movs r3, 0xE + ldrsh r2, [r0, r3] + movs r7, 0xE + ldrsh r0, [r1, r7] + cmp r2, r0 + bne _080BB90A + mov r0, r12 + strh r0, [r6] + strh r0, [r4] + movs r0, 0x1 + bl sub_8075458 + adds r0, r5, 0 + bl DestroyTask +_080BB90A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BB910: .4byte gTasks +_080BB914: .4byte gBattle_BG3_X +_080BB918: .4byte gBattle_BG3_Y +_080BB91C: .4byte gBattleAnimArgs + thumb_func_end sub_80BB8A4 + + thumb_func_start sub_80BB920 +sub_80BB920: @ 80BB920 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080BB944 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + ldr r1, _080BB948 @ =gBattleAnimArgs + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0xE] + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB944: .4byte gBattleAnimAttacker +_080BB948: .4byte gBattleAnimArgs + thumb_func_end sub_80BB920 + + thumb_func_start sub_80BB94C +sub_80BB94C: @ 80BB94C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080BB970 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + ldr r1, _080BB974 @ =gBattleAnimArgs + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0xE] + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB970: .4byte gBattleAnimTarget +_080BB974: .4byte gBattleAnimArgs + thumb_func_end sub_80BB94C + + thumb_func_start sub_80BB978 +sub_80BB978: @ 80BB978 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r5, _080BB9A4 @ =gBattleAnimArgs + movs r4, 0 + ldr r0, _080BB9A8 @ =gBattleAnimAttacker + ldrb r2, [r0] + movs r0, 0x2 + ldr r1, _080BB9AC @ =gBattleAnimTarget + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bne _080BB994 + movs r4, 0x1 +_080BB994: + strh r4, [r5, 0xE] + adds r0, r3, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BB9A4: .4byte gBattleAnimArgs +_080BB9A8: .4byte gBattleAnimAttacker +_080BB9AC: .4byte gBattleAnimTarget + thumb_func_end sub_80BB978 + + thumb_func_start sub_80BB9B0 +sub_80BB9B0: @ 80BB9B0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r6, _080BBA10 @ =gSprites +_080BB9BA: + ldr r0, _080BBA14 @ =gBattleAnimAttacker + ldrb r0, [r0] + cmp r4, r0 + beq _080BB9F8 + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080BB9F8 + ldr r0, _080BBA18 @ =gBattlerSpriteIds + adds r0, r4, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldr r1, _080BBA1C @ =gBattleAnimArgs + adds r2, 0x3E + movs r0, 0x1 + ldrb r3, [r1] + ands r3, r0 + lsls r3, 2 + ldrb r0, [r2] + movs r7, 0x5 + negs r7, r7 + adds r1, r7, 0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_080BB9F8: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080BB9BA + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BBA10: .4byte gSprites +_080BBA14: .4byte gBattleAnimAttacker +_080BBA18: .4byte gBattlerSpriteIds +_080BBA1C: .4byte gBattleAnimArgs + thumb_func_end sub_80BB9B0 + + thumb_func_start sub_80BBA20 +sub_80BBA20: @ 80BBA20 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + ldr r1, [sp, 0x44] + ldr r4, [sp, 0x48] + ldr r5, [sp, 0x4C] + ldr r6, [sp, 0x50] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x14] + lsls r3, 24 + lsrs r7, r3, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x18] + lsls r5, 24 + lsrs r5, 24 + str r5, [sp, 0x1C] + lsls r6, 24 + lsrs r6, 24 + mov r10, r6 + movs r0, 0 + str r0, [sp, 0x20] + movs r0, 0x2 + adds r6, r7, 0 + eors r6, r0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BBA82 + mov r1, r8 + cmp r1, 0 + beq _080BBA86 + adds r0, r6, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + bne _080BBA86 +_080BBA82: + movs r2, 0 + mov r8, r2 +_080BBA86: + ldr r0, _080BBB20 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080BBB24 @ =gUnknown_2022986 + strh r1, [r0] + ldr r1, _080BBB28 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080BBB2C @ =0x00003f3d + movs r0, 0x4A + bl SetGpuReg + movs r1, 0x80 + lsls r1, 8 + movs r0, 0 + bl SetGpuRegBits + ldr r1, _080BBB30 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0xA + bl GetGpuReg + add r4, sp, 0x10 + strh r0, [r4] + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + mov r2, sp + adds r2, 0x11 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2] + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BBAFC + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080BBAFC: + ldrh r1, [r4] + movs r0, 0xA + bl SetGpuReg + adds r0, r7, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080BBB3C + ldr r1, _080BBB34 @ =gBattlerPartyIndexes + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BBB38 @ =gEnemyParty + b _080BBB4A + .align 2, 0 +_080BBB20: .4byte gUnknown_2022984 +_080BBB24: .4byte gUnknown_2022986 +_080BBB28: .4byte 0x00003f3f +_080BBB2C: .4byte 0x00003f3d +_080BBB30: .4byte 0x00003f42 +_080BBB34: .4byte gBattlerPartyIndexes +_080BBB38: .4byte gEnemyParty +_080BBB3C: + ldr r1, _080BBC10 @ =gBattlerPartyIndexes + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BBC14 @ =gPlayerParty +_080BBB4A: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + ldr r5, _080BBC18 @ =gBattlerSpriteIds + adds r0, r7, r5 + ldrb r1, [r0] + adds r0, r7, 0 + adds r2, r4, 0 + bl sub_8076E34 + lsls r0, 24 + lsrs r7, r0, 24 + mov r0, r8 + cmp r0, 0 + beq _080BBB80 + adds r0, r6, r5 + ldrb r1, [r0] + adds r0, r6, 0 + adds r2, r4, 0 + bl sub_8076E34 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x20] +_080BBB80: + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, [sp, 0x58] + bl sub_807543C + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080BBBA8 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080BBBA8: + mov r0, sp + ldrb r0, [r0, 0x9] + mov r1, sp + ldrh r2, [r1, 0xA] + ldr r1, [sp, 0x54] + bl sub_80753B4 + mov r0, sp + ldrb r1, [r0, 0x8] + lsls r1, 4 + ldr r0, [sp, 0x5C] + movs r2, 0x20 + bl LoadCompressedPalette + ldr r0, _080BBC1C @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080BBC20 @ =gBattle_BG1_Y + strh r1, [r0] + ldr r1, _080BBC24 @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + mov r1, sp + ldrh r1, [r1, 0x14] + strh r1, [r0, 0xA] + mov r2, sp + ldrh r2, [r2, 0x18] + strh r2, [r0, 0x10] + mov r1, r10 + strh r1, [r0, 0x12] + mov r2, sp + ldrh r2, [r2, 0x1C] + strh r2, [r0, 0x14] + strh r7, [r0, 0x8] + mov r1, r8 + strh r1, [r0, 0xC] + mov r2, sp + ldrh r2, [r2, 0x20] + strh r2, [r0, 0xE] + ldr r1, _080BBC28 @ =sub_80BBC2C + str r1, [r0] + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BBC10: .4byte gBattlerPartyIndexes +_080BBC14: .4byte gPlayerParty +_080BBC18: .4byte gBattlerSpriteIds +_080BBC1C: .4byte gBattle_BG1_X +_080BBC20: .4byte gBattle_BG1_Y +_080BBC24: .4byte gTasks +_080BBC28: .4byte sub_80BBC2C + thumb_func_end sub_80BBA20 + + thumb_func_start sub_80BBC2C +sub_80BBC2C: @ 80BBC2C + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080BBC68 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r1 + movs r0, 0xA + ldrsh r2, [r3, r0] + adds r5, r1, 0 + cmp r2, 0 + bge _080BBC4A + negs r2, r2 +_080BBC4A: + ldrh r0, [r3, 0x22] + adds r4, r0, r2 + strh r4, [r3, 0x22] + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0 + bge _080BBC70 + ldr r2, _080BBC6C @ =gBattle_BG1_Y + lsls r1, r4, 16 + asrs r1, 24 + ldrh r0, [r2] + subs r0, r1 + strh r0, [r2] + b _080BBC7C + .align 2, 0 +_080BBC68: .4byte gTasks +_080BBC6C: .4byte gBattle_BG1_Y +_080BBC70: + ldr r1, _080BBCA0 @ =gBattle_BG1_Y + lsls r0, r4, 16 + asrs r0, 24 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] +_080BBC7C: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r5 + ldrh r1, [r5, 0x22] + movs r0, 0xFF + ands r0, r1 + movs r2, 0 + strh r0, [r5, 0x22] + movs r3, 0x26 + ldrsh r0, [r5, r3] + cmp r0, 0x1 + beq _080BBCE6 + cmp r0, 0x1 + bgt _080BBCA4 + cmp r0, 0 + beq _080BBCAA + b _080BBDD8 + .align 2, 0 +_080BBCA0: .4byte gBattle_BG1_Y +_080BBCA4: + cmp r0, 0x2 + beq _080BBD00 + b _080BBDD8 +_080BBCAA: + ldrh r0, [r5, 0x1E] + adds r1, r0, 0x1 + strh r1, [r5, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x14 + ldrsh r1, [r5, r3] + cmp r0, r1 + bge _080BBCBE + b _080BBDD8 +_080BBCBE: + strh r2, [r5, 0x1E] + ldrh r1, [r5, 0x20] + adds r1, 0x1 + strh r1, [r5, 0x20] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x20 + ldrsh r1, [r5, r0] + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _080BBDD8 + b _080BBCF8 +_080BBCE6: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x12 + ldrsh r1, [r5, r3] + cmp r0, r1 + bne _080BBDD8 +_080BBCF8: + ldrh r0, [r5, 0x26] + adds r0, 0x1 + strh r0, [r5, 0x26] + b _080BBDD8 +_080BBD00: + ldrh r0, [r5, 0x1E] + adds r1, r0, 0x1 + strh r1, [r5, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x14 + ldrsh r1, [r5, r3] + cmp r0, r1 + blt _080BBDD8 + strh r2, [r5, 0x1E] + ldrh r1, [r5, 0x20] + subs r1, 0x1 + strh r1, [r5, 0x20] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x20 + ldrsh r4, [r5, r0] + cmp r4, 0 + bne _080BBDD8 + movs r0, 0 + bl sub_8073128 + ldr r0, _080BBDE0 @ =gUnknown_2022984 + strh r4, [r0] + ldr r0, _080BBDE4 @ =gUnknown_2022986 + strh r4, [r0] + ldr r4, _080BBDE8 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BBD7E + movs r0, 0xA + bl GetGpuReg + mov r1, sp + strh r0, [r1] + mov r2, sp + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] + mov r0, sp + ldrh r1, [r0] + movs r0, 0xA + bl SetGpuReg +_080BBD7E: + movs r0, 0 + bl GetGpuReg + adds r1, r0, 0 + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + eors r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r3, 0x8 + ldrsh r1, [r5, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080BBDEC @ =gSprites + adds r0, r4 + bl DestroySprite + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080BBDD2 + movs r2, 0xE + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite +_080BBDD2: + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080BBDD8: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BBDE0: .4byte gUnknown_2022984 +_080BBDE4: .4byte gUnknown_2022986 +_080BBDE8: .4byte 0x00003f3f +_080BBDEC: .4byte gSprites + thumb_func_end sub_80BBC2C + + thumb_func_start sub_80BBDF0 +sub_80BBDF0: @ 80BBDF0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BBE08 @ =gBattleAnimArgs + ldr r1, _080BBE0C @ =gUnknown_2022B50 + ldrb r1, [r1] + strh r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080BBE08: .4byte gBattleAnimArgs +_080BBE0C: .4byte gUnknown_2022B50 + thumb_func_end sub_80BBDF0 + + thumb_func_start sub_80BBE10 +sub_80BBE10: @ 80BBE10 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x80 + lsls r0, 6 + bl AllocZeroed + ldr r1, _080BBE38 @ =gMonSpritesGfxPtr + ldr r1, [r1] + movs r2, 0xBE + lsls r2, 1 + adds r1, r2 + str r0, [r1] + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBE38: .4byte gMonSpritesGfxPtr + thumb_func_end sub_80BBE10 + + thumb_func_start sub_80BBE3C +sub_80BBE3C: @ 80BBE3C + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r6, _080BBE68 @ =gMonSpritesGfxPtr + ldr r0, [r6] + movs r5, 0xBE + lsls r5, 1 + adds r0, r5 + ldr r0, [r0] + bl Free + ldr r0, [r6] + adds r0, r5 + movs r1, 0 + str r1, [r0] + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BBE68: .4byte gMonSpritesGfxPtr + thumb_func_end sub_80BBE3C + + thumb_func_start sub_80BBE6C +sub_80BBE6C: @ 80BBE6C + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080BBEAC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BBEB0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BBEC8 + movs r2, 0x1 +_080BBE9E: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080BBE9E + b _080BBEC8 + .align 2, 0 +_080BBEAC: .4byte gBattleAnimArgs +_080BBEB0: + cmp r0, 0x1 + bne _080BBEBC + ldr r0, _080BBEB8 @ =gBattleAnimAttacker + b _080BBEC2 + .align 2, 0 +_080BBEB8: .4byte gBattleAnimAttacker +_080BBEBC: + cmp r0, 0x2 + bne _080BBEC8 + ldr r0, _080BBEF8 @ =gBattleAnimTarget +_080BBEC2: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080BBEC8: + ldr r0, _080BBEFC @ =gMonSpritesGfxPtr + ldr r1, [r0] + ldr r0, _080BBF00 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r0, [r0, r2] + movs r2, 0xBE + lsls r2, 1 + adds r1, r2 + ldr r1, [r1] + lsls r0, 5 + adds r0, r1 + lsls r1, r4, 5 + ldr r2, _080BBF04 @ =gPlttBufferUnfaded + adds r1, r2 + movs r2, 0x20 + bl memcpy + adds r0, r5, 0 + bl DestroyAnimVisualTask + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BBEF8: .4byte gBattleAnimTarget +_080BBEFC: .4byte gMonSpritesGfxPtr +_080BBF00: .4byte gBattleAnimArgs +_080BBF04: .4byte gPlttBufferUnfaded + thumb_func_end sub_80BBE6C + + thumb_func_start sub_80BBF08 +sub_80BBF08: @ 80BBF08 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080BBF48 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BBF4C + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BBF64 + movs r2, 0x1 +_080BBF3A: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080BBF3A + b _080BBF64 + .align 2, 0 +_080BBF48: .4byte gBattleAnimArgs +_080BBF4C: + cmp r0, 0x1 + bne _080BBF58 + ldr r0, _080BBF54 @ =gBattleAnimAttacker + b _080BBF5E + .align 2, 0 +_080BBF54: .4byte gBattleAnimAttacker +_080BBF58: + cmp r0, 0x2 + bne _080BBF64 + ldr r0, _080BBF94 @ =gBattleAnimTarget +_080BBF5E: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080BBF64: + lsls r0, r4, 5 + ldr r1, _080BBF98 @ =gPlttBufferUnfaded + adds r0, r1 + ldr r1, _080BBF9C @ =gMonSpritesGfxPtr + ldr r2, [r1] + ldr r1, _080BBFA0 @ =gBattleAnimArgs + movs r3, 0x2 + ldrsh r1, [r1, r3] + movs r3, 0xBE + lsls r3, 1 + adds r2, r3 + ldr r2, [r2] + lsls r1, 5 + adds r1, r2 + movs r2, 0x20 + bl memcpy + adds r0, r5, 0 + bl DestroyAnimVisualTask + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BBF94: .4byte gBattleAnimTarget +_080BBF98: .4byte gPlttBufferUnfaded +_080BBF9C: .4byte gMonSpritesGfxPtr +_080BBFA0: .4byte gBattleAnimArgs + thumb_func_end sub_80BBF08 + + thumb_func_start sub_80BBFA4 +sub_80BBFA4: @ 80BBFA4 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080BBFE4 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BBFE8 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BC000 + movs r2, 0x1 +_080BBFD6: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080BBFD6 + b _080BC000 + .align 2, 0 +_080BBFE4: .4byte gBattleAnimArgs +_080BBFE8: + cmp r0, 0x1 + bne _080BBFF4 + ldr r0, _080BBFF0 @ =gBattleAnimAttacker + b _080BBFFA + .align 2, 0 +_080BBFF0: .4byte gBattleAnimAttacker +_080BBFF4: + cmp r0, 0x2 + bne _080BC000 + ldr r0, _080BC020 @ =gBattleAnimTarget +_080BBFFA: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080BC000: + lsls r1, r4, 5 + ldr r0, _080BC024 @ =gPlttBufferUnfaded + adds r0, r1, r0 + ldr r2, _080BC028 @ =gPlttBufferFaded + adds r1, r2 + movs r2, 0x20 + bl memcpy + adds r0, r5, 0 + bl DestroyAnimVisualTask + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC020: .4byte gBattleAnimTarget +_080BC024: .4byte gPlttBufferUnfaded +_080BC028: .4byte gPlttBufferFaded + thumb_func_end sub_80BBFA4 + + thumb_func_start sub_80BC02C +sub_80BC02C: @ 80BC02C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8073788 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080BC04C + ldr r1, _080BC048 @ =gBattleAnimArgs + movs r0, 0x1 + strh r0, [r1, 0xE] + b _080BC050 + .align 2, 0 +_080BC048: .4byte gBattleAnimArgs +_080BC04C: + ldr r0, _080BC05C @ =gBattleAnimArgs + strh r1, [r0, 0xE] +_080BC050: + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC05C: .4byte gBattleAnimArgs + thumb_func_end sub_80BC02C + + thumb_func_start sub_80BC060 +sub_80BC060: @ 80BC060 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BC080 @ =gBattleAnimAttacker + ldr r1, _080BC084 @ =gBattlerTarget + ldrb r1, [r1] + strb r1, [r2] + ldr r2, _080BC088 @ =gBattleAnimTarget + ldr r1, _080BC08C @ =gUnknown_2023D6E + ldrb r1, [r1] + strb r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080BC080: .4byte gBattleAnimAttacker +_080BC084: .4byte gBattlerTarget +_080BC088: .4byte gBattleAnimTarget +_080BC08C: .4byte gUnknown_2023D6E + thumb_func_end sub_80BC060 + + thumb_func_start sub_80BC090 +sub_80BC090: @ 80BC090 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080BC0B8 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + adds r4, r0, 0 + ldr r0, _080BC0BC @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080BC0C4 + ldr r1, _080BC0C0 @ =gBattleAnimArgs + movs r0, 0x1 + b _080BC0C8 + .align 2, 0 +_080BC0B8: .4byte gBattleAnimAttacker +_080BC0BC: .4byte gBattleAnimTarget +_080BC0C0: .4byte gBattleAnimArgs +_080BC0C4: + ldr r1, _080BC0D8 @ =gBattleAnimArgs + movs r0, 0 +_080BC0C8: + strh r0, [r1, 0xE] + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC0D8: .4byte gBattleAnimArgs + thumb_func_end sub_80BC090 + + thumb_func_start sub_80BC0DC +sub_80BC0DC: @ 80BC0DC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BC0F4 @ =gBattleAnimTarget + ldr r1, _080BC0F8 @ =gBattlerTarget + ldrb r1, [r1] + strb r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080BC0F4: .4byte gBattleAnimTarget +_080BC0F8: .4byte gBattlerTarget + thumb_func_end sub_80BC0DC + + thumb_func_start sub_80BC0FC +sub_80BC0FC: @ 80BC0FC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BC11C @ =gBattleAnimAttacker + ldr r1, _080BC120 @ =sBattler_AI + ldrb r1, [r1] + strb r1, [r2] + ldr r2, _080BC124 @ =gBattleAnimTarget + ldr r1, _080BC128 @ =gUnknown_2023D6E + ldrb r1, [r1] + strb r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080BC11C: .4byte gBattleAnimAttacker +_080BC120: .4byte sBattler_AI +_080BC124: .4byte gBattleAnimTarget +_080BC128: .4byte gUnknown_2023D6E + thumb_func_end sub_80BC0FC + + thumb_func_start sub_80BC12C +sub_80BC12C: @ 80BC12C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080BC144 + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080BC180 +_080BC144: + ldr r0, _080BC188 @ =gTasks + lsls r3, r4, 2 + adds r3, r4 + lsls r3, 3 + adds r3, r0 + ldr r0, _080BC18C @ =gUnknown_2024018 + ldr r4, [r0] + ldr r2, _080BC190 @ =gBattleAnimAttacker + ldrb r0, [r2] + ldr r1, [r4] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + lsls r0, 31 + lsrs r0, 31 + strh r0, [r3, 0x8] + ldrb r1, [r2] + ldr r0, [r4] + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1] + ldr r0, _080BC194 @ =sub_80BC19C + str r0, [r3] + ldr r1, _080BC198 @ =gUnknown_2037EE2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080BC180: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC188: .4byte gTasks +_080BC18C: .4byte gUnknown_2024018 +_080BC190: .4byte gBattleAnimAttacker +_080BC194: .4byte sub_80BC19C +_080BC198: .4byte gUnknown_2037EE2 + thumb_func_end sub_80BC12C + + thumb_func_start sub_80BC19C +sub_80BC19C: @ 80BC19C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BC1E8 @ =gBattleAnimArgs + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bne _080BC1E0 + ldr r0, _080BC1EC @ =gUnknown_2024018 + ldr r1, [r0] + ldr r0, _080BC1F0 @ =gBattleAnimAttacker + ldrb r3, [r0] + ldr r0, [r1] + lsls r3, 2 + adds r3, r0 + ldr r1, _080BC1F4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x8] + movs r1, 0x1 + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, 0 + bl DestroyTask +_080BC1E0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC1E8: .4byte gBattleAnimArgs +_080BC1EC: .4byte gUnknown_2024018 +_080BC1F0: .4byte gBattleAnimAttacker +_080BC1F4: .4byte gTasks + thumb_func_end sub_80BC19C + + thumb_func_start SetAnimBgAttribute +SetAnimBgAttribute: @ 80BC1F8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + cmp r6, 0x3 + bls _080BC20C + b _080BC2FE +_080BC20C: + ldr r0, _080BC228 @ =gUnknown_83E7CCA + adds r0, r6, r0 + ldrb r0, [r0] + bl GetGpuReg + ldr r1, _080BC22C @ =gUnknown_20399B8 + strh r0, [r1] + cmp r5, 0x6 + bhi _080BC2F0 + lsls r0, r5, 2 + ldr r1, _080BC230 @ =_080BC234 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BC228: .4byte gUnknown_83E7CCA +_080BC22C: .4byte gUnknown_20399B8 +_080BC230: .4byte _080BC234 + .align 2, 0 +_080BC234: + .4byte _080BC250 + .4byte _080BC264 + .4byte _080BC27C + .4byte _080BC294 + .4byte _080BC2AC + .4byte _080BC2C8 + .4byte _080BC2DC +_080BC250: + ldr r2, _080BC260 @ =gUnknown_20399B8 + lsls r3, r4, 6 + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0x1] + b _080BC2F0 + .align 2, 0 +_080BC260: .4byte gUnknown_20399B8 +_080BC264: + ldr r3, _080BC278 @ =gUnknown_20399B8 + movs r0, 0x1 + adds r1, r4, 0 + ands r1, r0 + lsls r1, 5 + ldrb r2, [r3, 0x1] + movs r0, 0x21 + negs r0, r0 + b _080BC2EA + .align 2, 0 +_080BC278: .4byte gUnknown_20399B8 +_080BC27C: + ldr r3, _080BC290 @ =gUnknown_20399B8 + movs r0, 0x1 + adds r1, r4, 0 + ands r1, r0 + lsls r1, 6 + ldrb r2, [r3] + movs r0, 0x41 + negs r0, r0 + b _080BC2BA + .align 2, 0 +_080BC290: .4byte gUnknown_20399B8 +_080BC294: + ldr r3, _080BC2A8 @ =gUnknown_20399B8 + movs r0, 0x3 + adds r1, r4, 0 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0xD + negs r0, r0 + b _080BC2BA + .align 2, 0 +_080BC2A8: .4byte gUnknown_20399B8 +_080BC2AC: + ldr r3, _080BC2C4 @ =gUnknown_20399B8 + movs r0, 0x3 + adds r1, r4, 0 + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x4 + negs r0, r0 +_080BC2BA: + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080BC2F0 + .align 2, 0 +_080BC2C4: .4byte gUnknown_20399B8 +_080BC2C8: + ldr r2, _080BC2D8 @ =gUnknown_20399B8 + lsls r3, r4, 7 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + b _080BC2F0 + .align 2, 0 +_080BC2D8: .4byte gUnknown_20399B8 +_080BC2DC: + ldr r3, _080BC304 @ =gUnknown_20399B8 + movs r0, 0x1F + adds r1, r4, 0 + ands r1, r0 + ldrb r2, [r3, 0x1] + movs r0, 0x20 + negs r0, r0 +_080BC2EA: + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x1] +_080BC2F0: + ldr r0, _080BC308 @ =gUnknown_83E7CCA + adds r0, r6, r0 + ldrb r0, [r0] + ldr r1, _080BC304 @ =gUnknown_20399B8 + ldrh r1, [r1] + bl SetGpuReg +_080BC2FE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BC304: .4byte gUnknown_20399B8 +_080BC308: .4byte gUnknown_83E7CCA + thumb_func_end SetAnimBgAttribute + + thumb_func_start sub_80BC30C +sub_80BC30C: @ 80BC30C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r2, 0x3 + bhi _080BC394 + ldr r0, _080BC338 @ =gUnknown_83E7CCE + adds r0, r2, r0 + ldrb r0, [r0] + bl GetGpuReg + mov r1, sp + strh r0, [r1] + cmp r4, 0x6 + bhi _080BC394 + lsls r0, r4, 2 + ldr r1, _080BC33C @ =_080BC340 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BC338: .4byte gUnknown_83E7CCE +_080BC33C: .4byte _080BC340 + .align 2, 0 +_080BC340: + .4byte _080BC35C + .4byte _080BC364 + .4byte _080BC36C + .4byte _080BC374 + .4byte _080BC37C + .4byte _080BC384 + .4byte _080BC38C +_080BC35C: + ldr r0, [sp] + lsls r0, 16 + lsrs r0, 30 + b _080BC396 +_080BC364: + ldr r0, [sp] + lsls r0, 18 + lsrs r0, 31 + b _080BC396 +_080BC36C: + ldr r0, [sp] + lsls r0, 25 + lsrs r0, 31 + b _080BC396 +_080BC374: + ldr r0, [sp] + lsls r0, 28 + lsrs r0, 30 + b _080BC396 +_080BC37C: + ldr r0, [sp] + lsls r0, 30 + lsrs r0, 30 + b _080BC396 +_080BC384: + ldr r0, [sp] + lsls r0, 24 + lsrs r0, 31 + b _080BC396 +_080BC38C: + ldr r0, [sp] + lsls r0, 19 + lsrs r0, 27 + b _080BC396 +_080BC394: + movs r0, 0 +_080BC396: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BC30C + + thumb_func_start sub_80BC3A0 +sub_80BC3A0: @ 80BC3A0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BC3B8 @ =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BC3C0 + ldr r0, _080BC3BC @ =sub_80BCC4C + b _080BC3E8 + .align 2, 0 +_080BC3B8: .4byte gBattleTypeFlags +_080BC3BC: .4byte sub_80BCC4C +_080BC3C0: + movs r0, 0x80 + lsls r0, 5 + ands r1, r0 + cmp r1, 0 + beq _080BC3E0 + ldr r0, _080BC3D8 @ =gGameVersion + ldrb r0, [r0] + cmp r0, 0x2 + beq _080BC3E0 + movs r4, 0x3 + ldr r0, _080BC3DC @ =task00_battle_intro_80BC6C8 + b _080BC3E8 + .align 2, 0 +_080BC3D8: .4byte gGameVersion +_080BC3DC: .4byte task00_battle_intro_80BC6C8 +_080BC3E0: + ldr r1, _080BC414 @ =gUnknown_83E7CD4 + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] +_080BC3E8: + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080BC418 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + movs r0, 0 + strh r0, [r1, 0x8] + strh r4, [r1, 0xA] + strh r0, [r1, 0xC] + strh r0, [r1, 0xE] + strh r0, [r1, 0x10] + strh r0, [r1, 0x12] + strh r0, [r1, 0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC414: .4byte gUnknown_83E7CD4 +_080BC418: .4byte gTasks + thumb_func_end sub_80BC3A0 + + thumb_func_start sub_80BC41C +sub_80BC41C: @ 80BC41C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r0, _080BC468 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080BC46C @ =gBattle_BG1_Y + strh r1, [r0] + ldr r0, _080BC470 @ =gBattle_BG2_X + strh r1, [r0] + ldr r0, _080BC474 @ =gBattle_BG2_Y + strh r1, [r0] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + ldr r4, _080BC478 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC468: .4byte gBattle_BG1_X +_080BC46C: .4byte gBattle_BG1_Y +_080BC470: .4byte gBattle_BG2_X +_080BC474: .4byte gBattle_BG2_Y +_080BC478: .4byte 0x00003f3f + thumb_func_end sub_80BC41C + + thumb_func_start task_battle_intro_80BC47C +task_battle_intro_80BC47C: @ 80BC47C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080BC4B4 @ =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x6 + strh r0, [r1] + ldr r1, _080BC4B8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + mov r8, r1 + cmp r0, 0x4 + bls _080BC4A8 + b _080BC6BA +_080BC4A8: + lsls r0, 2 + ldr r1, _080BC4BC @ =_080BC4C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BC4B4: .4byte gBattle_BG1_X +_080BC4B8: .4byte gTasks +_080BC4BC: .4byte _080BC4C0 + .align 2, 0 +_080BC4C0: + .4byte _080BC4D4 + .4byte _080BC504 + .4byte _080BC52C + .4byte _080BC574 + .4byte _080BC6B4 +_080BC4D4: + ldr r0, _080BC4EC @ =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BC4F0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + movs r1, 0x10 + b _080BC4FA + .align 2, 0 +_080BC4EC: .4byte gBattleTypeFlags +_080BC4F0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + movs r1, 0x1 +_080BC4FA: + strh r1, [r0, 0xC] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080BC6BA +_080BC504: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + mov r3, r8 + adds r1, r0, r3 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080BC51C + b _080BC6BA +_080BC51C: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + b _080BC6BA +_080BC52C: + ldr r1, _080BC568 @ =gUnknown_2022986 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080BC544 + b _080BC6BA +_080BC544: + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + add r1, r8 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + ldr r2, _080BC56C @ =gUnknown_2023F4C + ldrh r1, [r2] + ldr r0, _080BC570 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080BC6BA + .align 2, 0 +_080BC568: .4byte gUnknown_2022986 +_080BC56C: .4byte gUnknown_2023F4C +_080BC570: .4byte 0x0000fffe +_080BC574: + lsls r0, r4, 2 + adds r1, r0, r4 + lsls r1, 3 + mov r5, r8 + adds r2, r1, r5 + ldrh r3, [r2, 0xE] + movs r5, 0xE + ldrsh r1, [r2, r5] + mov r12, r0 + cmp r1, 0 + beq _080BC590 + subs r0, r3, 0x1 + strh r0, [r2, 0xE] + b _080BC5BE +_080BC590: + movs r1, 0xA + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080BC5B0 + ldr r2, _080BC5A8 @ =gBattle_BG1_Y + ldrh r1, [r2] + ldr r0, _080BC5AC @ =0x0000ffb0 + cmp r1, r0 + beq _080BC5BE + subs r0, r1, 0x2 + b _080BC5BC + .align 2, 0 +_080BC5A8: .4byte gBattle_BG1_Y +_080BC5AC: .4byte 0x0000ffb0 +_080BC5B0: + ldr r2, _080BC690 @ =gBattle_BG1_Y + ldrh r1, [r2] + ldr r0, _080BC694 @ =0x0000ffc8 + cmp r1, r0 + beq _080BC5BE + subs r0, r1, 0x1 +_080BC5BC: + strh r0, [r2] +_080BC5BE: + ldr r2, _080BC698 @ =gUnknown_2022986 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080BC5D2 + ldr r3, _080BC69C @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080BC5D2: + mov r5, r12 + adds r0, r5, r4 + lsls r0, 3 + mov r2, r8 + adds r1, r0, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BC5EA + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080BC5EA: + movs r3, 0 + ldr r5, _080BC6A0 @ =gScanlineEffect + mov r9, r5 + ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers + mov r6, r9 + adds r5, r1, 0 +_080BC5F6: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080BC5F6 + cmp r3, 0x9F + bgt _080BC63A + ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers + ldr r6, _080BC6A0 @ =gScanlineEffect + ldr r1, _080BC6A8 @ =gTasks + mov r2, r12 + adds r0, r2, r4 + lsls r0, 3 + adds r5, r0, r1 +_080BC620: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080BC620 +_080BC63A: + mov r3, r12 + adds r0, r3, r4 + lsls r0, 3 + mov r5, r8 + adds r1, r0, r5 + movs r0, 0xC + ldrsh r2, [r1, r0] + cmp r2, 0 + bne _080BC6BA + movs r0, 0x3 + mov r3, r9 + strb r0, [r3, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080BC6AC @ =0x0600e000 + ldr r2, _080BC6B0 @ =0x05000200 + mov r0, sp + bl CpuSet + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r1, 0x9C + lsls r1, 8 + movs r0, 0xA + bl SetGpuReg + movs r1, 0xBC + lsls r1, 7 + movs r0, 0xC + bl SetGpuReg + b _080BC6BA + .align 2, 0 +_080BC690: .4byte gBattle_BG1_Y +_080BC694: .4byte 0x0000ffc8 +_080BC698: .4byte gUnknown_2022986 +_080BC69C: .4byte 0xfffffc04 +_080BC6A0: .4byte gScanlineEffect +_080BC6A4: .4byte gScanlineEffectRegBuffers +_080BC6A8: .4byte gTasks +_080BC6AC: .4byte 0x0600e000 +_080BC6B0: .4byte 0x05000200 +_080BC6B4: + adds r0, r4, 0 + bl sub_80BC41C +_080BC6BA: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end task_battle_intro_80BC47C + + thumb_func_start task00_battle_intro_80BC6C8 +task00_battle_intro_80BC6C8: @ 80BC6C8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080BC6F4 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0xA + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x3 + beq _080BC708 + cmp r0, 0x3 + bgt _080BC6F8 + cmp r0, 0x2 + beq _080BC6FC + b _080BC710 + .align 2, 0 +_080BC6F4: .4byte gTasks +_080BC6F8: + cmp r0, 0x4 + bne _080BC710 +_080BC6FC: + ldr r1, _080BC704 @ =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x8 + b _080BC70E + .align 2, 0 +_080BC704: .4byte gBattle_BG1_X +_080BC708: + ldr r1, _080BC74C @ =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x6 +_080BC70E: + strh r0, [r1] +_080BC710: + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + adds r4, r1, r2 + movs r3, 0xA + ldrsh r1, [r4, r3] + adds r6, r0, 0 + cmp r1, 0x4 + bne _080BC774 + ldr r7, _080BC750 @ =gBattle_BG1_Y + ldrh r0, [r4, 0x14] + bl Cos2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080BC736 + ldr r1, _080BC754 @ =0x000001ff + adds r0, r1 +_080BC736: + asrs r0, 9 + subs r0, 0x8 + strh r0, [r7] + ldrh r1, [r4, 0x14] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0xB3 + bgt _080BC758 + adds r0, r1, 0x4 + b _080BC75A + .align 2, 0 +_080BC74C: .4byte gBattle_BG1_X +_080BC750: .4byte gBattle_BG1_Y +_080BC754: .4byte 0x000001ff +_080BC758: + adds r0, r1, 0x6 +_080BC75A: + strh r0, [r4, 0x14] + ldr r2, _080BC790 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r3, r0, r2 + movs r0, 0x14 + ldrsh r1, [r3, r0] + movs r0, 0xB4 + lsls r0, 1 + cmp r1, r0 + bne _080BC774 + movs r0, 0 + strh r0, [r3, 0x14] +_080BC774: + adds r0, r6, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x4 + bls _080BC784 + b _080BC9AA +_080BC784: + lsls r0, 2 + ldr r1, _080BC794 @ =_080BC798 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BC790: .4byte gTasks +_080BC794: .4byte _080BC798 + .align 2, 0 +_080BC798: + .4byte _080BC7AC + .4byte _080BC7DC + .4byte _080BC808 + .4byte _080BC858 + .4byte _080BC9A4 +_080BC7AC: + ldr r1, _080BC7C8 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x10 + strh r3, [r2, 0x10] + ldr r0, _080BC7CC @ =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BC7D0 + strh r3, [r2, 0xC] + b _080BC7D4 + .align 2, 0 +_080BC7C8: .4byte gTasks +_080BC7CC: .4byte gBattleTypeFlags +_080BC7D0: + movs r0, 0x1 + strh r0, [r2, 0xC] +_080BC7D4: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080BC9AA +_080BC7DC: + ldr r0, _080BC804 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080BC7F2 + b _080BC9AA +_080BC7F2: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + b _080BC9AA + .align 2, 0 +_080BC804: .4byte gTasks +_080BC808: + ldr r1, _080BC848 @ =gUnknown_2022986 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080BC820 + b _080BC9AA +_080BC820: + ldr r0, _080BC84C @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x12] + ldr r2, _080BC850 @ =gUnknown_2023F4C + ldrh r1, [r2] + ldr r0, _080BC854 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080BC9AA + .align 2, 0 +_080BC848: .4byte gUnknown_2022986 +_080BC84C: .4byte gTasks +_080BC850: .4byte gUnknown_2023F4C +_080BC854: .4byte 0x0000fffe +_080BC858: + ldr r0, _080BC890 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xE] + movs r3, 0xE + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BC898 + subs r0, r2, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080BC8B8 + ldr r1, _080BC894 @ =0x00001842 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0xF + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + b _080BC8B8 + .align 2, 0 +_080BC890: .4byte gTasks +_080BC894: .4byte 0x00001842 +_080BC898: + ldrh r2, [r1, 0x10] + movs r0, 0x1F + ands r0, r2 + cmp r0, 0 + beq _080BC8B8 + ldrh r0, [r1, 0x12] + subs r0, 0x1 + strh r0, [r1, 0x12] + lsls r0, 16 + cmp r0, 0 + bne _080BC8B8 + adds r0, r2, 0 + adds r0, 0xFF + strh r0, [r1, 0x10] + movs r0, 0x4 + strh r0, [r1, 0x12] +_080BC8B8: + ldr r2, _080BC988 @ =gUnknown_2022986 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080BC8CC + ldr r3, _080BC98C @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080BC8CC: + ldr r0, _080BC990 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BC8E2 + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080BC8E2: + movs r3, 0 + ldr r0, _080BC994 @ =gScanlineEffect + mov r8, r0 + ldr r2, _080BC998 @ =gScanlineEffectRegBuffers + mov r12, r2 + mov r7, r8 + adds r4, r1, 0 +_080BC8F0: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080BC8F0 + cmp r3, 0x9F + bgt _080BC934 + ldr r0, _080BC998 @ =gScanlineEffectRegBuffers + mov r12, r0 + ldr r7, _080BC994 @ =gScanlineEffect + ldr r1, _080BC990 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r4, r0, r1 +_080BC91A: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + ldrh r0, [r4, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080BC91A +_080BC934: + ldr r1, _080BC990 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0xC + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _080BC9AA + movs r0, 0x3 + mov r3, r8 + strb r0, [r3, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080BC99C @ =0x0600e000 + ldr r2, _080BC9A0 @ =0x05000200 + mov r0, sp + bl CpuSet + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r1, 0x9C + lsls r1, 8 + movs r0, 0xA + bl SetGpuReg + movs r1, 0xBC + lsls r1, 7 + movs r0, 0xC + bl SetGpuReg + b _080BC9AA + .align 2, 0 +_080BC988: .4byte gUnknown_2022986 +_080BC98C: .4byte 0xfffffc04 +_080BC990: .4byte gTasks +_080BC994: .4byte gScanlineEffect +_080BC998: .4byte gScanlineEffectRegBuffers +_080BC99C: .4byte 0x0600e000 +_080BC9A0: .4byte 0x05000200 +_080BC9A4: + adds r0, r5, 0 + bl sub_80BC41C +_080BC9AA: + ldr r0, _080BC9D0 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + beq _080BC9C2 + ldrh r1, [r1, 0x10] + movs r0, 0x52 + bl SetGpuReg +_080BC9C2: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BC9D0: .4byte gTasks + thumb_func_end task00_battle_intro_80BC6C8 + + thumb_func_start task_battle_intro_anim +task_battle_intro_anim: @ 80BC9D4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080BCA08 @ =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x8 + strh r0, [r1] + ldr r1, _080BCA0C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x4 + bls _080BC9FE + b _080BCC22 +_080BC9FE: + lsls r0, 2 + ldr r1, _080BCA10 @ =_080BCA14 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BCA08: .4byte gBattle_BG1_X +_080BCA0C: .4byte gTasks +_080BCA10: .4byte _080BCA14 + .align 2, 0 +_080BCA14: + .4byte _080BCA28 + .4byte _080BCA7C + .4byte _080BCAA8 + .4byte _080BCAF8 + .4byte _080BCC1C +_080BCA28: + ldr r1, _080BCA60 @ =0x00001842 + movs r0, 0x50 + bl SetGpuReg + ldr r4, _080BCA64 @ =0x00000808 + movs r0, 0x52 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + ldr r1, _080BCA68 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + strh r4, [r2, 0x10] + ldr r0, _080BCA6C @ =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BCA70 + movs r0, 0x10 + b _080BCA72 + .align 2, 0 +_080BCA60: .4byte 0x00001842 +_080BCA64: .4byte 0x00000808 +_080BCA68: .4byte gTasks +_080BCA6C: .4byte gBattleTypeFlags +_080BCA70: + movs r0, 0x1 +_080BCA72: + strh r0, [r2, 0xC] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080BCC22 +_080BCA7C: + ldr r0, _080BCAA4 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080BCA94 + b _080BCC22 +_080BCA94: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + b _080BCC22 + .align 2, 0 +_080BCAA4: .4byte gTasks +_080BCAA8: + ldr r1, _080BCAE8 @ =gUnknown_2022986 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080BCAC0 + b _080BCC22 +_080BCAC0: + ldr r0, _080BCAEC @ =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] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x12] + ldr r2, _080BCAF0 @ =gUnknown_2023F4C + ldrh r1, [r2] + ldr r0, _080BCAF4 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080BCC22 + .align 2, 0 +_080BCAE8: .4byte gUnknown_2022986 +_080BCAEC: .4byte gTasks +_080BCAF0: .4byte gUnknown_2023F4C +_080BCAF4: .4byte 0x0000fffe +_080BCAF8: + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + adds r2, r1, r4 + ldrh r3, [r2, 0xE] + movs r6, 0xE + ldrsh r1, [r2, r6] + mov r12, r0 + cmp r1, 0 + beq _080BCB12 + subs r0, r3, 0x1 + strh r0, [r2, 0xE] + b _080BCB32 +_080BCB12: + ldrh r1, [r2, 0x10] + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + beq _080BCB32 + ldrh r0, [r2, 0x12] + subs r0, 0x1 + strh r0, [r2, 0x12] + lsls r0, 16 + cmp r0, 0 + bne _080BCB32 + adds r0, r1, 0 + adds r0, 0xFF + strh r0, [r2, 0x10] + movs r0, 0x6 + strh r0, [r2, 0x12] +_080BCB32: + ldr r2, _080BCC00 @ =gUnknown_2022986 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080BCB46 + ldr r3, _080BCC04 @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080BCB46: + mov r6, r12 + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r4 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BCB5C + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080BCB5C: + movs r3, 0 + ldr r6, _080BCC08 @ =gScanlineEffect + mov r8, r6 + ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers + adds r4, r1, 0 +_080BCB66: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080BCB66 + cmp r3, 0x9F + bgt _080BCBAA + ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers + ldr r6, _080BCC08 @ =gScanlineEffect + ldr r1, _080BCC10 @ =gTasks + mov r2, r12 + adds r0, r2, r5 + lsls r0, 3 + adds r4, r0, r1 +_080BCB90: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r4, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080BCB90 +_080BCBAA: + ldr r1, _080BCC10 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0xC + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _080BCC22 + movs r0, 0x3 + mov r6, r8 + strb r0, [r6, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080BCC14 @ =0x0600e000 + ldr r2, _080BCC18 @ =0x05000200 + mov r0, sp + bl CpuSet + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r1, 0x9C + lsls r1, 8 + movs r0, 0xA + bl SetGpuReg + movs r1, 0xBC + lsls r1, 7 + movs r0, 0xC + bl SetGpuReg + b _080BCC22 + .align 2, 0 +_080BCC00: .4byte gUnknown_2022986 +_080BCC04: .4byte 0xfffffc04 +_080BCC08: .4byte gScanlineEffect +_080BCC0C: .4byte gScanlineEffectRegBuffers +_080BCC10: .4byte gTasks +_080BCC14: .4byte 0x0600e000 +_080BCC18: .4byte 0x05000200 +_080BCC1C: + adds r0, r5, 0 + bl sub_80BC41C +_080BCC22: + ldr r0, _080BCC48 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + beq _080BCC3C + ldrh r1, [r1, 0x10] + movs r0, 0x52 + bl SetGpuReg +_080BCC3C: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCC48: .4byte gTasks + thumb_func_end task_battle_intro_anim + + thumb_func_start sub_80BCC4C +sub_80BCC4C: @ 80BCC4C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080BCC98 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r7, r0, r1 + movs r1, 0x8 + ldrsh r0, [r7, r1] + cmp r0, 0x1 + ble _080BCCC2 + movs r2, 0x10 + ldrsh r0, [r7, r2] + cmp r0, 0 + bne _080BCCC2 + ldr r2, _080BCC9C @ =gBattle_BG1_X + ldrh r1, [r2] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _080BCC8A + cmp r1, 0x4F + bhi _080BCCA4 +_080BCC8A: + adds r0, r1, 0x3 + strh r0, [r2] + ldr r1, _080BCCA0 @ =gBattle_BG2_X + ldrh r0, [r1] + subs r0, 0x3 + strh r0, [r1] + b _080BCCC2 + .align 2, 0 +_080BCC98: .4byte gTasks +_080BCC9C: .4byte gBattle_BG1_X +_080BCCA0: .4byte gBattle_BG2_X +_080BCCA4: + str r5, [sp] + ldr r1, _080BCCE4 @ =0x0600e000 + ldr r4, _080BCCE8 @ =0x05000200 + mov r0, sp + adds r2, r4, 0 + bl CpuSet + str r5, [sp, 0x4] + add r0, sp, 0x4 + ldr r1, _080BCCEC @ =0x0600f000 + adds r2, r4, 0 + bl CpuSet + movs r0, 0x1 + strh r0, [r7, 0x10] +_080BCCC2: + ldr r0, _080BCCF0 @ =gTasks + lsls r2, r6, 2 + adds r1, r2, r6 + lsls r1, 3 + adds r1, r0 + movs r3, 0x8 + ldrsh r1, [r1, r3] + mov r9, r0 + adds r5, r2, 0 + cmp r1, 0x4 + bls _080BCCDA + b _080BCEE6 +_080BCCDA: + lsls r0, r1, 2 + ldr r1, _080BCCF4 @ =_080BCCF8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BCCE4: .4byte 0x0600e000 +_080BCCE8: .4byte 0x05000200 +_080BCCEC: .4byte 0x0600f000 +_080BCCF0: .4byte gTasks +_080BCCF4: .4byte _080BCCF8 + .align 2, 0 +_080BCCF8: + .4byte _080BCD0C + .4byte _080BCD1E + .4byte _080BCDC4 + .4byte _080BCE08 + .4byte _080BCEE0 +_080BCD0C: + adds r0, r5, r6 + lsls r0, 3 + add r0, r9 + movs r1, 0x20 + strh r1, [r0, 0xC] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080BCEE6 +_080BCD1E: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r9 + adds r1, r0, r2 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080BCD34 + b _080BCEE6 +_080BCD34: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r4, _080BCDB4 @ =gSprites + ldr r5, _080BCDB8 @ =gBattleStruct + ldr r0, [r5] + adds r0, 0x7D + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r3, [r1, 0x1] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + movs r3, 0x8 + mov r9, r3 + mov r3, r9 + orrs r0, r3 + strb r0, [r1, 0x1] + ldr r3, [r5] + adds r0, r3, 0 + adds r0, 0x7D + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + movs r1, 0x1C + adds r1, r4 + mov r8, r1 + add r0, r8 + ldr r6, _080BCDBC @ =sub_801182C + str r6, [r0] + adds r3, 0x7E + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x1] + ands r2, r1 + mov r3, r9 + orrs r2, r3 + strb r2, [r0, 0x1] + ldr r0, [r5] + adds r0, 0x7E + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + str r6, [r0] + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + ldr r1, _080BCDC0 @ =0x00003f06 + movs r0, 0x4A + bl SetGpuReg + b _080BCEE6 + .align 2, 0 +_080BCDB4: .4byte gSprites +_080BCDB8: .4byte gBattleStruct +_080BCDBC: .4byte sub_801182C +_080BCDC0: .4byte 0x00003f06 +_080BCDC4: + ldr r1, _080BCDFC @ =gUnknown_2022986 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080BCDDC + b _080BCEE6 +_080BCDDC: + adds r1, r5, r6 + lsls r1, 3 + add r1, r9 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + ldr r2, _080BCE00 @ =gUnknown_2023F4C + ldrh r1, [r2] + ldr r0, _080BCE04 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080BCEE6 + .align 2, 0 +_080BCDFC: .4byte gUnknown_2022986 +_080BCE00: .4byte gUnknown_2023F4C +_080BCE04: .4byte 0x0000fffe +_080BCE08: + ldr r2, _080BCECC @ =gUnknown_2022986 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080BCE1C + ldr r3, _080BCED0 @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080BCE1C: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r9 + adds r1, r0, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BCE32 + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080BCE32: + movs r3, 0 + ldr r0, _080BCED4 @ =gScanlineEffect + mov r12, r0 + ldr r2, _080BCED8 @ =gScanlineEffectRegBuffers + mov r8, r2 + mov r7, r12 + adds r4, r1, 0 +_080BCE40: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r8 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080BCE40 + cmp r3, 0x9F + bgt _080BCE84 + ldr r0, _080BCED8 @ =gScanlineEffectRegBuffers + mov r8, r0 + ldr r7, _080BCED4 @ =gScanlineEffect + ldr r1, _080BCEDC @ =gTasks + adds r0, r5, r6 + lsls r0, 3 + adds r4, r0, r1 +_080BCE6A: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r8 + ldrh r0, [r4, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080BCE6A +_080BCE84: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r9 + adds r1, r0, r2 + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080BCEE6 + movs r0, 0x3 + mov r2, r12 + strb r0, [r2, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r1, 0x9C + lsls r1, 8 + movs r0, 0xA + bl SetGpuReg + movs r1, 0xBC + lsls r1, 7 + movs r0, 0xC + bl SetGpuReg + b _080BCEE6 + .align 2, 0 +_080BCECC: .4byte gUnknown_2022986 +_080BCED0: .4byte 0xfffffc04 +_080BCED4: .4byte gScanlineEffect +_080BCED8: .4byte gScanlineEffectRegBuffers +_080BCEDC: .4byte gTasks +_080BCEE0: + adds r0, r6, 0 + bl sub_80BC41C +_080BCEE6: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BCC4C + + thumb_func_start sub_80BCEF4 +sub_80BCEF4: @ 80BCEF4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + str r0, [sp] + adds r6, r2, 0 + adds r4, r3, 0 + ldr r0, [sp, 0x24] + ldr r7, [sp, 0x28] + ldr r2, [sp, 0x2C] + mov r9, r2 + ldr r5, [sp, 0x30] + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080BCFC4 @ =gMonSpritesGfxPtr + ldr r2, [r1] + lsls r4, 2 + adds r2, 0x4 + adds r2, r4 + ldr r1, _080BCFC8 @ =gBattleMonForms + adds r0, r1 + ldrb r1, [r0] + lsls r1, 11 + ldr r0, [r2] + adds r0, r1 + movs r2, 0x80 + lsls r2, 3 + adds r1, r7, 0 + bl CpuSet + ldr r1, [sp] + lsls r0, r1, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 5 + adds r1, r7, 0 + adds r3, r5, 0 + bl LoadBgTiles + adds r0, r6, 0 + adds r0, 0x8 + cmp r6, r0 + bge _080BCFA0 + mov r12, r0 + mov r2, r8 + lsls r7, r2, 1 +_080BCF72: + mov r1, r8 + adds r2, r1, 0 + adds r2, 0x8 + adds r4, r6, 0x1 + cmp r1, r2 + bge _080BCF9A + mov r0, r10 + lsls r3, r0, 12 + lsls r0, r6, 6 + add r0, r9 + adds r6, r7, r0 + subs r1, r2, r1 +_080BCF8A: + adds r0, r5, 0 + orrs r0, r3 + strh r0, [r6] + adds r5, 0x1 + adds r6, 0x2 + subs r1, 0x1 + cmp r1, 0 + bne _080BCF8A +_080BCF9A: + adds r6, r4, 0 + cmp r6, r12 + blt _080BCF72 +_080BCFA0: + ldr r1, [sp] + lsls r0, r1, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 4 + mov r1, r9 + movs r3, 0 + bl LoadBgTilemap + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCFC4: .4byte gMonSpritesGfxPtr +_080BCFC8: .4byte gBattleMonForms + thumb_func_end sub_80BCEF4 + + thumb_func_start sub_80BCFCC +sub_80BCFCC: @ 80BCFCC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, [sp, 0x24] + ldr r5, [sp, 0x28] + mov r8, r5 + ldr r5, [sp, 0x2C] + ldr r6, [sp, 0x30] + mov r9, r6 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r1, 24 + lsls r2, 24 + lsls r3, 24 + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + mov r7, r8 + lsls r7, 16 + lsrs r6, r7, 16 + lsls r5, 24 + lsrs r5, 24 + mov r0, r9 + lsls r0, 24 + mov r9, r0 + ldr r4, _080BD090 @ =0x040000d4 + ldr r0, _080BD094 @ =gMonSpritesGfxPtr + ldr r0, [r0] + lsrs r2, 22 + adds r0, 0x4 + adds r0, r2 + lsrs r3, 13 + ldr r0, [r0] + adds r0, r3 + str r0, [r4] + movs r0, 0xC0 + lsls r0, 19 + adds r6, r0 + str r6, [r4, 0x4] + ldr r0, _080BD098 @ =0x80000400 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r2, r7, 0 + lsrs r2, 21 + mov r6, r9 + lsrs r6, 15 + subs r4, r2, r6 + lsrs r0, r1, 24 + adds r1, r0, 0 + adds r1, 0x8 + cmp r0, r1 + bge _080BD080 + mov r9, r1 + mov r7, r12 + lsls r7, 1 + mov r8, r7 + lsls r5, 11 + str r5, [sp] +_080BD048: + mov r2, r12 + adds r3, r2, 0 + adds r3, 0x8 + adds r5, r0, 0x1 + cmp r2, r3 + bge _080BD07A + mov r1, r10 + lsls r6, r1, 12 + lsls r0, 6 + movs r7, 0xC0 + lsls r7, 19 + adds r0, r7 + ldr r1, [sp] + adds r0, r1, r0 + mov r7, r8 + adds r1, r7, r0 + subs r2, r3, r2 +_080BD06A: + adds r0, r4, 0 + orrs r0, r6 + strh r0, [r1] + adds r4, 0x1 + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _080BD06A +_080BD07A: + adds r0, r5, 0 + cmp r0, r9 + blt _080BD048 +_080BD080: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD090: .4byte 0x040000d4 +_080BD094: .4byte gMonSpritesGfxPtr +_080BD098: .4byte 0x80000400 + thumb_func_end sub_80BCFCC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s index d5a9b8ae6..873fa088c 100644 --- a/asm/battle_controller_link_opponent.s +++ b/asm/battle_controller_link_opponent.s @@ -70,7 +70,7 @@ _0803A6D0: sub_803A6D4: @ 803A6D4 push {lr} ldr r2, _0803A6FC @ =gSprites - ldr r1, _0803A700 @ =gUnknown_2023D44 + ldr r1, _0803A700 @ =gBattlerSpriteIds ldr r0, _0803A704 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -90,7 +90,7 @@ _0803A6F8: bx r0 .align 2, 0 _0803A6FC: .4byte gSprites -_0803A700: .4byte gUnknown_2023D44 +_0803A700: .4byte gBattlerSpriteIds _0803A704: .4byte gActiveBattler _0803A708: .4byte SpriteCallbackDummy thumb_func_end sub_803A6D4 @@ -99,7 +99,7 @@ _0803A708: .4byte SpriteCallbackDummy sub_803A70C: @ 803A70C push {r4-r6,lr} ldr r4, _0803A784 @ =gSprites - ldr r6, _0803A788 @ =gUnknown_2023D44 + ldr r6, _0803A788 @ =gBattlerSpriteIds ldr r5, _0803A78C @ =gActiveBattler ldrb r0, [r5] adds r0, r6 @@ -155,7 +155,7 @@ _0803A77C: bx r0 .align 2, 0 _0803A784: .4byte gSprites -_0803A788: .4byte gUnknown_2023D44 +_0803A788: .4byte gBattlerSpriteIds _0803A78C: .4byte gActiveBattler _0803A790: .4byte SpriteCallbackDummy _0803A794: .4byte 0x000003ff @@ -714,7 +714,7 @@ _0803AC10: .4byte sub_803A7E4 sub_803AC14: @ 803AC14 push {r4-r7,lr} ldr r2, _0803AC70 @ =gSprites - ldr r0, _0803AC74 @ =gUnknown_2023D44 + ldr r0, _0803AC74 @ =gBattlerSpriteIds ldr r7, _0803AC78 @ =gActiveBattler ldrb r3, [r7] adds r0, r3, r0 @@ -758,7 +758,7 @@ sub_803AC14: @ 803AC14 b _0803ACC0 .align 2, 0 _0803AC70: .4byte gSprites -_0803AC74: .4byte gUnknown_2023D44 +_0803AC74: .4byte gBattlerSpriteIds _0803AC78: .4byte gActiveBattler _0803AC7C: .4byte gUnknown_2024018 _0803AC80: .4byte gBattlerPartyIndexes @@ -842,7 +842,7 @@ _0803AD18: sub_803AD20: @ 803AD20 push {lr} ldr r2, _0803AD54 @ =gSprites - ldr r0, _0803AD58 @ =gUnknown_2023D44 + ldr r0, _0803AD58 @ =gBattlerSpriteIds ldr r1, _0803AD5C @ =gActiveBattler ldrb r3, [r1] adds r0, r3, r0 @@ -866,7 +866,7 @@ _0803AD4E: bx r0 .align 2, 0 _0803AD54: .4byte gSprites -_0803AD58: .4byte gUnknown_2023D44 +_0803AD58: .4byte gBattlerSpriteIds _0803AD5C: .4byte gActiveBattler _0803AD60: .4byte gUnknown_3004FF0 thumb_func_end sub_803AD20 @@ -888,7 +888,7 @@ sub_803AD64: @ 803AD64 ands r0, r1 cmp r0, 0 bne _0803ADBE - ldr r5, _0803ADCC @ =gUnknown_2023D44 + ldr r5, _0803ADCC @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -920,7 +920,7 @@ _0803ADBE: .align 2, 0 _0803ADC4: .4byte gUnknown_2024018 _0803ADC8: .4byte gActiveBattler -_0803ADCC: .4byte gUnknown_2023D44 +_0803ADCC: .4byte gBattlerSpriteIds _0803ADD0: .4byte gSprites _0803ADD4: .4byte gUnknown_3004FF0 thumb_func_end sub_803AD64 @@ -942,7 +942,7 @@ _0803ADEA: thumb_func_start DoHitAnimBlinkSpriteEffect_4 DoHitAnimBlinkSpriteEffect_4: @ 803ADF0 push {r4,lr} - ldr r1, _0803AE2C @ =gUnknown_2023D44 + ldr r1, _0803AE2C @ =gBattlerSpriteIds ldr r0, _0803AE30 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -970,7 +970,7 @@ DoHitAnimBlinkSpriteEffect_4: @ 803ADF0 bl RecordedOpponentBufferExecCompleted b _0803AE66 .align 2, 0 -_0803AE2C: .4byte gUnknown_2023D44 +_0803AE2C: .4byte gBattlerSpriteIds _0803AE30: .4byte gActiveBattler _0803AE34: .4byte gSprites _0803AE38: .4byte gUnknown_2024005 @@ -1132,7 +1132,7 @@ sub_803AF28: @ 803AF28 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag - ldr r1, _0803AFE0 @ =gUnknown_2023D44 + ldr r1, _0803AFE0 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -1179,7 +1179,7 @@ _0803AFCC: _0803AFD4: .4byte gUnknown_2024018 _0803AFD8: .4byte gActiveBattler _0803AFDC: .4byte 0x000027f9 -_0803AFE0: .4byte gUnknown_2023D44 +_0803AFE0: .4byte gBattlerSpriteIds _0803AFE4: .4byte gSprites _0803AFE8: .4byte gUnknown_3004FF0 _0803AFEC: .4byte gBattlerPartyIndexes @@ -3576,7 +3576,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _0803C4E8 @ =gMultiuseSpriteTemplate mov r8, r0 ldrb r0, [r6] @@ -3599,7 +3599,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _0803C4EC @ =gUnknown_2023D44 + ldr r4, _0803C4EC @ =gBattlerSpriteIds ldrb r1, [r6] adds r1, r4 strb r0, [r1] @@ -3678,7 +3678,7 @@ _0803C4DC: .4byte gBattlerPartyIndexes _0803C4E0: .4byte gActiveBattler _0803C4E4: .4byte gEnemyParty _0803C4E8: .4byte gMultiuseSpriteTemplate -_0803C4EC: .4byte gUnknown_2023D44 +_0803C4EC: .4byte gBattlerSpriteIds _0803C4F0: .4byte gSprites _0803C4F4: .4byte 0x0000ff10 _0803C4F8: .4byte gBattleMonForms @@ -3780,7 +3780,7 @@ sub_803C550: @ 803C550 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _0803C6C0 @ =gMultiuseSpriteTemplate mov r9, r0 adds r0, r6, 0 @@ -3803,7 +3803,7 @@ sub_803C550: @ 803C550 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _0803C6C4 @ =gUnknown_2023D44 + ldr r4, _0803C6C4 @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _0803C6C8 @ =gSprites @@ -3893,7 +3893,7 @@ _0803C6B4: .4byte gEnemyParty _0803C6B8: .4byte sub_8033E3C _0803C6BC: .4byte gUnknown_3004FFC _0803C6C0: .4byte gMultiuseSpriteTemplate -_0803C6C4: .4byte gUnknown_2023D44 +_0803C6C4: .4byte gBattlerSpriteIds _0803C6C8: .4byte gSprites _0803C6CC: .4byte gBattleMonForms _0803C6D0: .4byte SpriteCallbackDummy @@ -3933,7 +3933,7 @@ _0803C710: .4byte gUnknown_2024018 _0803C714: .4byte gUnknown_3004FE0 _0803C718: .4byte sub_803C76C _0803C71C: - ldr r5, _0803C760 @ =gUnknown_2023D44 + ldr r5, _0803C760 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -3963,7 +3963,7 @@ _0803C758: pop {r0} bx r0 .align 2, 0 -_0803C760: .4byte gUnknown_2023D44 +_0803C760: .4byte gBattlerSpriteIds _0803C764: .4byte gSprites _0803C768: .4byte gUnknown_3004FF0 thumb_func_end LinkOpponentHandleReturnPokeToBall @@ -4278,7 +4278,7 @@ _0803C992: adds r1, r6, 0 adds r2, r4, 0 bl CreateSprite - ldr r5, _0803CAD8 @ =gUnknown_2023D44 + ldr r5, _0803CAD8 @ =gBattlerSpriteIds mov r2, r8 ldrb r1, [r2] adds r1, r5 @@ -4302,7 +4302,7 @@ _0803C992: adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] - ldr r0, _0803CAE4 @ =gUnknown_8239A1C + ldr r0, _0803CAE4 @ =gTrainerFrontPicPaletteTable mov r1, r9 lsls r6, r1, 3 adds r0, r6, r0 @@ -4334,7 +4334,7 @@ _0803C992: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _0803CAE8 @ =gUnknown_823957C + ldr r0, _0803CAE8 @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag @@ -4392,11 +4392,11 @@ _0803CAC8: .4byte gFacilityClassToPicIndex _0803CACC: .4byte gActiveBattler _0803CAD0: .4byte gMultiuseSpriteTemplate _0803CAD4: .4byte gUnknown_823932C -_0803CAD8: .4byte gUnknown_2023D44 +_0803CAD8: .4byte gBattlerSpriteIds _0803CADC: .4byte gSprites _0803CAE0: .4byte 0x0000ff10 -_0803CAE4: .4byte gUnknown_8239A1C -_0803CAE8: .4byte gUnknown_823957C +_0803CAE4: .4byte gTrainerFrontPicPaletteTable +_0803CAE8: .4byte gTrainerFrontPicTable _0803CAEC: .4byte 0x000003ff _0803CAF0: .4byte 0xfffffc00 _0803CAF4: .4byte sub_8033EEC @@ -4415,7 +4415,7 @@ sub_803CB00: @ 803CB00 thumb_func_start sub_803CB0C sub_803CB0C: @ 803CB0C push {r4-r6,lr} - ldr r6, _0803CB9C @ =gUnknown_2023D44 + ldr r6, _0803CB9C @ =gBattlerSpriteIds ldr r4, _0803CBA0 @ =gActiveBattler ldrb r0, [r4] adds r0, r6 @@ -4484,7 +4484,7 @@ sub_803CB0C: @ 803CB0C pop {r0} bx r0 .align 2, 0 -_0803CB9C: .4byte gUnknown_2023D44 +_0803CB9C: .4byte gBattlerSpriteIds _0803CBA0: .4byte gActiveBattler _0803CBA4: .4byte gSprites _0803CBA8: .4byte sub_8075590 @@ -4548,7 +4548,7 @@ _0803CC0C: movs r1, 0x3F bl PlaySE12WithPanning ldr r2, _0803CC50 @ =gSprites - ldr r1, _0803CC54 @ =gUnknown_2023D44 + ldr r1, _0803CC54 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -4571,7 +4571,7 @@ _0803CC48: bx r0 .align 2, 0 _0803CC50: .4byte gSprites -_0803CC54: .4byte gUnknown_2023D44 +_0803CC54: .4byte gBattlerSpriteIds _0803CC58: .4byte sub_8011EA0 _0803CC5C: .4byte gUnknown_3004FE0 _0803CC60: .4byte sub_803AD20 @@ -4633,7 +4633,7 @@ _0803CCA6: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _0803CD80 @ =gUnknown_2037F16 + ldr r5, _0803CD80 @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -4701,7 +4701,7 @@ _0803CCA6: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _0803CD94 @ =gUnknown_2037EE4 + ldr r3, _0803CD94 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4725,12 +4725,12 @@ _0803CCA6: .align 2, 0 _0803CD78: .4byte gActiveBattler _0803CD7C: .4byte gUnknown_2022BC4 -_0803CD80: .4byte gUnknown_2037F16 +_0803CD80: .4byte gAnimMoveTurn _0803CD84: .4byte gUnknown_2037EEC _0803CD88: .4byte gUnknown_2037EE8 _0803CD8C: .4byte gUnknown_2037EFE _0803CD90: .4byte gUnknown_2037F00 -_0803CD94: .4byte gUnknown_2037EE4 +_0803CD94: .4byte gAnimDisableStructPtr _0803CD98: .4byte gUnknown_2024008 _0803CD9C: ldr r0, _0803CDC0 @ =gUnknown_2024018 @@ -4952,10 +4952,10 @@ _0803CF40: thumb_func_start sub_803CF50 sub_803CF50: @ 803CF50 push {r4,lr} - ldr r0, _0803CF84 @ =gUnknown_2022974 + ldr r0, _0803CF84 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _0803CF88 @ =gUnknown_2022976 + ldr r0, _0803CF88 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _0803CF8C @ =gActiveBattler ldrb r4, [r0] @@ -4974,8 +4974,8 @@ sub_803CF50: @ 803CF50 bl sub_80D87BC b _0803CFA0 .align 2, 0 -_0803CF84: .4byte gUnknown_2022974 -_0803CF88: .4byte gUnknown_2022976 +_0803CF84: .4byte gBattle_BG0_X +_0803CF88: .4byte gBattle_BG0_Y _0803CF8C: .4byte gActiveBattler _0803CF90: .4byte gUnknown_2022BC6 _0803CF94: .4byte gDisplayedStringBattle @@ -5437,7 +5437,7 @@ _0803D2F0: .4byte gUnknown_2022870 RecordedOpponentHandleHitAnimation: @ 803D2F4 push {r4,lr} ldr r3, _0803D31C @ =gSprites - ldr r2, _0803D320 @ =gUnknown_2023D44 + ldr r2, _0803D320 @ =gBattlerSpriteIds ldr r4, _0803D324 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -5455,7 +5455,7 @@ RecordedOpponentHandleHitAnimation: @ 803D2F4 b _0803D352 .align 2, 0 _0803D31C: .4byte gSprites -_0803D320: .4byte gUnknown_2023D44 +_0803D320: .4byte gBattlerSpriteIds _0803D324: .4byte gActiveBattler _0803D328: ldr r1, _0803D358 @ =gUnknown_2024005 @@ -5612,7 +5612,7 @@ _0803D450: .4byte gUnknown_2023F4C thumb_func_start sub_803D454 sub_803D454: @ 803D454 push {r4-r6,lr} - ldr r5, _0803D534 @ =gUnknown_2023D44 + ldr r5, _0803D534 @ =gBattlerSpriteIds ldr r6, _0803D538 @ =gActiveBattler ldrb r0, [r6] adds r0, r5 @@ -5722,7 +5722,7 @@ _0803D516: pop {r0} bx r0 .align 2, 0 -_0803D534: .4byte gUnknown_2023D44 +_0803D534: .4byte gBattlerSpriteIds _0803D538: .4byte gActiveBattler _0803D53C: .4byte gSprites _0803D540: .4byte sub_8075590 @@ -6100,7 +6100,7 @@ RecordedOpponentHandleSpriteInvisibility: @ 803D834 cmp r0, 0 beq _0803D87A ldr r3, _0803D888 @ =gSprites - ldr r0, _0803D88C @ =gUnknown_2023D44 + ldr r0, _0803D88C @ =gBattlerSpriteIds ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -6133,7 +6133,7 @@ _0803D87A: .align 2, 0 _0803D884: .4byte gActiveBattler _0803D888: .4byte gSprites -_0803D88C: .4byte gUnknown_2023D44 +_0803D88C: .4byte gBattlerSpriteIds _0803D890: .4byte gUnknown_2022BC4 thumb_func_end RecordedOpponentHandleSpriteInvisibility @@ -6218,15 +6218,15 @@ RecordedOpponentHandleCmd55: @ 803D914 ldrb r2, [r0] cmp r2, 0x3 bne _0803D93C - ldr r0, _0803D938 @ =gUnknown_2023E8A + ldr r0, _0803D938 @ =gBattleOutcome strb r2, [r0] b _0803D944 .align 2, 0 _0803D930: .4byte gUnknown_2022BC4 _0803D934: .4byte gActiveBattler -_0803D938: .4byte gUnknown_2023E8A +_0803D938: .4byte gBattleOutcome _0803D93C: - ldr r0, _0803D968 @ =gUnknown_2023E8A + ldr r0, _0803D968 @ =gBattleOutcome movs r1, 0x3 eors r1, r2 strb r1, [r0] @@ -6246,7 +6246,7 @@ _0803D944: pop {r0} bx r0 .align 2, 0 -_0803D968: .4byte gUnknown_2023E8A +_0803D968: .4byte gBattleOutcome _0803D96C: .4byte gUnknown_3004FE0 _0803D970: .4byte gActiveBattler _0803D974: .4byte sub_802F6A8 diff --git a/asm/battle_controller_link_partner.s b/asm/battle_controller_link_partner.s index 7480e8b12..8da94bdce 100644 --- a/asm/battle_controller_link_partner.s +++ b/asm/battle_controller_link_partner.s @@ -70,7 +70,7 @@ _080D426C: sub_80D4270: @ 80D4270 push {lr} ldr r2, _080D4298 @ =gSprites - ldr r1, _080D429C @ =gUnknown_2023D44 + ldr r1, _080D429C @ =gBattlerSpriteIds ldr r0, _080D42A0 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -90,7 +90,7 @@ _080D4294: bx r0 .align 2, 0 _080D4298: .4byte gSprites -_080D429C: .4byte gUnknown_2023D44 +_080D429C: .4byte gBattlerSpriteIds _080D42A0: .4byte gActiveBattler _080D42A4: .4byte SpriteCallbackDummy thumb_func_end sub_80D4270 @@ -99,7 +99,7 @@ _080D42A4: .4byte SpriteCallbackDummy sub_80D42A8: @ 80D42A8 push {r4-r6,lr} ldr r6, _080D4300 @ =gSprites - ldr r5, _080D4304 @ =gUnknown_2023D44 + ldr r5, _080D4304 @ =gBattlerSpriteIds ldr r4, _080D4308 @ =gActiveBattler ldrb r0, [r4] adds r0, r5 @@ -139,7 +139,7 @@ _080D42F8: bx r0 .align 2, 0 _080D4300: .4byte gSprites -_080D4304: .4byte gUnknown_2023D44 +_080D4304: .4byte gBattlerSpriteIds _080D4308: .4byte gActiveBattler _080D430C: .4byte SpriteCallbackDummy thumb_func_end sub_80D42A8 @@ -456,7 +456,7 @@ _080D458C: .4byte sub_80D4358 sub_80D4590: @ 80D4590 push {lr} ldr r2, _080D45C4 @ =gSprites - ldr r1, _080D45C8 @ =gUnknown_2023D44 + ldr r1, _080D45C8 @ =gBattlerSpriteIds ldr r0, _080D45CC @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -481,7 +481,7 @@ _080D45BE: bx r0 .align 2, 0 _080D45C4: .4byte gSprites -_080D45C8: .4byte gUnknown_2023D44 +_080D45C8: .4byte gBattlerSpriteIds _080D45CC: .4byte gActiveBattler thumb_func_end sub_80D4590 @@ -543,7 +543,7 @@ _080D463C: .4byte gPlayerParty sub_80D4640: @ 80D4640 push {r4-r6,lr} ldr r6, _080D4698 @ =gSprites - ldr r5, _080D469C @ =gUnknown_2023D44 + ldr r5, _080D469C @ =gBattlerSpriteIds ldr r4, _080D46A0 @ =gActiveBattler ldrb r0, [r4] adds r0, r5 @@ -583,7 +583,7 @@ _080D4690: bx r0 .align 2, 0 _080D4698: .4byte gSprites -_080D469C: .4byte gUnknown_2023D44 +_080D469C: .4byte gBattlerSpriteIds _080D46A0: .4byte gActiveBattler _080D46A4: .4byte gUnknown_3004FF0 thumb_func_end sub_80D4640 @@ -605,7 +605,7 @@ sub_80D46A8: @ 80D46A8 ands r0, r1 cmp r0, 0 bne _080D46FC - ldr r5, _080D470C @ =gUnknown_2023D44 + ldr r5, _080D470C @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -635,7 +635,7 @@ _080D46FC: .align 2, 0 _080D4704: .4byte gUnknown_2024018 _080D4708: .4byte gActiveBattler -_080D470C: .4byte gUnknown_2023D44 +_080D470C: .4byte gBattlerSpriteIds _080D4710: .4byte gSprites _080D4714: .4byte gUnknown_3004FF0 thumb_func_end sub_80D46A8 @@ -657,7 +657,7 @@ _080D472A: thumb_func_start sub_80D4730 sub_80D4730: @ 80D4730 push {r4,lr} - ldr r1, _080D476C @ =gUnknown_2023D44 + ldr r1, _080D476C @ =gBattlerSpriteIds ldr r0, _080D4770 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -685,7 +685,7 @@ sub_80D4730: @ 80D4730 bl sub_80D49E8 b _080D47A6 .align 2, 0 -_080D476C: .4byte gUnknown_2023D44 +_080D476C: .4byte gBattlerSpriteIds _080D4770: .4byte gActiveBattler _080D4774: .4byte gSprites _080D4778: .4byte gUnknown_2024005 @@ -852,7 +852,7 @@ sub_80D484C: @ 80D484C ldr r5, _080D492C @ =gPlayerParty adds r0, r5 bl HandleLowHpMusicChange - ldr r1, _080D4930 @ =gUnknown_2023D44 + ldr r1, _080D4930 @ =gBattlerSpriteIds ldrb r0, [r7] adds r0, r1 ldrb r1, [r0] @@ -901,7 +901,7 @@ _080D4920: .4byte 0x000027f9 _080D4924: .4byte c3_0802FDF4 _080D4928: .4byte gBattlerPartyIndexes _080D492C: .4byte gPlayerParty -_080D4930: .4byte gUnknown_2023D44 +_080D4930: .4byte gBattlerSpriteIds _080D4934: .4byte gSprites _080D4938: .4byte gUnknown_3004FF0 _080D493C: .4byte gUnknown_3004FE0 @@ -3370,7 +3370,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080D5EB4 @ =gMultiuseSpriteTemplate mov r8, r0 ldrb r0, [r6] @@ -3393,7 +3393,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _080D5EB8 @ =gUnknown_2023D44 + ldr r4, _080D5EB8 @ =gBattlerSpriteIds ldrb r1, [r6] adds r1, r4 strb r0, [r1] @@ -3455,7 +3455,7 @@ _080D5EA8: .4byte gBattlerPartyIndexes _080D5EAC: .4byte gActiveBattler _080D5EB0: .4byte gPlayerParty _080D5EB4: .4byte gMultiuseSpriteTemplate -_080D5EB8: .4byte gUnknown_2023D44 +_080D5EB8: .4byte gBattlerSpriteIds _080D5EBC: .4byte gSprites _080D5EC0: .4byte 0x0000ff10 _080D5EC4: .4byte gBattleMonForms @@ -3562,7 +3562,7 @@ sub_80D5F40: @ 80D5F40 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080D6098 @ =gMultiuseSpriteTemplate mov r10, r0 adds r0, r6, 0 @@ -3585,7 +3585,7 @@ sub_80D5F40: @ 80D5F40 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _080D609C @ =gUnknown_2023D44 + ldr r4, _080D609C @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _080D60A0 @ =gSprites @@ -3675,7 +3675,7 @@ _080D608C: .4byte gPlayerParty _080D6090: .4byte sub_8033E3C _080D6094: .4byte gUnknown_3004FFC _080D6098: .4byte gMultiuseSpriteTemplate -_080D609C: .4byte gUnknown_2023D44 +_080D609C: .4byte gBattlerSpriteIds _080D60A0: .4byte gSprites _080D60A4: .4byte gBattleMonForms _080D60A8: .4byte SpriteCallbackDummy @@ -3715,7 +3715,7 @@ _080D60E8: .4byte gUnknown_2024018 _080D60EC: .4byte gUnknown_3004FE0 _080D60F0: .4byte sub_80D613C _080D60F4: - ldr r5, _080D6130 @ =gUnknown_2023D44 + ldr r5, _080D6130 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -3743,7 +3743,7 @@ _080D612A: pop {r0} bx r0 .align 2, 0 -_080D6130: .4byte gUnknown_2023D44 +_080D6130: .4byte gBattlerSpriteIds _080D6134: .4byte gSprites _080D6138: .4byte gUnknown_3004FF0 thumb_func_end LinkPartnerHandleReturnPokeToBall @@ -3926,7 +3926,7 @@ _080D6258: mov r1, r8 adds r2, r4, 0 bl CreateSprite - ldr r6, _080D6324 @ =gUnknown_2023D44 + ldr r6, _080D6324 @ =gBattlerSpriteIds ldrb r1, [r5] adds r1, r6 strb r0, [r1] @@ -3987,7 +3987,7 @@ _080D6258: _080D6318: .4byte gActiveBattler _080D631C: .4byte gMultiuseSpriteTemplate _080D6320: .4byte gUnknown_8239F8C -_080D6324: .4byte gUnknown_2023D44 +_080D6324: .4byte gBattlerSpriteIds _080D6328: .4byte gSprites _080D632C: .4byte 0x0000fffe _080D6330: .4byte sub_8033EEC @@ -4006,7 +4006,7 @@ sub_80D633C: @ 80D633C thumb_func_start sub_80D6348 sub_80D6348: @ 80D6348 push {r4-r6,lr} - ldr r6, _080D63D4 @ =gUnknown_2023D44 + ldr r6, _080D63D4 @ =gBattlerSpriteIds ldr r4, _080D63D8 @ =gActiveBattler ldrb r0, [r4] adds r0, r6 @@ -4074,7 +4074,7 @@ sub_80D6348: @ 80D6348 pop {r0} bx r0 .align 2, 0 -_080D63D4: .4byte gUnknown_2023D44 +_080D63D4: .4byte gBattlerSpriteIds _080D63D8: .4byte gActiveBattler _080D63DC: .4byte gSprites _080D63E0: .4byte 0x0000ffd8 @@ -4150,7 +4150,7 @@ _080D6448: movs r0, 0x10 bl PlaySE12WithPanning ldr r2, _080D64CC @ =gSprites - ldr r3, _080D64D0 @ =gUnknown_2023D44 + ldr r3, _080D64D0 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] @@ -4192,7 +4192,7 @@ _080D64BE: _080D64C4: .4byte gBattlerPartyIndexes _080D64C8: .4byte gPlayerParty _080D64CC: .4byte gSprites -_080D64D0: .4byte gUnknown_2023D44 +_080D64D0: .4byte gBattlerSpriteIds _080D64D4: .4byte sub_8012110 _080D64D8: .4byte gUnknown_3004FE0 _080D64DC: .4byte sub_80D4640 @@ -4254,7 +4254,7 @@ _080D6522: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _080D65FC @ =gUnknown_2037F16 + ldr r5, _080D65FC @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -4322,7 +4322,7 @@ _080D6522: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _080D6610 @ =gUnknown_2037EE4 + ldr r3, _080D6610 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4346,12 +4346,12 @@ _080D6522: .align 2, 0 _080D65F4: .4byte gActiveBattler _080D65F8: .4byte gUnknown_2022BC4 -_080D65FC: .4byte gUnknown_2037F16 +_080D65FC: .4byte gAnimMoveTurn _080D6600: .4byte gUnknown_2037EEC _080D6604: .4byte gUnknown_2037EE8 _080D6608: .4byte gUnknown_2037EFE _080D660C: .4byte gUnknown_2037F00 -_080D6610: .4byte gUnknown_2037EE4 +_080D6610: .4byte gAnimDisableStructPtr _080D6614: .4byte gUnknown_2024008 _080D6618: ldr r0, _080D663C @ =gUnknown_2024018 @@ -4573,10 +4573,10 @@ _080D67BC: thumb_func_start sub_80D67CC sub_80D67CC: @ 80D67CC push {r4,lr} - ldr r0, _080D6800 @ =gUnknown_2022974 + ldr r0, _080D6800 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080D6804 @ =gUnknown_2022976 + ldr r0, _080D6804 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _080D6808 @ =gActiveBattler ldrb r4, [r0] @@ -4595,8 +4595,8 @@ sub_80D67CC: @ 80D67CC bl sub_80D87BC b _080D681C .align 2, 0 -_080D6800: .4byte gUnknown_2022974 -_080D6804: .4byte gUnknown_2022976 +_080D6800: .4byte gBattle_BG0_X +_080D6804: .4byte gBattle_BG0_Y _080D6808: .4byte gActiveBattler _080D680C: .4byte gUnknown_2022BC6 _080D6810: .4byte gDisplayedStringBattle @@ -5058,7 +5058,7 @@ _080D6B6C: .4byte gUnknown_2022870 LinkPartnerHandleHitAnimation: @ 80D6B70 push {r4,lr} ldr r3, _080D6B98 @ =gSprites - ldr r2, _080D6B9C @ =gUnknown_2023D44 + ldr r2, _080D6B9C @ =gBattlerSpriteIds ldr r4, _080D6BA0 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -5076,7 +5076,7 @@ LinkPartnerHandleHitAnimation: @ 80D6B70 b _080D6BCE .align 2, 0 _080D6B98: .4byte gSprites -_080D6B9C: .4byte gUnknown_2023D44 +_080D6B9C: .4byte gBattlerSpriteIds _080D6BA0: .4byte gActiveBattler _080D6BA4: ldr r1, _080D6BD4 @ =gUnknown_2024005 @@ -5234,7 +5234,7 @@ _080D6CD0: .4byte gUnknown_2023F4C thumb_func_start sub_80D6CD4 sub_80D6CD4: @ 80D6CD4 push {r4-r7,lr} - ldr r5, _080D6DDC @ =gUnknown_2023D44 + ldr r5, _080D6DDC @ =gBattlerSpriteIds ldr r6, _080D6DE0 @ =gActiveBattler ldrb r0, [r6] adds r0, r5 @@ -5358,7 +5358,7 @@ _080D6DC2: adds r0, 0x2 b _080D6E0C .align 2, 0 -_080D6DDC: .4byte gUnknown_2023D44 +_080D6DDC: .4byte gBattlerSpriteIds _080D6DE0: .4byte gActiveBattler _080D6DE4: .4byte gSprites _080D6DE8: .4byte 0x0000ffd8 @@ -5386,7 +5386,7 @@ _080D6E0C: movs r2, 0x20 bl LoadCompressedPalette ldr r2, _080D6EA8 @ =gSprites - ldr r1, _080D6EAC @ =gUnknown_2023D44 + ldr r1, _080D6EAC @ =gBattlerSpriteIds ldr r5, _080D6EB0 @ =gActiveBattler ldrb r0, [r5] adds r0, r1 @@ -5453,7 +5453,7 @@ _080D6E86: .align 2, 0 _080D6EA4: .4byte gUnknown_8239FD4 _080D6EA8: .4byte gSprites -_080D6EAC: .4byte gUnknown_2023D44 +_080D6EAC: .4byte gBattlerSpriteIds _080D6EB0: .4byte gActiveBattler _080D6EB4: .4byte sub_80D6ED0 _080D6EB8: .4byte gTasks @@ -5781,7 +5781,7 @@ LinkPartnerHandleSpriteInvisibility: @ 80D7144 cmp r0, 0 beq _080D718A ldr r3, _080D7198 @ =gSprites - ldr r0, _080D719C @ =gUnknown_2023D44 + ldr r0, _080D719C @ =gBattlerSpriteIds ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -5814,7 +5814,7 @@ _080D718A: .align 2, 0 _080D7194: .4byte gActiveBattler _080D7198: .4byte gSprites -_080D719C: .4byte gUnknown_2023D44 +_080D719C: .4byte gBattlerSpriteIds _080D71A0: .4byte gUnknown_2022BC4 thumb_func_end LinkPartnerHandleSpriteInvisibility @@ -5890,7 +5890,7 @@ sub_80D7218: @ 80D7218 thumb_func_start LinkPartnerHandlecmd55 LinkPartnerHandlecmd55: @ 80D7224 push {r4,lr} - ldr r2, _080D725C @ =gUnknown_2023E8A + ldr r2, _080D725C @ =gBattleOutcome ldr r1, _080D7260 @ =gUnknown_2022BC4 ldr r4, _080D7264 @ =gActiveBattler ldrb r0, [r4] @@ -5914,7 +5914,7 @@ LinkPartnerHandlecmd55: @ 80D7224 pop {r0} bx r0 .align 2, 0 -_080D725C: .4byte gUnknown_2023E8A +_080D725C: .4byte gBattleOutcome _080D7260: .4byte gUnknown_2022BC4 _080D7264: .4byte gActiveBattler _080D7268: .4byte gUnknown_3004FE0 diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s index 29ae446f6..9f878733e 100644 --- a/asm/battle_controller_oak.s +++ b/asm/battle_controller_oak.s @@ -308,7 +308,7 @@ _080E77AC: bhi _080E7838 adds r0, r5, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem _080E780A: movs r0, 0x5 bl PlaySE @@ -422,7 +422,7 @@ _080E78D8: sub_80E78E0: @ 80E78E0 push {lr} ldr r2, _080E7908 @ =gSprites - ldr r1, _080E790C @ =gUnknown_2023D44 + ldr r1, _080E790C @ =gBattlerSpriteIds ldr r0, _080E7910 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -442,7 +442,7 @@ _080E7904: bx r0 .align 2, 0 _080E7908: .4byte gSprites -_080E790C: .4byte gUnknown_2023D44 +_080E790C: .4byte gBattlerSpriteIds _080E7910: .4byte gActiveBattler _080E7914: .4byte SpriteCallbackDummy thumb_func_end sub_80E78E0 @@ -1653,7 +1653,7 @@ _080E82F0: .4byte sub_80E8930 sub_80E82F4: @ 80E82F4 push {r4-r6,lr} ldr r6, _080E834C @ =gSprites - ldr r5, _080E8350 @ =gUnknown_2023D44 + ldr r5, _080E8350 @ =gBattlerSpriteIds ldr r4, _080E8354 @ =gActiveBattler ldrb r0, [r4] adds r0, r5 @@ -1693,7 +1693,7 @@ _080E8344: bx r0 .align 2, 0 _080E834C: .4byte gSprites -_080E8350: .4byte gUnknown_2023D44 +_080E8350: .4byte gBattlerSpriteIds _080E8354: .4byte gActiveBattler _080E8358: .4byte gUnknown_3004FF0 thumb_func_end sub_80E82F4 @@ -2432,7 +2432,7 @@ _080E8942: thumb_func_start DoHitAnimBlinkSpriteEffect_3 DoHitAnimBlinkSpriteEffect_3: @ 80E8948 push {r4,lr} - ldr r1, _080E8984 @ =gUnknown_2023D44 + ldr r1, _080E8984 @ =gBattlerSpriteIds ldr r0, _080E8988 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -2460,7 +2460,7 @@ DoHitAnimBlinkSpriteEffect_3: @ 80E8948 bl WallyBufferExecCompleted b _080E89BE .align 2, 0 -_080E8984: .4byte gUnknown_2023D44 +_080E8984: .4byte gBattlerSpriteIds _080E8988: .4byte gActiveBattler _080E898C: .4byte gSprites _080E8990: .4byte gUnknown_2024005 @@ -2510,7 +2510,7 @@ sub_80E89C4: @ 80E89C4 ands r0, r1 cmp r0, 0 bne _080E8A18 - ldr r5, _080E8A28 @ =gUnknown_2023D44 + ldr r5, _080E8A28 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -2540,7 +2540,7 @@ _080E8A18: .align 2, 0 _080E8A20: .4byte gUnknown_2024018 _080E8A24: .4byte gActiveBattler -_080E8A28: .4byte gUnknown_2023D44 +_080E8A28: .4byte gBattlerSpriteIds _080E8A2C: .4byte gSprites _080E8A30: .4byte gUnknown_3004FF0 thumb_func_end sub_80E89C4 @@ -2549,7 +2549,7 @@ _080E8A30: .4byte gUnknown_3004FF0 sub_80E8A34: @ 80E8A34 push {lr} ldr r2, _080E8A5C @ =gSprites - ldr r1, _080E8A60 @ =gUnknown_2023D44 + ldr r1, _080E8A60 @ =gBattlerSpriteIds ldr r0, _080E8A64 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -2569,7 +2569,7 @@ _080E8A58: bx r0 .align 2, 0 _080E8A5C: .4byte gSprites -_080E8A60: .4byte gUnknown_2023D44 +_080E8A60: .4byte gBattlerSpriteIds _080E8A64: .4byte gActiveBattler _080E8A68: .4byte SpriteCallbackDummy thumb_func_end sub_80E8A34 @@ -4919,7 +4919,7 @@ _080E9E18: .4byte gActiveBattler _080E9E1C: .4byte gUnknown_3004FE0 _080E9E20: .4byte sub_80E89C4 _080E9E24: - ldr r5, _080E9E60 @ =gUnknown_2023D44 + ldr r5, _080E9E60 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -4947,7 +4947,7 @@ _080E9E5A: pop {r0} bx r0 .align 2, 0 -_080E9E60: .4byte gUnknown_2023D44 +_080E9E60: .4byte gBattlerSpriteIds _080E9E64: .4byte gSprites _080E9E68: .4byte gUnknown_3004FF0 thumb_func_end WallyHandleReturnMonToBall @@ -4993,7 +4993,7 @@ sub_80E9E6C: @ 80E9E6C movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r2, _080E9EDC @ =gUnknown_2023D44 + ldr r2, _080E9EDC @ =gBattlerSpriteIds ldrb r1, [r6] b _080E9F1C .align 2, 0 @@ -5002,7 +5002,7 @@ _080E9ECC: .4byte gSaveBlock2Ptr _080E9ED0: .4byte gActiveBattler _080E9ED4: .4byte gMultiuseSpriteTemplate _080E9ED8: .4byte gUnknown_8239F8C -_080E9EDC: .4byte gUnknown_2023D44 +_080E9EDC: .4byte gBattlerSpriteIds _080E9EE0: ldr r4, _080E9F8C @ =gActiveBattler ldrb r1, [r4] @@ -5028,13 +5028,13 @@ _080E9EE0: movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r2, _080E9F98 @ =gUnknown_2023D44 + ldr r2, _080E9F98 @ =gBattlerSpriteIds ldrb r1, [r4] _080E9F1C: adds r1, r2 strb r0, [r1] ldr r4, _080E9F9C @ =gSprites - ldr r5, _080E9F98 @ =gUnknown_2023D44 + ldr r5, _080E9F98 @ =gBattlerSpriteIds ldr r6, _080E9F8C @ =gActiveBattler ldrb r3, [r6] adds r0, r3, r5 @@ -5090,7 +5090,7 @@ _080E9F1C: _080E9F8C: .4byte gActiveBattler _080E9F90: .4byte gMultiuseSpriteTemplate _080E9F94: .4byte gUnknown_8239F8C -_080E9F98: .4byte gUnknown_2023D44 +_080E9F98: .4byte gBattlerSpriteIds _080E9F9C: .4byte gSprites _080E9FA0: .4byte 0x0000fffe _080E9FA4: .4byte sub_8033EEC @@ -5139,7 +5139,7 @@ sub_80E9FB0: @ 80E9FB0 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r2, _080EA020 @ =gUnknown_2023D44 + ldr r2, _080EA020 @ =gBattlerSpriteIds ldrb r1, [r6] b _080EA060 .align 2, 0 @@ -5148,7 +5148,7 @@ _080EA010: .4byte gSaveBlock2Ptr _080EA014: .4byte gActiveBattler _080EA018: .4byte gMultiuseSpriteTemplate _080EA01C: .4byte gUnknown_8239F8C -_080EA020: .4byte gUnknown_2023D44 +_080EA020: .4byte gBattlerSpriteIds _080EA024: ldr r4, _080EA0D0 @ =gActiveBattler ldrb r1, [r4] @@ -5174,13 +5174,13 @@ _080EA024: movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r2, _080EA0DC @ =gUnknown_2023D44 + ldr r2, _080EA0DC @ =gBattlerSpriteIds ldrb r1, [r4] _080EA060: adds r1, r2 strb r0, [r1] ldr r4, _080EA0E0 @ =gSprites - ldr r5, _080EA0DC @ =gUnknown_2023D44 + ldr r5, _080EA0DC @ =gBattlerSpriteIds ldr r6, _080EA0D0 @ =gActiveBattler ldrb r3, [r6] adds r0, r3, r5 @@ -5236,7 +5236,7 @@ _080EA060: _080EA0D0: .4byte gActiveBattler _080EA0D4: .4byte gMultiuseSpriteTemplate _080EA0D8: .4byte gUnknown_8239F8C -_080EA0DC: .4byte gUnknown_2023D44 +_080EA0DC: .4byte gBattlerSpriteIds _080EA0E0: .4byte gSprites _080EA0E4: .4byte 0x0000ffa0 _080EA0E8: .4byte sub_8033EEC @@ -5318,7 +5318,7 @@ _080EA154: movs r0, 0x10 bl PlaySE12WithPanning ldr r2, _080EA1D8 @ =gSprites - ldr r3, _080EA1DC @ =gUnknown_2023D44 + ldr r3, _080EA1DC @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] @@ -5360,7 +5360,7 @@ _080EA1CA: _080EA1D0: .4byte gBattlerPartyIndexes _080EA1D4: .4byte gPlayerParty _080EA1D8: .4byte gSprites -_080EA1DC: .4byte gUnknown_2023D44 +_080EA1DC: .4byte gBattlerSpriteIds _080EA1E0: .4byte sub_8012110 _080EA1E4: .4byte gUnknown_3004FE0 _080EA1E8: .4byte sub_80E82F4 @@ -5483,7 +5483,7 @@ sub_80EA2B8: @ 80EA2B8 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _080EA394 @ =gUnknown_2037F16 + ldr r5, _080EA394 @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -5551,7 +5551,7 @@ sub_80EA2B8: @ 80EA2B8 lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _080EA3A8 @ =gUnknown_2037EE4 + ldr r3, _080EA3A8 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -5575,12 +5575,12 @@ sub_80EA2B8: @ 80EA2B8 .align 2, 0 _080EA38C: .4byte gUnknown_2022BC4 _080EA390: .4byte gActiveBattler -_080EA394: .4byte gUnknown_2037F16 +_080EA394: .4byte gAnimMoveTurn _080EA398: .4byte gUnknown_2037EEC _080EA39C: .4byte gUnknown_2037EE8 _080EA3A0: .4byte gUnknown_2037EFE _080EA3A4: .4byte gUnknown_2037F00 -_080EA3A8: .4byte gUnknown_2037EE4 +_080EA3A8: .4byte gAnimDisableStructPtr _080EA3AC: .4byte gUnknown_2024008 _080EA3B0: ldr r0, _080EA3D4 @ =gUnknown_2024018 @@ -5776,10 +5776,10 @@ _080EA520: thumb_func_start sub_80EA52C sub_80EA52C: @ 80EA52C push {r4,lr} - ldr r0, _080EA55C @ =gUnknown_2022974 + ldr r0, _080EA55C @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080EA560 @ =gUnknown_2022976 + ldr r0, _080EA560 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _080EA564 @ =gActiveBattler ldrb r0, [r0] @@ -5799,8 +5799,8 @@ sub_80EA52C: @ 80EA52C bl WallyBufferExecCompleted b _080EA65A .align 2, 0 -_080EA55C: .4byte gUnknown_2022974 -_080EA560: .4byte gUnknown_2022976 +_080EA55C: .4byte gBattle_BG0_X +_080EA560: .4byte gBattle_BG0_Y _080EA564: .4byte gActiveBattler _080EA568: .4byte gUnknown_2022BC6 _080EA56C: .4byte gBattleTypeFlags @@ -5951,9 +5951,9 @@ sub_80EA690: @ 80EA690 lsrs r1, r0, 24 cmp r1, 0 bne _080EA6EA - ldr r0, _080EA6C4 @ =gUnknown_2022974 + ldr r0, _080EA6C4 @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _080EA6C8 @ =gUnknown_2022976 + ldr r1, _080EA6C8 @ =gBattle_BG0_Y movs r0, 0xA0 strh r0, [r1] ldr r0, _080EA6CC @ =gBattleTypeFlags @@ -5970,8 +5970,8 @@ sub_80EA690: @ 80EA690 ldr r1, _080EA6D8 @ =sub_80E763C b _080EA6E8 .align 2, 0 -_080EA6C4: .4byte gUnknown_2022974 -_080EA6C8: .4byte gUnknown_2022976 +_080EA6C4: .4byte gBattle_BG0_X +_080EA6C8: .4byte gBattle_BG0_Y _080EA6CC: .4byte gBattleTypeFlags _080EA6D0: .4byte gUnknown_3004FE0 _080EA6D4: .4byte gActiveBattler @@ -6074,9 +6074,9 @@ sub_80EA798: @ 80EA798 lsrs r1, r0, 24 cmp r1, 0 bne _080EA7C2 - ldr r0, _080EA7C8 @ =gUnknown_2022974 + ldr r0, _080EA7C8 @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _080EA7CC @ =gUnknown_2022976 + ldr r1, _080EA7CC @ =gBattle_BG0_Y movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 @@ -6092,8 +6092,8 @@ _080EA7C2: pop {r0} bx r0 .align 2, 0 -_080EA7C8: .4byte gUnknown_2022974 -_080EA7CC: .4byte gUnknown_2022976 +_080EA7C8: .4byte gBattle_BG0_X +_080EA7CC: .4byte gBattle_BG0_Y _080EA7D0: .4byte gUnknown_3004FE0 _080EA7D4: .4byte gActiveBattler _080EA7D8: .4byte sub_80E7988 @@ -6641,7 +6641,7 @@ sub_80EABFC: @ 80EABFC sub_80EAC08: @ 80EAC08 push {r4,lr} ldr r3, _080EAC30 @ =gSprites - ldr r2, _080EAC34 @ =gUnknown_2023D44 + ldr r2, _080EAC34 @ =gBattlerSpriteIds ldr r4, _080EAC38 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -6659,7 +6659,7 @@ sub_80EAC08: @ 80EAC08 b _080EAC66 .align 2, 0 _080EAC30: .4byte gSprites -_080EAC34: .4byte gUnknown_2023D44 +_080EAC34: .4byte gBattlerSpriteIds _080EAC38: .4byte gActiveBattler _080EAC3C: ldr r1, _080EAC6C @ =gUnknown_2024005 @@ -6812,7 +6812,7 @@ sub_80EAD54: @ 80EAD54 bne _080EAD64 b _080EAEE4 _080EAD64: - ldr r6, _080EAEA4 @ =gUnknown_2023D44 + ldr r6, _080EAEA4 @ =gBattlerSpriteIds ldr r7, _080EAEA8 @ =gActiveBattler ldrb r0, [r7] adds r0, r6 @@ -6966,7 +6966,7 @@ _080EAE84: b _080EAF18 .align 2, 0 _080EAEA0: .4byte gBattleTypeFlags -_080EAEA4: .4byte gUnknown_2023D44 +_080EAEA4: .4byte gBattlerSpriteIds _080EAEA8: .4byte gActiveBattler _080EAEAC: .4byte gSprites _080EAEB0: .4byte 0x0000ffd8 @@ -7071,7 +7071,7 @@ sub_80EAF34: @ 80EAF34 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080EB094 @ =gMultiuseSpriteTemplate mov r10, r0 adds r0, r6, 0 @@ -7094,7 +7094,7 @@ sub_80EAF34: @ 80EAF34 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _080EB098 @ =gUnknown_2023D44 + ldr r4, _080EB098 @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _080EB09C @ =gSprites @@ -7185,7 +7185,7 @@ _080EB088: .4byte gPlayerParty _080EB08C: .4byte sub_8033E3C _080EB090: .4byte gUnknown_3004FFC _080EB094: .4byte gMultiuseSpriteTemplate -_080EB098: .4byte gUnknown_2023D44 +_080EB098: .4byte gBattlerSpriteIds _080EB09C: .4byte gSprites _080EB0A0: .4byte gBattleMonForms _080EB0A4: .4byte SpriteCallbackDummy @@ -7435,7 +7435,7 @@ sub_80EB274: @ 80EB274 thumb_func_start sub_80EB280 sub_80EB280: @ 80EB280 push {r4,lr} - ldr r2, _080EB2C4 @ =gUnknown_2023E8A + ldr r2, _080EB2C4 @ =gBattleOutcome ldr r1, _080EB2C8 @ =gUnknown_2022BC4 ldr r4, _080EB2CC @ =gActiveBattler ldrb r0, [r4] @@ -7466,7 +7466,7 @@ _080EB2BC: pop {r0} bx r0 .align 2, 0 -_080EB2C4: .4byte gUnknown_2023E8A +_080EB2C4: .4byte gBattleOutcome _080EB2C8: .4byte gUnknown_2022BC4 _080EB2CC: .4byte gActiveBattler _080EB2D0: .4byte gBattleTypeFlags diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index 0405efdf1..0c94035ee 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -70,7 +70,7 @@ _08035AE4: sub_8035AE8: @ 8035AE8 push {lr} ldr r2, _08035B10 @ =gSprites - ldr r1, _08035B14 @ =gUnknown_2023D44 + ldr r1, _08035B14 @ =gBattlerSpriteIds ldr r0, _08035B18 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -90,7 +90,7 @@ _08035B0C: bx r0 .align 2, 0 _08035B10: .4byte gSprites -_08035B14: .4byte gUnknown_2023D44 +_08035B14: .4byte gBattlerSpriteIds _08035B18: .4byte gActiveBattler _08035B1C: .4byte SpriteCallbackDummy thumb_func_end sub_8035AE8 @@ -99,7 +99,7 @@ _08035B1C: .4byte SpriteCallbackDummy sub_8035B20: @ 8035B20 push {lr} ldr r2, _08035B48 @ =gSprites - ldr r1, _08035B4C @ =gUnknown_2023D44 + ldr r1, _08035B4C @ =gBattlerSpriteIds ldr r0, _08035B50 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -119,7 +119,7 @@ _08035B44: bx r0 .align 2, 0 _08035B48: .4byte gSprites -_08035B4C: .4byte gUnknown_2023D44 +_08035B4C: .4byte gBattlerSpriteIds _08035B50: .4byte gActiveBattler _08035B54: .4byte SpriteCallbackDummy thumb_func_end sub_8035B20 @@ -128,7 +128,7 @@ _08035B54: .4byte SpriteCallbackDummy sub_8035B58: @ 8035B58 push {r4-r6,lr} ldr r4, _08035BD0 @ =gSprites - ldr r6, _08035BD4 @ =gUnknown_2023D44 + ldr r6, _08035BD4 @ =gBattlerSpriteIds ldr r5, _08035BD8 @ =gActiveBattler ldrb r0, [r5] adds r0, r6 @@ -184,7 +184,7 @@ _08035BC8: bx r0 .align 2, 0 _08035BD0: .4byte gSprites -_08035BD4: .4byte gUnknown_2023D44 +_08035BD4: .4byte gBattlerSpriteIds _08035BD8: .4byte gActiveBattler _08035BDC: .4byte SpriteCallbackDummy _08035BE0: .4byte 0x000003ff @@ -685,7 +685,7 @@ _08035FE4: .4byte sub_8035C30 sub_8035FE8: @ 8035FE8 push {r4-r7,lr} ldr r2, _08036044 @ =gSprites - ldr r0, _08036048 @ =gUnknown_2023D44 + ldr r0, _08036048 @ =gBattlerSpriteIds ldr r7, _0803604C @ =gActiveBattler ldrb r3, [r7] adds r0, r3, r0 @@ -729,7 +729,7 @@ sub_8035FE8: @ 8035FE8 b _08036094 .align 2, 0 _08036044: .4byte gSprites -_08036048: .4byte gUnknown_2023D44 +_08036048: .4byte gBattlerSpriteIds _0803604C: .4byte gActiveBattler _08036050: .4byte gUnknown_2024018 _08036054: .4byte gBattlerPartyIndexes @@ -838,7 +838,7 @@ _08036124: sub_803612C: @ 803612C push {lr} ldr r2, _08036160 @ =gSprites - ldr r0, _08036164 @ =gUnknown_2023D44 + ldr r0, _08036164 @ =gBattlerSpriteIds ldr r1, _08036168 @ =gActiveBattler ldrb r3, [r1] adds r0, r3, r0 @@ -862,7 +862,7 @@ _0803615A: bx r0 .align 2, 0 _08036160: .4byte gSprites -_08036164: .4byte gUnknown_2023D44 +_08036164: .4byte gBattlerSpriteIds _08036168: .4byte gActiveBattler _0803616C: .4byte gUnknown_3004FF0 thumb_func_end sub_803612C @@ -884,7 +884,7 @@ sub_8036170: @ 8036170 ands r0, r1 cmp r0, 0 bne _080361CA - ldr r5, _080361D8 @ =gUnknown_2023D44 + ldr r5, _080361D8 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -916,7 +916,7 @@ _080361CA: .align 2, 0 _080361D0: .4byte gUnknown_2024018 _080361D4: .4byte gActiveBattler -_080361D8: .4byte gUnknown_2023D44 +_080361D8: .4byte gBattlerSpriteIds _080361DC: .4byte gSprites _080361E0: .4byte gUnknown_3004FF0 thumb_func_end sub_8036170 @@ -938,7 +938,7 @@ _080361F6: thumb_func_start sub_80361FC sub_80361FC: @ 80361FC push {r4,lr} - ldr r1, _08036238 @ =gUnknown_2023D44 + ldr r1, _08036238 @ =gBattlerSpriteIds ldr r0, _0803623C @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -966,7 +966,7 @@ sub_80361FC: @ 80361FC bl OpponentBufferExecCompleted b _08036272 .align 2, 0 -_08036238: .4byte gUnknown_2023D44 +_08036238: .4byte gBattlerSpriteIds _0803623C: .4byte gActiveBattler _08036240: .4byte gSprites _08036244: .4byte gUnknown_2024005 @@ -1128,7 +1128,7 @@ sub_8036334: @ 8036334 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag - ldr r1, _080363EC @ =gUnknown_2023D44 + ldr r1, _080363EC @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -1175,7 +1175,7 @@ _080363D8: _080363E0: .4byte gUnknown_2024018 _080363E4: .4byte gActiveBattler _080363E8: .4byte 0x000027f9 -_080363EC: .4byte gUnknown_2023D44 +_080363EC: .4byte gBattlerSpriteIds _080363F0: .4byte gSprites _080363F4: .4byte gUnknown_3004FF0 _080363F8: .4byte gBattlerPartyIndexes @@ -3649,7 +3649,7 @@ _080378AA: lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r6, _080379A0 @ =gMultiuseSpriteTemplate ldrb r0, [r7] movs r1, 0x2 @@ -3666,7 +3666,7 @@ _080378AA: adds r1, r4, 0 adds r2, r5, 0 bl CreateSprite - ldr r4, _080379A4 @ =gUnknown_2023D44 + ldr r4, _080379A4 @ =gBattlerSpriteIds ldrb r1, [r7] adds r1, r4 strb r0, [r1] @@ -3759,7 +3759,7 @@ _08037986: .align 2, 0 _0803799C: .4byte gActiveBattler _080379A0: .4byte gMultiuseSpriteTemplate -_080379A4: .4byte gUnknown_2023D44 +_080379A4: .4byte gBattlerSpriteIds _080379A8: .4byte gSprites _080379AC: .4byte 0x0000ff10 _080379B0: .4byte gBattleMonForms @@ -3872,7 +3872,7 @@ sub_8037A28: @ 8037A28 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _08037B98 @ =gMultiuseSpriteTemplate mov r9, r0 adds r0, r6, 0 @@ -3895,7 +3895,7 @@ sub_8037A28: @ 8037A28 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _08037B9C @ =gUnknown_2023D44 + ldr r4, _08037B9C @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _08037BA0 @ =gSprites @@ -3985,7 +3985,7 @@ _08037B8C: .4byte gEnemyParty _08037B90: .4byte sub_8033E3C _08037B94: .4byte gUnknown_3004FFC _08037B98: .4byte gMultiuseSpriteTemplate -_08037B9C: .4byte gUnknown_2023D44 +_08037B9C: .4byte gBattlerSpriteIds _08037BA0: .4byte gSprites _08037BA4: .4byte gBattleMonForms _08037BA8: .4byte SpriteCallbackDummy @@ -4025,7 +4025,7 @@ _08037BE8: .4byte gUnknown_2024018 _08037BEC: .4byte gUnknown_3004FE0 _08037BF0: .4byte sub_8037C44 _08037BF4: - ldr r5, _08037C38 @ =gUnknown_2023D44 + ldr r5, _08037C38 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -4055,7 +4055,7 @@ _08037C30: pop {r0} bx r0 .align 2, 0 -_08037C38: .4byte gUnknown_2023D44 +_08037C38: .4byte gBattlerSpriteIds _08037C3C: .4byte gSprites _08037C40: .4byte gUnknown_3004FF0 thumb_func_end sub_8037BAC @@ -4227,7 +4227,7 @@ _08037D3A: movs r1, 0xB0 adds r2, r4, 0 bl CreateSprite - ldr r5, _08037E7C @ =gUnknown_2023D44 + ldr r5, _08037E7C @ =gBattlerSpriteIds mov r2, r8 ldrb r1, [r2] adds r1, r5 @@ -4251,7 +4251,7 @@ _08037D3A: adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] - ldr r0, _08037E88 @ =gUnknown_8239A1C + ldr r0, _08037E88 @ =gTrainerFrontPicPaletteTable mov r1, r9 lsls r6, r1, 3 adds r0, r6, r0 @@ -4283,7 +4283,7 @@ _08037D3A: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _08037E8C @ =gUnknown_823957C + ldr r0, _08037E8C @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag @@ -4341,11 +4341,11 @@ _08037E6C: .4byte gTrainers _08037E70: .4byte gActiveBattler _08037E74: .4byte gMultiuseSpriteTemplate _08037E78: .4byte gUnknown_823932C -_08037E7C: .4byte gUnknown_2023D44 +_08037E7C: .4byte gBattlerSpriteIds _08037E80: .4byte gSprites _08037E84: .4byte 0x0000ff10 -_08037E88: .4byte gUnknown_8239A1C -_08037E8C: .4byte gUnknown_823957C +_08037E88: .4byte gTrainerFrontPicPaletteTable +_08037E8C: .4byte gTrainerFrontPicTable _08037E90: .4byte 0x000003ff _08037E94: .4byte 0xfffffc00 _08037E98: .4byte sub_8033EEC @@ -4439,7 +4439,7 @@ _08037F0E: movs r1, 0xB0 movs r3, 0x1E bl CreateSprite - ldr r5, _08038050 @ =gUnknown_2023D44 + ldr r5, _08038050 @ =gBattlerSpriteIds mov r2, r8 ldrb r1, [r2] adds r1, r5 @@ -4473,7 +4473,7 @@ _08037F0E: adds r0, r4 ldr r1, _08038058 @ =0x0000fffe strh r1, [r0, 0x2E] - ldr r0, _0803805C @ =gUnknown_8239A1C + ldr r0, _0803805C @ =gTrainerFrontPicPaletteTable mov r3, r9 lsls r6, r3, 3 adds r0, r6, r0 @@ -4505,7 +4505,7 @@ _08037F0E: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _08038060 @ =gUnknown_823957C + ldr r0, _08038060 @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag @@ -4561,11 +4561,11 @@ _08038040: .4byte gTrainers _08038044: .4byte gActiveBattler _08038048: .4byte gMultiuseSpriteTemplate _0803804C: .4byte gUnknown_823932C -_08038050: .4byte gUnknown_2023D44 +_08038050: .4byte gBattlerSpriteIds _08038054: .4byte gSprites _08038058: .4byte 0x0000fffe -_0803805C: .4byte gUnknown_8239A1C -_08038060: .4byte gUnknown_823957C +_0803805C: .4byte gTrainerFrontPicPaletteTable +_08038060: .4byte gTrainerFrontPicTable _08038064: .4byte 0x000003ff _08038068: .4byte 0xfffffc00 _0803806C: .4byte sub_8033EEC @@ -4576,7 +4576,7 @@ _08038074: .4byte sub_8035B20 thumb_func_start sub_8038078 sub_8038078: @ 8038078 push {r4-r6,lr} - ldr r6, _08038108 @ =gUnknown_2023D44 + ldr r6, _08038108 @ =gBattlerSpriteIds ldr r4, _0803810C @ =gActiveBattler ldrb r0, [r4] adds r0, r6 @@ -4645,7 +4645,7 @@ sub_8038078: @ 8038078 pop {r0} bx r0 .align 2, 0 -_08038108: .4byte gUnknown_2023D44 +_08038108: .4byte gBattlerSpriteIds _0803810C: .4byte gActiveBattler _08038110: .4byte gSprites _08038114: .4byte sub_8075590 @@ -4709,7 +4709,7 @@ _08038178: movs r1, 0x3F bl PlaySE12WithPanning ldr r2, _080381BC @ =gSprites - ldr r1, _080381C0 @ =gUnknown_2023D44 + ldr r1, _080381C0 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -4732,7 +4732,7 @@ _080381B4: bx r0 .align 2, 0 _080381BC: .4byte gSprites -_080381C0: .4byte gUnknown_2023D44 +_080381C0: .4byte gBattlerSpriteIds _080381C4: .4byte sub_8011EA0 _080381C8: .4byte gUnknown_3004FE0 _080381CC: .4byte sub_803612C @@ -4794,7 +4794,7 @@ _08038212: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _080382EC @ =gUnknown_2037F16 + ldr r5, _080382EC @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -4862,7 +4862,7 @@ _08038212: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _08038300 @ =gUnknown_2037EE4 + ldr r3, _08038300 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4886,12 +4886,12 @@ _08038212: .align 2, 0 _080382E4: .4byte gActiveBattler _080382E8: .4byte gUnknown_2022BC4 -_080382EC: .4byte gUnknown_2037F16 +_080382EC: .4byte gAnimMoveTurn _080382F0: .4byte gUnknown_2037EEC _080382F4: .4byte gUnknown_2037EE8 _080382F8: .4byte gUnknown_2037EFE _080382FC: .4byte gUnknown_2037F00 -_08038300: .4byte gUnknown_2037EE4 +_08038300: .4byte gAnimDisableStructPtr _08038304: .4byte gUnknown_2024008 _08038308: ldr r0, _0803832C @ =gUnknown_2024018 @@ -5113,10 +5113,10 @@ _080384AC: thumb_func_start sub_80384BC sub_80384BC: @ 80384BC push {r4,lr} - ldr r0, _080384F0 @ =gUnknown_2022974 + ldr r0, _080384F0 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080384F4 @ =gUnknown_2022976 + ldr r0, _080384F4 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _080384F8 @ =gActiveBattler ldrb r0, [r0] @@ -5135,8 +5135,8 @@ sub_80384BC: @ 80384BC bl sub_80D87BC b _0803850C .align 2, 0 -_080384F0: .4byte gUnknown_2022974 -_080384F4: .4byte gUnknown_2022976 +_080384F0: .4byte gBattle_BG0_X +_080384F4: .4byte gBattle_BG0_Y _080384F8: .4byte gActiveBattler _080384FC: .4byte gUnknown_2022BC6 _08038500: .4byte gDisplayedStringBattle @@ -5926,7 +5926,7 @@ _08038B1C: .4byte gUnknown_2022870 OpponentHandleHitAnimation: @ 8038B20 push {r4,lr} ldr r3, _08038B48 @ =gSprites - ldr r2, _08038B4C @ =gUnknown_2023D44 + ldr r2, _08038B4C @ =gBattlerSpriteIds ldr r4, _08038B50 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -5944,7 +5944,7 @@ OpponentHandleHitAnimation: @ 8038B20 b _08038B7E .align 2, 0 _08038B48: .4byte gSprites -_08038B4C: .4byte gUnknown_2023D44 +_08038B4C: .4byte gBattlerSpriteIds _08038B50: .4byte gActiveBattler _08038B54: ldr r1, _08038B84 @ =gUnknown_2024005 @@ -6101,7 +6101,7 @@ _08038C7C: .4byte gUnknown_2023F4C thumb_func_start sub_8038C80 sub_8038C80: @ 8038C80 push {r4-r6,lr} - ldr r5, _08038D60 @ =gUnknown_2023D44 + ldr r5, _08038D60 @ =gBattlerSpriteIds ldr r6, _08038D64 @ =gActiveBattler ldrb r0, [r6] adds r0, r5 @@ -6211,7 +6211,7 @@ _08038D42: pop {r0} bx r0 .align 2, 0 -_08038D60: .4byte gUnknown_2023D44 +_08038D60: .4byte gBattlerSpriteIds _08038D64: .4byte gActiveBattler _08038D68: .4byte gSprites _08038D6C: .4byte sub_8075590 @@ -6589,7 +6589,7 @@ sub_8039060: @ 8039060 cmp r0, 0 beq _080390A6 ldr r3, _080390B4 @ =gSprites - ldr r0, _080390B8 @ =gUnknown_2023D44 + ldr r0, _080390B8 @ =gBattlerSpriteIds ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -6622,7 +6622,7 @@ _080390A6: .align 2, 0 _080390B0: .4byte gActiveBattler _080390B4: .4byte gSprites -_080390B8: .4byte gUnknown_2023D44 +_080390B8: .4byte gBattlerSpriteIds _080390BC: .4byte gUnknown_2022BC4 thumb_func_end sub_8039060 diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s index 4db1f94c3..2a2419a7b 100644 --- a/asm/battle_controller_player.s +++ b/asm/battle_controller_player.s @@ -131,7 +131,7 @@ _0802E400: CompleteOnBankSpritePosX_0: @ 802E404 push {lr} ldr r2, _0802E42C @ =gSprites - ldr r1, _0802E430 @ =gUnknown_2023D44 + ldr r1, _0802E430 @ =gBattlerSpriteIds ldr r0, _0802E434 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -150,7 +150,7 @@ _0802E426: bx r0 .align 2, 0 _0802E42C: .4byte gSprites -_0802E430: .4byte gUnknown_2023D44 +_0802E430: .4byte gBattlerSpriteIds _0802E434: .4byte gActiveBattler thumb_func_end CompleteOnBankSpritePosX_0 @@ -381,7 +381,7 @@ _0802E5A8: bhi _0802E634 adds r0, r5, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem _0802E606: movs r0, 0x5 bl PlaySE @@ -480,7 +480,7 @@ _0802E6B6: movs r0, 0x5 bl PlaySE ldr r2, _0802E718 @ =gSprites - ldr r1, _0802E71C @ =gUnknown_2023D44 + ldr r1, _0802E71C @ =gBattlerSpriteIds ldr r4, _0802E70C @ =gUnknown_3004FF4 ldrb r0, [r4] adds r0, r1 @@ -514,7 +514,7 @@ _0802E70C: .4byte gUnknown_3004FF4 _0802E710: .4byte gBattlersCount _0802E714: .4byte gMain _0802E718: .4byte gSprites -_0802E71C: .4byte gUnknown_2023D44 +_0802E71C: .4byte gBattlerSpriteIds _0802E720: .4byte sub_8012098 _0802E724: .4byte gUnknown_2023FFC _0802E728: .4byte gActiveBattler @@ -526,7 +526,7 @@ _0802E72C: movs r0, 0x5 bl PlaySE ldr r2, _0802E784 @ =gSprites - ldr r1, _0802E788 @ =gUnknown_2023D44 + ldr r1, _0802E788 @ =gBattlerSpriteIds ldr r5, _0802E78C @ =gUnknown_3004FF4 ldrb r0, [r5] adds r0, r1 @@ -561,7 +561,7 @@ _0802E72C: b _0802E9DC .align 2, 0 _0802E784: .4byte gSprites -_0802E788: .4byte gUnknown_2023D44 +_0802E788: .4byte gBattlerSpriteIds _0802E78C: .4byte gUnknown_3004FF4 _0802E790: .4byte sub_8012098 _0802E794: .4byte gUnknown_3004FE0 @@ -577,7 +577,7 @@ _0802E7AA: movs r0, 0x5 bl PlaySE ldr r2, _0802E7DC @ =gSprites - ldr r1, _0802E7E0 @ =gUnknown_2023D44 + ldr r1, _0802E7E0 @ =gBattlerSpriteIds ldr r3, _0802E7E4 @ =gUnknown_3004FF4 ldrb r0, [r3] adds r0, r1 @@ -600,7 +600,7 @@ _0802E7CC: b _0802E7F6 .align 2, 0 _0802E7DC: .4byte gSprites -_0802E7E0: .4byte gUnknown_2023D44 +_0802E7E0: .4byte gBattlerSpriteIds _0802E7E4: .4byte gUnknown_3004FF4 _0802E7E8: .4byte sub_8012098 _0802E7EC: @@ -718,7 +718,7 @@ _0802E8CE: movs r0, 0x5 bl PlaySE ldr r2, _0802E900 @ =gSprites - ldr r1, _0802E904 @ =gUnknown_2023D44 + ldr r1, _0802E904 @ =gBattlerSpriteIds ldr r3, _0802E908 @ =gUnknown_3004FF4 ldrb r0, [r3] adds r0, r1 @@ -741,7 +741,7 @@ _0802E8F0: b _0802E91A .align 2, 0 _0802E900: .4byte gSprites -_0802E904: .4byte gUnknown_2023D44 +_0802E904: .4byte gBattlerSpriteIds _0802E908: .4byte gUnknown_3004FF4 _0802E90C: .4byte sub_8012098 _0802E910: @@ -841,7 +841,7 @@ _0802E9C0: beq _0802E8F0 _0802E9C4: ldr r2, _0802EA04 @ =gSprites - ldr r1, _0802EA08 @ =gUnknown_2023D44 + ldr r1, _0802EA08 @ =gBattlerSpriteIds ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -867,7 +867,7 @@ _0802E9F8: .4byte gAbsentBattlerFlags _0802E9FC: .4byte gBitTable _0802EA00: .4byte gUnknown_3004FF4 _0802EA04: .4byte gSprites -_0802EA08: .4byte gUnknown_2023D44 +_0802EA08: .4byte gBattlerSpriteIds _0802EA0C: .4byte sub_8012044 thumb_func_end sub_802E674 @@ -1095,7 +1095,7 @@ _0802EBDE: _0802EBE4: strb r0, [r1] ldr r2, _0802EC04 @ =gSprites - ldr r1, _0802EC08 @ =gUnknown_2023D44 + ldr r1, _0802EC08 @ =gBattlerSpriteIds ldr r0, _0802EC00 @ =gUnknown_3004FF4 ldrb r0, [r0] adds r0, r1 @@ -1110,7 +1110,7 @@ _0802EBE4: .align 2, 0 _0802EC00: .4byte gUnknown_3004FF4 _0802EC04: .4byte gSprites -_0802EC08: .4byte gUnknown_2023D44 +_0802EC08: .4byte gBattlerSpriteIds _0802EC0C: .4byte sub_8012044 _0802EC10: movs r7, 0x2 @@ -1354,10 +1354,10 @@ _0802EDF6: beq _0802EE18 movs r0, 0x5 bl PlaySE - ldr r1, _0802EF44 @ =gUnknown_2022974 + ldr r1, _0802EF44 @ =gBattle_BG0_X movs r0, 0 strh r0, [r1] - ldr r1, _0802EF48 @ =gUnknown_2022976 + ldr r1, _0802EF48 @ =gBattle_BG0_Y movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 @@ -1505,8 +1505,8 @@ _0802EF36: bx r1 .align 2, 0 _0802EF40: .4byte gMain -_0802EF44: .4byte gUnknown_2022974 -_0802EF48: .4byte gUnknown_2022976 +_0802EF44: .4byte gBattle_BG0_X +_0802EF48: .4byte gBattle_BG0_Y _0802EF4C: .4byte gUnknown_2023FFC _0802EF50: .4byte gActiveBattler _0802EF54: .4byte gUnknown_3004FF8 @@ -2462,7 +2462,7 @@ _0802F72C: .4byte gUnknown_3004F80 sub_802F730: @ 802F730 push {lr} ldr r2, _0802F758 @ =gSprites - ldr r1, _0802F75C @ =gUnknown_2023D44 + ldr r1, _0802F75C @ =gBattlerSpriteIds ldr r0, _0802F760 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -2482,7 +2482,7 @@ _0802F754: bx r0 .align 2, 0 _0802F758: .4byte gSprites -_0802F75C: .4byte gUnknown_2023D44 +_0802F75C: .4byte gBattlerSpriteIds _0802F760: .4byte gActiveBattler _0802F764: .4byte SpriteCallbackDummy thumb_func_end sub_802F730 @@ -2491,7 +2491,7 @@ _0802F764: .4byte SpriteCallbackDummy sub_802F768: @ 802F768 push {lr} ldr r2, _0802F790 @ =gSprites - ldr r1, _0802F794 @ =gUnknown_2023D44 + ldr r1, _0802F794 @ =gBattlerSpriteIds ldr r0, _0802F798 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -2511,7 +2511,7 @@ _0802F78C: bx r0 .align 2, 0 _0802F790: .4byte gSprites -_0802F794: .4byte gUnknown_2023D44 +_0802F794: .4byte gBattlerSpriteIds _0802F798: .4byte gActiveBattler _0802F79C: .4byte SpriteCallbackDummy thumb_func_end sub_802F768 @@ -2520,7 +2520,7 @@ _0802F79C: .4byte SpriteCallbackDummy sub_802F7A0: @ 802F7A0 push {r4-r6,lr} ldr r6, _0802F7FC @ =gSprites - ldr r5, _0802F800 @ =gUnknown_2023D44 + ldr r5, _0802F800 @ =gBattlerSpriteIds ldr r4, _0802F804 @ =gActiveBattler ldrb r0, [r4] adds r0, r5 @@ -2562,7 +2562,7 @@ _0802F7F4: bx r0 .align 2, 0 _0802F7FC: .4byte gSprites -_0802F800: .4byte gUnknown_2023D44 +_0802F800: .4byte gBattlerSpriteIds _0802F804: .4byte gActiveBattler _0802F808: .4byte SpriteCallbackDummy _0802F80C: .4byte gSaveBlock2Ptr @@ -4010,7 +4010,7 @@ sub_80303A8: @ 80303A8 negs r1, r0 orrs r1, r0 lsrs r6, r1, 31 - ldr r0, _08030400 @ =gUnknown_2023D44 + ldr r0, _08030400 @ =gBattlerSpriteIds adds r0, r7, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -4031,7 +4031,7 @@ _080303F0: mov pc, r0 .align 2, 0 _080303FC: .4byte gTasks+0x8 -_08030400: .4byte gUnknown_2023D44 +_08030400: .4byte gBattlerSpriteIds _08030404: .4byte gSprites _08030408: .4byte _0803040C .align 2, 0 @@ -4051,19 +4051,19 @@ _08030428: bne _0803051C cmp r6, 0 bne _0803044C - ldr r1, _08030444 @ =gUnknown_2022978 + ldr r1, _08030444 @ =gBattle_BG1_X ldrh r0, [r1] strh r0, [r5, 0x1C] - ldr r2, _08030448 @ =gUnknown_202297A + ldr r2, _08030448 @ =gBattle_BG1_Y b _08030454 .align 2, 0 -_08030444: .4byte gUnknown_2022978 -_08030448: .4byte gUnknown_202297A +_08030444: .4byte gBattle_BG1_X +_08030448: .4byte gBattle_BG1_Y _0803044C: - ldr r1, _08030474 @ =gUnknown_202297C + ldr r1, _08030474 @ =gBattle_BG2_X ldrh r0, [r1] strh r0, [r5, 0x1C] - ldr r2, _08030478 @ =gUnknown_202297E + ldr r2, _08030478 @ =gBattle_BG2_Y _08030454: ldrh r0, [r2] strh r0, [r5, 0x1A] @@ -4081,8 +4081,8 @@ _08030454: strh r0, [r2] b _080304E0 .align 2, 0 -_08030474: .4byte gUnknown_202297C -_08030478: .4byte gUnknown_202297E +_08030474: .4byte gBattle_BG2_X +_08030478: .4byte gBattle_BG2_Y _0803047C: adds r0, r7, 0 adds r1, r6, 0 @@ -4138,19 +4138,19 @@ _080304E0: _080304E8: cmp r6, 0 bne _08030500 - ldr r1, _080304F8 @ =gUnknown_2022978 + ldr r1, _080304F8 @ =gBattle_BG1_X ldrh r0, [r5, 0x1C] strh r0, [r1] - ldr r1, _080304FC @ =gUnknown_202297A + ldr r1, _080304FC @ =gBattle_BG1_Y b _08030508 .align 2, 0 -_080304F8: .4byte gUnknown_2022978 -_080304FC: .4byte gUnknown_202297A +_080304F8: .4byte gBattle_BG1_X +_080304FC: .4byte gBattle_BG1_Y _08030500: - ldr r1, _08030528 @ =gUnknown_202297C + ldr r1, _08030528 @ =gBattle_BG2_X ldrh r0, [r5, 0x1C] strh r0, [r1] - ldr r1, _0803052C @ =gUnknown_202297E + ldr r1, _0803052C @ =gBattle_BG2_Y _08030508: ldrh r0, [r5, 0x1A] strh r0, [r1] @@ -4169,8 +4169,8 @@ _0803051C: pop {r0} bx r0 .align 2, 0 -_08030528: .4byte gUnknown_202297C -_0803052C: .4byte gUnknown_202297E +_08030528: .4byte gBattle_BG2_X +_0803052C: .4byte gBattle_BG2_Y _08030530: .4byte gUnknown_3004FE0 _08030534: .4byte sub_802FE94 thumb_func_end sub_80303A8 @@ -4179,7 +4179,7 @@ _08030534: .4byte sub_802FE94 sub_8030538: @ 8030538 push {r4-r6,lr} ldr r6, _08030590 @ =gSprites - ldr r5, _08030594 @ =gUnknown_2023D44 + ldr r5, _08030594 @ =gBattlerSpriteIds ldr r4, _08030598 @ =gActiveBattler ldrb r0, [r4] adds r0, r5 @@ -4219,7 +4219,7 @@ _08030588: bx r0 .align 2, 0 _08030590: .4byte gSprites -_08030594: .4byte gUnknown_2023D44 +_08030594: .4byte gBattlerSpriteIds _08030598: .4byte gActiveBattler _0803059C: .4byte gUnknown_3004FF0 thumb_func_end sub_8030538 @@ -4241,7 +4241,7 @@ sub_80305A0: @ 80305A0 ands r0, r1 cmp r0, 0 bne _080305F4 - ldr r5, _08030604 @ =gUnknown_2023D44 + ldr r5, _08030604 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -4271,7 +4271,7 @@ _080305F4: .align 2, 0 _080305FC: .4byte gUnknown_2024018 _08030600: .4byte gActiveBattler -_08030604: .4byte gUnknown_2023D44 +_08030604: .4byte gBattlerSpriteIds _08030608: .4byte gSprites _0803060C: .4byte gUnknown_3004FF0 thumb_func_end sub_80305A0 @@ -4485,7 +4485,7 @@ _080307B0: .4byte gActiveBattler thumb_func_start DoHitAnimBlinkSpriteEffect DoHitAnimBlinkSpriteEffect: @ 80307B4 push {r4,lr} - ldr r1, _080307F0 @ =gUnknown_2023D44 + ldr r1, _080307F0 @ =gBattlerSpriteIds ldr r0, _080307F4 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -4513,7 +4513,7 @@ DoHitAnimBlinkSpriteEffect: @ 80307B4 bl PlayerBufferExecCompleted b _0803082A .align 2, 0 -_080307F0: .4byte gUnknown_2023D44 +_080307F0: .4byte gBattlerSpriteIds _080307F4: .4byte gActiveBattler _080307F8: .4byte gSprites _080307FC: .4byte gUnknown_2024005 @@ -4964,10 +4964,10 @@ PrintLinkStandbyMsg: @ 8030B5C ands r0, r1 cmp r0, 0 beq _08030B7C - ldr r0, _08030B84 @ =gUnknown_2022974 + ldr r0, _08030B84 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08030B88 @ =gUnknown_2022976 + ldr r0, _08030B88 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _08030B8C @ =gUnknown_83FE714 movs r1, 0 @@ -4977,8 +4977,8 @@ _08030B7C: bx r0 .align 2, 0 _08030B80: .4byte gBattleTypeFlags -_08030B84: .4byte gUnknown_2022974 -_08030B88: .4byte gUnknown_2022976 +_08030B84: .4byte gBattle_BG0_X +_08030B88: .4byte gBattle_BG0_Y _08030B8C: .4byte gUnknown_83FE714 thumb_func_end PrintLinkStandbyMsg @@ -7299,7 +7299,7 @@ PlayerHandleLoadMonSprite: @ 8031F00 adds r0, r2 bl sub_8034498 ldr r2, _08031F58 @ =gSprites - ldr r0, _08031F5C @ =gUnknown_2023D44 + ldr r0, _08031F5C @ =gBattlerSpriteIds ldrb r3, [r4] adds r0, r3, r0 ldrb r0, [r0] @@ -7327,7 +7327,7 @@ _08031F4C: .4byte gBattlerPartyIndexes _08031F50: .4byte gActiveBattler _08031F54: .4byte gPlayerParty _08031F58: .4byte gSprites -_08031F5C: .4byte gUnknown_2023D44 +_08031F5C: .4byte gBattlerSpriteIds _08031F60: .4byte gUnknown_3004FE0 _08031F64: .4byte CompleteOnBankSpritePosX_0 thumb_func_end PlayerHandleLoadMonSprite @@ -7442,7 +7442,7 @@ sub_8031FF4: @ 8031FF4 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _0803214C @ =gMultiuseSpriteTemplate mov r10, r0 adds r0, r6, 0 @@ -7465,7 +7465,7 @@ sub_8031FF4: @ 8031FF4 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _08032150 @ =gUnknown_2023D44 + ldr r4, _08032150 @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _08032154 @ =gSprites @@ -7555,7 +7555,7 @@ _08032140: .4byte gPlayerParty _08032144: .4byte sub_8033E3C _08032148: .4byte gUnknown_3004FFC _0803214C: .4byte gMultiuseSpriteTemplate -_08032150: .4byte gUnknown_2023D44 +_08032150: .4byte gBattlerSpriteIds _08032154: .4byte gSprites _08032158: .4byte gBattleMonForms _0803215C: .4byte SpriteCallbackDummy @@ -7595,7 +7595,7 @@ _0803219C: .4byte gUnknown_2024018 _080321A0: .4byte gUnknown_3004FE0 _080321A4: .4byte sub_80321F0 _080321A8: - ldr r5, _080321E4 @ =gUnknown_2023D44 + ldr r5, _080321E4 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -7623,7 +7623,7 @@ _080321DE: pop {r0} bx r0 .align 2, 0 -_080321E4: .4byte gUnknown_2023D44 +_080321E4: .4byte gBattlerSpriteIds _080321E8: .4byte gSprites _080321EC: .4byte gUnknown_3004FF0 thumb_func_end PlayerHandleReturnPokeToBall @@ -7833,7 +7833,7 @@ _08032342: mov r1, r8 adds r2, r4, 0 bl CreateSprite - ldr r6, _08032410 @ =gUnknown_2023D44 + ldr r6, _08032410 @ =gBattlerSpriteIds ldrb r1, [r5] adds r1, r6 strb r0, [r1] @@ -7895,7 +7895,7 @@ _08032400: .4byte gSaveBlock2Ptr _08032404: .4byte gActiveBattler _08032408: .4byte gMultiuseSpriteTemplate _0803240C: .4byte gUnknown_8239F8C -_08032410: .4byte gUnknown_2023D44 +_08032410: .4byte gBattlerSpriteIds _08032414: .4byte gSprites _08032418: .4byte 0x0000fffe _0803241C: .4byte sub_8033EEC @@ -8003,7 +8003,7 @@ _080324BE: movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r6, _08032578 @ =gUnknown_2023D44 + ldr r6, _08032578 @ =gBattlerSpriteIds ldrb r1, [r5] adds r1, r6 strb r0, [r1] @@ -8063,7 +8063,7 @@ _08032568: .4byte gSaveBlock2Ptr _0803256C: .4byte gActiveBattler _08032570: .4byte gMultiuseSpriteTemplate _08032574: .4byte gUnknown_8239F8C -_08032578: .4byte gUnknown_2023D44 +_08032578: .4byte gBattlerSpriteIds _0803257C: .4byte gSprites _08032580: .4byte 0x0000ffa0 _08032584: .4byte sub_8033EEC @@ -8074,7 +8074,7 @@ _0803258C: .4byte sub_802F768 thumb_func_start PlayerHandleTrainerSlideBack PlayerHandleTrainerSlideBack: @ 8032590 push {r4-r6,lr} - ldr r5, _08032630 @ =gUnknown_2023D44 + ldr r5, _08032630 @ =gBattlerSpriteIds ldr r6, _08032634 @ =gActiveBattler ldrb r0, [r6] adds r0, r5 @@ -8151,7 +8151,7 @@ PlayerHandleTrainerSlideBack: @ 8032590 pop {r0} bx r0 .align 2, 0 -_08032630: .4byte gUnknown_2023D44 +_08032630: .4byte gBattlerSpriteIds _08032634: .4byte gActiveBattler _08032638: .4byte gSprites _0803263C: .4byte 0x0000ffd8 @@ -8227,7 +8227,7 @@ _080326A4: movs r0, 0x10 bl PlaySE12WithPanning ldr r2, _08032728 @ =gSprites - ldr r3, _0803272C @ =gUnknown_2023D44 + ldr r3, _0803272C @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] @@ -8269,7 +8269,7 @@ _0803271A: _08032720: .4byte gBattlerPartyIndexes _08032724: .4byte gPlayerParty _08032728: .4byte gSprites -_0803272C: .4byte gUnknown_2023D44 +_0803272C: .4byte gBattlerSpriteIds _08032730: .4byte sub_8012110 _08032734: .4byte gUnknown_3004FE0 _08032738: .4byte sub_8030538 @@ -8428,7 +8428,7 @@ _08032852: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _0803292C @ =gUnknown_2037F16 + ldr r5, _0803292C @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -8496,7 +8496,7 @@ _08032852: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _08032940 @ =gUnknown_2037EE4 + ldr r3, _08032940 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -8520,12 +8520,12 @@ _08032852: .align 2, 0 _08032924: .4byte gActiveBattler _08032928: .4byte gUnknown_2022BC4 -_0803292C: .4byte gUnknown_2037F16 +_0803292C: .4byte gAnimMoveTurn _08032930: .4byte gUnknown_2037EEC _08032934: .4byte gUnknown_2037EE8 _08032938: .4byte gUnknown_2037EFE _0803293C: .4byte gUnknown_2037F00 -_08032940: .4byte gUnknown_2037EE4 +_08032940: .4byte gAnimDisableStructPtr _08032944: .4byte gUnknown_2024008 _08032948: ldr r0, _0803296C @ =gUnknown_2024018 @@ -8747,10 +8747,10 @@ _08032AEC: thumb_func_start sub_8032AFC sub_8032AFC: @ 8032AFC push {r4,lr} - ldr r0, _08032B30 @ =gUnknown_2022974 + ldr r0, _08032B30 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08032B34 @ =gUnknown_2022976 + ldr r0, _08032B34 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _08032B38 @ =gActiveBattler ldrb r4, [r0] @@ -8769,8 +8769,8 @@ sub_8032AFC: @ 8032AFC bl sub_80D87BC b _08032B4C .align 2, 0 -_08032B30: .4byte gUnknown_2022974 -_08032B34: .4byte gUnknown_2022976 +_08032B30: .4byte gBattle_BG0_X +_08032B34: .4byte gBattle_BG0_Y _08032B38: .4byte gActiveBattler _08032B3C: .4byte gUnknown_2022BC6 _08032B40: .4byte gDisplayedStringBattle @@ -8824,9 +8824,9 @@ sub_8032B94: @ 8032B94 lsrs r1, r0, 24 cmp r1, 0 bne _08032BBA - ldr r0, _08032BC0 @ =gUnknown_2022974 + ldr r0, _08032BC0 @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _08032BC4 @ =gUnknown_2022976 + ldr r1, _08032BC4 @ =gBattle_BG0_Y movs r0, 0xA0 strh r0, [r1] ldr r1, _08032BC8 @ =gUnknown_3004FE0 @@ -8840,8 +8840,8 @@ _08032BBA: pop {r0} bx r0 .align 2, 0 -_08032BC0: .4byte gUnknown_2022974 -_08032BC4: .4byte gUnknown_2022976 +_08032BC0: .4byte gBattle_BG0_X +_08032BC4: .4byte gBattle_BG0_Y _08032BC8: .4byte gUnknown_3004FE0 _08032BCC: .4byte gActiveBattler _08032BD0: .4byte sub_802E438 @@ -8910,9 +8910,9 @@ sub_8032C4C: @ 8032C4C lsrs r1, r0, 24 cmp r1, 0 bne _08032C76 - ldr r0, _08032C7C @ =gUnknown_2022974 + ldr r0, _08032C7C @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _08032C80 @ =gUnknown_2022976 + ldr r1, _08032C80 @ =gBattle_BG0_Y movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 @@ -8928,8 +8928,8 @@ _08032C76: pop {r0} bx r0 .align 2, 0 -_08032C7C: .4byte gUnknown_2022974 -_08032C80: .4byte gUnknown_2022976 +_08032C7C: .4byte gBattle_BG0_X +_08032C80: .4byte gBattle_BG0_Y _08032C84: .4byte gUnknown_3004FE0 _08032C88: .4byte gActiveBattler _08032C8C: .4byte sub_802EA10 @@ -9754,7 +9754,7 @@ _08033310: .4byte gUnknown_2022870 PlayerHandleHitAnimation: @ 8033314 push {r4,lr} ldr r3, _0803333C @ =gSprites - ldr r2, _08033340 @ =gUnknown_2023D44 + ldr r2, _08033340 @ =gBattlerSpriteIds ldr r4, _08033344 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -9772,7 +9772,7 @@ PlayerHandleHitAnimation: @ 8033314 b _08033372 .align 2, 0 _0803333C: .4byte gSprites -_08033340: .4byte gUnknown_2023D44 +_08033340: .4byte gBattlerSpriteIds _08033344: .4byte gActiveBattler _08033348: ldr r1, _08033378 @ =gUnknown_2024005 @@ -9930,7 +9930,7 @@ _08033474: .4byte gUnknown_2023F4C thumb_func_start PlayerHandleIntroTrainerBallThrow PlayerHandleIntroTrainerBallThrow: @ 8033478 push {r4-r7,lr} - ldr r6, _080335B8 @ =gUnknown_2023D44 + ldr r6, _080335B8 @ =gBattlerSpriteIds ldr r7, _080335BC @ =gActiveBattler ldrb r0, [r7] adds r0, r6 @@ -10085,7 +10085,7 @@ _0803359A: pop {r0} bx r0 .align 2, 0 -_080335B8: .4byte gUnknown_2023D44 +_080335B8: .4byte gBattlerSpriteIds _080335BC: .4byte gActiveBattler _080335C0: .4byte gSprites _080335C4: .4byte 0x0000ffd8 @@ -10129,7 +10129,7 @@ sub_80335F8: @ 80335F8 adds r0, r1 adds r1, r4, 0 bl sub_8034498 - ldr r0, _08033658 @ =gUnknown_2023D44 + ldr r0, _08033658 @ =gBattlerSpriteIds adds r4, r0 ldrb r1, [r4] lsls r0, r1, 4 @@ -10145,7 +10145,7 @@ sub_80335F8: @ 80335F8 .align 2, 0 _08033650: .4byte gBattlerPartyIndexes _08033654: .4byte gPlayerParty -_08033658: .4byte gUnknown_2023D44 +_08033658: .4byte gBattlerSpriteIds _0803365C: .4byte gSprites thumb_func_end sub_80335F8 @@ -10476,7 +10476,7 @@ PlayerHandleSpriteInvisibility: @ 80338EC cmp r0, 0 beq _08033932 ldr r3, _08033940 @ =gSprites - ldr r0, _08033944 @ =gUnknown_2023D44 + ldr r0, _08033944 @ =gBattlerSpriteIds ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -10509,7 +10509,7 @@ _08033932: .align 2, 0 _0803393C: .4byte gActiveBattler _08033940: .4byte gSprites -_08033944: .4byte gUnknown_2023D44 +_08033944: .4byte gBattlerSpriteIds _08033948: .4byte gUnknown_2022BC4 thumb_func_end PlayerHandleSpriteInvisibility @@ -10671,7 +10671,7 @@ _08033A74: .4byte gUnknown_2023FFC thumb_func_start PlayerHandlecmd55 PlayerHandlecmd55: @ 8033A78 push {r4,lr} - ldr r2, _08033AB0 @ =gUnknown_2023E8A + ldr r2, _08033AB0 @ =gBattleOutcome ldr r1, _08033AB4 @ =gUnknown_2022BC4 ldr r4, _08033AB8 @ =gActiveBattler ldrb r0, [r4] @@ -10695,7 +10695,7 @@ PlayerHandlecmd55: @ 8033A78 pop {r0} bx r0 .align 2, 0 -_08033AB0: .4byte gUnknown_2023E8A +_08033AB0: .4byte gBattleOutcome _08033AB4: .4byte gUnknown_2022BC4 _08033AB8: .4byte gActiveBattler _08033ABC: .4byte gUnknown_3004FE0 diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s index 58fad294a..23b4a23e8 100644 --- a/asm/battle_controller_pokedude.s +++ b/asm/battle_controller_pokedude.s @@ -98,7 +98,7 @@ sub_8156140: @ 8156140 sub_815614C: @ 815614C push {lr} ldr r2, _08156174 @ =gSprites - ldr r1, _08156178 @ =gUnknown_2023D44 + ldr r1, _08156178 @ =gBattlerSpriteIds ldr r0, _0815617C @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -118,7 +118,7 @@ _08156170: bx r0 .align 2, 0 _08156174: .4byte gSprites -_08156178: .4byte gUnknown_2023D44 +_08156178: .4byte gBattlerSpriteIds _0815617C: .4byte gActiveBattler _08156180: .4byte SpriteCallbackDummy thumb_func_end sub_815614C @@ -127,7 +127,7 @@ _08156180: .4byte SpriteCallbackDummy sub_8156184: @ 8156184 push {r4-r7,lr} ldr r2, _081561E0 @ =gSprites - ldr r0, _081561E4 @ =gUnknown_2023D44 + ldr r0, _081561E4 @ =gBattlerSpriteIds ldr r7, _081561E8 @ =gActiveBattler ldrb r3, [r7] adds r0, r3, r0 @@ -171,7 +171,7 @@ sub_8156184: @ 8156184 b _08156230 .align 2, 0 _081561E0: .4byte gSprites -_081561E4: .4byte gUnknown_2023D44 +_081561E4: .4byte gBattlerSpriteIds _081561E8: .4byte gActiveBattler _081561EC: .4byte gUnknown_2024018 _081561F0: .4byte gBattlerPartyIndexes @@ -1635,7 +1635,7 @@ sub_8156DCC: @ 8156DCC cmp r0, 0 bne _08156E3C ldr r6, _08156E30 @ =gSprites - ldr r5, _08156E34 @ =gUnknown_2023D44 + ldr r5, _08156E34 @ =gBattlerSpriteIds ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -1672,11 +1672,11 @@ sub_8156DCC: @ 8156DCC .align 2, 0 _08156E2C: .4byte gActiveBattler _08156E30: .4byte gSprites -_08156E34: .4byte gUnknown_2023D44 +_08156E34: .4byte gBattlerSpriteIds _08156E38: .4byte gUnknown_3004FF0 _08156E3C: ldr r2, _08156E6C @ =gSprites - ldr r0, _08156E70 @ =gUnknown_2023D44 + ldr r0, _08156E70 @ =gBattlerSpriteIds ldrb r3, [r4] adds r0, r3, r0 ldrb r1, [r0] @@ -1700,7 +1700,7 @@ _08156E66: bx r0 .align 2, 0 _08156E6C: .4byte gSprites -_08156E70: .4byte gUnknown_2023D44 +_08156E70: .4byte gBattlerSpriteIds _08156E74: .4byte gUnknown_3004FF0 thumb_func_end sub_8156DCC @@ -1775,7 +1775,7 @@ _08156EFA: thumb_func_start sub_8156F00 sub_8156F00: @ 8156F00 push {r4,lr} - ldr r1, _08156F3C @ =gUnknown_2023D44 + ldr r1, _08156F3C @ =gBattlerSpriteIds ldr r0, _08156F40 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -1803,7 +1803,7 @@ sub_8156F00: @ 8156F00 bl PlayerPartnerBufferExecCompleted b _08156F76 .align 2, 0 -_08156F3C: .4byte gUnknown_2023D44 +_08156F3C: .4byte gBattlerSpriteIds _08156F40: .4byte gActiveBattler _08156F44: .4byte gSprites _08156F48: .4byte gUnknown_2024005 @@ -1853,7 +1853,7 @@ sub_8156F7C: @ 8156F7C ands r0, r1 cmp r0, 0 bne _08156FD0 - ldr r5, _08156FE0 @ =gUnknown_2023D44 + ldr r5, _08156FE0 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -1883,7 +1883,7 @@ _08156FD0: .align 2, 0 _08156FD8: .4byte gUnknown_2024018 _08156FDC: .4byte gActiveBattler -_08156FE0: .4byte gUnknown_2023D44 +_08156FE0: .4byte gBattlerSpriteIds _08156FE4: .4byte gSprites _08156FE8: .4byte gUnknown_3004FF0 thumb_func_end sub_8156F7C @@ -1892,7 +1892,7 @@ _08156FE8: .4byte gUnknown_3004FF0 sub_8156FEC: @ 8156FEC push {lr} ldr r2, _08157014 @ =gSprites - ldr r1, _08157018 @ =gUnknown_2023D44 + ldr r1, _08157018 @ =gBattlerSpriteIds ldr r0, _0815701C @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -1912,7 +1912,7 @@ _08157010: bx r0 .align 2, 0 _08157014: .4byte gSprites -_08157018: .4byte gUnknown_2023D44 +_08157018: .4byte gBattlerSpriteIds _0815701C: .4byte gActiveBattler _08157020: .4byte SpriteCallbackDummy thumb_func_end sub_8156FEC @@ -3932,7 +3932,7 @@ sub_81580E0: @ 81580E0 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _08158220 @ =gMultiuseSpriteTemplate mov r9, r0 ldrb r0, [r6] @@ -3950,7 +3950,7 @@ sub_81580E0: @ 81580E0 adds r1, r4, 0 adds r2, r5, 0 bl CreateSprite - ldr r4, _08158224 @ =gUnknown_2023D44 + ldr r4, _08158224 @ =gBattlerSpriteIds ldrb r1, [r6] adds r1, r4 strb r0, [r1] @@ -4038,7 +4038,7 @@ _08158214: .4byte gActiveBattler _08158218: .4byte gBattlerPartyIndexes _0815821C: .4byte gEnemyParty _08158220: .4byte gMultiuseSpriteTemplate -_08158224: .4byte gUnknown_2023D44 +_08158224: .4byte gBattlerSpriteIds _08158228: .4byte gSprites _0815822C: .4byte 0x0000ff10 _08158230: .4byte gBattleMonForms @@ -4135,7 +4135,7 @@ _081582F0: .4byte gActiveBattler _081582F4: .4byte gUnknown_3004FE0 _081582F8: .4byte sub_8156F7C _081582FC: - ldr r5, _08158338 @ =gUnknown_2023D44 + ldr r5, _08158338 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -4163,7 +4163,7 @@ _08158332: pop {r0} bx r0 .align 2, 0 -_08158338: .4byte gUnknown_2023D44 +_08158338: .4byte gBattlerSpriteIds _0815833C: .4byte gSprites _08158340: .4byte gUnknown_3004FF0 thumb_func_end sub_81582C0 @@ -4202,7 +4202,7 @@ sub_8158344: @ 8158344 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r5, _081583E4 @ =gUnknown_2023D44 + ldr r5, _081583E4 @ =gBattlerSpriteIds ldrb r1, [r7] adds r1, r5 strb r0, [r1] @@ -4243,7 +4243,7 @@ sub_8158344: @ 8158344 _081583D8: .4byte gActiveBattler _081583DC: .4byte gMultiuseSpriteTemplate _081583E0: .4byte gUnknown_8239F8C -_081583E4: .4byte gUnknown_2023D44 +_081583E4: .4byte gBattlerSpriteIds _081583E8: .4byte gSprites _081583EC: .4byte 0x0000fffe _081583F0: @@ -4281,7 +4281,7 @@ _081583F0: movs r1, 0xB0 adds r2, r4, 0 bl CreateSprite - ldr r5, _08158518 @ =gUnknown_2023D44 + ldr r5, _08158518 @ =gBattlerSpriteIds ldrb r1, [r7] adds r1, r5 strb r0, [r1] @@ -4304,7 +4304,7 @@ _081583F0: adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] - ldr r0, _08158524 @ =gUnknown_8239A1C + ldr r0, _08158524 @ =gTrainerFrontPicPaletteTable mov r1, r8 lsls r6, r1, 3 adds r0, r6 @@ -4334,7 +4334,7 @@ _081583F0: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _08158528 @ =gUnknown_823957C + ldr r0, _08158528 @ =gTrainerFrontPicTable adds r0, r6 ldrh r0, [r0, 0x6] bl GetSpriteTileStartByTag @@ -4387,11 +4387,11 @@ _081584E2: .align 2, 0 _08158510: .4byte gMultiuseSpriteTemplate _08158514: .4byte gUnknown_823932C -_08158518: .4byte gUnknown_2023D44 +_08158518: .4byte gBattlerSpriteIds _0815851C: .4byte gSprites _08158520: .4byte 0x0000ff10 -_08158524: .4byte gUnknown_8239A1C -_08158528: .4byte gUnknown_823957C +_08158524: .4byte gTrainerFrontPicPaletteTable +_08158528: .4byte gTrainerFrontPicTable _0815852C: .4byte 0x000003ff _08158530: .4byte 0xfffffc00 _08158534: .4byte sub_8033EEC @@ -4427,7 +4427,7 @@ sub_8158544: @ 8158544 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r6, _081585F8 @ =gUnknown_2023D44 + ldr r6, _081585F8 @ =gBattlerSpriteIds ldrb r1, [r4] adds r1, r6 strb r0, [r1] @@ -4486,7 +4486,7 @@ sub_8158544: @ 8158544 _081585EC: .4byte gActiveBattler _081585F0: .4byte gMultiuseSpriteTemplate _081585F4: .4byte gUnknown_8239F8C -_081585F8: .4byte gUnknown_2023D44 +_081585F8: .4byte gBattlerSpriteIds _081585FC: .4byte gSprites _08158600: .4byte 0x0000ffa0 _08158604: .4byte sub_8033EEC @@ -4574,7 +4574,7 @@ _08158670: movs r0, 0x10 bl PlaySE12WithPanning ldr r2, _081586F0 @ =gSprites - ldr r3, _081586F4 @ =gUnknown_2023D44 + ldr r3, _081586F4 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] @@ -4606,14 +4606,14 @@ _08158670: _081586E8: .4byte gBattlerPartyIndexes _081586EC: .4byte gPlayerParty _081586F0: .4byte gSprites -_081586F4: .4byte gUnknown_2023D44 +_081586F4: .4byte gBattlerSpriteIds _081586F8: .4byte sub_8012110 _081586FC: movs r0, 0x10 movs r1, 0x3F bl PlaySE12WithPanning ldr r2, _08158730 @ =gSprites - ldr r1, _08158734 @ =gUnknown_2023D44 + ldr r1, _08158734 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -4638,7 +4638,7 @@ _0815872A: bx r0 .align 2, 0 _08158730: .4byte gSprites -_08158734: .4byte gUnknown_2023D44 +_08158734: .4byte gBattlerSpriteIds _08158738: .4byte sub_8011EA0 _0815873C: .4byte gUnknown_3004FE0 _08158740: .4byte gActiveBattler @@ -4762,7 +4762,7 @@ sub_8158814: @ 8158814 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _081588F0 @ =gUnknown_2037F16 + ldr r5, _081588F0 @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -4830,7 +4830,7 @@ sub_8158814: @ 8158814 lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _08158904 @ =gUnknown_2037EE4 + ldr r3, _08158904 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4854,12 +4854,12 @@ sub_8158814: @ 8158814 .align 2, 0 _081588E8: .4byte gUnknown_2022BC4 _081588EC: .4byte gActiveBattler -_081588F0: .4byte gUnknown_2037F16 +_081588F0: .4byte gAnimMoveTurn _081588F4: .4byte gUnknown_2037EEC _081588F8: .4byte gUnknown_2037EE8 _081588FC: .4byte gUnknown_2037EFE _08158900: .4byte gUnknown_2037F00 -_08158904: .4byte gUnknown_2037EE4 +_08158904: .4byte gAnimDisableStructPtr _08158908: .4byte gUnknown_2024008 _0815890C: ldr r0, _08158930 @ =gUnknown_2024018 @@ -5055,10 +5055,10 @@ _08158A7C: thumb_func_start sub_8158A88 sub_8158A88: @ 8158A88 push {r4,lr} - ldr r0, _08158ABC @ =gUnknown_2022974 + ldr r0, _08158ABC @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08158AC0 @ =gUnknown_2022976 + ldr r0, _08158AC0 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _08158AC4 @ =gActiveBattler ldrb r4, [r0] @@ -5077,8 +5077,8 @@ sub_8158A88: @ 8158A88 bl sub_80D87BC b _08158AD8 .align 2, 0 -_08158ABC: .4byte gUnknown_2022974 -_08158AC0: .4byte gUnknown_2022976 +_08158ABC: .4byte gBattle_BG0_X +_08158AC0: .4byte gBattle_BG0_Y _08158AC4: .4byte gActiveBattler _08158AC8: .4byte gUnknown_2022BC6 _08158ACC: .4byte gDisplayedStringBattle @@ -5132,9 +5132,9 @@ sub_8158B20: @ 8158B20 lsrs r1, r0, 24 cmp r1, 0 bne _08158B46 - ldr r0, _08158B4C @ =gUnknown_2022974 + ldr r0, _08158B4C @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _08158B50 @ =gUnknown_2022976 + ldr r1, _08158B50 @ =gBattle_BG0_Y movs r0, 0xA0 strh r0, [r1] ldr r1, _08158B54 @ =gUnknown_3004FE0 @@ -5148,8 +5148,8 @@ _08158B46: pop {r0} bx r0 .align 2, 0 -_08158B4C: .4byte gUnknown_2022974 -_08158B50: .4byte gUnknown_2022976 +_08158B4C: .4byte gBattle_BG0_X +_08158B50: .4byte gBattle_BG0_Y _08158B54: .4byte gUnknown_3004FE0 _08158B58: .4byte gActiveBattler _08158B5C: .4byte sub_8156140 @@ -5238,9 +5238,9 @@ sub_8158C04: @ 8158C04 lsrs r1, r0, 24 cmp r1, 0 bne _08158C2E - ldr r0, _08158C34 @ =gUnknown_2022974 + ldr r0, _08158C34 @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _08158C38 @ =gUnknown_2022976 + ldr r1, _08158C38 @ =gBattle_BG0_Y movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 @@ -5256,8 +5256,8 @@ _08158C2E: pop {r0} bx r0 .align 2, 0 -_08158C34: .4byte gUnknown_2022974 -_08158C38: .4byte gUnknown_2022976 +_08158C34: .4byte gBattle_BG0_X +_08158C38: .4byte gBattle_BG0_Y _08158C3C: .4byte gUnknown_3004FE0 _08158C40: .4byte gActiveBattler _08158C44: .4byte sub_81564E4 @@ -5936,7 +5936,7 @@ sub_8159184: @ 8159184 sub_8159190: @ 8159190 push {r4,lr} ldr r3, _081591B8 @ =gSprites - ldr r2, _081591BC @ =gUnknown_2023D44 + ldr r2, _081591BC @ =gBattlerSpriteIds ldr r4, _081591C0 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -5954,7 +5954,7 @@ sub_8159190: @ 8159190 b _081591EE .align 2, 0 _081591B8: .4byte gSprites -_081591BC: .4byte gUnknown_2023D44 +_081591BC: .4byte gBattlerSpriteIds _081591C0: .4byte gActiveBattler _081591C4: ldr r1, _081591F4 @ =gUnknown_2024005 @@ -6119,7 +6119,7 @@ _08159300: .4byte gUnknown_2023F4C thumb_func_start sub_8159304 sub_8159304: @ 8159304 push {r4-r7,lr} - ldr r6, _0815943C @ =gUnknown_2023D44 + ldr r6, _0815943C @ =gBattlerSpriteIds ldr r7, _08159440 @ =gActiveBattler ldrb r0, [r7] adds r0, r6 @@ -6269,7 +6269,7 @@ _0815941C: pop {r0} bx r0 .align 2, 0 -_0815943C: .4byte gUnknown_2023D44 +_0815943C: .4byte gBattlerSpriteIds _08159440: .4byte gActiveBattler _08159444: .4byte gSprites _08159448: .4byte 0x0000ffd8 @@ -6336,7 +6336,7 @@ sub_8159478: @ 8159478 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _081595D8 @ =gMultiuseSpriteTemplate mov r10, r0 adds r0, r6, 0 @@ -6359,7 +6359,7 @@ sub_8159478: @ 8159478 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _081595DC @ =gUnknown_2023D44 + ldr r4, _081595DC @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _081595E0 @ =gSprites @@ -6450,7 +6450,7 @@ _081595CC: .4byte gPlayerParty _081595D0: .4byte sub_8033E3C _081595D4: .4byte gUnknown_3004FFC _081595D8: .4byte gMultiuseSpriteTemplate -_081595DC: .4byte gUnknown_2023D44 +_081595DC: .4byte gBattlerSpriteIds _081595E0: .4byte gSprites _081595E4: .4byte gBattleMonForms _081595E8: .4byte SpriteCallbackDummy @@ -6700,7 +6700,7 @@ sub_81597B8: @ 81597B8 thumb_func_start sub_81597C4 sub_81597C4: @ 81597C4 push {r4,lr} - ldr r2, _08159808 @ =gUnknown_2023E8A + ldr r2, _08159808 @ =gBattleOutcome ldr r1, _0815980C @ =gUnknown_2022BC4 ldr r4, _08159810 @ =gActiveBattler ldrb r0, [r4] @@ -6731,7 +6731,7 @@ _08159800: pop {r0} bx r0 .align 2, 0 -_08159808: .4byte gUnknown_2023E8A +_08159808: .4byte gBattleOutcome _0815980C: .4byte gUnknown_2022BC4 _08159810: .4byte gActiveBattler _08159814: .4byte gBattleTypeFlags @@ -7250,7 +7250,7 @@ _08159C14: lsls r0, 2 adds r0, r5 ldr r1, [r0] - ldr r0, _08159C40 @ =gUnknown_2022976 + ldr r0, _08159C40 @ =gBattle_BG0_Y ldrh r0, [r0] strb r0, [r1, 0x4] bl sub_80EB30C @@ -7260,9 +7260,9 @@ _08159C14: b _08159C9E .align 2, 0 _08159C3C: .4byte gPaletteFade -_08159C40: .4byte gUnknown_2022976 +_08159C40: .4byte gBattle_BG0_Y _08159C44: - ldr r1, _08159C5C @ =gUnknown_2022976 + ldr r1, _08159C5C @ =gBattle_BG0_Y movs r0, 0 strh r0, [r1] bl sub_8159EF0 @@ -7272,7 +7272,7 @@ _08159C44: bl sub_80D87BC b _08159C94 .align 2, 0 -_08159C5C: .4byte gUnknown_2022976 +_08159C5C: .4byte gBattle_BG0_Y _08159C60: .4byte gDisplayedStringBattle _08159C64: movs r0, 0x18 @@ -7331,7 +7331,7 @@ _08159CB4: ldr r0, _08159CFC @ =0x00000137 bl PlayBGM _08159CD8: - ldr r1, _08159D00 @ =gUnknown_2022976 + ldr r1, _08159D00 @ =gBattle_BG0_Y ldrb r0, [r4] lsls r0, 2 adds r0, r5 @@ -7348,7 +7348,7 @@ _08159CEE: .align 2, 0 _08159CF8: .4byte gPaletteFade _08159CFC: .4byte 0x00000137 -_08159D00: .4byte gUnknown_2022976 +_08159D00: .4byte gBattle_BG0_Y thumb_func_end sub_8159BA8 thumb_func_start sub_8159D04 diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s index 405d4c45b..9e01ad2fd 100644 --- a/asm/battle_controller_safari.s +++ b/asm/battle_controller_safari.s @@ -259,7 +259,7 @@ _080DD724: .4byte gActiveBattler sub_80DD728: @ 80DD728 push {lr} ldr r2, _080DD750 @ =gSprites - ldr r1, _080DD754 @ =gUnknown_2023D44 + ldr r1, _080DD754 @ =gBattlerSpriteIds ldr r0, _080DD758 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -279,7 +279,7 @@ _080DD74C: bx r0 .align 2, 0 _080DD750: .4byte gSprites -_080DD754: .4byte gUnknown_2023D44 +_080DD754: .4byte gBattlerSpriteIds _080DD758: .4byte gActiveBattler _080DD75C: .4byte SpriteCallbackDummy thumb_func_end sub_80DD728 @@ -646,7 +646,7 @@ SafariHandleDrawTrainerPic: @ 80DD9C4 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r6, _080DDA8C @ =gUnknown_2023D44 + ldr r6, _080DDA8C @ =gBattlerSpriteIds ldrb r1, [r5] adds r1, r6 strb r0, [r1] @@ -706,7 +706,7 @@ _080DDA7C: .4byte gSaveBlock2Ptr _080DDA80: .4byte gActiveBattler _080DDA84: .4byte gMultiuseSpriteTemplate _080DDA88: .4byte gUnknown_8239F8C -_080DDA8C: .4byte gUnknown_2023D44 +_080DDA8C: .4byte gBattlerSpriteIds _080DDA90: .4byte gSprites _080DDA94: .4byte 0x0000fffe _080DDA98: .4byte sub_8033EEC @@ -849,10 +849,10 @@ sub_80DDB94: @ 80DDB94 thumb_func_start sub_80DDBA0 sub_80DDBA0: @ 80DDBA0 push {r4,lr} - ldr r0, _080DDBD4 @ =gUnknown_2022974 + ldr r0, _080DDBD4 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080DDBD8 @ =gUnknown_2022976 + ldr r0, _080DDBD8 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _080DDBDC @ =gActiveBattler ldrb r4, [r0] @@ -871,8 +871,8 @@ sub_80DDBA0: @ 80DDBA0 bl sub_80D87BC b _080DDBF0 .align 2, 0 -_080DDBD4: .4byte gUnknown_2022974 -_080DDBD8: .4byte gUnknown_2022976 +_080DDBD4: .4byte gBattle_BG0_X +_080DDBD8: .4byte gBattle_BG0_Y _080DDBDC: .4byte gActiveBattler _080DDBE0: .4byte gUnknown_2022BC6 _080DDBE4: .4byte gDisplayedStringBattle @@ -926,9 +926,9 @@ sub_80DDC38: @ 80DDC38 lsrs r1, r0, 24 cmp r1, 0 bne _080DDC5E - ldr r0, _080DDC64 @ =gUnknown_2022974 + ldr r0, _080DDC64 @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _080DDC68 @ =gUnknown_2022976 + ldr r1, _080DDC68 @ =gBattle_BG0_Y movs r0, 0xA0 strh r0, [r1] ldr r1, _080DDC6C @ =gUnknown_3004FE0 @@ -942,8 +942,8 @@ _080DDC5E: pop {r0} bx r0 .align 2, 0 -_080DDC64: .4byte gUnknown_2022974 -_080DDC68: .4byte gUnknown_2022976 +_080DDC64: .4byte gBattle_BG0_X +_080DDC68: .4byte gBattle_BG0_Y _080DDC6C: .4byte gUnknown_3004FE0 _080DDC70: .4byte gActiveBattler _080DDC74: .4byte HandleInputChooseAction_0 @@ -1487,7 +1487,7 @@ sub_80DE048: @ 80DE048 thumb_func_start SafariHandleCmd55 SafariHandleCmd55: @ 80DE054 push {r4,lr} - ldr r2, _080DE098 @ =gUnknown_2023E8A + ldr r2, _080DE098 @ =gBattleOutcome ldr r1, _080DE09C @ =gUnknown_2022BC4 ldr r4, _080DE0A0 @ =gActiveBattler ldrb r0, [r4] @@ -1518,7 +1518,7 @@ _080DE090: pop {r0} bx r0 .align 2, 0 -_080DE098: .4byte gUnknown_2023E8A +_080DE098: .4byte gBattleOutcome _080DE09C: .4byte gUnknown_2022BC4 _080DE0A0: .4byte gActiveBattler _080DE0A4: .4byte gBattleTypeFlags diff --git a/asm/battle_controllers.s b/asm/battle_controllers.s index 5d0921323..5337929a1 100644 --- a/asm/battle_controllers.s +++ b/asm/battle_controllers.s @@ -2176,7 +2176,7 @@ EmitPrintString: @ 800E2D4 ldr r2, _0800E3B4 @ =gUnknown_2022874 movs r0, 0x10 strb r0, [r2] - ldr r0, _0800E3B8 @ =gUnknown_2023E8A + ldr r0, _0800E3B8 @ =gBattleOutcome ldrb r0, [r0] strb r0, [r2, 0x1] strb r1, [r2, 0x2] @@ -2277,7 +2277,7 @@ _0800E378: bx r0 .align 2, 0 _0800E3B4: .4byte gUnknown_2022874 -_0800E3B8: .4byte gUnknown_2023E8A +_0800E3B8: .4byte gBattleOutcome _0800E3BC: .4byte gCurrentMove _0800E3C0: .4byte gUnknown_2023D4C _0800E3C4: .4byte gUnknown_2023D68 diff --git a/asm/battle_dome_cards.s b/asm/battle_dome_cards.s deleted file mode 100644 index 3ff8f9318..000000000 --- a/asm/battle_dome_cards.s +++ /dev/null @@ -1,1102 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_91 -nullsub_91: @ 810BB88 - bx lr - thumb_func_end nullsub_91 - - thumb_func_start dp13_810BB8C -dp13_810BB8C: @ 810BB8C - push {r4-r7,lr} - ldr r4, _0810BBAC @ =gUnknown_8453178 - ldr r3, _0810BBB0 @ =gUnknown_203AD58 - movs r2, 0x7 -_0810BB94: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0xC - subs r2, 0x1 - cmp r2, 0 - bge _0810BB94 - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810BBAC: .4byte gUnknown_8453178 -_0810BBB0: .4byte gUnknown_203AD58 - thumb_func_end dp13_810BB8C - - thumb_func_start load_pokemon_image_TODO -load_pokemon_image_TODO: @ 810BBB4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r1, 0 - adds r5, r3, 0 - ldr r3, [sp, 0x18] - ldr r1, [sp, 0x1C] - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, r4, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r1, 0 - cmp r3, 0 - bne _0810BC28 - cmp r2, 0 - beq _0810BBF4 - cmp r1, 0 - bne _0810BBE8 - lsls r0, r4, 3 - ldr r1, _0810BBE4 @ =gUnknown_82350AC - b _0810BBFC - .align 2, 0 -_0810BBE4: .4byte gUnknown_82350AC -_0810BBE8: - lsls r0, r4, 3 - ldr r1, _0810BBF0 @ =gUnknown_82350AC - b _0810BC14 - .align 2, 0 -_0810BBF0: .4byte gUnknown_82350AC -_0810BBF4: - cmp r0, 0 - bne _0810BC10 - lsls r0, r4, 3 - ldr r1, _0810BC0C @ =gUnknown_823654C -_0810BBFC: - adds r0, r1 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl sub_800ECF0 - b _0810BC4E - .align 2, 0 -_0810BC0C: .4byte gUnknown_823654C -_0810BC10: - lsls r0, r4, 3 - ldr r1, _0810BC24 @ =gUnknown_823654C -_0810BC14: - adds r0, r1 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl LoadSpecialPokePic_DontHandleDeoxys - b _0810BC4E - .align 2, 0 -_0810BC24: .4byte gUnknown_823654C -_0810BC28: - cmp r2, 0 - beq _0810BC40 - lsls r0, r4, 3 - ldr r1, _0810BC3C @ =gUnknown_823957C - adds r0, r1 - adds r1, r5, 0 - adds r2, r4, 0 - bl DecompressPicFromTable - b _0810BC4E - .align 2, 0 -_0810BC3C: .4byte gUnknown_823957C -_0810BC40: - lsls r0, r7, 3 - ldr r1, _0810BC58 @ =gUnknown_8239FA4 - adds r0, r1 - adds r1, r5, 0 - adds r2, r7, 0 - bl DecompressPicFromTable -_0810BC4E: - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810BC58: .4byte gUnknown_8239FA4 - thumb_func_end load_pokemon_image_TODO - - thumb_func_start sub_810BC5C -sub_810BC5C: @ 810BC5C - push {r4,lr} - sub sp, 0x8 - ldr r4, [sp, 0x10] - lsls r0, 16 - lsrs r0, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - bl load_pokemon_image_TODO - lsls r0, 16 - lsrs r0, 16 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810BC5C - - thumb_func_start sub_810BC84 -sub_810BC84: @ 810BC84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - mov r8, r2 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - lsls r3, 24 - lsrs r5, r3, 24 - mov r12, r5 - lsls r1, 16 - lsrs r3, r1, 16 - adds r1, r3, 0 - lsls r2, 24 - cmp r2, 0 - bne _0810BCE8 - ldr r0, _0810BCC8 @ =0x0000ffff - cmp r3, r0 - bne _0810BCD0 - ldr r2, _0810BCCC @ =gUnknown_203AD40 - ldrh r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x2] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r8 - bl GetFrontSpritePalFromSpeciesAndPersonality - lsls r1, r5, 20 - b _0810BD04 - .align 2, 0 -_0810BCC8: .4byte 0x0000ffff -_0810BCCC: .4byte gUnknown_203AD40 -_0810BCD0: - ldr r0, _0810BCE4 @ =gUnknown_203AD40 - strh r3, [r0, 0x2] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r8 - bl GetMonSpritePalStructFromOtIdPersonality - bl LoadCompressedObjectPalette - b _0810BD2E - .align 2, 0 -_0810BCE4: .4byte gUnknown_203AD40 -_0810BCE8: - ldr r0, _0810BD14 @ =0x0000ffff - cmp r3, r0 - bne _0810BD20 - ldr r2, _0810BD18 @ =gUnknown_203AD40 - ldrh r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x2] - ldr r1, _0810BD1C @ =gUnknown_8239A1C - lsls r0, r4, 3 - adds r0, r1 - ldr r0, [r0] - mov r2, r12 - lsls r1, r2, 20 -_0810BD04: - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - b _0810BD2E - .align 2, 0 -_0810BD14: .4byte 0x0000ffff -_0810BD18: .4byte gUnknown_203AD40 -_0810BD1C: .4byte gUnknown_8239A1C -_0810BD20: - ldr r0, _0810BD38 @ =gUnknown_203AD40 - strh r1, [r0, 0x2] - lsls r0, r6, 3 - ldr r1, _0810BD3C @ =gUnknown_8239A1C - adds r0, r1 - bl LoadCompressedObjectPalette -_0810BD2E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810BD38: .4byte gUnknown_203AD40 -_0810BD3C: .4byte gUnknown_8239A1C - thumb_func_end sub_810BC84 - - thumb_func_start sub_810BD40 -sub_810BD40: @ 810BD40 - push {r4,r5,lr} - adds r5, r1, 0 - ldr r1, [sp, 0xC] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r4, r3, 24 - lsls r1, 24 - cmp r1, 0 - bne _0810BD64 - adds r1, r5, 0 - bl GetFrontSpritePalFromSpeciesAndPersonality - lsls r1, r4, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _0810BD74 -_0810BD64: - ldr r1, _0810BD7C @ =gUnknown_8239A1C - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_0810BD74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810BD7C: .4byte gUnknown_8239A1C - thumb_func_end sub_810BD40 - - thumb_func_start uns_builder_assign_animtable1 -uns_builder_assign_animtable1: @ 810BD80 - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0810BD98 - ldr r1, _0810BD90 @ =gUnknown_203AD40 - ldr r0, _0810BD94 @ =gUnknown_82349BC - str r0, [r1, 0x8] - b _0810BDA0 - .align 2, 0 -_0810BD90: .4byte gUnknown_203AD40 -_0810BD94: .4byte gUnknown_82349BC -_0810BD98: - ldr r0, _0810BDA4 @ =gUnknown_203AD40 - ldr r1, _0810BDA8 @ =gTrainerFrontAnimsPtrTable - ldr r1, [r1] - str r1, [r0, 0x8] -_0810BDA0: - pop {r0} - bx r0 - .align 2, 0 -_0810BDA4: .4byte gUnknown_203AD40 -_0810BDA8: .4byte gTrainerFrontAnimsPtrTable - thumb_func_end uns_builder_assign_animtable1 - - thumb_func_start oamt_spawn_poke_or_trainer_picture -oamt_spawn_poke_or_trainer_picture: @ 810BDAC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - ldr r1, [sp, 0x50] - ldr r2, [sp, 0x54] - ldr r4, [sp, 0x58] - ldr r5, [sp, 0x5C] - ldr r6, [sp, 0x60] - ldr r7, [sp, 0x64] - mov r8, r7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x18] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - lsls r5, 16 - lsrs r5, 16 - mov r10, r5 - lsls r6, 24 - lsrs r6, 24 - mov r9, r6 - mov r0, r8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r1, _0810BE44 @ =gUnknown_203AD58 - ldrb r0, [r1, 0xB] - cmp r0, 0 - beq _0810BE1C -_0810BE04: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bhi _0810BE1C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _0810BE04 -_0810BE1C: - cmp r4, 0x8 - beq _0810BE40 - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r7, r0, 0 - cmp r7, 0 - beq _0810BE40 - movs r0, 0x20 - bl Alloc - mov r8, r0 - cmp r0, 0 - bne _0810BE4C - adds r0, r7, 0 - bl Free -_0810BE40: - ldr r0, _0810BE48 @ =0x0000ffff - b _0810BF16 - .align 2, 0 -_0810BE44: .4byte gUnknown_203AD58 -_0810BE48: .4byte 0x0000ffff -_0810BE4C: - mov r1, r9 - str r1, [sp] - str r5, [sp, 0x4] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - ldr r2, [sp, 0x14] - adds r3, r7, 0 - bl load_pokemon_image_TODO - lsls r0, 16 - cmp r0, 0 - bne _0810BE40 - lsls r2, r4, 1 - str r2, [sp, 0x2C] - ldr r5, _0810BF28 @ =gUnknown_203AD40 - ldr r0, _0810BF2C @ =gUnknown_8453184 - mov r12, r0 - ldr r1, [sp, 0x18] - lsls r1, 16 - str r1, [sp, 0x24] - ldr r2, [sp, 0x1C] - lsls r2, 16 - str r2, [sp, 0x28] - movs r3, 0x80 - lsls r3, 4 - mov r0, r8 - adds r1, r7, 0 - adds r6, r3, 0 - movs r2, 0x3 -_0810BE86: - str r1, [r0] - strh r3, [r0, 0x4] - adds r0, 0x8 - adds r1, r6 - subs r2, 0x1 - cmp r2, 0 - bge _0810BE86 - ldr r0, _0810BF30 @ =0x0000ffff - strh r0, [r5] - mov r0, r12 - str r0, [r5, 0x4] - mov r0, r9 - bl uns_builder_assign_animtable1 - mov r1, r8 - str r1, [r5, 0xC] - ldr r0, _0810BF34 @ =gDummySpriteAffineAnimTable - str r0, [r5, 0x10] - ldr r0, _0810BF38 @ =nullsub_91 - str r0, [r5, 0x14] - mov r2, r10 - str r2, [sp] - mov r0, r9 - str r0, [sp, 0x4] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x10] - ldr r3, [sp, 0x20] - bl sub_810BC84 - ldr r2, [sp, 0x24] - asrs r1, r2, 16 - ldr r0, [sp, 0x28] - asrs r2, r0, 16 - adds r0, r5, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - adds r6, r2, 0 - ldr r0, _0810BF30 @ =0x0000ffff - cmp r10, r0 - bne _0810BEF6 - ldr r0, _0810BF3C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r2, [sp, 0x20] - lsls r3, r2, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0810BEF6: - ldr r1, _0810BF40 @ =gUnknown_203AD58 - ldr r2, [sp, 0x2C] - adds r0, r2, r4 - lsls r0, 2 - adds r2, r0, r1 - str r7, [r2] - adds r1, 0x4 - adds r0, r1 - mov r7, r8 - str r7, [r0] - mov r0, r10 - strh r0, [r2, 0x8] - strb r6, [r2, 0xA] - movs r0, 0x1 - strb r0, [r2, 0xB] - adds r0, r6, 0 -_0810BF16: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810BF28: .4byte gUnknown_203AD40 -_0810BF2C: .4byte gUnknown_8453184 -_0810BF30: .4byte 0x0000ffff -_0810BF34: .4byte gDummySpriteAffineAnimTable -_0810BF38: .4byte nullsub_91 -_0810BF3C: .4byte gSprites -_0810BF40: .4byte gUnknown_203AD58 - thumb_func_end oamt_spawn_poke_or_trainer_picture - - thumb_func_start sub_810BF44 -sub_810BF44: @ 810BF44 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r6, [sp, 0x3C] - ldr r7, [sp, 0x40] - mov r8, r7 - ldr r7, [sp, 0x44] - mov r9, r7 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - mov r4, r8 - str r4, [sp, 0xC] - str r7, [sp, 0x10] - movs r4, 0 - str r4, [sp, 0x14] - bl oamt_spawn_poke_or_trainer_picture - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810BF44 - - thumb_func_start sub_810BFA4 -sub_810BFA4: @ 810BFA4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - ldr r0, _0810BFDC @ =gUnknown_203AD58 - ldrb r1, [r0, 0xA] - adds r3, r0, 0 - cmp r1, r4 - beq _0810BFD4 - adds r1, r3, 0 -_0810BFBC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bhi _0810BFD4 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xA] - cmp r0, r4 - bne _0810BFBC -_0810BFD4: - cmp r2, 0x8 - bne _0810BFE4 - ldr r0, _0810BFE0 @ =0x0000ffff - b _0810C03A - .align 2, 0 -_0810BFDC: .4byte gUnknown_203AD58 -_0810BFE0: .4byte 0x0000ffff -_0810BFE4: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r3 - ldr r1, [r5] - mov r8, r1 - adds r1, r3, 0x4 - adds r0, r1 - ldr r7, [r0] - ldrh r1, [r5, 0x8] - ldr r0, _0810C044 @ =0x0000ffff - lsls r6, r4, 4 - cmp r1, r0 - beq _0810C018 - ldr r1, _0810C048 @ =gSprites - adds r0, r6, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag -_0810C018: - adds r0, r6, r4 - lsls r0, 2 - ldr r1, _0810C048 @ =gSprites - adds r0, r1 - bl DestroySprite - mov r0, r8 - bl Free - adds r0, r7, 0 - bl Free - adds r1, r5, 0 - ldr r0, _0810C04C @ =gUnknown_8453178 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0 -_0810C03A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810C044: .4byte 0x0000ffff -_0810C048: .4byte gSprites -_0810C04C: .4byte gUnknown_8453178 - thumb_func_end sub_810BFA4 - - thumb_func_start sub_810C050 -sub_810C050: @ 810C050 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r9, r1 - adds r7, r2, 0 - adds r4, r3, 0 - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x24] - ldr r3, [sp, 0x28] - lsls r0, 16 - lsrs r5, r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - adds r0, r2, 0 - movs r1, 0x7 - bl GetWindowAttribute - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_810BC5C - lsls r0, 16 - cmp r0, 0 - bne _0810C0AC - str r6, [sp] - adds r0, r5, 0 - mov r1, r9 - adds r2, r7, 0 - mov r3, r8 - bl sub_810BD40 - movs r0, 0 - b _0810C0AE -_0810C0AC: - ldr r0, _0810C0BC @ =0x0000ffff -_0810C0AE: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810C0BC: .4byte 0x0000ffff - thumb_func_end sub_810C050 - - thumb_func_start sub_810C0C0 -sub_810C0C0: @ 810C0C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r1, [sp, 0x18] - str r2, [sp, 0x1C] - ldr r1, [sp, 0x44] - ldr r2, [sp, 0x48] - ldr r4, [sp, 0x4C] - ldr r5, [sp, 0x50] - ldr r6, [sp, 0x54] - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r4, r0, 0 - cmp r4, 0 - beq _0810C156 - str r6, [sp] - mov r0, r9 - ldr r1, [sp, 0x1C] - adds r2, r7, 0 - adds r3, r4, 0 - bl sub_810BC5C - lsls r0, 16 - cmp r0, 0 - bne _0810C156 - movs r0, 0x40 - str r0, [sp] - str r0, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r0, [sp, 0x10] - str r0, [sp, 0x14] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRectToWindow - str r6, [sp] - mov r0, r9 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - ldr r3, [sp, 0x20] - bl sub_810BD40 - adds r0, r4, 0 - bl Free - movs r0, 0 - b _0810C158 -_0810C156: - ldr r0, _0810C168 @ =0x0000ffff -_0810C158: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810C168: .4byte 0x0000ffff - thumb_func_end sub_810C0C0 - - thumb_func_start sub_810C16C -sub_810C16C: @ 810C16C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r6, [sp, 0x3C] - ldr r7, [sp, 0x40] - mov r8, r7 - ldr r7, [sp, 0x44] - mov r9, r7 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - mov r4, r8 - str r4, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - str r7, [sp, 0x14] - bl oamt_spawn_poke_or_trainer_picture - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C16C - - thumb_func_start sub_810C1CC -sub_810C1CC: @ 810C1CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r7, 16 - lsrs r7, 16 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - bl sub_810C16C - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C1CC - - thumb_func_start sub_810C214 -sub_810C214: @ 810C214 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_810BFA4 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_810C214 - - thumb_func_start sub_810C228 -sub_810C228: @ 810C228 - push {r4-r6,lr} - sub sp, 0x14 - ldr r5, [sp, 0x24] - ldr r6, [sp, 0x28] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - str r4, [sp, 0x10] - bl sub_810C0C0 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_810C228 - - thumb_func_start sub_810C25C -sub_810C25C: @ 810C25C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - lsls r7, 24 - lsrs r7, 24 - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - bl sub_810C0C0 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C25C - - thumb_func_start sub_810C2A4 -sub_810C2A4: @ 810C2A4 - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r1, 0 - ldr r1, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r2, 16 - asrs r2, 16 - str r2, [sp] - lsls r3, 16 - asrs r3, 16 - str r3, [sp, 0x4] - str r1, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0x1 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_810BF44 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810C2A4 - - thumb_func_start sub_810C2E8 -sub_810C2E8: @ 810C2E8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_810BFA4 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_810C2E8 - - thumb_func_start sub_810C2FC -sub_810C2FC: @ 810C2FC - push {r4,lr} - sub sp, 0xC - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r2, [sp] - str r3, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0 - adds r3, r4, 0 - bl sub_810C050 - lsls r0, 16 - lsrs r0, 16 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810C2FC - - thumb_func_start sub_810C330 -sub_810C330: @ 810C330 - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r1, 0 - ldr r1, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r2, [sp] - str r3, [sp, 0x4] - str r1, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0x1 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_810C0C0 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810C330 - - thumb_func_start sub_810C374 -sub_810C374: @ 810C374 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - bne _0810C39A - cmp r0, 0 - beq _0810C394 - ldr r0, _0810C390 @ =gFacilityClassToPicIndex - adds r0, 0x87 - ldrb r0, [r0] - b _0810C39A - .align 2, 0 -_0810C390: .4byte gFacilityClassToPicIndex -_0810C394: - ldr r0, _0810C3A0 @ =gFacilityClassToPicIndex - adds r0, 0x86 - ldrb r0, [r0] -_0810C39A: - pop {r1} - bx r1 - .align 2, 0 -_0810C3A0: .4byte gFacilityClassToPicIndex - thumb_func_end sub_810C374 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s index 9ae7accdc..efbd89e9e 100644 --- a/asm/battle_gfx_sfx_util.s +++ b/asm/battle_gfx_sfx_util.s @@ -394,7 +394,7 @@ _08034094: cmp r5, 0x2 bne _080340E0 ldr r1, _080340D8 @ =gSprites - ldr r0, _080340DC @ =gUnknown_2023D44 + ldr r0, _080340DC @ =gBattlerSpriteIds adds r0, r6, r0 ldrb r2, [r0] lsls r0, r2, 4 @@ -415,12 +415,12 @@ _08034094: b _08034132 .align 2, 0 _080340D8: .4byte gSprites -_080340DC: .4byte gUnknown_2023D44 +_080340DC: .4byte gBattlerSpriteIds _080340E0: - ldr r0, _08034144 @ =gUnknown_2037F1A + ldr r0, _08034144 @ =gBattleAnimAttacker mov r2, r10 strb r2, [r0] - ldr r0, _08034148 @ =gUnknown_2037F1B + ldr r0, _08034148 @ =gBattleAnimTarget mov r1, sp ldrb r1, [r1] strb r1, [r0] @@ -466,8 +466,8 @@ _08034132: pop {r1} bx r1 .align 2, 0 -_08034144: .4byte gUnknown_2037F1A -_08034148: .4byte gUnknown_2037F1B +_08034144: .4byte gBattleAnimAttacker +_08034148: .4byte gBattleAnimTarget _0803414C: .4byte gUnknown_2024018 _08034150: .4byte gUnknown_81C6EA8 _08034154: .4byte Task_ClearBitWhenBattleTableAnimDone @@ -551,9 +551,9 @@ InitAndLaunchSpecialAnimation: @ 80341D8 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 - ldr r0, _08034230 @ =gUnknown_2037F1A + ldr r0, _08034230 @ =gBattleAnimAttacker strb r1, [r0] - ldr r0, _08034234 @ =gUnknown_2037F1B + ldr r0, _08034234 @ =gBattleAnimTarget strb r2, [r0] ldr r0, _08034238 @ =gUnknown_81C6F18 adds r1, r3, 0 @@ -587,8 +587,8 @@ InitAndLaunchSpecialAnimation: @ 80341D8 pop {r0} bx r0 .align 2, 0 -_08034230: .4byte gUnknown_2037F1A -_08034234: .4byte gUnknown_2037F1B +_08034230: .4byte gBattleAnimAttacker +_08034234: .4byte gBattleAnimTarget _08034238: .4byte gUnknown_81C6F18 _0803423C: .4byte Task_ClearBitWhenSpecialAnimDone _08034240: .4byte gTasks @@ -756,7 +756,7 @@ _0803436C: bl GetBattlerPosition lsls r0, 24 lsls r2, r5, 3 - ldr r1, _080343C4 @ =gUnknown_82350AC + ldr r1, _080343C4 @ =gMonFrontPicTable adds r2, r1 ldr r1, _080343C8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -788,7 +788,7 @@ _0803436C: b _080343DA .align 2, 0 _080343C0: .4byte gUnknown_2024008 -_080343C4: .4byte gUnknown_82350AC +_080343C4: .4byte gMonFrontPicTable _080343C8: .4byte gMonSpritesGfxPtr _080343CC: .4byte gUnknown_2024018 _080343D0: @@ -946,7 +946,7 @@ _080344E4: beq _08034548 _0803451C: lsls r0, r5, 3 - ldr r1, _08034540 @ =gUnknown_823654C + ldr r1, _08034540 @ =gMonBackPicTable adds r0, r1 ldr r1, _08034544 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -961,11 +961,11 @@ _0803451C: .align 2, 0 _08034538: .4byte gUnknown_2024008 _0803453C: .4byte gUnknown_2024018 -_08034540: .4byte gUnknown_823654C +_08034540: .4byte gMonBackPicTable _08034544: .4byte gMonSpritesGfxPtr _08034548: lsls r0, r5, 3 - ldr r1, _08034584 @ =gUnknown_823654C + ldr r1, _08034584 @ =gMonBackPicTable adds r0, r1 ldr r1, _08034588 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -994,7 +994,7 @@ _08034562: bl GetMonFrontSpritePal b _0803459A .align 2, 0 -_08034584: .4byte gUnknown_823654C +_08034584: .4byte gMonBackPicTable _08034588: .4byte gMonSpritesGfxPtr _0803458C: .4byte gUnknown_2024018 _08034590: @@ -1149,7 +1149,7 @@ sub_80346C4: @ 80346C4 adds r4, r0, 0 lsls r4, 24 lsls r5, 3 - ldr r6, _0803473C @ =gUnknown_823957C + ldr r6, _0803473C @ =gTrainerFrontPicTable adds r6, r5, r6 ldr r0, _08034740 @ =gMonSpritesGfxPtr mov r8, r0 @@ -1181,7 +1181,7 @@ sub_80346C4: @ 80346C4 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet - ldr r0, _0803474C @ =gUnknown_8239A1C + ldr r0, _0803474C @ =gTrainerFrontPicPaletteTable adds r5, r0 adds r0, r5, 0 bl sub_800F078 @@ -1192,11 +1192,11 @@ sub_80346C4: @ 80346C4 pop {r0} bx r0 .align 2, 0 -_0803473C: .4byte gUnknown_823957C +_0803473C: .4byte gTrainerFrontPicTable _08034740: .4byte gMonSpritesGfxPtr _08034744: .4byte 0xffff0000 _08034748: .4byte 0x0000ffff -_0803474C: .4byte gUnknown_8239A1C +_0803474C: .4byte gTrainerFrontPicPaletteTable thumb_func_end sub_80346C4 thumb_func_start sub_8034750 @@ -1231,12 +1231,12 @@ sub_803477C: @ 803477C push {r4,lr} adds r4, r0, 0 lsls r4, 16 - ldr r0, _080347A0 @ =gUnknown_8239A1C + ldr r0, _080347A0 @ =gTrainerFrontPicPaletteTable lsrs r4, 13 adds r0, r4, r0 ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag - ldr r0, _080347A4 @ =gUnknown_823957C + ldr r0, _080347A4 @ =gTrainerFrontPicTable adds r4, r0 ldrh r0, [r4, 0x6] bl FreeSpriteTilesByTag @@ -1244,8 +1244,8 @@ sub_803477C: @ 803477C pop {r0} bx r0 .align 2, 0 -_080347A0: .4byte gUnknown_8239A1C -_080347A4: .4byte gUnknown_823957C +_080347A0: .4byte gTrainerFrontPicPaletteTable +_080347A4: .4byte gTrainerFrontPicTable thumb_func_end sub_803477C thumb_func_start sub_80347A8 @@ -1718,7 +1718,7 @@ CopyAllBattleSpritesInvisibilities: @ 8034B40 negs r0, r0 mov r8, r0 ldr r7, _08034BAC @ =gUnknown_2024018 - ldr r6, _08034BB0 @ =gUnknown_2023D44 + ldr r6, _08034BB0 @ =gBattlerSpriteIds _08034B64: ldr r0, [r7] ldr r0, [r0] @@ -1756,7 +1756,7 @@ _08034B96: _08034BA4: .4byte gBattlersCount _08034BA8: .4byte gSprites _08034BAC: .4byte gUnknown_2024018 -_08034BB0: .4byte gUnknown_2023D44 +_08034BB0: .4byte gBattlerSpriteIds thumb_func_end CopyAllBattleSpritesInvisibilities thumb_func_start CopyBattleSpriteInvisibility @@ -1769,7 +1769,7 @@ CopyBattleSpriteInvisibility: @ 8034BB4 lsls r3, r0, 2 adds r3, r1 ldr r2, _08034BEC @ =gSprites - ldr r1, _08034BF0 @ =gUnknown_2023D44 + ldr r1, _08034BF0 @ =gBattlerSpriteIds adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 @@ -1790,7 +1790,7 @@ CopyBattleSpriteInvisibility: @ 8034BB4 .align 2, 0 _08034BE8: .4byte gUnknown_2024018 _08034BEC: .4byte gSprites -_08034BF0: .4byte gUnknown_2023D44 +_08034BF0: .4byte gBattlerSpriteIds thumb_func_end CopyBattleSpriteInvisibility thumb_func_start sub_8034BF4 @@ -1852,7 +1852,7 @@ _08034C16: adds r7, r0, 0 mov r1, r8 lsls r0, r1, 3 - ldr r1, _08034D60 @ =gUnknown_82350AC + ldr r1, _08034D60 @ =gMonFrontPicTable adds r0, r1 ldr r4, _08034D64 @ =gMonSpritesGfxPtr ldr r1, [r4] @@ -1869,7 +1869,7 @@ _08034C16: adds r0, r5 ldr r2, [r0] ldr r5, _08034D68 @ =gSprites - ldr r4, _08034D6C @ =gUnknown_2023D44 + ldr r4, _08034D6C @ =gBattlerSpriteIds add r4, r9 ldrb r1, [r4] lsls r0, r1, 4 @@ -1961,10 +1961,10 @@ _08034C16: .align 2, 0 _08034D58: .4byte gBattlerPartyIndexes _08034D5C: .4byte gEnemyParty -_08034D60: .4byte gUnknown_82350AC +_08034D60: .4byte gMonFrontPicTable _08034D64: .4byte gMonSpritesGfxPtr _08034D68: .4byte gSprites -_08034D6C: .4byte gUnknown_2023D44 +_08034D6C: .4byte gBattlerSpriteIds _08034D70: .4byte 0x06010000 _08034D74: .4byte 0x040000d4 _08034D78: .4byte 0x84000200 @@ -1974,7 +1974,7 @@ _08034D84: .4byte gUnknown_3004FF0 _08034D88: cmp r2, 0 beq _08034E4C - ldr r0, _08034E28 @ =gUnknown_2023D44 + ldr r0, _08034E28 @ =gBattlerSpriteIds mov r3, r9 adds r5, r3, r0 ldrb r1, [r5] @@ -2048,7 +2048,7 @@ _08034E0E: strh r0, [r1, 0x22] b _08035062 .align 2, 0 -_08034E28: .4byte gUnknown_2023D44 +_08034E28: .4byte gBattlerSpriteIds _08034E2C: .4byte gSprites _08034E30: .4byte gUnknown_2024018 _08034E34: .4byte gBattleStruct @@ -2122,7 +2122,7 @@ _08034E90: adds r7, r0, 0 mov r2, r8 lsls r0, r2, 3 - ldr r1, _08034F04 @ =gUnknown_823654C + ldr r1, _08034F04 @ =gMonBackPicTable adds r0, r1 ldr r1, _08034F08 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -2142,7 +2142,7 @@ _08034E90: .align 2, 0 _08034EFC: .4byte gBattlerPartyIndexes _08034F00: .4byte gPlayerParty -_08034F04: .4byte gUnknown_823654C +_08034F04: .4byte gMonBackPicTable _08034F08: .4byte gMonSpritesGfxPtr _08034F0C: .4byte gUnknown_2024008 _08034F10: @@ -2166,7 +2166,7 @@ _08034F10: adds r7, r0, 0 mov r2, r8 lsls r0, r2, 3 - ldr r1, _0803507C @ =gUnknown_82350AC + ldr r1, _0803507C @ =gMonFrontPicTable adds r0, r1 ldr r1, _08035080 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -2189,7 +2189,7 @@ _08034F5E: adds r0, 0x4 adds r0, r5 ldr r2, [r0] - ldr r0, _08035088 @ =gUnknown_2023D44 + ldr r0, _08035088 @ =gBattlerSpriteIds add r0, r9 str r0, [sp, 0x10] ldrb r1, [r0] @@ -2315,10 +2315,10 @@ _08035062: .align 2, 0 _08035074: .4byte gBattlerPartyIndexes _08035078: .4byte gEnemyParty -_0803507C: .4byte gUnknown_82350AC +_0803507C: .4byte gMonFrontPicTable _08035080: .4byte gMonSpritesGfxPtr _08035084: .4byte gUnknown_2024008 -_08035088: .4byte gUnknown_2023D44 +_08035088: .4byte gBattlerSpriteIds _0803508C: .4byte gSprites _08035090: .4byte 0x06010000 _08035094: .4byte 0x040000d4 @@ -2820,7 +2820,7 @@ _0803547C: cmp r0, 0 beq _08035514 ldr r4, _080354E4 @ =gSprites - ldr r0, _080354E8 @ =gUnknown_2023D44 + ldr r0, _080354E8 @ =gBattlerSpriteIds adds r3, r5, r0 ldrb r1, [r3] lsls r0, r1, 4 @@ -2864,7 +2864,7 @@ _0803547C: .align 2, 0 _080354E0: .4byte gBattlersCount _080354E4: .4byte gSprites -_080354E8: .4byte gUnknown_2023D44 +_080354E8: .4byte gBattlerSpriteIds _080354EC: .4byte gUnknown_2024018 _080354F0: ldrb r0, [r3] @@ -3026,7 +3026,7 @@ SpriteCB_EnemyShadow: @ 8035624 ldrh r0, [r5, 0x2E] lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _08035668 @ =gUnknown_2023D44 + ldr r0, _08035668 @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -3051,7 +3051,7 @@ _08035660: str r0, [r5, 0x1C] b _080356EA .align 2, 0 -_08035668: .4byte gUnknown_2023D44 +_08035668: .4byte gBattlerSpriteIds _0803566C: .4byte gSprites _08035670: .4byte SpriteCB_SetInvisible _08035674: diff --git a/asm/battle_interface.s b/asm/battle_interface.s index 8e109b6d6..393eb4ee6 100644 --- a/asm/battle_interface.s +++ b/asm/battle_interface.s @@ -5559,7 +5559,7 @@ AddTextPrinterAndCreateWindowOnHealthbox: @ 804A648 movs r1, 0 adds r2, r6, 0 mov r3, r8 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 mov r0, r10 str r4, [r0] adds r0, r5, 0 diff --git a/asm/battle_message.s b/asm/battle_message.s index 029ff9ed0..9505d542b 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -1604,7 +1604,7 @@ _080D7F9C: ldrh r0, [r0] _080D7FA0: mov r1, sp - bl sub_8099E90 + bl CopyItemName mov r4, sp b _080D8382 .align 2, 0 @@ -2495,12 +2495,12 @@ _080D8698: .4byte gUnknown_83FD8A2 _080D869C: adds r0, r2, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName b _080D86AE _080D86A6: adds r0, r2, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName _080D86AE: adds r5, 0x3 _080D86B0: @@ -2863,7 +2863,7 @@ _080D894A: movs r3, 0x1 b _080D8960 _080D8958: - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r3, r0, 24 _080D8960: diff --git a/asm/battle_records.s b/asm/battle_records.s index 392161676..e48a0025e 100644 --- a/asm/battle_records.s +++ b/asm/battle_records.s @@ -471,10 +471,10 @@ _080CD604: .4byte 0x81000800 thumb_func_start sub_80CD608 sub_80CD608: @ 80CD608 push {lr} - bl remove_some_task + bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData - bl dp13_810BB8C + bl ResetAllPicSprites bl ResetPaletteFade bl FreeAllSpritePalettes pop {r0} @@ -925,7 +925,7 @@ _080CD94C: .4byte 0x0000270f sub_80CD950: @ 80CD950 push {r4,lr} adds r4, r0, 0 - ldr r0, _080CD964 @ =gUnknown_2023E8A + ldr r0, _080CD964 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _080CD968 @@ -933,7 +933,7 @@ sub_80CD950: @ 80CD950 beq _080CD976 b _080CD984 .align 2, 0 -_080CD964: .4byte gUnknown_2023E8A +_080CD964: .4byte gBattleOutcome _080CD968: eors r0, r4 bl sub_80CD8F8 @@ -978,7 +978,7 @@ sub_80CD98C: @ 80CD98C subs r3, 0x30 adds r2, r3 ldrh r2, [r2, 0xE] - ldr r3, _080CD9EC @ =gUnknown_2023E8A + ldr r3, _080CD9EC @ =gBattleOutcome ldrb r3, [r3] ldr r5, _080CD9F0 @ =gLinkPlayers lsls r4, r6, 3 @@ -998,7 +998,7 @@ _080CD9DC: .4byte gSaveBlock1Ptr _080CD9E0: .4byte gSaveBlock2Ptr _080CD9E4: .4byte 0x00000a98 _080CD9E8: .4byte gUnknown_2039654 -_080CD9EC: .4byte gUnknown_2023E8A +_080CD9EC: .4byte gBattleOutcome _080CD9F0: .4byte gLinkPlayers thumb_func_end sub_80CD98C @@ -1092,7 +1092,7 @@ _080CDA72: movs r1, 0x2 movs r2, 0xC movs r3, 0x18 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r4-r7} pop {r0} @@ -1138,7 +1138,7 @@ sub_80CDAD0: @ 80CDAD0 movs r1, 0x2 movs r2, 0 mov r3, r8 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 movs r6, 0 _080CDB0E: movs r4, 0x54 @@ -1161,7 +1161,7 @@ _080CDB1C: movs r0, 0 movs r1, 0x2 mov r3, r8 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -1230,7 +1230,7 @@ _080CDBA6: movs r0, 0 movs r1, 0x2 mov r3, r8 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -1291,7 +1291,7 @@ sub_80CDBE4: @ 80CDBE4 movs r0, 0 movs r1, 0x2 movs r3, 0x4 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r5, _080CDCA8 @ =gSaveBlock2Ptr ldr r0, [r5] ldr r1, _080CDCAC @ =0x00000a98 @@ -1309,7 +1309,7 @@ sub_80CDBE4: @ 80CDBE4 movs r1, 0x2 movs r2, 0x54 movs r3, 0x30 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r7, r5, 0 movs r5, 0xF4 lsls r5, 22 diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s index ed0e6cb50..60b06f8a6 100644 --- a/asm/battle_script_commands.s +++ b/asm/battle_script_commands.s @@ -12,7 +12,7 @@ atk00_attackcanceler: @ 801D760 mov r6, r8 push {r6,r7} sub sp, 0x4 - ldr r0, _0801D77C @ =gUnknown_2023E8A + ldr r0, _0801D77C @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0 beq _0801D784 @@ -21,7 +21,7 @@ atk00_attackcanceler: @ 801D760 strb r0, [r1] b _0801DAFC .align 2, 0 -_0801D77C: .4byte gUnknown_2023E8A +_0801D77C: .4byte gBattleOutcome _0801D780: .4byte gUnknown_2023BE3 _0801D784: ldr r2, _0801D7B4 @ =gBattleMons @@ -9519,7 +9519,7 @@ _0802243C: ble _0802240C cmp r6, 0 bne _08022450 - ldr r0, _0802253C @ =gUnknown_2023E8A + ldr r0, _0802253C @ =gBattleOutcome ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 @@ -9553,7 +9553,7 @@ _08022484: adds r5, 0x1 cmp r5, 0x5 ble _08022454 - ldr r2, _0802253C @ =gUnknown_2023E8A + ldr r2, _0802253C @ =gBattleOutcome cmp r6, 0 bne _08022498 ldrb r0, [r2] @@ -9647,7 +9647,7 @@ _0802251E: .align 2, 0 _08022534: .4byte gUnknown_2023BC8 _08022538: .4byte gPlayerParty -_0802253C: .4byte gUnknown_2023E8A +_0802253C: .4byte gBattleOutcome _08022540: .4byte gEnemyParty _08022544: .4byte gBattleTypeFlags _08022548: .4byte gBattlersCount @@ -15311,7 +15311,7 @@ atk57: @ 80251C4 bl GetBattlerAtPosition ldr r4, _080251F0 @ =gActiveBattler strb r0, [r4] - ldr r0, _080251F4 @ =gUnknown_2023E8A + ldr r0, _080251F4 @ =gBattleOutcome ldrb r1, [r0] movs r0, 0 bl EmitCmd55 @@ -15326,7 +15326,7 @@ atk57: @ 80251C4 bx r0 .align 2, 0 _080251F0: .4byte gActiveBattler -_080251F4: .4byte gUnknown_2023E8A +_080251F4: .4byte gBattleOutcome _080251F8: .4byte gUnknown_2023D74 thumb_func_end atk57 @@ -16141,7 +16141,7 @@ sub_80258AC: @ 80258AC push {r7} movs r6, 0 movs r5, 0 - ldr r0, _080258F0 @ =gUnknown_2023E8A + ldr r0, _080258F0 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _080258C0 @@ -16171,7 +16171,7 @@ _080258C0: mov r8, r0 b _080259E8 .align 2, 0 -_080258F0: .4byte gUnknown_2023E8A +_080258F0: .4byte gBattleOutcome _080258F4: .4byte gTrainerBattleOpponent_A _080258F8: .4byte gBattleResources _080258FC: .4byte gBattleStruct @@ -17358,7 +17358,7 @@ _08026244: .4byte _08026380 .4byte _080263C4 _0802626C: - ldr r1, _08026290 @ =gUnknown_202297E + ldr r1, _08026290 @ =gBattle_BG2_Y movs r0, 0x60 strh r0, [r1] movs r0, 0x2 @@ -17373,7 +17373,7 @@ _0802626C: strb r0, [r1, 0x1E] b _080263F6 .align 2, 0 -_08026290: .4byte gUnknown_202297E +_08026290: .4byte gBattle_BG2_Y _08026294: .4byte gBattleScripting _08026298: bl sub_80264D0 @@ -17389,10 +17389,10 @@ _080262A4: .align 2, 0 _080262AC: .4byte gBattleScripting _080262B0: - ldr r1, _080262F8 @ =gUnknown_2022978 + ldr r1, _080262F8 @ =gBattle_BG1_X movs r0, 0 strh r0, [r1] - ldr r1, _080262FC @ =gUnknown_202297A + ldr r1, _080262FC @ =gBattle_BG1_Y movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 @@ -17421,8 +17421,8 @@ _080262B0: strb r0, [r1, 0x1E] b _080263F6 .align 2, 0 -_080262F8: .4byte gUnknown_2022978 -_080262FC: .4byte gUnknown_202297A +_080262F8: .4byte gBattle_BG1_X +_080262FC: .4byte gBattle_BG1_Y _08026300: .4byte gBattleScripting _08026304: bl sub_8026404 @@ -17438,11 +17438,11 @@ _08026318: lsrs r1, r0, 24 cmp r1, 0 bne _080263F6 - ldr r0, _0802632C @ =gUnknown_202297A + ldr r0, _0802632C @ =gBattle_BG1_Y strh r1, [r0] b _0802636E .align 2, 0 -_0802632C: .4byte gUnknown_202297A +_0802632C: .4byte gBattle_BG1_Y _08026330: ldr r0, _0802634C @ =gMain ldrh r0, [r0, 0x2E] @@ -17601,10 +17601,10 @@ _0802647C: .4byte gPlayerParty thumb_func_start sub_8026480 sub_8026480: @ 8026480 push {lr} - ldr r1, _080264C0 @ =gUnknown_202297E + ldr r1, _080264C0 @ =gBattle_BG2_Y movs r0, 0 strh r0, [r1] - ldr r1, _080264C4 @ =gUnknown_202297C + ldr r1, _080264C4 @ =gBattle_BG2_X movs r2, 0xD0 lsls r2, 1 adds r0, r2, 0 @@ -17627,8 +17627,8 @@ sub_8026480: @ 8026480 pop {r0} bx r0 .align 2, 0 -_080264C0: .4byte gUnknown_202297E -_080264C4: .4byte gUnknown_202297C +_080264C0: .4byte gBattle_BG2_Y +_080264C4: .4byte gBattle_BG2_X _080264C8: .4byte gUnknown_82506D0 _080264CC: .4byte gUnknown_82506F0 thumb_func_end sub_8026480 @@ -17643,7 +17643,7 @@ sub_80264D0: @ 80264D0 movs r0, 0x1 b _0802651A _080264E0: - ldr r4, _080264F0 @ =gUnknown_202297C + ldr r4, _080264F0 @ =gBattle_BG2_X ldrh r1, [r4] movs r5, 0x80 lsls r5, 2 @@ -17652,7 +17652,7 @@ _080264E0: movs r0, 0 b _0802651A .align 2, 0 -_080264F0: .4byte gUnknown_202297C +_080264F0: .4byte gBattle_BG2_X _080264F4: movs r0, 0xD0 lsls r0, 1 @@ -17823,7 +17823,7 @@ _08026624: thumb_func_start sub_8026648 sub_8026648: @ 8026648 push {lr} - ldr r0, _0802665C @ =gUnknown_202297C + ldr r0, _0802665C @ =gBattle_BG2_X ldrh r1, [r0] movs r3, 0xD0 lsls r3, 1 @@ -17833,7 +17833,7 @@ sub_8026648: @ 8026648 movs r0, 0 b _08026684 .align 2, 0 -_0802665C: .4byte gUnknown_202297C +_0802665C: .4byte gBattle_BG2_X _08026660: ldrh r0, [r2] adds r1, r0, 0 @@ -17930,7 +17930,7 @@ PutMonIconOnLvlUpBox: @ 8026688 adds r1, r2 movs r0, 0 strh r0, [r1, 0x2E] - ldr r0, _08026750 @ =gUnknown_202297C + ldr r0, _08026750 @ =gBattle_BG2_X ldrh r0, [r0] strh r0, [r1, 0x30] add sp, 0x10 @@ -17948,14 +17948,14 @@ _08026740: .4byte 0xd75a0000 _08026744: .4byte 0x0000d75a _08026748: .4byte gUnknown_82507C8 _0802674C: .4byte gSprites -_08026750: .4byte gUnknown_202297C +_08026750: .4byte gBattle_BG2_X thumb_func_end PutMonIconOnLvlUpBox thumb_func_start SpriteCB_MonIconOnLvlUpBox SpriteCB_MonIconOnLvlUpBox: @ 8026754 push {r4,lr} adds r2, r0, 0 - ldr r0, _08026770 @ =gUnknown_202297C + ldr r0, _08026770 @ =gBattle_BG2_X ldrh r1, [r2, 0x30] ldrh r0, [r0] subs r1, r0 @@ -17967,7 +17967,7 @@ SpriteCB_MonIconOnLvlUpBox: @ 8026754 strh r0, [r2, 0x2E] b _08026790 .align 2, 0 -_08026770: .4byte gUnknown_202297C +_08026770: .4byte gBattle_BG2_X _08026774: movs r1, 0x2E ldrsh r0, [r2, r1] @@ -32507,14 +32507,14 @@ _0802DAC4: .4byte sub_80116F4 _0802DAC8: bl sub_800F34C bl LoadBattleTextboxAndBackground - ldr r1, _0802DADC @ =gUnknown_2022980 + ldr r1, _0802DADC @ =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] b _0802DB34 .align 2, 0 -_0802DADC: .4byte gUnknown_2022980 +_0802DADC: .4byte gBattle_BG3_X _0802DAE0: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 @@ -32536,7 +32536,7 @@ _0802DAE0: str r0, [sp, 0xC] adds r0, r5, 0 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys str r4, [sp, 0x14] add r0, sp, 0x14 ldr r1, _0802DB48 @ =gPlttBufferFaded diff --git a/asm/battle_setup.s b/asm/battle_setup.s index 499d565f0..146e4a3c9 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -42,7 +42,7 @@ _0807F65E: cmp r0, 0x1 bne _0807F686 bl sub_812B484 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0807F68C @ =sub_800FD9C bl SetMainCallback2 bl sub_806D7E8 @@ -104,7 +104,7 @@ sub_807F6CC: @ 807F6CC bhi _0807F6FC ldr r0, _0807F6F8 @ =0x00000167 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 bne _0807F6FC @@ -318,8 +318,8 @@ _0807F8BC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music _0807F8C0: .4byte gBattleTypeFlags thumb_func_end sub_807F888 - thumb_func_start sub_807F8C4 -sub_807F8C4: @ 807F8C4 + thumb_func_start BattleSetup_StartScriptedWildBattle +BattleSetup_StartScriptedWildBattle: @ 807F8C4 push {lr} bl ScriptContext2_Enable ldr r1, _0807F8F8 @ =gMain @@ -344,7 +344,7 @@ sub_807F8C4: @ 807F8C4 _0807F8F8: .4byte gMain _0807F8FC: .4byte sub_807FBA0 _0807F900: .4byte gBattleTypeFlags - thumb_func_end sub_807F8C4 + thumb_func_end BattleSetup_StartScriptedWildBattle thumb_func_start sub_807F904 sub_807F904: @ 807F904 @@ -356,7 +356,7 @@ sub_807F904: @ 807F904 str r0, [r1, 0x8] ldr r0, _0807F94C @ =0x00000167 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 beq _0807F958 @@ -623,7 +623,7 @@ sub_807FB40: @ 807FB40 movs r0, 0 movs r1, 0x80 bl ResetOamRange - ldr r0, _0807FB78 @ =gUnknown_2023E8A + ldr r0, _0807FB78 @ =gBattleOutcome ldrb r0, [r0] bl IsPlayerDefeated cmp r0, 0x1 @@ -633,12 +633,12 @@ sub_807FB40: @ 807FB40 b _0807FB8C .align 2, 0 _0807FB74: .4byte 0x01000100 -_0807FB78: .4byte gUnknown_2023E8A +_0807FB78: .4byte gBattleOutcome _0807FB7C: .4byte c2_whiteout _0807FB80: - ldr r0, _0807FB94 @ =c2_exit_to_overworld_2_switch + ldr r0, _0807FB94 @ =CB2_ReturnToField bl SetMainCallback2 - ldr r1, _0807FB98 @ =gUnknown_3005020 + ldr r1, _0807FB98 @ =gFieldCallback ldr r0, _0807FB9C @ =sub_807E3EC str r0, [r1] _0807FB8C: @@ -646,8 +646,8 @@ _0807FB8C: pop {r0} bx r0 .align 2, 0 -_0807FB94: .4byte c2_exit_to_overworld_2_switch -_0807FB98: .4byte gUnknown_3005020 +_0807FB94: .4byte CB2_ReturnToField +_0807FB98: .4byte gFieldCallback _0807FB9C: .4byte sub_807E3EC thumb_func_end sub_807FB40 @@ -666,7 +666,7 @@ sub_807FBA0: @ 807FBA0 movs r0, 0 movs r1, 0x80 bl ResetOamRange - ldr r0, _0807FBD8 @ =gUnknown_2023E8A + ldr r0, _0807FBD8 @ =gBattleOutcome ldrb r0, [r0] bl IsPlayerDefeated cmp r0, 0x1 @@ -676,7 +676,7 @@ sub_807FBA0: @ 807FBA0 b _0807FBE6 .align 2, 0 _0807FBD4: .4byte 0x01000100 -_0807FBD8: .4byte gUnknown_2023E8A +_0807FBD8: .4byte gBattleOutcome _0807FBDC: .4byte c2_whiteout _0807FBE0: ldr r0, _0807FBEC @ =c2_exit_to_overworld_1_continue_scripts_restart_music @@ -704,7 +704,7 @@ sub_807FBF0: @ 807FBF0 movs r0, 0 movs r1, 0x80 bl ResetOamRange - ldr r4, _0807FC28 @ =gUnknown_2023E8A + ldr r4, _0807FC28 @ =gBattleOutcome ldrb r0, [r4] bl IsPlayerDefeated adds r1, r0, 0 @@ -715,7 +715,7 @@ sub_807FBF0: @ 807FBF0 b _0807FC4C .align 2, 0 _0807FC24: .4byte 0x01000100 -_0807FC28: .4byte gUnknown_2023E8A +_0807FC28: .4byte gBattleOutcome _0807FC2C: .4byte c2_whiteout _0807FC30: ldrb r0, [r4] @@ -1512,7 +1512,7 @@ battle_80801F0: @ 80801F0 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl GetFieldObjectIdByLocalIdAndMap - ldr r1, _08080224 @ =gUnknown_3005074 + ldr r1, _08080224 @ =gSelectedEventObject strb r0, [r1] _08080212: pop {r0} @@ -1521,11 +1521,11 @@ _08080212: _08080218: .4byte gUnknown_20386B0 _0808021C: .4byte gSpecialVar_LastTalked _08080220: .4byte gSaveBlock1Ptr -_08080224: .4byte gUnknown_3005074 +_08080224: .4byte gSelectedEventObject thumb_func_end battle_80801F0 - thumb_func_start sub_8080228 -sub_8080228: @ 8080228 + thumb_func_start BattleSetup_ConfigureTrainerBattle +BattleSetup_ConfigureTrainerBattle: @ 8080228 push {r4,r5,lr} adds r5, r0, 0 bl sub_8080110 @@ -1640,14 +1640,14 @@ _08080326: .align 2, 0 _0808032C: .4byte gUnknown_83C6900 _08080330: .4byte gUnknown_81A4EC1 - thumb_func_end sub_8080228 + thumb_func_end BattleSetup_ConfigureTrainerBattle thumb_func_start TrainerWantsBattle TrainerWantsBattle: @ 8080334 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _08080368 @ =gUnknown_3005074 + ldr r2, _08080368 @ =gSelectedEventObject strb r0, [r2] ldr r4, _0808036C @ =gSpecialVar_LastTalked ldr r3, _08080370 @ =gMapObjects @@ -1659,7 +1659,7 @@ TrainerWantsBattle: @ 8080334 strh r0, [r4] adds r1, 0x1 adds r0, r1, 0 - bl sub_8080228 + bl BattleSetup_ConfigureTrainerBattle ldr r0, _08080374 @ =gUnknown_81A4EB4 bl ScriptContext1_SetupScript bl ScriptContext2_Enable @@ -1667,7 +1667,7 @@ TrainerWantsBattle: @ 8080334 pop {r0} bx r0 .align 2, 0 -_08080368: .4byte gUnknown_3005074 +_08080368: .4byte gSelectedEventObject _0808036C: .4byte gSpecialVar_LastTalked _08080370: .4byte gMapObjects _08080374: .4byte gUnknown_81A4EB4 @@ -1693,7 +1693,7 @@ GetTrainerFlagFromScriptPointer: @ 8080378 thumb_func_start sub_8080398 sub_8080398: @ 8080398 push {r4,lr} - ldr r0, _080803C4 @ =gUnknown_3005074 + ldr r0, _080803C4 @ =gSelectedEventObject ldrb r0, [r0] lsls r4, r0, 3 adds r4, r0 @@ -1713,7 +1713,7 @@ sub_8080398: @ 8080398 pop {r0} bx r0 .align 2, 0 -_080803C4: .4byte gUnknown_3005074 +_080803C4: .4byte gSelectedEventObject _080803C8: .4byte gMapObjects thumb_func_end sub_8080398 @@ -1785,8 +1785,8 @@ HasTrainerAlreadyBeenFought: @ 8080424 bx r1 thumb_func_end HasTrainerAlreadyBeenFought - thumb_func_start trainer_flag_set -trainer_flag_set: @ 808043C + thumb_func_start SetTrainerFlag +SetTrainerFlag: @ 808043C push {lr} lsls r0, 16 movs r1, 0xA0 @@ -1796,10 +1796,10 @@ trainer_flag_set: @ 808043C bl FlagSet pop {r0} bx r0 - thumb_func_end trainer_flag_set + thumb_func_end SetTrainerFlag - thumb_func_start trainer_flag_clear -trainer_flag_clear: @ 8080450 + thumb_func_start ClearTrainerFlag +ClearTrainerFlag: @ 8080450 push {lr} lsls r0, 16 movs r1, 0xA0 @@ -1809,10 +1809,10 @@ trainer_flag_clear: @ 8080450 bl FlagClear pop {r0} bx r0 - thumb_func_end trainer_flag_clear + thumb_func_end ClearTrainerFlag - thumb_func_start sub_8080464 -sub_8080464: @ 8080464 + thumb_func_start BattleSetup_StartTrainerBattle +BattleSetup_StartTrainerBattle: @ 8080464 push {r4,lr} ldr r4, _080804A0 @ =gBattleTypeFlags movs r0, 0x8 @@ -1844,7 +1844,7 @@ _0808048C: _080804A0: .4byte gBattleTypeFlags _080804A4: .4byte gMain _080804A8: .4byte sub_80804AC - thumb_func_end sub_8080464 + thumb_func_end BattleSetup_StartTrainerBattle thumb_func_start sub_80804AC sub_80804AC: @ 80804AC @@ -1853,7 +1853,7 @@ sub_80804AC: @ 80804AC ldrh r0, [r0] cmp r0, 0x9 bne _08080508 - ldr r0, _080804DC @ =gUnknown_2023E8A + ldr r0, _080804DC @ =gBattleOutcome ldrb r0, [r0] bl IsPlayerDefeated adds r1, r0, 0 @@ -1870,7 +1870,7 @@ sub_80804AC: @ 80804AC b _080804EE .align 2, 0 _080804D8: .4byte gUnknown_20386AC -_080804DC: .4byte gUnknown_2023E8A +_080804DC: .4byte gBattleOutcome _080804E0: .4byte gSpecialVar_Result _080804E4: .4byte gUnknown_20386CC _080804E8: @@ -1900,7 +1900,7 @@ _08080508: _0808051C: .4byte gTrainerBattleOpponent_A _08080520: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music _08080524: - ldr r0, _08080538 @ =gUnknown_2023E8A + ldr r0, _08080538 @ =gBattleOutcome ldrb r0, [r0] bl IsPlayerDefeated cmp r0, 0x1 @@ -1910,7 +1910,7 @@ _08080530: bl SetMainCallback2 b _0808054E .align 2, 0 -_08080538: .4byte gUnknown_2023E8A +_08080538: .4byte gBattleOutcome _0808053C: .4byte c2_whiteout _08080540: ldr r0, _08080554 @ =c2_exit_to_overworld_1_continue_scripts_restart_music @@ -1940,7 +1940,7 @@ sub_8080558: @ 8080558 _08080570: .4byte gTrainerBattleOpponent_A _08080574: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music _08080578: - ldr r0, _0808058C @ =gUnknown_2023E8A + ldr r0, _0808058C @ =gBattleOutcome ldrb r0, [r0] bl IsPlayerDefeated cmp r0, 0x1 @@ -1949,7 +1949,7 @@ _08080578: bl SetMainCallback2 b _080805A6 .align 2, 0 -_0808058C: .4byte gUnknown_2023E8A +_0808058C: .4byte gBattleOutcome _08080590: .4byte c2_whiteout _08080594: ldr r0, _080805AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music @@ -1992,8 +1992,8 @@ sub_80805D8: @ 80805D8 bx r0 thumb_func_end sub_80805D8 - thumb_func_start sub_80805E8 -sub_80805E8: @ 80805E8 + thumb_func_start BattleSetup_GetScriptAddrAfterBattle +BattleSetup_GetScriptAddrAfterBattle: @ 80805E8 push {lr} ldr r0, _080805F8 @ =gUnknown_20386C4 ldr r0, [r0] @@ -2006,10 +2006,10 @@ _080805F4: .align 2, 0 _080805F8: .4byte gUnknown_20386C4 _080805FC: .4byte gUnknown_81C555B - thumb_func_end sub_80805E8 + thumb_func_end BattleSetup_GetScriptAddrAfterBattle - thumb_func_start sub_8080600 -sub_8080600: @ 8080600 + thumb_func_start BattleSetup_GetTrainerPostBattleScript +BattleSetup_GetTrainerPostBattleScript: @ 8080600 push {lr} ldr r0, _08080610 @ =gUnknown_20386C8 ldr r0, [r0] @@ -2022,7 +2022,7 @@ _0808060C: .align 2, 0 _08080610: .4byte gUnknown_20386C8 _08080614: .4byte gUnknown_81C555B - thumb_func_end sub_8080600 + thumb_func_end BattleSetup_GetTrainerPostBattleScript thumb_func_start sub_8080618 sub_8080618: @ 8080618 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 82922b88f..503a6343e 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -2033,7 +2033,7 @@ sub_80E68C4: @ 80E68C4 ldr r0, _080E68F4 @ =gMain ldr r1, _080E68F8 @ =sub_80E6854 str r1, [r0, 0x8] - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _080E68FC @ =sub_800FD9C bl SetMainCallback2 adds r0, r4, 0 @@ -2894,7 +2894,7 @@ _080E6FF2: bl sub_80E712C ldr r4, _080E703C @ =gSaveBlock2Ptr ldr r0, [r4] - ldr r1, _080E704C @ =gUnknown_2023E8A + ldr r1, _080E704C @ =gBattleOutcome ldrb r1, [r1] ldr r2, _080E7050 @ =0x0000055d adds r0, r2 @@ -2930,7 +2930,7 @@ _080E703C: .4byte gSaveBlock2Ptr _080E7040: .4byte 0x0000055c _080E7044: .4byte gSpecialVar_0x8004 _080E7048: .4byte 0x00000564 -_080E704C: .4byte gUnknown_2023E8A +_080E704C: .4byte gBattleOutcome _080E7050: .4byte 0x0000055d _080E7054: .4byte 0x0000055e thumb_func_end sub_80E6FB8 @@ -3218,7 +3218,7 @@ sub_80E724C: @ 80E724C adds r1, r0 ldrh r0, [r1] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 @@ -3229,7 +3229,7 @@ sub_80E724C: @ 80E724C adds r0, r1 ldrh r0, [r0] ldr r1, _080E7290 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _080E7294 @ =gSpecialVar_Result strh r4, [r0] b _080E72AA @@ -3612,7 +3612,7 @@ _080E754C: .4byte gSaveBlock2Ptr thumb_func_start sub_80E7550 sub_80E7550: @ 80E7550 push {lr} - ldr r0, _080E7564 @ =gUnknown_2023E8A + ldr r0, _080E7564 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x3 bne _080E756C @@ -3621,7 +3621,7 @@ sub_80E7550: @ 80E7550 strb r0, [r1] b _080E7590 .align 2, 0 -_080E7564: .4byte gUnknown_2023E8A +_080E7564: .4byte gBattleOutcome _080E7568: .4byte gStringVar4 _080E756C: cmp r0, 0x1 diff --git a/asm/battle_transition.s b/asm/battle_transition.s index ae1c7fa08..cf761a220 100644 --- a/asm/battle_transition.s +++ b/asm/battle_transition.s @@ -463,7 +463,7 @@ sub_80D0C0C: @ 80D0C0C sub sp, 0x8 adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r0, 0x1 negs r0, r0 movs r4, 0 @@ -472,7 +472,7 @@ sub_80D0C0C: @ 80D0C0C movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r0, _080D0C68 @ =gUnknown_2038E80 + ldr r0, _080D0C68 @ =gScanlineEffectRegBuffers + 0x780 ldr r1, _080D0C6C @ =gUnknown_2039A2C ldr r1, [r1] movs r2, 0x14 @@ -498,7 +498,7 @@ sub_80D0C0C: @ 80D0C0C pop {r1} bx r1 .align 2, 0 -_080D0C68: .4byte gUnknown_2038E80 +_080D0C68: .4byte gScanlineEffectRegBuffers + 0x780 _080D0C6C: .4byte gUnknown_2039A2C _080D0C70: .4byte sub_80D0CF0 _080D0C74: .4byte sub_80D0D28 @@ -519,7 +519,7 @@ sub_80D0C78: @ 80D0C78 ldrh r1, [r0, 0xC] adds r1, 0x8 strh r1, [r0, 0xC] - ldr r3, _080D0CE4 @ =gUnknown_2038700 + ldr r3, _080D0CE4 @ =gScanlineEffectRegBuffers ldr r1, [r4] movs r2, 0x14 ldrsh r1, [r1, r2] @@ -557,7 +557,7 @@ _080D0CCA: bx r1 .align 2, 0 _080D0CE0: .4byte gUnknown_2039A2C -_080D0CE4: .4byte gUnknown_2038700 +_080D0CE4: .4byte gScanlineEffectRegBuffers _080D0CE8: .4byte gPaletteFade _080D0CEC: .4byte sub_80D0BD4 thumb_func_end sub_80D0C78 @@ -572,7 +572,7 @@ sub_80D0CF0: @ 80D0CF0 cmp r0, 0 beq _080D0D14 ldr r1, _080D0D1C @ =0x040000d4 - ldr r0, _080D0D20 @ =gUnknown_2038700 + ldr r0, _080D0D20 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -587,13 +587,13 @@ _080D0D14: .align 2, 0 _080D0D18: .4byte gUnknown_2039A2C _080D0D1C: .4byte 0x040000d4 -_080D0D20: .4byte gUnknown_2038700 +_080D0D20: .4byte gScanlineEffectRegBuffers _080D0D24: .4byte 0x800000a0 thumb_func_end sub_80D0CF0 thumb_func_start sub_80D0D28 sub_80D0D28: @ 80D0D28 - ldr r1, _080D0D48 @ =gUnknown_2038700 + ldr r1, _080D0D48 @ =gScanlineEffectRegBuffers ldr r0, _080D0D4C @ =0x04000006 ldrh r0, [r0] lsls r0, 1 @@ -610,7 +610,7 @@ sub_80D0D28: @ 80D0D28 strh r1, [r0] bx lr .align 2, 0 -_080D0D48: .4byte gUnknown_2038700 +_080D0D48: .4byte gScanlineEffectRegBuffers _080D0D4C: .4byte 0x04000006 _080D0D50: .4byte 0x04000014 thumb_func_end sub_80D0D28 @@ -651,7 +651,7 @@ sub_80D0D8C: @ 80D0D8C sub sp, 0x4 adds r4, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r0, 0x1 negs r0, r0 movs r1, 0 @@ -662,7 +662,7 @@ sub_80D0D8C: @ 80D0D8C bl BeginNormalPaletteFade ldr r0, _080D0DE0 @ =gUnknown_2039A2C ldr r1, [r0] - ldr r0, _080D0DE4 @ =gUnknown_2038E80 + ldr r0, _080D0DE4 @ =gScanlineEffectRegBuffers + 0x780 movs r2, 0x16 ldrsh r1, [r1, r2] movs r2, 0xA0 @@ -684,7 +684,7 @@ sub_80D0D8C: @ 80D0D8C bx r1 .align 2, 0 _080D0DE0: .4byte gUnknown_2039A2C -_080D0DE4: .4byte gUnknown_2038E80 +_080D0DE4: .4byte gScanlineEffectRegBuffers + 0x780 _080D0DE8: .4byte sub_80D0E80 _080D0DEC: .4byte sub_80D0EB8 thumb_func_end sub_80D0D8C @@ -715,7 +715,7 @@ _080D0E18: lsrs r0, r4, 8 asrs r1, r7, 16 bl Sin - ldr r1, _080D0E74 @ =gUnknown_2038700 + ldr r1, _080D0E74 @ =gScanlineEffectRegBuffers lsls r2, r5, 1 adds r2, r1 ldr r6, _080D0E70 @ =gUnknown_2039A2C @@ -756,7 +756,7 @@ _080D0E5E: bx r1 .align 2, 0 _080D0E70: .4byte gUnknown_2039A2C -_080D0E74: .4byte gUnknown_2038700 +_080D0E74: .4byte gScanlineEffectRegBuffers _080D0E78: .4byte gPaletteFade _080D0E7C: .4byte sub_80D0D54 thumb_func_end sub_80D0DF0 @@ -771,7 +771,7 @@ sub_80D0E80: @ 80D0E80 cmp r0, 0 beq _080D0EA4 ldr r1, _080D0EAC @ =0x040000d4 - ldr r0, _080D0EB0 @ =gUnknown_2038700 + ldr r0, _080D0EB0 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -786,13 +786,13 @@ _080D0EA4: .align 2, 0 _080D0EA8: .4byte gUnknown_2039A2C _080D0EAC: .4byte 0x040000d4 -_080D0EB0: .4byte gUnknown_2038700 +_080D0EB0: .4byte gScanlineEffectRegBuffers _080D0EB4: .4byte 0x800000a0 thumb_func_end sub_80D0E80 thumb_func_start sub_80D0EB8 sub_80D0EB8: @ 80D0EB8 - ldr r1, _080D0ED8 @ =gUnknown_2038700 + ldr r1, _080D0ED8 @ =gScanlineEffectRegBuffers ldr r0, _080D0EDC @ =0x04000006 ldrh r0, [r0] lsls r0, 1 @@ -809,7 +809,7 @@ sub_80D0EB8: @ 80D0EB8 strh r1, [r0] bx lr .align 2, 0 -_080D0ED8: .4byte gUnknown_2038700 +_080D0ED8: .4byte gScanlineEffectRegBuffers _080D0EDC: .4byte 0x04000006 _080D0EE0: .4byte 0x04000016 thumb_func_end sub_80D0EB8 @@ -850,7 +850,7 @@ sub_80D0F1C: @ 80D0F1C sub sp, 0xC adds r4, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r1, 0 movs r0, 0x10 strh r0, [r4, 0xA] @@ -878,7 +878,7 @@ sub_80D0F1C: @ 80D0F1C movs r1, 0 add r5, sp, 0x4 add r6, sp, 0x8 - ldr r3, _080D0FC0 @ =gUnknown_2038E80 + ldr r3, _080D0FC0 @ =gScanlineEffectRegBuffers + 0x780 movs r2, 0xF0 _080D0F64: lsls r0, r1, 1 @@ -921,7 +921,7 @@ _080D0F64: .align 2, 0 _080D0FB8: .4byte gUnknown_2039A2C _080D0FBC: .4byte 0x00003f41 -_080D0FC0: .4byte gUnknown_2038E80 +_080D0FC0: .4byte gScanlineEffectRegBuffers + 0x780 _080D0FC4: .4byte sub_80D1370 _080D0FC8: .4byte 0x01000400 _080D0FCC: .4byte gUnknown_83F87A0 @@ -943,7 +943,7 @@ sub_80D0FD4: @ 80D0FD4 movs r1, 0 ldr r0, [sp, 0x8] mov r9, r0 - ldr r6, _080D1060 @ =gUnknown_2038700 + ldr r6, _080D1060 @ =gScanlineEffectRegBuffers mov r8, r6 movs r0, 0xF0 lsls r0, 8 @@ -1000,7 +1000,7 @@ _080D1000: bx r1 .align 2, 0 _080D105C: .4byte gUnknown_83FA784 -_080D1060: .4byte gUnknown_2038700 +_080D1060: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D0FD4 thumb_func_start sub_80D1064 @@ -1053,7 +1053,7 @@ _080D10AE: ldrh r5, [r3, 0x12] adds r1, r5 strh r1, [r3, 0x12] - ldr r0, _080D10F4 @ =gUnknown_2038700 + ldr r0, _080D10F4 @ =gScanlineEffectRegBuffers movs r5, 0x10 ldrsh r2, [r3, r5] lsls r1, 16 @@ -1077,7 +1077,7 @@ _080D10AE: .align 2, 0 _080D10EC: .4byte gUnknown_2039A2C _080D10F0: .4byte 0xfffffe80 -_080D10F4: .4byte gUnknown_2038700 +_080D10F4: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D1064 thumb_func_start sub_80D10F8 @@ -1139,7 +1139,7 @@ _080D1160: movs r0, 0 _080D1162: strh r0, [r3, 0x12] - ldr r0, _080D1194 @ =gUnknown_2038700 + ldr r0, _080D1194 @ =gScanlineEffectRegBuffers movs r1, 0x10 ldrsh r2, [r3, r1] ldrh r1, [r3, 0x12] @@ -1163,7 +1163,7 @@ _080D1162: pop {r1} bx r1 .align 2, 0 -_080D1194: .4byte gUnknown_2038700 +_080D1194: .4byte gScanlineEffectRegBuffers _080D1198: .4byte gUnknown_2039A2C thumb_func_end sub_80D10F8 @@ -1195,7 +1195,7 @@ _080D11C8: .4byte 0xfffffe80 _080D11CC: strh r2, [r4, 0x12] _080D11CE: - ldr r0, _080D1218 @ =gUnknown_2038700 + ldr r0, _080D1218 @ =gScanlineEffectRegBuffers movs r3, 0x10 ldrsh r2, [r4, r3] ldrh r1, [r4, 0x12] @@ -1233,7 +1233,7 @@ _080D1202: pop {r1} bx r1 .align 2, 0 -_080D1218: .4byte gUnknown_2038700 +_080D1218: .4byte gScanlineEffectRegBuffers _080D121C: .4byte gUnknown_2039A2C thumb_func_end sub_80D119C @@ -1272,7 +1272,7 @@ _080D1242: bge _080D125E strh r3, [r4, 0xA] _080D125E: - ldr r0, _080D12CC @ =gUnknown_2038700 + ldr r0, _080D12CC @ =gScanlineEffectRegBuffers movs r1, 0xA ldrsh r3, [r4, r1] movs r1, 0x78 @@ -1322,7 +1322,7 @@ _080D12AE: .align 2, 0 _080D12C4: .4byte gUnknown_2039A2C _080D12C8: .4byte 0x000007ff -_080D12CC: .4byte gUnknown_2038700 +_080D12CC: .4byte gScanlineEffectRegBuffers _080D12D0: .4byte 0x040000b0 _080D12D4: .4byte 0x0000c5ff _080D12D8: .4byte 0x00007fff @@ -1350,7 +1350,7 @@ sub_80D12E4: @ 80D12E4 cmp r0, 0 beq _080D131C ldr r1, _080D1364 @ =0x040000d4 - ldr r0, _080D1368 @ =gUnknown_2038700 + ldr r0, _080D1368 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -1389,7 +1389,7 @@ _080D1358: .4byte 0x0000c5ff _080D135C: .4byte 0x00007fff _080D1360: .4byte gUnknown_2039A2C _080D1364: .4byte 0x040000d4 -_080D1368: .4byte gUnknown_2038700 +_080D1368: .4byte gScanlineEffectRegBuffers _080D136C: .4byte 0x800000a0 thumb_func_end sub_80D12E4 @@ -1398,7 +1398,7 @@ sub_80D1370: @ 80D1370 push {lr} bl sub_80D12E4 ldr r1, _080D138C @ =0x040000b0 - ldr r0, _080D1390 @ =gUnknown_2038E80 + ldr r0, _080D1390 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r1] ldr r0, _080D1394 @ =0x04000010 str r0, [r1, 0x4] @@ -1409,7 +1409,7 @@ sub_80D1370: @ 80D1370 bx r0 .align 2, 0 _080D138C: .4byte 0x040000b0 -_080D1390: .4byte gUnknown_2038E80 +_080D1390: .4byte gScanlineEffectRegBuffers + 0x780 _080D1394: .4byte 0x04000010 _080D1398: .4byte 0xa2400001 thumb_func_end sub_80D1370 @@ -1419,7 +1419,7 @@ sub_80D139C: @ 80D139C push {lr} bl sub_80D12E4 ldr r1, _080D13B8 @ =0x040000b0 - ldr r0, _080D13BC @ =gUnknown_2038E80 + ldr r0, _080D13BC @ =gScanlineEffectRegBuffers + 0x780 str r0, [r1] ldr r0, _080D13C0 @ =0x04000040 str r0, [r1, 0x4] @@ -1430,7 +1430,7 @@ sub_80D139C: @ 80D139C bx r0 .align 2, 0 _080D13B8: .4byte 0x040000b0 -_080D13BC: .4byte gUnknown_2038E80 +_080D13BC: .4byte gScanlineEffectRegBuffers + 0x780 _080D13C0: .4byte 0x04000040 _080D13C4: .4byte 0xa2400001 thumb_func_end sub_80D139C @@ -1782,7 +1782,7 @@ sub_80D1670: @ 80D1670 push {r4,lr} adds r4, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldr r0, _080D16C4 @ =gUnknown_2039A2C ldr r1, [r0] movs r0, 0 @@ -1794,7 +1794,7 @@ sub_80D1670: @ 80D1670 movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 - ldr r3, _080D16CC @ =gUnknown_2038E80 + ldr r3, _080D16CC @ =gScanlineEffectRegBuffers + 0x780 ldr r2, _080D16D0 @ =0x0000f3f4 _080D1696: lsls r0, r1, 1 @@ -1821,7 +1821,7 @@ _080D1696: .align 2, 0 _080D16C4: .4byte gUnknown_2039A2C _080D16C8: .4byte 0x0000f0f1 -_080D16CC: .4byte gUnknown_2038E80 +_080D16CC: .4byte gScanlineEffectRegBuffers + 0x780 _080D16D0: .4byte 0x0000f3f4 _080D16D4: .4byte sub_80D1ABC thumb_func_end sub_80D1670 @@ -1850,7 +1850,7 @@ sub_80D16D8: @ 80D16D8 movs r1, 0x78 movs r2, 0x50 bl sub_80D4088 - ldr r5, _080D1764 @ =gUnknown_2038700 + ldr r5, _080D1764 @ =gScanlineEffectRegBuffers _080D1708: ldr r4, _080D1760 @ =gUnknown_2039A2C ldr r0, [r4] @@ -1898,7 +1898,7 @@ _080D174C: bx r1 .align 2, 0 _080D1760: .4byte gUnknown_2039A2C -_080D1764: .4byte gUnknown_2038700 +_080D1764: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D16D8 thumb_func_start sub_80D1768 @@ -1947,7 +1947,7 @@ _080D17A6: ldrh r1, [r3, 0x28] movs r4, 0xF0 _080D17BE: - ldr r6, _080D17F0 @ =gUnknown_2038700 + ldr r6, _080D17F0 @ =gScanlineEffectRegBuffers movs r0, 0x2A ldrsh r2, [r3, r0] lsls r2, 1 @@ -1970,7 +1970,7 @@ _080D17BE: b _080D17A6 .align 2, 0 _080D17EC: .4byte gUnknown_2039A2C -_080D17F0: .4byte gUnknown_2038700 +_080D17F0: .4byte gScanlineEffectRegBuffers _080D17F4: ldr r1, [r7] ldrh r0, [r1, 0x2E] @@ -2051,7 +2051,7 @@ sub_80D185C: @ 80D185C movs r1, 0x78 movs r2, 0x50 bl sub_80D4088 - ldr r5, _080D18E0 @ =gUnknown_2038700 + ldr r5, _080D18E0 @ =gScanlineEffectRegBuffers _080D188A: ldr r4, _080D18DC @ =gUnknown_2039A2C ldr r0, [r4] @@ -2096,7 +2096,7 @@ _080D18C8: bx r1 .align 2, 0 _080D18DC: .4byte gUnknown_2039A2C -_080D18E0: .4byte gUnknown_2038700 +_080D18E0: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D185C thumb_func_start sub_80D18E4 @@ -2129,7 +2129,7 @@ sub_80D18E4: @ 80D18E4 movs r2, 0x50 movs r3, 0 bl sub_80D4088 - ldr r7, _080D1970 @ =gUnknown_2038700 + ldr r7, _080D1970 @ =gScanlineEffectRegBuffers mov r10, r7 ldr r0, _080D196C @ =gUnknown_2039A2C mov r8, r0 @@ -2171,7 +2171,7 @@ _080D1948: b _080D1928 .align 2, 0 _080D196C: .4byte gUnknown_2039A2C -_080D1970: .4byte gUnknown_2038700 +_080D1970: .4byte gScanlineEffectRegBuffers _080D1974: mov r0, r8 ldr r2, [r0] @@ -2193,7 +2193,7 @@ _080D1992: ldrsh r0, [r2, r4] cmp r0, r3 ble _080D19BC - ldr r6, _080D19DC @ =gUnknown_2038700 + ldr r6, _080D19DC @ =gScanlineEffectRegBuffers adds r3, r1, 0 ldr r5, _080D19E0 @ =gUnknown_2039A2C _080D19A0: @@ -2228,7 +2228,7 @@ _080D19BC: pop {r1} bx r1 .align 2, 0 -_080D19DC: .4byte gUnknown_2038700 +_080D19DC: .4byte gScanlineEffectRegBuffers _080D19E0: .4byte gUnknown_2039A2C thumb_func_end sub_80D18E4 @@ -2254,7 +2254,7 @@ sub_80D19E4: @ 80D19E4 movs r1, 0x78 movs r2, 0x50 bl sub_80D4088 - ldr r6, _080D1A78 @ =gUnknown_2038700 + ldr r6, _080D1A78 @ =gScanlineEffectRegBuffers _080D1A10: movs r2, 0x78 ldr r5, _080D1A74 @ =gUnknown_2039A2C @@ -2308,7 +2308,7 @@ _080D1A5E: bx r1 .align 2, 0 _080D1A74: .4byte gUnknown_2039A2C -_080D1A78: .4byte gUnknown_2038700 +_080D1A78: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D19E4 thumb_func_start sub_80D1A7C @@ -2360,7 +2360,7 @@ sub_80D1ABC: @ 80D1ABC cmp r0, 0 beq _080D1AF4 ldr r1, _080D1B44 @ =0x040000d4 - ldr r0, _080D1B48 @ =gUnknown_2038700 + ldr r0, _080D1B48 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -2382,7 +2382,7 @@ _080D1AF4: ldrh r1, [r0, 0x8] movs r0, 0x44 bl SetGpuReg - ldr r4, _080D1B48 @ =gUnknown_2038700 + ldr r4, _080D1B48 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r4, r0 @@ -2404,7 +2404,7 @@ _080D1B38: .4byte 0x0000c5ff _080D1B3C: .4byte 0x00007fff _080D1B40: .4byte gUnknown_2039A2C _080D1B44: .4byte 0x040000d4 -_080D1B48: .4byte gUnknown_2038700 +_080D1B48: .4byte gScanlineEffectRegBuffers _080D1B4C: .4byte 0x800000a0 _080D1B50: .4byte 0x04000040 _080D1B54: .4byte 0xa2400001 @@ -2445,9 +2445,9 @@ sub_80D1B90: @ 80D1B90 push {r4,r5,lr} adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r2, 0 - ldr r4, _080D1BD8 @ =gUnknown_2038E80 + ldr r4, _080D1BD8 @ =gScanlineEffectRegBuffers + 0x780 ldr r3, _080D1BDC @ =gUnknown_2039A2C _080D1BA2: lsls r1, r2, 1 @@ -2474,7 +2474,7 @@ _080D1BA2: pop {r1} bx r1 .align 2, 0 -_080D1BD8: .4byte gUnknown_2038E80 +_080D1BD8: .4byte gScanlineEffectRegBuffers + 0x780 _080D1BDC: .4byte gUnknown_2039A2C _080D1BE0: .4byte sub_80D1CC8 _080D1BE4: .4byte sub_80D1D00 @@ -2519,7 +2519,7 @@ _080D1C28: lsrs r0, r4, 8 asrs r1, r7, 16 bl Sin - ldr r1, _080D1CBC @ =gUnknown_2038700 + ldr r1, _080D1CBC @ =gScanlineEffectRegBuffers lsls r2, r5, 1 adds r2, r1 ldr r1, _080D1CB4 @ =gUnknown_2039A2C @@ -2587,7 +2587,7 @@ _080D1C9A: .align 2, 0 _080D1CB4: .4byte gUnknown_2039A2C _080D1CB8: .4byte 0x1fff0000 -_080D1CBC: .4byte gUnknown_2038700 +_080D1CBC: .4byte gScanlineEffectRegBuffers _080D1CC0: .4byte gPaletteFade _080D1CC4: .4byte sub_80D1B58 thumb_func_end sub_80D1BE8 @@ -2602,7 +2602,7 @@ sub_80D1CC8: @ 80D1CC8 cmp r0, 0 beq _080D1CEC ldr r1, _080D1CF4 @ =0x040000d4 - ldr r0, _080D1CF8 @ =gUnknown_2038700 + ldr r0, _080D1CF8 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -2617,13 +2617,13 @@ _080D1CEC: .align 2, 0 _080D1CF0: .4byte gUnknown_2039A2C _080D1CF4: .4byte 0x040000d4 -_080D1CF8: .4byte gUnknown_2038700 +_080D1CF8: .4byte gScanlineEffectRegBuffers _080D1CFC: .4byte 0x800000a0 thumb_func_end sub_80D1CC8 thumb_func_start sub_80D1D00 sub_80D1D00: @ 80D1D00 - ldr r1, _080D1D20 @ =gUnknown_2038700 + ldr r1, _080D1D20 @ =gScanlineEffectRegBuffers ldr r0, _080D1D24 @ =0x04000006 ldrh r0, [r0] lsls r0, 1 @@ -2640,7 +2640,7 @@ sub_80D1D00: @ 80D1D00 strh r1, [r0] bx lr .align 2, 0 -_080D1D20: .4byte gUnknown_2038700 +_080D1D20: .4byte gScanlineEffectRegBuffers _080D1D24: .4byte 0x04000006 _080D1D28: .4byte 0x04000016 thumb_func_end sub_80D1D00 @@ -2680,7 +2680,7 @@ sub_80D1D64: @ 80D1D64 push {r4,lr} adds r4, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldr r0, _080D1DB0 @ =gUnknown_2039A2C ldr r1, [r0] movs r2, 0 @@ -2692,7 +2692,7 @@ sub_80D1D64: @ 80D1D64 movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 - ldr r3, _080D1DB4 @ =gUnknown_2038E80 + ldr r3, _080D1DB4 @ =gScanlineEffectRegBuffers + 0x780 movs r2, 0xF2 _080D1D8A: lsls r0, r1, 1 @@ -2714,7 +2714,7 @@ _080D1D8A: bx r1 .align 2, 0 _080D1DB0: .4byte gUnknown_2039A2C -_080D1DB4: .4byte gUnknown_2038E80 +_080D1DB4: .4byte gScanlineEffectRegBuffers + 0x780 _080D1DB8: .4byte sub_80D1E98 thumb_func_end sub_80D1D64 @@ -2729,7 +2729,7 @@ sub_80D1DBC: @ 80D1DBC ldrb r0, [r1] movs r0, 0 strb r0, [r1] - ldr r7, _080D1E54 @ =gUnknown_2038700 + ldr r7, _080D1E54 @ =gScanlineEffectRegBuffers ldrh r0, [r4, 0xC] ldrb r5, [r4, 0xC] adds r0, 0x10 @@ -2799,7 +2799,7 @@ _080D1E36: bx r1 .align 2, 0 _080D1E50: .4byte gUnknown_2039A2C -_080D1E54: .4byte gUnknown_2038700 +_080D1E54: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D1DBC thumb_func_start sub_80D1E58 @@ -2851,7 +2851,7 @@ sub_80D1E98: @ 80D1E98 cmp r0, 0 beq _080D1ED0 ldr r1, _080D1F14 @ =0x040000d4 - ldr r0, _080D1F18 @ =gUnknown_2038700 + ldr r0, _080D1F18 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -2873,7 +2873,7 @@ _080D1ED0: ldrh r1, [r0, 0x8] movs r0, 0x44 bl SetGpuReg - ldr r0, _080D1F20 @ =gUnknown_2038E80 + ldr r0, _080D1F20 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r4] ldr r0, _080D1F24 @ =0x04000040 str r0, [r4, 0x4] @@ -2889,9 +2889,9 @@ _080D1F08: .4byte 0x0000c5ff _080D1F0C: .4byte 0x00007fff _080D1F10: .4byte gUnknown_2039A2C _080D1F14: .4byte 0x040000d4 -_080D1F18: .4byte gUnknown_2038700 +_080D1F18: .4byte gScanlineEffectRegBuffers _080D1F1C: .4byte 0x800000a0 -_080D1F20: .4byte gUnknown_2038E80 +_080D1F20: .4byte gScanlineEffectRegBuffers + 0x780 _080D1F24: .4byte 0x04000040 _080D1F28: .4byte 0xa2400001 thumb_func_end sub_80D1E98 @@ -2946,7 +2946,7 @@ sub_80D1F64: @ 80D1F64 mov r10, r0 movs r1, 0xA0 lsls r1, 17 - ldr r4, _080D1FD8 @ =gUnknown_2038E80 + ldr r4, _080D1FD8 @ =gScanlineEffectRegBuffers + 0x780 ldr r3, _080D1FDC @ =0x000003bf movs r2, 0x78 _080D1F8E: @@ -2988,7 +2988,7 @@ _080D1FAE: adds r0, r1, 0 b _080D1FE6 .align 2, 0 -_080D1FD8: .4byte gUnknown_2038E80 +_080D1FD8: .4byte gScanlineEffectRegBuffers + 0x780 _080D1FDC: .4byte 0x000003bf _080D1FE0: lsls r0, r3, 16 @@ -3104,7 +3104,7 @@ _080D2092: lsls r4, 1 adds r0, r2, r4 lsls r0, 1 - ldr r1, _080D20E8 @ =gUnknown_2038E80 + ldr r1, _080D20E8 @ =gScanlineEffectRegBuffers + 0x780 adds r0, r1 strh r7, [r0] lsls r0, r5, 16 @@ -3131,7 +3131,7 @@ _080D20C4: subs r0, r2, 0x1 b _080D20FC .align 2, 0 -_080D20E8: .4byte gUnknown_2038E80 +_080D20E8: .4byte gScanlineEffectRegBuffers + 0x780 _080D20EC: lsls r0, r3, 16 asrs r0, 16 @@ -3150,7 +3150,7 @@ _080D2100: cmp r1, 0 bge _080D212C asrs r2, r6, 16 - ldr r3, _080D2128 @ =gUnknown_2038E80 + ldr r3, _080D2128 @ =gScanlineEffectRegBuffers + 0x780 _080D210C: asrs r1, r0, 16 adds r0, r2, r1 @@ -3166,12 +3166,12 @@ _080D210C: blt _080D210C b _080D21F8 .align 2, 0 -_080D2128: .4byte gUnknown_2038E80 +_080D2128: .4byte gScanlineEffectRegBuffers + 0x780 _080D212C: cmp r1, 0 ble _080D21F8 asrs r2, r6, 16 - ldr r3, _080D2154 @ =gUnknown_2038E80 + ldr r3, _080D2154 @ =gScanlineEffectRegBuffers + 0x780 _080D2134: lsls r1, r5, 16 asrs r1, 16 @@ -3189,13 +3189,13 @@ _080D2134: bgt _080D2134 b _080D21F8 .align 2, 0 -_080D2154: .4byte gUnknown_2038E80 +_080D2154: .4byte gScanlineEffectRegBuffers + 0x780 _080D2158: movs r1, 0xF0 lsls r1, 1 adds r0, r2, r1 lsls r0, 1 - ldr r2, _080D2190 @ =gUnknown_2038E80 + ldr r2, _080D2190 @ =gScanlineEffectRegBuffers + 0x780 adds r0, r2 strh r7, [r0] lsls r0, r5, 16 @@ -3220,7 +3220,7 @@ _080D2158: subs r0, r2, 0x1 b _080D21A4 .align 2, 0 -_080D2190: .4byte gUnknown_2038E80 +_080D2190: .4byte gScanlineEffectRegBuffers + 0x780 _080D2194: lsls r0, r3, 16 asrs r0, 16 @@ -3239,7 +3239,7 @@ _080D21A8: cmp r1, 0 bge _080D21D4 asrs r2, r6, 16 - ldr r3, _080D21D0 @ =gUnknown_2038E80 + ldr r3, _080D21D0 @ =gScanlineEffectRegBuffers + 0x780 _080D21B4: asrs r1, r0, 16 adds r0, r2, r1 @@ -3255,12 +3255,12 @@ _080D21B4: blt _080D21B4 b _080D21F8 .align 2, 0 -_080D21D0: .4byte gUnknown_2038E80 +_080D21D0: .4byte gScanlineEffectRegBuffers + 0x780 _080D21D4: cmp r1, 0 ble _080D21F8 asrs r2, r6, 16 - ldr r3, _080D2270 @ =gUnknown_2038E80 + ldr r3, _080D2270 @ =gScanlineEffectRegBuffers + 0x780 _080D21DC: lsls r1, r5, 16 asrs r1, 16 @@ -3307,7 +3307,7 @@ _080D221A: _080D222C: movs r2, 0 mov r9, r2 - ldr r4, _080D2270 @ =gUnknown_2038E80 + ldr r4, _080D2270 @ =gScanlineEffectRegBuffers + 0x780 movs r5, 0xA0 lsls r5, 1 _080D2236: @@ -3341,7 +3341,7 @@ _080D2236: ble _080D2236 b _080D251C .align 2, 0 -_080D2270: .4byte gUnknown_2038E80 +_080D2270: .4byte gScanlineEffectRegBuffers + 0x780 _080D2274: ldr r1, [sp, 0xC] asrs r4, r1, 16 @@ -3396,7 +3396,7 @@ _080D22CA: adds r0, r5, r0 movs r3, 0 ldrsh r4, [r0, r3] - ldr r6, _080D2324 @ =gUnknown_2038E80 + ldr r6, _080D2324 @ =gScanlineEffectRegBuffers + 0x780 _080D22D4: ldr r0, _080D2328 @ =gUnknown_2039A2C ldr r5, [r0] @@ -3437,7 +3437,7 @@ _080D22D4: b _080D2334 .align 2, 0 _080D2320: .4byte gUnknown_83FA444 -_080D2324: .4byte gUnknown_2038E80 +_080D2324: .4byte gScanlineEffectRegBuffers + 0x780 _080D2328: .4byte gUnknown_2039A2C _080D232C: ldrh r0, [r3] @@ -3474,7 +3474,7 @@ _080D2360: adds r0, r5, r0 movs r3, 0 ldrsh r4, [r0, r3] - ldr r6, _080D23C0 @ =gUnknown_2038E80 + ldr r6, _080D23C0 @ =gScanlineEffectRegBuffers + 0x780 _080D236A: ldr r0, _080D23C4 @ =gUnknown_2039A2C ldr r3, [r0] @@ -3519,7 +3519,7 @@ _080D23A6: b _080D24DA .align 2, 0 _080D23BC: .4byte gUnknown_83FA444 -_080D23C0: .4byte gUnknown_2038E80 +_080D23C0: .4byte gScanlineEffectRegBuffers + 0x780 _080D23C4: .4byte gUnknown_2039A2C _080D23C8: .4byte 0xffff0000 _080D23CC: @@ -3539,7 +3539,7 @@ _080D23DA: adds r0, r5, r0 movs r6, 0 ldrsh r4, [r0, r6] - ldr r6, _080D2440 @ =gUnknown_2038E80 + ldr r6, _080D2440 @ =gScanlineEffectRegBuffers + 0x780 _080D23EC: ldr r0, _080D2444 @ =gUnknown_2039A2C ldr r5, [r0] @@ -3581,7 +3581,7 @@ _080D23EC: .align 2, 0 _080D2438: .4byte 0x0000ffb1 _080D243C: .4byte gUnknown_83FA444 -_080D2440: .4byte gUnknown_2038E80 +_080D2440: .4byte gScanlineEffectRegBuffers + 0x780 _080D2444: .4byte gUnknown_2039A2C _080D2448: ldrh r0, [r3] @@ -3619,7 +3619,7 @@ _080D2474: ldrsh r4, [r0, r3] ldr r6, _080D2534 @ =gUnknown_2039A2C mov r8, r6 - ldr r6, _080D2538 @ =gUnknown_2038E80 + ldr r6, _080D2538 @ =gScanlineEffectRegBuffers + 0x780 _080D248A: mov r0, r8 ldr r3, [r0] @@ -3665,7 +3665,7 @@ _080D24C6: _080D24DA: movs r4, 0 mov r9, r4 - ldr r4, _080D2538 @ =gUnknown_2038E80 + ldr r4, _080D2538 @ =gScanlineEffectRegBuffers + 0x780 movs r5, 0xA0 lsls r5, 1 _080D24E4: @@ -3710,7 +3710,7 @@ _080D251C: _080D252C: .4byte 0x0000ffb1 _080D2530: .4byte gUnknown_83FA444 _080D2534: .4byte gUnknown_2039A2C -_080D2538: .4byte gUnknown_2038E80 +_080D2538: .4byte gScanlineEffectRegBuffers + 0x780 thumb_func_end sub_80D1F64 thumb_func_start sub_80D253C @@ -3718,7 +3718,7 @@ sub_80D253C: @ 80D253C push {r4,r5,lr} adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldr r0, _080D25A0 @ =gUnknown_2039A2C ldr r1, [r0] movs r4, 0 @@ -3741,7 +3741,7 @@ sub_80D253C: @ 80D253C movs r2, 0x1 bl sub_80D1F64 ldr r1, _080D25B0 @ =0x040000d4 - ldr r0, _080D25B4 @ =gUnknown_2038E80 + ldr r0, _080D25B4 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r1] ldr r2, _080D25B8 @ =0xfffff880 adds r0, r2 @@ -3766,7 +3766,7 @@ _080D25A4: .4byte 0x00007878 _080D25A8: .4byte 0x00003070 _080D25AC: .4byte 0x00001090 _080D25B0: .4byte 0x040000d4 -_080D25B4: .4byte gUnknown_2038E80 +_080D25B4: .4byte gScanlineEffectRegBuffers + 0x780 _080D25B8: .4byte 0xfffff880 _080D25BC: .4byte 0x80000140 _080D25C0: .4byte sub_80D2698 @@ -3919,7 +3919,7 @@ _080D26E4: cmp r0, 0 beq _080D2700 ldr r1, _080D274C @ =0x040000d4 - ldr r0, _080D2750 @ =gUnknown_2038E80 + ldr r0, _080D2750 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r1] ldr r6, _080D2754 @ =0xfffff880 adds r0, r6 @@ -3946,7 +3946,7 @@ _080D2700: ldrh r1, [r0, 0xC] movs r0, 0x46 bl SetGpuReg - ldr r4, _080D275C @ =gUnknown_2038700 + ldr r4, _080D275C @ =gScanlineEffectRegBuffers ldrh r1, [r4] movs r0, 0x40 bl SetGpuReg @@ -3965,10 +3965,10 @@ _080D2746: bx r0 .align 2, 0 _080D274C: .4byte 0x040000d4 -_080D2750: .4byte gUnknown_2038E80 +_080D2750: .4byte gScanlineEffectRegBuffers + 0x780 _080D2754: .4byte 0xfffff880 _080D2758: .4byte 0x80000140 -_080D275C: .4byte gUnknown_2038700 +_080D275C: .4byte gScanlineEffectRegBuffers _080D2760: .4byte 0x04000040 _080D2764: .4byte 0xa6400001 thumb_func_end sub_80D2698 @@ -4103,7 +4103,7 @@ Phase2_Mugshot_Func1: @ 80D2840 push {r4,lr} adds r4, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear adds r0, r4, 0 bl sub_80D2EA4 movs r0, 0 @@ -4121,7 +4121,7 @@ Phase2_Mugshot_Func1: @ 80D2840 movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 - ldr r3, _080D289C @ =gUnknown_2038E80 + ldr r3, _080D289C @ =gScanlineEffectRegBuffers + 0x780 ldr r2, _080D28A0 @ =0x0000f0f1 _080D2874: lsls r0, r1, 1 @@ -4143,7 +4143,7 @@ _080D2874: bx r1 .align 2, 0 _080D2898: .4byte gUnknown_2039A2C -_080D289C: .4byte gUnknown_2038E80 +_080D289C: .4byte gScanlineEffectRegBuffers + 0x780 _080D28A0: .4byte 0x0000f0f1 _080D28A4: .4byte sub_80D2D50 thumb_func_end Phase2_Mugshot_Func1 @@ -4248,7 +4248,7 @@ sub_80D2968: @ 80D2968 ldrb r0, [r1] movs r0, 0 strb r0, [r1] - ldr r7, _080D2A50 @ =gUnknown_2038700 + ldr r7, _080D2A50 @ =gScanlineEffectRegBuffers ldrh r0, [r4, 0xA] ldrb r5, [r4, 0xA] adds r0, 0x10 @@ -4364,7 +4364,7 @@ _080D2A2A: bx r1 .align 2, 0 _080D2A4C: .4byte gUnknown_2039A2C -_080D2A50: .4byte gUnknown_2038700 +_080D2A50: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D2968 thumb_func_start sub_80D2A54 @@ -4376,7 +4376,7 @@ sub_80D2A54: @ 80D2A54 ldrb r0, [r1] movs r0, 0 strb r0, [r1] - ldr r1, _080D2ACC @ =gUnknown_2038700 + ldr r1, _080D2ACC @ =gScanlineEffectRegBuffers adds r5, r2, 0 movs r2, 0xF0 _080D2A68: @@ -4425,7 +4425,7 @@ _080D2A68: bx r1 .align 2, 0 _080D2AC8: .4byte gUnknown_2039A2C -_080D2ACC: .4byte gUnknown_2038700 +_080D2ACC: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D2A54 thumb_func_start sub_80D2AD0 @@ -4499,7 +4499,7 @@ sub_80D2B0C: @ 80D2B0C ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] - ldr r4, _080D2BBC @ =gUnknown_2038700 + ldr r4, _080D2BBC @ =gScanlineEffectRegBuffers movs r5, 0xA0 lsls r5, 1 adds r0, r4, 0 @@ -4542,7 +4542,7 @@ _080D2BAC: .4byte gUnknown_2039A2C _080D2BB0: .4byte 0x040000b0 _080D2BB4: .4byte 0x0000c5ff _080D2BB8: .4byte 0x00007fff -_080D2BBC: .4byte gUnknown_2038700 +_080D2BBC: .4byte gScanlineEffectRegBuffers _080D2BC0: .4byte sub_80D2DEC thumb_func_end sub_80D2B0C @@ -4593,7 +4593,7 @@ _080D2BFE: cmp r0, 0 blt _080D2C60 movs r7, 0x50 - ldr r5, _080D2C88 @ =gUnknown_2038700 + ldr r5, _080D2C88 @ =gScanlineEffectRegBuffers _080D2C1C: lsls r0, r2, 16 asrs r3, r0, 16 @@ -4652,7 +4652,7 @@ _080D2C6E: bx r1 .align 2, 0 _080D2C84: .4byte gUnknown_2039A2C -_080D2C88: .4byte gUnknown_2038700 +_080D2C88: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D2BC4 thumb_func_start sub_80D2C8C @@ -4697,7 +4697,7 @@ sub_80D2CC4: @ 80D2CC4 ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] - ldr r0, _080D2D0C @ =gUnknown_2038700 + ldr r0, _080D2D0C @ =gScanlineEffectRegBuffers movs r2, 0xE ldrsh r1, [r4, r2] movs r2, 0xA0 @@ -4722,7 +4722,7 @@ _080D2CF4: bx r1 .align 2, 0 _080D2D08: .4byte gUnknown_2039A2C -_080D2D0C: .4byte gUnknown_2038700 +_080D2D0C: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D2CC4 thumb_func_start sub_80D2D10 @@ -4775,7 +4775,7 @@ sub_80D2D50: @ 80D2D50 cmp r0, 0 beq _080D2D88 ldr r1, _080D2DD4 @ =0x040000d4 - ldr r0, _080D2DD8 @ =gUnknown_2038700 + ldr r0, _080D2DD8 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -4801,7 +4801,7 @@ _080D2D88: ldrh r1, [r0, 0x8] movs r0, 0x44 bl SetGpuReg - ldr r0, _080D2DE0 @ =gUnknown_2038E80 + ldr r0, _080D2DE0 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r4] ldr r0, _080D2DE4 @ =0x04000040 str r0, [r4, 0x4] @@ -4817,9 +4817,9 @@ _080D2DC8: .4byte 0x0000c5ff _080D2DCC: .4byte 0x00007fff _080D2DD0: .4byte gUnknown_2039A2C _080D2DD4: .4byte 0x040000d4 -_080D2DD8: .4byte gUnknown_2038700 +_080D2DD8: .4byte gScanlineEffectRegBuffers _080D2DDC: .4byte 0x800000a0 -_080D2DE0: .4byte gUnknown_2038E80 +_080D2DE0: .4byte gScanlineEffectRegBuffers + 0x780 _080D2DE4: .4byte 0x04000040 _080D2DE8: .4byte 0xa2400001 thumb_func_end sub_80D2D50 @@ -4844,7 +4844,7 @@ sub_80D2DEC: @ 80D2DEC cmp r0, 0 beq _080D2E24 ldr r1, _080D2E54 @ =0x040000d4 - ldr r0, _080D2E58 @ =gUnknown_2038700 + ldr r0, _080D2E58 @ =gScanlineEffectRegBuffers str r0, [r1] movs r3, 0xF0 lsls r3, 3 @@ -4858,7 +4858,7 @@ _080D2E24: ldrh r1, [r0, 0xE] movs r0, 0x50 bl SetGpuReg - ldr r0, _080D2E60 @ =gUnknown_2038E80 + ldr r0, _080D2E60 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r4] ldr r0, _080D2E64 @ =0x04000054 str r0, [r4, 0x4] @@ -4874,9 +4874,9 @@ _080D2E48: .4byte 0x0000c5ff _080D2E4C: .4byte 0x00007fff _080D2E50: .4byte gUnknown_2039A2C _080D2E54: .4byte 0x040000d4 -_080D2E58: .4byte gUnknown_2038700 +_080D2E58: .4byte gScanlineEffectRegBuffers _080D2E5C: .4byte 0x800000a0 -_080D2E60: .4byte gUnknown_2038E80 +_080D2E60: .4byte gScanlineEffectRegBuffers + 0x780 _080D2E64: .4byte 0x04000054 _080D2E68: .4byte 0xa2400001 thumb_func_end sub_80D2DEC @@ -4953,7 +4953,7 @@ sub_80D2EA4: @ 80D2EA4 ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 24 lsrs r0, 24 movs r1, 0x88 @@ -5321,7 +5321,7 @@ sub_80D31A4: @ 80D31A4 push {r4-r6,lr} adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r3, 0 movs r0, 0x80 lsls r0, 1 @@ -5335,7 +5335,7 @@ sub_80D31A4: @ 80D31A4 strh r3, [r1, 0x4] movs r0, 0xA0 strh r0, [r1, 0x8] - ldr r4, _080D3214 @ =gUnknown_2038E80 + ldr r4, _080D3214 @ =gScanlineEffectRegBuffers + 0x780 adds r6, r2, 0 movs r2, 0xF0 _080D31D0: @@ -5369,7 +5369,7 @@ _080D31D0: bx r1 .align 2, 0 _080D3210: .4byte gUnknown_2039A2C -_080D3214: .4byte gUnknown_2038E80 +_080D3214: .4byte gScanlineEffectRegBuffers + 0x780 _080D3218: .4byte sub_80D332C _080D321C: .4byte sub_80D33C0 thumb_func_end sub_80D31A4 @@ -5417,7 +5417,7 @@ _080D325E: strh r0, [r3, 0xE] _080D326A: movs r5, 0 - ldr r7, _080D32A4 @ =gUnknown_2038700 + ldr r7, _080D32A4 @ =gScanlineEffectRegBuffers movs r1, 0xA0 lsls r1, 1 adds r1, r7 @@ -5444,7 +5444,7 @@ _080D3278: .align 2, 0 _080D329C: .4byte gUnknown_2039A2C _080D32A0: .4byte 0x00000fff -_080D32A4: .4byte gUnknown_2038700 +_080D32A4: .4byte gScanlineEffectRegBuffers _080D32A8: ldr r0, [r6] ldrh r0, [r0, 0x14] @@ -5545,7 +5545,7 @@ sub_80D332C: @ 80D332C cmp r0, 0 beq _080D3382 ldr r1, _080D33A8 @ =0x040000d4 - ldr r0, _080D33AC @ =gUnknown_2038700 + ldr r0, _080D33AC @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -5555,7 +5555,7 @@ sub_80D332C: @ 80D332C str r0, [r1, 0x8] ldr r0, [r1, 0x8] _080D3382: - ldr r0, _080D33B4 @ =gUnknown_2038FC0 + ldr r0, _080D33B4 @ =gScanlineEffectRegBuffers + 0x8C0 str r0, [r5] ldr r0, _080D33B8 @ =0x04000040 str r0, [r5, 0x4] @@ -5571,16 +5571,16 @@ _080D339C: .4byte 0x0000c5ff _080D33A0: .4byte 0x00007fff _080D33A4: .4byte gUnknown_2039A2C _080D33A8: .4byte 0x040000d4 -_080D33AC: .4byte gUnknown_2038700 +_080D33AC: .4byte gScanlineEffectRegBuffers _080D33B0: .4byte 0x80000140 -_080D33B4: .4byte gUnknown_2038FC0 +_080D33B4: .4byte gScanlineEffectRegBuffers + 0x8C0 _080D33B8: .4byte 0x04000040 _080D33BC: .4byte 0xa2400001 thumb_func_end sub_80D332C thumb_func_start sub_80D33C0 sub_80D33C0: @ 80D33C0 - ldr r1, _080D33E0 @ =gUnknown_2038700 + ldr r1, _080D33E0 @ =gScanlineEffectRegBuffers ldr r0, _080D33E4 @ =0x04000006 ldrh r0, [r0] lsls r0, 1 @@ -5597,7 +5597,7 @@ sub_80D33C0: @ 80D33C0 strh r1, [r0] bx lr .align 2, 0 -_080D33E0: .4byte gUnknown_2038700 +_080D33E0: .4byte gScanlineEffectRegBuffers _080D33E4: .4byte 0x04000006 _080D33E8: .4byte 0x04000014 thumb_func_end sub_80D33C0 @@ -5637,7 +5637,7 @@ sub_80D3424: @ 80D3424 push {r4,r5,lr} adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldr r0, _080D348C @ =gUnknown_2039A2C ldr r1, [r0] movs r2, 0 @@ -5651,7 +5651,7 @@ sub_80D3424: @ 80D3424 movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 - ldr r2, _080D3490 @ =gUnknown_2038E80 + ldr r2, _080D3490 @ =gScanlineEffectRegBuffers + 0x780 movs r4, 0 movs r3, 0xF0 _080D3450: @@ -5683,7 +5683,7 @@ _080D3450: bx r1 .align 2, 0 _080D348C: .4byte gUnknown_2039A2C -_080D3490: .4byte gUnknown_2038E80 +_080D3490: .4byte gScanlineEffectRegBuffers + 0x780 _080D3494: .4byte sub_80D36E0 _080D3498: .4byte sub_80D35F4 thumb_func_end sub_80D3424 @@ -5896,7 +5896,7 @@ sub_80D35F4: @ 80D35F4 cmp r0, 0 beq _080D3654 ldr r1, _080D3678 @ =0x040000d4 - ldr r0, _080D367C @ =gUnknown_2038700 + ldr r0, _080D367C @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -5906,7 +5906,7 @@ sub_80D35F4: @ 80D35F4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _080D3654: - ldr r0, _080D3684 @ =gUnknown_2038FC0 + ldr r0, _080D3684 @ =gScanlineEffectRegBuffers + 0x8C0 str r0, [r5] ldr r0, _080D3688 @ =0x04000040 str r0, [r5, 0x4] @@ -5922,9 +5922,9 @@ _080D366C: .4byte 0x0000c5ff _080D3670: .4byte 0x00007fff _080D3674: .4byte gUnknown_2039A2C _080D3678: .4byte 0x040000d4 -_080D367C: .4byte gUnknown_2038700 +_080D367C: .4byte gScanlineEffectRegBuffers _080D3680: .4byte 0x80000140 -_080D3684: .4byte gUnknown_2038FC0 +_080D3684: .4byte gScanlineEffectRegBuffers + 0x8C0 _080D3688: .4byte 0x04000040 _080D368C: .4byte 0xa2400001 thumb_func_end sub_80D35F4 @@ -5981,7 +5981,7 @@ sub_80D36E0: @ 80D36E0 strh r0, [r1] _080D36F8: ldr r2, _080D3718 @ =0x04000054 - ldr r1, _080D371C @ =gUnknown_2038700 + ldr r1, _080D371C @ =gScanlineEffectRegBuffers mov r0, sp ldrh r0, [r0] lsls r0, 1 @@ -5997,7 +5997,7 @@ _080D36F8: .align 2, 0 _080D3714: .4byte 0x04000006 _080D3718: .4byte 0x04000054 -_080D371C: .4byte gUnknown_2038700 +_080D371C: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D36E0 thumb_func_start sub_80D3720 @@ -6027,7 +6027,7 @@ _080D374C: movs r2, 0x22 ldrsh r0, [r3, r2] lsls r0, 1 - ldr r1, _080D3810 @ =gUnknown_2038700 + ldr r1, _080D3810 @ =gScanlineEffectRegBuffers adds r7, r0, r1 movs r2, 0xA0 lsls r2, 1 @@ -6131,7 +6131,7 @@ _080D380A: pop {r0} bx r0 .align 2, 0 -_080D3810: .4byte gUnknown_2038700 +_080D3810: .4byte gScanlineEffectRegBuffers _080D3814: .4byte gUnknown_2039A2C thumb_func_end sub_80D3720 @@ -6308,7 +6308,7 @@ sub_80D3960: @ 80D3960 push {r4,r5,lr} adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldr r0, _080D39B8 @ =gUnknown_2039A2C ldr r1, [r0] movs r2, 0 @@ -6318,7 +6318,7 @@ sub_80D3960: @ 80D3960 movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 - ldr r2, _080D39BC @ =gUnknown_2038700 + ldr r2, _080D39BC @ =gScanlineEffectRegBuffers movs r3, 0xF0 adds r4, r2, 0 _080D3984: @@ -6347,7 +6347,7 @@ _080D3984: bx r1 .align 2, 0 _080D39B8: .4byte gUnknown_2039A2C -_080D39BC: .4byte gUnknown_2038700 +_080D39BC: .4byte gScanlineEffectRegBuffers _080D39C0: .4byte sub_80D3BA4 thumb_func_end sub_80D3960 @@ -6428,10 +6428,10 @@ sub_80D3A40: @ 80D3A40 strb r0, [r1] mov r8, r0 movs r7, 0 - ldr r0, _080D3A94 @ =gUnknown_2038700 + ldr r0, _080D3A94 @ =gScanlineEffectRegBuffers mov r9, r0 _080D3A5C: - ldr r1, _080D3A94 @ =gUnknown_2038700 + ldr r1, _080D3A94 @ =gScanlineEffectRegBuffers ldr r0, _080D3A90 @ =gUnknown_2039A2C ldr r2, [r0] movs r3, 0x2A @@ -6460,7 +6460,7 @@ _080D3A84: b _080D3AB0 .align 2, 0 _080D3A90: .4byte gUnknown_2039A2C -_080D3A94: .4byte gUnknown_2038700 +_080D3A94: .4byte gScanlineEffectRegBuffers _080D3A98: lsls r0, r5, 16 asrs r0, 16 @@ -6626,7 +6626,7 @@ sub_80D3BA4: @ 80D3BA4 cmp r0, 0 beq _080D3BDC ldr r1, _080D3C2C @ =0x040000d4 - ldr r0, _080D3C30 @ =gUnknown_2038700 + ldr r0, _080D3C30 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -6648,7 +6648,7 @@ _080D3BDC: ldrh r1, [r0, 0x8] movs r0, 0x44 bl SetGpuReg - ldr r4, _080D3C30 @ =gUnknown_2038700 + ldr r4, _080D3C30 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r4, r0 @@ -6670,7 +6670,7 @@ _080D3C20: .4byte 0x0000c5ff _080D3C24: .4byte 0x00007fff _080D3C28: .4byte gUnknown_2039A2C _080D3C2C: .4byte 0x040000d4 -_080D3C30: .4byte gUnknown_2038700 +_080D3C30: .4byte gScanlineEffectRegBuffers _080D3C34: .4byte 0x800000a0 _080D3C38: .4byte 0x04000040 _080D3C3C: .4byte 0xa2400001 diff --git a/asm/berry.s b/asm/berry.s deleted file mode 100644 index 5537e3590..000000000 --- a/asm/berry.s +++ /dev/null @@ -1,311 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_809C718 -sub_809C718: @ 809C718 - push {r4,r5,lr} - ldr r2, _0809C778 @ =gSaveBlock1Ptr - ldr r1, [r2] - ldr r0, _0809C77C @ =gUnknown_83DF7E8 - ldr r3, _0809C780 @ =0x000030ec - adds r1, r3 - movs r4, 0x93 - lsls r4, 3 - adds r0, r4 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, [r0] - str r0, [r1] - movs r1, 0 - adds r4, r2, 0 - adds r5, r4, 0 - ldr r3, _0809C784 @ =0x00003108 - movs r2, 0 -_0809C740: - ldr r0, [r5] - adds r0, r3 - adds r0, r1 - strb r2, [r0] - adds r1, 0x1 - cmp r1, 0x11 - ble _0809C740 - ldr r0, [r4] - ldr r5, _0809C788 @ =0x0000311a - adds r0, r5 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - ldr r2, _0809C78C @ =0x0000311b - adds r0, r2 - strb r1, [r0] - ldr r0, [r4] - ldr r3, _0809C780 @ =0x000030ec - adds r0, r3 - bl GetEnigmaBerryChecksum - ldr r1, [r4] - ldr r4, _0809C790 @ =0x0000311c - adds r1, r4 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809C778: .4byte gSaveBlock1Ptr -_0809C77C: .4byte gUnknown_83DF7E8 -_0809C780: .4byte 0x000030ec -_0809C784: .4byte 0x00003108 -_0809C788: .4byte 0x0000311a -_0809C78C: .4byte 0x0000311b -_0809C790: .4byte 0x0000311c - thumb_func_end sub_809C718 - - thumb_func_start sub_809C794 -sub_809C794: @ 809C794 - push {lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, _0809C7B8 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, _0809C7BC @ =0x000030ec - adds r1, r0 - ldr r2, _0809C7C0 @ =0x0100001a - mov r0, sp - bl CpuSet - bl sub_809C718 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0809C7B8: .4byte gSaveBlock1Ptr -_0809C7BC: .4byte 0x000030ec -_0809C7C0: .4byte 0x0100001a - thumb_func_end sub_809C794 - - thumb_func_start SetEnigmaBerry -SetEnigmaBerry: @ 809C7C4 - push {r4-r7,lr} - adds r4, r0, 0 - bl sub_809C794 - adds r5, r4, 0 - ldr r0, _0809C824 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r0, _0809C828 @ =0x000030ec - adds r4, r2, r0 - adds r1, r4, 0 - adds r0, r5, 0 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldr r0, [r0] - str r0, [r1] - movs r3, 0 - ldr r0, _0809C82C @ =0x00003108 - adds r6, r2, r0 - ldr r1, _0809C830 @ =0x00000516 - adds r2, r5, r1 -_0809C7F0: - adds r0, r6, r3 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x11 - ble _0809C7F0 - movs r3, 0xA5 - lsls r3, 3 - adds r0, r5, r3 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x2E - strb r0, [r1] - ldr r6, _0809C834 @ =0x00000529 - adds r0, r5, r6 - ldrb r0, [r0] - adds r1, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl GetEnigmaBerryChecksum - str r0, [r4, 0x30] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809C824: .4byte gSaveBlock1Ptr -_0809C828: .4byte 0x000030ec -_0809C82C: .4byte 0x00003108 -_0809C830: .4byte 0x00000516 -_0809C834: .4byte 0x00000529 - thumb_func_end SetEnigmaBerry - - thumb_func_start GetEnigmaBerryChecksum -GetEnigmaBerryChecksum: @ 809C838 - push {lr} - adds r3, r0, 0 - movs r2, 0 - movs r1, 0 -_0809C840: - adds r0, r3, r1 - ldrb r0, [r0] - adds r2, r0 - adds r1, 0x1 - cmp r1, 0x2F - bls _0809C840 - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end GetEnigmaBerryChecksum - - thumb_func_start IsEnigmaBerryValid -IsEnigmaBerryValid: @ 809C854 - push {r4,lr} - ldr r4, _0809C888 @ =gSaveBlock1Ptr - ldr r1, [r4] - movs r2, 0xC4 - lsls r2, 6 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C898 - ldr r2, _0809C88C @ =0x000030f6 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C898 - ldr r2, _0809C890 @ =0x000030ec - adds r0, r1, r2 - bl GetEnigmaBerryChecksum - ldr r1, [r4] - ldr r2, _0809C894 @ =0x0000311c - adds r1, r2 - ldr r1, [r1] - cmp r0, r1 - bne _0809C898 - movs r0, 0x1 - b _0809C89A - .align 2, 0 -_0809C888: .4byte gSaveBlock1Ptr -_0809C88C: .4byte 0x000030f6 -_0809C890: .4byte 0x000030ec -_0809C894: .4byte 0x0000311c -_0809C898: - movs r0, 0 -_0809C89A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsEnigmaBerryValid - - thumb_func_start sub_809C8A0 -sub_809C8A0: @ 809C8A0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2B - bne _0809C8C4 - bl IsEnigmaBerryValid - cmp r0, 0 - beq _0809C8C4 - ldr r0, _0809C8BC @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _0809C8C0 @ =0x000030ec - b _0809C8D8 - .align 2, 0 -_0809C8BC: .4byte gSaveBlock1Ptr -_0809C8C0: .4byte 0x000030ec -_0809C8C4: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2A - bls _0809C8D0 - movs r4, 0x1 -_0809C8D0: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _0809C8E0 @ =gUnknown_83DF7CC -_0809C8D8: - adds r0, r1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809C8E0: .4byte gUnknown_83DF7CC - thumb_func_end sub_809C8A0 - - thumb_func_start ItemIdToBerryType -ItemIdToBerryType: @ 809C8E4 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _0809C900 @ =0xff7b0000 - adds r0, r2 - lsrs r0, 16 - cmp r0, 0x2A - bhi _0809C904 - adds r0, r1, 0 - adds r0, 0x7C - lsls r0, 24 - lsrs r0, 24 - b _0809C906 - .align 2, 0 -_0809C900: .4byte 0xff7b0000 -_0809C904: - movs r0, 0x1 -_0809C906: - pop {r1} - bx r1 - thumb_func_end ItemIdToBerryType - - thumb_func_start BerryTypeToItemId -BerryTypeToItemId: @ 809C90C - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _0809C928 @ =0xffff0000 - adds r0, r2 - lsrs r0, 16 - cmp r0, 0x2A - bhi _0809C92C - adds r0, r1, 0 - adds r0, 0x84 - lsls r0, 16 - lsrs r0, 16 - b _0809C92E - .align 2, 0 -_0809C928: .4byte 0xffff0000 -_0809C92C: - movs r0, 0x85 -_0809C92E: - pop {r1} - bx r1 - thumb_func_end BerryTypeToItemId - - thumb_func_start GetBerryNameByBerryType -GetBerryNameByBerryType: @ 809C934 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - bl sub_809C8A0 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x6 - bl memcpy - movs r0, 0xFF - strb r0, [r4, 0x6] - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetBerryNameByBerryType - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_814B6F0.s b/asm/berry_crush.s index 90882d61c..42de36a1f 100644 --- a/asm/unk_814B6F0.s +++ b/asm/berry_crush.s @@ -39,7 +39,7 @@ _0814B716: str r0, [r5] adds r0, r4, 0 bl SetMainCallback2 - ldr r0, _0814B748 @ =c2_exit_to_overworld_2_switch + ldr r0, _0814B748 @ =CB2_ReturnToField cmp r4, r0 bne _0814B73E ldr r0, _0814B74C @ =0x0000012f @@ -53,7 +53,7 @@ _0814B740: pop {r1} bx r1 .align 2, 0 -_0814B748: .4byte c2_exit_to_overworld_2_switch +_0814B748: .4byte CB2_ReturnToField _0814B74C: .4byte 0x0000012f _0814B750: .4byte sub_8056534 thumb_func_end sub_814B6FC @@ -204,7 +204,7 @@ _0814B878: .4byte gSpecialVar_ItemId _0814B87C: ldrh r0, [r1] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _0814B884: ldr r4, _0814B8E0 @ =gUnknown_203F3DC ldr r2, [r4] @@ -265,7 +265,7 @@ sub_814B8F0: @ 814B8F0 ldr r1, _0814B910 @ =sub_814B860 movs r0, 0x5 movs r2, 0 - bl sub_813CD50 + bl InitBerryPouch pop {r0} bx r0 .align 2, 0 diff --git a/asm/unk_814BB4C.s b/asm/berry_crush_2.s index 9c0e0503b..172724d0f 100644 --- a/asm/unk_814BB4C.s +++ b/asm/berry_crush_2.s @@ -201,7 +201,7 @@ _0814BC98: _0814BCA2: movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldrb r1, [r5, 0x1] movs r0, 0x2 mov r8, r0 @@ -229,7 +229,7 @@ _0814BCA2: movs r0, 0 movs r1, 0x2 adds r2, r4, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _0814BD12 .align 2, 0 _0814BCE8: .4byte gStringVar4 @@ -250,7 +250,7 @@ _0814BCF0: str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 _0814BD12: movs r0, 0 movs r1, 0x3 @@ -287,7 +287,7 @@ _0814BD48: beq _0814BD5A movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame _0814BD5A: ldrb r0, [r7, 0xE] movs r1, 0x1 @@ -597,7 +597,7 @@ _0814BFA0: .4byte gUnknown_83DFC9C _0814BFA4: movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame movs r0, 0xA movs r1, 0x1 movs r2, 0 @@ -1046,7 +1046,7 @@ sub_814C2FC: @ 814C2FC mov r10, r3 _0814C320: lsls r0, r7, 4 - ldr r1, _0814C3C4 @ =gUnknown_3003ED0 + ldr r1, _0814C3C4 @ =gRecvCmds adds r2, r0, r1 ldrh r1, [r2] movs r0, 0xFF @@ -1127,7 +1127,7 @@ _0814C320: b _0814C3D6 .align 2, 0 _0814C3C0: .4byte gUnknown_846E2E0 -_0814C3C4: .4byte gUnknown_3003ED0 +_0814C3C4: .4byte gRecvCmds _0814C3C8: adds r0, r4, r6 adds r2, r0, 0 @@ -1671,7 +1671,7 @@ sub_814C7BC: @ 814C7BC push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 - ldr r3, _0814C808 @ =gUnknown_3003ED0 + ldr r3, _0814C808 @ =gRecvCmds ldrb r0, [r5, 0x9] cmp r4, r0 bcs _0814C7E0 @@ -1710,7 +1710,7 @@ _0814C7F8: strb r0, [r2] b _0814C84A .align 2, 0 -_0814C808: .4byte gUnknown_3003ED0 +_0814C808: .4byte gRecvCmds _0814C80C: adds r4, r5, 0 adds r4, 0x4E @@ -2758,7 +2758,7 @@ _0814D03C: movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0814D080 @ =gStringVar2 - bl sub_815EFA0 + bl GetBerryPowder adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 @@ -2855,7 +2855,7 @@ _0814D106: beq _0814D17E movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _0814D148 @ =gUnknown_8419F54 movs r0, 0 str r0, [sp] @@ -2868,7 +2868,7 @@ _0814D106: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -2949,7 +2949,7 @@ _0814D1CA: bl sub_80F7858 b _0814D230 _0814D1D0: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 @@ -2963,7 +2963,7 @@ _0814D1D0: bl memset cmp r4, 0 bne _0814D202 - bl sub_8099FAC + bl CheckHasAtLeastOneBerry lsls r0, 24 cmp r0, 0 beq _0814D1FE @@ -2979,7 +2979,7 @@ _0814D204: _0814D206: movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame movs r4, 0 str r4, [sp] adds r0, r6, 0 @@ -3159,7 +3159,7 @@ _0814D34A: _0814D356: movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame adds r0, r5, 0 bl sub_814DA04 movs r0, 0x1 @@ -3217,7 +3217,7 @@ _0814D3BA: _0814D3C0: movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldrh r1, [r5, 0x14] cmp r1, 0x3 bne _0814D3F0 @@ -3232,7 +3232,7 @@ _0814D3C0: str r1, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _0814D40C .align 2, 0 _0814D3EC: .4byte gUnknown_846E328 @@ -3249,7 +3249,7 @@ _0814D3F0: str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 _0814D40C: movs r0, 0 movs r1, 0x3 diff --git a/asm/unk_814D5C8.s b/asm/berry_crush_3.s index 4c78d4459..f447c848f 100644 --- a/asm/unk_814D5C8.s +++ b/asm/berry_crush_3.s @@ -49,7 +49,7 @@ _0814D61C: movs r0, 0 movs r1, 0 bl SetGpuReg - bl remove_some_task + bl ScanlineEffect_Stop bl reset_temp_tile_data_buffers b _0814D878 _0814D63A: @@ -186,8 +186,8 @@ _0814D768: beq _0814D774 b _0814D87E _0814D774: - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 adds r0, r5, 0 bl sub_814EB38 adds r0, r5, 0 @@ -424,7 +424,7 @@ _0814D962: bl ClearGpuRegBits b _0814D9BA _0814D9A2: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite adds r0, r5, 0 bl sub_814EF10 bl sub_815C9F4 @@ -1212,7 +1212,7 @@ sub_814DF44: @ 814DF44 movs r1, 0x2 adds r2, r4, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3} mov r8, r3 @@ -1355,7 +1355,7 @@ _0814E048: movs r1, 0x2 adds r2, r7, 0 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [sp, 0x2C] ldrb r0, [r1] adds r2, r7, 0 @@ -1370,7 +1370,7 @@ _0814E048: str r1, [sp, 0x8] movs r1, 0x2 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 mov r9, r6 _0814E0C8: ldr r6, [sp, 0x20] @@ -1509,7 +1509,7 @@ _0814E178: ldr r1, _0814E1F8 @ =gStringVar4 str r1, [sp, 0x8] movs r1, 0x2 - bl box_print + bl AddTextPrinterParameterized3 b _0814E27E .align 2, 0 _0814E1E4: .4byte gStringVar1 @@ -1537,7 +1537,7 @@ _0814E21A: lsls r1, r2, 3 subs r1, r2 lsls r1, 2 - ldr r0, _0814E294 @ =gUnknown_83DF7E8 + ldr r0, _0814E294 @ =sBerries adds r1, r0 ldr r0, _0814E298 @ =gStringVar1 bl StringCopy @@ -1573,7 +1573,7 @@ _0814E21A: ldr r1, _0814E2A0 @ =gStringVar4 str r1, [sp, 0x8] movs r1, 0x2 - bl box_print + bl AddTextPrinterParameterized3 mov r9, r4 mov r6, r8 adds r6, 0xA2 @@ -1591,7 +1591,7 @@ _0814E27E: bl StringCopy b _0814E2B8 .align 2, 0 -_0814E294: .4byte gUnknown_83DF7E8 +_0814E294: .4byte sBerries _0814E298: .4byte gStringVar1 _0814E29C: .4byte gUnknown_846F4B8 _0814E2A0: .4byte gStringVar4 @@ -1632,7 +1632,7 @@ _0814E2B8: str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0x4 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r10 lsls r0, r2, 24 lsrs r0, 24 @@ -1702,7 +1702,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 movs r2, 0x2 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, _0814E568 @ =gUnknown_841D088 movs r0, 0x2 adds r1, r4, 0 @@ -1722,7 +1722,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r6, 0 subs r0, 0x20 lsls r0, 24 @@ -1759,7 +1759,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, _0814E57C @ =gUnknown_841D078 movs r0, 0x2 adds r1, r4, 0 @@ -1779,7 +1779,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r6, 0 subs r0, 0x9 lsls r0, 24 @@ -1806,7 +1806,7 @@ sub_814E32C: @ 814E32C 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 @@ -1821,7 +1821,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 movs r2, 0x2 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, _0814E588 @ =gUnknown_841D098 movs r0, 0x2 adds r1, r4, 0 @@ -1842,7 +1842,7 @@ sub_814E32C: @ 814E32C movs r1, 0x3 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 mov r4, r8 ldrb r2, [r4, 0x16] ldrh r0, [r4, 0x16] @@ -1919,7 +1919,7 @@ _0814E4EA: movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 b _0814E5B6 .align 2, 0 _0814E560: .4byte gUnknown_846E3DC @@ -1949,7 +1949,7 @@ _0814E59C: movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 _0814E5B6: adds r0, r7, 0 adds r0, 0xE @@ -1970,7 +1970,7 @@ _0814E5B6: movs r1, 0x2 movs r2, 0x2 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0814E638 @ =gStringVar1 ldr r4, [sp, 0x10] ldrh r1, [r4, 0x8] @@ -1998,7 +1998,7 @@ _0814E5B6: 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 @@ -2097,7 +2097,7 @@ _0814E6E0: ldr r4, _0814E700 @ =0x0000021d adds r1, r4, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldrb r0, [r5] movs r1, 0 adds r2, r4, 0 @@ -2246,7 +2246,7 @@ sub_814E80C: @ 814E80C adds r5, r4, r0 ldrb r0, [r5] movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r5] bl RemoveWindow adds r0, r4, 0 @@ -2309,7 +2309,7 @@ _0814E876: ldr r4, _0814E8AC @ =0x0000021d adds r1, r4, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldrb r0, [r7, 0x2] movs r1, 0 adds r2, r4, 0 @@ -2341,7 +2341,7 @@ _0814E8B0: str r5, [sp, 0x8] movs r1, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r5, _0814EA04 @ =gUnknown_841D124 movs r0, 0x2 adds r1, r5, 0 @@ -2358,7 +2358,7 @@ _0814E8B0: str r5, [sp, 0x8] movs r1, 0x2 movs r3, 0x12 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x2A str r0, [sp, 0xC] ldr r1, _0814EA08 @ =gStringVar4 @@ -2383,7 +2383,7 @@ _0814E90E: movs r1, 0x2 movs r2, 0x4 ldr r3, [sp, 0xC] - bl box_print + bl AddTextPrinterParameterized3 movs r3, 0 mov r0, r9 lsls r4, r0, 1 @@ -2456,7 +2456,7 @@ _0814E96E: str r1, [sp, 0x8] movs r1, 0x3 ldr r3, [sp, 0xC] - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [sp, 0x10] lsls r0, r1, 24 lsrs r0, 24 @@ -2499,7 +2499,7 @@ _0814EA3C: .4byte gMain _0814EA40: ldrb r0, [r7, 0x2] movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r7, 0x2] bl ClearWindowTilemap ldrb r0, [r7, 0x2] @@ -2723,7 +2723,7 @@ _0814EBC6: str r4, [sp, 0x10] movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 b _0814EC4C .align 2, 0 _0814EC10: .4byte 0x000001bb @@ -2752,7 +2752,7 @@ _0814EC18: str r4, [sp, 0x10] movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 _0814EC4C: ldr r1, _0814EC7C @ =0x000001bb adds r0, r6, r1 diff --git a/asm/berry_fix_program.s b/asm/berry_fix_program.s deleted file mode 100644 index ec40e1d98..000000000 --- a/asm/berry_fix_program.s +++ /dev/null @@ -1,344 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815F6E0 -sub_815F6E0: @ 815F6E0 - push {r4-r6,lr} - movs r6, 0x80 - lsls r6, 19 - movs r2, 0 - strh r2, [r6] - ldr r1, _0815F73C @ =0x04000010 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - adds r1, 0x3E - strh r2, [r1] - ldr r5, _0815F740 @ =gUnknown_847A890 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - adds r0, r5, 0x4 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, _0815F744 @ =0x0600f800 - bl LZ77UnCompVram - adds r5, 0x8 - adds r4, r5 - ldr r0, [r4] - movs r1, 0xA0 - lsls r1, 19 - movs r4, 0x80 - lsls r4, 1 - adds r2, r4, 0 - bl CpuSet - ldr r1, _0815F748 @ =0x04000008 - movs r2, 0xF8 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - strh r4, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F73C: .4byte 0x04000010 -_0815F740: .4byte gUnknown_847A890 -_0815F744: .4byte 0x0600f800 -_0815F748: .4byte 0x04000008 - thumb_func_end sub_815F6E0 - - thumb_func_start sub_815F74C -sub_815F74C: @ 815F74C - push {r4,lr} - sub sp, 0x4 - ldr r0, _0815F7C4 @ =0x0000ffff - bl DisableInterrupts - movs r0, 0x1 - bl EnableInterrupts - bl m4aSoundVSyncOff - movs r0, 0 - bl SetVBlankCallback - movs r4, 0 - str r4, [sp] - ldr r0, _0815F7C8 @ =0x040000d4 - mov r1, sp - str r1, [r0] - movs r1, 0xC0 - lsls r1, 19 - str r1, [r0, 0x4] - ldr r1, _0815F7CC @ =0x85006000 - str r1, [r0, 0x8] - ldr r1, [r0, 0x8] - str r4, [sp] - mov r1, sp - str r1, [r0] - movs r1, 0xA0 - lsls r1, 19 - str r1, [r0, 0x4] - ldr r1, _0815F7D0 @ =0x85000100 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl ResetSpriteData - bl ResetTasks - bl remove_some_task - ldr r0, _0815F7D4 @ =gUnknown_3005ECC - strb r4, [r0] - ldr r0, _0815F7D8 @ =sub_815F7F0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0815F7DC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - ldr r0, _0815F7E0 @ =sub_815F7E4 - bl SetMainCallback2 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815F7C4: .4byte 0x0000ffff -_0815F7C8: .4byte 0x040000d4 -_0815F7CC: .4byte 0x85006000 -_0815F7D0: .4byte 0x85000100 -_0815F7D4: .4byte gUnknown_3005ECC -_0815F7D8: .4byte sub_815F7F0 -_0815F7DC: .4byte gTasks -_0815F7E0: .4byte sub_815F7E4 - thumb_func_end sub_815F74C - - thumb_func_start sub_815F7E4 -sub_815F7E4: @ 815F7E4 - push {lr} - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_815F7E4 - - thumb_func_start sub_815F7F0 -sub_815F7F0: @ 815F7F0 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _0815F818 @ =gTasks+0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0xA - bls _0815F80C - b _0815F9A6 -_0815F80C: - lsls r0, 2 - ldr r1, _0815F81C @ =_0815F820 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815F818: .4byte gTasks+0x8 -_0815F81C: .4byte _0815F820 - .align 2, 0 -_0815F820: - .4byte _0815F84C - .4byte _0815F856 - .4byte _0815F874 - .4byte _0815F9A6 - .4byte _0815F890 - .4byte _0815F8C8 - .4byte _0815F934 - .4byte _0815F96A - .4byte _0815F96E - .4byte _0815F98C - .4byte _0815F996 -_0815F84C: - movs r0, 0x5 - bl sub_815F6E0 - movs r0, 0x1 - b _0815F9A4 -_0815F856: - ldr r0, _0815F870 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0815F864 - b _0815F9A6 -_0815F864: - movs r0, 0 - bl sub_815F6E0 - movs r0, 0x2 - b _0815F9A4 - .align 2, 0 -_0815F870: .4byte gMain -_0815F874: - ldr r0, _0815F88C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0815F882 - b _0815F9A6 -_0815F882: - movs r0, 0x1 - bl sub_815F6E0 - movs r0, 0x4 - b _0815F9A4 - .align 2, 0 -_0815F88C: .4byte gMain -_0815F890: - ldr r0, _0815F8B4 @ =gUnknown_3005EF0 - ldr r1, _0815F8B8 @ =gMultiBootProgram_BerryGlitchFix_Start - str r1, [r0] - ldr r2, _0815F8BC @ =gUnknown_3005EF8 - ldr r0, _0815F8C0 @ =gMultiBootProgram_BerryGlitchFix_End - subs r0, r1 - str r0, [r2] - ldr r0, _0815F8C4 @ =gUnknown_3005F00 - str r1, [r0, 0x28] - adds r1, r0, 0 - adds r1, 0x4B - movs r4, 0 - strb r4, [r1] - bl MultiBootInit - strh r4, [r5, 0x2] - movs r0, 0x5 - b _0815F9A4 - .align 2, 0 -_0815F8B4: .4byte gUnknown_3005EF0 -_0815F8B8: .4byte gMultiBootProgram_BerryGlitchFix_Start -_0815F8BC: .4byte gUnknown_3005EF8 -_0815F8C0: .4byte gMultiBootProgram_BerryGlitchFix_End -_0815F8C4: .4byte gUnknown_3005F00 -_0815F8C8: - ldr r0, _0815F910 @ =gUnknown_3005F00 - ldrb r6, [r0, 0x18] - adds r4, r0, 0 - cmp r6, 0 - bne _0815F920 - ldr r0, [r4, 0x1C] - ldr r1, _0815F914 @ =0x00020200 - ands r0, r1 - cmp r0, r1 - bne _0815F920 - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB4 - ble _0815F924 - movs r0, 0x2 - bl sub_815F6E0 - ldr r0, _0815F918 @ =gUnknown_3005EF0 - ldr r1, [r0] - adds r1, 0xC0 - ldr r0, _0815F91C @ =gUnknown_3005EF8 - ldr r2, [r0] - subs r2, 0xC0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x4 - bl MultiBootStartMaster - strh r6, [r5, 0x2] - movs r0, 0x6 - b _0815F9A4 - .align 2, 0 -_0815F910: .4byte gUnknown_3005F00 -_0815F914: .4byte 0x00020200 -_0815F918: .4byte gUnknown_3005EF0 -_0815F91C: .4byte gUnknown_3005EF8 -_0815F920: - movs r0, 0 - strh r0, [r5, 0x2] -_0815F924: - adds r0, r4, 0 - bl MultiBootMain - ldr r1, _0815F930 @ =gUnknown_3005EF4 - str r0, [r1] - b _0815F9A6 - .align 2, 0 -_0815F930: .4byte gUnknown_3005EF4 -_0815F934: - ldr r4, _0815F954 @ =gUnknown_3005F00 - adds r0, r4, 0 - bl MultiBootMain - ldr r1, _0815F958 @ =gUnknown_3005EF4 - str r0, [r1] - adds r0, r4, 0 - bl MultiBootCheckComplete - cmp r0, 0 - beq _0815F95C - movs r0, 0x3 - bl sub_815F6E0 - movs r0, 0x7 - b _0815F9A4 - .align 2, 0 -_0815F954: .4byte gUnknown_3005F00 -_0815F958: .4byte gUnknown_3005EF4 -_0815F95C: - ldrb r1, [r4, 0x1E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0815F9A6 - movs r0, 0x9 - b _0815F9A4 -_0815F96A: - movs r0, 0x8 - b _0815F9A4 -_0815F96E: - ldr r0, _0815F988 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0815F9A6 - adds r0, r2, 0 - bl DestroyTask - bl DoSoftReset - b _0815F9A6 - .align 2, 0 -_0815F988: .4byte gMain -_0815F98C: - movs r0, 0x4 - bl sub_815F6E0 - movs r0, 0xA - b _0815F9A4 -_0815F996: - ldr r0, _0815F9B0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0815F9A6 - movs r0, 0 -_0815F9A4: - strh r0, [r5] -_0815F9A6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F9B0: .4byte gMain - thumb_func_end sub_815F7F0 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index b58832931..ab157ab99 100644 --- a/asm/berry_pouch.s +++ b/asm/berry_pouch.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_813CD50 -sub_813CD50: @ 813CD50 + thumb_func_start InitBerryPouch +InitBerryPouch: @ 813CD50 push {r4-r7,lr} mov r7, r8 push {r7} @@ -92,7 +92,7 @@ _0813CDF0: .4byte gTextFlags _0813CDF4: .4byte gSpecialVar_ItemId _0813CDF8: .4byte sub_813CE30 _0813CDFC: .4byte 0x0000080c - thumb_func_end sub_813CD50 + thumb_func_end InitBerryPouch thumb_func_start sub_813CE00 sub_813CE00: @ 813CE00 @@ -130,7 +130,7 @@ _0813CE32: lsrs r0, 24 cmp r0, 0x1 beq _0813CE56 - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -183,11 +183,11 @@ _0813CE84: .4byte _0813CFB0 .4byte _0813CFBE _0813CED0: - bl sub_80BF768 + bl VblankHblankHandlerSetZero bl clear_scheduled_bg_copies_to_vram b _0813CFD2 _0813CEDA: - bl remove_some_task + bl ScanlineEffect_Stop b _0813CFD2 _0813CEE0: bl FreeAllSpritePalettes @@ -199,10 +199,10 @@ _0813CEEC: bl ResetSpriteData b _0813CFD2 _0813CEF2: - bl sub_80984D8 + bl ResetItemMenuIconState b _0813CFD2 _0813CEF8: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0813CFD2 @@ -255,7 +255,7 @@ _0813CF62: adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _0813CF98 @ =gUnknown_3005E70 + ldr r0, _0813CF98 @ =gMultiuseListMenuTemplate ldr r2, _0813CF9C @ =gUnknown_203F370 ldrh r1, [r2, 0xA] ldrh r2, [r2, 0x8] @@ -273,7 +273,7 @@ _0813CF62: b _0813CFD2 .align 2, 0 _0813CF94: .4byte sub_813DA68 -_0813CF98: .4byte gUnknown_3005E70 +_0813CF98: .4byte gMultiuseListMenuTemplate _0813CF9C: .4byte gUnknown_203F370 _0813CFA0: .4byte gTasks _0813CFA4: @@ -386,7 +386,7 @@ _0813D078: .4byte gUnknown_203F370 thumb_func_start sub_813D07C sub_813D07C: @ 813D07C push {r4,lr} - bl sub_80BF7C8 + bl InitBgReg ldr r4, _0813D0DC @ =gUnknown_203F36C ldr r0, [r4] adds r0, 0xC @@ -573,7 +573,7 @@ sub_813D204: @ 813D204 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r0, _0813D280 @ =gUnknown_20398AC + ldr r0, _0813D280 @ =gBagPockets + 0x20 mov r8, r0 movs r6, 0 ldr r0, _0813D284 @ =gUnknown_203F36C @@ -615,10 +615,10 @@ _0813D254: ldr r2, [r0] lsls r0, r6, 3 adds r0, r2 - ldr r1, _0813D290 @ =gUnknown_84166DB + ldr r1, _0813D290 @ =gText_Close str r1, [r0] str r6, [r0, 0x4] - ldr r1, _0813D294 @ =gUnknown_3005E70 + ldr r1, _0813D294 @ =gMultiuseListMenuTemplate str r2, [r1] ldr r0, _0813D298 @ =gUnknown_203F370 ldrb r0, [r0, 0x4] @@ -633,12 +633,12 @@ _0813D254: adds r2, r1, 0 b _0813D2A6 .align 2, 0 -_0813D280: .4byte gUnknown_20398AC +_0813D280: .4byte gBagPockets + 0x20 _0813D284: .4byte gUnknown_203F36C _0813D288: .4byte gUnknown_203F380 _0813D28C: .4byte gUnknown_203F37C -_0813D290: .4byte gUnknown_84166DB -_0813D294: .4byte gUnknown_3005E70 +_0813D290: .4byte gText_Close +_0813D294: .4byte gMultiuseListMenuTemplate _0813D298: .4byte gUnknown_203F370 _0813D29C: ldr r0, _0813D310 @ =gUnknown_203F36C @@ -715,10 +715,10 @@ sub_813D31C: @ 813D31C lsls r5, r1, 16 lsrs r5, 16 ldr r4, _0813D384 @ =gStringVar4 - ldr r1, _0813D388 @ =gUnknown_84166FF + ldr r1, _0813D388 @ =gText_FontSize0 adds r0, r4, 0 bl StringCopy - ldr r1, _0813D38C @ =gUnknown_8416226 + ldr r1, _0813D38C @ =gOtherText_UnkF9_08_Clear_01 adds r0, r4, 0 bl StringAppend ldr r6, _0813D390 @ =gStringVar1 @@ -733,11 +733,11 @@ sub_813D31C: @ 813D31C bl StringAppend adds r0, r5, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _0813D394 @ =gUnknown_84643B4 adds r0, r4, 0 bl StringAppend - ldr r1, _0813D398 @ =gUnknown_8416703 + ldr r1, _0813D398 @ =gText_FontSize2 adds r0, r4, 0 bl StringAppend adds r0, r4, 0 @@ -753,11 +753,11 @@ sub_813D31C: @ 813D31C bx r0 .align 2, 0 _0813D384: .4byte gStringVar4 -_0813D388: .4byte gUnknown_84166FF -_0813D38C: .4byte gUnknown_8416226 +_0813D388: .4byte gText_FontSize0 +_0813D38C: .4byte gOtherText_UnkF9_08_Clear_01 _0813D390: .4byte gStringVar1 _0813D394: .4byte gUnknown_84643B4 -_0813D398: .4byte gUnknown_8416703 +_0813D398: .4byte gText_FontSize2 thumb_func_end sub_813D31C thumb_func_start sub_813D39C @@ -798,7 +798,7 @@ _0813D3D6: ldrb r1, [r0, 0x9] movs r0, 0x1 eors r0, r1 - bl sub_8098940 + bl DestroyItemMenuIcon ldr r1, [r4] ldrb r0, [r1, 0x7] cmp r0, r5 @@ -806,7 +806,7 @@ _0813D3D6: lsls r1, r5, 16 lsrs r1, 16 movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 ldr r1, [r4] @@ -857,10 +857,10 @@ sub_813D430: @ 813D430 lsrs r4, 16 movs r0, 0x5 adds r1, r4, 0 - bl sub_809A798 + bl BagGetItemIdByPocketPosition movs r0, 0x5 adds r1, r4, 0 - bl sub_809A7B4 + bl BagGetQuantityByPocketPosition adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 @@ -869,7 +869,7 @@ sub_813D430: @ 813D430 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _0813D4A8 @ =gStringVar4 - ldr r1, _0813D4AC @ =gUnknown_84162B9 + ldr r1, _0813D4AC @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders str r5, [sp] @@ -894,7 +894,7 @@ _0813D498: _0813D4A0: .4byte gUnknown_203F36C _0813D4A4: .4byte gStringVar1 _0813D4A8: .4byte gStringVar4 -_0813D4AC: .4byte gUnknown_84162B9 +_0813D4AC: .4byte gText_TimesStrVar1 thumb_func_end sub_813D430 thumb_func_start sub_813D4B0 @@ -980,7 +980,7 @@ sub_813D538: @ 813D538 lsls r1, 16 lsrs r1, 16 movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl ItemId_GetDescription @@ -1028,7 +1028,7 @@ sub_813D594: @ 813D594 movs r1, 0 movs r2, 0x10 movs r3, 0x1E - bl sub_80F6B08 + bl SetBgRectPal movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 @@ -1072,7 +1072,7 @@ _0813D5EA: movs r1, 0xA0 movs r2, 0x8 movs r3, 0x78 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x6] add sp, 0x10 @@ -1102,7 +1102,7 @@ sub_813D614: @ 813D614 movs r1, 0xD4 movs r2, 0x78 movs r3, 0x98 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x6] add sp, 0x10 @@ -1132,7 +1132,7 @@ sub_813D64C: @ 813D64C movs r1, 0x98 movs r2, 0x48 movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x6] add sp, 0x10 @@ -1358,8 +1358,8 @@ _0813D800: .4byte gUnknown_203F37C _0813D804: .4byte gUnknown_203F380 thumb_func_end sub_813D7CC - thumb_func_start sub_813D808 -sub_813D808: @ 813D808 + thumb_func_start BerryPouch_StartFadeToExitCallback +BerryPouch_StartFadeToExitCallback: @ 813D808 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 @@ -1387,7 +1387,7 @@ sub_813D808: @ 813D808 .align 2, 0 _0813D83C: .4byte gTasks _0813D840: .4byte sub_813D844 - thumb_func_end sub_813D808 + thumb_func_end BerryPouch_StartFadeToExitCallback thumb_func_start sub_813D844 sub_813D844: @ 813D844 @@ -1409,7 +1409,7 @@ sub_813D844: @ 813D844 ldr r4, _0813D884 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl sub_810713C + bl DestroyListMenu ldr r0, _0813D888 @ =gUnknown_203F36C ldr r0, [r0] ldr r0, [r0] @@ -1441,9 +1441,9 @@ _0813D8A4: thumb_func_start sub_813D8AC sub_813D8AC: @ 813D8AC push {r4,lr} - ldr r4, _0813D904 @ =gUnknown_20398AC + ldr r4, _0813D904 @ =gBagPockets + 0x20 adds r0, r4, 0 - bl sub_809A720 + bl SortAndCompactBagPocket ldr r3, _0813D908 @ =gUnknown_203F36C ldr r1, [r3] movs r0, 0 @@ -1485,7 +1485,7 @@ _0813D8EE: adds r1, r0, 0 b _0813D916 .align 2, 0 -_0813D904: .4byte gUnknown_20398AC +_0813D904: .4byte gBagPockets + 0x20 _0813D908: .4byte gUnknown_203F36C _0813D90C: .4byte gUnknown_203F370 _0813D910: @@ -1510,15 +1510,15 @@ _0813D92C: bx r0 thumb_func_end sub_813D8AC - thumb_func_start sub_813D934 -sub_813D934: @ 813D934 + thumb_func_start BerryPouch_SetExitCallback +BerryPouch_SetExitCallback: @ 813D934 ldr r1, _0813D93C @ =gUnknown_203F36C ldr r1, [r1] str r0, [r1] bx lr .align 2, 0 _0813D93C: .4byte gUnknown_203F36C - thumb_func_end sub_813D934 + thumb_func_end BerryPouch_SetExitCallback thumb_func_start sub_813D940 sub_813D940: @ 813D940 @@ -1574,7 +1574,7 @@ sub_813D940: @ 813D940 movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN - ldr r1, _0813D9F4 @ =gUnknown_84162B9 + ldr r1, _0813D9F4 @ =gText_TimesStrVar1 mov r0, r9 bl StringExpandPlaceholders movs r0, 0xA @@ -1601,7 +1601,7 @@ sub_813D940: @ 813D940 _0813D9E8: .4byte gTasks+0x8 _0813D9EC: .4byte gStringVar1 _0813D9F0: .4byte gStringVar4 -_0813D9F4: .4byte gUnknown_84162B9 +_0813D9F4: .4byte gText_TimesStrVar1 thumb_func_end sub_813D940 thumb_func_start sub_813D9F8 @@ -1631,7 +1631,7 @@ sub_813D9F8: @ 813D9F8 adds r3, r5, 0 bl ConvertIntToDecimalStringN ldr r4, _0813DA60 @ =gStringVar4 - ldr r1, _0813DA64 @ =gUnknown_84162B9 + ldr r1, _0813DA64 @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0xA @@ -1654,7 +1654,7 @@ sub_813D9F8: @ 813D9F8 .align 2, 0 _0813DA5C: .4byte gStringVar1 _0813DA60: .4byte gStringVar4 -_0813DA64: .4byte gUnknown_84162B9 +_0813DA64: .4byte gText_TimesStrVar1 thumb_func_end sub_813D9F8 thumb_func_start sub_813DA68 @@ -1694,7 +1694,7 @@ _0813DA9E: ldr r4, _0813DAE0 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldr r0, _0813DAE4 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x4 @@ -1748,7 +1748,7 @@ _0813DB10: lsls r1, r5, 16 lsrs r1, 16 movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition ldr r1, _0813DB34 @ =gSpecialVar_ItemId b _0813DB46 .align 2, 0 @@ -1767,7 +1767,7 @@ _0813DB46: strh r0, [r1] _0813DB48: adds r0, r6, 0 - bl sub_813D808 + bl BerryPouch_StartFadeToExitCallback b _0813DB9E .align 2, 0 _0813DB50: .4byte gUnknown_203F36C @@ -1784,11 +1784,11 @@ _0813DB58: lsrs r4, 16 movs r0, 0x5 adds r1, r4, 0 - bl sub_809A7B4 + bl BagGetQuantityByPocketPosition strh r0, [r7, 0x4] movs r0, 0x5 adds r1, r4, 0 - bl sub_809A798 + bl BagGetItemIdByPocketPosition ldr r1, _0813DBA8 @ =gSpecialVar_ItemId strh r0, [r1] ldr r0, _0813DBAC @ =gTasks @@ -1869,7 +1869,7 @@ _0813DC18: .4byte gUnknown_203F384 _0813DC1C: .4byte gUnknown_84643B0 _0813DC20: .4byte gUnknown_203F388 _0813DC24: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1974,7 +1974,7 @@ _0813DC86: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x6 bl sub_813EA08 adds r4, r0, 0 @@ -1985,7 +1985,7 @@ _0813DC86: ldr r1, _0813DD68 @ =gStringVar1 bl sub_813D39C ldr r5, _0813DD6C @ =gStringVar4 - ldr r1, _0813DD70 @ =gUnknown_84162FF + ldr r1, _0813DD70 @ =gOtherText_StrVar1 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x2 @@ -2014,7 +2014,7 @@ _0813DD60: .4byte gUnknown_203F388 _0813DD64: .4byte gUnknown_846437C _0813DD68: .4byte gStringVar1 _0813DD6C: .4byte gStringVar4 -_0813DD70: .4byte gUnknown_84162FF +_0813DD70: .4byte gOtherText_StrVar1 thumb_func_end sub_813DBE4 thumb_func_start sub_813DD74 @@ -2124,7 +2124,7 @@ sub_813DE0C: @ 813DE0C cmp r0, 0 bne _0813DE68 adds r0, r5, 0 - bl sub_80A2238 + bl FieldUseFunc_OakStopsYou b _0813DEB0 .align 2, 0 _0813DE5C: .4byte gUnknown_203F388 @@ -2497,18 +2497,18 @@ _0813E18A: ldr r0, _0813E1F4 @ =gSpecialVar_ItemId ldrh r0, [r0] ldrh r1, [r5, 0x10] - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0x9 bl sub_813EA98 ldrb r0, [r5] ldr r4, _0813E1F8 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl sub_810713C + bl DestroyListMenu bl sub_813D8AC bl sub_813D6F4 bl sub_813D204 - ldr r0, _0813E1FC @ =gUnknown_3005E70 + ldr r0, _0813E1FC @ =gMultiuseListMenuTemplate subs r4, 0xA ldrh r1, [r4, 0xA] ldrh r2, [r4, 0x8] @@ -2534,7 +2534,7 @@ _0813E1EC: .4byte gTasks+0x8 _0813E1F0: .4byte gMain _0813E1F4: .4byte gSpecialVar_ItemId _0813E1F8: .4byte gUnknown_203F37A -_0813E1FC: .4byte gUnknown_3005E70 +_0813E1FC: .4byte gMultiuseListMenuTemplate thumb_func_end sub_813E164 thumb_func_start sub_813E200 @@ -2577,7 +2577,7 @@ _0813E248: adds r0, r4 lsls r0, 3 adds r0, r1 - ldr r1, _0813E270 @ =sub_813D808 + ldr r1, _0813E270 @ =BerryPouch_StartFadeToExitCallback str r1, [r0] _0813E25E: pop {r4} @@ -2587,7 +2587,7 @@ _0813E25E: _0813E264: .4byte gUnknown_203F36C _0813E268: .4byte sub_8126EDC _0813E26C: .4byte gTasks -_0813E270: .4byte sub_813D808 +_0813E270: .4byte BerryPouch_StartFadeToExitCallback thumb_func_end sub_813E200 thumb_func_start sub_813E274 @@ -2595,14 +2595,14 @@ sub_813E274: @ 813E274 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _0813E288 @ =gUnknown_841632A + ldr r2, _0813E288 @ =gText_ThereIsNoPokemon ldr r3, _0813E28C @ =sub_813E290 movs r1, 0x2 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch pop {r0} bx r0 .align 2, 0 -_0813E288: .4byte gUnknown_841632A +_0813E288: .4byte gText_ThereIsNoPokemon _0813E28C: .4byte sub_813E290 thumb_func_end sub_813E274 @@ -2646,11 +2646,11 @@ sub_813E2B8: @ 813E2B8 ldr r4, _0813E318 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl sub_810713C + bl DestroyListMenu bl sub_813D8AC bl sub_813D6F4 bl sub_813D204 - ldr r0, _0813E31C @ =gUnknown_3005E70 + ldr r0, _0813E31C @ =gMultiuseListMenuTemplate subs r4, 0xA ldrh r1, [r4, 0xA] ldrh r2, [r4, 0x8] @@ -2671,7 +2671,7 @@ sub_813E2B8: @ 813E2B8 .align 2, 0 _0813E314: .4byte gTasks+0x8 _0813E318: .4byte gUnknown_203F37A -_0813E31C: .4byte gUnknown_3005E70 +_0813E31C: .4byte gMultiuseListMenuTemplate thumb_func_end sub_813E2B8 thumb_func_start sub_813E320 @@ -2726,7 +2726,7 @@ sub_813E37C: @ 813E37C adds r0, r6, r7 ldrh r1, [r0, 0x2] movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 @@ -2736,7 +2736,7 @@ sub_813E37C: @ 813E37C bne _0813E3D8 ldr r1, _0813E3C8 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E3CC @ =gStringVar4 ldr r1, _0813E3D0 @ =gUnknown_8416374 adds r0, r4, 0 @@ -2745,7 +2745,7 @@ sub_813E37C: @ 813E37C adds r0, r5, 0 movs r1, 0x2 adds r2, r4, 0 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch b _0813E3EA .align 2, 0 _0813E3C4: .4byte gTasks+0x8 @@ -2761,7 +2761,7 @@ _0813E3D8: adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 - ldr r1, _0813E3F8 @ =sub_813D808 + ldr r1, _0813E3F8 @ =BerryPouch_StartFadeToExitCallback str r1, [r0] _0813E3EA: pop {r4-r7} @@ -2770,7 +2770,7 @@ _0813E3EA: .align 2, 0 _0813E3F0: .4byte gUnknown_203F36C _0813E3F4: .4byte c2_8123744 -_0813E3F8: .4byte sub_813D808 +_0813E3F8: .4byte BerryPouch_StartFadeToExitCallback thumb_func_end sub_813E37C thumb_func_start sub_813E3FC @@ -2786,14 +2786,14 @@ sub_813E3FC: @ 813E3FC adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r0, _0813E424 @ =sub_813D808 + ldr r0, _0813E424 @ =BerryPouch_StartFadeToExitCallback str r0, [r1] bx lr .align 2, 0 _0813E418: .4byte gUnknown_203F36C _0813E41C: .4byte sub_808CE60 _0813E420: .4byte gTasks -_0813E424: .4byte sub_813D808 +_0813E424: .4byte BerryPouch_StartFadeToExitCallback thumb_func_end sub_813E3FC thumb_func_start sub_813E428 @@ -2815,9 +2815,9 @@ sub_813E428: @ 813E428 bne _0813E488 ldrh r0, [r6] ldr r1, _0813E478 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E47C @ =gStringVar4 - ldr r1, _0813E480 @ =gUnknown_84168F1 + ldr r1, _0813E480 @ =gText_OhNoICantBuyThat adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -2827,14 +2827,14 @@ sub_813E428: @ 813E428 ldr r3, _0813E484 @ =sub_813E2B8 adds r0, r5, 0 adds r2, r4, 0 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch b _0813E4CE .align 2, 0 _0813E470: .4byte gTasks+0x8 _0813E474: .4byte gSpecialVar_ItemId _0813E478: .4byte gStringVar1 _0813E47C: .4byte gStringVar4 -_0813E480: .4byte gUnknown_84168F1 +_0813E480: .4byte gText_OhNoICantBuyThat _0813E484: .4byte sub_813E2B8 _0813E488: movs r0, 0x1 @@ -2855,9 +2855,9 @@ _0813E4A0: _0813E4A8: ldrh r0, [r6] ldr r1, _0813E4D4 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E4D8 @ =gStringVar4 - ldr r1, _0813E4DC @ =gUnknown_8416911 + ldr r1, _0813E4DC @ =gText_HowManyWouldYouLikeToSell adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -2867,7 +2867,7 @@ _0813E4A8: ldr r3, _0813E4E0 @ =sub_813E5B8 adds r0, r7, 0 adds r2, r4, 0 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch _0813E4CE: pop {r4-r7} pop {r0} @@ -2875,7 +2875,7 @@ _0813E4CE: .align 2, 0 _0813E4D4: .4byte gStringVar1 _0813E4D8: .4byte gStringVar4 -_0813E4DC: .4byte gUnknown_8416911 +_0813E4DC: .4byte gText_HowManyWouldYouLikeToSell _0813E4E0: .4byte sub_813E5B8 thumb_func_end sub_813E428 @@ -2893,7 +2893,7 @@ sub_813E4E4: @ 813E4E4 ldr r6, _0813E544 @ =gStringVar3 ldrh r1, [r4, 0x2] movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -2907,7 +2907,7 @@ sub_813E4E4: @ 813E4E4 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0813E548 @ =gStringVar4 - ldr r1, _0813E54C @ =gUnknown_8416936 + ldr r1, _0813E54C @ =gText_ICanPayThisMuch_WouldThatBeOkay adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -2917,7 +2917,7 @@ sub_813E4E4: @ 813E4E4 ldr r3, _0813E550 @ =sub_813E554 adds r0, r5, 0 adds r2, r4, 0 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch pop {r4-r6} pop {r0} bx r0 @@ -2925,7 +2925,7 @@ sub_813E4E4: @ 813E4E4 _0813E540: .4byte gTasks+0x8 _0813E544: .4byte gStringVar3 _0813E548: .4byte gStringVar4 -_0813E54C: .4byte gUnknown_8416936 +_0813E54C: .4byte gText_ICanPayThisMuch_WouldThatBeOkay _0813E550: .4byte sub_813E554 thumb_func_end sub_813E4E4 @@ -3004,7 +3004,7 @@ sub_813E5B8: @ 813E5B8 bl ConvertIntToDecimalStringN ldr r2, _0813E65C @ =gStringVar4 mov r8, r2 - ldr r1, _0813E660 @ =gUnknown_84162B9 + ldr r1, _0813E660 @ =gText_TimesStrVar1 mov r0, r8 bl StringExpandPlaceholders movs r0, 0xA @@ -3024,7 +3024,7 @@ sub_813E5B8: @ 813E5B8 mov r3, r9 ldrh r1, [r3, 0x2] movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -3052,7 +3052,7 @@ sub_813E5B8: @ 813E5B8 _0813E654: .4byte gTasks+0x8 _0813E658: .4byte gStringVar1 _0813E65C: .4byte gStringVar4 -_0813E660: .4byte gUnknown_84162B9 +_0813E660: .4byte gText_TimesStrVar1 _0813E664: .4byte sub_813E690 thumb_func_end sub_813E5B8 @@ -3103,7 +3103,7 @@ sub_813E690: @ 813E690 bl sub_813D9F8 ldrh r1, [r5, 0x2] movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -3188,11 +3188,11 @@ sub_813E768: @ 813E768 ldr r0, _0813E7D8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0813E7DC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _0813E7E0 @ =gStringVar3 ldrh r1, [r4, 0x2] movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -3206,14 +3206,14 @@ sub_813E768: @ 813E768 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0813E7E4 @ =gStringVar4 - ldr r1, _0813E7E8 @ =gUnknown_8416959 + ldr r1, _0813E7E8 @ =gText_TurnedOverItemsWorthYen adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, _0813E7EC @ =sub_813E7F0 adds r0, r5, 0 movs r1, 0x2 adds r2, r4, 0 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch pop {r4-r6} pop {r0} bx r0 @@ -3223,7 +3223,7 @@ _0813E7D8: .4byte gSpecialVar_ItemId _0813E7DC: .4byte gStringVar1 _0813E7E0: .4byte gStringVar3 _0813E7E4: .4byte gStringVar4 -_0813E7E8: .4byte gUnknown_8416959 +_0813E7E8: .4byte gText_TurnedOverItemsWorthYen _0813E7EC: .4byte sub_813E7F0 thumb_func_end sub_813E768 @@ -3250,7 +3250,7 @@ sub_813E7F0: @ 813E7F0 ldrh r0, [r5] mov r2, r8 ldrh r1, [r2, 0x10] - bl sub_809A1D8 + bl RemoveBagItem ldr r7, _0813E8C4 @ =gSaveBlock1Ptr ldr r4, [r7] movs r3, 0xA4 @@ -3277,11 +3277,11 @@ sub_813E7F0: @ 813E7F0 ldr r4, _0813E8C8 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl sub_810713C + bl DestroyListMenu bl sub_813D8AC bl sub_813D6F4 bl sub_813D204 - ldr r0, _0813E8CC @ =gUnknown_3005E70 + ldr r0, _0813E8CC @ =gMultiuseListMenuTemplate subs r4, 0xA ldrh r1, [r4, 0xA] ldrh r2, [r4, 0x8] @@ -3322,7 +3322,7 @@ _0813E8BC: .4byte gTasks+0x8 _0813E8C0: .4byte gSpecialVar_ItemId _0813E8C4: .4byte gSaveBlock1Ptr _0813E8C8: .4byte gUnknown_203F37A -_0813E8CC: .4byte gUnknown_3005E70 +_0813E8CC: .4byte gMultiuseListMenuTemplate _0813E8D0: .4byte sub_813E8D4 thumb_func_end sub_813E7F0 @@ -3367,16 +3367,16 @@ sub_813E910: @ 813E910 movs r0, 0 movs r1, 0x1 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0 movs r1, 0x13 movs r2, 0xD0 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 movs r0, 0 movs r1, 0xA movs r2, 0xC0 - bl sub_814FF2C - ldr r0, _0813E998 @ =gUnknown_841F408 + bl TextWindow_SetStdFrame0_WithPal + ldr r0, _0813E998 @ =gTMCaseMainWindowPalette movs r1, 0xF0 movs r2, 0x20 bl LoadPalette @@ -3418,7 +3418,7 @@ _0813E97C: bx r0 .align 2, 0 _0813E994: .4byte gUnknown_84643B8 -_0813E998: .4byte gUnknown_841F408 +_0813E998: .4byte gTMCaseMainWindowPalette _0813E99C: .4byte gUnknown_203F38C thumb_func_end sub_813E910 @@ -3465,7 +3465,7 @@ sub_813E9A0: @ 813E9A0 str r4, [sp, 0xC] str r2, [sp, 0x10] mov r2, r9 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r3,r4} mov r8, r3 @@ -3562,7 +3562,7 @@ sub_813EA98: @ 813EA98 adds r4, r0 ldrb r0, [r4] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] @@ -3589,7 +3589,7 @@ sub_813EACC: @ 813EACC cmp r0, 0xFF beq _0813EB04 movs r1, 0 - bl sub_810F260 + bl ClearMenuWindow_BorderThickness2 ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] @@ -3622,8 +3622,8 @@ sub_813EB10: @ 813EB10 _0813EB1C: .4byte gUnknown_203F38C thumb_func_end sub_813EB10 - thumb_func_start sub_813EB20 -sub_813EB20: @ 813EB20 + thumb_func_start DisplayItemMessageInBerryPouch +DisplayItemMessageInBerryPouch: @ 813EB20 push {r4-r7,lr} mov r7, r8 push {r7} @@ -3642,7 +3642,7 @@ sub_813EB20: @ 813EB20 bl AddWindow strb r0, [r4, 0x5] _0813EB44: - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0x5] @@ -3666,7 +3666,7 @@ _0813EB44: .align 2, 0 _0813EB74: .4byte gUnknown_203F38C _0813EB78: .4byte gUnknown_8464400 - thumb_func_end sub_813EB20 + thumb_func_end DisplayItemMessageInBerryPouch thumb_func_start sub_813EB7C sub_813EB7C: @ 813EB7C @@ -3685,7 +3685,7 @@ sub_813EB7C: @ 813EB7C str r3, [sp, 0xC] movs r2, 0x2 movs r3, 0 - bl sub_80BF5D0 + bl CreateYesNoMenuWithCallbacks add sp, 0x10 pop {r0} bx r0 @@ -3710,7 +3710,7 @@ sub_813EBA8: @ 813EBA8 str r3, [sp, 0xC] movs r2, 0x2 movs r3, 0 - bl sub_80BF5D0 + bl CreateYesNoMenuWithCallbacks add sp, 0x10 pop {r0} bx r0 diff --git a/asm/bike.s b/asm/bike.s index 915c4bf8f..b731e51c0 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -713,8 +713,8 @@ _080BD5C2: bx r1 thumb_func_end player_should_look_direction_be_enforced_upon_movement - thumb_func_start sub_80BD5C8 -sub_80BD5C8: @ 80BD5C8 + thumb_func_start StartTransitionToFlipBikeState +StartTransitionToFlipBikeState: @ 80BD5C8 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 @@ -738,21 +738,21 @@ _080BD5F4: .4byte gPlayerAvatar _080BD5F8: adds r0, r2, 0 bl SetPlayerAvatarTransitionFlags - movs r4, 0x8D - lsls r4, 1 + movs r4, 0x8D @ BGM_FRLG_BICYCLE + lsls r4, 1 @ BGM_FRLG_BICYCLE adds r0, r4, 0 bl sub_8056124 cmp r0, 0 beq _080BD618 adds r0, r4, 0 - bl sub_8055E78 + bl Overworld_SetSavedMusic adds r0, r4, 0 - bl sub_8055F48 + bl Overworld_ChangeMusicTo _080BD618: pop {r4} pop {r0} bx r0 - thumb_func_end sub_80BD5C8 + thumb_func_end StartTransitionToFlipBikeState thumb_func_start sub_80BD620 sub_80BD620: @ 80BD620 diff --git a/asm/blend_palette.s b/asm/blend_palette.s deleted file mode 100644 index 7c95f18e9..000000000 --- a/asm/blend_palette.s +++ /dev/null @@ -1,186 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start BlendPalette -BlendPalette: @ 8045274 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - mov r12, r1 - lsls r2, 24 - lsrs r7, r2, 24 - mov r0, sp - strh r3, [r0] - movs r6, 0 - cmp r6, r12 - bcs _080452FA - ldr r0, _0804530C @ =gPlttBufferUnfaded - mov r10, r0 - ldr r1, _08045310 @ =gPlttBufferFaded - mov r9, r1 -_080452A2: - mov r0, r8 - adds r5, r6, r0 - lsls r5, 16 - lsrs r5, 15 - mov r1, r10 - adds r0, r5, r1 - ldr r3, [r0] - lsls r4, r3, 27 - lsls r2, r3, 22 - lsls r3, 17 - add r5, r9 - lsrs r4, 27 - ldr r1, [sp] - lsls r0, r1, 27 - lsrs r0, 27 - subs r0, r4 - muls r0, r7 - asrs r0, 4 - adds r4, r0 - lsrs r2, 27 - lsls r0, r1, 22 - lsrs r0, 27 - subs r0, r2 - muls r0, r7 - asrs r0, 4 - adds r2, r0 - lsls r2, 5 - orrs r4, r2 - lsrs r3, 27 - lsls r1, 17 - lsrs r1, 27 - subs r1, r3 - adds r0, r1, 0 - muls r0, r7 - asrs r0, 4 - adds r3, r0 - lsls r3, 10 - orrs r4, r3 - strh r4, [r5] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r12 - bcc _080452A2 -_080452FA: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804530C: .4byte gPlttBufferUnfaded -_08045310: .4byte gPlttBufferFaded - thumb_func_end BlendPalette - - thumb_func_start sub_8045314 -sub_8045314: @ 8045314 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - adds r6, r2, 0 - adds r4, r3, 0 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r6, 0x10 - bne _08045342 - subs r4, 0x1 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _080453B2 -_08045336: - strh r2, [r5] - adds r5, 0x2 - subs r4, 0x1 - cmp r4, r0 - bne _08045336 - b _080453B2 -_08045342: - movs r0, 0x1F - movs r3, 0x1F - mov r9, r3 - mov r7, r9 - ands r7, r2 - mov r9, r7 - lsrs r2, r1, 21 - ands r2, r0 - mov r12, r2 - lsrs r1, 26 - mov r10, r1 - mov r3, r10 - ands r3, r0 - mov r10, r3 - subs r4, 0x1 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _080453B2 - movs r7, 0x1F - mov r8, r7 -_0804536C: - ldrh r2, [r5] - movs r3, 0x1F - ands r3, r2 - lsls r2, 16 - lsrs r1, r2, 21 - mov r0, r8 - ands r1, r0 - lsrs r2, 26 - ands r2, r0 - mov r7, r9 - subs r0, r7, r3 - muls r0, r6 - lsrs r0, 4 - adds r3, r0 - mov r7, r12 - subs r0, r7, r1 - muls r0, r6 - lsrs r0, 4 - adds r1, r0 - lsls r1, 5 - orrs r3, r1 - mov r1, r10 - subs r0, r1, r2 - muls r0, r6 - lsrs r0, 4 - adds r2, r0 - lsls r2, 10 - orrs r3, r2 - strh r3, [r5] - adds r5, 0x2 - subs r4, 0x1 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _0804536C -_080453B2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8045314 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/blit.s b/asm/blit.s deleted file mode 100644 index 84b56fd67..000000000 --- a/asm/blit.s +++ /dev/null @@ -1,813 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start BlitBitmapRect4BitWithoutColorKey -BlitBitmapRect4BitWithoutColorKey: @ 8004A60 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - lsls r7, 16 - lsrs r7, 16 - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0xFF - str r4, [sp, 0x10] - bl BlitBitmapRect4Bit - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end BlitBitmapRect4BitWithoutColorKey - - thumb_func_start BlitBitmapRect4Bit -BlitBitmapRect4Bit: @ 8004AA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [sp, 0x4C] - ldr r1, [sp, 0x50] - ldr r4, [sp, 0x54] - ldr r5, [sp, 0x58] - ldr r6, [sp, 0x5C] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x8] - lsls r3, 16 - lsrs r7, r3, 16 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - str r6, [sp, 0x10] - ldr r0, [sp, 0x4] - ldrh r3, [r0, 0x4] - ldr r1, [sp, 0xC] - subs r0, r3, r1 - adds r2, r4 - mov r8, r2 - cmp r0, r4 - bge _08004AF8 - ldr r2, [sp, 0x8] - adds r0, r2 - mov r8, r0 -_08004AF8: - ldr r4, [sp, 0x4] - ldrh r0, [r4, 0x6] - mov r1, r9 - subs r0, r1 - adds r2, r5, r7 - str r2, [sp, 0x14] - cmp r0, r5 - bge _08004B0C - adds r0, r7 - str r0, [sp, 0x14] -_08004B0C: - ldr r4, [sp] - ldrh r1, [r4, 0x4] - movs r2, 0x7 - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x18] - adds r0, r3, 0 - ands r0, r2 - adds r0, r3, r0 - asrs r0, 3 - str r0, [sp, 0x1C] - ldr r0, [sp, 0x10] - cmp r0, 0xFF - bne _08004BCA - adds r3, r7, 0 - mov r1, r9 - ldr r2, [sp, 0x14] - cmp r3, r2 - blt _08004B38 - b _08004C72 -_08004B38: - ldr r5, [sp, 0x8] - ldr r6, [sp, 0xC] - adds r4, r3, 0x1 - str r4, [sp, 0x24] - adds r0, r1, 0x1 - str r0, [sp, 0x28] - cmp r5, r8 - bge _08004BBE - movs r7, 0x3 - asrs r0, r3, 3 - ldr r2, [sp, 0x18] - muls r0, r2 - lsls r0, 5 - mov r10, r0 - lsls r0, r3, 29 - lsrs r0, 27 - mov r9, r0 - asrs r0, r1, 3 - ldr r4, [sp, 0x1C] - muls r0, r4 - lsls r0, 5 - mov r12, r0 - lsls r0, r1, 29 - lsrs r3, r0, 27 -_08004B68: - asrs r0, r5, 1 - ands r0, r7 - ldr r2, [sp] - ldr r1, [r2] - adds r1, r0 - asrs r0, r5, 3 - lsls r0, 5 - adds r1, r0 - add r1, r10 - mov r4, r9 - adds r2, r1, r4 - asrs r0, r6, 1 - ands r0, r7 - ldr r4, [sp, 0x4] - ldr r1, [r4] - adds r1, r0 - asrs r0, r6, 3 - lsls r0, 5 - adds r1, r0 - add r1, r12 - adds r4, r1, r3 - ldrb r2, [r2] - adds r0, r5, 0 - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - asrs r2, r0 - movs r0, 0xF - ands r2, r0 - adds r0, r6, 0 - ands r0, r1 - lsls r1, r0, 2 - lsls r2, r1 - movs r0, 0xF0 - asrs r0, r1 - ldrb r1, [r4] - ands r0, r1 - orrs r2, r0 - strb r2, [r4] - adds r5, 0x1 - adds r6, 0x1 - cmp r5, r8 - blt _08004B68 -_08004BBE: - ldr r3, [sp, 0x24] - ldr r1, [sp, 0x28] - ldr r2, [sp, 0x14] - cmp r3, r2 - blt _08004B38 - b _08004C72 -_08004BCA: - adds r3, r7, 0 - mov r1, r9 - ldr r4, [sp, 0x14] - cmp r3, r4 - bge _08004C72 -_08004BD4: - ldr r5, [sp, 0x8] - ldr r6, [sp, 0xC] - adds r0, r3, 0x1 - str r0, [sp, 0x24] - adds r2, r1, 0x1 - str r2, [sp, 0x28] - cmp r5, r8 - bge _08004C68 - movs r4, 0x3 - mov r9, r4 - asrs r0, r3, 3 - ldr r2, [sp, 0x18] - muls r0, r2 - lsls r0, 5 - str r0, [sp, 0x20] - lsls r0, r3, 29 - lsrs r0, 27 - mov r10, r0 - movs r3, 0x1 - asrs r0, r1, 3 - ldr r4, [sp, 0x1C] - muls r0, r4 - lsls r0, 5 - mov r12, r0 - lsls r0, r1, 29 - lsrs r7, r0, 27 -_08004C08: - asrs r0, r5, 1 - mov r1, r9 - ands r0, r1 - ldr r2, [sp] - ldr r1, [r2] - adds r1, r0 - asrs r0, r5, 3 - lsls r0, 5 - adds r1, r0 - ldr r4, [sp, 0x20] - adds r1, r4 - mov r0, r10 - adds r2, r1, r0 - asrs r0, r6, 1 - mov r1, r9 - ands r0, r1 - ldr r4, [sp, 0x4] - ldr r1, [r4] - adds r1, r0 - asrs r0, r6, 3 - lsls r0, 5 - adds r1, r0 - add r1, r12 - adds r4, r1, r7 - ldrb r2, [r2] - adds r0, r5, 0 - ands r0, r3 - lsls r0, 2 - asrs r2, r0 - movs r0, 0xF - ands r2, r0 - ldr r0, [sp, 0x10] - cmp r2, r0 - beq _08004C60 - adds r0, r6, 0 - ands r0, r3 - lsls r1, r0, 2 - lsls r2, r1 - movs r0, 0xF0 - asrs r0, r1 - ldrb r1, [r4] - ands r0, r1 - orrs r2, r0 - strb r2, [r4] -_08004C60: - adds r5, 0x1 - adds r6, 0x1 - cmp r5, r8 - blt _08004C08 -_08004C68: - ldr r3, [sp, 0x24] - ldr r1, [sp, 0x28] - ldr r2, [sp, 0x14] - cmp r3, r2 - blt _08004BD4 -_08004C72: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end BlitBitmapRect4Bit - - thumb_func_start FillBitmapRect4Bit -FillBitmapRect4Bit: @ 8004C84 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r0 - ldr r0, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - adds r5, r2, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r7, r4, 24 - adds r4, r1, r3 - mov r3, r9 - ldrh r1, [r3, 0x4] - cmp r4, r1 - ble _08004CBA - adds r4, r1, 0 -_08004CBA: - adds r2, r0 - mov r12, r2 - mov r2, r9 - ldrh r0, [r2, 0x6] - cmp r12, r0 - ble _08004CC8 - mov r12, r0 -_08004CC8: - movs r0, 0x7 - ands r0, r1 - adds r0, r1, r0 - asrs r0, 3 - str r0, [sp] - adds r1, r5, 0 - cmp r1, r12 - bge _08004D30 -_08004CD8: - mov r3, r10 - adds r0, r1, 0x1 - mov r8, r0 - cmp r3, r4 - bge _08004D2A - asrs r0, r1, 3 - ldr r2, [sp] - muls r0, r2 - lsls r6, r0, 5 - lsls r0, r1, 29 - lsrs r5, r0, 27 -_08004CEE: - asrs r2, r3, 1 - movs r0, 0x3 - ands r2, r0 - mov r0, r9 - ldr r1, [r0] - adds r1, r2 - asrs r0, r3, 3 - lsls r0, 5 - adds r1, r0 - adds r1, r6 - adds r2, r1, r5 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08004D1A - ldrb r0, [r2] - movs r1, 0xF - ands r1, r0 - lsls r0, r7, 4 - orrs r1, r0 - strb r1, [r2] - b _08004D24 -_08004D1A: - ldrb r1, [r2] - movs r0, 0xF0 - ands r0, r1 - orrs r0, r7 - strb r0, [r2] -_08004D24: - adds r3, 0x1 - cmp r3, r4 - blt _08004CEE -_08004D2A: - mov r1, r8 - cmp r1, r12 - blt _08004CD8 -_08004D30: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end FillBitmapRect4Bit - - thumb_func_start BlitBitmapRect4BitTo8Bit -BlitBitmapRect4BitTo8Bit: @ 8004D40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [sp, 0x5C] - ldr r1, [sp, 0x60] - ldr r5, [sp, 0x64] - ldr r4, [sp, 0x68] - ldr r6, [sp, 0x6C] - ldr r7, [sp, 0x70] - mov r8, r7 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x8] - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - lsls r1, 16 - lsrs r7, r1, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 24 - lsrs r6, 24 - str r6, [sp, 0x10] - mov r0, r8 - lsls r0, 28 - lsrs r0, 24 - str r0, [sp, 0x14] - lsls r0, r6, 28 - lsrs r0, 24 - str r0, [sp, 0x28] - ldr r1, [sp, 0x4] - ldrh r0, [r1, 0x4] - ldr r2, [sp, 0xC] - subs r0, r2 - ldr r1, [sp, 0x8] - adds r1, r5, r1 - str r1, [sp, 0x18] - cmp r0, r5 - bge _08004DA6 - ldr r2, [sp, 0x8] - adds r0, r2 - str r0, [sp, 0x18] -_08004DA6: - ldr r5, [sp, 0x4] - ldrh r1, [r5, 0x6] - subs r0, r1, r7 - cmp r0, r4 - bge _08004DB8 - adds r0, r3, r1 - subs r0, r7 - str r0, [sp, 0x1C] - b _08004DBC -_08004DB8: - adds r4, r3, r4 - str r4, [sp, 0x1C] -_08004DBC: - ldr r0, [sp] - ldrh r1, [r0, 0x4] - movs r2, 0x7 - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x20] - ldr r5, [sp, 0x4] - ldrh r1, [r5, 0x4] - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x24] - ldr r0, [sp, 0x10] - cmp r0, 0xFF - bne _08004E9C - adds r2, r3, 0 - adds r5, r7, 0 - ldr r1, [sp, 0x1C] - cmp r2, r1 - blt _08004DEC - b _08004F7E -_08004DEC: - ldr r3, [sp, 0x8] - lsrs r3, 1 - str r3, [sp, 0x2C] - movs r0, 0x3 - ands r3, r0 - str r3, [sp, 0x2C] - ldr r7, [sp, 0x8] - lsrs r0, r7, 3 - lsls r0, 5 - str r0, [sp, 0x30] -_08004E00: - ldr r0, [sp] - ldr r1, [r0] - ldr r3, [sp, 0x2C] - adds r1, r3 - ldr r7, [sp, 0x30] - adds r1, r7 - asrs r0, r2, 3 - ldr r3, [sp, 0x20] - muls r0, r3 - lsls r0, 5 - mov r8, r0 - add r1, r8 - lsls r0, r2, 29 - lsrs r7, r0, 27 - adds r6, r1, r7 - ldr r3, [sp, 0x8] - ldr r4, [sp, 0xC] - adds r2, 0x1 - mov r10, r2 - adds r0, r5, 0x1 - str r0, [sp, 0x38] - ldr r1, [sp, 0x18] - cmp r3, r1 - bge _08004E90 - asrs r0, r5, 3 - ldr r2, [sp, 0x24] - muls r0, r2 - lsls r0, 6 - mov r12, r0 - lsls r0, r5, 29 - lsrs r0, 26 - mov r9, r0 -_08004E40: - movs r0, 0x7 - ands r0, r4 - ldr r5, [sp, 0x4] - ldr r1, [r5] - adds r1, r0 - asrs r0, r4, 3 - lsls r0, 6 - adds r1, r0 - add r1, r12 - mov r0, r9 - adds r5, r1, r0 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08004E64 - ldrb r0, [r6] - lsrs r0, 4 - b _08004E80 -_08004E64: - asrs r2, r3, 1 - movs r0, 0x3 - ands r2, r0 - ldr r0, [sp] - ldr r1, [r0] - adds r1, r2 - asrs r0, r3, 3 - lsls r0, 5 - adds r1, r0 - add r1, r8 - adds r6, r1, r7 - ldrb r1, [r6] - movs r0, 0xF - ands r0, r1 -_08004E80: - ldr r1, [sp, 0x14] - adds r0, r1, r0 - strb r0, [r5] - adds r3, 0x1 - adds r4, 0x1 - ldr r2, [sp, 0x18] - cmp r3, r2 - blt _08004E40 -_08004E90: - mov r2, r10 - ldr r5, [sp, 0x38] - ldr r3, [sp, 0x1C] - cmp r2, r3 - blt _08004E00 - b _08004F7E -_08004E9C: - adds r2, r3, 0 - adds r5, r7, 0 - ldr r7, [sp, 0x1C] - cmp r2, r7 - bge _08004F7E - ldr r0, [sp, 0x8] - lsrs r0, 1 - str r0, [sp, 0x34] - movs r0, 0x3 - ldr r1, [sp, 0x34] - ands r1, r0 - str r1, [sp, 0x34] -_08004EB4: - ldr r3, [sp] - ldr r1, [r3] - ldr r7, [sp, 0x34] - adds r1, r7 - ldr r3, [sp, 0x8] - lsrs r0, r3, 3 - lsls r0, 5 - adds r1, r0 - asrs r0, r2, 3 - ldr r7, [sp, 0x20] - muls r0, r7 - lsls r0, 5 - mov r8, r0 - add r1, r8 - lsls r0, r2, 29 - lsrs r7, r0, 27 - adds r6, r1, r7 - ldr r4, [sp, 0xC] - adds r2, 0x1 - mov r10, r2 - adds r0, r5, 0x1 - str r0, [sp, 0x38] - ldr r1, [sp, 0x18] - cmp r3, r1 - bge _08004F74 - asrs r0, r5, 3 - ldr r2, [sp, 0x24] - muls r0, r2 - lsls r0, 6 - mov r9, r0 - lsls r0, r5, 29 - lsrs r0, 26 - mov r12, r0 -_08004EF6: - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08004F2A - ldrb r2, [r6] - movs r0, 0xF0 - ands r0, r2 - ldr r5, [sp, 0x28] - cmp r0, r5 - beq _08004F6A - adds r0, r4, 0 - movs r1, 0x7 - ands r0, r1 - ldr r5, [sp, 0x4] - ldr r1, [r5] - adds r1, r0 - asrs r0, r4, 3 - lsls r0, 6 - adds r1, r0 - add r1, r9 - mov r0, r12 - adds r5, r1, r0 - lsrs r0, r2, 4 - ldr r1, [sp, 0x14] - adds r0, r1, r0 - b _08004F68 -_08004F2A: - asrs r2, r3, 1 - movs r0, 0x3 - ands r2, r0 - ldr r5, [sp] - ldr r1, [r5] - adds r1, r2 - asrs r0, r3, 3 - lsls r0, 5 - adds r1, r0 - add r1, r8 - adds r6, r1, r7 - ldrb r0, [r6] - movs r2, 0xF - ands r2, r0 - ldr r0, [sp, 0x10] - cmp r2, r0 - beq _08004F6A - adds r0, r4, 0 - movs r1, 0x7 - ands r0, r1 - ldr r5, [sp, 0x4] - ldr r1, [r5] - adds r1, r0 - asrs r0, r4, 3 - lsls r0, 6 - adds r1, r0 - add r1, r9 - mov r0, r12 - adds r5, r1, r0 - ldr r1, [sp, 0x14] - adds r0, r1, r2 -_08004F68: - strb r0, [r5] -_08004F6A: - adds r3, 0x1 - adds r4, 0x1 - ldr r2, [sp, 0x18] - cmp r3, r2 - blt _08004EF6 -_08004F74: - mov r2, r10 - ldr r5, [sp, 0x38] - ldr r3, [sp, 0x1C] - cmp r2, r3 - blt _08004EB4 -_08004F7E: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end BlitBitmapRect4BitTo8Bit - - thumb_func_start FillBitmapRect8Bit -FillBitmapRect8Bit: @ 8004F90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r8, r0 - ldr r0, [sp, 0x28] - ldr r4, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - adds r6, r2, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - adds r5, r1, r3 - mov r3, r8 - ldrh r1, [r3, 0x4] - cmp r5, r1 - ble _08004FC8 - adds r5, r1, 0 -_08004FC8: - adds r7, r2, r0 - mov r2, r8 - ldrh r0, [r2, 0x6] - cmp r7, r0 - ble _08004FD4 - adds r7, r0, 0 -_08004FD4: - movs r0, 0x7 - ands r0, r1 - adds r0, r1, r0 - asrs r0, 3 - str r0, [sp] - adds r1, r6, 0 - cmp r1, r7 - bge _08005024 -_08004FE4: - mov r3, r10 - adds r6, r1, 0x1 - str r6, [sp, 0x4] - cmp r3, r5 - bge _0800501E - movs r0, 0x7 - mov r12, r0 - asrs r0, r1, 3 - ldr r2, [sp] - muls r0, r2 - lsls r4, r0, 6 - lsls r0, r1, 29 - lsrs r2, r0, 26 -_08004FFE: - adds r0, r3, 0 - mov r6, r12 - ands r0, r6 - mov r6, r8 - ldr r1, [r6] - adds r1, r0 - asrs r0, r3, 3 - lsls r0, 6 - adds r1, r0 - adds r1, r4 - adds r1, r2 - mov r0, r9 - strb r0, [r1] - adds r3, 0x1 - cmp r3, r5 - blt _08004FFE -_0800501E: - ldr r1, [sp, 0x4] - cmp r1, r7 - blt _08004FE4 -_08005024: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end FillBitmapRect8Bit - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/braille_text.s b/asm/braille_text.s index 8297df7e7..2428f2984 100644 --- a/asm/braille_text.s +++ b/asm/braille_text.s @@ -5,591 +5,4 @@ .text - thumb_func_start Font6Func -Font6Func: @ 814F884 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r6, 0 - adds r4, 0x14 - ldrb r0, [r6, 0x1C] - cmp r0, 0x6 - bls _0814F894 - b _0814FC94 -_0814F894: - lsls r0, 2 - ldr r1, _0814F8A0 @ =_0814F8A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F8A0: .4byte _0814F8A4 - .align 2, 0 -_0814F8A4: - .4byte _0814F8C0 - .4byte _0814FB88 - .4byte _0814FB9A - .4byte _0814FBC4 - .4byte _0814FBFC - .4byte _0814FC70 - .4byte _0814FC82 -_0814F8C0: - ldr r2, _0814F914 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0814F8DA - ldrb r1, [r4] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0814F8DA - movs r0, 0 - strb r0, [r6, 0x1E] -_0814F8DA: - ldrb r1, [r6, 0x1E] - cmp r1, 0 - beq _0814F91C - ldrb r0, [r6, 0x1D] - cmp r0, 0 - beq _0814F91C - subs r0, r1, 0x1 - strb r0, [r6, 0x1E] - ldr r0, _0814F918 @ =gTextFlags - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0814F8F8 - b _0814FB42 -_0814F8F8: - ldrh r1, [r2, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0814F904 - b _0814FB42 -_0814F904: - ldrb r0, [r4] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4] - movs r0, 0 - strb r0, [r6, 0x1E] - b _0814FB42 - .align 2, 0 -_0814F914: .4byte gMain -_0814F918: .4byte gTextFlags -_0814F91C: - ldr r2, _0814F92C @ =gTextFlags - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0814F930 - movs r0, 0x1 - b _0814F932 - .align 2, 0 -_0814F92C: .4byte gTextFlags -_0814F930: - ldrb r0, [r6, 0x1D] -_0814F932: - strb r0, [r6, 0x1E] - ldr r0, [r6] - ldrb r3, [r0] - adds r0, 0x1 - str r0, [r6] - adds r0, r3, 0 - subs r0, 0xF8 - cmp r0, 0x7 - bls _0814F946 - b _0814FB62 -_0814F946: - lsls r0, 2 - ldr r1, _0814F950 @ =_0814F954 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F950: .4byte _0814F954 - .align 2, 0 -_0814F954: - .4byte _0814FB58 - .4byte _0814FB46 - .4byte _0814FB38 - .4byte _0814FB34 - .4byte _0814F9A2 - .4byte _0814F99C - .4byte _0814F974 - .4byte _0814FC94 -_0814F974: - ldrb r0, [r6, 0x6] - strb r0, [r6, 0x8] - ldrb r1, [r6, 0x5] - ldr r0, _0814F998 @ =gFonts - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r6, 0xB] - ldrb r0, [r0, 0x5] - adds r1, r0 - ldrb r0, [r6, 0x9] - adds r0, r1 - strb r0, [r6, 0x9] -_0814F992: - movs r0, 0x2 - b _0814FC96 - .align 2, 0 -_0814F998: .4byte gFonts -_0814F99C: - ldr r0, [r6] - adds r0, 0x1 - b _0814FAF8 -_0814F9A2: - ldr r0, [r6] - ldrb r3, [r0] - adds r0, 0x1 - str r0, [r6] - subs r0, r3, 0x1 - cmp r0, 0xF - bls _0814F9B2 - b _0814FB62 -_0814F9B2: - lsls r0, 2 - ldr r1, _0814F9BC @ =_0814F9C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F9BC: .4byte _0814F9C0 - .align 2, 0 -_0814F9C0: - .4byte _0814FA00 - .4byte _0814FA22 - .4byte _0814FA46 - .4byte _0814FA60 - .4byte _0814FAAC - .4byte _0814FAB2 - .4byte _0814F992 - .4byte _0814FACC - .4byte _0814FADC - .4byte _0814FAF0 - .4byte _0814FAF4 - .4byte _0814FAFC - .4byte _0814FB06 - .4byte _0814FB12 - .4byte _0814FB22 - .4byte _0814FAF4 -_0814FA00: - ldr r2, [r6] - ldrb r1, [r2] - lsls r1, 4 - ldrb r3, [r6, 0xC] - movs r0, 0xF - ands r0, r3 - orrs r0, r1 - strb r0, [r6, 0xC] - adds r2, 0x1 - str r2, [r6] - lsls r0, 24 - lsrs r0, 28 - ldrb r2, [r6, 0xD] - lsls r1, r2, 28 - lsrs r1, 28 - lsrs r2, 4 - b _0814FAA6 -_0814FA22: - ldr r1, [r6] - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - ldrb r3, [r6, 0xD] - movs r2, 0x10 - negs r2, r2 - ands r2, r3 - orrs r2, r0 - strb r2, [r6, 0xD] - adds r1, 0x1 - str r1, [r6] - ldrb r0, [r6, 0xC] - lsrs r0, 4 - lsls r1, r2, 28 - lsrs r1, 28 - lsrs r2, 4 - b _0814FAA6 -_0814FA46: - ldr r1, [r6] - ldrb r0, [r1] - lsls r0, 4 - ldrb r3, [r6, 0xD] - movs r2, 0xF - ands r2, r3 - orrs r2, r0 - strb r2, [r6, 0xD] - adds r1, 0x1 - str r1, [r6] - ldrb r0, [r6, 0xC] - lsrs r0, 4 - b _0814FA9E -_0814FA60: - ldr r3, [r6] - ldrb r1, [r3] - lsls r1, 4 - ldrb r4, [r6, 0xC] - movs r2, 0xF - adds r0, r2, 0 - ands r0, r4 - orrs r0, r1 - strb r0, [r6, 0xC] - adds r5, r3, 0x1 - str r5, [r6] - ldrb r3, [r3, 0x1] - adds r1, r2, 0 - ands r1, r3 - ldrb r4, [r6, 0xD] - movs r3, 0x10 - negs r3, r3 - ands r3, r4 - orrs r3, r1 - strb r3, [r6, 0xD] - adds r4, r5, 0x1 - str r4, [r6] - ldrb r1, [r5, 0x1] - lsls r1, 4 - ands r2, r3 - orrs r2, r1 - strb r2, [r6, 0xD] - adds r4, 0x1 - str r4, [r6] - lsls r0, 24 - lsrs r0, 28 -_0814FA9E: - lsls r1, r2, 28 - lsrs r1, 28 - lsls r2, 24 - lsrs r2, 28 -_0814FAA6: - bl GenerateFontHalfRowLookupTable - b _0814F992 -_0814FAAC: - ldr r0, [r6] - adds r0, 0x1 - b _0814FAF8 -_0814FAB2: - ldr r0, [r6] - ldrb r0, [r0] - movs r1, 0xF - ands r1, r0 - ldrb r2, [r4] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldr r0, [r6] - adds r0, 0x1 - b _0814FAF8 -_0814FACC: - ldr r0, [r6] - ldrb r1, [r0] - strb r1, [r6, 0x1E] - adds r0, 0x1 - str r0, [r6] - movs r0, 0x6 - strb r0, [r6, 0x1C] - b _0814F992 -_0814FADC: - movs r0, 0x1 - strb r0, [r6, 0x1C] - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0814FB42 - movs r0, 0 - strb r0, [r4, 0x2] - b _0814FB42 -_0814FAF0: - movs r0, 0x5 - b _0814FC7E -_0814FAF4: - ldr r0, [r6] - adds r0, 0x2 -_0814FAF8: - str r0, [r6] - b _0814F992 -_0814FAFC: - ldr r1, [r6] - adds r0, r1, 0x1 - str r0, [r6] - ldrb r3, [r1, 0x1] - b _0814FB62 -_0814FB06: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, 0x6] - adds r0, r2 - strb r0, [r6, 0x8] - b _0814FB1C -_0814FB12: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, 0x7] - adds r0, r2 - strb r0, [r6, 0x9] -_0814FB1C: - adds r1, 0x1 - str r1, [r6] - b _0814F992 -_0814FB22: - ldrb r0, [r6, 0x4] - ldrb r2, [r6, 0xD] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - b _0814F992 -_0814FB34: - movs r0, 0x2 - b _0814FB3A -_0814FB38: - movs r0, 0x3 -_0814FB3A: - strb r0, [r6, 0x1C] - adds r0, r6, 0 - bl TextPrinterInitDownArrowCounters -_0814FB42: - movs r0, 0x3 - b _0814FC96 -_0814FB46: - ldr r0, [r6] - ldrb r3, [r0] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - orrs r3, r1 - adds r0, 0x1 - str r0, [r6] - b _0814FB62 -_0814FB58: - ldr r0, [r6] - adds r0, 0x1 - str r0, [r6] - movs r0, 0 - b _0814FC96 -_0814FB62: - adds r0, r3, 0 - bl DecompressGlyphFont6 - adds r0, r6, 0 - bl CopyGlyphToWindow - ldr r0, _0814FB84 @ =gGlyphInfo - adds r0, 0x80 - ldrb r1, [r6, 0xA] - ldrb r0, [r0] - adds r1, r0 - ldrb r0, [r6, 0x8] - adds r0, r1 - strb r0, [r6, 0x8] - movs r0, 0 - b _0814FC96 - .align 2, 0 -_0814FB84: .4byte gGlyphInfo -_0814FB88: - adds r0, r6, 0 - bl TextPrinterWait - lsls r0, 16 - cmp r0, 0 - beq _0814FB42 - movs r0, 0 - strb r0, [r6, 0x1C] - b _0814FB42 -_0814FB9A: - adds r0, r6, 0 - bl TextPrinterWaitWithDownArrow - lsls r0, 16 - cmp r0, 0 - beq _0814FB42 - ldrb r0, [r6, 0x4] - ldrb r2, [r6, 0xD] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - ldrb r0, [r6, 0x6] - movs r1, 0 - strb r0, [r6, 0x8] - ldrb r0, [r6, 0x7] - strb r0, [r6, 0x9] - strb r1, [r6, 0x1C] - b _0814FB42 -_0814FBC4: - adds r0, r6, 0 - bl TextPrinterWaitWithDownArrow - lsls r0, 16 - cmp r0, 0 - beq _0814FB42 - adds r0, r6, 0 - bl TextPrinterClearDownArrow - ldrb r1, [r6, 0x5] - ldr r0, _0814FBF8 @ =gFonts - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r6, 0xB] - ldrb r0, [r0, 0x5] - adds r1, r0 - strb r1, [r6, 0x1F] - ldrb r0, [r6, 0x6] - strb r0, [r6, 0x8] - movs r0, 0x4 - strb r0, [r6, 0x1C] - b _0814FB42 - .align 2, 0 -_0814FBF8: .4byte gFonts -_0814FBFC: - ldrb r2, [r6, 0x1F] - cmp r2, 0 - beq _0814FC6C - ldr r4, _0814FC30 @ =gUnknown_846FB08 - ldr r5, _0814FC34 @ =gSaveBlock2Ptr - ldr r0, [r5] - ldrb r0, [r0, 0x14] - lsls r1, r0, 29 - lsrs r0, r1, 29 - adds r0, r4 - ldrb r0, [r0] - cmp r2, r0 - bcs _0814FC38 - ldrb r0, [r6, 0x4] - ldrb r1, [r6, 0xD] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0 - bl ScrollWindow - movs r0, 0 - strb r0, [r6, 0x1F] - b _0814FC62 - .align 2, 0 -_0814FC30: .4byte gUnknown_846FB08 -_0814FC34: .4byte gSaveBlock2Ptr -_0814FC38: - ldrb r0, [r6, 0x4] - lsrs r1, 29 - adds r1, r4 - ldrb r2, [r1] - ldrb r1, [r6, 0xD] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0 - bl ScrollWindow - ldr r0, [r5] - ldrb r0, [r0, 0x14] - lsls r0, 29 - lsrs r0, 29 - adds r0, r4 - ldrb r1, [r6, 0x1F] - ldrb r0, [r0] - subs r1, r0 - strb r1, [r6, 0x1F] -_0814FC62: - ldrb r0, [r6, 0x4] - movs r1, 0x2 - bl CopyWindowToVram - b _0814FB42 -_0814FC6C: - strb r2, [r6, 0x1C] - b _0814FB42 -_0814FC70: - bl IsSEPlaying - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0814FC7E - b _0814FB42 -_0814FC7E: - strb r0, [r6, 0x1C] - b _0814FB42 -_0814FC82: - ldrb r0, [r6, 0x1E] - adds r1, r0, 0 - cmp r1, 0 - beq _0814FC90 - subs r0, 0x1 - strb r0, [r6, 0x1E] - b _0814FB42 -_0814FC90: - strb r1, [r6, 0x1C] - b _0814FB42 -_0814FC94: - movs r0, 0x1 -_0814FC96: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end Font6Func - - thumb_func_start DecompressGlyphFont6 -DecompressGlyphFont6: @ 814FC9C - push {r4,r5,lr} - lsls r0, 16 - lsrs r2, r0, 19 - lsls r2, 9 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 11 - ldr r0, _0814FCF8 @ =gUnknown_846FB0C - adds r1, r0 - adds r5, r2, r1 - ldr r4, _0814FCFC @ =gGlyphInfo - adds r0, r5, 0 - adds r1, r4, 0 - bl DecompressGlyphTile - adds r0, r5, 0 - adds r0, 0x10 - adds r1, r4, 0 - adds r1, 0x20 - bl DecompressGlyphTile - movs r1, 0x80 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x40 - bl DecompressGlyphTile - movs r1, 0x88 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x60 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x80 - movs r1, 0x10 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FCF8: .4byte gUnknown_846FB0C -_0814FCFC: .4byte gGlyphInfo - thumb_func_end DecompressGlyphFont6 - - thumb_func_start GetGlyphWidthFont6 -GetGlyphWidthFont6: @ 814FD00 - movs r0, 0x10 - bx lr - thumb_func_end GetGlyphWidthFont6 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/bug.s b/asm/bug.s new file mode 100644 index 000000000..6970411d1 --- /dev/null +++ b/asm/bug.s @@ -0,0 +1,829 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B3FAC +sub_80B3FAC: @ 80B3FAC + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B3FD8 + adds r0, r6, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080B3FD4 @ =gBattleAnimArgs + ldrh r1, [r0, 0x4] + negs r1, r1 + strh r1, [r0, 0x4] + ldrh r1, [r0] + negs r1, r1 + strh r1, [r0] + b _080B4008 + .align 2, 0 +_080B3FD4: .4byte gBattleAnimArgs +_080B3FD8: + ldr r0, _080B406C @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B4008 + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080B4070 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080B4008: + ldr r5, _080B406C @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074844 + lsls r0, 24 + ldr r4, _080B4070 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074844 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + ldr r0, _080B4074 @ =sub_8075590 + str r0, [r6, 0x1C] + ldr r1, _080B4078 @ =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B406C: .4byte gBattleAnimTarget +_080B4070: .4byte gBattleAnimArgs +_080B4074: .4byte sub_8075590 +_080B4078: .4byte DestroyAnimSprite + thumb_func_end sub_80B3FAC + + thumb_func_start sub_80B407C +sub_80B407C: @ 80B407C + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B40A0 + ldr r1, _080B409C @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] + adds r0, r6, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + b _080B40BC + .align 2, 0 +_080B409C: .4byte gBattleAnimArgs +_080B40A0: + ldr r0, _080B4118 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B40BC + ldr r0, _080B411C @ =gBattleAnimArgs + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0] + negs r1, r1 + strh r1, [r0] +_080B40BC: + ldr r5, _080B4118 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074844 + lsls r0, 24 + ldr r4, _080B411C @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074844 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x2E] + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x36] + ldr r0, _080B4120 @ =sub_8075590 + str r0, [r6, 0x1C] + ldr r1, _080B4124 @ =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B4118: .4byte gBattleAnimTarget +_080B411C: .4byte gBattleAnimArgs +_080B4120: .4byte sub_8075590 +_080B4124: .4byte DestroyAnimSprite + thumb_func_end sub_80B407C + + thumb_func_start sub_80B4128 +sub_80B4128: @ 80B4128 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B4144 + ldr r0, _080B4184 @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r1, [r0, r2] + lsrs r2, r1, 31 + adds r1, r2 + asrs r1, 1 + strh r1, [r0, 0x4] +_080B4144: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080B4184 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080B418C + ldr r4, _080B4188 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080B419E + .align 2, 0 +_080B4184: .4byte gBattleAnimArgs +_080B4188: .4byte gBattleAnimTarget +_080B418C: + ldr r0, _080B41B4 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_8076D9C +_080B419E: + adds r0, r5, 0 + bl sub_8075678 + ldr r0, _080B41B8 @ =gBattleAnimArgs + ldrh r0, [r0, 0x6] + strh r0, [r5, 0x38] + ldr r0, _080B41BC @ =sub_80B41C0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B41B4: .4byte gBattleAnimTarget +_080B41B8: .4byte gBattleAnimArgs +_080B41BC: .4byte sub_80B41C0 + thumb_func_end sub_80B4128 + + thumb_func_start sub_80B41C0 +sub_80B41C0: @ 80B41C0 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080B41D6 + adds r0, r4, 0 + bl DestroyAnimSprite + b _080B41F2 +_080B41D6: + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3A] + adds r0, 0xD + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] +_080B41F2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B41C0 + + thumb_func_start sub_80B41F8 +sub_80B41F8: @ 80B41F8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B4228 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C + ldr r0, _080B422C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B4234 + ldr r0, _080B4230 @ =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080B4240 + .align 2, 0 +_080B4228: .4byte gBattleAnimTarget +_080B422C: .4byte gBattleAnimAttacker +_080B4230: .4byte gBattleAnimArgs +_080B4234: + ldr r1, _080B4268 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, r1, 0 +_080B4240: + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080B426C @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B425C + ldrh r0, [r4, 0x22] + adds r0, 0x8 + strh r0, [r4, 0x22] +_080B425C: + ldr r0, _080B4270 @ =sub_80B4274 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4268: .4byte gBattleAnimArgs +_080B426C: .4byte gBattleAnimTarget +_080B4270: .4byte sub_80B4274 + thumb_func_end sub_80B41F8 + + thumb_func_start sub_80B4274 +sub_80B4274: @ 80B4274 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080B42A8 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080B42A8: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080B42BC + adds r0, r3, 0 + bl DestroyAnimSprite +_080B42BC: + pop {r0} + bx r0 + thumb_func_end sub_80B4274 + + thumb_func_start sub_80B42C0 +sub_80B42C0: @ 80B42C0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + movs r0, 0x10 + strh r0, [r4, 0x2E] + ldr r0, _080B42E4 @ =sub_80B42E8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B42E4: .4byte sub_80B42E8 + thumb_func_end sub_80B42C0 + + thumb_func_start sub_80B42E8 +sub_80B42E8: @ 80B42E8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x13 + bgt _080B42FC + adds r0, r1, 0x1 + strh r0, [r4, 0x32] + b _080B433A +_080B42FC: + ldrh r1, [r4, 0x30] + adds r0, r1, 0x1 + strh r0, [r4, 0x30] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B433A + ldrh r1, [r4, 0x2E] + subs r1, 0x1 + strh r1, [r4, 0x2E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B433A + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B4340 @ =sub_80B4344 + str r0, [r4, 0x1C] +_080B433A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4340: .4byte sub_80B4344 + thumb_func_end sub_80B42E8 + + thumb_func_start sub_80B4344 +sub_80B4344: @ 80B4344 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B4344 + + thumb_func_start sub_80B4364 +sub_80B4364: @ 80B4364 + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B4384 + ldr r1, _080B4380 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + b _080B43A6 + .align 2, 0 +_080B4380: .4byte gBattleAnimArgs +_080B4384: + ldr r0, _080B4480 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B43A6 + ldr r1, _080B4484 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080B43A6: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B43F6 + ldr r0, _080B4480 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + adds r4, r0, 0 + ldr r5, _080B4488 @ =gBattleAnimTarget + ldrb r0, [r5] + bl GetBattlerSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080B43F6 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + cmp r0, 0 + beq _080B43E4 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B43F6 +_080B43E4: + ldr r0, _080B4484 @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r1, [r0, r2] + negs r1, r1 + strh r1, [r0, 0x4] + movs r2, 0 + ldrsh r1, [r0, r2] + negs r1, r1 + strh r1, [r0] +_080B43F6: + adds r0, r7, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r5, _080B4488 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + lsls r4, 24 + ldr r6, _080B4484 @ =gBattleAnimArgs + lsrs r4, 24 + ldrh r0, [r6, 0x4] + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r6, 0x6] + adds r1, r2 + lsls r1, 16 + ldrh r2, [r7, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + subs r0, r2 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r7, 0x22] + lsrs r5, r1, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_8075B30 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8075A1C + ldrh r0, [r6, 0x8] + strh r0, [r7, 0x2E] + strh r4, [r7, 0x32] + strh r5, [r7, 0x36] + ldr r0, _080B448C @ =sub_8075590 + str r0, [r7, 0x1C] + ldr r1, _080B4490 @ =DestroyAnimSprite + adds r0, r7, 0 + bl StoreSpriteCallbackInData6 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B4480: .4byte gBattleAnimAttacker +_080B4484: .4byte gBattleAnimArgs +_080B4488: .4byte gBattleAnimTarget +_080B448C: .4byte sub_8075590 +_080B4490: .4byte DestroyAnimSprite + thumb_func_end sub_80B4364 + + thumb_func_start sub_80B4494 +sub_80B4494: @ 80B4494 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080B4500 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B44B4 + ldr r1, _080B4504 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080B44B4: + ldr r4, _080B4504 @ =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080B4508 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r6, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + adds r0, r6, 0 + bl sub_8075068 + ldr r0, _080B450C @ =sub_80B4510 + str r0, [r6, 0x1C] + adds r2, r6, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B4500: .4byte gBattleAnimAttacker +_080B4504: .4byte gBattleAnimArgs +_080B4508: .4byte gBattleAnimTarget +_080B450C: .4byte sub_80B4510 + thumb_func_end sub_80B4494 + + thumb_func_start sub_80B4510 +sub_80B4510: @ 80B4510 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B453C + adds r0, r4, 0 + bl DestroyAnimSprite + b _080B45CC +_080B453C: + movs r0, 0x2E + adds r0, r4 + mov r8, r0 + ldrh r7, [r4, 0x20] + ldrh r5, [r4, 0x24] + ldrh r1, [r4, 0x22] + mov r12, r1 + ldrh r6, [r4, 0x26] + mov r2, r8 + add r1, sp, 0x4 + movs r3, 0x7 +_080B4552: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080B4552 + adds r0, r7, r5 + lsls r0, 16 + lsrs r5, r0, 16 + mov r2, r12 + adds r0, r2, r6 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080B45CC + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + lsls r1, r5, 16 + asrs r1, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r1, r2 + lsls r2, r6, 16 + asrs r2, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_8075B30 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8075A1C + add r2, sp, 0x4 + mov r1, r8 + movs r3, 0x7 +_080B45BE: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080B45BE +_080B45CC: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B4510 + + thumb_func_start sub_80B45D8 +sub_80B45D8: @ 80B45D8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B45EC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B45F4 + ldr r4, _080B45F0 @ =gBattleAnimAttacker + b _080B45F6 + .align 2, 0 +_080B45EC: .4byte gBattleAnimArgs +_080B45F0: .4byte gBattleAnimAttacker +_080B45F4: + ldr r4, _080B4628 @ =gBattleAnimTarget +_080B45F6: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x12 + strh r0, [r5, 0x22] + ldr r1, _080B462C @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B4630 @ =sub_8074F50 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4628: .4byte gBattleAnimTarget +_080B462C: .4byte move_anim_8074EE0 +_080B4630: .4byte sub_8074F50 + thumb_func_end sub_80B45D8 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s index 734e648b3..ed18eb711 100644 --- a/asm/buy_menu_helpers.s +++ b/asm/buy_menu_helpers.s @@ -24,15 +24,15 @@ _0813F686: movs r0, 0 movs r1, 0x1 movs r2, 0xD0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0 movs r1, 0x13 movs r2, 0xE0 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 movs r0, 0 movs r1, 0xA movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0 bl PutWindowTilemap movs r0, 0x4 @@ -114,7 +114,7 @@ sub_813F6F4: @ 813F6F4 str r4, [sp, 0xC] str r2, [sp, 0x10] mov r2, r9 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r3,r4} mov r8, r3 @@ -141,7 +141,7 @@ sub_813F75C: @ 813F75C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 str r4, [sp] @@ -209,7 +209,7 @@ sub_813F7D8: @ 813F7D8 str r3, [sp, 0xC] movs r2, 0x2 movs r3, 0 - bl sub_80BF5D0 + bl CreateYesNoMenuWithCallbacks add sp, 0x10 pop {r0} bx r0 diff --git a/asm/cable_club.s b/asm/cable_club.s index 45967283c..b9b3a595c 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -91,7 +91,7 @@ sub_80807E8: @ 80807E8 lsrs r4, 24 adds r0, r4, 0 movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram @@ -765,7 +765,7 @@ _08080D3C: cmp r2, 0x9 bne _08080D54 _08080D44: - bl sub_80098B8 + bl CloseLink bl HideFieldMessageBox ldr r0, _08080D50 @ =sub_8080F78 b _08080D72 @@ -860,7 +860,7 @@ _08080DF6: cmp r0, 0x9 bne _08080E20 _08080DFE: - bl sub_80098B8 + bl CloseLink _08080E02: bl HideFieldMessageBox ldr r0, _08080E18 @ =gTasks @@ -1631,7 +1631,7 @@ _08081410: _08081418: str r0, [r1] _0808141A: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r1, _08081444 @ =gTrainerBattleOpponent_A movs r2, 0x80 lsls r2, 4 @@ -1854,7 +1854,7 @@ _080815E0: _080815E8: str r0, [r1] _080815EA: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r1, _08081614 @ =gTrainerBattleOpponent_A movs r3, 0x80 lsls r3, 4 @@ -1905,14 +1905,14 @@ _0808164C: lsls r0, 24 cmp r0, 0 beq _0808165C - ldr r0, _08081664 @ =c2_exit_to_overworld_2_switch + ldr r0, _08081664 @ =CB2_ReturnToField bl SetMainCallback2 _0808165C: pop {r4} pop {r0} bx r0 .align 2, 0 -_08081664: .4byte c2_exit_to_overworld_2_switch +_08081664: .4byte CB2_ReturnToField thumb_func_end sub_8081624 thumb_func_start sub_8081668 @@ -1940,7 +1940,7 @@ sub_8081668: @ 8081668 ldrb r0, [r0] cmp r0, 0 beq _0808170A - ldr r0, _080816C4 @ =gUnknown_2023E8A + ldr r0, _080816C4 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _080816C8 @@ -1953,7 +1953,7 @@ _080816B4: .4byte 0x0000ffdf _080816B8: .4byte gSpecialVar_0x8004 _080816BC: .4byte gUnknown_300502C _080816C0: .4byte gWirelessCommType -_080816C4: .4byte gUnknown_2023E8A +_080816C4: .4byte gBattleOutcome _080816C8: ldr r4, _080816E8 @ =gLinkPlayers bl GetMultiplayerId @@ -2459,7 +2459,7 @@ sub_8081A90: @ 8081A90 lsls r0, 17 cmp r1, r0 ble _08081AC2 - bl sub_80098B8 + bl CloseLink ldr r0, _08081ADC @ =c2_800ACD4 bl SetMainCallback2 adds r0, r4, 0 diff --git a/asm/cereader_tool.s b/asm/cereader_tool.s deleted file mode 100644 index 749cb5303..000000000 --- a/asm/cereader_tool.s +++ /dev/null @@ -1,196 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815D654 -sub_815D654: @ 815D654 - push {lr} - ldr r0, _0815D674 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _0815D678 @ =0x00003d41 - adds r0, r1 - ldrb r1, [r0] - adds r2, r1, 0x1 - adds r0, r2, 0 - asrs r0, 8 - lsls r0, 8 - subs r0, r2, r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0815D674: .4byte gSaveBlock1Ptr -_0815D678: .4byte 0x00003d41 - thumb_func_end sub_815D654 - - thumb_func_start sub_815D67C -sub_815D67C: @ 815D67C - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r0, [r5, 0x1] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - bhi _0815D6AA - ldrb r0, [r5, 0x2] - cmp r0, 0x2 - bhi _0815D6AA - movs r4, 0xF7 - lsls r4, 2 - adds r0, r5, 0 - adds r1, r4, 0 - bl CalcByteArraySum - adds r4, r5, r4 - ldr r1, [r4] - cmp r0, r1 - bne _0815D6AA - movs r0, 0x1 - b _0815D6AC -_0815D6AA: - movs r0, 0 -_0815D6AC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815D67C - - thumb_func_start sub_815D6B4 -sub_815D6B4: @ 815D6B4 - push {r4-r7,lr} - adds r7, r0, 0 - ldrb r6, [r7] - subs r0, r6, 0x1 - cmp r0, 0x7 - bhi _0815D6F8 - movs r5, 0 - cmp r5, r6 - bcs _0815D6E0 - adds r4, r7, 0 - adds r4, 0x8 -_0815D6CA: - adds r0, r4, 0 - bl sub_815D67C - cmp r0, 0 - beq _0815D6F8 - movs r0, 0xF8 - lsls r0, 2 - adds r4, r0 - adds r5, 0x1 - cmp r5, r6 - bcc _0815D6CA -_0815D6E0: - adds r0, r7, 0 - adds r0, 0x8 - lsls r1, r6, 5 - subs r1, r6 - lsls r1, 5 - bl CalcByteArraySum - ldr r1, [r7, 0x4] - cmp r0, r1 - bne _0815D6F8 - movs r0, 0x1 - b _0815D6FA -_0815D6F8: - movs r0, 0 -_0815D6FA: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_815D6B4 - - thumb_func_start sub_815D700 -sub_815D700: @ 815D700 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldrh r0, [r5, 0x2] - cmp r0, 0 - beq _0815D718 - ldr r0, _0815D77C @ =gUnknown_8479CD8 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c" - ldr r2, _0815D780 @ =gUnknown_8479D10 "ttdata->dummy == 0" - movs r1, 0xC6 - movs r3, 0x1 - bl AGBAssert -_0815D718: - ldrb r0, [r5, 0x1] - cmp r0, 0 - beq _0815D72A - ldr r0, _0815D77C @ =gUnknown_8479CD8 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c" - ldr r2, _0815D784 @ =gUnknown_8479D24 "ttdata->id == 0" - movs r1, 0xC7 - movs r3, 0x1 - bl AGBAssert -_0815D72A: - movs r6, 0x80 - lsls r6, 5 - adds r0, r4, 0 - movs r1, 0 - adds r2, r6, 0 - bl memset - ldr r2, _0815D788 @ =0x00000f88 - adds r0, r4, 0 - adds r1, r5, 0 - bl memcpy - bl sub_815D654 - strb r0, [r4, 0x1] - movs r0, 0x1E - adds r1, r4, 0 - bl sub_80DA5E0 - cmp r0, 0x1 - bne _0815D78C - adds r0, r4, 0 - movs r1, 0 - adds r2, r6, 0 - bl memset - ldr r0, _0815D788 @ =0x00000f88 - adds r1, r5, r0 - movs r2, 0xF8 - lsls r2, 4 - adds r0, r4, 0 - bl memcpy - movs r0, 0x1F - adds r1, r4, 0 - bl sub_80DA5E0 - cmp r0, 0x1 - bne _0815D78C - movs r0, 0x1 - b _0815D78E - .align 2, 0 -_0815D77C: .4byte gUnknown_8479CD8 -_0815D780: .4byte gUnknown_8479D10 -_0815D784: .4byte gUnknown_8479D24 -_0815D788: .4byte 0x00000f88 -_0815D78C: - movs r0, 0 -_0815D78E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_815D700 - - thumb_func_start sub_815D794 -sub_815D794: @ 815D794 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x80 - lsls r0, 5 - bl AllocZeroed - adds r5, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_815D700 - adds r4, r0, 0 - adds r0, r5, 0 - bl Free - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815D794 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s index 84dd082f6..ccae18c34 100644 --- a/asm/clear_save_data_screen.s +++ b/asm/clear_save_data_screen.s @@ -109,11 +109,11 @@ _080F564A: movs r0, 0 movs r1, 0x1 movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0x1 movs r1, 0x1 movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal b _080F56E2 _080F5660: movs r0, 0x1 @@ -134,7 +134,7 @@ _080F5660: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram @@ -152,7 +152,7 @@ _080F569C: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu movs r0, 0 bl CopyBgTilemapBufferToVram b _080F56E2 @@ -204,7 +204,7 @@ sub_80F5708: @ 80F5708 ldrb r0, [r0] cmp r0, 0 bne _080F578C - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r4, r0, 24 movs r0, 0x1 @@ -241,7 +241,7 @@ _080F5744: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram diff --git a/asm/coord_event_weather.s b/asm/coord_event_weather.s deleted file mode 100644 index 8c987c6e2..000000000 --- a/asm/coord_event_weather.s +++ /dev/null @@ -1,105 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_27 -nullsub_27: @ 806E7A8 - bx lr - thumb_func_end nullsub_27 - - thumb_func_start nullsub_28 -nullsub_28: @ 806E7AC - bx lr - thumb_func_end nullsub_28 - - thumb_func_start nullsub_29 -nullsub_29: @ 806E7B0 - bx lr - thumb_func_end nullsub_29 - - thumb_func_start nullsub_30 -nullsub_30: @ 806E7B4 - bx lr - thumb_func_end nullsub_30 - - thumb_func_start nullsub_31 -nullsub_31: @ 806E7B8 - bx lr - thumb_func_end nullsub_31 - - thumb_func_start nullsub_32 -nullsub_32: @ 806E7BC - bx lr - thumb_func_end nullsub_32 - - thumb_func_start nullsub_33 -nullsub_33: @ 806E7C0 - bx lr - thumb_func_end nullsub_33 - - thumb_func_start nullsub_34 -nullsub_34: @ 806E7C4 - bx lr - thumb_func_end nullsub_34 - - thumb_func_start nullsub_35 -nullsub_35: @ 806E7C8 - bx lr - thumb_func_end nullsub_35 - - thumb_func_start nullsub_36 -nullsub_36: @ 806E7CC - bx lr - thumb_func_end nullsub_36 - - thumb_func_start nullsub_37 -nullsub_37: @ 806E7D0 - bx lr - thumb_func_end nullsub_37 - - thumb_func_start nullsub_38 -nullsub_38: @ 806E7D4 - bx lr - thumb_func_end nullsub_38 - - thumb_func_start nullsub_39 -nullsub_39: @ 806E7D8 - bx lr - thumb_func_end nullsub_39 - - thumb_func_start trigger_activate_weather -trigger_activate_weather: @ 806E7DC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r2, 0 - ldr r3, _0806E7FC @ =gUnknown_83A72A8 -_0806E7E6: - lsls r1, r2, 3 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r4 - bne _0806E800 - adds r0, r3, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - bl _call_via_r0 - b _0806E80A - .align 2, 0 -_0806E7FC: .4byte gUnknown_83A72A8 -_0806E800: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xC - bls _0806E7E6 -_0806E80A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end trigger_activate_weather - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/credits.s b/asm/credits.s index bf8c5eeac..6317b95f7 100644 --- a/asm/credits.s +++ b/asm/credits.s @@ -177,7 +177,7 @@ sub_80F3B04: @ 80F3B04 beq _080F3B20 ldrb r0, [r1, 0xA] bl RemoveWindow - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r1, [r4] movs r0, 0 strb r0, [r1, 0xB] @@ -241,7 +241,7 @@ _080F3B5E: bl sub_80F3A74 bl sub_80F3AA4 movs r0, 0xF0 - bl sub_80F77CC + bl Menu_LoadStdPalAt ldr r0, _080F3BC8 @ =gPlttBufferUnfaded movs r2, 0xFF lsls r2, 1 @@ -325,7 +325,7 @@ _080F3C64: bl sub_80F3AA4 bl sub_80F3AC4 movs r0, 0xF0 - bl sub_80F77CC + bl Menu_LoadStdPalAt ldr r0, _080F3C8C @ =gPlttBufferUnfaded movs r2, 0xFF lsls r2, 1 @@ -422,7 +422,7 @@ _080F3D0A: movs r1, 0x1 movs r2, 0x8 movs r3, 0x29 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r1, [r7] movs r0, 0x5 b _080F413C @@ -649,7 +649,7 @@ _080F3EB4: movs r1, 0x1 movs r2, 0x2 movs r3, 0x6 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r1, [r7] movs r0, 0x8 b _080F3FB8 @@ -696,7 +696,7 @@ _080F3F24: movs r1, 0x2 movs r2, 0x8 movs r3, 0x6 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r1, [r7] movs r0, 0x9 b _080F3FB8 @@ -1279,13 +1279,13 @@ _080F4374: movs r0, 0x1 adds r2, r5, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080F44B4 @ =gUnknown_840C650 str r4, [sp] movs r0, 0x2 adds r2, r5, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080F44B8 @ =gUnknown_8EAB30C movs r2, 0xA0 lsls r2, 3 @@ -1293,14 +1293,14 @@ _080F4374: str r4, [sp] movs r0, 0x1 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080F44BC @ =gUnknown_840CA54 movs r2, 0x80 lsls r2, 3 str r4, [sp] movs r0, 0x2 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, [r6] ldrb r0, [r0, 0x9] lsls r0, 5 @@ -1620,7 +1620,7 @@ _080F46A0: str r5, [sp] movs r0, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, [r6] ldrb r1, [r0, 0x9] lsls r0, r1, 1 @@ -1635,7 +1635,7 @@ _080F46A0: str r0, [sp] movs r0, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, [r6] ldrb r1, [r0, 0x9] lsls r0, r1, 1 diff --git a/asm/dark.s b/asm/dark.s new file mode 100644 index 000000000..a232c19ad --- /dev/null +++ b/asm/dark.s @@ -0,0 +1,2323 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B78E0 +sub_80B78E0: @ 80B78E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B791C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B7920 @ =gBattleAnimArgs + ldrh r1, [r1] + strh r1, [r0, 0x8] + ldr r1, _080B7924 @ =gBattleAnimAttacker + ldrb r4, [r1] + movs r1, 0x10 + strh r1, [r0, 0xA] + movs r0, 0x52 + bl SetGpuReg + adds r0, r4, 0 + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B792C + ldr r1, _080B7928 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + b _080B7934 + .align 2, 0 +_080B791C: .4byte gTasks +_080B7920: .4byte gBattleAnimArgs +_080B7924: .4byte gBattleAnimAttacker +_080B7928: .4byte 0x00003f42 +_080B792C: + ldr r1, _080B7948 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg +_080B7934: + ldr r0, _080B794C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080B7950 @ =sub_80B7954 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7948: .4byte 0x00003f44 +_080B794C: .4byte gTasks +_080B7950: .4byte sub_80B7954 + thumb_func_end sub_80B78E0 + + thumb_func_start sub_80B7954 +sub_80B7954: @ 80B7954 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080B79C0 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r6, r0, r1 + ldrh r0, [r6, 0xA] + lsrs r4, r0, 8 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xC + ldrsh r0, [r6, r2] + ldrb r2, [r6, 0x8] + cmp r0, r2 + bne _080B79D0 + adds r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r4, 8 + orrs r1, r0 + movs r5, 0 + strh r1, [r6, 0xA] + ldrh r1, [r6, 0xA] + movs r0, 0x52 + bl SetGpuReg + strh r5, [r6, 0xC] + cmp r4, 0x10 + bne _080B79D6 + ldr r2, _080B79C4 @ =gSprites + ldr r1, _080B79C8 @ =gBattlerSpriteIds + ldr r0, _080B79CC @ =gBattleAnimAttacker + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + 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] + adds r0, r7, 0 + bl DestroyAnimVisualTask + b _080B79D6 + .align 2, 0 +_080B79C0: .4byte gTasks +_080B79C4: .4byte gSprites +_080B79C8: .4byte gBattlerSpriteIds +_080B79CC: .4byte gBattleAnimAttacker +_080B79D0: + ldrh r0, [r6, 0xC] + adds r0, 0x1 + strh r0, [r6, 0xC] +_080B79D6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B7954 + + thumb_func_start sub_80B79DC +sub_80B79DC: @ 80B79DC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B7A08 @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r1 + ldr r0, _080B7A0C @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r2, 0x8] + movs r1, 0x80 + lsls r1, 5 + strh r1, [r2, 0xA] + ldr r0, _080B7A10 @ =sub_80B7A14 + str r0, [r2] + movs r0, 0x52 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080B7A08: .4byte gTasks +_080B7A0C: .4byte gBattleAnimArgs +_080B7A10: .4byte sub_80B7A14 + thumb_func_end sub_80B79DC + + thumb_func_start sub_80B7A14 +sub_80B7A14: @ 80B7A14 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080B7A70 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r6, r0, r1 + ldrh r0, [r6, 0xA] + lsrs r4, r0, 8 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xC + ldrsh r0, [r6, r2] + ldrb r2, [r6, 0x8] + cmp r0, r2 + bne _080B7A74 + subs r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r4, 8 + orrs r1, r0 + movs r5, 0 + strh r1, [r6, 0xA] + ldrh r1, [r6, 0xA] + movs r0, 0x52 + bl SetGpuReg + strh r5, [r6, 0xC] + cmp r4, 0 + bne _080B7A7A + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r7, 0 + bl DestroyAnimVisualTask + b _080B7A7A + .align 2, 0 +_080B7A70: .4byte gTasks +_080B7A74: + ldrh r0, [r6, 0xC] + adds r0, 0x1 + strh r0, [r6, 0xC] +_080B7A7A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B7A14 + + thumb_func_start sub_80B7A80 +sub_80B7A80: @ 80B7A80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080B7AAC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B7AB4 + ldr r1, _080B7AB0 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + b _080B7ABC + .align 2, 0 +_080B7AAC: .4byte gBattleAnimAttacker +_080B7AB0: .4byte 0x00003f42 +_080B7AB4: + ldr r1, _080B7AC8 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg +_080B7ABC: + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7AC8: .4byte 0x00003f44 + thumb_func_end sub_80B7A80 + + thumb_func_start sub_80B7ACC +sub_80B7ACC: @ 80B7ACC + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080B7B38 @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x30] + ldr r5, _080B7B3C @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + movs r0, 0x7E + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_80754B8 + ldrh r0, [r4, 0x30] + negs r0, r0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + negs r0, r0 + strh r0, [r4, 0x36] + ldr r0, _080B7B40 @ =0x0000ffd8 + strh r0, [r4, 0x3A] + ldr r1, _080B7B44 @ =sub_80B7B48 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7B38: .4byte gBattleAnimTarget +_080B7B3C: .4byte gBattleAnimAttacker +_080B7B40: .4byte 0x0000ffd8 +_080B7B44: .4byte sub_80B7B48 + thumb_func_end sub_80B7ACC + + thumb_func_start sub_80B7B48 +sub_80B7B48: @ 80B7B48 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r5, [r4, 0x30] + ldrh r0, [r4, 0x34] + adds r2, r5, r0 + strh r2, [r4, 0x34] + ldrh r3, [r4, 0x32] + ldrh r6, [r4, 0x36] + adds r1, r3, r6 + strh r1, [r4, 0x36] + lsls r0, r2, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + movs r6, 0x3C + ldrsh r0, [r4, r6] + cmp r0, 0 + bne _080B7B8A + adds r0, r2, r5 + strh r0, [r4, 0x34] + adds r1, r3 + strh r1, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] +_080B7B8A: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + ldrh r6, [r4, 0x26] + adds r0, r6 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + cmp r0, 0x7F + ble _080B7BBA + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3A] + adds r0, 0x14 + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] +_080B7BBA: + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080B7BCC + adds r0, r4, 0 + bl DestroyAnimSprite +_080B7BCC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B7B48 + + thumb_func_start sub_80B7BD4 +sub_80B7BD4: @ 80B7BD4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B7C08 @ =gBattleAnimArgs + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrb r1, [r5, 0x4] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x32] + ldr r0, _080B7C0C @ =sub_80B7C10 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7C08: .4byte gBattleAnimArgs +_080B7C0C: .4byte sub_80B7C10 + thumb_func_end sub_80B7BD4 + + thumb_func_start sub_80B7C10 +sub_80B7C10: @ 80B7C10 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x36] + adds r0, r1 + strh r0, [r2, 0x36] + ldrh r1, [r2, 0x30] + ldrh r3, [r2, 0x38] + adds r1, r3 + strh r1, [r2, 0x38] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + bne _080B7C46 + ldr r0, _080B7C4C @ =sub_80B7C50 + str r0, [r2, 0x1C] +_080B7C46: + pop {r0} + bx r0 + .align 2, 0 +_080B7C4C: .4byte sub_80B7C50 + thumb_func_end sub_80B7C10 + + thumb_func_start sub_80B7C50 +sub_80B7C50: @ 80B7C50 + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x36] + ldrh r0, [r3, 0x2E] + subs r1, r0 + strh r1, [r3, 0x36] + ldrh r0, [r3, 0x38] + ldrh r2, [r3, 0x30] + subs r0, r2 + strh r0, [r3, 0x38] + lsls r1, 16 + asrs r1, 24 + strh r1, [r3, 0x24] + lsls r0, 16 + asrs r0, 24 + strh r0, [r3, 0x26] + ldrh r0, [r3, 0x34] + subs r0, 0x1 + strh r0, [r3, 0x34] + lsls r0, 16 + cmp r0, 0 + bne _080B7C82 + adds r0, r3, 0 + bl move_anim_8074EE0 +_080B7C82: + pop {r0} + bx r0 + thumb_func_end sub_80B7C50 + + thumb_func_start sub_80B7C88 +sub_80B7C88: @ 80B7C88 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080B7C9C @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080B7CA4 + ldr r0, _080B7CA0 @ =gBattleAnimAttacker + b _080B7CA6 + .align 2, 0 +_080B7C9C: .4byte gBattleAnimArgs +_080B7CA0: .4byte gBattleAnimAttacker +_080B7CA4: + ldr r0, _080B7CD4 @ =gBattleAnimTarget +_080B7CA6: + ldrb r5, [r0] + movs r6, 0x14 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x4 + ldr r7, _080B7CD8 @ =0x000003ff + adds r0, r7, 0 + ands r1, r0 + ldr r0, _080B7CDC @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + movs r1, 0x2 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _080B7D04 + cmp r0, 0x1 + bgt _080B7CE0 + cmp r0, 0 + beq _080B7CEA + b _080B7D58 + .align 2, 0 +_080B7CD4: .4byte gBattleAnimTarget +_080B7CD8: .4byte 0x000003ff +_080B7CDC: .4byte 0xfffffc00 +_080B7CE0: + cmp r0, 0x2 + beq _080B7D1E + cmp r0, 0x3 + beq _080B7D36 + b _080B7D58 +_080B7CEA: + adds r0, r5, 0 + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r4, 0x22] + b _080B7D58 +_080B7D04: + adds r0, r5, 0 + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0xE + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x10 + strh r0, [r4, 0x22] + b _080B7D58 +_080B7D1E: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + b _080B7D4C +_080B7D36: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0xE + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x10 +_080B7D4C: + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r6, 0xEC +_080B7D58: + movs r0, 0x20 + strh r0, [r4, 0x2E] + lsls r0, r6, 24 + asrs r0, 24 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + adds r0, 0xC + strh r0, [r4, 0x36] + ldr r0, _080B7D80 @ =0x0000fff4 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_8075068 + ldr r0, _080B7D84 @ =sub_80B7D88 + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B7D80: .4byte 0x0000fff4 +_080B7D84: .4byte sub_80B7D88 + thumb_func_end sub_80B7C88 + + thumb_func_start sub_80B7D88 +sub_80B7D88: @ 80B7D88 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B7D9C + adds r0, r4, 0 + bl move_anim_8074EE0 +_080B7D9C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B7D88 + + thumb_func_start sub_80B7DA4 +sub_80B7DA4: @ 80B7DA4 + push {r4-r7,lr} + sub sp, 0x1C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B7E08 @ =gTasks + adds r5, r1, r0 + ldr r4, _080B7E0C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1F + movs r6, 0 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + subs r0, 0x7 + strh r0, [r5, 0x14] + ldrh r1, [r5, 0x16] + strh r1, [r5, 0x12] + strh r0, [r5, 0x10] + subs r1, r0 + lsls r1, 8 + strh r1, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r5, 0x24] + adds r0, 0x20 + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B7E14 + ldr r0, _080B7E10 @ =0x0000fff4 + b _080B7E16 + .align 2, 0 +_080B7E08: .4byte gTasks +_080B7E0C: .4byte gBattleAnimAttacker +_080B7E10: .4byte 0x0000fff4 +_080B7E14: + ldr r0, _080B7E60 @ =0x0000ffc0 +_080B7E16: + strh r0, [r5, 0x18] + ldr r0, _080B7E64 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + cmp r0, 0x1 + bne _080B7E78 + add r4, sp, 0xC + adds r0, r4, 0 + bl sub_80752A0 + ldr r0, _080B7E68 @ =gBattle_BG1_Y + ldrh r0, [r0] + strh r0, [r5, 0x1C] + ldr r1, _080B7E6C @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + ldrb r1, [r4, 0x8] + lsls r1, 4 + movs r0, 0 + movs r2, 0x20 + bl FillPalette + ldr r0, _080B7E70 @ =0x04000016 + str r0, [sp] + movs r7, 0x2 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B7EA8 + ldr r1, _080B7E74 @ =gBattle_BG2_X + b _080B7EA2 + .align 2, 0 +_080B7E60: .4byte 0x0000ffc0 +_080B7E64: .4byte gBattleAnimAttacker +_080B7E68: .4byte gBattle_BG1_Y +_080B7E6C: .4byte 0x00003f42 +_080B7E70: .4byte 0x04000016 +_080B7E74: .4byte gBattle_BG2_X +_080B7E78: + ldr r0, _080B7F30 @ =gBattle_BG2_Y + ldrh r0, [r0] + strh r0, [r5, 0x1C] + ldr r1, _080B7F34 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0 + movs r1, 0x90 + movs r2, 0x20 + bl FillPalette + ldr r0, _080B7F38 @ =0x0400001a + str r0, [sp] + movs r7, 0x4 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B7EA8 + ldr r1, _080B7F3C @ =gBattle_BG1_X +_080B7EA2: + ldrh r0, [r1] + adds r0, 0xF0 + strh r0, [r1] +_080B7EA8: + ldr r0, _080B7F40 @ =0xa2600001 + str r0, [sp, 0x4] + mov r2, sp + movs r1, 0 + movs r0, 0x1 + strb r0, [r2, 0x8] + mov r0, sp + strb r1, [r0, 0x9] + strh r1, [r5, 0x1E] + movs r0, 0x10 + strh r0, [r5, 0x20] + strh r1, [r5, 0x8] + strh r1, [r5, 0xA] + strh r1, [r5, 0xC] + movs r0, 0x3 + bl sub_80B856C + movs r3, 0 + ldr r4, _080B7F44 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r4, r0 +_080B7ED4: + lsls r1, r3, 1 + adds r2, r1, r4 + ldrh r0, [r5, 0x1C] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r5, 0x1C] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6F + bls _080B7ED4 + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + movs r0, 0x3F + eors r7, r0 + movs r1, 0xFC + lsls r1, 6 + adds r0, r1, 0 + orrs r7, r0 + movs r0, 0x4A + adds r1, r7, 0 + bl SetGpuReg + ldr r1, _080B7F48 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r2, _080B7F4C @ =gUnknown_2022984 + ldrh r0, [r5, 0x24] + lsls r0, 8 + ldrh r1, [r5, 0x26] + orrs r0, r1 + strh r0, [r2] + ldr r1, _080B7F50 @ =gUnknown_2022986 + movs r0, 0xA0 + strh r0, [r1] + ldr r0, _080B7F54 @ =sub_80B7F58 + str r0, [r5] + add sp, 0x1C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B7F30: .4byte gBattle_BG2_Y +_080B7F34: .4byte 0x00003f44 +_080B7F38: .4byte 0x0400001a +_080B7F3C: .4byte gBattle_BG1_X +_080B7F40: .4byte 0xa2600001 +_080B7F44: .4byte gScanlineEffectRegBuffers +_080B7F48: .4byte 0x00003f3f +_080B7F4C: .4byte gUnknown_2022984 +_080B7F50: .4byte gUnknown_2022986 +_080B7F54: .4byte sub_80B7F58 + thumb_func_end sub_80B7DA4 + + thumb_func_start sub_80B7F58 +sub_80B7F58: @ 80B7F58 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B7F7C @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080B7F72 + b _080B806A +_080B7F72: + lsls r0, 2 + ldr r1, _080B7F80 @ =_080B7F84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B7F7C: .4byte gTasks +_080B7F80: .4byte _080B7F84 + .align 2, 0 +_080B7F84: + .4byte _080B7F98 + .4byte _080B7FFA + .4byte _080B8014 + .4byte _080B8050 + .4byte _080B8064 +_080B7F98: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B806A + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B7FC8 + ldrh r1, [r4, 0x1E] + movs r2, 0x1E + ldrsh r0, [r4, r2] + cmp r0, 0xC + beq _080B7FD6 + adds r0, r1, 0x1 + strh r0, [r4, 0x1E] + b _080B7FD6 +_080B7FC8: + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + beq _080B7FD6 + subs r0, r1, 0x1 + strh r0, [r4, 0x20] +_080B7FD6: + ldrh r1, [r4, 0x20] + lsls r1, 8 + ldrh r0, [r4, 0x1E] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0xC + bne _080B806A + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + bne _080B806A + b _080B8056 +_080B7FFA: + ldrh r0, [r4, 0x10] + subs r0, 0x8 + strh r0, [r4, 0x10] + adds r0, r4, 0 + bl sub_80B843C + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r1, r0 + bge _080B806A + b _080B8056 +_080B8014: + ldrh r0, [r4, 0x10] + subs r0, 0x8 + strh r0, [r4, 0x10] + adds r0, r4, 0 + bl sub_80B843C + ldrh r1, [r4, 0x24] + adds r1, 0x4 + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x26] + subs r2, r0, 0x4 + strh r2, [r4, 0x26] + lsls r1, 16 + lsls r0, r2, 16 + cmp r1, r0 + blt _080B8036 + strh r2, [r4, 0x24] +_080B8036: + ldr r3, _080B804C @ =gUnknown_2022984 + ldrh r2, [r4, 0x24] + lsls r0, r2, 8 + ldrh r1, [r4, 0x26] + orrs r0, r1 + strh r0, [r3] + lsls r2, 16 + lsls r1, 16 + cmp r2, r1 + bne _080B806A + b _080B8056 + .align 2, 0 +_080B804C: .4byte gUnknown_2022984 +_080B8050: + ldr r1, _080B8060 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_080B8056: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B806A + .align 2, 0 +_080B8060: .4byte gScanlineEffect +_080B8064: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B806A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B7F58 + + thumb_func_start sub_80B8070 +sub_80B8070: @ 80B8070 + push {r4-r7,lr} + sub sp, 0x1C + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080B8098 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080B808C + b _080B829E +_080B808C: + lsls r0, 2 + ldr r1, _080B809C @ =_080B80A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B8098: .4byte gTasks +_080B809C: .4byte _080B80A0 + .align 2, 0 +_080B80A0: + .4byte _080B80B4 + .4byte _080B8138 + .4byte _080B817C + .4byte _080B81E8 + .4byte _080B8250 +_080B80B4: + bl sub_8073788 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B80F0 + ldr r0, _080B80E4 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080B80E8 @ =gUnknown_2022986 + strh r1, [r0] + ldr r4, _080B80EC @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + adds r0, r6, 0 + bl DestroyAnimVisualTask + b _080B829E + .align 2, 0 +_080B80E4: .4byte gUnknown_2022984 +_080B80E8: .4byte gUnknown_2022986 +_080B80EC: .4byte 0x00003f3f +_080B80F0: + ldr r0, _080B8110 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + cmp r0, 0x1 + bne _080B811C + ldr r1, _080B8114 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + ldr r1, _080B8118 @ =gBattle_BG2_X + b _080B8126 + .align 2, 0 +_080B8110: .4byte gBattleAnimTarget +_080B8114: .4byte 0x00003f42 +_080B8118: .4byte gBattle_BG2_X +_080B811C: + ldr r1, _080B8130 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg + ldr r1, _080B8134 @ =gBattle_BG1_X +_080B8126: + ldrh r0, [r1] + adds r0, 0xF0 + strh r0, [r1] + b _080B823C + .align 2, 0 +_080B8130: .4byte 0x00003f44 +_080B8134: .4byte gBattle_BG1_X +_080B8138: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080B8160 + mov r0, sp + bl sub_80752A0 + ldr r0, _080B815C @ =gBattle_BG1_Y + ldrh r0, [r0] + strh r0, [r5, 0x1C] + mov r0, sp + ldrb r1, [r0, 0x8] + lsls r1, 4 + movs r0, 0 + movs r2, 0x20 + bl FillPalette + b _080B8170 + .align 2, 0 +_080B815C: .4byte gBattle_BG1_Y +_080B8160: + ldr r0, _080B8178 @ =gBattle_BG2_Y + ldrh r0, [r0] + strh r0, [r5, 0x1C] + movs r0, 0 + movs r1, 0x90 + movs r2, 0x20 + bl FillPalette +_080B8170: + movs r0, 0x3 + bl sub_80B856C + b _080B823C + .align 2, 0 +_080B8178: .4byte gBattle_BG2_Y +_080B817C: + ldr r4, _080B81C8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1F + movs r6, 0 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + subs r0, 0x7 + strh r0, [r5, 0x14] + ldrh r1, [r5, 0x16] + subs r1, r0 + lsls r1, 8 + strh r1, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + subs r1, r0, 0x4 + strh r1, [r5, 0x24] + adds r0, 0x4 + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B81D0 + ldr r0, _080B81CC @ =0x0000fff4 + b _080B81D2 + .align 2, 0 +_080B81C8: .4byte gBattleAnimTarget +_080B81CC: .4byte 0x0000fff4 +_080B81D0: + ldr r0, _080B81E4 @ =0x0000ffc0 +_080B81D2: + strh r0, [r5, 0x18] + ldrh r0, [r5, 0x18] + strh r0, [r5, 0x10] + strh r0, [r5, 0x12] + movs r0, 0xC + strh r0, [r5, 0x1E] + movs r0, 0x8 + strh r0, [r5, 0x20] + b _080B823C + .align 2, 0 +_080B81E4: .4byte 0x0000ffc0 +_080B81E8: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080B81F8 + ldr r0, _080B81F4 @ =0x04000016 + b _080B81FA + .align 2, 0 +_080B81F4: .4byte 0x04000016 +_080B81F8: + ldr r0, _080B8244 @ =0x0400001a +_080B81FA: + str r0, [sp, 0x10] + movs r3, 0 + add r4, sp, 0x10 + ldr r6, _080B8248 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r7, r6, r0 +_080B8208: + lsls r1, r3, 1 + adds r2, r1, r6 + ldrh r0, [r5, 0x1C] + adds r0, 0x9F + subs r0, r3 + strh r0, [r2] + adds r1, r7 + ldrh r0, [r5, 0x1C] + adds r0, 0x9F + subs r0, r3 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6F + bls _080B8208 + ldr r1, _080B824C @ =0xa2600001 + str r1, [r4, 0x4] + movs r2, 0 + movs r0, 0x1 + strb r0, [r4, 0x8] + strb r2, [r4, 0x9] + ldr r0, [sp, 0x10] + ldr r2, [r4, 0x8] + bl ScanlineEffect_SetParams +_080B823C: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080B829E + .align 2, 0 +_080B8244: .4byte 0x0400001a +_080B8248: .4byte gScanlineEffectRegBuffers +_080B824C: .4byte 0xa2600001 +_080B8250: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080B8268 + ldr r1, _080B8264 @ =0x00003f3d + movs r0, 0x4A + bl SetGpuReg + b _080B8270 + .align 2, 0 +_080B8264: .4byte 0x00003f3d +_080B8268: + ldr r1, _080B82A8 @ =0x00003f3b + movs r0, 0x4A + bl SetGpuReg +_080B8270: + ldr r1, _080B82AC @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r2, _080B82B0 @ =gUnknown_2022984 + ldrh r0, [r5, 0x24] + lsls r0, 8 + ldrh r1, [r5, 0x26] + orrs r0, r1 + strh r0, [r2] + ldr r1, _080B82B4 @ =gUnknown_2022986 + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0 + strh r0, [r5, 0x8] + strh r0, [r5, 0xA] + strh r0, [r5, 0xC] + ldr r1, _080B82B8 @ =0x0000080c + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080B82BC @ =sub_80B82C0 + str r0, [r5] +_080B829E: + add sp, 0x1C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B82A8: .4byte 0x00003f3b +_080B82AC: .4byte 0x00003f3f +_080B82B0: .4byte gUnknown_2022984 +_080B82B4: .4byte gUnknown_2022986 +_080B82B8: .4byte 0x0000080c +_080B82BC: .4byte sub_80B82C0 + thumb_func_end sub_80B8070 + + thumb_func_start sub_80B82C0 +sub_80B82C0: @ 80B82C0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B82E4 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080B82DA + b _080B842A +_080B82DA: + lsls r0, 2 + ldr r1, _080B82E8 @ =_080B82EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B82E4: .4byte gTasks +_080B82E8: .4byte _080B82EC + .align 2, 0 +_080B82EC: + .4byte _080B8300 + .4byte _080B832C + .4byte _080B8394 + .4byte _080B83F6 + .4byte _080B8408 +_080B8300: + ldrh r0, [r4, 0x12] + adds r0, 0x8 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r4, 0x16] + movs r3, 0x16 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080B8316 + strh r2, [r4, 0x12] +_080B8316: + adds r0, r4, 0 + bl sub_80B843C + movs r0, 0x12 + ldrsh r1, [r4, r0] + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _080B832A + b _080B842A +_080B832A: + b _080B83FC +_080B832C: + movs r3, 0x26 + ldrsh r0, [r4, r3] + movs r2, 0x24 + ldrsh r1, [r4, r2] + subs r0, r1 + cmp r0, 0x3F + bgt _080B8348 + ldrh r0, [r4, 0x24] + subs r0, 0x4 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + adds r0, 0x4 + strh r0, [r4, 0x26] + b _080B834C +_080B8348: + movs r0, 0x1 + strh r0, [r4, 0xA] +_080B834C: + ldr r2, _080B8390 @ =gUnknown_2022984 + ldrh r0, [r4, 0x24] + lsls r0, 8 + ldrh r1, [r4, 0x26] + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, 0x10] + adds r0, 0x8 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r4, 0x14] + movs r3, 0x14 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080B836E + strh r2, [r4, 0x10] +_080B836E: + adds r0, r4, 0 + bl sub_80B843C + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080B842A + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080B842A + movs r0, 0 + strh r0, [r4, 0xA] + b _080B83FC + .align 2, 0 +_080B8390: .4byte gUnknown_2022984 +_080B8394: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B842A + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B83C4 + ldrh r1, [r4, 0x1E] + movs r2, 0x1E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B83D2 + subs r0, r1, 0x1 + strh r0, [r4, 0x1E] + b _080B83D2 +_080B83C4: + ldrh r1, [r4, 0x20] + movs r3, 0x20 + ldrsh r0, [r4, r3] + cmp r0, 0xF + bgt _080B83D2 + adds r0, r1, 0x1 + strh r0, [r4, 0x20] +_080B83D2: + ldrh r1, [r4, 0x20] + lsls r1, 8 + ldrh r0, [r4, 0x1E] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B842A + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bne _080B842A + b _080B83FC +_080B83F6: + ldr r1, _080B8404 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_080B83FC: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B842A + .align 2, 0 +_080B8404: .4byte gScanlineEffect +_080B8408: + ldr r0, _080B8430 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080B8434 @ =gUnknown_2022986 + strh r1, [r0] + ldr r4, _080B8438 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B842A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8430: .4byte gUnknown_2022984 +_080B8434: .4byte gUnknown_2022986 +_080B8438: .4byte 0x00003f3f + thumb_func_end sub_80B82C0 + + thumb_func_start sub_80B843C +sub_80B843C: @ 80B843C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldrh r0, [r6, 0x12] + ldrh r4, [r6, 0x10] + subs r0, r4 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + beq _080B8530 + movs r2, 0x22 + ldrsh r0, [r6, r2] + bl __divsi3 + mov r8, r0 + movs r3, 0x14 + ldrsh r0, [r6, r3] + lsls r5, r0, 8 + lsls r0, r4, 16 + movs r4, 0 + cmp r0, 0 + ble _080B849C + ldr r0, _080B8528 @ =gScanlineEffectRegBuffers + mov r12, r0 + ldr r7, _080B852C @ =gScanlineEffect +_080B8470: + lsls r2, r4, 16 + asrs r2, 16 + lsls r3, r2, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r3, r0 + add r3, r12 + adds r1, r2, 0 + subs r1, 0x9F + ldrh r0, [r6, 0x1C] + subs r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r4, r2, 16 + asrs r2, 16 + movs r1, 0x10 + ldrsh r0, [r6, r1] + cmp r2, r0 + blt _080B8470 +_080B849C: + ldrh r4, [r6, 0x10] + lsls r3, r4, 16 + asrs r1, r3, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + cmp r1, r0 + bgt _080B84E6 + ldr r0, _080B8528 @ =gScanlineEffectRegBuffers + mov r12, r0 + ldr r7, _080B852C @ =gScanlineEffect +_080B84B0: + asrs r4, r3, 16 + cmp r4, 0 + blt _080B84D2 + asrs r1, r5, 8 + subs r1, r4 + lsls r3, r4, 1 + ldrb r2, [r7, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + add r3, r12 + lsls r1, 16 + asrs r1, 16 + ldrh r2, [r6, 0x1C] + adds r1, r2 + strh r1, [r3] +_080B84D2: + add r5, r8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r3, r4, 16 + asrs r1, r3, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080B84B0 +_080B84E6: + movs r3, 0x1C + ldrsh r0, [r6, r3] + adds r0, 0x9F + lsls r2, r4, 16 + asrs r1, r2, 16 + subs r5, r0, r1 + movs r3, 0x16 + ldrsh r0, [r6, r3] + cmp r1, r0 + bge _080B855E + ldr r7, _080B8528 @ =gScanlineEffectRegBuffers + ldr r4, _080B852C @ =gScanlineEffect +_080B84FE: + asrs r3, r2, 16 + cmp r3, 0 + blt _080B8516 + lsls r2, r3, 1 + ldrb r1, [r4, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + strh r5, [r2] + subs r5, 0x1 +_080B8516: + adds r0, r3, 0x1 + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r3, 0x16 + ldrsh r0, [r6, r3] + cmp r1, r0 + blt _080B84FE + b _080B855E + .align 2, 0 +_080B8528: .4byte gScanlineEffectRegBuffers +_080B852C: .4byte gScanlineEffect +_080B8530: + movs r1, 0x1C + ldrsh r0, [r6, r1] + adds r5, r0, 0 + adds r5, 0x9F + movs r4, 0 + ldr r3, _080B8568 @ =gScanlineEffectRegBuffers + movs r2, 0xF0 + lsls r2, 3 + adds r6, r3, r2 +_080B8542: + lsls r0, r4, 16 + asrs r0, 16 + lsls r2, r0, 1 + adds r1, r2, r3 + strh r5, [r1] + adds r2, r6 + strh r5, [r2] + subs r5, 0x1 + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x6F + ble _080B8542 +_080B855E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8568: .4byte gScanlineEffectRegBuffers + thumb_func_end sub_80B843C + + thumb_func_start sub_80B856C +sub_80B856C: @ 80B856C + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + ldr r7, _080B85B4 @ =gSprites + movs r1, 0x3 + ands r0, r1 + lsls r5, r0, 2 + movs r0, 0xD + negs r0, r0 + adds r6, r0, 0 +_080B8582: + lsls r0, r4, 24 + lsrs r0, 24 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080B85A2 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r0, [r1, 0x5] + ands r0, r6 + orrs r0, r5 + strb r0, [r1, 0x5] +_080B85A2: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080B8582 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B85B4: .4byte gSprites + thumb_func_end sub_80B856C + + thumb_func_start sub_80B85B8 +sub_80B85B8: @ 80B85B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r6, _080B8658 @ =gBattleAnimAttacker + ldrb r0, [r6] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r4, r1, 31 + ldrb r0, [r6] + adds r1, r4, 0 + bl sub_8072E48 + ldr r0, _080B865C @ =gSprites + mov r9, r0 + ldr r0, _080B8660 @ =gBattlerSpriteIds + mov r8, r0 + ldrb r0, [r6] + add r0, r8 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + adds r1, 0x3E + ldrb r2, [r1] + movs r7, 0x5 + negs r7, r7 + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r6] + movs r5, 0x2 + eors r0, r5 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B8642 + ldrb r0, [r6] + eors r0, r5 + movs r1, 0x1 + eors r4, r1 + adds r1, r4, 0 + bl sub_8072E48 + ldrb r0, [r6] + eors r0, r5 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r7, 0 + ands r1, r2 + strb r1, [r0] +_080B8642: + mov r0, r10 + bl DestroyAnimVisualTask + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8658: .4byte gBattleAnimAttacker +_080B865C: .4byte gSprites +_080B8660: .4byte gBattlerSpriteIds + thumb_func_end sub_80B85B8 + + thumb_func_start sub_80B8664 +sub_80B8664: @ 80B8664 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _080B86AC @ =gBattleAnimAttacker + ldrb r0, [r4] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r5, 0 + bl sub_8073128 + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B86A0 + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_8073128 +_080B86A0: + adds r0, r6, 0 + bl DestroyAnimVisualTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B86AC: .4byte gBattleAnimAttacker + thumb_func_end sub_80B8664 + + thumb_func_start sub_80B86B0 +sub_80B86B0: @ 80B86B0 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080B86E0 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrb r1, [r1, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080B86E4 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldr r1, _080B86E8 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B86E0: .4byte gBattleAnimArgs +_080B86E4: .4byte sub_8074F6C +_080B86E8: .4byte DestroyAnimSprite + thumb_func_end sub_80B86B0 + + thumb_func_start sub_80B86EC +sub_80B86EC: @ 80B86EC + push {r4-r7,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + ldr r0, _080B87EC @ =gUnknown_2022984 + strh r6, [r0] + ldr r0, _080B87F0 @ =gUnknown_2022986 + strh r6, [r0] + ldr r1, _080B87F4 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080B87F8 @ =0x00003f3d + movs r0, 0x4A + bl SetGpuReg + movs r1, 0x80 + lsls r1, 8 + movs r0, 0 + bl SetGpuRegBits + ldr r1, _080B87FC @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + ldr r1, _080B8800 @ =0x00000c08 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B8750 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080B8750: + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080B87CA + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B87CA + ldr r4, _080B8804 @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080B8780 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, 24 + cmp r0, 0 + bne _080B87CA +_080B8780: + ldrb r0, [r4] + movs r5, 0x2 + eors r0, r5 + bl sub_8072DF0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B87CA + ldr r3, _080B8808 @ =gSprites + ldr r1, _080B880C @ =gBattlerSpriteIds + ldrb r0, [r4] + eors r0, r5 + adds r0, r1 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r6, 0x1 +_080B87CA: + ldr r4, _080B8804 @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B8818 + ldr r1, _080B8810 @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080B8814 @ =gEnemyParty + b _080B8828 + .align 2, 0 +_080B87EC: .4byte gUnknown_2022984 +_080B87F0: .4byte gUnknown_2022986 +_080B87F4: .4byte 0x00003f3f +_080B87F8: .4byte 0x00003f3d +_080B87FC: .4byte 0x00003f42 +_080B8800: .4byte 0x00000c08 +_080B8804: .4byte gBattleAnimAttacker +_080B8808: .4byte gSprites +_080B880C: .4byte gBattlerSpriteIds +_080B8810: .4byte gBattlerPartyIndexes +_080B8814: .4byte gEnemyParty +_080B8818: + ldr r1, _080B88B8 @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080B88BC @ =gPlayerParty +_080B8828: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + movs r0, 0 + bl GetAnimBankSpriteId + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B88C0 @ =gBattleAnimAttacker + ldrb r0, [r0] + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8076E34 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080B88C4 @ =gFile_graphics_battle_anims_masks_metal_shine_tilemap + bl sub_807543C + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080B88C8 @ =gFile_graphics_battle_anims_masks_metal_shine_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080B88CC @ =gFile_graphics_battle_anims_masks_metal_shine_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r2, _080B88D0 @ =gBattle_BG1_X + ldr r0, _080B88D4 @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x20] + negs r0, r0 + adds r0, 0x60 + strh r0, [r2] + ldr r2, _080B88D8 @ =gBattle_BG1_Y + ldrh r0, [r1, 0x22] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldrb r0, [r1, 0x5] + lsrs r0, 4 + adds r0, 0x10 + adds r1, r0, 0 + ldr r2, _080B88DC @ =gBattleAnimArgs + movs r3, 0x2 + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080B88E0 + adds r0, r1, 0 + movs r1, 0 + bl sub_8075B48 + b _080B88EC + .align 2, 0 +_080B88B8: .4byte gBattlerPartyIndexes +_080B88BC: .4byte gPlayerParty +_080B88C0: .4byte gBattleAnimAttacker +_080B88C4: .4byte gFile_graphics_battle_anims_masks_metal_shine_tilemap +_080B88C8: .4byte gFile_graphics_battle_anims_masks_metal_shine_sheet +_080B88CC: .4byte gFile_graphics_battle_anims_masks_metal_shine_palette +_080B88D0: .4byte gBattle_BG1_X +_080B88D4: .4byte gSprites +_080B88D8: .4byte gBattle_BG1_Y +_080B88DC: .4byte gBattleAnimArgs +_080B88E0: + lsls r0, r1, 4 + ldrh r3, [r2, 0x4] + movs r1, 0x10 + movs r2, 0xB + bl BlendPalette +_080B88EC: + ldr r1, _080B8914 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + ldr r2, _080B8918 @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0xA] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0xC] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0xE] + strh r6, [r0, 0x14] + ldr r1, _080B891C @ =sub_80B8920 + str r1, [r0] + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8914: .4byte gTasks +_080B8918: .4byte gBattleAnimArgs +_080B891C: .4byte sub_80B8920 + thumb_func_end sub_80B86EC + + thumb_func_start sub_80B8920 +sub_80B8920: @ 80B8920 + push {r4-r6,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080B89E8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x1C] + adds r0, 0x4 + movs r5, 0 + strh r0, [r4, 0x1C] + ldr r2, _080B89EC @ =gBattle_BG1_X + ldrh r3, [r2] + subs r1, r3, 0x4 + strh r1, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x80 + beq _080B894E + b _080B8A5E +_080B894E: + strh r5, [r4, 0x1C] + adds r0, r3, 0 + adds r0, 0x7C + strh r0, [r2] + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080B89FC + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080B89F0 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x5] + lsrs r0, 4 + adds r0, 0x10 + adds r1, r0, 0 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B8990 + adds r0, r1, 0 + movs r1, 0x1 + bl sub_8075B48 +_080B8990: + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + bl sub_8075358 + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080B8A5E + ldr r2, _080B89F4 @ =gBattlerSpriteIds + ldr r0, _080B89F8 @ =gBattleAnimAttacker + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + adds r0, r2 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + b _080B8A5E + .align 2, 0 +_080B89E8: .4byte gTasks +_080B89EC: .4byte gBattle_BG1_X +_080B89F0: .4byte gSprites +_080B89F4: .4byte gBattlerSpriteIds +_080B89F8: .4byte gBattleAnimAttacker +_080B89FC: + cmp r0, 0x3 + bne _080B8A5E + ldr r0, _080B8A68 @ =gUnknown_2022984 + strh r5, [r0] + ldr r0, _080B8A6C @ =gUnknown_2022986 + strh r5, [r0] + ldr r4, _080B8A70 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B8A2E + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080B8A2E: + movs r0, 0 + bl GetGpuReg + adds r1, r0, 0 + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + eors r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080B8A5E: + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B8A68: .4byte gUnknown_2022984 +_080B8A6C: .4byte gUnknown_2022986 +_080B8A70: .4byte 0x00003f3f + thumb_func_end sub_80B8920 + + thumb_func_start sub_80B8A74 +sub_80B8A74: @ 80B8A74 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080B8A94 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + adds r2, r0, 0 + cmp r1, 0x7 + bhi _080B8AD8 + lsls r0, r1, 2 + ldr r1, _080B8A98 @ =_080B8A9C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B8A94: .4byte gBattleAnimArgs +_080B8A98: .4byte _080B8A9C + .align 2, 0 +_080B8A9C: + .4byte _080B8ABC + .4byte _080B8ABC + .4byte _080B8ABC + .4byte _080B8ABC + .4byte _080B8AC8 + .4byte _080B8ACC + .4byte _080B8AD0 + .4byte _080B8AD4 +_080B8ABC: + ldrb r0, [r2] + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r2, r0, 24 + b _080B8ADA +_080B8AC8: + movs r4, 0 + b _080B8AE0 +_080B8ACC: + movs r4, 0x2 + b _080B8AE0 +_080B8AD0: + movs r4, 0x1 + b _080B8AE0 +_080B8AD4: + movs r4, 0x3 + b _080B8AE0 +_080B8AD8: + movs r2, 0xFF +_080B8ADA: + movs r0, 0 + cmp r0, 0 + beq _080B8B06 +_080B8AE0: + adds r0, r4, 0 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B8B04 + ldr r0, _080B8B00 @ =gBattlerSpriteIds + adds r0, r4, r0 + ldrb r2, [r0] + b _080B8B06 + .align 2, 0 +_080B8B00: .4byte gBattlerSpriteIds +_080B8B04: + movs r2, 0xFF +_080B8B06: + cmp r2, 0xFF + beq _080B8B22 + ldr r1, _080B8B30 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + ldr r1, _080B8B34 @ =gBattleAnimArgs + ldrb r1, [r1, 0x2] + bl sub_8075B48 +_080B8B22: + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8B30: .4byte gSprites +_080B8B34: .4byte gBattleAnimArgs + thumb_func_end sub_80B8A74 + + thumb_func_start sub_80B8B38 +sub_80B8B38: @ 80B8B38 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080B8B64 @ =gAnimMoveTurn + ldrb r0, [r2] + cmp r0, 0x1 + bhi _080B8B4C + ldr r1, _080B8B68 @ =gBattleAnimArgs + movs r0, 0 + strh r0, [r1, 0xE] +_080B8B4C: + ldrb r0, [r2] + cmp r0, 0x2 + bne _080B8B58 + ldr r1, _080B8B68 @ =gBattleAnimArgs + movs r0, 0x1 + strh r0, [r1, 0xE] +_080B8B58: + adds r0, r3, 0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080B8B64: .4byte gAnimMoveTurn +_080B8B68: .4byte gBattleAnimArgs + thumb_func_end sub_80B8B38 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/daycare.s b/asm/daycare.s deleted file mode 100644 index 3b7d7ffe0..000000000 --- a/asm/daycare.s +++ /dev/null @@ -1,3216 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GetMonNick -GetMonNick: @ 80453C0 - push {r4,lr} - sub sp, 0x14 - adds r4, r1, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - adds r0, r4, 0 - mov r1, sp - bl StringCopy10 - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetMonNick - - thumb_func_start GetBoxMonNick -GetBoxMonNick: @ 80453E0 - push {r4,lr} - sub sp, 0x14 - adds r4, r1, 0 - movs r1, 0x2 - mov r2, sp - bl GetBoxMonData - adds r0, r4, 0 - mov r1, sp - bl StringCopy10 - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetBoxMonNick - - thumb_func_start CountPokemonInDaycare -CountPokemonInDaycare: @ 8045400 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r4, 0 -_08045408: - movs r0, 0x8C - muls r0, r4 - adds r0, r6, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _0804541E - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0804541E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _08045408 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CountPokemonInDaycare - - thumb_func_start InitDaycareMailRecordMixing -InitDaycareMailRecordMixing: @ 8045430 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - mov r10, r1 - movs r7, 0 - movs r5, 0 - mov r6, r10 - adds r6, 0x74 - movs r0, 0x1 - mov r8, r0 -_0804544A: - movs r0, 0x8C - muls r0, r5 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08045478 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0xC - bl GetBoxMonData - adds r1, r0, 0 - cmp r1, 0 - bne _08045478 - lsls r0, r5, 1 - adds r0, r6, r0 - b _0804547E -_08045478: - lsls r0, r5, 1 - adds r0, r6, r0 - mov r1, r8 -_0804547E: - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0804544A - mov r0, r10 - str r7, [r0, 0x70] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end InitDaycareMailRecordMixing - - thumb_func_start Daycare_FindEmptySpot -Daycare_FindEmptySpot: @ 804549C - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_080454A2: - movs r0, 0x8C - muls r0, r4 - adds r0, r5, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _080454B8 - lsls r0, r4, 24 - asrs r0, 24 - b _080454C6 -_080454B8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _080454A2 - movs r0, 0x1 - negs r0, r0 -_080454C6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end Daycare_FindEmptySpot - - thumb_func_start StorePokemonInDaycare -StorePokemonInDaycare: @ 80454CC - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl MonHasMail - lsls r0, 24 - cmp r0, 0 - beq _08045524 - adds r0, r4, 0 - adds r0, 0x74 - ldr r1, _08045550 @ =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r1, r4, 0 - adds r1, 0x7C - adds r0, r5, 0 - bl GetMonNick - adds r0, r5, 0 - movs r1, 0x40 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08045554 @ =gSaveBlock1Ptr - ldr r1, [r1] - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - adds r1, r2 - adds r0, r4, 0 - adds r0, 0x50 - ldr r2, _08045558 @ =0x00002cd0 - adds r1, r2 - ldm r1!, {r2,r3,r6} - stm r0!, {r2,r3,r6} - ldm r1!, {r2,r3,r6} - stm r0!, {r2,r3,r6} - ldm r1!, {r2,r3,r6} - stm r0!, {r2,r3,r6} - adds r0, r5, 0 - bl TakeMailFromMon -_08045524: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - bl BoxMonRestorePP - adds r1, r4, 0 - adds r1, 0x88 - movs r0, 0 - str r0, [r1] - adds r0, r5, 0 - bl ZeroMonData - bl CompactPartySlots - bl CalculatePlayerPartyCount - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08045550: .4byte gSaveBlock2Ptr -_08045554: .4byte gSaveBlock1Ptr -_08045558: .4byte 0x00002cd0 - thumb_func_end StorePokemonInDaycare - - thumb_func_start StorePokemonInEmptyDaycareSlot -StorePokemonInEmptyDaycareSlot: @ 804555C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - bl Daycare_FindEmptySpot - lsls r0, 24 - asrs r0, 24 - movs r1, 0x8C - muls r0, r1 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - bl StorePokemonInDaycare - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end StorePokemonInEmptyDaycareSlot - - thumb_func_start StoreSelectedPokemonInDaycare -StoreSelectedPokemonInDaycare: @ 8045580 - push {lr} - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080455A4 @ =gPlayerParty - adds r0, r1 - ldr r1, _080455A8 @ =gSaveBlock1Ptr - ldr r1, [r1] - movs r2, 0xBE - lsls r2, 6 - adds r1, r2 - bl StorePokemonInEmptyDaycareSlot - pop {r0} - bx r0 - .align 2, 0 -_080455A4: .4byte gPlayerParty -_080455A8: .4byte gSaveBlock1Ptr - thumb_func_end StoreSelectedPokemonInDaycare - - thumb_func_start ShiftDaycareSlots -ShiftDaycareSlots: @ 80455AC - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x8C - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08045602 - adds r0, r5, 0 - movs r1, 0xB - bl GetBoxMonData - adds r6, r0, 0 - cmp r6, 0 - bne _08045602 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - bl ZeroBoxMonData - adds r4, 0x50 - adds r0, r5, 0 - adds r0, 0x50 - adds r1, r4, 0 - movs r2, 0x38 - bl memcpy - adds r2, r5, 0 - adds r2, 0x88 - movs r0, 0x8A - lsls r0, 1 - adds r1, r5, r0 - ldr r0, [r1] - str r0, [r2] - str r6, [r1] - adds r0, r4, 0 - bl ClearDaycareMonMisc -_08045602: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ShiftDaycareSlots - - thumb_func_start ApplyDaycareExperience -ApplyDaycareExperience: @ 8045608 - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 - ldr r7, _08045624 @ =0x0000ffff -_08045610: - adds r0, r4, 0 - bl sub_8043B90 - lsls r0, 24 - cmp r0, 0 - beq _0804564C - movs r6, 0x1 - adds r5, 0x1 - b _08045638 - .align 2, 0 -_08045624: .4byte 0x0000ffff -_08045628: - movs r6, 0 - cmp r0, r7 - bne _08045638 - ldr r0, _08045658 @ =gMoveToLearn - ldrh r1, [r0] - adds r0, r4, 0 - bl DeleteFirstMoveAndGiveMoveToMon -_08045638: - adds r0, r4, 0 - adds r1, r6, 0 - bl MonTryLearningNewMove - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _08045628 - cmp r5, 0x63 - ble _08045610 -_0804564C: - adds r0, r4, 0 - bl CalculateMonStats - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045658: .4byte gMoveToLearn - thumb_func_end ApplyDaycareExperience - - thumb_func_start TakeSelectedPokemonFromDaycare -TakeSelectedPokemonFromDaycare: @ 804565C - push {r4-r7,lr} - sub sp, 0x68 - adds r5, r0, 0 - ldr r1, _080456F8 @ =gStringVar1 - bl GetBoxMonNick - adds r0, r5, 0 - movs r1, 0xB - bl GetBoxMonData - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r5, 0 - mov r1, sp - bl BoxMonToMon - mov r0, sp - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - beq _080456AA - mov r0, sp - movs r1, 0x19 - bl GetMonData - adds r1, r5, 0 - adds r1, 0x88 - ldr r1, [r1] - adds r0, r1 - str r0, [sp, 0x64] - add r2, sp, 0x64 - mov r0, sp - movs r1, 0x19 - bl SetMonData - mov r0, sp - bl ApplyDaycareExperience -_080456AA: - ldr r0, _080456FC @ =gPlayerParty - movs r1, 0xFA - lsls r1, 1 - adds r6, r0, r1 - adds r0, r6, 0 - mov r1, sp - movs r2, 0x64 - bl memcpy - adds r0, r5, 0 - adds r0, 0x70 - ldrh r0, [r0] - cmp r0, 0 - beq _080456D8 - adds r4, r5, 0 - adds r4, 0x50 - adds r0, r6, 0 - adds r1, r4, 0 - bl GiveMailToMon2 - adds r0, r4, 0 - bl ClearDaycareMonMisc -_080456D8: - adds r0, r5, 0 - bl ZeroBoxMonData - adds r1, r5, 0 - adds r1, 0x88 - movs r0, 0 - str r0, [r1] - bl CompactPartySlots - bl CalculatePlayerPartyCount - adds r0, r7, 0 - add sp, 0x68 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080456F8: .4byte gStringVar1 -_080456FC: .4byte gPlayerParty - thumb_func_end TakeSelectedPokemonFromDaycare - - thumb_func_start TakeSelectedPokemonMonFromDaycareShiftSlots -TakeSelectedPokemonMonFromDaycareShiftSlots: @ 8045700 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x8C - muls r0, r1 - adds r0, r5, r0 - bl TakeSelectedPokemonFromDaycare - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ShiftDaycareSlots - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end TakeSelectedPokemonMonFromDaycareShiftSlots - - thumb_func_start TakePokemonFromDaycare -TakePokemonFromDaycare: @ 8045728 - push {lr} - ldr r0, _08045744 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - ldr r1, _08045748 @ =gSpecialVar_0x8004 - ldrb r1, [r1] - bl TakeSelectedPokemonMonFromDaycareShiftSlots - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_08045744: .4byte gSaveBlock1Ptr -_08045748: .4byte gSpecialVar_0x8004 - thumb_func_end TakePokemonFromDaycare - - thumb_func_start GetLevelAfterDaycareSteps -GetLevelAfterDaycareSteps: @ 804574C - push {r4,r5,lr} - sub sp, 0x54 - adds r4, r0, 0 - adds r5, r1, 0 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - movs r1, 0x19 - bl GetBoxMonData - adds r0, r5 - str r0, [sp, 0x50] - add r2, sp, 0x50 - mov r0, sp - movs r1, 0x19 - bl SetBoxMonData - mov r0, sp - bl GetLevelFromBoxMonExp - lsls r0, 24 - lsrs r0, 24 - add sp, 0x54 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetLevelAfterDaycareSteps - - thumb_func_start GetNumLevelsGainedFromSteps -GetNumLevelsGainedFromSteps: @ 8045788 - push {r4,r5,lr} - adds r5, r0, 0 - bl GetLevelFromBoxMonExp - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r0, 0x88 - ldr r1, [r0] - adds r0, r5, 0 - bl GetLevelAfterDaycareSteps - lsls r0, 24 - lsrs r0, 24 - subs r0, r4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetNumLevelsGainedFromSteps - - thumb_func_start GetNumLevelsGainedForDaycareMon -GetNumLevelsGainedForDaycareMon: @ 80457B4 - push {r4,r5,lr} - adds r5, r0, 0 - bl GetNumLevelsGainedFromSteps - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080457E0 @ =gStringVar2 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, _080457E4 @ =gStringVar1 - adds r0, r5, 0 - bl GetBoxMonNick - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080457E0: .4byte gStringVar2 -_080457E4: .4byte gStringVar1 - thumb_func_end GetNumLevelsGainedForDaycareMon - - thumb_func_start GetDaycareCostForSelectedMon -GetDaycareCostForSelectedMon: @ 80457E8 - push {r4,r5,lr} - adds r5, r0, 0 - bl GetNumLevelsGainedFromSteps - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _08045818 @ =gStringVar1 - adds r0, r5, 0 - bl GetBoxMonNick - movs r0, 0x64 - muls r4, r0 - adds r4, 0x64 - ldr r0, _0804581C @ =gStringVar2 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08045818: .4byte gStringVar1 -_0804581C: .4byte gStringVar2 - thumb_func_end GetDaycareCostForSelectedMon - - thumb_func_start GetDaycareCostForMon -GetDaycareCostForMon: @ 8045820 - push {lr} - lsls r1, 24 - lsrs r1, 24 - movs r2, 0x8C - muls r1, r2 - adds r0, r1 - bl GetDaycareCostForSelectedMon - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end GetDaycareCostForMon - - thumb_func_start GetDaycareCost -GetDaycareCost: @ 8045838 - push {lr} - ldr r0, _08045854 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - ldr r1, _08045858 @ =gSpecialVar_0x8004 - ldrb r1, [r1] - bl GetDaycareCostForMon - ldr r1, _0804585C @ =gSpecialVar_0x8005 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08045854: .4byte gSaveBlock1Ptr -_08045858: .4byte gSpecialVar_0x8004 -_0804585C: .4byte gSpecialVar_0x8005 - thumb_func_end GetDaycareCost - - thumb_func_start sub_8045860 -sub_8045860: @ 8045860 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08045888 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldr r1, _0804588C @ =0x00003008 - adds r3, r2, r1 - ldr r1, [r3] - adds r1, r0 - str r1, [r3] - ldr r1, _08045890 @ =0x00003094 - adds r3, r2, r1 - ldr r1, [r3] - adds r1, r0 - str r1, [r3] - ldr r1, _08045894 @ =0x00003d20 - adds r2, r1 - ldr r1, [r2] - adds r1, r0 - str r1, [r2] - bx lr - .align 2, 0 -_08045888: .4byte gSaveBlock1Ptr -_0804588C: .4byte 0x00003008 -_08045890: .4byte 0x00003094 -_08045894: .4byte 0x00003d20 - thumb_func_end sub_8045860 - - thumb_func_start GetNumLevelsGainedFromDaycare -GetNumLevelsGainedFromDaycare: @ 8045898 - push {r4-r6,lr} - ldr r6, _080458C0 @ =gSaveBlock1Ptr - ldr r5, _080458C4 @ =gSpecialVar_0x8004 - ldrh r0, [r5] - movs r4, 0x8C - adds r1, r0, 0 - muls r1, r4 - movs r0, 0xBE - lsls r0, 6 - adds r1, r0 - ldr r0, [r6] - adds r0, r1 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _080458C8 - movs r0, 0 - b _080458E0 - .align 2, 0 -_080458C0: .4byte gSaveBlock1Ptr -_080458C4: .4byte gSpecialVar_0x8004 -_080458C8: - ldrh r0, [r5] - adds r1, r0, 0 - muls r1, r4 - movs r0, 0xBE - lsls r0, 6 - adds r1, r0 - ldr r0, [r6] - adds r0, r1 - bl GetNumLevelsGainedForDaycareMon - lsls r0, 24 - lsrs r0, 24 -_080458E0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetNumLevelsGainedFromDaycare - - thumb_func_start ClearDaycareMonMisc -ClearDaycareMonMisc: @ 80458E8 - push {lr} - movs r3, 0 - movs r2, 0x7 - adds r1, r0, 0 - adds r1, 0x2B -_080458F2: - strb r3, [r1] - subs r1, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _080458F2 - adds r2, r0, 0 - adds r2, 0x2C - movs r3, 0 - adds r1, r0, 0 - adds r1, 0x36 -_08045906: - strb r3, [r1] - subs r1, 0x1 - cmp r1, r2 - bge _08045906 - bl ClearMailStruct - pop {r0} - bx r0 - thumb_func_end ClearDaycareMonMisc - - thumb_func_start ClearDaycareMon -ClearDaycareMon: @ 8045918 - push {r4,lr} - adds r4, r0, 0 - bl ZeroBoxMonData - adds r1, r4, 0 - adds r1, 0x88 - movs r0, 0 - str r0, [r1] - adds r4, 0x50 - adds r0, r4, 0 - bl ClearDaycareMonMisc - pop {r4} - pop {r0} - bx r0 - thumb_func_end ClearDaycareMon - - thumb_func_start ClearAllDaycareData -ClearAllDaycareData: @ 8045938 - push {r4-r6,lr} - adds r5, r0, 0 - movs r4, 0 - movs r6, 0x8C -_08045940: - adds r0, r4, 0 - muls r0, r6 - adds r0, r5, r0 - bl ClearDaycareMon - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _08045940 - movs r1, 0x8C - lsls r1, 1 - adds r0, r5, r1 - movs r2, 0 - movs r1, 0 - strh r1, [r0] - movs r1, 0x8D - lsls r1, 1 - adds r0, r5, r1 - strb r2, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ClearAllDaycareData - - thumb_func_start sub_8045970 -sub_8045970: @ 8045970 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0 - mov r8, r0 - ldr r0, _0804599C @ =gEvolutionTable - mov r12, r0 -_08045982: - movs r7, 0 - movs r6, 0x1 - movs r4, 0x80 - lsls r4, 9 - movs r5, 0x28 - mov r3, r12 - adds r3, 0x28 -_08045990: - movs r1, 0 - ldrh r0, [r3, 0x4] - cmp r0, r2 - bne _080459A0 - lsrs r2, r4, 16 - b _080459CC - .align 2, 0 -_0804599C: .4byte gEvolutionTable -_080459A0: - adds r1, 0x1 - cmp r1, 0x4 - bgt _080459B6 - lsls r0, r1, 3 - adds r0, r5 - add r0, r12 - ldrh r0, [r0, 0x4] - cmp r0, r2 - bne _080459A0 - lsrs r2, r4, 16 - movs r7, 0x1 -_080459B6: - cmp r7, 0 - bne _080459CC - movs r0, 0x80 - lsls r0, 9 - adds r4, r0 - adds r5, 0x28 - adds r3, 0x28 - adds r6, 0x1 - ldr r0, _080459EC @ =0x0000019b - cmp r6, r0 - ble _08045990 -_080459CC: - movs r0, 0xCE - lsls r0, 1 - cmp r6, r0 - beq _080459DE - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x4 - ble _08045982 -_080459DE: - adds r0, r2, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080459EC: .4byte 0x0000019b - thumb_func_end sub_8045970 - - thumb_func_start sub_80459F0 -sub_80459F0: @ 80459F0 - push {r4,lr} - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08045A18 @ =0x0000fffe - bl __umodsi3 - adds r0, 0x1 - movs r1, 0x8C - lsls r1, 1 - adds r4, r1 - strh r0, [r4] - ldr r0, _08045A1C @ =0x00000266 - bl FlagSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08045A18: .4byte 0x0000fffe -_08045A1C: .4byte 0x00000266 - thumb_func_end sub_80459F0 - - thumb_func_start sub_8045A20 -sub_8045A20: @ 8045A20 - push {r4,lr} - adds r4, r0, 0 - bl Random - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - movs r2, 0x8C - lsls r2, 1 - adds r4, r2 - orrs r1, r0 - strh r1, [r4] - ldr r0, _08045A44 @ =0x00000266 - bl FlagSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08045A44: .4byte 0x00000266 - thumb_func_end sub_8045A20 - - thumb_func_start sub_8045A48 -sub_8045A48: @ 8045A48 - push {lr} - ldr r0, _08045A5C @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl sub_80459F0 - pop {r0} - bx r0 - .align 2, 0 -_08045A5C: .4byte gSaveBlock1Ptr - thumb_func_end sub_8045A48 - - thumb_func_start sub_8045A60 -sub_8045A60: @ 8045A60 - push {lr} - ldr r0, _08045A74 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl sub_8045A20 - pop {r0} - bx r0 - .align 2, 0 -_08045A74: .4byte gSaveBlock1Ptr - thumb_func_end sub_8045A60 - - thumb_func_start RemoveIVIndexFromList -RemoveIVIndexFromList: @ 8045A78 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r1, r4, r1 - movs r0, 0xFF - strb r0, [r1] - movs r2, 0 -_08045A8A: - mov r1, sp - adds r0, r1, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x5 - ble _08045A8A - movs r3, 0 - movs r2, 0 -_08045A9E: - mov r1, sp - adds r0, r1, r2 - ldrb r1, [r0] - adds r0, r1, 0 - cmp r0, 0xFF - beq _08045AB0 - adds r0, r4, r3 - strb r1, [r0] - adds r3, 0x1 -_08045AB0: - adds r2, 0x1 - cmp r2, 0x5 - ble _08045A9E - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end RemoveIVIndexFromList - - thumb_func_start InheritIVs -InheritIVs: @ 8045AC0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r0 - mov r8, r1 - movs r5, 0 - add r1, sp, 0x4 - add r7, sp, 0xC - adds r2, r1, 0 -_08045AD6: - adds r0, r2, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08045AD6 - movs r5, 0 - adds r6, r1, 0 -_08045AE8: - bl Random - mov r1, sp - adds r4, r1, r5 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - subs r1, r5 - bl __modsi3 - adds r0, r6, r0 - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r4] - adds r0, r6, 0 - bl RemoveIVIndexFromList - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08045AE8 - movs r5, 0 - movs r4, 0x1 -_08045B18: - bl Random - adds r1, r7, r5 - lsls r0, 16 - lsrs r0, 16 - ands r0, r4 - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08045B18 - movs r5, 0 -_08045B32: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _08045C0E - lsls r0, 2 - ldr r1, _08045B48 @ =_08045B4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08045B48: .4byte _08045B4C - .align 2, 0 -_08045B4C: - .4byte _08045B64 - .4byte _08045B82 - .4byte _08045B9C - .4byte _08045BB6 - .4byte _08045BD0 - .4byte _08045BF0 -_08045B64: - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x27 - bl GetBoxMonData - add r2, sp, 0x10 - strb r0, [r2] - mov r0, r9 - movs r1, 0x27 - bl SetMonData - b _08045C0E -_08045B82: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x28 - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x28 - b _08045BE8 -_08045B9C: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x29 - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x29 - b _08045BE8 -_08045BB6: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x2A - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x2A - b _08045BE8 -_08045BD0: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x2B - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x2B -_08045BE8: - adds r2, r4, 0 - bl SetMonData - b _08045C0E -_08045BF0: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x2C - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x2C - adds r2, r4, 0 - bl SetMonData -_08045C0E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08045B32 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end InheritIVs - - thumb_func_start GetEggMoves -GetEggMoves: @ 8045C28 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - movs r6, 0 - movs r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r5, _08045C50 @ =gUnknown_825EF0C - ldrh r1, [r5] - ldr r7, _08045C54 @ =0x00004e20 - adds r0, r3, r7 - cmp r1, r0 - bne _08045C58 - movs r4, 0x1 - b _08045C7A - .align 2, 0 -_08045C50: .4byte gUnknown_825EF0C -_08045C54: .4byte 0x00004e20 -_08045C58: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _08045CC4 @ =0x00000471 - ldr r5, _08045CC8 @ =gUnknown_825EF0C - cmp r2, r0 - bhi _08045C7A - lsls r0, r2, 1 - adds r0, r5 - ldrh r1, [r0] - ldr r7, _08045CCC @ =0x00004e20 - adds r0, r3, r7 - cmp r1, r0 - bne _08045C58 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_08045C7A: - movs r2, 0 - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r1, _08045CCC @ =0x00004e20 - cmp r0, r1 - bhi _08045CB6 - adds r7, r5, 0 - adds r3, r1, 0 -_08045C8C: - lsls r1, r2, 1 - add r1, r8 - adds r0, r4, r2 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x9 - bhi _08045CB6 - adds r0, r4, r2 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, r3 - bls _08045C8C -_08045CB6: - lsls r0, r6, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08045CC4: .4byte 0x00000471 -_08045CC8: .4byte gUnknown_825EF0C -_08045CCC: .4byte 0x00004e20 - thumb_func_end GetEggMoves - - thumb_func_start BuildEggMoveset -BuildEggMoveset: @ 8045CD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r7, r0, 0 - mov r10, r1 - mov r9, r2 - movs r0, 0 - str r0, [sp] - movs r6, 0 - ldr r5, _08045DD4 @ =gUnknown_2024580 - movs r2, 0 - ldr r4, _08045DD8 @ =gUnknown_202455C - ldr r3, _08045DDC @ =gUnknown_2024564 -_08045CF0: - lsls r1, r6, 1 - adds r0, r1, r5 - strh r2, [r0] - adds r0, r1, r4 - strh r2, [r0] - adds r1, r3 - strh r2, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08045CF0 - movs r6, 0 - ldr r2, _08045DE0 @ =gUnknown_202456C - movs r1, 0 -_08045D0E: - lsls r0, r6, 1 - adds r0, r2 - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x9 - bls _08045D0E - movs r6, 0 - ldr r2, _08045DE4 @ =gUnknown_20244F8 - movs r1, 0 -_08045D24: - lsls r0, r6, 1 - adds r0, r2 - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x31 - bls _08045D24 - adds r0, r7, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08045DE4 @ =gUnknown_20244F8 - bl GetLevelUpMovesBySpecies - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r6, 0 - ldr r1, _08045DD8 @ =gUnknown_202455C - mov r8, r1 -_08045D52: - adds r5, r6, 0 - adds r5, 0xD - mov r0, r10 - adds r1, r5, 0 - bl GetBoxMonData - lsls r4, r6, 1 - mov r2, r8 - adds r1, r4, r2 - strh r0, [r1] - mov r0, r9 - adds r1, r5, 0 - bl GetBoxMonData - ldr r1, _08045DD4 @ =gUnknown_2024580 - adds r4, r1 - strh r0, [r4] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08045D52 - ldr r1, _08045DE0 @ =gUnknown_202456C - adds r0, r7, 0 - bl GetEggMoves - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r6, 0 -_08045D8E: - ldr r0, _08045DD8 @ =gUnknown_202455C - lsls r1, r6, 1 - adds r2, r1, r0 - ldrh r1, [r2] - mov r9, r0 - cmp r1, 0 - beq _08045E04 - movs r5, 0 - cmp r5, r8 - bcs _08045DF6 - adds r4, r2, 0 - ldr r2, _08045DE8 @ =0x0000ffff -_08045DA6: - ldr r0, _08045DE0 @ =gUnknown_202456C - lsls r1, r5, 1 - adds r1, r0 - ldrh r0, [r4] - ldrh r1, [r1] - cmp r0, r1 - bne _08045DEC - adds r1, r0, 0 - adds r0, r7, 0 - str r2, [sp, 0x8] - bl GiveMoveToMon - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _08045DF6 - ldrh r1, [r4] - adds r0, r7, 0 - bl DeleteFirstMoveAndGiveMoveToMon - b _08045DF6 - .align 2, 0 -_08045DD4: .4byte gUnknown_2024580 -_08045DD8: .4byte gUnknown_202455C -_08045DDC: .4byte gUnknown_2024564 -_08045DE0: .4byte gUnknown_202456C -_08045DE4: .4byte gUnknown_20244F8 -_08045DE8: .4byte 0x0000ffff -_08045DEC: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _08045DA6 -_08045DF6: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, _08045F20 @ =gUnknown_202455C - mov r9, r3 - cmp r6, 0x3 - bls _08045D8E -_08045E04: - movs r6, 0 -_08045E06: - lsls r0, r6, 1 - mov r2, r9 - adds r1, r0, r2 - ldrh r1, [r1] - adds r2, r0, 0 - adds r6, 0x1 - mov r8, r6 - cmp r1, 0 - beq _08045E68 - movs r5, 0 - ldr r0, _08045F20 @ =gUnknown_202455C - adds r4, r2, r0 - ldr r6, _08045F24 @ =0x0000ffff - mov r9, r0 -_08045E22: - ldr r3, _08045F28 @ =0x00000121 - adds r0, r5, r3 - lsls r0, 16 - lsrs r0, 16 - bl ItemIdToBattleMoveId - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bne _08045E5E - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r7, 0 - bl CanMonLearnTMHM - cmp r0, 0 - beq _08045E5E - ldrh r1, [r4] - adds r0, r7, 0 - bl GiveMoveToMon - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bne _08045E5E - ldrh r1, [r4] - adds r0, r7, 0 - bl DeleteFirstMoveAndGiveMoveToMon -_08045E5E: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x39 - bls _08045E22 -_08045E68: - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08045E06 - movs r6, 0 - mov r2, r9 - ldrh r0, [r2] - ldr r3, _08045F2C @ =gUnknown_2024564 - mov r10, r3 - cmp r0, 0 - beq _08045ED2 - mov r4, r9 - ldr r0, _08045F30 @ =gUnknown_2024580 - mov r9, r0 - mov r12, r10 -_08045E88: - movs r5, 0 - lsls r2, r6, 1 - adds r6, 0x1 - mov r8, r6 - adds r3, r2, r4 -_08045E92: - lsls r0, r5, 1 - add r0, r9 - ldrh r2, [r3] - adds r1, r2, 0 - ldrh r0, [r0] - cmp r1, r0 - bne _08045EB4 - cmp r1, 0 - beq _08045EB4 - ldr r1, [sp] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 1 - add r1, r12 - strh r2, [r1] -_08045EB4: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _08045E92 - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bhi _08045ED2 - lsls r0, r6, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - bne _08045E88 -_08045ED2: - movs r6, 0 - mov r2, r10 - ldrh r0, [r2] - cmp r0, 0 - beq _08045F5C -_08045EDC: - movs r5, 0 - adds r3, r6, 0x1 - mov r8, r3 - ldr r0, [sp, 0x4] - cmp r5, r0 - bcs _08045F44 - ldr r2, _08045F24 @ =0x0000ffff -_08045EEA: - ldr r1, _08045F34 @ =gUnknown_20244F8 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - beq _08045F38 - lsls r0, r6, 1 - mov r3, r10 - adds r4, r0, r3 - ldrh r0, [r4] - cmp r0, r1 - bne _08045F38 - adds r1, r0, 0 - adds r0, r7, 0 - str r2, [sp, 0x8] - bl GiveMoveToMon - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _08045F44 - ldrh r1, [r4] - adds r0, r7, 0 - bl DeleteFirstMoveAndGiveMoveToMon - b _08045F44 - .align 2, 0 -_08045F20: .4byte gUnknown_202455C -_08045F24: .4byte 0x0000ffff -_08045F28: .4byte 0x00000121 -_08045F2C: .4byte gUnknown_2024564 -_08045F30: .4byte gUnknown_2024580 -_08045F34: .4byte gUnknown_20244F8 -_08045F38: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [sp, 0x4] - cmp r5, r0 - bcc _08045EEA -_08045F44: - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bhi _08045F5C - ldr r0, _08045F6C @ =gUnknown_2024564 - lsls r1, r6, 1 - adds r1, r0 - ldrh r1, [r1] - mov r10, r0 - cmp r1, 0 - bne _08045EDC -_08045F5C: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045F6C: .4byte gUnknown_2024564 - thumb_func_end BuildEggMoveset - - thumb_func_start RemoveEggFromDayCare -RemoveEggFromDayCare: @ 8045F70 - adds r3, r0, 0 - movs r1, 0x8C - lsls r1, 1 - adds r0, r3, r1 - movs r2, 0 - movs r1, 0 - strh r1, [r0] - movs r1, 0x8D - lsls r1, 1 - adds r0, r3, r1 - strb r2, [r0] - bx lr - thumb_func_end RemoveEggFromDayCare - - thumb_func_start RejectEggFromDayCare -RejectEggFromDayCare: @ 8045F88 - push {lr} - ldr r0, _08045F9C @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl RemoveEggFromDayCare - pop {r0} - bx r0 - .align 2, 0 -_08045F9C: .4byte gSaveBlock1Ptr - thumb_func_end RejectEggFromDayCare - - thumb_func_start sub_8045FA0 -sub_8045FA0: @ 8045FA0 - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrh r1, [r4] - movs r7, 0xB4 - lsls r7, 1 - cmp r1, r7 - beq _08045FB8 - movs r0, 0xAF - lsls r0, 1 - cmp r1, r0 - bne _08045FFA -_08045FB8: - adds r0, r5, 0 - movs r1, 0xC - bl GetBoxMonData - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r5, 0 - adds r0, 0x8C - movs r1, 0xC - bl GetBoxMonData - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r4] - cmp r0, r7 - bne _08045FE4 - cmp r6, 0xDD - beq _08045FE4 - cmp r2, 0xDD - beq _08045FE4 - movs r0, 0xCA - strh r0, [r4] -_08045FE4: - ldrh r1, [r4] - movs r0, 0xAF - lsls r0, 1 - cmp r1, r0 - bne _08045FFA - cmp r6, 0xDC - beq _08045FFA - cmp r2, 0xDC - beq _08045FFA - movs r0, 0xB7 - strh r0, [r4] -_08045FFA: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8045FA0 - - thumb_func_start sub_8046000 -sub_8046000: @ 8046000 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - adds r6, r1, 0 - movs r4, 0 - movs r7, 0x1 -_08046010: - movs r0, 0x8C - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetBoxMonData - lsls r1, r4, 1 - add r1, sp - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x84 - bne _08046038 - adds r0, r4, 0 - eors r0, r7 - strb r0, [r6] - strb r4, [r6, 0x1] - b _0804604E -_08046038: - adds r0, r5, 0 - bl GetBoxMonGender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFE - bne _0804604E - strb r4, [r6] - adds r0, r4, 0 - eors r0, r7 - strb r0, [r6, 0x1] -_0804604E: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08046010 - ldrb r0, [r6] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - bl sub_8045970 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bne _08046080 - movs r0, 0x8C - lsls r0, 1 - add r0, r8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08046080 - movs r4, 0x20 -_08046080: - ldr r0, _080460D0 @ =0x00000183 - cmp r4, r0 - bne _0804609A - subs r0, 0x6B - add r0, r8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _0804609A - movs r4, 0xC1 - lsls r4, 1 -_0804609A: - ldrb r0, [r6, 0x1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - cmp r0, 0x84 - bne _080460C2 - ldrb r1, [r6] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - bl GetBoxMonGender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFE - beq _080460C2 - ldrb r1, [r6, 0x1] - ldrb r0, [r6] - strb r0, [r6, 0x1] - strb r1, [r6] -_080460C2: - adds r0, r4, 0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080460D0: .4byte 0x00000183 - thumb_func_end sub_8046000 - - thumb_func_start sub_80460D4 -sub_80460D4: @ 80460D4 - push {r4-r6,lr} - sub sp, 0x6C - adds r5, r0, 0 - add r6, sp, 0x64 - adds r1, r6, 0 - bl sub_8046000 - add r4, sp, 0x68 - strh r0, [r4] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8045FA0 - ldrh r1, [r4] - mov r0, sp - adds r2, r5, 0 - bl SetInitialEggData - mov r0, sp - adds r1, r5, 0 - bl InheritIVs - ldrb r0, [r6, 0x1] - movs r2, 0x8C - adds r1, r0, 0 - muls r1, r2 - adds r1, r5, r1 - ldrb r0, [r6] - muls r2, r0 - adds r2, r5, r2 - mov r0, sp - bl BuildEggMoveset - mov r2, sp - adds r2, 0x6A - movs r0, 0x1 - strb r0, [r2] - mov r0, sp - movs r1, 0x2D - bl SetMonData - ldr r0, _0804614C @ =gPlayerParty - movs r1, 0xFA - lsls r1, 1 - adds r0, r1 - mov r1, sp - movs r2, 0x64 - bl memcpy - bl CompactPartySlots - bl CalculatePlayerPartyCount - adds r0, r5, 0 - bl RemoveEggFromDayCare - add sp, 0x6C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804614C: .4byte gPlayerParty - thumb_func_end sub_80460D4 - - thumb_func_start CreateEgg -CreateEgg: @ 8046150 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - adds r7, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r1, r5, 0 - movs r2, 0x5 - movs r3, 0x20 - bl CreateMon - movs r0, 0x12 - add r0, sp - mov r8, r0 - strb r4, [r0] - movs r1, 0x4 - add r0, sp, 0x10 - strh r1, [r0] - mov r4, sp - adds r4, 0x13 - movs r0, 0x1 - mov r9, r0 - mov r0, r9 - strb r0, [r4] - adds r0, r7, 0 - movs r1, 0x26 - add r2, sp, 0x10 - bl SetMonData - ldr r2, _08046200 @ =gUnknown_825F83E - adds r0, r7, 0 - movs r1, 0x2 - bl SetMonData - lsls r2, r5, 3 - subs r2, r5 - lsls r2, 2 - ldr r0, _08046204 @ =gUnknown_8254795 - adds r2, r0 - adds r0, r7, 0 - movs r1, 0x20 - bl SetMonData - adds r0, r7, 0 - movs r1, 0x24 - mov r2, r8 - bl SetMonData - adds r0, r7, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl SetMonData - cmp r6, 0 - beq _080461E2 - add r2, sp, 0x14 - movs r0, 0xFD - strb r0, [r2] - adds r0, r7, 0 - movs r1, 0x23 - bl SetMonData -_080461E2: - mov r2, sp - adds r2, 0x15 - mov r0, r9 - strb r0, [r2] - adds r0, r7, 0 - movs r1, 0x2D - bl SetMonData - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046200: .4byte gUnknown_825F83E -_08046204: .4byte gUnknown_8254795 - thumb_func_end CreateEgg - - thumb_func_start SetInitialEggData -SetInitialEggData: @ 8046208 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - bl Random - movs r1, 0x8C - lsls r1, 1 - adds r4, r1 - ldrh r1, [r4] - lsls r0, 16 - orrs r1, r0 - movs r0, 0x1 - mov r8, r0 - str r0, [sp] - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x5 - movs r3, 0x20 - bl CreateMon - movs r1, 0x12 - add r1, sp - mov r9, r1 - strb r4, [r1] - movs r1, 0x4 - add r0, sp, 0x10 - strh r1, [r0] - mov r4, sp - adds r4, 0x13 - mov r0, r8 - strb r0, [r4] - adds r0, r6, 0 - movs r1, 0x26 - add r2, sp, 0x10 - bl SetMonData - ldr r2, _080462A4 @ =gUnknown_825F83E - adds r0, r6, 0 - movs r1, 0x2 - bl SetMonData - lsls r2, r5, 3 - subs r2, r5 - lsls r2, 2 - ldr r0, _080462A8 @ =gUnknown_8254795 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x20 - bl SetMonData - adds r0, r6, 0 - movs r1, 0x24 - mov r2, r9 - bl SetMonData - adds r0, r6, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl SetMonData - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080462A4: .4byte gUnknown_825F83E -_080462A8: .4byte gUnknown_8254795 - thumb_func_end SetInitialEggData - - thumb_func_start GiveEggFromDaycare -GiveEggFromDaycare: @ 80462AC - push {lr} - ldr r0, _080462C0 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl sub_80460D4 - pop {r0} - bx r0 - .align 2, 0 -_080462C0: .4byte gSaveBlock1Ptr - thumb_func_end GiveEggFromDaycare - - thumb_func_start sub_80462C4 -sub_80462C4: @ 80462C4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - movs r7, 0 - movs r5, 0 -_080462CE: - movs r0, 0x8C - adds r4, r5, 0 - muls r4, r0 - adds r0, r6, r4 - movs r1, 0x5 - bl GetBoxMonData - cmp r0, 0 - beq _080462EE - adds r1, r6, 0 - adds r1, 0x88 - adds r1, r4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - adds r7, 0x1 -_080462EE: - adds r5, 0x1 - cmp r5, 0x1 - bls _080462CE - movs r1, 0x8C - lsls r1, 1 - adds r0, r6, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08046334 - cmp r7, 0x2 - bne _08046334 - subs r1, 0x4 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08046334 - adds r0, r6, 0 - bl GetDaycareCompatibilityScore - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0804634C @ =0x0000ffff - bl __udivsi3 - cmp r4, r0 - bls _08046334 - bl sub_8045A48 -_08046334: - movs r0, 0x8D - lsls r0, 1 - adds r1, r6, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080463A8 - movs r5, 0 - b _080463A0 - .align 2, 0 -_0804634C: .4byte 0x0000ffff -_08046350: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08046388 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _0804639E - adds r0, r4, 0 - movs r1, 0x4 - bl GetMonData - cmp r0, 0 - bne _0804639E - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - str r0, [sp] - cmp r0, 0 - bne _08046390 - ldr r0, _0804638C @ =gSpecialVar_0x8004 - strh r5, [r0] - movs r0, 0x1 - b _080463AA - .align 2, 0 -_08046388: .4byte gPlayerParty -_0804638C: .4byte gSpecialVar_0x8004 -_08046390: - subs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x20 - mov r2, sp - bl SetMonData -_0804639E: - adds r5, 0x1 -_080463A0: - ldr r0, _080463B4 @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r5, r0 - bcc _08046350 -_080463A8: - movs r0, 0 -_080463AA: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080463B4: .4byte gPlayerPartyCount - thumb_func_end sub_80462C4 - - thumb_func_start sub_80463B8 -sub_80463B8: @ 80463B8 - push {r4,lr} - ldr r4, _080463F0 @ =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, _080463F4 @ =0x00003c98 - adds r0, r1 - movs r1, 0x5 - bl GetBoxMonData - cmp r0, 0 - beq _080463D8 - ldr r1, [r4] - ldr r0, _080463F8 @ =0x00003d20 - adds r1, r0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_080463D8: - ldr r0, [r4] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl sub_80462C4 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080463F0: .4byte gSaveBlock1Ptr -_080463F4: .4byte 0x00003c98 -_080463F8: .4byte 0x00003d20 - thumb_func_end sub_80463B8 - - thumb_func_start sub_80463FC -sub_80463FC: @ 80463FC - movs r1, 0x8C - lsls r1, 1 - adds r0, r1 - ldrh r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - thumb_func_end sub_80463FC - - thumb_func_start _GetDaycareMonNicknames -_GetDaycareMonNicknames: @ 804640C - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08046436 - ldr r1, _08046454 @ =gStringVar1 - adds r0, r4, 0 - bl GetBoxMonNick - adds r0, r4, 0 - movs r1, 0x7 - mov r2, sp - bl GetBoxMonData - ldr r0, _08046458 @ =gStringVar3 - mov r1, sp - bl StringCopy -_08046436: - adds r4, 0x8C - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _0804644C - ldr r1, _0804645C @ =gStringVar2 - adds r0, r4, 0 - bl GetBoxMonNick -_0804644C: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08046454: .4byte gStringVar1 -_08046458: .4byte gStringVar3 -_0804645C: .4byte gStringVar2 - thumb_func_end _GetDaycareMonNicknames - - thumb_func_start GetSelectedMonNickAndSpecies -GetSelectedMonNickAndSpecies: @ 8046460 - push {r4,r5,lr} - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - movs r5, 0x64 - muls r0, r5 - ldr r4, _08046494 @ =gPlayerParty - adds r0, r4 - ldr r1, _08046498 @ =gStringVar1 - bl GetBoxMonNick - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - muls r0, r5 - adds r0, r4 - movs r1, 0xB - bl GetBoxMonData - lsls r0, 16 - lsrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08046494: .4byte gPlayerParty -_08046498: .4byte gStringVar1 - thumb_func_end GetSelectedMonNickAndSpecies - - thumb_func_start GetDaycareMonNicknames -GetDaycareMonNicknames: @ 804649C - push {lr} - ldr r0, _080464B0 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl _GetDaycareMonNicknames - pop {r0} - bx r0 - .align 2, 0 -_080464B0: .4byte gSaveBlock1Ptr - thumb_func_end GetDaycareMonNicknames - - thumb_func_start sub_80464B4 -sub_80464B4: @ 80464B4 - push {r4,lr} - ldr r4, _080464D0 @ =gSaveBlock1Ptr - ldr r0, [r4] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl sub_80463FC - lsls r0, 24 - cmp r0, 0 - beq _080464D4 - movs r0, 0x1 - b _080464F2 - .align 2, 0 -_080464D0: .4byte gSaveBlock1Ptr -_080464D4: - ldr r0, [r4] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl CountPokemonInDaycare - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080464EC - movs r0, 0 - b _080464F2 -_080464EC: - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 -_080464F2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80464B4 - - thumb_func_start GetDaycarePokemonCount -GetDaycarePokemonCount: @ 80464F8 - push {lr} - ldr r0, _08046518 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl CountPokemonInDaycare - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08046512 - movs r0, 0 -_08046512: - pop {r1} - bx r1 - .align 2, 0 -_08046518: .4byte gSaveBlock1Ptr - thumb_func_end GetDaycarePokemonCount - - thumb_func_start EggGroupsOverlap -EggGroupsOverlap: @ 804651C - push {r4-r6,lr} - adds r5, r1, 0 - movs r4, 0 - adds r1, r0, 0 -_08046524: - movs r3, 0 - ldrh r0, [r1] - adds r2, r5, 0 -_0804652A: - ldrh r6, [r2] - cmp r0, r6 - bne _08046534 - movs r0, 0x1 - b _08046546 -_08046534: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x1 - ble _0804652A - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x1 - ble _08046524 - movs r0, 0 -_08046546: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end EggGroupsOverlap - - thumb_func_start GetDaycareCompatibilityScore -GetDaycareCompatibilityScore: @ 804654C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - str r0, [sp, 0x1C] - movs r7, 0 - mov r0, sp - adds r0, 0x8 - str r0, [sp, 0x20] - add r1, sp, 0xC - mov r9, r1 - mov r2, sp - adds r2, 0x14 - str r2, [sp, 0x24] - subs r0, 0x6 - ldr r1, _08046600 @ =gBaseStats - mov r10, r1 - ldr r5, [sp, 0x20] - mov r8, r0 - mov r6, sp - str r2, [sp, 0x28] - mov r2, r9 - str r2, [sp, 0x2C] -_0804657E: - movs r0, 0x8C - adds r4, r7, 0 - muls r4, r0 - ldr r0, [sp, 0x1C] - adds r4, r0, r4 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x1 - bl GetBoxMonData - ldr r1, [sp, 0x2C] - stm r1!, {r0} - str r1, [sp, 0x2C] - adds r0, r4, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - ldrh r0, [r5] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x28] - stm r2!, {r0} - str r2, [sp, 0x28] - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r10 - ldrb r0, [r0, 0x14] - strh r0, [r6] - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r10 - ldrb r0, [r0, 0x15] - mov r1, r8 - strh r0, [r1] - adds r5, 0x2 - movs r2, 0x4 - add r8, r2 - adds r6, 0x4 - adds r7, 0x1 - cmp r7, 0x1 - bls _0804657E - mov r0, sp - ldrh r1, [r0] - cmp r1, 0xF - beq _080465FC - ldrh r0, [r0, 0x4] - cmp r0, 0xF - beq _080465FC - cmp r1, 0xD - bne _08046604 - cmp r0, 0xD - bne _08046608 -_080465FC: - movs r0, 0 - b _0804665C - .align 2, 0 -_08046600: .4byte gBaseStats -_08046604: - cmp r0, 0xD - bne _08046614 -_08046608: - ldr r1, [sp, 0xC] - mov r2, r9 - ldr r0, [r2, 0x4] - cmp r1, r0 - beq _08046656 - b _0804665A -_08046614: - ldr r0, [sp, 0x14] - ldr r2, [sp, 0x24] - ldr r1, [r2, 0x4] - cmp r0, r1 - beq _080465FC - cmp r0, 0xFF - beq _080465FC - cmp r1, 0xFF - beq _080465FC - add r1, sp, 0x4 - mov r0, sp - bl EggGroupsOverlap - lsls r0, 24 - cmp r0, 0 - beq _080465FC - ldr r0, [sp, 0x20] - ldrh r1, [r0, 0x2] - ldrh r0, [r0] - cmp r0, r1 - bne _0804664C - ldr r1, [sp, 0xC] - mov r2, r9 - ldr r0, [r2, 0x4] - cmp r1, r0 - beq _0804665A - movs r0, 0x46 - b _0804665C -_0804664C: - ldr r1, [sp, 0xC] - mov r2, r9 - ldr r0, [r2, 0x4] - cmp r1, r0 - bne _0804665A -_08046656: - movs r0, 0x14 - b _0804665C -_0804665A: - movs r0, 0x32 -_0804665C: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetDaycareCompatibilityScore - - thumb_func_start GetDaycareCompatibilityScoreFromSave -GetDaycareCompatibilityScoreFromSave: @ 804666C - push {lr} - ldr r0, _08046684 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl GetDaycareCompatibilityScore - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08046684: .4byte gSaveBlock1Ptr - thumb_func_end GetDaycareCompatibilityScoreFromSave - - thumb_func_start SetDaycareCompatibilityString -SetDaycareCompatibilityString: @ 8046688 - push {lr} - bl GetDaycareCompatibilityScoreFromSave - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - movs r1, 0 - cmp r0, 0 - bne _0804669C - movs r1, 0x3 -_0804669C: - cmp r0, 0x14 - bne _080466A2 - movs r1, 0x2 -_080466A2: - cmp r0, 0x32 - bne _080466A8 - movs r1, 0x1 -_080466A8: - cmp r2, 0x46 - bne _080466AE - movs r1, 0 -_080466AE: - ldr r0, _080466C0 @ =gStringVar4 - ldr r2, _080466C4 @ =gUnknown_825F82C - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080466C0: .4byte gStringVar4 -_080466C4: .4byte gUnknown_825F82C - thumb_func_end SetDaycareCompatibilityString - - thumb_func_start NameHasGenderSymbol -NameHasGenderSymbol: @ 80466C8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - mov r2, sp - mov r1, sp - movs r0, 0 - strb r0, [r1, 0x1] - strb r0, [r2] - movs r3, 0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _0804670C -_080466E4: - adds r1, r4, r3 - ldrb r0, [r1] - cmp r0, 0xB5 - bne _080466F2 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] -_080466F2: - ldrb r0, [r1] - cmp r0, 0xB6 - bne _080466FE - ldrb r0, [r2, 0x1] - adds r0, 0x1 - strb r0, [r2, 0x1] -_080466FE: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080466E4 -_0804670C: - cmp r5, 0 - bne _08046720 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - beq _08046720 - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08046734 -_08046720: - cmp r5, 0xFE - bne _08046738 - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08046738 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - bne _08046738 -_08046734: - movs r0, 0x1 - b _0804673A -_08046738: - movs r0, 0 -_0804673A: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end NameHasGenderSymbol - - thumb_func_start AppendGenderSymbol -AppendGenderSymbol: @ 8046744 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _08046764 - movs r1, 0 - bl NameHasGenderSymbol - lsls r0, 24 - cmp r0, 0 - bne _08046780 - ldr r1, _08046760 @ =gUnknown_8261EC1 - b _08046782 - .align 2, 0 -_08046760: .4byte gUnknown_8261EC1 -_08046764: - cmp r1, 0xFE - bne _08046780 - adds r0, r4, 0 - movs r1, 0xFE - bl NameHasGenderSymbol - lsls r0, 24 - cmp r0, 0 - bne _08046780 - ldr r1, _0804677C @ =gUnknown_8261EC3 - b _08046782 - .align 2, 0 -_0804677C: .4byte gUnknown_8261EC3 -_08046780: - ldr r1, _08046790 @ =gUnknown_8261EC5 -_08046782: - adds r0, r4, 0 - bl StringAppend - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08046790: .4byte gUnknown_8261EC5 - thumb_func_end AppendGenderSymbol - - thumb_func_start AppendMonGenderSymbol -AppendMonGenderSymbol: @ 8046794 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - bl GetBoxMonGender - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl AppendGenderSymbol - pop {r4} - pop {r1} - bx r1 - thumb_func_end AppendMonGenderSymbol - - thumb_func_start GetDaycareLevelMenuText -GetDaycareLevelMenuText: @ 80467B0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x28 - mov r8, r0 - adds r7, r1, 0 - movs r0, 0xFF - strb r0, [r7] - movs r6, 0 - add r0, sp, 0x14 - mov r9, r0 -_080467C8: - movs r0, 0x8C - adds r4, r6, 0 - muls r4, r0 - add r4, r8 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 2 - mov r1, sp - adds r5, r1, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl GetBoxMonNick - adds r0, r5, 0 - adds r1, r4, 0 - bl AppendMonGenderSymbol - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - bls _080467C8 - adds r0, r7, 0 - mov r1, sp - bl StringCopy - ldr r4, _0804682C @ =gUnknown_825F83C - adds r0, r7, 0 - adds r1, r4, 0 - bl StringAppend - adds r0, r7, 0 - mov r1, r9 - bl StringAppend - adds r0, r7, 0 - adds r1, r4, 0 - bl StringAppend - ldr r1, _08046830 @ =gUnknown_84161C8 - adds r0, r7, 0 - bl StringAppend - add sp, 0x28 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804682C: .4byte gUnknown_825F83C -_08046830: .4byte gUnknown_84161C8 - thumb_func_end GetDaycareLevelMenuText - - thumb_func_start GetDaycareLevelMenuLevelText -GetDaycareLevelMenuLevelText: @ 8046834 - push {r4-r6,lr} - sub sp, 0x14 - adds r6, r0, 0 - adds r4, r1, 0 - movs r0, 0xFF - strb r0, [r4] - movs r5, 0 -_08046842: - adds r0, r4, 0 - ldr r1, _08046890 @ =gUnknown_8416223 - bl StringAppend - movs r0, 0x8C - adds r2, r5, 0 - muls r2, r0 - adds r0, r6, r2 - adds r1, r6, 0 - adds r1, 0x88 - adds r1, r2 - ldr r1, [r1] - bl GetLevelAfterDaycareSteps - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - mov r1, sp - bl StringAppend - adds r0, r4, 0 - ldr r1, _08046894 @ =gUnknown_825F83C - bl StringAppend - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _08046842 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08046890: .4byte gUnknown_8416223 -_08046894: .4byte gUnknown_825F83C - thumb_func_end GetDaycareLevelMenuLevelText - - thumb_func_start DaycareAddTextPrinter -DaycareAddTextPrinter: @ 8046898 - push {r4,r5,lr} - sub sp, 0x10 - str r1, [sp] - mov r1, sp - strb r0, [r1, 0x4] - movs r0, 0x3 - strb r0, [r1, 0x5] - mov r0, sp - strb r2, [r0, 0x6] - strb r3, [r0, 0x7] - strb r2, [r0, 0x8] - strb r3, [r0, 0x9] - mov r3, sp - ldrb r1, [r3, 0xC] - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - strb r0, [r3, 0xC] - ldr r3, _08046908 @ =gTextFlags - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - mov r0, sp - movs r5, 0x1 - movs r1, 0x1 - strb r1, [r0, 0xA] - strb r1, [r0, 0xB] - mov r3, sp - ldrb r1, [r3, 0xC] - movs r4, 0xF - adds r0, r4, 0 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r3, 0xC] - mov r1, sp - ldrb r0, [r1, 0xD] - ands r2, r0 - orrs r2, r5 - strb r2, [r1, 0xD] - ands r2, r4 - movs r0, 0x30 - orrs r2, r0 - strb r2, [r1, 0xD] - mov r0, sp - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046908: .4byte gTextFlags - thumb_func_end DaycareAddTextPrinter - - thumb_func_start DaycarePrintMonNick -DaycarePrintMonNick: @ 804690C - push {r4-r6,lr} - sub sp, 0x14 - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r3, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x8C - muls r0, r2 - adds r5, r0 - adds r0, r5, 0 - mov r1, sp - bl GetBoxMonNick - mov r0, sp - adds r1, r5, 0 - bl AppendMonGenderSymbol - adds r0, r4, 0 - mov r1, sp - movs r2, 0x8 - adds r3, r6, 0 - bl DaycareAddTextPrinter - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end DaycarePrintMonNick - - thumb_func_start DaycarePrintMonLvl -DaycarePrintMonLvl: @ 8046944 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080469B0 @ =gUnknown_8416223 - mov r0, sp - bl strcpy - movs r0, 0x8C - adds r1, r6, 0 - muls r1, r0 - adds r0, r4, r1 - adds r4, 0x88 - adds r4, r1 - ldr r1, [r4] - bl GetLevelAfterDaycareSteps - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - add r4, sp, 0xC - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r0, sp - adds r1, r4, 0 - bl StringAppend - movs r0, 0x3 - mov r1, sp - movs r2, 0 - bl GetStringWidth - movs r2, 0x84 - subs r2, r0 - adds r0, r5, 0 - mov r1, sp - mov r3, r8 - bl DaycareAddTextPrinter - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080469B0: .4byte gUnknown_8416223 - thumb_func_end DaycarePrintMonLvl - - thumb_func_start DaycarePrintMonInfo -DaycarePrintMonInfo: @ 80469B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r2, 24 - lsrs r5, r2, 24 - cmp r6, 0x1 - bhi _080469EE - ldr r0, _080469F8 @ =gSaveBlock1Ptr - mov r8, r0 - ldr r0, [r0] - movs r4, 0xBE - lsls r4, 6 - adds r0, r4 - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl DaycarePrintMonNick - mov r1, r8 - ldr r0, [r1] - adds r0, r4 - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl DaycarePrintMonLvl -_080469EE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080469F8: .4byte gSaveBlock1Ptr - thumb_func_end DaycarePrintMonInfo - - thumb_func_start Task_HandleDaycareLevelMenuInput -Task_HandleDaycareLevelMenuInput: @ 80469FC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _08046A2C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrb r0, [r4, 0x8] - bl ListMenuHandleInput - adds r1, r0, 0 - ldr r0, _08046A30 @ =gMain - ldrh r2, [r0, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _08046A7C - cmp r1, 0x1 - bls _08046A34 - cmp r1, 0x5 - beq _08046A40 - b _08046A46 - .align 2, 0 -_08046A2C: .4byte gTasks -_08046A30: .4byte gMain -_08046A34: - ldr r0, _08046A3C @ =gSpecialVar_Result - strh r1, [r0] - b _08046A46 - .align 2, 0 -_08046A3C: .4byte gSpecialVar_Result -_08046A40: - ldr r1, _08046A74 @ =gSpecialVar_Result - movs r0, 0x2 - strh r0, [r1] -_08046A46: - ldr r0, _08046A78 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x8] - movs r1, 0 - movs r2, 0 - bl sub_810713C - ldrb r0, [r4, 0xA] - movs r1, 0x1 - bl sub_80F6F9C - ldrb r0, [r4, 0xA] - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts - b _08046AAC - .align 2, 0 -_08046A74: .4byte gSpecialVar_Result -_08046A78: .4byte gTasks -_08046A7C: - movs r1, 0x2 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _08046AAC - ldr r0, _08046AB4 @ =gSpecialVar_Result - strh r1, [r0] - ldrb r0, [r4, 0x8] - movs r1, 0 - movs r2, 0 - bl sub_810713C - ldrb r0, [r4, 0xA] - movs r1, 0x1 - bl sub_80F6F9C - ldrb r0, [r4, 0xA] - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts -_08046AAC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046AB4: .4byte gSpecialVar_Result - thumb_func_end Task_HandleDaycareLevelMenuInput - - thumb_func_start ShowDaycareLevelMenu -ShowDaycareLevelMenu: @ 8046AB8 - push {r4,r5,lr} - sub sp, 0x18 - ldr r0, _08046B18 @ =gUnknown_825F7F4 - bl AddWindow - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl sub_80F6F1C - mov r1, sp - ldr r0, _08046B1C @ =gUnknown_825F814 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - strb r4, [r0, 0x10] - movs r1, 0 - movs r2, 0 - bl ListMenuInit - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _08046B20 @ =Task_HandleDaycareLevelMenuInput - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08046B24 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - strh r4, [r1, 0xA] - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046B18: .4byte gUnknown_825F7F4 -_08046B1C: .4byte gUnknown_825F814 -_08046B20: .4byte Task_HandleDaycareLevelMenuInput -_08046B24: .4byte gTasks - thumb_func_end ShowDaycareLevelMenu - - thumb_func_start ChooseSendDaycareMon -ChooseSendDaycareMon: @ 8046B28 - push {lr} - bl sub_8128370 - ldr r1, _08046B38 @ =gMain - ldr r0, _08046B3C @ =c2_exit_to_overworld_2_switch - str r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_08046B38: .4byte gMain -_08046B3C: .4byte c2_exit_to_overworld_2_switch - thumb_func_end ChooseSendDaycareMon - - thumb_func_start sub_8046B40 -sub_8046B40: @ 8046B40 - push {lr} - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _08046B64 @ =gPlayerParty - adds r0, r1 - ldr r1, _08046B68 @ =gSaveBlock1Ptr - ldr r1, [r1] - ldr r2, _08046B6C @ =0x00003c98 - adds r1, r2 - bl StorePokemonInDaycare - pop {r0} - bx r0 - .align 2, 0 -_08046B64: .4byte gPlayerParty -_08046B68: .4byte gSaveBlock1Ptr -_08046B6C: .4byte 0x00003c98 - thumb_func_end sub_8046B40 - - thumb_func_start sub_8046B70 -sub_8046B70: @ 8046B70 - push {lr} - ldr r0, _08046B88 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08046B8C @ =0x00003c98 - adds r0, r1 - bl GetDaycareCostForSelectedMon - ldr r1, _08046B90 @ =gSpecialVar_0x8005 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08046B88: .4byte gSaveBlock1Ptr -_08046B8C: .4byte 0x00003c98 -_08046B90: .4byte gSpecialVar_0x8005 - thumb_func_end sub_8046B70 - - thumb_func_start sub_8046B94 -sub_8046B94: @ 8046B94 - push {lr} - ldr r0, _08046BAC @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08046BB0 @ =0x00003c98 - adds r0, r1 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _08046BB4 - movs r0, 0 - b _08046BB6 - .align 2, 0 -_08046BAC: .4byte gSaveBlock1Ptr -_08046BB0: .4byte 0x00003c98 -_08046BB4: - movs r0, 0x1 -_08046BB6: - pop {r1} - bx r1 - thumb_func_end sub_8046B94 - - thumb_func_start sub_8046BBC -sub_8046BBC: @ 8046BBC - push {lr} - ldr r0, _08046BD4 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08046BD8 @ =0x00003c98 - adds r0, r1 - bl GetNumLevelsGainedForDaycareMon - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08046BD4: .4byte gSaveBlock1Ptr -_08046BD8: .4byte 0x00003c98 - thumb_func_end sub_8046BBC - - thumb_func_start sub_8046BDC -sub_8046BDC: @ 8046BDC - push {lr} - ldr r0, _08046BF4 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08046BF8 @ =0x00003c98 - adds r0, r1 - bl TakeSelectedPokemonFromDaycare - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_08046BF4: .4byte gSaveBlock1Ptr -_08046BF8: .4byte 0x00003c98 - thumb_func_end sub_8046BDC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/decompress.s b/asm/decompress.s index 8c213a8d1..cc38e0df5 100644 --- a/asm/decompress.s +++ b/asm/decompress.s @@ -132,12 +132,12 @@ DecompressPicFromTable: @ 800EC8C lsls r0, 1 cmp r5, r0 ble _0800ECAC - ldr r0, _0800ECA8 @ =gUnknown_82350AC + ldr r0, _0800ECA8 @ =gMonFrontPicTable ldr r0, [r0] bl LZ77UnCompWram b _0800ECB4 .align 2, 0 -_0800ECA8: .4byte gUnknown_82350AC +_0800ECA8: .4byte gMonFrontPicTable _0800ECAC: ldr r0, [r3] adds r1, r4, 0 @@ -158,7 +158,7 @@ sub_800ECC4: @ 800ECC4 adds r4, r0, 0 adds r5, r1, 0 lsls r0, r2, 3 - ldr r1, _0800ECEC @ =gUnknown_82350AC + ldr r1, _0800ECEC @ =gMonFrontPicTable adds r0, r1 movs r1, 0 cmp r4, r0 @@ -168,17 +168,17 @@ _0800ECDA: str r1, [sp] adds r0, r4, 0 adds r1, r5, 0 - bl sub_800ECF0 + bl LoadSpecialPokePic add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_0800ECEC: .4byte gUnknown_82350AC +_0800ECEC: .4byte gMonFrontPicTable thumb_func_end sub_800ECC4 - thumb_func_start sub_800ECF0 -sub_800ECF0: @ 800ECF0 + thumb_func_start LoadSpecialPokePic +LoadSpecialPokePic: @ 800ECF0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -227,34 +227,34 @@ _0800ED48: mov r0, r8 cmp r0, 0 bne _0800ED5C - ldr r0, _0800ED58 @ =gUnknown_823654C + ldr r0, _0800ED58 @ =gMonBackPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800ED78 .align 2, 0 -_0800ED58: .4byte gUnknown_823654C +_0800ED58: .4byte gMonBackPicTable _0800ED5C: - ldr r0, _0800ED68 @ =gUnknown_82350AC + ldr r0, _0800ED68 @ =gMonFrontPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800ED78 .align 2, 0 -_0800ED68: .4byte gUnknown_82350AC +_0800ED68: .4byte gMonFrontPicTable _0800ED6C: movs r0, 0xCE lsls r0, 1 cmp r7, r0 ble _0800ED84 - ldr r0, _0800ED80 @ =gUnknown_82350AC + ldr r0, _0800ED80 @ =gMonFrontPicTable ldr r0, [r0] _0800ED78: adds r1, r4, 0 bl LZ77UnCompWram b _0800ED8C .align 2, 0 -_0800ED80: .4byte gUnknown_82350AC +_0800ED80: .4byte gMonFrontPicTable _0800ED84: ldr r0, [r6] adds r1, r4, 0 @@ -274,7 +274,7 @@ _0800ED8C: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_800ECF0 + thumb_func_end LoadSpecialPokePic thumb_func_start sub_800EDAC sub_800EDAC: @ 800EDAC @@ -722,8 +722,8 @@ _0800F0BA: bx r1 thumb_func_end sub_800F078 - thumb_func_start sub_800F0C4 -sub_800F0C4: @ 800F0C4 + thumb_func_start GetDecompressedDataSize +GetDecompressedDataSize: @ 800F0C4 sub sp, 0x4 mov r3, sp ldrb r2, [r0, 0x1] @@ -738,7 +738,7 @@ sub_800F0C4: @ 800F0C4 ldr r0, [sp] add sp, 0x4 bx lr - thumb_func_end sub_800F0C4 + thumb_func_end GetDecompressedDataSize thumb_func_start DecompressPicFromTable_DontHandleDeoxys DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0 @@ -748,12 +748,12 @@ DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0 lsls r0, 1 cmp r2, r0 ble _0800F0FC - ldr r0, _0800F0F8 @ =gUnknown_82350AC + ldr r0, _0800F0F8 @ =gMonFrontPicTable ldr r0, [r0] bl LZ77UnCompWram b _0800F102 .align 2, 0 -_0800F0F8: .4byte gUnknown_82350AC +_0800F0F8: .4byte gMonFrontPicTable _0800F0FC: ldr r0, [r3] bl LZ77UnCompWram @@ -769,7 +769,7 @@ HandleLoadSpecialPokePic_DontHandleDeoxys: @ 800F108 adds r4, r0, 0 adds r5, r1, 0 lsls r0, r2, 3 - ldr r1, _0800F130 @ =gUnknown_82350AC + ldr r1, _0800F130 @ =gMonFrontPicTable adds r0, r1 movs r1, 0 cmp r4, r0 @@ -785,7 +785,7 @@ _0800F11E: pop {r0} bx r0 .align 2, 0 -_0800F130: .4byte gUnknown_82350AC +_0800F130: .4byte gMonFrontPicTable thumb_func_end HandleLoadSpecialPokePic_DontHandleDeoxys thumb_func_start LoadSpecialPokePic_DontHandleDeoxys @@ -838,34 +838,34 @@ _0800F18C: mov r0, r8 cmp r0, 0 bne _0800F1A0 - ldr r0, _0800F19C @ =gUnknown_823654C + ldr r0, _0800F19C @ =gMonBackPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800F1BC .align 2, 0 -_0800F19C: .4byte gUnknown_823654C +_0800F19C: .4byte gMonBackPicTable _0800F1A0: - ldr r0, _0800F1AC @ =gUnknown_82350AC + ldr r0, _0800F1AC @ =gMonFrontPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800F1BC .align 2, 0 -_0800F1AC: .4byte gUnknown_82350AC +_0800F1AC: .4byte gMonFrontPicTable _0800F1B0: movs r0, 0xCE lsls r0, 1 cmp r7, r0 ble _0800F1C8 - ldr r0, _0800F1C4 @ =gUnknown_82350AC + ldr r0, _0800F1C4 @ =gMonFrontPicTable ldr r0, [r0] _0800F1BC: adds r1, r5, 0 bl LZ77UnCompWram b _0800F1D0 .align 2, 0 -_0800F1C4: .4byte gUnknown_82350AC +_0800F1C4: .4byte gMonFrontPicTable _0800F1C8: ldr r0, [r6] adds r1, r5, 0 diff --git a/asm/diploma.s b/asm/diploma.s index d0b652619..cfc70d694 100644 --- a/asm/diploma.s +++ b/asm/diploma.s @@ -279,7 +279,7 @@ sub_80F4E24: @ 80F4E24 bl ResetPaletteFade bl FreeAllSpritePalettes bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop pop {r0} bx r0 thumb_func_end sub_80F4E24 @@ -559,7 +559,7 @@ _080F5050: movs r0, 0 movs r1, 0x2 movs r3, 0x4 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, _080F50EC @ =gUnknown_841B619 add r0, sp, 0xC bl UnkTextUtil_StringExpandPlaceholders @@ -579,7 +579,7 @@ _080F5050: movs r1, 0x2 adds r2, r4, 0 movs r3, 0x1E - bl box_print + bl AddTextPrinterParameterized3 str r6, [sp] movs r0, 0 str r0, [sp, 0x4] @@ -589,7 +589,7 @@ _080F5050: movs r1, 0x2 movs r2, 0x78 movs r3, 0x69 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 bl PutWindowTilemap add sp, 0xAC diff --git a/asm/unk_81507FC.s b/asm/dodrio_berry_picking.s index 0118eff4b..160208493 100644 --- a/asm/unk_81507FC.s +++ b/asm/dodrio_berry_picking.s @@ -6240,7 +6240,7 @@ _08153754: .4byte gUnknown_203F3E0 _08153758: adds r0, r5, 0 movs r1, 0x1 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _0815376A @@ -6249,10 +6249,10 @@ _08153758: _0815376A: adds r0, r6, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem adds r0, r6, 0 movs r1, 0x1 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 beq _08153784 @@ -6474,11 +6474,11 @@ sub_81538D0: @ 81538D0 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal adds r0, r7, 0 adds r1, r4, 0 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter adds r0, r7, 0 movs r1, 0x11 bl FillWindowPixelBuffer @@ -8351,7 +8351,7 @@ sub_8154720: @ 8154720 movs r0, 0 movs r1, 0xA movs r2, 0xB0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal pop {r0} bx r0 thumb_func_end sub_8154720 @@ -9014,7 +9014,7 @@ _08154C4E: str r4, [sp, 0x8] movs r1, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r10 ldr r0, [r2] add r0, r9 @@ -9319,7 +9319,7 @@ _08154EC8: movs r1, 0 movs r2, 0x1C adds r3, r6, 0 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC mov r1, r9 movs r2, 0x1 @@ -9563,7 +9563,7 @@ _081550EA: str r6, [sp, 0x8] movs r1, 0 movs r2, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r7, 0 mov r0, r9 adds r0, 0x1 @@ -9624,7 +9624,7 @@ _0815512E: add r1, sp, 0xC str r1, [sp, 0x8] movs r1, 0 - bl box_print + bl AddTextPrinterParameterized3 b _081551FA .align 2, 0 _081551A8: .4byte gUnknown_203F440 @@ -9989,7 +9989,7 @@ _08155480: lsrs r0, 16 add r5, sp, 0x70 adds r1, r5, 0 - bl sub_8099E90 + bl CopyItemName movs r0, 0 adds r1, r5, 0 bl UnkTextUtil_SetPtrI @@ -10021,7 +10021,7 @@ _08155480: lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 - bl sub_8099E90 + bl CopyItemName movs r0, 0 adds r1, r5, 0 bl UnkTextUtil_SetPtrI @@ -10657,7 +10657,7 @@ _08155A9C: _08155AA6: movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _08155ACC @ =gUnknown_8419F54 str r4, [sp] movs r0, 0x2 @@ -10669,7 +10669,7 @@ _08155AA6: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _08155B08 .align 2, 0 _08155ACC: .4byte gUnknown_8419F54 @@ -11276,8 +11276,8 @@ _08155EC6: movs r1, 0 movs r2, 0 bl ChangeBgY - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 movs r1, 0x82 lsls r1, 5 movs r0, 0 diff --git a/asm/dodrio_berry_picking_2.s b/asm/dodrio_berry_picking_2.s new file mode 100644 index 000000000..792dc4b0f --- /dev/null +++ b/asm/dodrio_berry_picking_2.s @@ -0,0 +1,734 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_815A61C +sub_815A61C: @ 815A61C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r4, [sp, 0x48] + lsls r4, 24 + str r4, [sp, 0x1C] + movs r4, 0x14 + adds r4, r0 + mov r9, r4 + mov r5, sp + movs r4, 0x2 + strb r4, [r5] + mov r10, sp + mov r5, r9 + ldrb r4, [r5, 0xB] + movs r7, 0xF + adds r5, r7, 0 + ands r5, r4 + mov r6, r10 + ldrb r6, [r6, 0x1] + mov r8, r6 + movs r4, 0x10 + negs r4, r4 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, r10 + strb r4, [r5, 0x1] + mov r8, sp + mov r6, r9 + ldrb r5, [r6, 0xC] + lsls r5, 4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, 0x1] + ldrb r5, [r6, 0xD] + movs r6, 0xF + ands r5, r6 + mov r4, r10 + ldrb r4, [r4, 0x2] + mov r8, r4 + movs r4, 0x10 + negs r4, r4 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, r10 + strb r4, [r5, 0x2] + mov r8, sp + mov r6, r9 + ldrb r5, [r6, 0xE] + lsls r5, 4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, 0x2] + ldrb r5, [r6, 0xF] + movs r6, 0xF + ands r5, r6 + mov r4, r10 + ldrb r4, [r4, 0x3] + mov r8, r4 + movs r4, 0x10 + negs r4, r4 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, r10 + strb r4, [r5, 0x3] + mov r8, sp + mov r6, r9 + ldrb r5, [r6, 0x10] + lsls r5, 4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, 0x3] + ldrb r5, [r6, 0x11] + movs r6, 0xF + ands r5, r6 + mov r4, r10 + ldrb r4, [r4, 0x4] + mov r8, r4 + movs r4, 0x10 + negs r4, r4 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, r10 + strb r4, [r5, 0x4] + mov r8, sp + mov r6, r9 + ldrb r5, [r6, 0x12] + lsls r5, 4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, 0x4] + ldrb r4, [r6, 0x13] + movs r6, 0xF + ands r4, r6 + mov r6, r8 + ldrb r5, [r6, 0x5] + movs r6, 0x10 + negs r6, r6 + ands r6, r5 + orrs r6, r4 + str r6, [sp, 0xC] + mov r4, r8 + strb r6, [r4, 0x5] + mov r5, sp + mov r6, r9 + ldrb r4, [r6, 0x14] + lsls r4, 4 + ldr r6, [sp, 0xC] + ands r6, r7 + orrs r6, r4 + strb r6, [r5, 0x5] + mov r7, sp + movs r4, 0x3 + mov r8, r4 + ldrb r0, [r0, 0x14] + mov r5, r8 + ands r0, r5 + ldrb r5, [r7, 0x6] + movs r6, 0x4 + negs r6, r6 + mov r10, r6 + mov r4, r10 + ands r4, r5 + orrs r4, r0 + strb r4, [r7, 0x6] + mov r5, r9 + ldrb r0, [r5, 0x1] + mov r6, r8 + ands r0, r6 + lsls r0, 2 + movs r5, 0xD + negs r5, r5 + ands r5, r4 + orrs r5, r0 + strb r5, [r7, 0x6] + mov r0, r9 + ldrb r4, [r0, 0x2] + ands r4, r6 + lsls r4, 4 + movs r0, 0x31 + negs r0, r0 + ands r0, r5 + orrs r0, r4 + strb r0, [r7, 0x6] + mov r5, sp + mov r6, r9 + ldrb r4, [r6, 0x3] + lsls r4, 6 + movs r6, 0x3F + ands r0, r6 + orrs r0, r4 + strb r0, [r5, 0x6] + mov r4, r9 + ldrb r0, [r4, 0x4] + mov r5, r8 + ands r0, r5 + ldrb r5, [r7, 0x7] + mov r4, r10 + ands r4, r5 + orrs r4, r0 + strb r4, [r7, 0x7] + mov r6, r9 + ldrb r0, [r6, 0x5] + mov r5, r8 + ands r0, r5 + lsls r0, 2 + movs r5, 0xD + negs r5, r5 + ands r5, r4 + orrs r5, r0 + strb r5, [r7, 0x7] + ldrb r4, [r6, 0x6] + mov r6, r8 + ands r4, r6 + lsls r4, 4 + movs r0, 0x31 + negs r0, r0 + ands r0, r5 + orrs r0, r4 + strb r0, [r7, 0x7] + mov r5, sp + mov r6, r9 + ldrb r4, [r6, 0x7] + lsls r4, 6 + movs r6, 0x3F + ands r0, r6 + orrs r0, r4 + strb r0, [r5, 0x7] + mov r8, sp + mov r0, r9 + ldrb r4, [r0, 0x8] + movs r7, 0x3 + adds r0, r7, 0 + ands r0, r4 + mov r4, r8 + ldrb r5, [r4, 0x8] + mov r4, r10 + ands r4, r5 + orrs r4, r0 + mov r5, r8 + strb r4, [r5, 0x8] + mov r6, r9 + ldrb r5, [r6, 0x9] + adds r0, r7, 0 + ands r0, r5 + lsls r0, 2 + movs r5, 0xD + negs r5, r5 + ands r5, r4 + orrs r5, r0 + mov r0, r8 + strb r5, [r0, 0x8] + ldrb r0, [r1] + adds r4, r7, 0 + ands r4, r0 + lsls r4, 4 + movs r0, 0x31 + negs r0, r0 + ands r0, r5 + orrs r0, r4 + mov r4, r8 + strb r0, [r4, 0x8] + mov r5, sp + ldrb r4, [r2] + lsls r4, 6 + movs r6, 0x3F + ands r0, r6 + orrs r0, r4 + strb r0, [r5, 0x8] + ldrb r4, [r3] + adds r0, r7, 0 + ands r0, r4 + ldrb r4, [r5, 0x9] + mov r6, r10 + ands r6, r4 + orrs r6, r0 + mov r10, r6 + strb r6, [r5, 0x9] + ldr r0, [sp, 0x40] + ldrb r4, [r0] + adds r0, r7, 0 + ands r0, r4 + lsls r0, 2 + movs r4, 0xD + negs r4, r4 + ands r6, r4 + orrs r6, r0 + str r6, [sp, 0x10] + strb r6, [r5, 0x9] + mov r4, sp + ldr r5, [sp, 0x44] + ldrb r0, [r5] + adds r6, r7, 0 + ands r6, r0 + lsls r0, r6, 4 + subs r7, 0x34 + ldr r5, [sp, 0x10] + ands r7, r5 + orrs r7, r0 + strb r7, [r4, 0x9] + mov r5, sp + ldrb r0, [r1, 0x4] + movs r6, 0x1 + mov r12, r6 + mov r4, r12 + ands r4, r0 + lsls r4, 6 + movs r0, 0x41 + negs r0, r0 + mov r10, r0 + ands r0, r7 + orrs r0, r4 + strb r0, [r5, 0x9] + ldrb r4, [r2, 0x4] + lsls r4, 7 + movs r5, 0x7F + ands r0, r5 + orrs r0, r4 + mov r4, r8 + strb r0, [r4, 0x9] + ldrb r4, [r3, 0x4] + mov r0, r12 + ands r0, r4 + mov r5, r8 + ldrb r4, [r5, 0xA] + movs r7, 0x2 + negs r7, r7 + adds r5, r7, 0 + ands r5, r4 + orrs r5, r0 + mov r6, r8 + strb r5, [r6, 0xA] + mov r9, sp + ldr r4, [sp, 0x40] + ldrb r0, [r4, 0x4] + mov r4, r12 + ands r4, r0 + lsls r4, 1 + movs r6, 0x3 + negs r6, r6 + mov r8, r6 + mov r0, r8 + ands r0, r5 + orrs r0, r4 + mov r4, r9 + strb r0, [r4, 0xA] + ldr r6, [sp, 0x44] + ldrb r5, [r6, 0x4] + mov r4, r12 + ands r4, r5 + lsls r4, 2 + movs r5, 0x5 + negs r5, r5 + ands r0, r5 + orrs r0, r4 + mov r4, r9 + strb r0, [r4, 0xA] + mov r4, sp + ldrb r1, [r1, 0x8] + mov r0, r12 + ands r0, r1 + lsls r0, 2 + ldrb r1, [r4, 0xB] + ands r5, r1 + orrs r5, r0 + strb r5, [r4, 0xB] + ldrb r1, [r2, 0x8] + mov r0, r12 + ands r0, r1 + lsls r0, 3 + movs r1, 0x9 + negs r1, r1 + ands r1, r5 + orrs r1, r0 + strb r1, [r4, 0xB] + ldrb r2, [r3, 0x8] + mov r0, r12 + ands r0, r2 + lsls r0, 4 + movs r2, 0x11 + negs r2, r2 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, 0xB] + mov r3, sp + ldr r5, [sp, 0x40] + ldrb r0, [r5, 0x8] + mov r1, r12 + ands r1, r0 + lsls r1, 5 + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0xB] + mov r2, sp + ldrb r1, [r6, 0x8] + mov r6, r12 + ands r6, r1 + lsls r1, r6, 6 + mov r3, r10 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0xB] + ldr r4, [sp, 0x1C] + lsrs r3, r4, 21 + ldrb r1, [r2, 0xA] + movs r0, 0x7 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0xA] + mov r1, sp + ldr r5, [sp, 0x4C] + movs r6, 0x1 + ands r5, r6 + lsls r2, r5, 1 + ldrb r0, [r1, 0xB] + mov r3, r8 + ands r3, r0 + orrs r3, r2 + mov r8, r3 + strb r3, [r1, 0xB] + mov r0, sp + ldr r4, [sp, 0x50] + ands r4, r6 + mov r5, r8 + ands r5, r7 + orrs r5, r4 + strb r5, [r0, 0xB] + bl sub_80F9E2C + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_815A61C + + thumb_func_start sub_815A950 +sub_815A950: @ 815A950 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r0, [sp, 0x1C] + mov r12, r0 + ldr r1, [sp, 0x20] + mov r8, r1 + ldr r0, [sp, 0x24] + mov r9, r0 + adds r2, r7, 0 + adds r2, 0x14 + ldr r4, _0815A98C @ =gRecvCmds + ldrh r0, [r4] + movs r1, 0xFF + lsls r1, 8 + ands r1, r0 + movs r0, 0xBC + lsls r0, 6 + cmp r1, r0 + bne _0815A988 + adds r3, r4, 0x2 + ldrb r0, [r4, 0x2] + cmp r0, 0x2 + beq _0815A990 +_0815A988: + movs r0, 0 + b _0815AACA + .align 2, 0 +_0815A98C: .4byte gRecvCmds +_0815A990: + ldrb r0, [r3, 0x1] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0xB] + ldrb r0, [r3, 0x1] + lsrs r0, 4 + strb r0, [r2, 0xC] + ldrb r0, [r3, 0x2] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0xD] + ldrb r0, [r3, 0x2] + lsrs r0, 4 + strb r0, [r2, 0xE] + ldrb r0, [r3, 0x3] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0xF] + ldrb r0, [r3, 0x3] + lsrs r0, 4 + strb r0, [r2, 0x10] + ldrb r0, [r3, 0x4] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0x11] + ldrb r0, [r3, 0x4] + lsrs r0, 4 + strb r0, [r2, 0x12] + ldrb r0, [r3, 0x5] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0x13] + ldrb r0, [r3, 0x5] + lsrs r0, 4 + strb r0, [r2, 0x14] + ldrb r0, [r3, 0x1] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0x15] + ldrb r0, [r3, 0x6] + lsls r0, 30 + lsrs r0, 30 + strb r0, [r7, 0x14] + ldrb r0, [r3, 0x6] + lsls r0, 28 + lsrs r0, 30 + strb r0, [r2, 0x1] + ldrb r0, [r3, 0x6] + lsls r0, 26 + lsrs r0, 30 + strb r0, [r2, 0x2] + ldrb r0, [r3, 0x6] + lsrs r0, 6 + strb r0, [r2, 0x3] + ldrb r0, [r3, 0x7] + lsls r0, 30 + lsrs r0, 30 + strb r0, [r2, 0x4] + ldrb r0, [r3, 0x7] + lsls r0, 28 + lsrs r0, 30 + strb r0, [r2, 0x5] + ldrb r0, [r3, 0x7] + lsls r0, 26 + lsrs r0, 30 + strb r0, [r2, 0x6] + ldrb r0, [r3, 0x7] + lsrs r0, 6 + strb r0, [r2, 0x7] + ldrb r0, [r3, 0x8] + lsls r0, 30 + lsrs r0, 30 + strb r0, [r2, 0x8] + ldrb r0, [r3, 0x8] + lsls r0, 28 + lsrs r0, 30 + strb r0, [r2, 0x9] + ldrb r0, [r3, 0x6] + lsls r0, 30 + lsrs r0, 30 + strb r0, [r2, 0xA] + ldrb r0, [r3, 0x8] + lsls r0, 26 + lsrs r0, 30 + strb r0, [r5] + ldrb r0, [r3, 0x9] + lsls r0, 25 + lsrs r0, 31 + strb r0, [r5, 0x4] + ldrb r0, [r3, 0xB] + lsls r0, 29 + lsrs r0, 31 + strb r0, [r5, 0x8] + ldrb r0, [r3, 0x8] + lsrs r0, 6 + strb r0, [r6] + ldrb r0, [r3, 0x9] + lsrs r0, 7 + strb r0, [r6, 0x4] + ldrb r0, [r3, 0xB] + lsls r0, 28 + lsrs r0, 31 + strb r0, [r6, 0x8] + ldrb r0, [r3, 0x9] + lsls r0, 30 + lsrs r0, 30 + mov r1, r12 + strb r0, [r1] + ldrb r0, [r3, 0xA] + lsls r0, 31 + lsrs r0, 31 + strb r0, [r1, 0x4] + ldrb r0, [r3, 0xB] + lsls r0, 27 + lsrs r0, 31 + strb r0, [r1, 0x8] + ldrb r0, [r3, 0x9] + lsls r0, 28 + lsrs r0, 30 + mov r1, r8 + strb r0, [r1] + ldrb r0, [r3, 0xA] + lsls r0, 30 + lsrs r0, 31 + strb r0, [r1, 0x4] + ldrb r0, [r3, 0xB] + lsls r0, 26 + lsrs r0, 31 + strb r0, [r1, 0x8] + ldrb r0, [r3, 0x9] + lsls r0, 26 + lsrs r0, 30 + mov r1, r9 + strb r0, [r1] + ldrb r0, [r3, 0xA] + lsls r0, 29 + lsrs r0, 31 + strb r0, [r1, 0x4] + ldrb r0, [r3, 0xB] + lsls r0, 25 + lsrs r0, 31 + strb r0, [r1, 0x8] + ldrb r0, [r3, 0xA] + lsrs r0, 3 + ldr r1, [sp, 0x28] + strb r0, [r1] + ldrb r0, [r3, 0xB] + lsls r0, 30 + lsrs r0, 31 + ldr r1, [sp, 0x2C] + str r0, [r1] + ldrb r0, [r3, 0xB] + lsls r0, 31 + lsrs r0, 31 + ldr r1, [sp, 0x30] + str r0, [r1] + movs r0, 0x1 +_0815AACA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_815A950 + + thumb_func_start sub_815AAD8 +sub_815AAD8: @ 815AAD8 + push {lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0815AB00 @ =0xffffff00 + ldr r1, [sp] + ands r1, r3 + movs r2, 0x3 + orrs r1, r2 + str r1, [sp] + ldr r1, [sp, 0x4] + ands r1, r3 + orrs r1, r0 + str r1, [sp, 0x4] + mov r0, sp + bl sub_80F9E2C + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_0815AB00: .4byte 0xffffff00 + thumb_func_end sub_815AAD8 + + thumb_func_start sub_815AB04 +sub_815AB04: @ 815AB04 + push {r4,lr} + adds r2, r0, 0 + adds r4, r1, 0 + ldr r3, _0815AB2C @ =gRecvCmds + ldrh r0, [r3] + movs r1, 0xFF + lsls r1, 8 + ands r1, r0 + movs r0, 0xBC + lsls r0, 6 + cmp r1, r0 + bne _0815AB28 + lsls r0, r2, 4 + adds r1, r3, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0x3 + beq _0815AB30 +_0815AB28: + movs r0, 0 + b _0815AB36 + .align 2, 0 +_0815AB2C: .4byte gRecvCmds +_0815AB30: + ldrb r0, [r1, 0x4] + strb r0, [r4] + movs r0, 0x1 +_0815AB36: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_815AB04 + + thumb_func_start sub_815AB3C +sub_815AB3C: @ 815AB3C + push {lr} + sub sp, 0x8 + ldr r2, _0815AB5C @ =0xffffff00 + ldr r1, [sp] + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + str r1, [sp] + str r0, [sp, 0x4] + mov r0, sp + bl sub_80F9E2C + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_0815AB5C: .4byte 0xffffff00 + thumb_func_end sub_815AB3C + + thumb_func_start sub_815AB60 +sub_815AB60: @ 815AB60 + push {lr} + adds r2, r0, 0 + ldr r3, _0815AB88 @ =gRecvCmds + ldrh r0, [r3] + movs r1, 0xFF + lsls r1, 8 + ands r1, r0 + movs r0, 0xBC + lsls r0, 6 + cmp r1, r0 + bne _0815AB82 + lsls r0, r2, 4 + adds r1, r3, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0x4 + beq _0815AB8C +_0815AB82: + movs r0, 0 + b _0815AB8E + .align 2, 0 +_0815AB88: .4byte gRecvCmds +_0815AB8C: + ldr r0, [r1, 0x4] +_0815AB8E: + pop {r1} + bx r1 + thumb_func_end sub_815AB60 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/dragon.s b/asm/dragon.s new file mode 100644 index 000000000..66e76017a --- /dev/null +++ b/asm/dragon.s @@ -0,0 +1,835 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B725C +sub_80B725C: @ 80B725C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B72A4 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B72AC + ldr r2, _080B72A8 @ =gBattleAnimArgs + ldrh r0, [r5, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r2, 0x6] + negs r0, r0 + strh r0, [r2, 0x6] + ldrh r0, [r2, 0x8] + negs r0, r0 + strh r0, [r2, 0x8] + adds r1, r2, 0 + b _080B72B6 + .align 2, 0 +_080B72A4: .4byte gBattleAnimAttacker +_080B72A8: .4byte gBattleAnimArgs +_080B72AC: + ldr r1, _080B72EC @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] +_080B72B6: + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x38] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080B72F0 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B72F4 @ =sub_8074E70 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B72EC: .4byte gBattleAnimArgs +_080B72F0: .4byte move_anim_8074EE0 +_080B72F4: .4byte sub_8074E70 + thumb_func_end sub_80B725C + + thumb_func_start sub_80B72F8 +sub_80B72F8: @ 80B72F8 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8074FCC + ldr r4, _080B7350 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080B7354 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B735C + ldr r2, _080B7358 @ =gBattleAnimArgs + ldrh r0, [r5, 0x20] + ldrh r1, [r2, 0x2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r1, r0 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x32] + ldrh r1, [r2, 0x4] + subs r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r2, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + b _080B7386 + .align 2, 0 +_080B7350: .4byte gBattleAnimTarget +_080B7354: .4byte gBattleAnimAttacker +_080B7358: .4byte gBattleAnimArgs +_080B735C: + ldr r1, _080B73A0 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080B7386: + ldr r0, _080B73A0 @ =gBattleAnimArgs + ldrh r0, [r0, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080B73A4 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080B73A8 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B73A0: .4byte gBattleAnimArgs +_080B73A4: .4byte sub_8075590 +_080B73A8: .4byte move_anim_8074EE0 + thumb_func_end sub_80B72F8 + + thumb_func_start sub_80B73AC +sub_80B73AC: @ 80B73AC + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B73C0 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B73C8 + ldr r4, _080B73C4 @ =gBattleAnimAttacker + b _080B73CA + .align 2, 0 +_080B73C0: .4byte gBattleAnimArgs +_080B73C4: .4byte gBattleAnimAttacker +_080B73C8: + ldr r4, _080B740C @ =gBattleAnimTarget +_080B73CA: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080B7410 @ =gBattleAnimArgs + movs r0, 0x2 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_8074FF8 + ldrh r0, [r4, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + ldr r0, _080B7414 @ =sub_8074F6C + str r0, [r5, 0x1C] + ldr r1, _080B7418 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B740C: .4byte gBattleAnimTarget +_080B7410: .4byte gBattleAnimArgs +_080B7414: .4byte sub_8074F6C +_080B7418: .4byte move_anim_8074EE0 + thumb_func_end sub_80B73AC + + thumb_func_start sub_80B741C +sub_80B741C: @ 80B741C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B7444 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B7436 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080B7436: + adds r0, r4, 0 + bl sub_80B72F8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7444: .4byte gBattleAnimAttacker + thumb_func_end sub_80B741C + + thumb_func_start sub_80B7448 +sub_80B7448: @ 80B7448 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r4, _080B749C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r6, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x22] + strh r5, [r6, 0x36] + movs r0, 0x1 + strh r0, [r6, 0x38] + ldr r0, _080B74A0 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r6, 0x3A] + ldr r4, _080B74A4 @ =sBattler_AI + ldrb r0, [r4] + movs r1, 0 + bl sub_8076B2C + lsls r7, r0, 16 + lsrs r5, r7, 16 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8076B2C + lsls r1, r0, 16 + lsrs r0, r1, 16 + cmp r5, r0 + bls _080B74A8 + lsrs r0, r7, 17 + b _080B74AA + .align 2, 0 +_080B749C: .4byte gBattleAnimAttacker +_080B74A0: .4byte gBattleAnimArgs +_080B74A4: .4byte sBattler_AI +_080B74A8: + lsrs r0, r1, 17 +_080B74AA: + strh r0, [r6, 0x3C] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x3C + ldrsh r1, [r6, r2] + bl Cos + strh r0, [r6, 0x24] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x3C + ldrsh r1, [r6, r2] + bl Sin + strh r0, [r6, 0x26] + ldr r0, _080B74D4 @ =sub_80B74D8 + str r0, [r6, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B74D4: .4byte sub_80B74D8 + thumb_func_end sub_80B7448 + + thumb_func_start sub_80B74D8 +sub_80B74D8: @ 80B74D8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080B74EA + cmp r5, 0x1 + beq _080B7556 + b _080B75DA +_080B74EA: + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x38] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080B753C + strh r5, [r4, 0x36] + ldrh r1, [r4, 0x38] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B753C + adds r0, r1, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080B753C + movs r0, 0x10 + strh r0, [r4, 0x38] +_080B753C: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080B75DA + movs r0, 0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B75DA +_080B7556: + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x38] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x95 + bgt _080B757E + adds r0, r1, 0 + adds r0, 0x8 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x95 + ble _080B757E + movs r0, 0x96 + strh r0, [r4, 0x3C] +_080B757E: + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080B75C6 + movs r0, 0 + strh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B75C6 + adds r0, r1, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080B75C6 + movs r0, 0x10 + strh r0, [r4, 0x38] +_080B75C6: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080B75DA + adds r0, r4, 0 + bl DestroyAnimSprite +_080B75DA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B74D8 + + thumb_func_start sub_80B75E0 +sub_80B75E0: @ 80B75E0 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B760C @ =gTasks + adds r4, r1, r0 + ldr r0, _080B7610 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B761C + ldr r0, _080B7614 @ =0x04000014 + str r0, [sp] + ldr r0, _080B7618 @ =gBattle_BG1_X + b _080B7622 + .align 2, 0 +_080B760C: .4byte gTasks +_080B7610: .4byte gBattleAnimAttacker +_080B7614: .4byte 0x04000014 +_080B7618: .4byte gBattle_BG1_X +_080B761C: + ldr r0, _080B7698 @ =0x04000018 + str r0, [sp] + ldr r0, _080B769C @ =gBattle_BG2_X +_080B7622: + ldrh r0, [r0] + strh r0, [r4, 0xC] + ldr r0, _080B76A0 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r5, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r5, [r0, 0x9] + ldr r0, _080B76A4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0xE] + adds r0, 0x20 + strh r0, [r4, 0x10] + cmp r1, 0 + bge _080B7652 + strh r5, [r4, 0xE] +_080B7652: + ldrh r3, [r4, 0xE] + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bgt _080B7680 + ldr r5, _080B76A8 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080B7664: + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r4, 0xC] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + ble _080B7664 +_080B7680: + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + ldr r0, _080B76AC @ =sub_80B76B0 + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7698: .4byte 0x04000018 +_080B769C: .4byte gBattle_BG2_X +_080B76A0: .4byte 0xa2600001 +_080B76A4: .4byte gBattleAnimAttacker +_080B76A8: .4byte gScanlineEffectRegBuffers +_080B76AC: .4byte sub_80B76B0 + thumb_func_end sub_80B75E0 + + thumb_func_start sub_80B76B0 +sub_80B76B0: @ 80B76B0 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080B76D4 @ =gTasks + adds r2, r0, r1 + movs r1, 0x8 + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bhi _080B7766 + lsls r0, 2 + ldr r1, _080B76D8 @ =_080B76DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B76D4: .4byte gTasks +_080B76D8: .4byte _080B76DC + .align 2, 0 +_080B76DC: + .4byte _080B76F0 + .4byte _080B7712 + .4byte _080B7722 + .4byte _080B774E + .4byte _080B7760 +_080B76F0: + ldrh r0, [r2, 0x16] + adds r0, 0x1 + strh r0, [r2, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B7746 + movs r0, 0 + strh r0, [r2, 0x16] + ldrh r0, [r2, 0x14] + adds r0, 0x1 + strh r0, [r2, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080B7746 + b _080B7740 +_080B7712: + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080B7746 + b _080B7740 +_080B7722: + ldrh r0, [r2, 0x16] + adds r0, 0x1 + strh r0, [r2, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B7746 + movs r0, 0 + strh r0, [r2, 0x16] + ldrh r0, [r2, 0x14] + subs r0, 0x1 + strh r0, [r2, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _080B7746 +_080B7740: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_080B7746: + adds r0, r2, 0 + bl sub_80B776C + b _080B7766 +_080B774E: + ldr r1, _080B775C @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080B7766 + .align 2, 0 +_080B775C: .4byte gScanlineEffect +_080B7760: + adds r0, r3, 0 + bl DestroyAnimVisualTask +_080B7766: + pop {r0} + bx r0 + thumb_func_end sub_80B76B0 + + thumb_func_start sub_80B776C +sub_80B776C: @ 80B776C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldrh r3, [r5, 0x12] + ldrh r4, [r5, 0xE] + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r4, r0 + bgt _080B77C2 + ldr r7, _080B77D8 @ =gScanlineEffectRegBuffers + mov r12, r7 + ldr r0, _080B77DC @ =gSineTable + mov r8, r0 + ldr r6, _080B77E0 @ =gScanlineEffect +_080B778A: + lsls r2, r4, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + lsls r0, r3, 1 + add r0, r8 + movs r7, 0 + ldrsh r1, [r0, r7] + movs r7, 0x14 + ldrsh r0, [r5, r7] + muls r0, r1 + asrs r0, 7 + ldrh r1, [r5, 0xC] + adds r0, r1 + strh r0, [r2] + adds r3, 0x8 + movs r0, 0xFF + ands r3, r0 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + movs r7, 0x10 + ldrsh r0, [r5, r7] + cmp r4, r0 + ble _080B778A +_080B77C2: + ldrh r0, [r5, 0x12] + adds r0, 0x9 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x12] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B77D8: .4byte gScanlineEffectRegBuffers +_080B77DC: .4byte gSineTable +_080B77E0: .4byte gScanlineEffect + thumb_func_end sub_80B776C + + thumb_func_start sub_80B77E4 +sub_80B77E4: @ 80B77E4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + ldr r5, _080B7884 @ =gBattleAnimArgs + movs r0, 0x4 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + movs r1, 0x5 + bl __divsi3 + adds r6, r0, 0 + ldr r1, _080B7888 @ =gBattleAnimAttacker + mov r8, r1 + ldrb r0, [r1] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + mov r2, r8 + ldrb r0, [r2] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r5, 0x8] + adds r0, r3 + strh r0, [r4, 0x22] + movs r1, 0x2 + ldrsh r0, [r5, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl Cos + strh r0, [r4, 0x30] + movs r3, 0x2 + ldrsh r0, [r5, r3] + lsls r6, 16 + asrs r6, 16 + adds r1, r6, 0 + bl Sin + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x30] + ldrh r2, [r5] + adds r3, r2, 0 + muls r3, r1 + adds r1, r3, 0 + ldrh r3, [r4, 0x20] + adds r1, r3 + strh r1, [r4, 0x20] + adds r1, r2, 0 + muls r1, r0 + adds r0, r1, 0 + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x34] + ldr r0, _080B788C @ =sub_80B7894 + str r0, [r4, 0x1C] + adds r4, 0x2E + ldr r2, _080B7890 @ =gUnknown_20399A4 + movs r1, 0x6 +_080B786C: + ldrh r0, [r4] + strh r0, [r2] + adds r4, 0x2 + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080B786C + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7884: .4byte gBattleAnimArgs +_080B7888: .4byte gBattleAnimAttacker +_080B788C: .4byte sub_80B7894 +_080B7890: .4byte gUnknown_20399A4 + thumb_func_end sub_80B77E4 + + thumb_func_start sub_80B7894 +sub_80B7894: @ 80B7894 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x38] + adds r0, r2 + strh r0, [r4, 0x38] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080B78D8 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B78D8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B7894 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s index eef234a71..2428f2984 100644 --- a/asm/egg_hatch.s +++ b/asm/egg_hatch.s @@ -5,1816 +5,4 @@ .text - thumb_func_start sub_8046BFC -sub_8046BFC: @ 8046BFC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x50 - adds r6, r0, 0 - adds r5, r1, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x3C] - movs r4, 0 - add r7, sp, 0x18 - movs r0, 0x31 - add r0, sp - mov r10, r0 - mov r1, sp - adds r1, 0x32 - str r1, [sp, 0x40] - mov r0, sp - adds r0, 0x34 - str r0, [sp, 0x48] - add r1, sp, 0x30 - mov r9, r1 - subs r0, 0x1 - str r0, [sp, 0x44] - mov r1, sp - adds r1, 0x38 - str r1, [sp, 0x4C] -_08046C3C: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r6, 0 - bl GetMonData - lsls r1, r4, 1 - add r1, sp - adds r1, 0x10 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08046C3C - adds r0, r6, 0 - movs r1, 0 - bl GetMonData - mov r8, r0 - movs r4, 0 -_08046C64: - adds r1, r4, 0 - adds r1, 0x27 - adds r0, r6, 0 - bl GetMonData - lsls r1, r4, 2 - adds r1, r7, r1 - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08046C64 - adds r0, r6, 0 - movs r1, 0x25 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x8 - bl GetMonData - ldr r1, [sp, 0x40] - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x22 - bl GetMonData - str r0, [sp, 0x38] - adds r0, r6, 0 - movs r1, 0x50 - bl GetMonData - ldr r1, [sp, 0x48] - strb r0, [r1] - movs r0, 0x1 - str r0, [sp] - mov r0, r8 - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r5, 0 - ldr r1, [sp, 0x3C] - movs r2, 0x5 - movs r3, 0x20 - bl CreateMon - movs r4, 0 -_08046CC8: - adds r1, r4, 0 - adds r1, 0xD - lsls r0, r4, 1 - mov r2, sp - adds r2, r0 - adds r2, 0x10 - adds r0, r5, 0 - bl SetMonData - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08046CC8 - movs r4, 0 -_08046CE6: - adds r1, r4, 0 - adds r1, 0x27 - lsls r2, r4, 2 - adds r2, r7, r2 - adds r0, r5, 0 - bl SetMonData - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08046CE6 - movs r0, 0x2 - mov r1, r9 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x3 - mov r2, r9 - bl SetMonData - adds r0, r5, 0 - movs r1, 0x25 - mov r2, r10 - bl SetMonData - adds r0, r5, 0 - movs r1, 0x8 - ldr r2, [sp, 0x40] - bl SetMonData - movs r0, 0x78 - ldr r1, [sp, 0x44] - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x20 - ldr r2, [sp, 0x44] - bl SetMonData - adds r0, r5, 0 - movs r1, 0x22 - ldr r2, [sp, 0x4C] - bl SetMonData - adds r0, r5, 0 - movs r1, 0x50 - ldr r2, [sp, 0x48] - bl SetMonData - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - add sp, 0x50 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8046BFC - - thumb_func_start AddHatchedMonToParty -AddHatchedMonToParty: @ 8046D60 - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - add r4, sp, 0xC - movs r1, 0x46 - strb r1, [r4] - movs r1, 0x64 - adds r5, r0, 0 - muls r5, r1 - ldr r0, _08046E14 @ =gPlayerParty - adds r5, r0 - ldr r1, _08046E18 @ =gEnemyParty - adds r0, r5, 0 - bl sub_8046BFC - adds r0, r5, 0 - movs r1, 0x2D - adds r2, r4, 0 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, sp - adds r1, r4, 0 - bl GetSpeciesName - adds r0, r5, 0 - movs r1, 0x2 - mov r2, sp - bl SetMonData - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x2 - bl GetSetPokedexFlag - adds r0, r4, 0 - movs r1, 0x3 - bl GetSetPokedexFlag - ldr r1, _08046E1C @ =gStringVar1 - adds r0, r5, 0 - bl GetMonNick - mov r2, sp - adds r2, 0xE - movs r0, 0x4 - strh r0, [r2] - adds r0, r5, 0 - movs r1, 0x26 - bl SetMonData - add r2, sp, 0x10 - movs r0, 0 - strh r0, [r2] - adds r0, r5, 0 - movs r1, 0x24 - bl SetMonData - bl sav1_map_get_name - mov r2, sp - adds r2, 0x12 - strb r0, [r2] - adds r0, r5, 0 - movs r1, 0x23 - bl SetMonData - adds r0, r5, 0 - bl MonRestorePP - adds r0, r5, 0 - bl CalculateMonStats - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046E14: .4byte gPlayerParty -_08046E18: .4byte gEnemyParty -_08046E1C: .4byte gStringVar1 - thumb_func_end AddHatchedMonToParty - - thumb_func_start ScriptHatchMon -ScriptHatchMon: @ 8046E20 - push {lr} - ldr r0, _08046E30 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl AddHatchedMonToParty - pop {r0} - bx r0 - .align 2, 0 -_08046E30: .4byte gSpecialVar_0x8004 - thumb_func_end ScriptHatchMon - - thumb_func_start sub_8046E34 -sub_8046E34: @ 8046E34 - push {r4,r5,lr} - sub sp, 0x20 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0x8C - muls r1, r2 - adds r4, r0, r1 - adds r0, r4, 0 - mov r1, sp - bl GetBoxMonNick - adds r0, r4, 0 - adds r0, 0x70 - ldrh r0, [r0] - cmp r0, 0 - beq _08046EA0 - adds r5, r4, 0 - adds r5, 0x7C - mov r0, sp - adds r1, r5, 0 - bl StringCompare - adds r4, 0x74 - cmp r0, 0 - bne _08046E74 - ldr r0, _08046E90 @ =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, r4, 0 - bl StringCompare - cmp r0, 0 - beq _08046EA0 -_08046E74: - ldr r0, _08046E94 @ =gStringVar1 - mov r1, sp - bl StringCopy - ldr r0, _08046E98 @ =gStringVar2 - adds r1, r4, 0 - bl StringCopy - ldr r0, _08046E9C @ =gStringVar3 - adds r1, r5, 0 - bl StringCopy - movs r0, 0x1 - b _08046EA2 - .align 2, 0 -_08046E90: .4byte gSaveBlock2Ptr -_08046E94: .4byte gStringVar1 -_08046E98: .4byte gStringVar2 -_08046E9C: .4byte gStringVar3 -_08046EA0: - movs r0, 0 -_08046EA2: - add sp, 0x20 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8046E34 - - thumb_func_start sub_8046EAC -sub_8046EAC: @ 8046EAC - push {lr} - ldr r0, _08046EC8 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - ldr r1, _08046ECC @ =gSpecialVar_0x8004 - ldrb r1, [r1] - bl sub_8046E34 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08046EC8: .4byte gSaveBlock1Ptr -_08046ECC: .4byte gSpecialVar_0x8004 - thumb_func_end sub_8046EAC - - thumb_func_start sub_8046ED0 -sub_8046ED0: @ 8046ED0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r3 - lsls r0, 24 - lsrs r3, r0, 24 - mov r8, r3 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r1, r2, 24 - adds r2, r1, 0 - movs r4, 0 - movs r7, 0 - movs r5, 0 - cmp r3, 0 - bne _08046EFE - movs r0, 0x64 - muls r1, r0 - ldr r0, _08046F18 @ =gPlayerParty - adds r5, r1, r0 - movs r4, 0x1 -_08046EFE: - cmp r3, 0x1 - bne _08046F0E - movs r0, 0x64 - adds r1, r2, 0 - muls r1, r0 - ldr r0, _08046F18 @ =gPlayerParty - adds r5, r1, r0 - movs r4, 0x3 -_08046F0E: - cmp r6, 0 - beq _08046F1C - cmp r6, 0x1 - beq _08046F6C - b _08046FA6 - .align 2, 0 -_08046F18: .4byte gPlayerParty -_08046F1C: - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - adds r3, r0, 0 - lsls r0, r4, 3 - ldr r1, _08046F64 @ =gUnknown_82350AC - adds r0, r1 - ldr r1, _08046F68 @ =gMonSpritesGfxPtr - ldr r2, [r1] - mov r6, r8 - lsls r1, r6, 1 - adds r1, 0x1 - lsls r1, 2 - adds r2, 0x4 - adds r2, r1 - ldr r1, [r2] - adds r2, r4, 0 - bl sub_800ECC4 - adds r0, r5, 0 - bl GetMonSpritePalStruct - bl LoadCompressedObjectPalette - mov r0, r9 - strh r4, [r0] - b _08046FA6 - .align 2, 0 -_08046F64: .4byte gUnknown_82350AC -_08046F68: .4byte gMonSpritesGfxPtr -_08046F6C: - adds r0, r5, 0 - bl GetMonSpritePalStruct - ldrh r0, [r0, 0x4] - adds r1, r4, 0 - bl sub_803F7D4 - ldr r0, _08046FB4 @ =gMultiuseSpriteTemplate - movs r1, 0x78 - movs r2, 0x46 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _08046FB8 @ =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r2, r1, r4 - adds r2, 0x3E - ldrb r0, [r2] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r2] - adds r4, 0x1C - adds r1, r4 - ldr r0, _08046FBC @ =SpriteCallbackDummy - str r0, [r1] -_08046FA6: - adds r0, r7, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08046FB4: .4byte gMultiuseSpriteTemplate -_08046FB8: .4byte gSprites -_08046FBC: .4byte SpriteCallbackDummy - thumb_func_end sub_8046ED0 - - thumb_func_start sub_8046FC0 -sub_8046FC0: @ 8046FC0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8046FC0 - - thumb_func_start sub_8046FD4 -sub_8046FD4: @ 8046FD4 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _08047000 @ =sub_8047004 - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl sub_812B478 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08047000: .4byte sub_8047004 - thumb_func_end sub_8046FD4 - - thumb_func_start sub_8047004 -sub_8047004: @ 8047004 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08047034 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804702C - bl sub_80563F0 - ldr r0, _08047038 @ =CB2_EggHatch_0 - bl SetMainCallback2 - ldr r1, _0804703C @ =gUnknown_3005020 - ldr r0, _08047040 @ =sub_807DD24 - str r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0804702C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08047034: .4byte gPaletteFade -_08047038: .4byte CB2_EggHatch_0 -_0804703C: .4byte gUnknown_3005020 -_08047040: .4byte sub_807DD24 - thumb_func_end sub_8047004 - - thumb_func_start CB2_EggHatch_0 -CB2_EggHatch_0: @ 8047044 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08047064 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bls _08047058 - b _0804727A -_08047058: - lsls r0, 2 - ldr r1, _08047068 @ =_0804706C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08047064: .4byte gMain -_08047068: .4byte _0804706C - .align 2, 0 -_0804706C: - .4byte _08047090 - .4byte _0804715C - .4byte _08047174 - .4byte _080471A8 - .4byte _080471C8 - .4byte _080471E0 - .4byte _080471F8 - .4byte _08047214 - .4byte _0804726C -_08047090: - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r4, _08047148 @ =gUnknown_3000E74 - movs r0, 0x14 - bl Alloc - str r0, [r4] - bl AllocateMonSpritesGfx - ldr r2, [r4] - ldr r0, _0804714C @ =gSpecialVar_0x8004 - ldrh r0, [r0] - movs r1, 0 - strb r0, [r2, 0x4] - ldr r0, [r4] - strb r1, [r0, 0x7] - ldr r0, _08047150 @ =sub_8046FC0 - bl SetVBlankCallback - bl GetCurrentMapMusic - ldr r1, _08047154 @ =gSpecialVar_0x8005 - strh r0, [r1] - bl reset_temp_tile_data_buffers - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08047158 @ =gUnknown_826019C - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - 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, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x80 - lsls r0, 5 - bl Alloc - adds r1, r0, 0 - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r1, r0, 0 - movs r0, 0 - bl SetBgTilemapBuffer - bl DeactivateAllTextPrinters - bl ResetPaletteFade - bl FreeAllSpritePalettes - bl ResetSpriteData - bl ResetTasks - bl remove_some_task - bl m4aSoundVSyncOn - b _0804724A - .align 2, 0 -_08047148: .4byte gUnknown_3000E74 -_0804714C: .4byte gSpecialVar_0x8004 -_08047150: .4byte sub_8046FC0 -_08047154: .4byte gSpecialVar_0x8005 -_08047158: .4byte gUnknown_826019C -_0804715C: - ldr r0, _0804716C @ =gUnknown_82601A4 - bl InitWindows - ldr r0, _08047170 @ =gUnknown_3000E74 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x8] - b _0804724A - .align 2, 0 -_0804716C: .4byte gUnknown_82601A4 -_08047170: .4byte gUnknown_3000E74 -_08047174: - ldr r1, _0804719C @ =gUnknown_8D00000 - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl sub_80F696C - ldr r1, _080471A0 @ =gFile_graphics_interface_menu_map_tilemap - movs r0, 0 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, _080471A4 @ =gUnknown_8D004D8 - movs r1, 0 - movs r2, 0x20 - bl LoadCompressedPalette - b _0804724A - .align 2, 0 -_0804719C: .4byte gUnknown_8D00000 -_080471A0: .4byte gFile_graphics_interface_menu_map_tilemap -_080471A4: .4byte gUnknown_8D004D8 -_080471A8: - ldr r0, _080471BC @ =gUnknown_826011C - bl LoadSpriteSheet - ldr r0, _080471C0 @ =gUnknown_8260124 - bl LoadSpriteSheet - ldr r0, _080471C4 @ =gUnknown_826012C - bl LoadSpritePalette - b _0804724A - .align 2, 0 -_080471BC: .4byte gUnknown_826011C -_080471C0: .4byte gUnknown_8260124 -_080471C4: .4byte gUnknown_826012C -_080471C8: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, _080471DC @ =gUnknown_3000E74 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - bl AddHatchedMonToParty - b _0804724A - .align 2, 0 -_080471DC: .4byte gUnknown_3000E74 -_080471E0: - ldr r0, _080471F4 @ =gUnknown_3000E74 - ldr r3, [r0] - ldrb r2, [r3, 0x4] - adds r3, 0xC - movs r0, 0 - movs r1, 0 - bl sub_8046ED0 - b _0804724A - .align 2, 0 -_080471F4: .4byte gUnknown_3000E74 -_080471F8: - ldr r4, _08047210 @ =gUnknown_3000E74 - ldr r3, [r4] - ldrb r2, [r3, 0x4] - adds r3, 0xC - movs r0, 0 - movs r1, 0x1 - bl sub_8046ED0 - ldr r1, [r4] - strb r0, [r1, 0x1] - b _0804724A - .align 2, 0 -_08047210: .4byte gUnknown_3000E74 -_08047214: - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - ldr r0, _0804725C @ =gUnknown_8EAEA20 - movs r1, 0x10 - movs r2, 0xA0 - bl LoadPalette - ldr r1, _08047260 @ =gUnknown_8EAEA80 - movs r2, 0xA1 - lsls r2, 5 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTiles - ldr r1, _08047264 @ =gUnknown_826601C - movs r2, 0x80 - lsls r2, 5 - movs r0, 0x1 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_0804724A: - ldr r1, _08047268 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0804727A - .align 2, 0 -_0804725C: .4byte gUnknown_8EAEA20 -_08047260: .4byte gUnknown_8EAEA80 -_08047264: .4byte gUnknown_826601C -_08047268: .4byte gMain -_0804726C: - ldr r0, _08047298 @ =sub_8047338 - bl SetMainCallback2 - ldr r0, _0804729C @ =gUnknown_3000E74 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x2] -_0804727A: - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08047298: .4byte sub_8047338 -_0804729C: .4byte gUnknown_3000E74 - thumb_func_end CB2_EggHatch_0 - - thumb_func_start EggHatchSetMonNickname -EggHatchSetMonNickname: @ 80472A0 - push {lr} - ldr r0, _080472D0 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080472D4 @ =gPlayerParty - adds r0, r1 - ldr r2, _080472D8 @ =gStringVar3 - movs r1, 0x2 - bl SetMonData - bl FreeMonSpritesGfx - ldr r0, _080472DC @ =gUnknown_3000E74 - ldr r0, [r0] - bl Free - bl sub_812B484 - ldr r0, _080472E0 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080472D0: .4byte gSpecialVar_0x8004 -_080472D4: .4byte gPlayerParty -_080472D8: .4byte gStringVar3 -_080472DC: .4byte gUnknown_3000E74 -_080472E0: .4byte c2_exit_to_overworld_2_switch - thumb_func_end EggHatchSetMonNickname - - thumb_func_start sub_80472E4 -sub_80472E4: @ 80472E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08047330 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08047300 - bl StopMapMusic -_08047300: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _0804730E - ldr r0, _08047334 @ =0x00000107 - bl PlayBGM -_0804730E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x3C - ble _08047324 - movs r0, 0x84 - lsls r0, 1 - bl PlayBGM - adds r0, r5, 0 - bl DestroyTask -_08047324: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08047330: .4byte gTasks -_08047334: .4byte 0x00000107 - thumb_func_end sub_80472E4 - - thumb_func_start sub_8047338 -sub_8047338: @ 8047338 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0xC - ldr r1, _0804735C @ =gUnknown_3000E74 - ldr r0, [r1] - ldrb r0, [r0, 0x2] - adds r5, r1, 0 - cmp r0, 0xC - bls _08047352 - b _08047684 -_08047352: - lsls r0, 2 - ldr r1, _08047360 @ =_08047364 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804735C: .4byte gUnknown_3000E74 -_08047360: .4byte _08047364 - .align 2, 0 -_08047364: - .4byte _08047398 - .4byte _080473E4 - .4byte _0804740C - .4byte _08047444 - .4byte _08047474 - .4byte _08047482 - .4byte _080474E8 - .4byte _080474F6 - .4byte _08047504 - .4byte _08047548 - .4byte _08047588 - .4byte _08047634 - .4byte _08047654 -_08047398: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080473D8 @ =gUnknown_8260134 - movs r1, 0x78 - movs r2, 0x4B - movs r3, 0x5 - bl CreateSprite - ldr r4, _080473DC @ =gUnknown_3000E74 - ldr r1, [r4] - strb r0, [r1] - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - ldr r1, [r4] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r0, _080473E0 @ =sub_80472E4 - movs r1, 0x5 - bl CreateTask - b _08047684 - .align 2, 0 -_080473D8: .4byte gUnknown_8260134 -_080473DC: .4byte gUnknown_3000E74 -_080473E0: .4byte sub_80472E4 -_080473E4: - ldr r0, _08047408 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080473F6 - b _08047684 -_080473F6: - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r5] - strb r4, [r0, 0x3] - ldr r1, [r5] - b _08047648 - .align 2, 0 -_08047408: .4byte gPaletteFade -_0804740C: - ldr r1, [r5] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bhi _0804741E - b _08047684 -_0804741E: - ldr r1, [r5] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r2, _0804743C @ =gSprites - ldr r0, [r5] - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08047440 @ =SpriteCB_Egg_0 - str r1, [r0] - b _08047684 - .align 2, 0 -_0804743C: .4byte gSprites -_08047440: .4byte SpriteCB_Egg_0 -_08047444: - ldr r2, _0804746C @ =gSprites - ldr r3, [r5] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08047470 @ =SpriteCallbackDummy - cmp r1, r0 - beq _0804745E - b _08047684 -_0804745E: - ldrh r0, [r3, 0xC] - movs r1, 0 - bl PlayCry1 - ldr r1, [r5] - b _08047648 - .align 2, 0 -_0804746C: .4byte gSprites -_08047470: .4byte SpriteCallbackDummy -_08047474: - bl IsCryFinished - lsls r0, 24 - cmp r0, 0 - bne _08047480 - b _08047684 -_08047480: - b _08047644 -_08047482: - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080474D4 @ =gPlayerParty - adds r0, r1 - ldr r1, _080474D8 @ =gStringVar1 - bl GetMonNick - ldr r4, _080474DC @ =gStringVar4 - ldr r1, _080474E0 @ =gUnknown_841B6FD - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0xFF - str r1, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl EggHatchPrintMessage - ldr r0, _080474E4 @ =0x00000103 - bl PlayFanfare - ldr r1, [r5] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r0, [r5] - ldrb r0, [r0, 0x8] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - b _08047684 - .align 2, 0 -_080474D4: .4byte gPlayerParty -_080474D8: .4byte gStringVar1 -_080474DC: .4byte gStringVar4 -_080474E0: .4byte gUnknown_841B6FD -_080474E4: .4byte 0x00000103 -_080474E8: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - bne _080474F4 - b _08047684 -_080474F4: - b _08047644 -_080474F6: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - bne _08047502 - b _08047684 -_08047502: - b _08047644 -_08047504: - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08047538 @ =gPlayerParty - adds r0, r1 - ldr r1, _0804753C @ =gStringVar1 - bl GetMonNick - ldr r4, _08047540 @ =gStringVar4 - ldr r1, _08047544 @ =gUnknown_841B716 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0x1 - str r1, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl EggHatchPrintMessage - ldr r1, [r5] - b _08047648 - .align 2, 0 -_08047538: .4byte gPlayerParty -_0804753C: .4byte gStringVar1 -_08047540: .4byte gStringVar4 -_08047544: .4byte gUnknown_841B716 -_08047548: - ldr r0, [r5] - ldrb r0, [r0, 0x8] - bl IsTextPrinterActive - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _0804755A - b _08047684 -_0804755A: - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r4, 0xA0 - lsls r4, 1 - adds r1, r4, 0 - movs r2, 0xE0 - bl sub_814FE40 - ldr r0, _08047584 @ =gUnknown_82601B4 - str r4, [sp] - movs r1, 0xE - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x3 - movs r2, 0 - movs r3, 0x2 - bl sub_810FF60 - ldr r1, [r5] - b _08047648 - .align 2, 0 -_08047584: .4byte gUnknown_82601B4 -_08047588: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080475A8 - cmp r1, 0 - bgt _080475A2 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08047644 - b _08047684 -_080475A2: - cmp r1, 0x1 - beq _08047644 - b _08047684 -_080475A8: - ldr r0, _08047624 @ =gUnknown_3000E74 - mov r9, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, _08047628 @ =gPlayerParty - adds r0, r6 - ldr r1, _0804762C @ =gStringVar3 - mov r10, r1 - bl GetMonNick - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - bl GetMonGender - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r0, _08047630 @ =EggHatchSetMonNickname - str r0, [sp, 0x4] - movs r0, 0x3 - mov r1, r10 - adds r2, r5, 0 - adds r3, r4, 0 - bl DoNamingScreen - b _08047684 - .align 2, 0 -_08047624: .4byte gUnknown_3000E74 -_08047628: .4byte gPlayerParty -_0804762C: .4byte gStringVar3 -_08047630: .4byte EggHatchSetMonNickname -_08047634: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08047644: - ldr r0, _08047650 @ =gUnknown_3000E74 - ldr r1, [r0] -_08047648: - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _08047684 - .align 2, 0 -_08047650: .4byte gUnknown_3000E74 -_08047654: - ldr r0, _080476A8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08047684 - ldr r0, [r5] - ldrb r0, [r0, 0x8] - bl RemoveWindow - movs r0, 0 - bl UnsetBgTilemapBuffer - movs r0, 0x1 - bl UnsetBgTilemapBuffer - ldr r0, [r5] - bl Free - ldr r0, _080476AC @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - bl sub_812B484 -_08047684: - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080476A8: .4byte gPaletteFade -_080476AC: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_8047338 - - thumb_func_start SpriteCB_Egg_0 -SpriteCB_Egg_0: @ 80476B0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080476D0 - ldr r0, _080476CC @ =SpriteCB_Egg_1 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x2E] - b _08047700 - .align 2, 0 -_080476CC: .4byte SpriteCB_Egg_1 -_080476D0: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x1 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08047700 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - bl CreateRandomEggShardSprite -_08047700: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_Egg_0 - - thumb_func_start SpriteCB_Egg_1 -SpriteCB_Egg_1: @ 8047708 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _08047764 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _08047738 - ldr r0, _08047734 @ =SpriteCB_Egg_2 - str r0, [r4, 0x1C] - strh r1, [r4, 0x2E] - strh r1, [r4, 0x32] - b _08047764 - .align 2, 0 -_08047734: .4byte SpriteCB_Egg_2 -_08047738: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08047764 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim -_08047764: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_Egg_1 - - thumb_func_start SpriteCB_Egg_2 -SpriteCB_Egg_2: @ 804776C - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r6, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _08047826 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x26 - ble _080477E4 - ldr r0, _080477D0 @ =SpriteCB_Egg_3 - str r0, [r4, 0x1C] - strh r6, [r4, 0x2E] - ldr r5, _080477D4 @ =gUnknown_3000E74 - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080477D8 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - ldr r4, _080477DC @ =gSprites - ldr r3, [r5] - ldrb r2, [r3, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r6, [r1, 0x24] - ldrb r2, [r3, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldr r2, _080477E0 @ =gUnknown_82349CC - lsrs r0, 14 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r1, 0x26] - b _08047826 - .align 2, 0 -_080477D0: .4byte SpriteCB_Egg_3 -_080477D4: .4byte gUnknown_3000E74 -_080477D8: .4byte gPlayerParty -_080477DC: .4byte gSprites -_080477E0: .4byte gUnknown_82349CC -_080477E4: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08047818 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - bl CreateRandomEggShardSprite - bl CreateRandomEggShardSprite -_08047818: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1E - bne _08047826 - movs r0, 0x17 - bl PlaySE -_08047826: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end SpriteCB_Egg_2 - - thumb_func_start SpriteCB_Egg_3 -SpriteCB_Egg_3: @ 804782C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - ble _08047846 - ldr r0, _0804784C @ =SpriteCB_Egg_4 - str r0, [r1, 0x1C] - movs r0, 0 - strh r0, [r1, 0x2E] -_08047846: - pop {r0} - bx r0 - .align 2, 0 -_0804784C: .4byte SpriteCB_Egg_4 - thumb_func_end SpriteCB_Egg_3 - - thumb_func_start SpriteCB_Egg_4 -SpriteCB_Egg_4: @ 8047850 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08047870 - movs r1, 0x1 - negs r1, r1 - ldr r0, _080478C4 @ =0x0000ffff - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08047870: - ldrh r0, [r5, 0x2E] - cmp r0, 0x3 - bhi _0804788C - movs r4, 0 -_08047878: - bl CreateRandomEggShardSprite - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08047878 -_0804788C: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - ldr r0, _080478C8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080478BA - movs r0, 0x6A - bl PlaySE - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080478CC @ =SpriteCB_Egg_5 - str r0, [r5, 0x1C] - strh r4, [r5, 0x2E] -_080478BA: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080478C4: .4byte 0x0000ffff -_080478C8: .4byte gPaletteFade -_080478CC: .4byte SpriteCB_Egg_5 - thumb_func_end SpriteCB_Egg_4 - - thumb_func_start SpriteCB_Egg_5 -SpriteCB_Egg_5: @ 80478D0 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0804790C - ldr r4, _08047960 @ =gSprites - ldr r3, _08047964 @ =gUnknown_3000E74 - ldr r0, [r3] - ldrb r1, [r0, 0x1] - 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] - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim -_0804790C: - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x8 - bne _08047926 - movs r1, 0x1 - negs r1, r1 - ldr r0, _08047968 @ =0x0000ffff - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_08047926: - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x9 - bgt _08047944 - ldr r2, _08047960 @ =gSprites - ldr r0, _08047964 @ =gUnknown_3000E74 - ldr r0, [r0] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_08047944: - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x28 - ble _08047952 - ldr r0, _0804796C @ =SpriteCallbackDummy - str r0, [r5, 0x1C] -_08047952: - adds r0, r1, 0x1 - strh r0, [r5, 0x2E] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08047960: .4byte gSprites -_08047964: .4byte gUnknown_3000E74 -_08047968: .4byte 0x0000ffff -_0804796C: .4byte SpriteCallbackDummy - thumb_func_end SpriteCB_Egg_5 - - thumb_func_start SpriteCB_EggShard -SpriteCB_EggShard: @ 8047970 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x32] - ldrh r3, [r2, 0x38] - adds r0, r1, r3 - strh r0, [r2, 0x38] - movs r4, 0x36 - ldrsh r0, [r2, r4] - cmp r0, 0 - bge _0804798E - adds r0, 0xFF -_0804798E: - asrs r0, 8 - strh r0, [r2, 0x24] - movs r3, 0x38 - ldrsh r0, [r2, r3] - cmp r0, 0 - bge _0804799C - adds r0, 0xFF -_0804799C: - asrs r0, 8 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r3, r1, r0 - strh r3, [r2, 0x32] - movs r4, 0x22 - ldrsh r1, [r2, r4] - movs r4, 0x26 - ldrsh r0, [r2, r4] - adds r0, r1, r0 - adds r1, 0x14 - cmp r0, r1 - ble _080479C2 - lsls r0, r3, 16 - cmp r0, 0 - ble _080479C2 - adds r0, r2, 0 - bl DestroySprite -_080479C2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_EggShard - - thumb_func_start CreateRandomEggShardSprite -CreateRandomEggShardSprite: @ 80479C8 - push {r4-r6,lr} - sub sp, 0x8 - ldr r2, _08047A14 @ =gUnknown_82601BC - ldr r0, _08047A18 @ =gUnknown_3000E74 - ldr r6, [r0] - ldrb r3, [r6, 0x7] - lsls r0, r3, 2 - adds r1, r0, r2 - ldrh r5, [r1] - adds r2, 0x2 - adds r0, r2 - ldrh r4, [r0] - adds r3, 0x1 - strb r3, [r6, 0x7] - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x64 - str r0, [sp] - lsrs r1, 16 - str r1, [sp, 0x4] - movs r0, 0x78 - movs r1, 0x3C - adds r2, r5, 0 - adds r3, r4, 0 - bl CreateEggShardSprite - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047A14: .4byte gUnknown_82601BC -_08047A18: .4byte gUnknown_3000E74 - thumb_func_end CreateRandomEggShardSprite - - thumb_func_start CreateEggShardSprite -CreateEggShardSprite: @ 8047A1C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r8, r3 - ldr r0, [sp, 0x1C] - mov r9, r0 - ldr r1, [sp, 0x20] - mov r10, r1 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r1, r9 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _08047A94 @ =gUnknown_8260184 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08047A98 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x30] - mov r1, r8 - strh r1, [r0, 0x32] - mov r1, r9 - strh r1, [r0, 0x34] - mov r1, r10 - bl StartSpriteAnim - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047A94: .4byte gUnknown_8260184 -_08047A98: .4byte gSprites - thumb_func_end CreateEggShardSprite - - thumb_func_start EggHatchPrintMessage -EggHatchPrintMessage: @ 8047A9C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - adds r5, r0, 0 - mov r8, r1 - adds r6, r2, 0 - ldr r4, [sp, 0x2C] - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0xFF - str r3, [sp, 0x14] - bl FillWindowPixelBuffer - ldr r2, _08047B08 @ =gUnknown_3000E74 - ldr r1, [r2] - movs r0, 0 - strb r0, [r1, 0xE] - ldr r1, [r2] - movs r0, 0x5 - strb r0, [r1, 0xF] - ldr r1, [r2] - movs r0, 0x6 - strb r0, [r1, 0x10] - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - ldr r0, [r2] - adds r0, 0xE - str r0, [sp, 0x8] - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - mov r0, r8 - str r0, [sp, 0x10] - adds r0, r5, 0 - movs r1, 0x3 - adds r2, r6, 0 - ldr r3, [sp, 0x14] - bl AddTextPrinterParametrized2 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047B08: .4byte gUnknown_3000E74 - thumb_func_end EggHatchPrintMessage - .align 2, 0 @ Don't pad with nop. diff --git a/asm/electric.s b/asm/electric.s new file mode 100644 index 000000000..187e30b6d --- /dev/null +++ b/asm/electric.s @@ -0,0 +1,2675 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80ADBEC +sub_80ADBEC: @ 80ADBEC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080ADC0C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080ADC14 + ldr r0, _080ADC10 @ =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080ADC20 + .align 2, 0 +_080ADC0C: .4byte gBattleAnimAttacker +_080ADC10: .4byte gBattleAnimArgs +_080ADC14: + ldr r1, _080ADC34 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, r1, 0 +_080ADC20: + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080ADC38 @ =sub_80ADC3C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADC34: .4byte gBattleAnimArgs +_080ADC38: .4byte sub_80ADC3C + thumb_func_end sub_80ADBEC + + thumb_func_start sub_80ADC3C +sub_80ADC3C: @ 80ADC3C + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080ADC52 + adds r0, r2, 0 + bl DestroyAnimSprite +_080ADC52: + pop {r0} + bx r0 + thumb_func_end sub_80ADC3C + + thumb_func_start sub_80ADC58 +sub_80ADC58: @ 80ADC58 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080ADC78 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080ADC80 + ldr r0, _080ADC7C @ =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r0, [r0] + subs r1, r0 + strh r1, [r4, 0x20] + b _080ADC8A + .align 2, 0 +_080ADC78: .4byte gBattleAnimAttacker +_080ADC7C: .4byte gBattleAnimArgs +_080ADC80: + ldr r0, _080ADC94 @ =gBattleAnimArgs + ldrh r0, [r0] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] +_080ADC8A: + ldr r0, _080ADC98 @ =sub_80ADC9C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADC94: .4byte gBattleAnimArgs +_080ADC98: .4byte sub_80ADC9C + thumb_func_end sub_80ADC58 + + thumb_func_start sub_80ADC9C +sub_80ADC9C: @ 80ADC9C + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080ADCB2 + adds r0, r2, 0 + bl move_anim_8074EE0 +_080ADCB2: + pop {r0} + bx r0 + thumb_func_end sub_80ADC9C + + thumb_func_start sub_80ADCB8 +sub_80ADCB8: @ 80ADCB8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080ADCFC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080ADD00 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080ADD08 + ldr r2, _080ADD04 @ =gBattleAnimArgs + ldrh r0, [r5, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + ldrh r1, [r2, 0x2] + subs r0, r1 + strh r0, [r5, 0x22] + b _080ADD1C + .align 2, 0 +_080ADCFC: .4byte gBattleAnimTarget +_080ADD00: .4byte gBattleAnimAttacker +_080ADD04: .4byte gBattleAnimArgs +_080ADD08: + ldr r0, _080ADD40 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x20] + ldrh r1, [r0, 0x2] + ldrh r2, [r5, 0x22] + adds r1, r2 + strh r1, [r5, 0x22] + adds r2, r0, 0 +_080ADD1C: + movs r0, 0 + strh r0, [r5, 0x2E] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x30] + ldrh r0, [r2, 0x6] + strh r0, [r5, 0x32] + ldrh r0, [r2, 0x8] + strh r0, [r5, 0x34] + ldr r1, _080ADD44 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080ADD48 @ =sub_8074A80 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ADD40: .4byte gBattleAnimArgs +_080ADD44: .4byte move_anim_8074EE0 +_080ADD48: .4byte sub_8074A80 + thumb_func_end sub_80ADCB8 + + thumb_func_start sub_80ADD4C +sub_80ADD4C: @ 80ADD4C + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080ADD64 @ =gBattleAnimArgs + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080ADDC4 + cmp r0, 0x1 + bgt _080ADD68 + cmp r0, 0 + beq _080ADD72 + b _080ADDC4 + .align 2, 0 +_080ADD64: .4byte gBattleAnimArgs +_080ADD68: + cmp r0, 0x2 + beq _080ADD7C + cmp r0, 0x3 + beq _080ADDA0 + b _080ADDC4 +_080ADD72: + ldr r0, _080ADD78 @ =gBattleAnimAttacker + b _080ADDC6 + .align 2, 0 +_080ADD78: .4byte gBattleAnimAttacker +_080ADD7C: + ldr r4, _080ADD94 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r6, 0x2 + eors r0, r6 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + bne _080ADD98 + ldrb r4, [r4] + b _080ADDC8 + .align 2, 0 +_080ADD94: .4byte gBattleAnimAttacker +_080ADD98: + ldrb r0, [r4] + adds r4, r6, 0 + eors r4, r0 + b _080ADDC8 +_080ADDA0: + ldr r0, _080ADDBC @ =gBattleAnimAttacker + ldrb r0, [r0] + movs r4, 0x2 + eors r0, r4 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080ADDC4 + ldr r0, _080ADDC0 @ =gBattleAnimTarget + ldrb r0, [r0] + eors r4, r0 + b _080ADDC8 + .align 2, 0 +_080ADDBC: .4byte gBattleAnimAttacker +_080ADDC0: .4byte gBattleAnimTarget +_080ADDC4: + ldr r0, _080ADDE8 @ =gBattleAnimTarget +_080ADDC6: + ldrb r4, [r0] +_080ADDC8: + ldr r0, _080ADDEC @ =gBattleAnimArgs + movs r2, 0xA + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080ADDF0 + adds r0, r4, 0 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r4, 0 + movs r1, 0x1 + b _080ADE02 + .align 2, 0 +_080ADDE8: .4byte gBattleAnimTarget +_080ADDEC: .4byte gBattleAnimArgs +_080ADDF0: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r4, 0 + movs r1, 0x3 +_080ADE02: + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r7, _080ADEA0 @ =gSineTable + ldr r6, _080ADEA4 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + lsls r0, 1 + adds r0, r7 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x2 + ldrsh r0, [r6, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x24] + movs r1, 0 + ldrsh r0, [r6, r1] + adds r0, 0x40 + lsls r0, 1 + adds r0, r7 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x2 + ldrsh r0, [r6, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x26] + ldrh r1, [r6, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ADE66 + adds r0, r4, 0 + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r5, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] +_080ADE66: + ldrb r2, [r5, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r0, 0x4 + ldrsh r1, [r6, r0] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + ldr r3, _080ADEA8 @ =gOamMatrices + lsls r2, 3 + adds r2, r3 + adds r1, 0x40 + lsls r1, 1 + adds r1, r7 + ldrh r1, [r1] + strh r1, [r2, 0x6] + strh r1, [r2] + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + ldrh r0, [r6, 0x6] + strh r0, [r5, 0x2E] + ldr r0, _080ADEAC @ =sub_80B1D3C + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ADEA0: .4byte gSineTable +_080ADEA4: .4byte gBattleAnimArgs +_080ADEA8: .4byte gOamMatrices +_080ADEAC: .4byte sub_80B1D3C + thumb_func_end sub_80ADD4C + + thumb_func_start sub_80ADEB0 +sub_80ADEB0: @ 80ADEB0 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r5, _080ADF24 @ =gBattleAnimArgs + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r6, _080ADF28 @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x38] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x3A] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x3C] + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0xC + ldrsh r0, [r5, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080ADF2C @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080ADF30 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r1, _080ADF34 @ =sub_80ADF38 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADF24: .4byte gBattleAnimArgs +_080ADF28: .4byte gBattleAnimTarget +_080ADF2C: .4byte 0x000003ff +_080ADF30: .4byte 0xfffffc00 +_080ADF34: .4byte sub_80ADF38 + thumb_func_end sub_80ADEB0 + + thumb_func_start sub_80ADF38 +sub_80ADF38: @ 80ADF38 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080ADFA2 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080ADFA8 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080ADFA8 +_080ADFA2: + adds r0, r4, 0 + bl DestroyAnimSprite +_080ADFA8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ADF38 + + thumb_func_start sub_80ADFB0 +sub_80ADFB0: @ 80ADFB0 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x38] + subs r0, 0x1 + strh r0, [r3, 0x38] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080ADFE8 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x36] + strh r0, [r3, 0x38] +_080ADFE8: + ldrh r0, [r3, 0x34] + subs r1, r0, 0x1 + strh r1, [r3, 0x34] + lsls r0, 16 + cmp r0, 0 + bgt _080ADFFA + adds r0, r3, 0 + bl DestroyAnimSprite +_080ADFFA: + pop {r0} + bx r0 + thumb_func_end sub_80ADFB0 + + thumb_func_start sub_80AE000 +sub_80AE000: @ 80AE000 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AE01C + ldr r0, _080AE060 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AE024 +_080AE01C: + ldr r1, _080AE064 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080AE024: + ldr r5, _080AE060 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080AE064 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4] + strh r0, [r6, 0x34] + ldrh r0, [r4, 0x6] + strh r0, [r6, 0x36] + strh r0, [r6, 0x38] + ldr r0, _080AE068 @ =sub_80ADFB0 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AE060: .4byte gBattleAnimTarget +_080AE064: .4byte gBattleAnimArgs +_080AE068: .4byte sub_80ADFB0 + thumb_func_end sub_80AE000 + + thumb_func_start sub_80AE06C +sub_80AE06C: @ 80AE06C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r1, _080AE088 @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x2E] + movs r2, 0xE + ldrsh r0, [r1, r2] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080AE090 + ldr r0, _080AE08C @ =gBattleAnimTarget + b _080AE092 + .align 2, 0 +_080AE088: .4byte gBattleAnimArgs +_080AE08C: .4byte gBattleAnimTarget +_080AE090: + ldr r0, _080AE118 @ =gBattleAnimAttacker +_080AE092: + ldrb r6, [r0] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AE0AA + adds r0, r6, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AE0B2 +_080AE0AA: + ldr r1, _080AE11C @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080AE0B2: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080AE11C @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r3, [r4] + adds r0, r3 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r1, [r4, 0xE] + ldr r0, _080AE120 @ =0x00007fff + ands r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x38] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0x3A] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x3C] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080AE124 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080AE128 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r1, _080AE12C @ =sub_80AE130 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AE118: .4byte gBattleAnimAttacker +_080AE11C: .4byte gBattleAnimArgs +_080AE120: .4byte 0x00007fff +_080AE124: .4byte 0x000003ff +_080AE128: .4byte 0xfffffc00 +_080AE12C: .4byte sub_80AE130 + thumb_func_end sub_80AE06C + + thumb_func_start sub_80AE130 +sub_80AE130: @ 80AE130 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _080AE186 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080AE186: + ldrh r0, [r4, 0x2E] + subs r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080AE198 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AE198: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AE130 + + thumb_func_start sub_80AE1A0 +sub_80AE1A0: @ 80AE1A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075114 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldr r3, _080AE1DC @ =gBattleAnimArgs + movs r5, 0x6 + ldrsh r0, [r3, r5] + lsls r0, 2 + adds r1, r0 + ldr r5, _080AE1E0 @ =0x000003ff + adds r0, r5, 0 + ands r1, r0 + ldr r0, _080AE1E4 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + movs r1, 0x6 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + bne _080AE1E8 + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + b _080AE1F6 + .align 2, 0 +_080AE1DC: .4byte gBattleAnimArgs +_080AE1E0: .4byte 0x000003ff +_080AE1E4: .4byte 0xfffffc00 +_080AE1E8: + cmp r0, 0x2 + bne _080AE1FA + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x20 +_080AE1F6: + orrs r1, r0 + strb r1, [r4, 0x3] +_080AE1FA: + ldr r0, _080AE214 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080AE218 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080AE21C @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE214: .4byte gBattleAnimArgs +_080AE218: .4byte sub_8074C44 +_080AE21C: .4byte DestroyAnimSprite + thumb_func_end sub_80AE1A0 + + thumb_func_start sub_80AE220 +sub_80AE220: @ 80AE220 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r6, _080AE268 @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0 + bl sub_8074480 + ldr r1, _080AE26C @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r1 + lsls r0, 24 + ldr r5, _080AE270 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r4, 0x8] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0xC] + ldr r0, _080AE274 @ =sub_80AE278 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AE268: .4byte gBattleAnimTarget +_080AE26C: .4byte gTasks +_080AE270: .4byte gBattleAnimArgs +_080AE274: .4byte sub_80AE278 + thumb_func_end sub_80AE220 + + thumb_func_start sub_80AE278 +sub_80AE278: @ 80AE278 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r5, 0 + movs r7, 0 + ldr r1, _080AE2B8 @ =gTasks + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldrb r2, [r0, 0xC] + str r2, [sp] + ldrh r4, [r0, 0x8] + ldrh r6, [r0, 0xA] + movs r3, 0xC + ldrsh r0, [r0, r3] + mov r10, r1 + cmp r0, 0 + bne _080AE2BC + movs r0, 0 + mov r8, r0 + movs r2, 0x1 + movs r1, 0x10 + mov r12, r1 + b _080AE2C6 + .align 2, 0 +_080AE2B8: .4byte gTasks +_080AE2BC: + movs r2, 0x10 + mov r12, r2 + movs r3, 0x8 + mov r8, r3 + movs r2, 0x4 +_080AE2C6: + mov r0, r9 + lsls r1, r0, 2 + adds r0, r1, r0 + lsls r0, 3 + add r0, r10 + movs r3, 0x1C + ldrsh r0, [r0, r3] + mov r10, r1 + cmp r0, 0xA + bhi _080AE3BC + lsls r0, 2 + ldr r1, _080AE2E4 @ =_080AE2E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AE2E4: .4byte _080AE2E8 + .align 2, 0 +_080AE2E8: + .4byte _080AE314 + .4byte _080AE3BC + .4byte _080AE328 + .4byte _080AE3BC + .4byte _080AE348 + .4byte _080AE3BC + .4byte _080AE35E + .4byte _080AE3BC + .4byte _080AE380 + .4byte _080AE3BC + .4byte _080AE3B4 +_080AE314: + ldr r0, _080AE324 @ =gUnknown_83E60A0 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + mov r4, r12 + lsls r3, r4, 16 + b _080AE396 + .align 2, 0 +_080AE324: .4byte gUnknown_83E60A0 +_080AE328: + mov r0, r12 + lsls r3, r0, 17 + mov r1, r8 + adds r0, r1, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _080AE344 @ =gUnknown_83E60A0 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + b _080AE396 + .align 2, 0 +_080AE344: .4byte gUnknown_83E60A0 +_080AE348: + mov r3, r12 + lsls r0, r3, 16 + asrs r0, 16 + lsls r3, r0, 1 + adds r3, r0 + lsls r0, r2, 1 + add r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + b _080AE38A +_080AE35E: + mov r0, r12 + lsls r3, r0, 18 + lsls r0, r2, 1 + adds r0, r2 + add r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _080AE37C @ =gUnknown_83E60A0 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + b _080AE396 + .align 2, 0 +_080AE37C: .4byte gUnknown_83E60A0 +_080AE380: + mov r1, r12 + lsls r0, r1, 16 + asrs r0, 16 + lsls r3, r0, 2 + adds r3, r0 +_080AE38A: + ldr r0, _080AE3B0 @ =gUnknown_83E60A0 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + lsls r3, 16 +_080AE396: + asrs r3, 16 + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + b _080AE3BC + .align 2, 0 +_080AE3B0: .4byte gUnknown_83E60A0 +_080AE3B4: + mov r0, r9 + bl DestroyAnimVisualTask + b _080AE400 +_080AE3BC: + cmp r7, 0 + beq _080AE3F0 + ldr r4, _080AE410 @ =gSprites + lsls r3, r5, 4 + adds r3, r5 + lsls r3, 2 + adds r0, r3, r4 + ldrh r5, [r0, 0x4] + lsls r2, r5, 22 + lsrs r2, 22 + add r2, r8 + ldr r6, _080AE414 @ =0x000003ff + adds r1, r6, 0 + ands r2, r1 + ldr r1, _080AE418 @ =0xfffffc00 + ands r1, r5 + orrs r1, r2 + strh r1, [r0, 0x4] + mov r1, sp + ldrh r1, [r1] + strh r1, [r0, 0x2E] + adds r4, 0x1C + adds r3, r4 + ldr r1, [r3] + bl _call_via_r1 +_080AE3F0: + ldr r0, _080AE41C @ =gTasks + mov r1, r10 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] +_080AE400: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE410: .4byte gSprites +_080AE414: .4byte 0x000003ff +_080AE418: .4byte 0xfffffc00 +_080AE41C: .4byte gTasks + thumb_func_end sub_80AE278 + + thumb_func_start sub_80AE420 +sub_80AE420: @ 80AE420 + push {lr} + adds r3, r0, 0 + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080AE442 + ldrb r1, [r3, 0x1] + movs r2, 0x3F + adds r0, r2, 0 + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x1] + ldrb r0, [r3, 0x3] + ands r2, r0 + strb r2, [r3, 0x3] + b _080AE456 +_080AE442: + ldrb r2, [r3, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0x1] + ldrb r0, [r3, 0x3] + ands r1, r0 + movs r0, 0x40 + orrs r1, r0 + strb r1, [r3, 0x3] +_080AE456: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bne _080AE46A + adds r0, r3, 0 + bl DestroySprite +_080AE46A: + pop {r0} + bx r0 + thumb_func_end sub_80AE420 + + thumb_func_start sub_80AE470 +sub_80AE470: @ 80AE470 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080AE4D8 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r3, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + ldr r0, _080AE4DC @ =gUnknown_83E60B8 + adds r1, 0x20 + lsls r1, 16 + asrs r1, 16 + movs r7, 0x22 + ldrsh r2, [r4, r7] + adds r3, r4, 0 + adds r3, 0x43 + ldrb r3, [r3] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080AE4E0 @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r6, r2, r3 + ldrh r5, [r6, 0x4] + lsls r1, r5, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r7, _080AE4E4 @ =0x000003ff + adds r0, r7, 0 + ands r1, r0 + ldr r0, _080AE4E8 @ =0xfffffc00 + ands r0, r5 + orrs r0, r1 + strh r0, [r6, 0x4] + ldr r1, _080AE4EC @ =gUnknown_2037EE2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + adds r3, 0x1C + adds r2, r3 + ldr r0, _080AE4F0 @ =sub_80AE4F4 + str r0, [r2] + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE4D8: .4byte gBattleAnimArgs +_080AE4DC: .4byte gUnknown_83E60B8 +_080AE4E0: .4byte gSprites +_080AE4E4: .4byte 0x000003ff +_080AE4E8: .4byte 0xfffffc00 +_080AE4EC: .4byte gUnknown_2037EE2 +_080AE4F0: .4byte sub_80AE4F4 + thumb_func_end sub_80AE470 + + thumb_func_start sub_80AE4F4 +sub_80AE4F4: @ 80AE4F4 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080AE528 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080AE528: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080AE53C + adds r0, r3, 0 + bl DestroyAnimSprite +_080AE53C: + pop {r0} + bx r0 + thumb_func_end sub_80AE4F4 + + thumb_func_start sub_80AE540 +sub_80AE540: @ 80AE540 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080AE560 @ =gTasks + adds r5, r1, r0 + ldr r0, _080AE564 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080AE56C + ldr r4, _080AE568 @ =gBattleAnimAttacker + b _080AE56E + .align 2, 0 +_080AE560: .4byte gTasks +_080AE564: .4byte gBattleAnimArgs +_080AE568: .4byte gBattleAnimAttacker +_080AE56C: + ldr r4, _080AE5B0 @ =gBattleAnimTarget +_080AE56E: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x26] + ldr r2, _080AE5B4 @ =gBattleAnimArgs + ldrh r0, [r2, 0x2] + movs r1, 0 + strh r0, [r5, 0x14] + strh r1, [r5, 0x16] + strh r1, [r5, 0x18] + strh r1, [r5, 0x1A] + strh r1, [r5, 0x1C] + ldrh r0, [r2, 0x6] + strh r0, [r5, 0x1E] + strh r1, [r5, 0x20] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x22] + ldr r0, _080AE5B8 @ =sub_80AE5BC + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE5B0: .4byte gBattleAnimTarget +_080AE5B4: .4byte gBattleAnimArgs +_080AE5B8: .4byte sub_80AE5BC + thumb_func_end sub_80AE540 + + thumb_func_start sub_80AE5BC +sub_80AE5BC: @ 80AE5BC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r2, r6, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080AE6A4 @ =gTasks + adds r5, r0, r1 + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080AE6BC + ldrh r0, [r5, 0x20] + adds r0, 0x1 + movs r7, 0 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x22 + ldrsh r1, [r5, r2] + cmp r0, r1 + ble _080AE6CA + strh r7, [r5, 0x20] + ldr r0, _080AE6A8 @ =gUnknown_83E6120 + movs r3, 0x24 + ldrsh r1, [r5, r3] + movs r3, 0x26 + ldrsh r2, [r5, r3] + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080AE6CA + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080AE6AC @ =gSprites + adds r4, r0 + ldr r1, _080AE6B0 @ =gUnknown_83E60D0 + movs r2, 0x1A + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + movs r3, 0 + ldrsb r3, [r0, r3] + ldrh r0, [r4, 0x20] + adds r3, r0 + strh r3, [r4, 0x20] + movs r2, 0x1A + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + movs r2, 0 + ldrsb r2, [r0, r2] + ldrh r0, [r4, 0x22] + adds r2, r0 + strh r2, [r4, 0x22] + movs r1, 0x18 + ldrsh r0, [r5, r1] + lsls r1, r0, 2 + adds r1, r0 + movs r0, 0x28 + subs r0, r1 + strh r0, [r4, 0x2E] + strh r3, [r4, 0x30] + ldrh r0, [r5, 0x24] + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + ldrh r0, [r5, 0x26] + strh r0, [r4, 0x36] + strh r6, [r4, 0x38] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080AE6B4 @ =sub_80AE704 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080AE6B8 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldrh r0, [r5, 0x1A] + adds r0, 0x1 + strh r0, [r5, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080AE674 + strh r7, [r5, 0x1A] +_080AE674: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1E + ldrsh r1, [r5, r2] + cmp r0, r1 + blt _080AE696 + strh r7, [r5, 0x1C] + ldrh r1, [r5, 0x18] + movs r3, 0x18 + ldrsh r0, [r5, r3] + cmp r0, 0x5 + bgt _080AE696 + adds r0, r1, 0x1 + strh r0, [r5, 0x18] +_080AE696: + ldrh r0, [r5, 0x16] + adds r0, 0x1 + strh r0, [r5, 0x16] + ldrh r0, [r5, 0x14] + subs r0, 0x1 + strh r0, [r5, 0x14] + b _080AE6CA + .align 2, 0 +_080AE6A4: .4byte gTasks +_080AE6A8: .4byte gUnknown_83E6120 +_080AE6AC: .4byte gSprites +_080AE6B0: .4byte gUnknown_83E60D0 +_080AE6B4: .4byte sub_80AE704 +_080AE6B8: .4byte sub_8074F6C +_080AE6BC: + movs r1, 0x16 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AE6CA + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080AE6CA: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AE5BC + + thumb_func_start sub_80AE6D0 +sub_80AE6D0: @ 80AE6D0 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080AE6F8 + ldr r2, _080AE700 @ =gTasks + movs r0, 0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x16] + subs r1, 0x1 + strh r1, [r0, 0x16] + adds r0, r4, 0 + bl DestroySprite +_080AE6F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AE700: .4byte gTasks + thumb_func_end sub_80AE6D0 + + thumb_func_start sub_80AE704 +sub_80AE704: @ 80AE704 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _080AE718 @ =sub_80AE6D0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AE718: .4byte sub_80AE6D0 + thumb_func_end sub_80AE704 + + thumb_func_start sub_80AE71C +sub_80AE71C: @ 80AE71C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080AE730 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080AE738 + ldr r4, _080AE734 @ =gBattleAnimAttacker + b _080AE73A + .align 2, 0 +_080AE730: .4byte gBattleAnimArgs +_080AE734: .4byte gBattleAnimAttacker +_080AE738: + ldr r4, _080AE768 @ =gBattleAnimTarget +_080AE73A: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080AE76C @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080AE770 @ =sub_8074F50 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE768: .4byte gBattleAnimTarget +_080AE76C: .4byte move_anim_8074EE0 +_080AE770: .4byte sub_8074F50 + thumb_func_end sub_80AE71C + + thumb_func_start sub_80AE774 +sub_80AE774: @ 80AE774 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080AE788 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080AE790 + ldr r4, _080AE78C @ =gBattleAnimAttacker + b _080AE792 + .align 2, 0 +_080AE788: .4byte gBattleAnimArgs +_080AE78C: .4byte gBattleAnimAttacker +_080AE790: + ldr r4, _080AE7CC @ =gBattleAnimTarget +_080AE792: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080AE7D0 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x24] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x26] + ldr r1, _080AE7D4 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080AE7D8 @ =sub_8074F6C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE7CC: .4byte gBattleAnimTarget +_080AE7D0: .4byte gBattleAnimArgs +_080AE7D4: .4byte DestroyAnimSprite +_080AE7D8: .4byte sub_8074F6C + thumb_func_end sub_80AE774 + + thumb_func_start sub_80AE7DC +sub_80AE7DC: @ 80AE7DC + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r4, _080AE834 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + movs r0, 0x10 + strh r0, [r5, 0x3C] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080AE82A + movs r1, 0x3C + ldrsh r0, [r5, r1] + negs r0, r0 + strh r0, [r5, 0x3C] +_080AE82A: + ldr r0, _080AE838 @ =sub_80AE83C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE834: .4byte gBattleAnimAttacker +_080AE838: .4byte sub_80AE83C + thumb_func_end sub_80AE7DC + + thumb_func_start sub_80AE83C +sub_80AE83C: @ 80AE83C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AE84E + cmp r0, 0x1 + beq _080AE864 + b _080AE894 +_080AE84E: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080AE894 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080AE894 +_080AE864: + ldrh r2, [r4, 0x3C] + ldrh r1, [r4, 0x20] + adds r0, r2, r1 + strh r0, [r4, 0x20] + ldr r3, _080AE89C @ =gSprites + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x24] + adds r2, r1 + strh r2, [r0, 0x24] + ldrh r0, [r4, 0x20] + adds r0, 0x50 + lsls r0, 16 + movs r1, 0xC8 + lsls r1, 17 + cmp r0, r1 + bls _080AE894 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080AE894: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AE89C: .4byte gSprites + thumb_func_end sub_80AE83C + + thumb_func_start sub_80AE8A0 +sub_80AE8A0: @ 80AE8A0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080AE8C4 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080AE934 + cmp r0, 0x1 + bgt _080AE8C8 + cmp r0, 0 + beq _080AE8D4 + b _080AEA04 + .align 2, 0 +_080AE8C4: .4byte gTasks +_080AE8C8: + cmp r0, 0x2 + beq _080AE990 + cmp r0, 0x3 + bne _080AE8D2 + b _080AE9E4 +_080AE8D2: + b _080AEA04 +_080AE8D4: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r5, 0x26] + ldr r4, _080AE908 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AE910 + ldr r0, _080AE90C @ =0x0000ffe0 + strh r0, [r5, 0x24] + movs r0, 0x2 + b _080AE916 + .align 2, 0 +_080AE908: .4byte gBattleAnimAttacker +_080AE90C: .4byte 0x0000ffe0 +_080AE910: + movs r0, 0x20 + strh r0, [r5, 0x24] + ldr r0, _080AE92C @ =0x0000fffe +_080AE916: + strh r0, [r5, 0x22] + ldr r2, _080AE930 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r5, 0x24] + strh r1, [r0, 0x24] + b _080AE9D6 + .align 2, 0 +_080AE92C: .4byte 0x0000fffe +_080AE930: .4byte gSprites +_080AE934: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AEA04 + movs r0, 0 + strh r0, [r5, 0xA] + ldr r4, _080AE98C @ =gSprites + movs r1, 0x26 + ldrsh r0, [r5, r1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + adds r2, 0x3E + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrh r1, [r5, 0x24] + movs r2, 0x24 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080AE9D6 + ldrh r2, [r5, 0x22] + adds r2, r1, r2 + strh r2, [r5, 0x24] + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x24] + b _080AEA04 + .align 2, 0 +_080AE98C: .4byte gSprites +_080AE990: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AEA04 + movs r0, 0 + strh r0, [r5, 0xA] + ldr r1, _080AE9E0 @ =gSprites + movs r2, 0x26 + ldrsh r0, [r5, r2] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + adds r2, 0x3E + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bne _080AEA04 +_080AE9D6: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080AEA04 + .align 2, 0 +_080AE9E0: .4byte gSprites +_080AE9E4: + ldr r2, _080AEA0C @ =gSprites + movs r0, 0x26 + ldrsh r1, [r5, r0] + 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] + adds r0, r3, 0 + bl DestroyAnimVisualTask +_080AEA04: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AEA0C: .4byte gSprites + thumb_func_end sub_80AE8A0 + + thumb_func_start sub_80AEA10 +sub_80AEA10: @ 80AEA10 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080AEA34 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080AEA2A + b _080AEB50 +_080AEA2A: + cmp r0, 0x1 + bgt _080AEA38 + cmp r0, 0 + beq _080AEA40 + b _080AEB92 + .align 2, 0 +_080AEA34: .4byte gTasks +_080AEA38: + cmp r0, 0x2 + bne _080AEA3E + b _080AEB84 +_080AEA3E: + b _080AEB92 +_080AEA40: + ldr r4, _080AEA80 @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080AEA56 + movs r1, 0x1 +_080AEA56: + movs r6, 0 + strh r1, [r5, 0xA] + ldr r0, _080AEA84 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r2, [r0, r1] + adds r3, r0, 0 + cmp r2, 0 + beq _080AEA8C + cmp r2, 0x4 + beq _080AEAB4 + ldrh r1, [r3] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AEAEC + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0xE] + ldr r0, _080AEA88 @ =0x0000fff0 + b _080AEAF4 + .align 2, 0 +_080AEA80: .4byte gBattleAnimAttacker +_080AEA84: .4byte gBattleAnimArgs +_080AEA88: .4byte 0x0000fff0 +_080AEA8C: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + movs r2, 0xA + ldrsh r0, [r5, r2] + lsls r0, 7 + adds r0, 0x78 + strh r0, [r5, 0x10] + b _080AEB2A +_080AEAB4: + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r1, 7 + movs r0, 0x78 + subs r0, r1 + strh r0, [r5, 0xE] + ldr r4, _080AEAE8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r2, 0xA + ldrsh r1, [r5, r2] + lsls r1, 5 + subs r0, r1 + strh r0, [r5, 0x10] + b _080AEB2A + .align 2, 0 +_080AEAE8: .4byte gBattleAnimTarget +_080AEAEC: + ldr r0, _080AEB10 @ =0x0000fff0 + strh r0, [r5, 0xE] + movs r0, 0x80 + lsls r0, 1 +_080AEAF4: + strh r0, [r5, 0x10] + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080AEB14 + movs r2, 0 + ldrsh r0, [r3, r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 1 + movs r0, 0x50 + subs r0, r1 + strh r0, [r5, 0x12] + b _080AEB2A + .align 2, 0 +_080AEB10: .4byte 0x0000fff0 +_080AEB14: + movs r0, 0 + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + adds r0, 0x28 + strh r0, [r5, 0x12] + ldrh r1, [r5, 0xE] + ldrh r0, [r5, 0x10] + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] +_080AEB2A: + movs r2, 0xE + ldrsh r1, [r5, r2] + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + bge _080AEB40 + movs r1, 0 + movs r0, 0x1 + strh r0, [r5, 0xA] + strh r1, [r5, 0x14] + b _080AEB7C +_080AEB40: + ldr r0, _080AEB4C @ =0x0000ffff + strh r0, [r5, 0xA] + movs r0, 0x3 + strh r0, [r5, 0x14] + b _080AEB7C + .align 2, 0 +_080AEB4C: .4byte 0x0000ffff +_080AEB50: + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + ble _080AEB92 + movs r0, 0 + strh r0, [r5, 0xC] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80AEB98 + lsls r0, 24 + cmp r0, 0 + bne _080AEB7C + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80AEB98 + lsls r0, 24 + cmp r0, 0 + beq _080AEB92 +_080AEB7C: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080AEB92 +_080AEB84: + movs r1, 0x16 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AEB92 + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AEB92: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80AEA10 + + thumb_func_start sub_80AEB98 +sub_80AEB98: @ 80AEB98 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080AEC24 @ =gUnknown_83E6278 + movs r2, 0xE + ldrsh r1, [r4, r2] + movs r3, 0x12 + ldrsh r2, [r4, r3] + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080AEBCE + ldr r1, _080AEC28 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strh r5, [r0, 0x3A] + movs r1, 0x7 + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] +_080AEBCE: + ldrh r1, [r4, 0xA] + ldrh r5, [r4, 0x14] + adds r0, r1, r5 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bge _080AEBE0 + movs r0, 0x3 + strh r0, [r4, 0x14] +_080AEBE0: + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + ble _080AEBEC + movs r0, 0 + strh r0, [r4, 0x14] +_080AEBEC: + movs r3, 0xA + ldrsh r0, [r4, r3] + lsls r0, 4 + ldrh r5, [r4, 0xE] + adds r2, r0, r5 + strh r2, [r4, 0xE] + lsls r0, r1, 16 + asrs r3, r0, 16 + cmp r3, 0x1 + bne _080AEC0C + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0x10 + ldrsh r1, [r4, r5] + cmp r0, r1 + bge _080AEC20 +_080AEC0C: + movs r0, 0x1 + negs r0, r0 + cmp r3, r0 + bne _080AEC2C + lsls r0, r2, 16 + asrs r0, 16 + movs r2, 0x10 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _080AEC2C +_080AEC20: + movs r0, 0x1 + b _080AEC2E + .align 2, 0 +_080AEC24: .4byte gUnknown_83E6278 +_080AEC28: .4byte gSprites +_080AEC2C: + movs r0, 0 +_080AEC2E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80AEB98 + + thumb_func_start sub_80AEC34 +sub_80AEC34: @ 80AEC34 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080AEC74 + ldr r3, _080AEC7C @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080AEC74: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AEC7C: .4byte gTasks + thumb_func_end sub_80AEC34 + + thumb_func_start sub_80AEC80 +sub_80AEC80: @ 80AEC80 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080AEC92 + cmp r0, 0x1 + beq _080AECC4 + b _080AECD8 +_080AEC92: + ldr r4, _080AECC0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080AECD8 + .align 2, 0 +_080AECC0: .4byte gBattleAnimAttacker +_080AECC4: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080AECD8 + adds r0, r5, 0 + bl move_anim_8074EE0 +_080AECD8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AEC80 + + thumb_func_start sub_80AECE0 +sub_80AECE0: @ 80AECE0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080AED04 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080AECFA + b _080AEE6C +_080AECFA: + lsls r0, 2 + ldr r1, _080AED08 @ =_080AED0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AED04: .4byte gTasks +_080AED08: .4byte _080AED0C + .align 2, 0 +_080AED0C: + .4byte _080AED20 + .4byte _080AEDB0 + .4byte _080AEDEC + .4byte _080AEE48 + .4byte _080AEE58 +_080AED20: + ldr r4, _080AEDA4 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x16] + movs r0, 0x4 + strh r0, [r5, 0x18] + ldr r0, _080AEDA8 @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + movs r2, 0x1C + ldrsh r0, [r5, r2] + movs r2, 0x14 + ldrsh r1, [r5, r2] + subs r0, r1 + movs r1, 0x5 + bl __divsi3 + strh r0, [r5, 0x1A] + movs r0, 0x7 + strh r0, [r5, 0x10] + ldr r0, _080AEDAC @ =0x0000ffff + strh r0, [r5, 0x12] + movs r0, 0xC + strh r0, [r5, 0x1E] + subs r0, 0x4C + bl sub_8073A44 + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0x20] + movs r0, 0x3F + bl sub_8073A44 + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0x22] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x24] + movs r1, 0x22 + ldrsh r0, [r5, r1] + movs r2, 0x20 + ldrsh r1, [r5, r2] + subs r0, r1 + movs r1, 0x3 + bl __divsi3 + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + b _080AEE6A + .align 2, 0 +_080AEDA4: .4byte gBattleAnimAttacker +_080AEDA8: .4byte gBattleAnimTarget +_080AEDAC: .4byte 0x0000ffff +_080AEDB0: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + cmp r0, 0 + ble _080AEDE0 + movs r0, 0 + strh r0, [r5, 0xA] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80AEE74 + lsls r0, 24 + cmp r0, 0 + beq _080AEDE0 + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0x5 + bne _080AEDDA + movs r0, 0x3 + b _080AEDDE +_080AEDDA: + ldrh r0, [r5, 0x8] + adds r0, 0x1 +_080AEDDE: + strh r0, [r5, 0x8] +_080AEDE0: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080AEE6C + b _080AEE62 +_080AEDEC: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080AEDFA + subs r0, r1, 0x1 + strh r0, [r5, 0x1E] +_080AEDFA: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + movs r3, 0 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080AEE6C + strh r3, [r5, 0xA] + ldrh r1, [r5, 0xC] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080AEE26 + movs r0, 0x4 + strh r0, [r5, 0x16] + movs r0, 0x44 + strh r0, [r5, 0x18] + strh r3, [r5, 0x10] + strh r2, [r5, 0x12] + b _080AEE36 +_080AEE26: + movs r0, 0x44 + strh r0, [r5, 0x16] + movs r0, 0x4 + strh r0, [r5, 0x18] + movs r0, 0x7 + strh r0, [r5, 0x10] + ldr r0, _080AEE44 @ =0x0000ffff + strh r0, [r5, 0x12] +_080AEE36: + movs r1, 0x1E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080AEE68 + movs r0, 0x4 + b _080AEE6A + .align 2, 0 +_080AEE44: .4byte 0x0000ffff +_080AEE48: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AEE6C + adds r0, r2, 0 + bl DestroyAnimVisualTask + b _080AEE6C +_080AEE58: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080AEE68 +_080AEE62: + subs r0, r1, 0x1 + strh r0, [r5, 0x1E] + b _080AEE6C +_080AEE68: + movs r0, 0x1 +_080AEE6A: + strh r0, [r5, 0x8] +_080AEE6C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AECE0 + + thumb_func_start sub_80AEE74 +sub_80AEE74: @ 80AEE74 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080AEF3C @ =gUnknown_83E62A8 + movs r2, 0x14 + ldrsh r1, [r4, r2] + movs r3, 0x16 + ldrsh r2, [r4, r3] + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080AEEE0 + ldr r1, _080AEF40 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldrh r6, [r4, 0x10] + adds r1, r6 + ldr r6, _080AEF44 @ =0x000003ff + adds r0, r6, 0 + ands r1, r0 + ldr r0, _080AEF48 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bge _080AEEC8 + movs r0, 0x7 + strh r0, [r4, 0x10] +_080AEEC8: + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0x7 + ble _080AEED4 + movs r0, 0 + strh r0, [r4, 0x10] +_080AEED4: + strh r5, [r3, 0x3A] + movs r0, 0x3 + strh r0, [r3, 0x3C] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] +_080AEEE0: + movs r3, 0x10 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080AEF02 + movs r5, 0x12 + ldrsh r0, [r4, r5] + cmp r0, 0 + ble _080AEF02 + ldrh r1, [r4, 0x26] + ldrh r6, [r4, 0x24] + adds r1, r6 + strh r1, [r4, 0x24] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x6F + bl PlaySE12WithPanning +_080AEF02: + movs r0, 0x12 + ldrsh r3, [r4, r0] + ldrh r2, [r4, 0x16] + cmp r3, 0 + bge _080AEF18 + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0x18 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080AEF28 +_080AEF18: + cmp r3, 0 + ble _080AEF4C + lsls r0, r2, 16 + asrs r0, 16 + movs r6, 0x18 + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _080AEF4C +_080AEF28: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x1A] + ldrh r1, [r4, 0x14] + adds r0, r1 + strh r0, [r4, 0x14] + movs r0, 0x1 + b _080AEF58 + .align 2, 0 +_080AEF3C: .4byte gUnknown_83E62A8 +_080AEF40: .4byte gSprites +_080AEF44: .4byte 0x000003ff +_080AEF48: .4byte 0xfffffc00 +_080AEF4C: + movs r3, 0x12 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r0, r2, r0 + strh r0, [r4, 0x16] + movs r0, 0 +_080AEF58: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80AEE74 + + thumb_func_start sub_80AEF60 +sub_80AEF60: @ 80AEF60 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080AEF96 + ldr r3, _080AEF9C @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080AEF96: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AEF9C: .4byte gTasks + thumb_func_end sub_80AEF60 + + thumb_func_start sub_80AEFA0 +sub_80AEFA0: @ 80AEFA0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080AEFC4 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080AF01C + cmp r0, 0x1 + bgt _080AEFC8 + cmp r0, 0 + beq _080AEFCE + b _080AF052 + .align 2, 0 +_080AEFC4: .4byte gTasks +_080AEFC8: + cmp r0, 0x2 + beq _080AF044 + b _080AF052 +_080AEFCE: + ldr r0, _080AF018 @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r5, 0x26] + strh r0, [r5, 0x24] + cmp r0, 0x10 + ble _080AEFF8 + adds r2, r0, 0 +_080AEFE8: + adds r1, r2, 0 + subs r1, 0x20 + adds r2, r1, 0 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x10 + bgt _080AEFE8 + strh r1, [r5, 0x24] +_080AEFF8: + ldr r4, _080AF018 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x2 + strh r0, [r5, 0x20] + b _080AF03C + .align 2, 0 +_080AF018: .4byte gBattleAnimTarget +_080AF01C: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AF052 + movs r0, 0 + strh r0, [r5, 0xA] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80AF058 + lsls r0, 24 + cmp r0, 0 + beq _080AF052 +_080AF03C: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080AF052 +_080AF044: + movs r1, 0x1C + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AF052 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080AF052: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AEFA0 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index d343c68d4..08aa16703 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -171,25 +171,25 @@ EvolutionScene: @ 80CDDF4 movs r1, 0 bl SetGpuReg bl ResetPaletteFade - ldr r0, _080CE080 @ =gUnknown_2022974 + ldr r0, _080CE080 @ =gBattle_BG0_X movs r2, 0 strh r2, [r0] - ldr r0, _080CE084 @ =gUnknown_2022976 + ldr r0, _080CE084 @ =gBattle_BG0_Y strh r2, [r0] - ldr r0, _080CE088 @ =gUnknown_2022978 + ldr r0, _080CE088 @ =gBattle_BG1_X strh r2, [r0] - ldr r0, _080CE08C @ =gUnknown_202297A + ldr r0, _080CE08C @ =gBattle_BG1_Y strh r2, [r0] - ldr r0, _080CE090 @ =gUnknown_202297C + ldr r0, _080CE090 @ =gBattle_BG2_X strh r2, [r0] - ldr r0, _080CE094 @ =gUnknown_202297E + ldr r0, _080CE094 @ =gBattle_BG2_Y strh r2, [r0] - ldr r1, _080CE098 @ =gUnknown_2022980 + ldr r1, _080CE098 @ =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] - ldr r0, _080CE09C @ =gUnknown_2022982 + ldr r0, _080CE09C @ =gBattle_BG3_Y movs r1, 0 strh r1, [r0] ldr r1, _080CE0A0 @ =gUnknown_2022B50 @@ -198,7 +198,7 @@ EvolutionScene: @ 80CDDF4 bl sub_800F34C bl LoadBattleTextboxAndBackground bl ResetSpriteData - bl remove_some_task + bl ScanlineEffect_Stop bl ResetTasks bl FreeAllSpritePalettes ldr r0, _080CE0A4 @ =gReservedSpritePaletteCount @@ -239,7 +239,7 @@ EvolutionScene: @ 80CDDF4 bl GetMonData mov r9, r0 lsls r0, r5, 3 - ldr r1, _080CE0B8 @ =gUnknown_82350AC + ldr r1, _080CE0B8 @ =gMonFrontPicTable adds r0, r1 ldr r2, _080CE0BC @ =gMonSpritesGfxPtr ldr r1, [r2] @@ -257,7 +257,7 @@ EvolutionScene: @ 80CDDF4 bl LoadCompressedPalette adds r0, r5, 0 movs r1, 0x1 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080CE0C0 @ =gMultiuseSpriteTemplate mov r8, r0 ldr r1, _080CE0C4 @ =gDummySpriteAffineAnimTable @@ -295,7 +295,7 @@ EvolutionScene: @ 80CDDF4 strb r0, [r1] mov r1, r10 lsls r0, r1, 3 - ldr r2, _080CE0B8 @ =gUnknown_82350AC + ldr r2, _080CE0B8 @ =gMonFrontPicTable adds r0, r2 ldr r2, _080CE0BC @ =gMonSpritesGfxPtr ldr r1, [r2] @@ -313,7 +313,7 @@ EvolutionScene: @ 80CDDF4 bl LoadCompressedPalette mov r0, r10 movs r1, 0x3 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080CE0C4 @ =gDummySpriteAffineAnimTable mov r1, r8 str r0, [r1, 0x10] @@ -401,21 +401,21 @@ EvolutionScene: @ 80CDDF4 bx r0 .align 2, 0 _080CE07C: .4byte 0x05006000 -_080CE080: .4byte gUnknown_2022974 -_080CE084: .4byte gUnknown_2022976 -_080CE088: .4byte gUnknown_2022978 -_080CE08C: .4byte gUnknown_202297A -_080CE090: .4byte gUnknown_202297C -_080CE094: .4byte gUnknown_202297E -_080CE098: .4byte gUnknown_2022980 -_080CE09C: .4byte gUnknown_2022982 +_080CE080: .4byte gBattle_BG0_X +_080CE084: .4byte gBattle_BG0_Y +_080CE088: .4byte gBattle_BG1_X +_080CE08C: .4byte gBattle_BG1_Y +_080CE090: .4byte gBattle_BG2_X +_080CE094: .4byte gBattle_BG2_Y +_080CE098: .4byte gBattle_BG3_X +_080CE09C: .4byte gBattle_BG3_Y _080CE0A0: .4byte gUnknown_2022B50 _080CE0A4: .4byte gReservedSpritePaletteCount _080CE0A8: .4byte gUnknown_2039A20 _080CE0AC: .4byte gStringVar1 _080CE0B0: .4byte gStringVar2 _080CE0B4: .4byte gSpeciesNames -_080CE0B8: .4byte gUnknown_82350AC +_080CE0B8: .4byte gMonFrontPicTable _080CE0BC: .4byte gMonSpritesGfxPtr _080CE0C0: .4byte gMultiuseSpriteTemplate _080CE0C4: .4byte gDummySpriteAffineAnimTable @@ -494,24 +494,24 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8 movs r1, 0 bl SetGpuReg bl ResetPaletteFade - ldr r0, _080CE290 @ =gUnknown_2022974 + ldr r0, _080CE290 @ =gBattle_BG0_X strh r4, [r0] - ldr r0, _080CE294 @ =gUnknown_2022976 + ldr r0, _080CE294 @ =gBattle_BG0_Y strh r4, [r0] - ldr r0, _080CE298 @ =gUnknown_2022978 + ldr r0, _080CE298 @ =gBattle_BG1_X strh r4, [r0] - ldr r0, _080CE29C @ =gUnknown_202297A + ldr r0, _080CE29C @ =gBattle_BG1_Y strh r4, [r0] - ldr r0, _080CE2A0 @ =gUnknown_202297C + ldr r0, _080CE2A0 @ =gBattle_BG2_X strh r4, [r0] - ldr r0, _080CE2A4 @ =gUnknown_202297E + ldr r0, _080CE2A4 @ =gBattle_BG2_Y strh r4, [r0] - ldr r1, _080CE2A8 @ =gUnknown_2022980 + ldr r1, _080CE2A8 @ =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] - ldr r0, _080CE2AC @ =gUnknown_2022982 + ldr r0, _080CE2AC @ =gBattle_BG3_Y strh r4, [r0] ldr r1, _080CE2B0 @ =gUnknown_2022B50 movs r0, 0x9 @@ -524,7 +524,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8 movs r0, 0x4 strb r0, [r1] lsls r0, r5, 3 - ldr r1, _080CE2B8 @ =gUnknown_82350AC + ldr r1, _080CE2B8 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080CE2BC @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -542,7 +542,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8 bl LoadCompressedPalette adds r0, r5, 0 movs r1, 0x3 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080CE2C0 @ =gMultiuseSpriteTemplate ldr r1, _080CE2C4 @ =gDummySpriteAffineAnimTable str r1, [r0, 0x10] @@ -608,17 +608,17 @@ _080CE280: .4byte gTasks _080CE284: .4byte gUnknown_2039A20 _080CE288: .4byte gPlayerParty _080CE28C: .4byte 0x05006000 -_080CE290: .4byte gUnknown_2022974 -_080CE294: .4byte gUnknown_2022976 -_080CE298: .4byte gUnknown_2022978 -_080CE29C: .4byte gUnknown_202297A -_080CE2A0: .4byte gUnknown_202297C -_080CE2A4: .4byte gUnknown_202297E -_080CE2A8: .4byte gUnknown_2022980 -_080CE2AC: .4byte gUnknown_2022982 +_080CE290: .4byte gBattle_BG0_X +_080CE294: .4byte gBattle_BG0_Y +_080CE298: .4byte gBattle_BG1_X +_080CE29C: .4byte gBattle_BG1_Y +_080CE2A0: .4byte gBattle_BG2_X +_080CE2A4: .4byte gBattle_BG2_Y +_080CE2A8: .4byte gBattle_BG3_X +_080CE2AC: .4byte gBattle_BG3_Y _080CE2B0: .4byte gUnknown_2022B50 _080CE2B4: .4byte gReservedSpritePaletteCount -_080CE2B8: .4byte gUnknown_82350AC +_080CE2B8: .4byte gMonFrontPicTable _080CE2BC: .4byte gMonSpritesGfxPtr _080CE2C0: .4byte gMultiuseSpriteTemplate _080CE2C4: .4byte gDummySpriteAffineAnimTable @@ -691,37 +691,37 @@ _080CE34C: ldr r1, _080CE398 @ =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] - ldr r0, _080CE39C @ =gUnknown_2022974 + ldr r0, _080CE39C @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080CE3A0 @ =gUnknown_2022976 + ldr r0, _080CE3A0 @ =gBattle_BG0_Y strh r1, [r0] - ldr r0, _080CE3A4 @ =gUnknown_2022978 + ldr r0, _080CE3A4 @ =gBattle_BG1_X strh r1, [r0] - ldr r0, _080CE3A8 @ =gUnknown_202297A + ldr r0, _080CE3A8 @ =gBattle_BG1_Y strh r1, [r0] - ldr r0, _080CE3AC @ =gUnknown_202297C + ldr r0, _080CE3AC @ =gBattle_BG2_X strh r1, [r0] - ldr r0, _080CE3B0 @ =gUnknown_202297E + ldr r0, _080CE3B0 @ =gBattle_BG2_Y strh r1, [r0] - ldr r2, _080CE3B4 @ =gUnknown_2022980 + ldr r2, _080CE3B4 @ =gBattle_BG3_X movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 strh r0, [r2] - ldr r0, _080CE3B8 @ =gUnknown_2022982 + ldr r0, _080CE3B8 @ =gBattle_BG3_Y strh r1, [r0] b _080CE4EC .align 2, 0 _080CE398: .4byte gReservedSpritePaletteCount -_080CE39C: .4byte gUnknown_2022974 -_080CE3A0: .4byte gUnknown_2022976 -_080CE3A4: .4byte gUnknown_2022978 -_080CE3A8: .4byte gUnknown_202297A -_080CE3AC: .4byte gUnknown_202297C -_080CE3B0: .4byte gUnknown_202297E -_080CE3B4: .4byte gUnknown_2022980 -_080CE3B8: .4byte gUnknown_2022982 +_080CE39C: .4byte gBattle_BG0_X +_080CE3A0: .4byte gBattle_BG0_Y +_080CE3A4: .4byte gBattle_BG1_X +_080CE3A8: .4byte gBattle_BG1_Y +_080CE3AC: .4byte gBattle_BG2_X +_080CE3B0: .4byte gBattle_BG2_Y +_080CE3B4: .4byte gBattle_BG3_X +_080CE3B8: .4byte gBattle_BG3_Y _080CE3BC: bl ResetPaletteFade ldr r0, _080CE3D8 @ =nullsub_76 @@ -770,7 +770,7 @@ _080CE414: bl GetMonData adds r4, r0, 0 lsls r0, r6, 3 - ldr r1, _080CE454 @ =gUnknown_82350AC + ldr r1, _080CE454 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080CE458 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -788,12 +788,12 @@ _080CE414: bl LoadCompressedPalette b _080CE4EC .align 2, 0 -_080CE454: .4byte gUnknown_82350AC +_080CE454: .4byte gMonFrontPicTable _080CE458: .4byte gMonSpritesGfxPtr _080CE45C: adds r0, r6, 0 movs r1, 0x1 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080CE4B4 @ =gMultiuseSpriteTemplate ldr r1, _080CE4B8 @ =gDummySpriteAffineAnimTable str r1, [r0, 0x10] @@ -951,7 +951,7 @@ TradeEvolutionScene: @ 80CE540 movs r4, 0 strb r6, [r0] lsls r0, r5, 3 - ldr r1, _080CE6C4 @ =gUnknown_82350AC + ldr r1, _080CE6C4 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080CE6C8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -969,7 +969,7 @@ TradeEvolutionScene: @ 80CE540 bl LoadCompressedPalette adds r0, r5, 0 movs r1, 0x1 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080CE6CC @ =gMultiuseSpriteTemplate ldr r1, _080CE6D0 @ =gDummySpriteAffineAnimTable str r1, [r0, 0x10] @@ -1027,24 +1027,24 @@ TradeEvolutionScene: @ 80CE540 mov r1, sp ldrh r1, [r1, 0x14] strh r1, [r0, 0x1C] - ldr r0, _080CE6E4 @ =gUnknown_2022974 + ldr r0, _080CE6E4 @ =gBattle_BG0_X strh r4, [r0] - ldr r0, _080CE6E8 @ =gUnknown_2022976 + ldr r0, _080CE6E8 @ =gBattle_BG0_Y strh r4, [r0] - ldr r0, _080CE6EC @ =gUnknown_2022978 + ldr r0, _080CE6EC @ =gBattle_BG1_X strh r4, [r0] - ldr r0, _080CE6F0 @ =gUnknown_202297A + ldr r0, _080CE6F0 @ =gBattle_BG1_Y strh r4, [r0] - ldr r0, _080CE6F4 @ =gUnknown_202297C + ldr r0, _080CE6F4 @ =gBattle_BG2_X strh r4, [r0] - ldr r0, _080CE6F8 @ =gUnknown_202297E + ldr r0, _080CE6F8 @ =gBattle_BG2_Y strh r4, [r0] - ldr r1, _080CE6FC @ =gUnknown_2022980 + ldr r1, _080CE6FC @ =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] - ldr r0, _080CE700 @ =gUnknown_2022982 + ldr r0, _080CE700 @ =gBattle_BG3_Y strh r4, [r0] ldr r2, _080CE704 @ =gTextFlags ldrb r0, [r2] @@ -1069,7 +1069,7 @@ _080CE6B4: .4byte gStringVar2 _080CE6B8: .4byte gSpeciesNames _080CE6BC: .4byte gAffineAnimsDisabled _080CE6C0: .4byte gUnknown_2039A20 -_080CE6C4: .4byte gUnknown_82350AC +_080CE6C4: .4byte gMonFrontPicTable _080CE6C8: .4byte gMonSpritesGfxPtr _080CE6CC: .4byte gMultiuseSpriteTemplate _080CE6D0: .4byte gDummySpriteAffineAnimTable @@ -1077,14 +1077,14 @@ _080CE6D4: .4byte gSprites _080CE6D8: .4byte nullsub_10 _080CE6DC: .4byte sub_80CF53C _080CE6E0: .4byte gTasks -_080CE6E4: .4byte gUnknown_2022974 -_080CE6E8: .4byte gUnknown_2022976 -_080CE6EC: .4byte gUnknown_2022978 -_080CE6F0: .4byte gUnknown_202297A -_080CE6F4: .4byte gUnknown_202297C -_080CE6F8: .4byte gUnknown_202297E -_080CE6FC: .4byte gUnknown_2022980 -_080CE700: .4byte gUnknown_2022982 +_080CE6E4: .4byte gBattle_BG0_X +_080CE6E8: .4byte gBattle_BG0_Y +_080CE6EC: .4byte gBattle_BG1_X +_080CE6F0: .4byte gBattle_BG1_Y +_080CE6F4: .4byte gBattle_BG2_X +_080CE6F8: .4byte gBattle_BG2_Y +_080CE6FC: .4byte gBattle_BG3_X +_080CE700: .4byte gBattle_BG3_Y _080CE704: .4byte gTextFlags _080CE708: .4byte sub_80D00D8 _080CE70C: .4byte sub_80CE72C @@ -3567,7 +3567,7 @@ _080CFCAE: movs r0, 0 movs r1, 0xA8 movs r2, 0xE0 - bl sub_814FE40 + bl LoadUserWindowBorderGfx ldr r0, _080CFCF4 @ =gUnknown_826D1CC movs r1, 0xA8 str r1, [sp] @@ -3577,7 +3577,7 @@ _080CFCAE: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r3, _080CFCF8 @ =gUnknown_2023E82 strb r4, [r3, 0x1] ldr r0, _080CFCF0 @ =gTasks @@ -3597,7 +3597,7 @@ _080CFCF0: .4byte gTasks _080CFCF4: .4byte gUnknown_826D1CC _080CFCF8: .4byte gUnknown_2023E82 _080CFCFC: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r4, r0, 24 cmp r4, 0 @@ -3691,7 +3691,7 @@ _080CFDBA: ldrb r0, [r0] cmp r0, 0 beq _080CFDC6 - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite _080CFDC6: movs r0, 0x3 bl GetBgTilemapBuffer @@ -3981,105 +3981,105 @@ nullsub_76: @ 80D004C thumb_func_start sub_80D0050 sub_80D0050: @ 80D0050 push {lr} - ldr r0, _080D00B8 @ =gUnknown_2022974 + ldr r0, _080D00B8 @ =gBattle_BG0_X ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg - ldr r0, _080D00BC @ =gUnknown_2022976 + ldr r0, _080D00BC @ =gBattle_BG0_Y ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, _080D00C0 @ =gUnknown_2022978 + ldr r0, _080D00C0 @ =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, _080D00C4 @ =gUnknown_202297A + ldr r0, _080D00C4 @ =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, _080D00C8 @ =gUnknown_202297C + ldr r0, _080D00C8 @ =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, _080D00CC @ =gUnknown_202297E + ldr r0, _080D00CC @ =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, _080D00D0 @ =gUnknown_2022980 + ldr r0, _080D00D0 @ =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg - ldr r0, _080D00D4 @ =gUnknown_2022982 + ldr r0, _080D00D4 @ =gBattle_BG3_Y ldrh r1, [r0] movs r0, 0x1E bl SetGpuReg bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 .align 2, 0 -_080D00B8: .4byte gUnknown_2022974 -_080D00BC: .4byte gUnknown_2022976 -_080D00C0: .4byte gUnknown_2022978 -_080D00C4: .4byte gUnknown_202297A -_080D00C8: .4byte gUnknown_202297C -_080D00CC: .4byte gUnknown_202297E -_080D00D0: .4byte gUnknown_2022980 -_080D00D4: .4byte gUnknown_2022982 +_080D00B8: .4byte gBattle_BG0_X +_080D00BC: .4byte gBattle_BG0_Y +_080D00C0: .4byte gBattle_BG1_X +_080D00C4: .4byte gBattle_BG1_Y +_080D00C8: .4byte gBattle_BG2_X +_080D00CC: .4byte gBattle_BG2_Y +_080D00D0: .4byte gBattle_BG3_X +_080D00D4: .4byte gBattle_BG3_Y thumb_func_end sub_80D0050 thumb_func_start sub_80D00D8 sub_80D00D8: @ 80D00D8 push {lr} - ldr r0, _080D0140 @ =gUnknown_2022974 + ldr r0, _080D0140 @ =gBattle_BG0_X ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg - ldr r0, _080D0144 @ =gUnknown_2022976 + ldr r0, _080D0144 @ =gBattle_BG0_Y ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, _080D0148 @ =gUnknown_2022978 + ldr r0, _080D0148 @ =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, _080D014C @ =gUnknown_202297A + ldr r0, _080D014C @ =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, _080D0150 @ =gUnknown_202297C + ldr r0, _080D0150 @ =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, _080D0154 @ =gUnknown_202297E + ldr r0, _080D0154 @ =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, _080D0158 @ =gUnknown_2022980 + ldr r0, _080D0158 @ =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg - ldr r0, _080D015C @ =gUnknown_2022982 + ldr r0, _080D015C @ =gBattle_BG3_Y ldrh r1, [r0] movs r0, 0x1E bl SetGpuReg bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 .align 2, 0 -_080D0140: .4byte gUnknown_2022974 -_080D0144: .4byte gUnknown_2022976 -_080D0148: .4byte gUnknown_2022978 -_080D014C: .4byte gUnknown_202297A -_080D0150: .4byte gUnknown_202297C -_080D0154: .4byte gUnknown_202297E -_080D0158: .4byte gUnknown_2022980 -_080D015C: .4byte gUnknown_2022982 +_080D0140: .4byte gBattle_BG0_X +_080D0144: .4byte gBattle_BG0_Y +_080D0148: .4byte gBattle_BG1_X +_080D014C: .4byte gBattle_BG1_Y +_080D0150: .4byte gBattle_BG2_X +_080D0154: .4byte gBattle_BG2_Y +_080D0158: .4byte gBattle_BG3_X +_080D015C: .4byte gBattle_BG3_Y thumb_func_end sub_80D00D8 thumb_func_start sub_80D0160 @@ -4225,9 +4225,9 @@ sub_80D025C: @ 80D025C push {r6,r7} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _080D0288 @ =gUnknown_2022978 + ldr r0, _080D0288 @ =gBattle_BG1_X mov r8, r0 - ldr r1, _080D028C @ =gUnknown_202297A + ldr r1, _080D028C @ =gBattle_BG1_Y mov r9, r1 ldr r1, _080D0290 @ =gTasks lsls r0, r5, 2 @@ -4238,18 +4238,18 @@ sub_80D025C: @ 80D025C ldrsh r0, [r0, r2] cmp r0, 0 bne _080D029C - ldr r7, _080D0294 @ =gUnknown_202297C - ldr r6, _080D0298 @ =gUnknown_202297E + ldr r7, _080D0294 @ =gBattle_BG2_X + ldr r6, _080D0298 @ =gBattle_BG2_Y b _080D02A0 .align 2, 0 -_080D0288: .4byte gUnknown_2022978 -_080D028C: .4byte gUnknown_202297A +_080D0288: .4byte gBattle_BG1_X +_080D028C: .4byte gBattle_BG1_Y _080D0290: .4byte gTasks -_080D0294: .4byte gUnknown_202297C -_080D0298: .4byte gUnknown_202297E +_080D0294: .4byte gBattle_BG2_X +_080D0298: .4byte gBattle_BG2_Y _080D029C: - ldr r7, _080D0328 @ =gUnknown_2022980 - ldr r6, _080D032C @ =gUnknown_2022982 + ldr r7, _080D0328 @ =gBattle_BG3_X + ldr r6, _080D032C @ =gBattle_BG3_Y _080D02A0: lsls r4, r5, 2 adds r4, r5 @@ -4314,8 +4314,8 @@ _080D031A: pop {r0} bx r0 .align 2, 0 -_080D0328: .4byte gUnknown_2022980 -_080D032C: .4byte gUnknown_2022982 +_080D0328: .4byte gBattle_BG3_X +_080D032C: .4byte gBattle_BG3_Y _080D0330: .4byte sub_80D0160 thumb_func_end sub_80D025C @@ -4388,7 +4388,7 @@ _080D03A0: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080D0428 @ =gUnknown_83F73A8 movs r0, 0x1 movs r2, 0 @@ -4527,12 +4527,12 @@ sub_80D04E8: @ 80D04E8 movs r0, 0x50 movs r1, 0 bl SetGpuReg - ldr r0, _080D0544 @ =gUnknown_2022978 + ldr r0, _080D0544 @ =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, _080D0548 @ =gUnknown_202297A + ldr r0, _080D0548 @ =gBattle_BG1_Y strh r1, [r0] - ldr r0, _080D054C @ =gUnknown_202297C + ldr r0, _080D054C @ =gBattle_BG2_X strh r1, [r0] movs r0, 0x1 movs r1, 0x5 @@ -4562,9 +4562,9 @@ sub_80D04E8: @ 80D04E8 pop {r0} bx r0 .align 2, 0 -_080D0544: .4byte gUnknown_2022978 -_080D0548: .4byte gUnknown_202297A -_080D054C: .4byte gUnknown_202297C +_080D0544: .4byte gBattle_BG1_X +_080D0548: .4byte gBattle_BG1_Y +_080D054C: .4byte gBattle_BG2_X _080D0550: .4byte gUnknown_2039A24 thumb_func_end sub_80D04E8 diff --git a/asm/field_camera.s b/asm/field_camera.s index 3d4ca0025..5541c6472 100644 --- a/asm/field_camera.s +++ b/asm/field_camera.s @@ -528,7 +528,7 @@ sub_805A948: @ 805A948 mov r8, r1 adds r0, r6, 0 adds r1, r7, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x80 @@ -557,7 +557,7 @@ _0805A98C: asrs r0, 16 lsls r1, r7, 16 asrs r1, 16 - bl sub_8058F8C + bl MapGridGetMetatileLayerTypeAt lsls r0, 24 lsrs r0, 24 lsls r1, r4, 4 diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 9748301f7..67e7e7d5a 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -884,7 +884,7 @@ sub_806CF38: @ 806CF38 ldrh r1, [r4, 0x2] b _0806CF7E _0806CF60: - ldr r1, _0806CFA4 @ =gUnknown_826D2D8 + ldr r1, _0806CFA4 @ =gDirectionToVectors lsls r2, r6, 3 adds r0, r2, r1 ldr r3, [r0] @@ -919,7 +919,7 @@ _0806CF9E: movs r0, 0 b _0806CFDE .align 2, 0 -_0806CFA4: .4byte gUnknown_826D2D8 +_0806CFA4: .4byte gDirectionToVectors _0806CFA8: .4byte gMapObjects _0806CFAC: movs r4, 0 @@ -936,7 +936,7 @@ _0806CFBC: adds r4, 0x1 cmp r4, 0x3 ble _0806CFB0 - ldr r0, _0806CFE8 @ =gUnknown_3005074 + ldr r0, _0806CFE8 @ =gSelectedEventObject strb r3, [r0] ldr r1, _0806CFEC @ =gSpecialVar_LastTalked adds r0, r2, r3 @@ -954,7 +954,7 @@ _0806CFDE: bx r1 .align 2, 0 _0806CFE4: .4byte gUnknown_2031DEC -_0806CFE8: .4byte gUnknown_3005074 +_0806CFE8: .4byte gSelectedEventObject _0806CFEC: .4byte gSpecialVar_LastTalked _0806CFF0: .4byte gSpecialVar_Facing thumb_func_end sub_806CF38 @@ -994,7 +994,7 @@ _0806D02A: lsrs r0, 24 cmp r0, 0x1 bne _0806D092 - ldr r1, _0806D09C @ =gUnknown_826D2D8 + ldr r1, _0806D09C @ =gDirectionToVectors mov r0, r8 lsls r2, r0, 3 adds r0, r2, r1 @@ -1042,9 +1042,9 @@ _0806D092: b _0806D0C8 .align 2, 0 _0806D098: .4byte gMapObjects -_0806D09C: .4byte gUnknown_826D2D8 +_0806D09C: .4byte gDirectionToVectors _0806D0A0: - ldr r0, _0806D0D4 @ =gUnknown_3005074 + ldr r0, _0806D0D4 @ =gSelectedEventObject strb r5, [r0] ldr r4, _0806D0D8 @ =gSpecialVar_LastTalked ldr r1, _0806D0DC @ =gMapObjects @@ -1069,7 +1069,7 @@ _0806D0C8: pop {r1} bx r1 .align 2, 0 -_0806D0D4: .4byte gUnknown_3005074 +_0806D0D4: .4byte gSelectedEventObject _0806D0D8: .4byte gSpecialVar_LastTalked _0806D0DC: .4byte gMapObjects _0806D0E0: .4byte gSpecialVar_Facing @@ -1828,7 +1828,7 @@ _0806D6EC: .align 2, 0 _0806D700: .4byte gUnknown_81A8DFD _0806D704: - bl sub_80463B8 + bl ShouldEggHatch lsls r0, 24 cmp r0, 0 beq _0806D720 @@ -2195,7 +2195,7 @@ mapheader_run_first_tag2_script_list_match_conditionally: @ 806D964 adds r1, r5, 0 adds r2, r7, 0 bl sub_806DC54 - bl sub_807E438 + bl DoWarp movs r0, 0x1 b _0806DA02 .align 2, 0 @@ -2331,7 +2331,7 @@ _0806DAC4: lsrs r0, 24 cmp r0, 0x1 bne _0806DAE4 - bl sub_80559E4 + bl ResetInitialPlayerAvatarState ldr r0, _0806DAE0 @ =gUnknown_81C1361 bl ScriptContext1_SetupScript movs r0, 0x1 @@ -2339,7 +2339,7 @@ _0806DAC4: .align 2, 0 _0806DAE0: .4byte gUnknown_81C1361 _0806DAE4: - bl sub_807E438 + bl DoWarp movs r0, 0x1 b _0806DAEE _0806DAEC: @@ -2638,7 +2638,7 @@ map_warp_consider_2_to_inside: @ 806DCD0 adds r1, r4, 0 adds r2, r6, 0 bl sub_806DC54 - bl sub_807E4DC + bl DoDoorWarp movs r0, 0x1 b _0806DD32 .align 2, 0 @@ -2990,7 +2990,7 @@ _0806DF98: cmp r0, 0 beq _0806DFB0 bl sub_8055A08 - bl sp13E_warp_to_last_warp + bl DoDiveWarp movs r0, 0xE2 bl PlaySE movs r0, 0x1 diff --git a/asm/field_door.s b/asm/field_door.s index 9c7e5eb10..bcb8a6082 100644 --- a/asm/field_door.s +++ b/asm/field_door.s @@ -337,7 +337,7 @@ sub_805B158: @ 805B158 adds r6, r2, 0 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 @@ -392,7 +392,7 @@ sub_805B1B8: @ 805B1B8 adds r6, r2, 0 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 @@ -439,7 +439,7 @@ sub_805B210: @ 805B210 adds r6, r2, 0 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 @@ -478,8 +478,8 @@ _0805B25C: _0805B264: .4byte gUnknown_835B4B0 thumb_func_end sub_805B210 - thumb_func_start sub_805B268 -sub_805B268: @ 805B268 + thumb_func_start FieldSetDoorOpened +FieldSetDoorOpened: @ 805B268 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -504,10 +504,10 @@ _0805B292: bx r0 .align 2, 0 _0805B298: .4byte gUnknown_835B5D8 - thumb_func_end sub_805B268 + thumb_func_end FieldSetDoorOpened - thumb_func_start sub_805B29C -sub_805B29C: @ 805B29C + thumb_func_start FieldSetDoorClosed +FieldSetDoorClosed: @ 805B29C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -532,10 +532,10 @@ _0805B2C6: bx r0 .align 2, 0 _0805B2CC: .4byte gUnknown_835B5D8 - thumb_func_end sub_805B29C + thumb_func_end FieldSetDoorClosed - thumb_func_start sub_805B2D0 -sub_805B2D0: @ 805B2D0 + thumb_func_start FieldAnimateDoorClose +FieldAnimateDoorClose: @ 805B2D0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -566,10 +566,10 @@ _0805B308: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_805B2D0 + thumb_func_end FieldAnimateDoorClose - thumb_func_start sub_805B310 -sub_805B310: @ 805B310 + thumb_func_start FieldAnimateDoorOpen +FieldAnimateDoorOpen: @ 805B310 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -600,10 +600,10 @@ _0805B348: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_805B310 + thumb_func_end FieldAnimateDoorOpen - thumb_func_start sub_805B350 -sub_805B350: @ 805B350 + thumb_func_start FieldIsDoorAnimationRunning +FieldIsDoorAnimationRunning: @ 805B350 push {lr} ldr r0, _0805B360 @ =sub_805B028 bl FuncIsActiveTask @@ -613,10 +613,10 @@ sub_805B350: @ 805B350 bx r1 .align 2, 0 _0805B360: .4byte sub_805B028 - thumb_func_end sub_805B350 + thumb_func_end FieldIsDoorAnimationRunning - thumb_func_start sub_805B364 -sub_805B364: @ 805B364 + thumb_func_start GetDoorSoundEffect +GetDoorSoundEffect: @ 805B364 push {lr} adds r3, r0, 0 adds r2, r1, 0 @@ -635,7 +635,7 @@ _0805B380: _0805B382: pop {r1} bx r1 - thumb_func_end sub_805B364 + thumb_func_end GetDoorSoundEffect thumb_func_start sub_805B388 sub_805B388: @ 805B388 @@ -643,7 +643,7 @@ sub_805B388: @ 805B388 adds r4, r0, 0 adds r0, r1, 0 adds r1, r2, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 diff --git a/asm/field_effect.s b/asm/field_effect.s index 1cbdc8214..0fa36ce46 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -603,13 +603,13 @@ CreateTrainerSprite: @ 8083858 lsrs r0, 24 mov r9, r0 lsrs r4, 21 - ldr r3, _080838E0 @ =gUnknown_8239A1C + ldr r3, _080838E0 @ =gTrainerFrontPicPaletteTable mov r8, r3 add r8, r4 mov r0, r8 adds r1, r7, 0 bl LoadCompressedObjectPaletteOverrideBuffer - ldr r0, _080838E4 @ =gUnknown_823957C + ldr r0, _080838E4 @ =gTrainerFrontPicTable adds r4, r0 adds r0, r4, 0 adds r1, r7, 0 @@ -649,8 +649,8 @@ CreateTrainerSprite: @ 8083858 pop {r1} bx r1 .align 2, 0 -_080838E0: .4byte gUnknown_8239A1C -_080838E4: .4byte gUnknown_823957C +_080838E0: .4byte gTrainerFrontPicPaletteTable +_080838E4: .4byte gTrainerFrontPicTable _080838E8: .4byte gUnknown_83CBE50 _080838EC: .4byte gDummySpriteAnimTable _080838F0: .4byte gDummySpriteAffineAnimTable @@ -666,12 +666,12 @@ LoadTrainerGfx_TrainerCard: @ 80838F8 lsls r4, 24 lsls r5, 16 lsrs r5, 16 - ldr r0, _08083928 @ =gUnknown_823957C + ldr r0, _08083928 @ =gTrainerFrontPicTable lsrs r4, 21 adds r0, r4, r0 ldr r0, [r0] bl LZDecompressVram - ldr r0, _0808392C @ =gUnknown_8239A1C + ldr r0, _0808392C @ =gTrainerFrontPicPaletteTable adds r4, r0 ldr r0, [r4] adds r1, r5, 0 @@ -681,8 +681,8 @@ LoadTrainerGfx_TrainerCard: @ 80838F8 pop {r0} bx r0 .align 2, 0 -_08083928: .4byte gUnknown_823957C -_0808392C: .4byte gUnknown_8239A1C +_08083928: .4byte gTrainerFrontPicTable +_0808392C: .4byte gTrainerFrontPicPaletteTable thumb_func_end LoadTrainerGfx_TrainerCard thumb_func_start AddNewGameBirchObject @@ -742,7 +742,7 @@ sub_8083970: @ 8083970 movs r1, 0 adds r2, r3, 0 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x4] @@ -806,7 +806,7 @@ sub_80839D4: @ 80839D4 mov r1, r9 mov r2, r10 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r4, r0, 16 mov r1, r8 @@ -854,7 +854,7 @@ sub_8083A5C: @ 8083A5C bl FreeOamMatrix _08083A7A: adds r0, r5, 0 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite pop {r4,r5} pop {r0} bx r0 @@ -1968,16 +1968,16 @@ _080842C2: thumb_func_start sub_80842C8 sub_80842C8: @ 80842C8 push {lr} - ldr r0, _080842DC @ =c2_exit_to_overworld_2_switch + ldr r0, _080842DC @ =CB2_ReturnToField bl SetMainCallback2 - ldr r1, _080842E0 @ =gUnknown_3005020 + ldr r1, _080842E0 @ =gFieldCallback ldr r0, _080842E4 @ =mapldr_080842E8 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_080842DC: .4byte c2_exit_to_overworld_2_switch -_080842E0: .4byte gUnknown_3005020 +_080842DC: .4byte CB2_ReturnToField +_080842E0: .4byte gFieldCallback _080842E4: .4byte mapldr_080842E8 thumb_func_end sub_80842C8 @@ -1990,14 +1990,14 @@ mapldr_080842E8: @ 80842E8 bl CreateTask bl ScriptContext2_Enable bl player_bitmagic - ldr r1, _0808430C @ =gUnknown_3005020 + ldr r1, _0808430C @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08084308: .4byte task00_8084310 -_0808430C: .4byte gUnknown_3005020 +_0808430C: .4byte gFieldCallback thumb_func_end mapldr_080842E8 thumb_func_start task00_8084310 @@ -2042,7 +2042,7 @@ _08084350: bl warp_in ldr r0, _08084384 @ =sub_805671C bl SetMainCallback2 - ldr r1, _08084388 @ =gUnknown_3005020 + ldr r1, _08084388 @ =gFieldCallback ldr r0, _0808438C @ =mapldr_08084390 str r0, [r1] adds r0, r5, 0 @@ -2055,7 +2055,7 @@ _08084376: _0808437C: .4byte gTasks _08084380: .4byte gFieldEffectArguments _08084384: .4byte sub_805671C -_08084388: .4byte gUnknown_3005020 +_08084388: .4byte gFieldCallback _0808438C: .4byte mapldr_08084390 thumb_func_end task00_8084310 @@ -2093,7 +2093,7 @@ mapldr_08084390: @ 8084390 _080843D2: bl ScriptContext2_Enable bl player_bitmagic - ldr r1, _080843F4 @ =gUnknown_3005020 + ldr r1, _080843F4 @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r4} @@ -2103,7 +2103,7 @@ _080843D2: _080843E8: .4byte c3_080843F8 _080843EC: .4byte gMapObjects _080843F0: .4byte gPlayerAvatar -_080843F4: .4byte gUnknown_3005020 +_080843F4: .4byte gFieldCallback thumb_func_end mapldr_08084390 thumb_func_start c3_080843F8 @@ -2162,14 +2162,14 @@ sub_8084454: @ 8084454 ldr r0, _0808447C @ =sub_8084484 movs r1, 0 bl CreateTask - ldr r1, _08084480 @ =gUnknown_3005020 + ldr r1, _08084480 @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0808447C: .4byte sub_8084484 -_08084480: .4byte gUnknown_3005020 +_08084480: .4byte gFieldCallback thumb_func_end sub_8084454 thumb_func_start sub_8084484 @@ -2542,7 +2542,7 @@ sub_8084708: @ 8084708 movs r0, 0x8 bl SetPlayerAvatarTransitionFlags movs r0, 0x16 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _08084760: ldr r0, _08084780 @ =sub_8084484 bl FindTaskIdByFunc @@ -2861,7 +2861,7 @@ sub_80849A0: @ 80849A0 bne _080849DC bl sub_809C460 bl warp_in - ldr r1, _080849E4 @ =gUnknown_3005020 + ldr r1, _080849E4 @ =gFieldCallback ldr r0, _080849E8 @ =sub_80849F4 str r0, [r1] ldr r0, _080849EC @ =sub_805671C @@ -2876,7 +2876,7 @@ _080849DC: bx r0 .align 2, 0 _080849E0: .4byte gPaletteFade -_080849E4: .4byte gUnknown_3005020 +_080849E4: .4byte gFieldCallback _080849E8: .4byte sub_80849F4 _080849EC: .4byte sub_805671C _080849F0: .4byte sub_80847C0 @@ -2893,14 +2893,14 @@ sub_80849F4: @ 80849F4 ldr r0, _08084A1C @ =sub_8084A24 movs r1, 0 bl CreateTask - ldr r1, _08084A20 @ =gUnknown_3005020 + ldr r1, _08084A20 @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08084A1C: .4byte sub_8084A24 -_08084A20: .4byte gUnknown_3005020 +_08084A20: .4byte gFieldCallback thumb_func_end sub_80849F4 thumb_func_start sub_8084A24 @@ -3884,7 +3884,7 @@ sub_8085168: @ 8085168 cmp r0, 0x1 bne _080851A0 bl warp_in - ldr r1, _080851AC @ =gUnknown_3005020 + ldr r1, _080851AC @ =gFieldCallback ldr r0, _080851B0 @ =mapldr_080851BC str r0, [r1] ldr r0, _080851B4 @ =sub_805671C @@ -3900,7 +3900,7 @@ _080851A0: bx r1 .align 2, 0 _080851A8: .4byte gPaletteFade -_080851AC: .4byte gUnknown_3005020 +_080851AC: .4byte gFieldCallback _080851B0: .4byte mapldr_080851BC _080851B4: .4byte sub_805671C _080851B8: .4byte sub_8084F44 @@ -3913,7 +3913,7 @@ mapldr_080851BC: @ 80851BC bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable - ldr r0, _080851E0 @ =gUnknown_3005020 + ldr r0, _080851E0 @ =gFieldCallback movs r1, 0 str r1, [r0] ldr r0, _080851E4 @ =sub_80851E8 @@ -3921,7 +3921,7 @@ mapldr_080851BC: @ 80851BC pop {r0} bx r0 .align 2, 0 -_080851E0: .4byte gUnknown_3005020 +_080851E0: .4byte gFieldCallback _080851E4: .4byte sub_80851E8 thumb_func_end mapldr_080851BC @@ -4389,7 +4389,7 @@ sub_808554C: @ 808554C cmp r0, 0x1 bne _08085584 bl warp_in - ldr r1, _08085590 @ =gUnknown_3005020 + ldr r1, _08085590 @ =gFieldCallback ldr r0, _08085594 @ =sub_8084454 str r0, [r1] ldr r0, _08085598 @ =sub_805671C @@ -4405,7 +4405,7 @@ _08085584: bx r1 .align 2, 0 _0808558C: .4byte gPaletteFade -_08085590: .4byte gUnknown_3005020 +_08085590: .4byte gFieldCallback _08085594: .4byte sub_8084454 _08085598: .4byte sub_805671C _0808559C: .4byte sub_80853E4 @@ -4613,7 +4613,7 @@ _08085702: bl FieldObjectSetDirection bl sub_80555E0 bl warp_in - ldr r1, _0808575C @ =gUnknown_3005020 + ldr r1, _0808575C @ =gFieldCallback ldr r0, _08085760 @ =sub_80859D4 str r0, [r1] ldr r0, _08085764 @ =sub_805671C @@ -4629,7 +4629,7 @@ _08085750: bx r0 .align 2, 0 _08085758: .4byte gPaletteFade -_0808575C: .4byte gUnknown_3005020 +_0808575C: .4byte gFieldCallback _08085760: .4byte sub_80859D4 _08085764: .4byte sub_805671C _08085768: .4byte sub_808563C @@ -4970,7 +4970,7 @@ sub_80859D4: @ 80859D4 bl sub_8111CF0 bl ScriptContext2_Enable bl player_bitmagic - ldr r1, _08085A14 @ =gUnknown_3005020 + ldr r1, _08085A14 @ =gFieldCallback movs r0, 0 str r0, [r1] ldr r2, _08085A18 @ =gMapObjects @@ -4990,7 +4990,7 @@ sub_80859D4: @ 80859D4 pop {r0} bx r0 .align 2, 0 -_08085A14: .4byte gUnknown_3005020 +_08085A14: .4byte gFieldCallback _08085A18: .4byte gMapObjects _08085A1C: .4byte gPlayerAvatar _08085A20: .4byte sub_8085A24 @@ -5156,8 +5156,8 @@ _08085B58: _08085B60: .4byte sub_8085A24 thumb_func_end sub_8085A80 - thumb_func_start sub_8085B64 -sub_8085B64: @ 8085B64 + thumb_func_start CreateTeleportFieldEffectTask +CreateTeleportFieldEffectTask: @ 8085B64 push {lr} ldr r0, _08085B74 @ =sub_8085B78 movs r1, 0 @@ -5166,7 +5166,7 @@ sub_8085B64: @ 8085B64 bx r0 .align 2, 0 _08085B74: .4byte sub_8085B78 - thumb_func_end sub_8085B64 + thumb_func_end CreateTeleportFieldEffectTask thumb_func_start sub_8085B78 sub_8085B78: @ 8085B78 @@ -5409,7 +5409,7 @@ sub_8085D34: @ 8085D34 bl warp_in ldr r0, _08085D78 @ =sub_805671C bl SetMainCallback2 - ldr r1, _08085D7C @ =gUnknown_3005020 + ldr r1, _08085D7C @ =gFieldCallback ldr r0, _08085D80 @ =mapldr_08085D88 str r0, [r1] ldr r0, _08085D84 @ =sub_8085B78 @@ -5423,7 +5423,7 @@ _08085D70: .align 2, 0 _08085D74: .4byte gPaletteFade _08085D78: .4byte sub_805671C -_08085D7C: .4byte gUnknown_3005020 +_08085D7C: .4byte gFieldCallback _08085D80: .4byte mapldr_08085D88 _08085D84: .4byte sub_8085B78 thumb_func_end sub_8085D34 @@ -5436,7 +5436,7 @@ mapldr_08085D88: @ 8085D88 bl sub_8111CF0 bl ScriptContext2_Enable bl player_bitmagic - ldr r1, _08085DCC @ =gUnknown_3005020 + ldr r1, _08085DCC @ =gFieldCallback movs r0, 0 str r0, [r1] ldr r2, _08085DD0 @ =gMapObjects @@ -5457,7 +5457,7 @@ mapldr_08085D88: @ 8085D88 pop {r0} bx r0 .align 2, 0 -_08085DCC: .4byte gUnknown_3005020 +_08085DCC: .4byte gFieldCallback _08085DD0: .4byte gMapObjects _08085DD4: .4byte gPlayerAvatar _08085DD8: .4byte sub_8085DDC @@ -6955,7 +6955,7 @@ sub_8086944: @ 8086944 cmp r0, 0 beq _08086978 adds r0, r4, 0 - bl sub_8055F48 + bl Overworld_ChangeMusicTo _08086978: movs r0, 0 pop {r4} @@ -7213,7 +7213,7 @@ sub_8086B30: @ 8086B30 lsrs r0, 24 bl DestroyTask movs r0, 0x16 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _08086B96: pop {r4,r5} pop {r0} diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index ed746de25..be79c3b21 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -845,7 +845,7 @@ unc_grass_normal: @ 80DB3EC lsrs r4, r0, 8 lsls r0, 24 lsrs r7, r0, 24 - ldr r3, _080DB498 @ =gUnknown_2036E18 + ldr r3, _080DB498 @ =gCamera ldrb r1, [r3] movs r0, 0x1 ands r0, r1 @@ -921,7 +921,7 @@ _080DB48C: bl FieldEffectStop b _080DB4E4 .align 2, 0 -_080DB498: .4byte gUnknown_2036E18 +_080DB498: .4byte gCamera _080DB49C: .4byte gSaveBlock1Ptr _080DB4A0: mov r0, sp @@ -1196,7 +1196,7 @@ unc_grass_tall: @ 80DB69C lsrs r7, r0, 8 lsls r0, 24 lsrs r6, r0, 24 - ldr r3, _080DB748 @ =gUnknown_2036E18 + ldr r3, _080DB748 @ =gCamera ldrb r1, [r3] movs r0, 0x1 ands r0, r1 @@ -1272,7 +1272,7 @@ _080DB73C: bl FieldEffectStop b _080DB786 .align 2, 0 -_080DB748: .4byte gUnknown_2036E18 +_080DB748: .4byte gCamera _080DB74C: .4byte gSaveBlock1Ptr _080DB750: mov r0, sp diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s index 8ccc347e9..ceaaaf7a6 100644 --- a/asm/field_fadetransition.s +++ b/asm/field_fadetransition.s @@ -273,8 +273,8 @@ _0807DD1C: bx r0 thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running - thumb_func_start sub_807DD24 -sub_807DD24: @ 807DD24 + thumb_func_start FieldCallback_ReturnToEventScript2 +FieldCallback_ReturnToEventScript2: @ 807DD24 push {lr} bl ScriptContext2_Enable bl sub_8055DC4 @@ -286,7 +286,7 @@ sub_807DD24: @ 807DD24 bx r0 .align 2, 0 _0807DD40: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running - thumb_func_end sub_807DD24 + thumb_func_end FieldCallback_ReturnToEventScript2 thumb_func_start sub_807DD44 sub_807DD44: @ 807DD44 @@ -661,7 +661,7 @@ _0807E028: ldrsh r0, [r6, r2] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B268 + bl FieldSetDoorOpened movs r0, 0x1 strh r0, [r4, 0x8] b _0807E206 @@ -691,7 +691,7 @@ _0807E074: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B364 + bl GetDoorSoundEffect lsls r0, 16 lsrs r0, 16 bl PlaySE @@ -699,12 +699,12 @@ _0807E074: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B310 + bl FieldAnimateDoorOpen movs r0, 0x7 strh r0, [r4, 0x8] b _0807E206 _0807E0A2: - bl sub_805B350 + bl FieldIsDoorAnimationRunning lsls r0, 24 cmp r0, 0 beq _0807E0AE @@ -750,7 +750,7 @@ _0807E0FC: ldrsh r0, [r4, r1] movs r2, 0x22 ldrsh r1, [r4, r2] - bl sub_805B2D0 + bl FieldAnimateDoorClose movs r0, 0x9 strh r0, [r4, 0x8] b _0807E206 @@ -762,7 +762,7 @@ _0807E10E: lsls r0, 24 cmp r0, 0 beq _0807E206 - bl sub_805B350 + bl FieldIsDoorAnimationRunning lsls r0, 24 cmp r0, 0 bne _0807E206 @@ -822,7 +822,7 @@ _0807E198: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B2D0 + bl FieldAnimateDoorClose lsls r0, 24 asrs r0, 24 strh r0, [r4, 0xA] @@ -1153,16 +1153,16 @@ _0807E434: bx r1 thumb_func_end sub_807E418 - thumb_func_start sub_807E438 -sub_807E438: @ 807E438 + thumb_func_start DoWarp +DoWarp: @ 807E438 push {lr} bl ScriptContext2_Enable bl sub_8055F88 bl sub_807DC18 - bl play_some_sound + bl PlayRainStoppingSoundEffect movs r0, 0x9 bl PlaySE - ldr r0, _0807E464 @ =gUnknown_3005020 + ldr r0, _0807E464 @ =gFieldCallback ldr r1, _0807E468 @ =sub_807DF64 str r1, [r0] ldr r0, _0807E46C @ =sub_807E718 @@ -1171,19 +1171,19 @@ sub_807E438: @ 807E438 pop {r0} bx r0 .align 2, 0 -_0807E464: .4byte gUnknown_3005020 +_0807E464: .4byte gFieldCallback _0807E468: .4byte sub_807DF64 _0807E46C: .4byte sub_807E718 - thumb_func_end sub_807E438 + thumb_func_end DoWarp - thumb_func_start sp13E_warp_to_last_warp -sp13E_warp_to_last_warp: @ 807E470 + thumb_func_start DoDiveWarp +DoDiveWarp: @ 807E470 push {lr} bl ScriptContext2_Enable bl sub_8055F88 bl sub_807DC18 - bl play_some_sound - ldr r0, _0807E494 @ =gUnknown_3005020 + bl PlayRainStoppingSoundEffect + ldr r0, _0807E494 @ =gFieldCallback ldr r1, _0807E498 @ =sub_807DF64 str r1, [r0] ldr r0, _0807E49C @ =sub_807E718 @@ -1192,10 +1192,10 @@ sp13E_warp_to_last_warp: @ 807E470 pop {r0} bx r0 .align 2, 0 -_0807E494: .4byte gUnknown_3005020 +_0807E494: .4byte gFieldCallback _0807E498: .4byte sub_807DF64 _0807E49C: .4byte sub_807E718 - thumb_func_end sp13E_warp_to_last_warp + thumb_func_end DoDiveWarp thumb_func_start sub_807E4A0 sub_807E4A0: @ 807E4A0 @@ -1228,11 +1228,11 @@ _0807E4D4: .4byte sub_807E980 _0807E4D8: .4byte gTasks thumb_func_end sub_807E4A0 - thumb_func_start sub_807E4DC -sub_807E4DC: @ 807E4DC + thumb_func_start DoDoorWarp +DoDoorWarp: @ 807E4DC push {lr} bl ScriptContext2_Enable - ldr r0, _0807E4F4 @ =gUnknown_3005020 + ldr r0, _0807E4F4 @ =gFieldCallback ldr r1, _0807E4F8 @ =sub_807DF64 str r1, [r0] ldr r0, _0807E4FC @ =sub_807E80C @@ -1241,10 +1241,10 @@ sub_807E4DC: @ 807E4DC pop {r0} bx r0 .align 2, 0 -_0807E4F4: .4byte gUnknown_3005020 +_0807E4F4: .4byte gFieldCallback _0807E4F8: .4byte sub_807DF64 _0807E4FC: .4byte sub_807E80C - thumb_func_end sub_807E4DC + thumb_func_end DoDoorWarp thumb_func_start sub_807E500 sub_807E500: @ 807E500 @@ -1253,14 +1253,14 @@ sub_807E500: @ 807E500 ldr r0, _0807E518 @ =sub_807E718 movs r1, 0xA bl CreateTask - ldr r1, _0807E51C @ =gUnknown_3005020 + ldr r1, _0807E51C @ =gFieldCallback ldr r0, _0807E520 @ =sub_807DF94 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0807E518: .4byte sub_807E718 -_0807E51C: .4byte gUnknown_3005020 +_0807E51C: .4byte gFieldCallback _0807E520: .4byte sub_807DF94 thumb_func_end sub_807E500 @@ -1268,7 +1268,7 @@ _0807E520: .4byte sub_807DF94 sub_807E524: @ 807E524 push {lr} bl ScriptContext2_Enable - ldr r0, _0807E53C @ =gUnknown_3005020 + ldr r0, _0807E53C @ =gFieldCallback ldr r1, _0807E540 @ =sub_807DF64 str r1, [r0] ldr r0, _0807E544 @ =sub_807E784 @@ -1277,24 +1277,24 @@ sub_807E524: @ 807E524 pop {r0} bx r0 .align 2, 0 -_0807E53C: .4byte gUnknown_3005020 +_0807E53C: .4byte gFieldCallback _0807E540: .4byte sub_807DF64 _0807E544: .4byte sub_807E784 thumb_func_end sub_807E524 - thumb_func_start sp13F_fall_to_last_warp -sp13F_fall_to_last_warp: @ 807E548 + thumb_func_start DoFallWarp +DoFallWarp: @ 807E548 push {lr} - bl sp13E_warp_to_last_warp - ldr r1, _0807E558 @ =gUnknown_3005020 + bl DoDiveWarp + ldr r1, _0807E558 @ =gFieldCallback ldr r0, _0807E55C @ =sub_8084454 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_0807E558: .4byte gUnknown_3005020 +_0807E558: .4byte gFieldCallback _0807E55C: .4byte sub_8084454 - thumb_func_end sp13F_fall_to_last_warp + thumb_func_end DoFallWarp thumb_func_start sub_807E560 sub_807E560: @ 807E560 @@ -1339,14 +1339,14 @@ sub_807E59C: @ 807E59C ldr r0, _0807E5B8 @ =sub_807E784 movs r1, 0xA bl CreateTask - ldr r1, _0807E5BC @ =gUnknown_3005020 + ldr r1, _0807E5BC @ =gFieldCallback ldr r0, _0807E5C0 @ =sub_807DF94 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0807E5B8: .4byte sub_807E784 -_0807E5BC: .4byte gUnknown_3005020 +_0807E5BC: .4byte gFieldCallback _0807E5C0: .4byte sub_807DF94 thumb_func_end sub_807E59C @@ -1358,14 +1358,14 @@ sub_807E5C4: @ 807E5C4 ldr r0, _0807E5E0 @ =sub_807E718 movs r1, 0xA bl CreateTask - ldr r1, _0807E5E4 @ =gUnknown_3005020 + ldr r1, _0807E5E4 @ =gFieldCallback ldr r0, _0807E5E8 @ =nullsub_60 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0807E5E0: .4byte sub_807E718 -_0807E5E4: .4byte gUnknown_3005020 +_0807E5E4: .4byte gFieldCallback _0807E5E8: .4byte nullsub_60 thumb_func_end sub_807E5C4 @@ -1690,7 +1690,7 @@ _0807E85C: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_805B364 + bl GetDoorSoundEffect lsls r0, 16 lsrs r0, 16 bl PlaySE @@ -1699,7 +1699,7 @@ _0807E85C: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_805B310 + bl FieldAnimateDoorOpen lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] @@ -1760,7 +1760,7 @@ _0807E8F4: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_805B2D0 + bl FieldAnimateDoorClose lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] @@ -1807,7 +1807,7 @@ _0807E95C: _0807E966: bl sub_8055F88 _0807E96A: - bl play_some_sound + bl PlayRainStoppingSoundEffect movs r0, 0 strh r0, [r5, 0x8] ldr r0, _0807E97C @ =sub_807E718 @@ -1891,7 +1891,7 @@ _0807EA00: b _0807EAB0 _0807EA10: bl sub_8055F88 - bl play_some_sound + bl PlayRainStoppingSoundEffect ldrb r1, [r7, 0x5] movs r0, 0xD negs r0, r0 @@ -1954,7 +1954,7 @@ _0807EA92: strh r0, [r5] b _0807EAB0 _0807EA9A: - ldr r0, _0807EAB8 @ =gUnknown_3005020 + ldr r0, _0807EAB8 @ =gFieldCallback ldr r1, _0807EABC @ =sub_807DF64 str r1, [r0] bl warp_in @@ -1968,7 +1968,7 @@ _0807EAB0: pop {r0} bx r0 .align 2, 0 -_0807EAB8: .4byte gUnknown_3005020 +_0807EAB8: .4byte gFieldCallback _0807EABC: .4byte sub_807DF64 _0807EAC0: .4byte sub_805671C thumb_func_end sub_807E980 diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 308421098..1275f7471 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -673,7 +673,7 @@ sub_805E2E8: @ 805E2E8 lsls r0, 24 cmp r0, 0 beq _0805E37C - ldr r1, _0805E374 @ =gUnknown_3005040 + ldr r1, _0805E374 @ =VMap ldr r0, [r1] adds r3, r0, 0 subs r3, 0x10 @@ -736,7 +736,7 @@ _0805E36A: movs r0, 0 b _0805E37E .align 2, 0 -_0805E374: .4byte gUnknown_3005040 +_0805E374: .4byte VMap _0805E378: .4byte gSaveBlock1Ptr _0805E37C: movs r0, 0x1 @@ -1373,8 +1373,8 @@ SpawnSpecialFieldObject: @ 805E7F4 _0805E82C: .4byte gSaveBlock1Ptr thumb_func_end SpawnSpecialFieldObject - thumb_func_start SpawnSpecialFieldObjectParametrized -SpawnSpecialFieldObjectParametrized: @ 805E830 + thumb_func_start SpawnSpecialFieldObjectParameterized +SpawnSpecialFieldObjectParameterized: @ 805E830 push {r4-r6,lr} mov r6, r8 push {r6} @@ -1425,7 +1425,7 @@ SpawnSpecialFieldObjectParametrized: @ 805E830 bx r1 .align 2, 0 _0805E894: .4byte 0xfff90000 - thumb_func_end SpawnSpecialFieldObjectParametrized + thumb_func_end SpawnSpecialFieldObjectParameterized thumb_func_start show_sprite show_sprite: @ 805E898 @@ -1550,8 +1550,8 @@ MakeObjectTemplateFromFieldObjectTemplate: @ 805E960 bx r0 thumb_func_end MakeObjectTemplateFromFieldObjectTemplate - thumb_func_start AddPseudoFieldObject -AddPseudoFieldObject: @ 805E978 + thumb_func_start AddPseudoEventObject +AddPseudoEventObject: @ 805E978 push {r4-r6,lr} sub sp, 0x1C ldr r4, [sp, 0x2C] @@ -1612,10 +1612,10 @@ _0805E9E4: .align 2, 0 _0805E9F0: .4byte 0x0000ffff _0805E9F4: .4byte gSprites - thumb_func_end AddPseudoFieldObject + thumb_func_end AddPseudoEventObject - thumb_func_start sub_805E9F8 -sub_805E9F8: @ 805E9F8 + thumb_func_start sprite_new +sprite_new: @ 805E9F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1772,7 +1772,7 @@ _0805EB24: _0805EB38: .4byte sub_8068FA8 _0805EB3C: .4byte 0x0000ffff _0805EB40: .4byte gSprites - thumb_func_end sub_805E9F8 + thumb_func_end sprite_new thumb_func_start sub_805EB44 sub_805EB44: @ 805EB44 @@ -3516,7 +3516,7 @@ npc_coords_shift_still: @ 805F818 thumb_func_start UpdateFieldObjectCoordsForCameraUpdate UpdateFieldObjectCoordsForCameraUpdate: @ 805F82C push {r4,r5,lr} - ldr r2, _0805F88C @ =gUnknown_2036E18 + ldr r2, _0805F88C @ =gCamera ldrb r1, [r2] movs r0, 0x1 ands r0, r1 @@ -3566,7 +3566,7 @@ _0805F884: pop {r0} bx r0 .align 2, 0 -_0805F88C: .4byte gUnknown_2036E18 +_0805F88C: .4byte gCamera _0805F890: .4byte gMapObjects thumb_func_end UpdateFieldObjectCoordsForCameraUpdate @@ -12332,13 +12332,13 @@ npc_block_way: @ 80636AC _080636E2: adds r0, r5, 0 adds r1, r4, 0 - bl sub_8058DC4 + bl MapGridIsImpassableAt lsls r0, 24 cmp r0, 0 bne _08063724 adds r0, r5, 0 adds r1, r4, 0 - bl sub_8059334 + bl GetMapBorderIdAt movs r1, 0x1 negs r1, r1 cmp r0, r1 @@ -12432,13 +12432,13 @@ sub_8063770: @ 8063770 lsrs r4, r1, 31 adds r0, r6, 0 adds r1, r5, 0 - bl sub_8058DC4 + bl MapGridIsImpassableAt lsls r0, 24 cmp r0, 0 bne _080637E8 adds r0, r6, 0 adds r1, r5, 0 - bl sub_8059334 + bl GetMapBorderIdAt movs r1, 0x1 negs r1, r1 cmp r0, r1 @@ -21605,7 +21605,7 @@ _080677EA: ands r0, r1 strb r0, [r5, 0x1] _08067822: - ldr r1, _08067850 @ =gUnknown_825E074 + ldr r1, _08067850 @ =gSineTable movs r2, 0x3A ldrsh r0, [r4, r2] lsls r0, 1 @@ -21629,7 +21629,7 @@ _08067822: strb r0, [r5] b _080678B6 .align 2, 0 -_08067850: .4byte gUnknown_825E074 +_08067850: .4byte gSineTable _08067854: ldrh r0, [r4, 0x36] adds r0, 0x1 @@ -21697,7 +21697,7 @@ sub_80678C0: @ 80678C0 movs r0, 0xFF ands r2, r0 strh r2, [r1, 0x3C] - ldr r3, _080678EC @ =gUnknown_825E074 + ldr r3, _080678EC @ =gSineTable movs r4, 0x3C ldrsh r0, [r1, r4] lsls r0, 1 @@ -21715,7 +21715,7 @@ _080678E6: pop {r1} bx r1 .align 2, 0 -_080678EC: .4byte gUnknown_825E074 +_080678EC: .4byte gSineTable thumb_func_end sub_80678C0 thumb_func_start sub_80678F0 diff --git a/asm/field_message_box.s b/asm/field_message_box.s index 78a5f8c8c..46f4c3f8e 100644 --- a/asm/field_message_box.s +++ b/asm/field_message_box.s @@ -83,7 +83,7 @@ _080693D4: _080693DA: movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame _080693E2: ldrh r0, [r5, 0x8] adds r0, 0x1 @@ -250,7 +250,7 @@ HideFieldMessageBox: @ 80694F4 bl task_del_textbox movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame ldr r1, _0806950C @ =gUnknown_203709C movs r0, 0 strb r0, [r1] @@ -293,7 +293,7 @@ sub_8069538: @ 8069538 bl task_del_textbox movs r0, 0 movs r1, 0x1 - bl sub_80F6F1C + bl DrawStdWindowFrame ldr r1, _08069550 @ =gUnknown_203709C movs r0, 0 strb r0, [r1] diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index aa68c6ef2..5fb0f3dad 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -2818,7 +2818,7 @@ PartyHasMonWithSurf: @ 805C83C _0805C84E: adds r0, r4, 0 movs r1, 0x39 - bl pokemon_has_move + bl MonKnowsMove lsls r0, 24 cmp r0, 0 beq _0805C860 @@ -4676,7 +4676,7 @@ sub_805D66C: @ 805D66C movs r0, 0 movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -4769,7 +4769,7 @@ _0805D748: strh r6, [r0, 0x26] movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] @@ -4851,7 +4851,7 @@ sub_805D7C0: @ 805D7C0 movs r0, 0 movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0xD strh r0, [r6, 0x8] movs r0, 0x1 @@ -4904,7 +4904,7 @@ sub_805D838: @ 805D838 movs r0, 0 movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] @@ -5043,7 +5043,7 @@ sub_805D980: @ 805D980 bl UnfreezeMapObjects movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame ldr r0, _0805D9C0 @ =sub_805D304 bl FindTaskIdByFunc lsls r0, 24 diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s index a8477a33f..079abee2c 100644 --- a/asm/field_screen_effect.s +++ b/asm/field_screen_effect.s @@ -135,12 +135,12 @@ _0807EEE0: beq _0807EF6C b _0807EF76 _0807EEE6: - ldr r0, _0807EF0C @ =gUnknown_2039600 + ldr r0, _0807EF0C @ =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 - ldr r1, _0807EF10 @ =gUnknown_2038700 + ldr r1, _0807EF10 @ =gScanlineEffectRegBuffers adds r0, r1 movs r2, 0x2 ldrsh r1, [r4, r2] @@ -153,15 +153,15 @@ _0807EEE6: strh r0, [r4] b _0807EF76 .align 2, 0 -_0807EF0C: .4byte gUnknown_2039600 -_0807EF10: .4byte gUnknown_2038700 +_0807EF0C: .4byte gScanlineEffect +_0807EF10: .4byte gScanlineEffectRegBuffers _0807EF14: - ldr r0, _0807EF5C @ =gUnknown_2039600 + ldr r0, _0807EF5C @ =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 - ldr r1, _0807EF60 @ =gUnknown_2038700 + ldr r1, _0807EF60 @ =gScanlineEffectRegBuffers adds r0, r1 movs r6, 0x2 ldrsh r1, [r4, r6] @@ -186,19 +186,19 @@ _0807EF14: ldrsh r0, [r4, r3] cmp r0, 0x1 bne _0807EF64 - bl remove_some_task + bl ScanlineEffect_Stop movs r0, 0x2 strh r0, [r4] b _0807EF76 .align 2, 0 -_0807EF5C: .4byte gUnknown_2039600 -_0807EF60: .4byte gUnknown_2038700 +_0807EF5C: .4byte gScanlineEffect +_0807EF60: .4byte gScanlineEffectRegBuffers _0807EF64: adds r0, r5, 0 bl DestroyTask b _0807EF76 _0807EF6C: - bl dp12_8087EA4 + bl ScanlineEffect_Clear adds r0, r5, 0 bl DestroyTask _0807EF76: @@ -344,7 +344,7 @@ sub_807F074: @ 807F074 lsrs r0, 24 cmp r0, 0 beq _0807F0A2 - ldr r4, _0807F0A8 @ =gUnknown_2038700 + ldr r4, _0807F0A8 @ =gScanlineEffectRegBuffers ldr r1, _0807F0AC @ =gUnknown_83C68D4 lsls r0, 1 adds r0, r1 @@ -365,7 +365,7 @@ _0807F0A2: pop {r0} bx r0 .align 2, 0 -_0807F0A8: .4byte gUnknown_2038700 +_0807F0A8: .4byte gScanlineEffectRegBuffers _0807F0AC: .4byte gUnknown_83C68D4 thumb_func_end sub_807F074 @@ -785,7 +785,7 @@ _0807F3E0: movs r1, 0x2 mov r2, r10 mov r3, r9 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r2, _0807F42C @ =gTextFlags ldrb r1, [r2] movs r0, 0x2 @@ -869,7 +869,7 @@ _0807F4A8: adds r7, r0, r1 strh r5, [r7, 0xA] movs r0, 0xF0 - bl sub_80F77CC + bl Menu_LoadStdPalAt adds r0, r5, 0 movs r1, 0 bl FillWindowPixelBuffer diff --git a/asm/field_specials.s b/asm/field_specials.s index a4f3e6dc7..fcec338e7 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -33,9 +33,9 @@ _080CA644: movs r4, 0x8D lsls r4, 1 adds r0, r4, 0 - bl sub_8055E78 + bl Overworld_SetSavedMusic adds r0, r4, 0 - bl sub_8055F48 + bl Overworld_ChangeMusicTo pop {r4} pop {r0} bx r0 @@ -178,11 +178,11 @@ _080CA748: .4byte gUnknown_8417FCC thumb_func_start sub_80CA74C sub_80CA74C: @ 80CA74C - ldr r0, _080CA754 @ =gUnknown_2023E8A + ldr r0, _080CA754 @ =gBattleOutcome ldrb r0, [r0] bx lr .align 2, 0 -_080CA754: .4byte gUnknown_2023E8A +_080CA754: .4byte gBattleOutcome thumb_func_end sub_80CA74C thumb_func_start sub_80CA758 @@ -601,7 +601,7 @@ SpawnScriptFieldObject: @ 80CAA34 movs r0, 0x12 movs r1, 0x8 movs r2, 0x7F - bl SpawnSpecialFieldObjectParametrized + bl SpawnSpecialFieldObjectParameterized lsls r0, 24 lsrs r0, 24 ldr r2, _080CAA84 @ =gMapObjects @@ -756,7 +756,7 @@ sub_80CAB78: @ 80CAB78 bl VarGet lsls r0, 16 lsrs r0, 16 - bl sub_80CBD94 + bl GetStarterPokemon lsls r0, 16 lsrs r6, r0, 16 bl CalculatePlayerPartyCount @@ -2071,7 +2071,7 @@ sub_80CB580: @ 80CB580 ldr r5, _080CB62C @ =0x0000021d adds r1, r5, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldrb r0, [r4] movs r1, 0 adds r2, r5, 0 @@ -2141,7 +2141,7 @@ sub_80CB63C: @ 80CB63C ldr r4, _080CB654 @ =gUnknown_2039A0C ldrb r0, [r4] movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl RemoveWindow pop {r4} @@ -2753,7 +2753,7 @@ sub_80CBADC: @ 80CBADC ldr r4, _080CBB20 @ =gUnknown_3005378 adds r1, r4, 0 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldr r1, _080CBB24 @ =gUnknown_2039A18 ldrh r0, [r4] strh r0, [r1] @@ -2854,7 +2854,7 @@ sub_80CBBAC: @ 80CBBAC lsrs r0, 24 movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldr r0, _080CBC28 @ =gUnknown_2039A14 ldr r0, [r0] bl Free @@ -2862,7 +2862,7 @@ sub_80CBBAC: @ 80CBBAC lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldrh r0, [r4, 0x22] lsls r0, 24 lsrs r0, 24 @@ -3078,15 +3078,15 @@ _080CBD7C: .4byte gTasks sub_80CBD80: @ 80CBD80 push {lr} movs r0, 0x16 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 movs r0, 0x8 bl SetPlayerAvatarTransitionFlags pop {r0} bx r0 thumb_func_end sub_80CBD80 - thumb_func_start sub_80CBD94 -sub_80CBD94: @ 80CBD94 + thumb_func_start GetStarterPokemon +GetStarterPokemon: @ 80CBD94 push {lr} lsls r0, 16 lsrs r1, r0, 16 @@ -3094,31 +3094,31 @@ sub_80CBD94: @ 80CBD94 bls _080CBDA0 movs r1, 0 _080CBDA0: - ldr r0, _080CBDAC @ =gUnknown_83F5D2C + ldr r0, _080CBDAC @ =sStarterMon lsls r1, 1 adds r1, r0 ldrh r0, [r1] pop {r1} bx r1 .align 2, 0 -_080CBDAC: .4byte gUnknown_83F5D2C - thumb_func_end sub_80CBD94 +_080CBDAC: .4byte sStarterMon + thumb_func_end GetStarterPokemon - thumb_func_start sub_80CBDB0 -sub_80CBDB0: @ 80CBDB0 + thumb_func_start ScrSpecial_GetStarter +ScrSpecial_GetStarter: @ 80CBDB0 push {lr} ldr r0, _080CBDC8 @ =0x00004031 bl VarGet lsls r0, 16 lsrs r0, 16 - bl sub_80CBD94 + bl GetStarterPokemon lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _080CBDC8: .4byte 0x00004031 - thumb_func_end sub_80CBDB0 + thumb_func_end ScrSpecial_GetStarter thumb_func_start sub_80CBDCC sub_80CBDCC: @ 80CBDCC @@ -3138,7 +3138,7 @@ _080CBDE4: .4byte gSpecialVar_0x8004 thumb_func_start sub_80CBDE8 sub_80CBDE8: @ 80CBDE8 - ldr r1, _080CBDF8 @ =gUnknown_3005074 + ldr r1, _080CBDF8 @ =gSelectedEventObject movs r0, 0 strb r0, [r1] ldr r1, _080CBDFC @ =gUnknown_20370DA @@ -3146,7 +3146,7 @@ sub_80CBDE8: @ 80CBDE8 strh r0, [r1] bx lr .align 2, 0 -_080CBDF8: .4byte gUnknown_3005074 +_080CBDF8: .4byte gSelectedEventObject _080CBDFC: .4byte gUnknown_20370DA thumb_func_end sub_80CBDE8 @@ -3157,7 +3157,7 @@ sub_80CBE00: @ 80CBE00 ldrh r0, [r0] cmp r0, 0xFF bne _080CBE44 - ldr r1, _080CBE1C @ =gUnknown_3005074 + ldr r1, _080CBE1C @ =gSelectedEventObject ldrb r0, [r1] cmp r0, 0 bne _080CBE20 @@ -3165,7 +3165,7 @@ sub_80CBE00: @ 80CBE00 b _080CBE48 .align 2, 0 _080CBE18: .4byte gUnknown_20370DA -_080CBE1C: .4byte gUnknown_3005074 +_080CBE1C: .4byte gSelectedEventObject _080CBE20: ldr r2, _080CBE4C @ =gMapObjects ldrb r1, [r1] @@ -3267,7 +3267,7 @@ TV_PrintIntToStringVar: @ 80CBED4 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 - bl sub_80CBF04 + bl CountDigits adds r3, r0, 0 ldr r0, _080CBF00 @ =gUnknown_83F5AF8 lsls r4, 2 @@ -3285,8 +3285,8 @@ TV_PrintIntToStringVar: @ 80CBED4 _080CBF00: .4byte gUnknown_83F5AF8 thumb_func_end TV_PrintIntToStringVar - thumb_func_start sub_80CBF04 -sub_80CBF04: @ 80CBF04 + thumb_func_start CountDigits +CountDigits: @ 80CBF04 push {r4,lr} adds r4, r0, 0 movs r1, 0xA @@ -3366,7 +3366,7 @@ _080CBF9A: pop {r4} pop {r1} bx r1 - thumb_func_end sub_80CBF04 + thumb_func_end CountDigits thumb_func_start sub_80CBFA0 sub_80CBFA0: @ 80CBFA0 @@ -5542,7 +5542,7 @@ sub_80CD098: @ 80CD098 str r3, [sp] movs r0, 0 movs r3, 0 - bl sub_8006300 + bl CreateTextCursorSpriteForOakSpeech ldr r1, _080CD0DC @ =gUnknown_2039A1B strb r0, [r1] b _080CD0E8 diff --git a/asm/field_tasks.s b/asm/field_tasks.s index 306b52940..b4106c021 100644 --- a/asm/field_tasks.s +++ b/asm/field_tasks.s @@ -490,7 +490,7 @@ _0806EB8E: ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r4, r2] - bl sub_8058E48 + bl MapGridGetMetatileIdAt ldr r1, _0806EBDC @ =0x0000020a cmp r0, r1 bne _0806EBE4 @@ -534,7 +534,7 @@ sub_806EC04: @ 806EC04 asrs r4, r1, 16 adds r0, r5, 0 adds r1, r4, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt ldr r1, _0806EC38 @ =0x0000022f ldr r2, _0806EC3C @ =0x00000237 cmp r0, r1 diff --git a/asm/field_weather.s b/asm/field_weather.s index 77a138ad2..e8d3ba7ee 100644 --- a/asm/field_weather.s +++ b/asm/field_weather.s @@ -122,7 +122,7 @@ weather_set: @ 8079CF4 beq _08079D0A cmp r4, 0xD beq _08079D0A - bl play_some_sound + bl PlayRainStoppingSoundEffect _08079D0A: ldr r1, _08079D4C @ =gUnknown_2037F34 ldr r2, _08079D50 @ =0x000006d1 @@ -170,7 +170,7 @@ sub_8079D60: @ 8079D60 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl play_some_sound + bl PlayRainStoppingSoundEffect ldr r0, _08079D84 @ =gUnknown_2037F34 movs r2, 0xDA lsls r2, 3 @@ -193,7 +193,7 @@ sub_8079D8C: @ 8079D8C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl play_some_sound + bl PlayRainStoppingSoundEffect ldr r1, _08079DB8 @ =gUnknown_2037F34 movs r2, 0xDA lsls r2, 3 @@ -2250,7 +2250,7 @@ _0807AD14: movs r1, 0x7F ands r0, r1 strh r0, [r2] - ldr r1, _0807AD5C @ =gUnknown_825E074 + ldr r1, _0807AD5C @ =gSineTable movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 1 @@ -2278,7 +2278,7 @@ _0807AD54: strh r0, [r4] b _0807ADA0 .align 2, 0 -_0807AD5C: .4byte gUnknown_825E074 +_0807AD5C: .4byte gSineTable _0807AD60: .4byte 0x0000073c _0807AD64: .4byte 0x0000073e _0807AD68: @@ -2625,8 +2625,8 @@ _0807AFFA: _0807B000: .4byte 0x000006dd thumb_func_end SetRainStrengthFromSoundEffect - thumb_func_start play_some_sound -play_some_sound: @ 807B004 + thumb_func_start PlayRainStoppingSoundEffect +PlayRainStoppingSoundEffect: @ 807B004 push {lr} bl IsSpecialSEPlaying lsls r0, 24 @@ -2658,7 +2658,7 @@ _0807B03C: _0807B042: pop {r0} bx r0 - thumb_func_end play_some_sound + thumb_func_end PlayRainStoppingSoundEffect thumb_func_start sub_807B048 sub_807B048: @ 807B048 @@ -2804,8 +2804,8 @@ sav1_get_weather_probably: @ 807B130 _0807B13C: .4byte gSaveBlock1Ptr thumb_func_end sav1_get_weather_probably - thumb_func_start sub_807B140 -sub_807B140: @ 807B140 + thumb_func_start SetSav1WeatherFromCurrMapHeader +SetSav1WeatherFromCurrMapHeader: @ 807B140 push {r4,r5,lr} ldr r4, _0807B16C @ =gSaveBlock1Ptr ldr r0, [r4] @@ -2828,7 +2828,7 @@ sub_807B140: @ 807B140 .align 2, 0 _0807B16C: .4byte gSaveBlock1Ptr _0807B170: .4byte gMapHeader - thumb_func_end sub_807B140 + thumb_func_end SetSav1WeatherFromCurrMapHeader thumb_func_start SetWeather SetWeather: @ 807B174 diff --git a/asm/field_weather_effects.s b/asm/field_weather_effects.s index fd9b2361a..0330bcbaf 100644 --- a/asm/field_weather_effects.s +++ b/asm/field_weather_effects.s @@ -1972,7 +1972,7 @@ sub_807C1AC: @ 807C1AC movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] - ldr r1, _0807C224 @ =gUnknown_825E074 + ldr r1, _0807C224 @ =gSineTable movs r3, 0x34 ldrsh r0, [r4, r3] lsls r0, 1 @@ -2020,7 +2020,7 @@ _0807C210: subs r0, r1 b _0807C23C .align 2, 0 -_0807C224: .4byte gUnknown_825E074 +_0807C224: .4byte gSineTable _0807C228: .4byte gSpriteCoordOffsetX _0807C22C: .4byte 0x000001ff _0807C230: .4byte 0xffffff00 @@ -4417,7 +4417,7 @@ sub_807D4C4: @ 807D4C4 ldr r2, [r0] ldr r0, _0807D52C @ =0x00000704 adds r4, r2, r0 - ldr r6, _0807D530 @ =gUnknown_825E074 + ldr r6, _0807D530 @ =gSineTable ldr r1, _0807D534 @ =0x00000712 adds r5, r2, r1 ldrh r0, [r5] @@ -4465,7 +4465,7 @@ sub_807D4C4: @ 807D4C4 .align 2, 0 _0807D528: .4byte gUnknown_83C2BBC _0807D52C: .4byte 0x00000704 -_0807D530: .4byte gUnknown_825E074 +_0807D530: .4byte gSineTable _0807D534: .4byte 0x00000712 _0807D538: .4byte gSpriteCoordOffsetX _0807D53C: .4byte 0x0000070e @@ -4856,7 +4856,7 @@ SandstormSpriteCallback3: @ 807D81C _0807D83A: movs r0, 0x2E ldrsh r4, [r5, r0] - ldr r3, _0807D88C @ =gUnknown_825E074 + ldr r3, _0807D88C @ =gSineTable movs r2, 0x30 ldrsh r1, [r5, r2] lsls r0, r1, 1 @@ -4897,7 +4897,7 @@ _0807D886: pop {r0} bx r0 .align 2, 0 -_0807D88C: .4byte gUnknown_825E074 +_0807D88C: .4byte gSineTable thumb_func_end SandstormSpriteCallback3 thumb_func_start Weather11_InitVars diff --git a/asm/fieldmap.s b/asm/fieldmap.s deleted file mode 100644 index a8b2d36ee..000000000 --- a/asm/fieldmap.s +++ /dev/null @@ -1,2400 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start mapconnection_get_mapheader -mapconnection_get_mapheader: @ 80589C4 - push {lr} - ldrb r2, [r0, 0x8] - ldrb r1, [r0, 0x9] - adds r0, r2, 0 - bl get_mapheader_by_bank_and_number - pop {r1} - bx r1 - thumb_func_end mapconnection_get_mapheader - - thumb_func_start not_trainer_hill_battle_pyramid -not_trainer_hill_battle_pyramid: @ 80589D4 - push {lr} - ldr r0, _080589E4 @ =gMapHeader - bl sub_8058A00 - bl mapheader_run_script_with_tag_x1 - pop {r0} - bx r0 - .align 2, 0 -_080589E4: .4byte gMapHeader - thumb_func_end not_trainer_hill_battle_pyramid - - thumb_func_start sub_80589E8 -sub_80589E8: @ 80589E8 - push {lr} - ldr r0, _080589FC @ =gMapHeader - bl sub_8058A00 - bl sub_80591C4 - bl mapheader_run_script_with_tag_x1 - pop {r0} - bx r0 - .align 2, 0 -_080589FC: .4byte gMapHeader - thumb_func_end sub_80589E8 - - thumb_func_start sub_8058A00 -sub_8058A00: @ 8058A00 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r5, [r6] - ldr r0, _08058A58 @ =0x03ff03ff - str r0, [sp] - ldr r4, _08058A5C @ =gUnknown_2031DFC - ldr r2, _08058A60 @ =0x01001400 - mov r0, sp - adds r1, r4, 0 - bl CpuFastSet - ldr r2, _08058A64 @ =gUnknown_3005040 - str r4, [r2, 0x8] - ldr r1, [r5] - adds r1, 0xF - str r1, [r2] - ldr r0, [r5, 0x4] - adds r0, 0xE - str r0, [r2, 0x4] - muls r1, r0 - movs r0, 0xA0 - lsls r0, 6 - cmp r1, r0 - ble _08058A3E - ldr r0, _08058A68 @ =gUnknown_8352F18 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c" - ldr r2, _08058A6C @ =gUnknown_8352F4C "VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE" - movs r1, 0x9E - movs r3, 0x1 - bl AGBAssert -_08058A3E: - ldr r0, [r5, 0xC] - ldrh r1, [r5] - ldrh r2, [r5, 0x4] - bl map_copy_with_padding - adds r0, r6, 0 - bl mapheader_copy_mapdata_of_adjacent_maps - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08058A58: .4byte 0x03ff03ff -_08058A5C: .4byte gUnknown_2031DFC -_08058A60: .4byte 0x01001400 -_08058A64: .4byte gUnknown_3005040 -_08058A68: .4byte gUnknown_8352F18 -_08058A6C: .4byte gUnknown_8352F4C - thumb_func_end sub_8058A00 - - thumb_func_start map_copy_with_padding -map_copy_with_padding: @ 8058A70 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 16 - lsrs r2, 16 - ldr r0, _08058AC4 @ =gUnknown_3005040 - ldr r4, [r0, 0x8] - ldr r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, 0xE - adds r4, r0 - cmp r2, 0 - beq _08058AB8 - mov r0, r8 - lsls r6, r0, 1 - adds r5, r2, 0 - movs r0, 0x1E - adds r0, r6 - mov r9, r0 -_08058AA4: - adds r0, r7, 0 - adds r1, r4, 0 - mov r2, r8 - bl CpuSet - add r4, r9 - adds r7, r6 - subs r5, 0x1 - cmp r5, 0 - bne _08058AA4 -_08058AB8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058AC4: .4byte gUnknown_3005040 - thumb_func_end map_copy_with_padding - - thumb_func_start mapheader_copy_mapdata_of_adjacent_maps -mapheader_copy_mapdata_of_adjacent_maps: @ 8058AC8 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r2, _08058B00 @ =gUnknown_2036E24 - ldr r0, _08058B04 @ =gUnknown_8352EEC - ldr r0, [r0] - str r0, [r2] - ldr r0, [r6, 0xC] - cmp r0, 0 - beq _08058B4C - ldr r1, [r0] - ldr r5, [r0, 0x4] - cmp r1, 0 - ble _08058B4C - adds r4, r2, 0 - adds r7, r1, 0 -_08058AE6: - adds r0, r5, 0 - bl mapconnection_get_mapheader - adds r1, r0, 0 - ldr r2, [r5, 0x4] - ldrb r0, [r5] - cmp r0, 0x2 - beq _08058B1E - cmp r0, 0x2 - bgt _08058B08 - cmp r0, 0x1 - beq _08058B12 - b _08058B44 - .align 2, 0 -_08058B00: .4byte gUnknown_2036E24 -_08058B04: .4byte gUnknown_8352EEC -_08058B08: - cmp r0, 0x3 - beq _08058B2A - cmp r0, 0x4 - beq _08058B36 - b _08058B44 -_08058B12: - adds r0, r6, 0 - bl fillSouthConnection - ldrb r0, [r4] - movs r1, 0x1 - b _08058B40 -_08058B1E: - adds r0, r6, 0 - bl fillNorthConnection - ldrb r0, [r4] - movs r1, 0x2 - b _08058B40 -_08058B2A: - adds r0, r6, 0 - bl fillWestConnection - ldrb r0, [r4] - movs r1, 0x4 - b _08058B40 -_08058B36: - adds r0, r6, 0 - bl fillEastConnection - ldrb r0, [r4] - movs r1, 0x8 -_08058B40: - orrs r0, r1 - strb r0, [r4] -_08058B44: - subs r7, 0x1 - adds r5, 0xC - cmp r7, 0 - bne _08058AE6 -_08058B4C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end mapheader_copy_mapdata_of_adjacent_maps - - thumb_func_start sub_8058B54 -sub_8058B54: @ 8058B54 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, [sp, 0x18] - ldr r4, [r2] - ldr r7, [r4] - adds r2, r7, 0 - muls r2, r5 - adds r2, r3 - lsls r2, 1 - ldr r3, [r4, 0xC] - adds r6, r3, r2 - ldr r3, _08058BB0 @ =gUnknown_3005040 - ldr r2, [r3] - muls r1, r2 - adds r1, r0 - lsls r1, 1 - ldr r0, [r3, 0x8] - adds r5, r0, r1 - ldr r0, [sp, 0x20] - cmp r0, 0 - ble _08058BA6 - adds r4, r0, 0 - ldr r3, _08058BB4 @ =0x001fffff - mov r8, r3 -_08058B86: - adds r0, r6, 0 - adds r1, r5, 0 - ldr r2, [sp, 0x1C] - mov r3, r8 - ands r2, r3 - bl CpuSet - ldr r0, _08058BB0 @ =gUnknown_3005040 - ldr r0, [r0] - lsls r0, 1 - adds r5, r0 - lsls r0, r7, 1 - adds r6, r0 - subs r4, 0x1 - cmp r4, 0 - bne _08058B86 -_08058BA6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058BB0: .4byte gUnknown_3005040 -_08058BB4: .4byte 0x001fffff - thumb_func_end sub_8058B54 - - thumb_func_start fillSouthConnection -fillSouthConnection: @ 8058BB8 - push {r4-r7,lr} - sub sp, 0xC - adds r3, r0, 0 - adds r5, r1, 0 - cmp r5, 0 - beq _08058C12 - ldr r0, [r5] - ldr r4, [r0] - adds r2, 0x7 - ldr r0, [r3] - ldr r0, [r0, 0x4] - adds r7, r0, 0x7 - cmp r2, 0 - bge _08058BEC - negs r6, r2 - adds r2, r4 - ldr r0, _08058BE8 @ =gUnknown_3005040 - ldr r3, [r0] - cmp r2, r3 - bge _08058BE2 - adds r3, r2, 0 -_08058BE2: - movs r2, 0 - b _08058BFC - .align 2, 0 -_08058BE8: .4byte gUnknown_3005040 -_08058BEC: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _08058C1C @ =gUnknown_3005040 - ldr r1, [r1] - subs r3, r1, r2 - cmp r0, r1 - bge _08058BFC - adds r3, r4, 0 -_08058BFC: - movs r0, 0 - str r0, [sp] - str r3, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - adds r0, r2, 0 - adds r1, r7, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8058B54 -_08058C12: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058C1C: .4byte gUnknown_3005040 - thumb_func_end fillSouthConnection - - thumb_func_start fillNorthConnection -fillNorthConnection: @ 8058C20 - push {r4-r7,lr} - sub sp, 0xC - adds r5, r1, 0 - cmp r5, 0 - beq _08058C74 - ldr r0, [r5] - ldr r4, [r0] - ldr r0, [r0, 0x4] - adds r2, 0x7 - subs r7, r0, 0x7 - cmp r2, 0 - bge _08058C50 - negs r6, r2 - adds r2, r4 - ldr r0, _08058C4C @ =gUnknown_3005040 - ldr r3, [r0] - cmp r2, r3 - bge _08058C46 - adds r3, r2, 0 -_08058C46: - movs r2, 0 - b _08058C60 - .align 2, 0 -_08058C4C: .4byte gUnknown_3005040 -_08058C50: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _08058C7C @ =gUnknown_3005040 - ldr r1, [r1] - subs r3, r1, r2 - cmp r0, r1 - bge _08058C60 - adds r3, r4, 0 -_08058C60: - str r7, [sp] - str r3, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - adds r0, r2, 0 - movs r1, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8058B54 -_08058C74: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058C7C: .4byte gUnknown_3005040 - thumb_func_end fillNorthConnection - - thumb_func_start fillWestConnection -fillWestConnection: @ 8058C80 - push {r4-r7,lr} - sub sp, 0xC - adds r5, r1, 0 - cmp r5, 0 - beq _08058CD4 - ldr r0, [r5] - ldr r1, [r0] - ldr r4, [r0, 0x4] - adds r2, 0x7 - subs r7, r1, 0x7 - cmp r2, 0 - bge _08058CB0 - negs r6, r2 - adds r1, r2, r4 - ldr r0, _08058CAC @ =gUnknown_3005040 - ldr r3, [r0, 0x4] - cmp r1, r3 - bge _08058CA6 - adds r3, r1, 0 -_08058CA6: - movs r2, 0 - b _08058CC0 - .align 2, 0 -_08058CAC: .4byte gUnknown_3005040 -_08058CB0: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _08058CDC @ =gUnknown_3005040 - ldr r1, [r1, 0x4] - subs r3, r1, r2 - cmp r0, r1 - bge _08058CC0 - adds r3, r4, 0 -_08058CC0: - str r6, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - str r3, [sp, 0x8] - movs r0, 0 - adds r1, r2, 0 - adds r2, r5, 0 - adds r3, r7, 0 - bl sub_8058B54 -_08058CD4: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058CDC: .4byte gUnknown_3005040 - thumb_func_end fillWestConnection - - thumb_func_start fillEastConnection -fillEastConnection: @ 8058CE0 - push {r4-r7,lr} - sub sp, 0xC - adds r3, r0, 0 - adds r5, r1, 0 - cmp r5, 0 - beq _08058D38 - ldr r0, [r5] - ldr r4, [r0, 0x4] - ldr r0, [r3] - ldr r0, [r0] - adds r7, r0, 0x7 - adds r2, 0x7 - cmp r2, 0 - bge _08058D14 - negs r6, r2 - adds r1, r2, r4 - ldr r0, _08058D10 @ =gUnknown_3005040 - ldr r3, [r0, 0x4] - cmp r1, r3 - bge _08058D0A - adds r3, r1, 0 -_08058D0A: - movs r2, 0 - b _08058D24 - .align 2, 0 -_08058D10: .4byte gUnknown_3005040 -_08058D14: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _08058D40 @ =gUnknown_3005040 - ldr r1, [r1, 0x4] - subs r3, r1, r2 - cmp r0, r1 - bge _08058D24 - adds r3, r4, 0 -_08058D24: - str r6, [sp] - movs r0, 0x8 - str r0, [sp, 0x4] - str r3, [sp, 0x8] - adds r0, r7, 0 - adds r1, r2, 0 - adds r2, r5, 0 - movs r3, 0 - bl sub_8058B54 -_08058D38: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058D40: .4byte gUnknown_3005040 - thumb_func_end fillEastConnection - - thumb_func_start MapGridGetZCoordAt -MapGridGetZCoordAt: @ 8058D44 - push {r4-r7,lr} - adds r2, r0, 0 - adds r7, r1, 0 - cmp r2, 0 - blt _08058D74 - ldr r1, _08058D70 @ =gUnknown_3005040 - ldr r3, [r1] - cmp r2, r3 - bge _08058D74 - cmp r7, 0 - blt _08058D74 - ldr r0, [r1, 0x4] - cmp r7, r0 - bge _08058D74 - adds r0, r3, 0 - muls r0, r7 - adds r0, r2, r0 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _08058DA8 - .align 2, 0 -_08058D70: .4byte gUnknown_3005040 -_08058D74: - ldr r0, _08058DB4 @ =gMapHeader - ldr r6, [r0] - subs r0, r2, 0x7 - ldrb r5, [r6, 0x18] - lsls r1, r5, 3 - adds r0, r1 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - subs r0, r7, 0x7 - ldrb r1, [r6, 0x19] - lsls r2, r1, 3 - adds r0, r2 - bl __modsi3 - muls r0, r5 - adds r4, r0 - ldr r0, [r6, 0x8] - lsls r4, 1 - adds r4, r0 - ldrh r1, [r4] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - orrs r1, r0 -_08058DA8: - ldr r0, _08058DB8 @ =0x000003ff - cmp r1, r0 - beq _08058DBC - lsrs r0, r1, 12 - b _08058DBE - .align 2, 0 -_08058DB4: .4byte gMapHeader -_08058DB8: .4byte 0x000003ff -_08058DBC: - movs r0, 0 -_08058DBE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end MapGridGetZCoordAt - - thumb_func_start sub_8058DC4 -sub_8058DC4: @ 8058DC4 - push {r4-r7,lr} - adds r2, r0, 0 - adds r7, r1, 0 - cmp r2, 0 - blt _08058DF4 - ldr r1, _08058DF0 @ =gUnknown_3005040 - ldr r3, [r1] - cmp r2, r3 - bge _08058DF4 - cmp r7, 0 - blt _08058DF4 - ldr r0, [r1, 0x4] - cmp r7, r0 - bge _08058DF4 - adds r0, r3, 0 - muls r0, r7 - adds r0, r2, r0 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _08058E28 - .align 2, 0 -_08058DF0: .4byte gUnknown_3005040 -_08058DF4: - ldr r0, _08058E38 @ =gMapHeader - ldr r6, [r0] - subs r0, r2, 0x7 - ldrb r5, [r6, 0x18] - lsls r1, r5, 3 - adds r0, r1 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - subs r0, r7, 0x7 - ldrb r1, [r6, 0x19] - lsls r2, r1, 3 - adds r0, r2 - bl __modsi3 - muls r0, r5 - adds r4, r0 - ldr r0, [r6, 0x8] - lsls r4, 1 - adds r4, r0 - ldrh r1, [r4] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - orrs r1, r0 -_08058E28: - ldr r0, _08058E3C @ =0x000003ff - cmp r1, r0 - beq _08058E40 - movs r0, 0xC0 - lsls r0, 4 - ands r1, r0 - lsrs r0, r1, 10 - b _08058E42 - .align 2, 0 -_08058E38: .4byte gMapHeader -_08058E3C: .4byte 0x000003ff -_08058E40: - movs r0, 0x1 -_08058E42: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8058DC4 - - thumb_func_start sub_8058E48 -sub_8058E48: @ 8058E48 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - mov r9, r1 - cmp r0, 0 - blt _08058E80 - ldr r1, _08058E7C @ =gUnknown_3005040 - ldr r2, [r1] - cmp r8, r2 - bge _08058E80 - mov r0, r9 - cmp r0, 0 - blt _08058E80 - ldr r0, [r1, 0x4] - cmp r9, r0 - bge _08058E80 - mov r0, r9 - muls r0, r2 - add r0, r8 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - b _08058EBA - .align 2, 0 -_08058E7C: .4byte gUnknown_3005040 -_08058E80: - ldr r0, _08058EC8 @ =gMapHeader - ldr r6, [r0] - mov r0, r8 - subs r0, 0x7 - ldrb r5, [r6, 0x18] - lsls r1, r5, 3 - adds r0, r1 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - mov r0, r9 - subs r0, 0x7 - ldrb r1, [r6, 0x19] - lsls r2, r1, 3 - adds r0, r2 - bl __modsi3 - muls r0, r5 - adds r4, r0 - ldr r0, [r6, 0x8] - lsls r4, 1 - adds r4, r0 - ldrh r1, [r4] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - adds r7, r0, 0 - orrs r7, r1 -_08058EBA: - ldr r0, _08058ECC @ =0x000003ff - cmp r7, r0 - beq _08058ED0 - ands r7, r0 - adds r0, r7, 0 - b _08058F0A - .align 2, 0 -_08058EC8: .4byte gMapHeader -_08058ECC: .4byte 0x000003ff -_08058ED0: - ldr r0, _08058F18 @ =gMapHeader - ldr r6, [r0] - mov r0, r8 - subs r0, 0x7 - ldrb r5, [r6, 0x18] - lsls r1, r5, 3 - adds r0, r1 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - mov r0, r9 - subs r0, 0x7 - ldrb r1, [r6, 0x19] - lsls r2, r1, 3 - adds r0, r2 - bl __modsi3 - muls r0, r5 - adds r4, r0 - ldr r0, [r6, 0x8] - lsls r4, 1 - adds r4, r0 - ldrh r0, [r4] - movs r2, 0xC0 - lsls r2, 4 - adds r1, r2, 0 - orrs r0, r1 - ands r0, r7 -_08058F0A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08058F18: .4byte gMapHeader - thumb_func_end sub_8058E48 - - thumb_func_start sub_8058F1C -sub_8058F1C: @ 8058F1C - push {lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r3, r1, 24 - cmp r3, 0x7 - bhi _08058F3A - ldr r1, _08058F40 @ =gUnknown_8352EF0 - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - ldr r0, _08058F44 @ =gUnknown_8352F10 - adds r0, r3, r0 - ldrb r0, [r0] - lsrs r2, r0 -_08058F3A: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 -_08058F40: .4byte gUnknown_8352EF0 -_08058F44: .4byte gUnknown_8352F10 - thumb_func_end sub_8058F1C - - thumb_func_start sub_8058F48 -sub_8058F48: @ 8058F48 - push {r4,lr} - adds r4, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl sub_8058E48 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _08058F74 @ =gMapHeader - ldr r0, [r0] - adds r2, r4, 0 - bl sub_8059080 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08058F74: .4byte gMapHeader - thumb_func_end sub_8058F48 - - thumb_func_start MapGridGetMetatileBehaviorAt -MapGridGetMetatileBehaviorAt: @ 8058F78 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - movs r2, 0 - bl sub_8058F48 - pop {r1} - bx r1 - thumb_func_end MapGridGetMetatileBehaviorAt - - thumb_func_start sub_8058F8C -sub_8058F8C: @ 8058F8C - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x6 - bl sub_8058F48 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8058F8C - - thumb_func_start MapGridSetMetatileIdAt -MapGridSetMetatileIdAt: @ 8058FA4 - push {r4,r5,lr} - adds r3, r0, 0 - lsls r2, 16 - lsrs r5, r2, 16 - cmp r3, 0 - blt _08058FDC - ldr r2, _08058FE4 @ =gUnknown_3005040 - ldr r4, [r2] - cmp r3, r4 - bge _08058FDC - cmp r1, 0 - blt _08058FDC - ldr r0, [r2, 0x4] - cmp r1, r0 - bge _08058FDC - muls r1, r4 - adds r1, r3, r1 - ldr r0, [r2, 0x8] - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - movs r2, 0xF0 - lsls r2, 8 - ands r2, r0 - ldr r0, _08058FE8 @ =0x00000fff - ands r0, r5 - orrs r2, r0 - strh r2, [r1] -_08058FDC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08058FE4: .4byte gUnknown_3005040 -_08058FE8: .4byte 0x00000fff - thumb_func_end MapGridSetMetatileIdAt - - thumb_func_start MapGridSetMetatileEntryAt -MapGridSetMetatileEntryAt: @ 8058FEC - push {r4,r5,lr} - adds r3, r0, 0 - lsls r2, 16 - lsrs r5, r2, 16 - cmp r3, 0 - blt _08059018 - ldr r2, _08059020 @ =gUnknown_3005040 - ldr r4, [r2] - cmp r3, r4 - bge _08059018 - cmp r1, 0 - blt _08059018 - ldr r0, [r2, 0x4] - cmp r1, r0 - bge _08059018 - adds r0, r4, 0 - muls r0, r1 - adds r0, r3, r0 - ldr r1, [r2, 0x8] - lsls r0, 1 - adds r0, r1 - strh r5, [r0] -_08059018: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08059020: .4byte gUnknown_3005040 - thumb_func_end MapGridSetMetatileEntryAt - - thumb_func_start sub_8059024 -sub_8059024: @ 8059024 - push {r4,r5,lr} - adds r4, r0, 0 - adds r3, r1, 0 - adds r5, r2, 0 - cmp r4, 0 - blt _08059076 - ldr r2, _08059060 @ =gUnknown_3005040 - ldr r1, [r2] - cmp r4, r1 - bge _08059076 - cmp r3, 0 - blt _08059076 - ldr r0, [r2, 0x4] - cmp r3, r0 - bge _08059076 - cmp r5, 0 - beq _08059064 - adds r0, r1, 0 - muls r0, r3 - adds r0, r4, r0 - ldr r1, [r2, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r3, 0xC0 - lsls r3, 4 - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - b _08059076 - .align 2, 0 -_08059060: .4byte gUnknown_3005040 -_08059064: - muls r1, r3 - adds r1, r4, r1 - ldr r0, [r2, 0x8] - lsls r1, 1 - adds r1, r0 - ldrh r2, [r1] - ldr r0, _0805907C @ =0x0000f3ff - ands r0, r2 - strh r0, [r1] -_08059076: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805907C: .4byte 0x0000f3ff - thumb_func_end sub_8059024 - - thumb_func_start sub_8059080 -sub_8059080: @ 8059080 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r3, r1, 16 - adds r5, r3, 0 - lsls r2, 24 - lsrs r2, 24 - adds r6, r2, 0 - ldr r0, _080590A4 @ =0x0000027f - cmp r3, r0 - bhi _080590A8 - ldr r0, [r4, 0x10] - ldr r1, [r0, 0x14] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - adds r1, r2, 0 - b _080590C8 - .align 2, 0 -_080590A4: .4byte 0x0000027f -_080590A8: - ldr r0, _080590B4 @ =0x000003ff - cmp r3, r0 - bls _080590B8 - movs r0, 0xFF - b _080590CC - .align 2, 0 -_080590B4: .4byte 0x000003ff -_080590B8: - ldr r0, [r4, 0x14] - ldr r1, [r0, 0x14] - lsls r0, r5, 2 - adds r0, r1 - ldr r1, _080590D4 @ =0xfffff600 - adds r0, r1 - ldr r0, [r0] - adds r1, r6, 0 -_080590C8: - bl sub_8058F1C -_080590CC: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080590D4: .4byte 0xfffff600 - thumb_func_end sub_8059080 - - thumb_func_start sub_80590D8 -sub_80590D8: @ 80590D8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _08059144 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _08059148 @ =0x00000898 - adds r4, r0, r1 - ldr r0, _0805914C @ =gUnknown_3005040 - ldr r0, [r0] - mov r8, r0 - ldr r0, _08059150 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r2, 0 - ldrsh r6, [r0, r2] - movs r1, 0x2 - ldrsh r0, [r0, r1] - adds r1, r0, 0 - adds r1, 0xE - cmp r0, r1 - bge _08059138 - mov r12, r1 - ldr r2, _08059154 @ =gUnknown_2031DFC - mov r9, r2 - lsls r7, r6, 1 -_0805910A: - adds r1, r6, 0 - adds r3, r1, 0 - adds r3, 0xF - adds r5, r0, 0x1 - cmp r1, r3 - bge _08059132 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - lsls r0, 1 - add r0, r9 - adds r2, r7, r0 - subs r1, r3, r1 -_08059124: - ldrh r0, [r2] - strh r0, [r4] - adds r4, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bne _08059124 -_08059132: - adds r0, r5, 0 - cmp r0, r12 - blt _0805910A -_08059138: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08059144: .4byte gSaveBlock2Ptr -_08059148: .4byte 0x00000898 -_0805914C: .4byte gUnknown_3005040 -_08059150: .4byte gSaveBlock1Ptr -_08059154: .4byte gUnknown_2031DFC - thumb_func_end sub_80590D8 - - thumb_func_start sub_8059158 -sub_8059158: @ 8059158 - push {r4,lr} - movs r2, 0 - movs r1, 0 - ldr r0, _08059184 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r4, _08059188 @ =0x00000898 - adds r3, r0, r4 - ldr r4, _0805918C @ =0x000001ff -_08059168: - lsls r0, r1, 1 - adds r0, r3, r0 - ldrh r0, [r0] - orrs r2, r0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bls _08059168 - cmp r2, 0 - beq _08059190 - movs r0, 0 - b _08059192 - .align 2, 0 -_08059184: .4byte gSaveBlock2Ptr -_08059188: .4byte 0x00000898 -_0805918C: .4byte 0x000001ff -_08059190: - movs r0, 0x1 -_08059192: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8059158 - - thumb_func_start sub_8059198 -sub_8059198: @ 8059198 - push {lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, _080591B8 @ =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, _080591BC @ =0x00000898 - adds r1, r0 - ldr r2, _080591C0 @ =0x01000100 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080591B8: .4byte gSaveBlock2Ptr -_080591BC: .4byte 0x00000898 -_080591C0: .4byte 0x01000100 - thumb_func_end sub_8059198 - - thumb_func_start sub_80591C4 -sub_80591C4: @ 80591C4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0805923C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _08059240 @ =0x00000898 - adds r4, r0, r1 - bl sub_8059158 - cmp r0, 0 - bne _08059230 - ldr r0, _08059244 @ =gUnknown_3005040 - ldr r0, [r0] - mov r8, r0 - ldr r0, _08059248 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r2, 0 - ldrsh r6, [r0, r2] - movs r1, 0x2 - ldrsh r0, [r0, r1] - adds r1, r0, 0 - adds r1, 0xE - cmp r0, r1 - bge _0805922C - mov r12, r1 - ldr r2, _0805924C @ =gUnknown_2031DFC - mov r9, r2 - lsls r7, r6, 1 -_080591FE: - adds r1, r6, 0 - adds r3, r1, 0 - adds r3, 0xF - adds r5, r0, 0x1 - cmp r1, r3 - bge _08059226 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - lsls r0, 1 - add r0, r9 - adds r2, r7, r0 - subs r1, r3, r1 -_08059218: - ldrh r0, [r4] - strh r0, [r2] - adds r4, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bne _08059218 -_08059226: - adds r0, r5, 0 - cmp r0, r12 - blt _080591FE -_0805922C: - bl sub_8059198 -_08059230: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805923C: .4byte gSaveBlock2Ptr -_08059240: .4byte 0x00000898 -_08059244: .4byte gUnknown_3005040 -_08059248: .4byte gSaveBlock1Ptr -_0805924C: .4byte gUnknown_2031DFC - thumb_func_end sub_80591C4 - - thumb_func_start sub_8059250 -sub_8059250: @ 8059250 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - ldr r0, _0805929C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, _080592A0 @ =0x00000898 - adds r3, r0, r3 - str r3, [sp, 0x4] - ldr r0, _080592A4 @ =gUnknown_3005040 - ldr r0, [r0] - str r0, [sp] - movs r4, 0 - mov r9, r4 - mov r8, r4 - ldr r0, _080592A8 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r3, 0 - ldrsh r6, [r0, r3] - str r6, [sp, 0x8] - movs r4, 0x2 - ldrsh r5, [r0, r4] - movs r7, 0xF - movs r6, 0xE - mov r12, r6 - cmp r1, 0x2 - beq _080592B6 - cmp r1, 0x2 - bgt _080592AC - cmp r1, 0x1 - beq _080592BE - b _080592D6 - .align 2, 0 -_0805929C: .4byte gSaveBlock2Ptr -_080592A0: .4byte 0x00000898 -_080592A4: .4byte gUnknown_3005040 -_080592A8: .4byte gSaveBlock1Ptr -_080592AC: - cmp r2, 0x3 - beq _080592C8 - cmp r2, 0x4 - beq _080592D0 - b _080592D6 -_080592B6: - adds r5, 0x1 - movs r0, 0xD - mov r12, r0 - b _080592D6 -_080592BE: - movs r1, 0x1 - mov r8, r1 - movs r3, 0xD - mov r12, r3 - b _080592D6 -_080592C8: - ldr r4, [sp, 0x8] - adds r4, 0x1 - str r4, [sp, 0x8] - b _080592D4 -_080592D0: - movs r6, 0x1 - mov r9, r6 -_080592D4: - movs r7, 0xE -_080592D6: - movs r1, 0 - cmp r1, r12 - bge _0805931A - ldr r0, _08059330 @ =gUnknown_2031DFC - mov r10, r0 -_080592E0: - adds r4, r1, 0x1 - cmp r7, 0 - beq _08059314 - adds r0, r1, r5 - ldr r3, [sp] - adds r2, r3, 0 - muls r2, r0 - add r1, r8 - lsls r0, r1, 4 - subs r0, r1 - add r0, r9 - ldr r6, [sp, 0x8] - adds r2, r6, r2 - adds r3, r7, 0 - lsls r2, 1 - add r2, r10 - lsls r0, 1 - ldr r6, [sp, 0x4] - adds r1, r0, r6 -_08059306: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _08059306 -_08059314: - adds r1, r4, 0 - cmp r1, r12 - blt _080592E0 -_0805931A: - bl sub_8059198 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08059330: .4byte gUnknown_2031DFC - thumb_func_end sub_8059250 - - thumb_func_start sub_8059334 -sub_8059334: @ 8059334 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - mov r8, r1 - cmp r7, 0 - blt _08059374 - ldr r1, _0805936C @ =gUnknown_3005040 - ldr r2, [r1] - cmp r7, r2 - bge _08059374 - mov r0, r8 - cmp r0, 0 - blt _08059374 - ldr r0, [r1, 0x4] - cmp r8, r0 - bge _08059374 - mov r0, r8 - muls r0, r2 - adds r0, r7, r0 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _08059370 @ =0x000003ff - cmp r1, r0 - beq _08059422 - b _080593B0 - .align 2, 0 -_0805936C: .4byte gUnknown_3005040 -_08059370: .4byte 0x000003ff -_08059374: - ldr r0, _080593CC @ =gMapHeader - ldr r6, [r0] - subs r0, r7, 0x7 - ldrb r5, [r6, 0x18] - lsls r1, r5, 3 - adds r0, r1 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - mov r0, r8 - subs r0, 0x7 - ldrb r1, [r6, 0x19] - lsls r2, r1, 3 - adds r0, r2 - bl __modsi3 - muls r0, r5 - adds r4, r0 - ldr r0, [r6, 0x8] - lsls r4, 1 - adds r4, r0 - ldrh r1, [r4] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - orrs r0, r1 - ldr r1, _080593D0 @ =0x000003ff - cmp r0, r1 - beq _08059422 -_080593B0: - ldr r1, _080593D4 @ =gUnknown_3005040 - ldr r0, [r1] - subs r0, 0x8 - cmp r7, r0 - blt _080593DC - ldr r0, _080593D8 @ =gUnknown_2036E24 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08059422 - movs r0, 0x4 - b _08059432 - .align 2, 0 -_080593CC: .4byte gMapHeader -_080593D0: .4byte 0x000003ff -_080593D4: .4byte gUnknown_3005040 -_080593D8: .4byte gUnknown_2036E24 -_080593DC: - cmp r7, 0x6 - bgt _080593F4 - ldr r0, _080593F0 @ =gUnknown_2036E24 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08059422 - movs r0, 0x3 - b _08059432 - .align 2, 0 -_080593F0: .4byte gUnknown_2036E24 -_080593F4: - ldr r0, [r1, 0x4] - subs r0, 0x7 - cmp r8, r0 - blt _08059410 - ldr r0, _0805940C @ =gUnknown_2036E24 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08059422 - movs r0, 0x1 - b _08059432 - .align 2, 0 -_0805940C: .4byte gUnknown_2036E24 -_08059410: - mov r0, r8 - cmp r0, 0x6 - bgt _08059430 - ldr r0, _08059428 @ =gUnknown_2036E24 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0805942C -_08059422: - movs r0, 0x1 - negs r0, r0 - b _08059432 - .align 2, 0 -_08059428: .4byte gUnknown_2036E24 -_0805942C: - movs r0, 0x2 - b _08059432 -_08059430: - movs r0, 0 -_08059432: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8059334 - - thumb_func_start GetPostCameraMoveMapBorderId -GetPostCameraMoveMapBorderId: @ 805943C - push {r4,lr} - adds r3, r1, 0 - ldr r1, _08059460 @ =gSaveBlock1Ptr - ldr r1, [r1] - movs r4, 0 - ldrsh r2, [r1, r4] - adds r0, 0x7 - adds r2, r0 - movs r0, 0x2 - ldrsh r1, [r1, r0] - adds r3, 0x7 - adds r1, r3 - adds r0, r2, 0 - bl sub_8059334 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08059460: .4byte gSaveBlock1Ptr - thumb_func_end GetPostCameraMoveMapBorderId - - thumb_func_start CanCameraMoveInDirection -CanCameraMoveInDirection: @ 8059464 - push {r4,r5,lr} - ldr r1, _0805949C @ =gSaveBlock1Ptr - ldr r4, [r1] - movs r1, 0 - ldrsh r3, [r4, r1] - ldr r2, _080594A0 @ =gUnknown_826D2D8 - lsls r0, 3 - adds r1, r0, r2 - ldr r1, [r1] - adds r1, 0x7 - adds r3, r1 - movs r5, 0x2 - ldrsh r1, [r4, r5] - adds r2, 0x4 - adds r0, r2 - ldr r0, [r0] - adds r0, 0x7 - adds r1, r0 - adds r0, r3, 0 - bl sub_8059334 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080594A4 - movs r0, 0x1 - b _080594A6 - .align 2, 0 -_0805949C: .4byte gSaveBlock1Ptr -_080594A0: .4byte gUnknown_826D2D8 -_080594A4: - movs r0, 0 -_080594A6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end CanCameraMoveInDirection - - thumb_func_start sub_80594AC -sub_80594AC: @ 80594AC - push {r4-r7,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - adds r7, r3, 0 - bl mapconnection_get_mapheader - adds r3, r0, 0 - cmp r4, 0x2 - beq _08059514 - cmp r4, 0x2 - bgt _080594CA - cmp r4, 0x1 - beq _08059500 - b _08059526 -_080594CA: - cmp r4, 0x3 - beq _080594E8 - cmp r4, 0x4 - bne _08059526 - ldr r0, _080594E4 @ =gSaveBlock1Ptr - ldr r1, [r0] - negs r0, r6 - strh r0, [r1] - ldr r2, [r5, 0x4] - ldrh r0, [r1, 0x2] - subs r0, r2 - b _08059524 - .align 2, 0 -_080594E4: .4byte gSaveBlock1Ptr -_080594E8: - ldr r0, _080594FC @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, [r3] - ldr r0, [r0] - strh r0, [r1] - ldr r2, [r5, 0x4] - ldrh r0, [r1, 0x2] - subs r0, r2 - b _08059524 - .align 2, 0 -_080594FC: .4byte gSaveBlock1Ptr -_08059500: - ldr r0, _08059510 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, [r5, 0x4] - ldrh r0, [r1] - subs r0, r2 - strh r0, [r1] - negs r0, r7 - b _08059524 - .align 2, 0 -_08059510: .4byte gSaveBlock1Ptr -_08059514: - ldr r0, _0805952C @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, [r5, 0x4] - ldrh r0, [r1] - subs r0, r2 - strh r0, [r1] - ldr r0, [r3] - ldr r0, [r0, 0x4] -_08059524: - strh r0, [r1, 0x2] -_08059526: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805952C: .4byte gSaveBlock1Ptr - thumb_func_end sub_80594AC - - thumb_func_start CameraMove -CameraMove: @ 8059530 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - mov r9, r1 - ldr r1, _08059570 @ =gUnknown_2036E18 - ldrb r0, [r1] - movs r1, 0x2 - negs r1, r1 - ands r1, r0 - ldr r2, _08059570 @ =gUnknown_2036E18 - strb r1, [r2] - mov r0, r10 - mov r1, r9 - bl GetPostCameraMoveMapBorderId - adds r7, r0, 0 - adds r0, r7, 0x1 - cmp r0, 0x1 - bhi _08059578 - ldr r0, _08059574 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldrh r0, [r1] - add r0, r10 - strh r0, [r1] - ldrh r0, [r1, 0x2] - add r0, r9 - strh r0, [r1, 0x2] - b _080595E2 - .align 2, 0 -_08059570: .4byte gUnknown_2036E18 -_08059574: .4byte gSaveBlock1Ptr -_08059578: - bl sub_80590D8 - ldr r1, _080595F8 @ =gSaveBlock1Ptr - ldr r0, [r1] - movs r2, 0 - ldrsh r5, [r0, r2] - movs r1, 0x2 - ldrsh r6, [r0, r1] - lsls r2, r7, 24 - lsrs r2, 24 - mov r8, r2 - mov r0, r8 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8059600 - adds r4, r0, 0 - adds r1, r7, 0 - mov r2, r10 - mov r3, r9 - bl sub_80594AC - ldrb r0, [r4, 0x8] - ldrb r1, [r4, 0x9] - bl sub_8055864 - ldr r1, _080595FC @ =gUnknown_2036E18 - ldrb r0, [r1] - movs r1, 0x1 - orrs r0, r1 - ldr r2, _080595FC @ =gUnknown_2036E18 - strb r0, [r2] - ldr r0, _080595F8 @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r2, 0 - ldrsh r0, [r1, r2] - subs r5, r0 - ldr r0, _080595FC @ =gUnknown_2036E18 - str r5, [r0, 0x4] - movs r2, 0x2 - ldrsh r0, [r1, r2] - subs r6, r0 - ldr r0, _080595FC @ =gUnknown_2036E18 - str r6, [r0, 0x8] - ldrh r0, [r1] - add r0, r10 - strh r0, [r1] - ldrh r0, [r1, 0x2] - add r0, r9 - strh r0, [r1, 0x2] - mov r0, r8 - bl sub_8059250 -_080595E2: - ldr r0, _080595FC @ =gUnknown_2036E18 - ldrb r0, [r0] - lsls r0, 31 - lsrs r0, 31 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080595F8: .4byte gSaveBlock1Ptr -_080595FC: .4byte gUnknown_2036E18 - thumb_func_end CameraMove - - thumb_func_start sub_8059600 -sub_8059600: @ 8059600 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r1 - mov r8, r2 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0805963C @ =gMapHeader - ldr r0, [r0, 0xC] - ldr r7, [r0] - ldr r4, [r0, 0x4] - movs r5, 0 - cmp r5, r7 - bge _08059648 -_0805961E: - ldrb r0, [r4] - cmp r0, r6 - bne _08059640 - adds r0, r6, 0 - mov r1, r9 - mov r2, r8 - adds r3, r4, 0 - bl sub_8059658 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08059640 - adds r0, r4, 0 - b _0805964A - .align 2, 0 -_0805963C: .4byte gMapHeader -_08059640: - adds r5, 0x1 - adds r4, 0xC - cmp r5, r7 - blt _0805961E -_08059648: - movs r0, 0 -_0805964A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8059600 - - thumb_func_start sub_8059658 -sub_8059658: @ 8059658 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - mov r8, r2 - adds r5, r3, 0 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - adds r0, r5, 0 - bl mapconnection_get_mapheader - adds r2, r0, 0 - cmp r4, 0x1 - blt _080596B0 - cmp r4, 0x2 - bgt _08059690 - ldr r0, _0805968C @ =gMapHeader - ldr r0, [r0] - ldr r1, [r0] - ldr r0, [r2] - ldr r2, [r0] - ldr r3, [r5, 0x4] - adds r0, r7, 0 - b _080596A2 - .align 2, 0 -_0805968C: .4byte gMapHeader -_08059690: - cmp r6, 0x4 - bgt _080596B0 - ldr r0, _080596AC @ =gMapHeader - ldr r0, [r0] - ldr r1, [r0, 0x4] - ldr r0, [r2] - ldr r2, [r0, 0x4] - ldr r3, [r5, 0x4] - mov r0, r8 -_080596A2: - bl sub_80596BC - lsls r0, 24 - lsrs r0, 24 - b _080596B2 - .align 2, 0 -_080596AC: .4byte gMapHeader -_080596B0: - movs r0, 0 -_080596B2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8059658 - - thumb_func_start sub_80596BC -sub_80596BC: @ 80596BC - push {r4,lr} - adds r4, r0, 0 - adds r0, r2, 0 - adds r2, r3, 0 - cmp r3, 0 - bge _080596CA - movs r3, 0 -_080596CA: - adds r2, r0, r2 - cmp r2, r1 - bge _080596D2 - adds r1, r2, 0 -_080596D2: - cmp r3, r4 - bgt _080596DE - cmp r4, r1 - bgt _080596DE - movs r0, 0x1 - b _080596E0 -_080596DE: - movs r0, 0 -_080596E0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80596BC - - thumb_func_start sub_80596E8 -sub_80596E8: @ 80596E8 - push {lr} - cmp r0, 0 - blt _080596F6 - cmp r0, r1 - bge _080596F6 - movs r0, 0x1 - b _080596F8 -_080596F6: - movs r0, 0 -_080596F8: - pop {r1} - bx r1 - thumb_func_end sub_80596E8 - - thumb_func_start sub_80596FC -sub_80596FC: @ 80596FC - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl mapconnection_get_mapheader - adds r1, r0, 0 - ldrb r0, [r4] - cmp r0, 0x1 - blt _08059734 - cmp r0, 0x2 - bgt _08059722 - ldr r0, [r4, 0x4] - subs r0, r5, r0 - ldr r1, [r1] - ldr r1, [r1] - bl sub_80596E8 - b _08059736 -_08059722: - cmp r0, 0x4 - bgt _08059734 - ldr r0, [r4, 0x4] - subs r0, r6, r0 - ldr r1, [r1] - ldr r1, [r1, 0x4] - bl sub_80596E8 - b _08059736 -_08059734: - movs r0, 0 -_08059736: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80596FC - - thumb_func_start sub_805973C -sub_805973C: @ 805973C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _0805975C @ =gMapHeader - ldr r0, [r2, 0xC] - cmp r0, 0 - bne _08059764 - b _080597DA - .align 2, 0 -_0805975C: .4byte gMapHeader -_08059760: - adds r0, r4, 0 - b _080597DC -_08059764: - ldr r7, [r0] - ldr r4, [r0, 0x4] - movs r6, 0 - cmp r6, r7 - bge _080597DA - lsls r0, r1, 16 - asrs r5, r0, 16 - mov r9, r2 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - mov r10, r0 -_0805977C: - ldrb r1, [r4] - adds r3, r1, 0 - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080597D2 - cmp r1, 0x2 - bne _08059792 - cmp r5, 0x6 - bgt _080597D2 -_08059792: - cmp r1, 0x1 - bne _080597A2 - mov r2, r9 - ldr r0, [r2] - ldr r0, [r0, 0x4] - adds r0, 0x7 - cmp r5, r0 - blt _080597D2 -_080597A2: - mov r0, r8 - lsls r2, r0, 16 - cmp r1, 0x3 - bne _080597B0 - mov r1, r10 - cmp r1, 0x6 - bgt _080597D2 -_080597B0: - cmp r3, 0x4 - bne _080597C2 - asrs r1, r2, 16 - mov r3, r9 - ldr r0, [r3] - ldr r0, [r0] - adds r0, 0x7 - cmp r1, r0 - blt _080597D2 -_080597C2: - asrs r1, r2, 16 - subs r1, 0x7 - adds r0, r4, 0 - subs r2, r5, 0x7 - bl sub_80596FC - cmp r0, 0x1 - beq _08059760 -_080597D2: - adds r6, 0x1 - adds r4, 0xC - cmp r6, r7 - blt _0805977C -_080597DA: - movs r0, 0 -_080597DC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_805973C - - thumb_func_start sub_80597EC -sub_80597EC: @ 80597EC - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _08059804 @ =gSaveBlock1Ptr - ldr r2, [r2] - subs r0, 0x7 - strh r0, [r2] - subs r1, 0x7 - strh r1, [r2, 0x2] - bx lr - .align 2, 0 -_08059804: .4byte gSaveBlock1Ptr - thumb_func_end sub_80597EC - - thumb_func_start sav1_camera_get_focus_coords -sav1_camera_get_focus_coords: @ 8059808 - ldr r2, _0805981C @ =gSaveBlock1Ptr - ldr r3, [r2] - ldrh r2, [r3] - adds r2, 0x7 - strh r2, [r0] - ldrh r0, [r3, 0x2] - adds r0, 0x7 - strh r0, [r1] - bx lr - .align 2, 0 -_0805981C: .4byte gSaveBlock1Ptr - thumb_func_end sav1_camera_get_focus_coords - - thumb_func_start SetCameraCoords -SetCameraCoords: @ 8059820 - ldr r2, _0805982C @ =gSaveBlock1Ptr - ldr r2, [r2] - strh r0, [r2] - strh r1, [r2, 0x2] - bx lr - .align 2, 0 -_0805982C: .4byte gSaveBlock1Ptr - thumb_func_end SetCameraCoords - - thumb_func_start GetCameraCoords -GetCameraCoords: @ 8059830 - ldr r2, _08059840 @ =gSaveBlock1Ptr - ldr r3, [r2] - ldrh r2, [r3] - strh r2, [r0] - ldrh r0, [r3, 0x2] - strh r0, [r1] - bx lr - .align 2, 0 -_08059840: .4byte gSaveBlock1Ptr - thumb_func_end GetCameraCoords - - thumb_func_start copy_tileset_patterns_to_vram -copy_tileset_patterns_to_vram: @ 8059844 - push {r4-r7,lr} - sub sp, 0x4 - adds r3, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r6, r4, 0 - lsls r2, 16 - lsrs r5, r2, 16 - adds r7, r5, 0 - cmp r3, 0 - beq _08059880 - ldrb r0, [r3] - cmp r0, 0 - bne _08059870 - ldr r1, [r3, 0x4] - lsls r2, r4, 21 - lsrs r2, 16 - movs r0, 0x2 - adds r3, r5, 0 - bl LoadBgTiles - b _08059880 -_08059870: - ldr r1, [r3, 0x4] - lsls r2, r6, 5 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - adds r3, r7, 0 - bl sub_80F68F0 -_08059880: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end copy_tileset_patterns_to_vram - - thumb_func_start copy_tileset_patterns_to_vram2 -copy_tileset_patterns_to_vram2: @ 8059888 - push {r4-r7,lr} - sub sp, 0x4 - adds r3, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r6, r4, 0 - lsls r2, 16 - lsrs r5, r2, 16 - adds r7, r5, 0 - cmp r3, 0 - beq _080598C4 - ldrb r0, [r3] - cmp r0, 0 - bne _080598B4 - ldr r1, [r3, 0x4] - lsls r2, r4, 21 - lsrs r2, 16 - movs r0, 0x2 - adds r3, r5, 0 - bl LoadBgTiles - b _080598C4 -_080598B4: - ldr r1, [r3, 0x4] - lsls r2, r6, 5 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - adds r3, r7, 0 - bl sub_80F69E8 -_080598C4: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end copy_tileset_patterns_to_vram2 - - thumb_func_start sub_80598CC -sub_80598CC: @ 80598CC - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r0, _080598EC @ =gUnknown_2036E28 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080598F0 - cmp r0, 0x1 - ble _0805993A - cmp r0, 0x2 - beq _08059904 - cmp r0, 0x3 - beq _08059918 - b _0805993A - .align 2, 0 -_080598EC: .4byte gUnknown_2036E28 -_080598F0: - lsls r4, 1 - ldr r0, _08059900 @ =gPlttBufferUnfaded - adds r0, r4, r0 - adds r1, r5, 0 - bl TintPalette_GrayScale - b _0805992C - .align 2, 0 -_08059900: .4byte gPlttBufferUnfaded -_08059904: - lsls r4, 1 - ldr r0, _08059914 @ =gPlttBufferUnfaded - adds r0, r4, r0 - adds r1, r5, 0 - bl TintPalette_SepiaTone - b _0805992C - .align 2, 0 -_08059914: .4byte gPlttBufferUnfaded -_08059918: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8111F38 - lsls r4, 1 - ldr r0, _08059940 @ =gPlttBufferUnfaded - adds r0, r4, r0 - adds r1, r5, 0 - bl TintPalette_GrayScale -_0805992C: - ldr r0, _08059940 @ =gPlttBufferUnfaded - adds r0, r4, r0 - ldr r1, _08059944 @ =gPlttBufferFaded - adds r1, r4, r1 - adds r2, r5, 0 - bl CpuSet -_0805993A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08059940: .4byte gPlttBufferUnfaded -_08059944: .4byte gPlttBufferFaded - thumb_func_end sub_80598CC - - thumb_func_start sub_8059948 -sub_8059948: @ 8059948 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, _08059968 @ =gUnknown_2036E28 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0805996C - cmp r0, 0x1 - ble _080599B8 - cmp r0, 0x2 - beq _08059980 - cmp r0, 0x3 - beq _08059994 - b _080599B8 - .align 2, 0 -_08059968: .4byte gUnknown_2036E28 -_0805996C: - lsls r4, 5 - ldr r0, _0805997C @ =gPlttBufferUnfaded - adds r0, r4, r0 - lsls r1, r6, 4 - bl TintPalette_GrayScale - b _080599AA - .align 2, 0 -_0805997C: .4byte gPlttBufferUnfaded -_08059980: - lsls r4, 5 - ldr r0, _08059990 @ =gPlttBufferUnfaded - adds r0, r4, r0 - lsls r1, r6, 4 - bl TintPalette_SepiaTone - b _080599AA - .align 2, 0 -_08059990: .4byte gPlttBufferUnfaded -_08059994: - lsls r0, r4, 4 - lsls r5, r6, 4 - adds r1, r5, 0 - bl sub_8111F38 - lsls r4, 5 - ldr r0, _080599C0 @ =gPlttBufferUnfaded - adds r0, r4, r0 - adds r1, r5, 0 - bl TintPalette_GrayScale -_080599AA: - ldr r0, _080599C0 @ =gPlttBufferUnfaded - adds r0, r4, r0 - ldr r1, _080599C4 @ =gPlttBufferFaded - adds r1, r4, r1 - lsls r2, r6, 3 - bl CpuFastSet -_080599B8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080599C0: .4byte gPlttBufferUnfaded -_080599C4: .4byte gPlttBufferFaded - thumb_func_end sub_8059948 - - thumb_func_start apply_map_tileset_palette -apply_map_tileset_palette: @ 80599C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - mov r8, r5 - lsls r6, r2, 16 - lsrs r7, r6, 16 - adds r2, r7, 0 - movs r1, 0 - mov r0, sp - strh r1, [r0] - cmp r4, 0 - beq _08059A46 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08059A1C - mov r0, sp - adds r1, r5, 0 - movs r2, 0x2 - bl LoadPalette - ldr r0, [r4, 0x8] - adds r0, 0x2 - adds r5, 0x1 - lsls r5, 16 - lsrs r5, 16 - subs r4, r7, 0x2 - lsls r2, r4, 16 - lsrs r2, 16 - adds r1, r5, 0 - bl LoadPalette - lsls r4, 15 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80598CC - b _08059A46 -_08059A1C: - cmp r0, 0x1 - bne _08059A36 - ldr r0, [r4, 0x8] - adds r0, 0xE0 - adds r1, r5, 0 - adds r2, r7, 0 - bl LoadPalette - lsrs r1, r6, 17 - adds r0, r5, 0 - bl sub_80598CC - b _08059A46 -_08059A36: - ldr r0, [r4, 0x8] - mov r1, r8 - bl LoadCompressedPalette - lsrs r1, r6, 17 - mov r0, r8 - bl sub_80598CC -_08059A46: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end apply_map_tileset_palette - - thumb_func_start sub_8059A54 -sub_8059A54: @ 8059A54 - push {lr} - ldr r0, [r0, 0x10] - movs r1, 0xA0 - lsls r1, 2 - movs r2, 0 - bl copy_tileset_patterns_to_vram - pop {r0} - bx r0 - thumb_func_end sub_8059A54 - - thumb_func_start sub_8059A68 -sub_8059A68: @ 8059A68 - push {lr} - ldr r0, [r0, 0x14] - movs r1, 0xC0 - lsls r1, 1 - movs r2, 0xA0 - lsls r2, 2 - bl copy_tileset_patterns_to_vram - pop {r0} - bx r0 - thumb_func_end sub_8059A68 - - thumb_func_start copy_map_tileset2_to_vram_2 -copy_map_tileset2_to_vram_2: @ 8059A7C - push {lr} - ldr r0, [r0, 0x14] - movs r1, 0xC0 - lsls r1, 1 - movs r2, 0xA0 - lsls r2, 2 - bl copy_tileset_patterns_to_vram2 - pop {r0} - bx r0 - thumb_func_end copy_map_tileset2_to_vram_2 - - thumb_func_start sub_8059A90 -sub_8059A90: @ 8059A90 - push {lr} - ldr r0, [r0, 0x10] - movs r1, 0 - movs r2, 0xE0 - bl apply_map_tileset_palette - pop {r0} - bx r0 - thumb_func_end sub_8059A90 - - thumb_func_start sub_8059AA0 -sub_8059AA0: @ 8059AA0 - push {lr} - ldr r0, [r0, 0x14] - movs r1, 0x70 - movs r2, 0xC0 - bl apply_map_tileset_palette - pop {r0} - bx r0 - thumb_func_end sub_8059AA0 - - thumb_func_start copy_map_tileset1_tileset2_to_vram -copy_map_tileset1_tileset2_to_vram: @ 8059AB0 - push {r4,r5,lr} - adds r5, r0, 0 - cmp r5, 0 - beq _08059AD2 - ldr r0, [r5, 0x10] - movs r4, 0xA0 - lsls r4, 2 - adds r1, r4, 0 - movs r2, 0 - bl copy_tileset_patterns_to_vram2 - ldr r0, [r5, 0x14] - movs r1, 0xC0 - lsls r1, 1 - adds r2, r4, 0 - bl copy_tileset_patterns_to_vram2 -_08059AD2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end copy_map_tileset1_tileset2_to_vram - - thumb_func_start apply_map_tileset1_tileset2_palette -apply_map_tileset1_tileset2_palette: @ 8059AD8 - push {r4,lr} - adds r4, r0, 0 - cmp r4, 0 - beq _08059AEA - bl sub_8059A90 - adds r0, r4, 0 - bl sub_8059AA0 -_08059AEA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end apply_map_tileset1_tileset2_palette - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fighting.s b/asm/fighting.s new file mode 100644 index 000000000..518927a3c --- /dev/null +++ b/asm/fighting.s @@ -0,0 +1,1746 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start unc_080B08A0 +unc_080B08A0: @ 80B08A0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B08D0 @ =gBattleAnimArgs + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_8074FF8 + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0xF + strh r0, [r4, 0x2E] + ldr r0, _080B08D4 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080B08D8 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B08D0: .4byte gBattleAnimArgs +_080B08D4: .4byte sub_8074C44 +_080B08D8: .4byte DestroyAnimSprite + thumb_func_end unc_080B08A0 + + thumb_func_start sub_80B08DC +sub_80B08DC: @ 80B08DC + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B0920 @ =gBattleAnimArgs + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080B0904 + ldr r0, _080B0924 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B0904 + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] + ldrh r0, [r4, 0x6] + negs r0, r0 + strh r0, [r4, 0x6] +_080B0904: + ldr r4, _080B0920 @ =gBattleAnimArgs + ldrb r1, [r4, 0xC] + adds r0, r5, 0 + bl StartSpriteAnim + movs r0, 0 + strh r0, [r4, 0xC] + adds r0, r5, 0 + bl sub_8075F0C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0920: .4byte gBattleAnimArgs +_080B0924: .4byte gBattleAnimAttacker + thumb_func_end sub_80B08DC + + thumb_func_start sub_80B0928 +sub_80B0928: @ 80B0928 + push {r4,lr} + adds r4, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B0944 + ldr r0, _080B0950 @ =gBattleAnimArgs + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0x6] + negs r1, r1 + strh r1, [r0, 0x6] +_080B0944: + adds r0, r4, 0 + bl sub_80B08DC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0950: .4byte gBattleAnimArgs + thumb_func_end sub_80B0928 + + thumb_func_start sub_80B0954 +sub_80B0954: @ 80B0954 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B0974 @ =gBattleAnimArgs + ldrb r1, [r4, 0x8] + bl StartSpriteAnim + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B0978 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + b _080B0980 + .align 2, 0 +_080B0974: .4byte gBattleAnimArgs +_080B0978: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075114 +_080B0980: + ldr r0, _080B0998 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080B099C @ =sub_8074C44 + str r0, [r5, 0x1C] + ldr r1, _080B09A0 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0998: .4byte gBattleAnimArgs +_080B099C: .4byte sub_8074C44 +_080B09A0: .4byte DestroyAnimSprite + thumb_func_end sub_80B0954 + + thumb_func_start sub_80B09A4 +sub_80B09A4: @ 80B09A4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + ldr r0, _080B09C0 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + mov r9, r0 + cmp r1, 0 + bne _080B09C8 + ldr r0, _080B09C4 @ =gBattleAnimAttacker + b _080B09CA + .align 2, 0 +_080B09C0: .4byte gBattleAnimArgs +_080B09C4: .4byte gBattleAnimAttacker +_080B09C8: + ldr r0, _080B0B10 @ =gBattleAnimTarget +_080B09CA: + ldrb r0, [r0] + mov r8, r0 + mov r4, r9 + movs r3, 0x4 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _080B09E8 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + strh r0, [r4, 0x4] +_080B09E8: + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAnim + mov r0, r8 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + mov r0, r8 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + mov r0, r8 + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + lsls r1, 15 + lsrs r6, r1, 16 + mov r0, r8 + movs r1, 0 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080B0A32 + adds r0, 0x3 +_080B0A32: + lsls r4, r0, 14 + lsrs r4, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + lsls r1, r6, 16 + asrs r1, 16 + bl __modsi3 + lsls r0, 16 + lsrs r6, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + asrs r4, 16 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r4, r0, 16 + bl Random + movs r7, 0x1 + adds r1, r7, 0 + ands r1, r0 + cmp r1, 0 + beq _080B0A74 + lsls r0, r6, 16 + negs r0, r0 + lsrs r6, r0, 16 +_080B0A74: + bl Random + adds r1, r7, 0 + ands r1, r0 + cmp r1, 0 + beq _080B0A86 + lsls r0, r4, 16 + negs r0, r0 + lsrs r4, r0, 16 +_080B0A86: + ldr r0, _080B0B14 @ =gUnknown_2023BD6 + add r0, r8 + ldrb r1, [r0] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + bne _080B0A9C + lsls r0, r4, 16 + ldr r1, _080B0B18 @ =0xfff00000 + adds r0, r1 + lsrs r4, r0, 16 +_080B0A9C: + lsls r0, r6, 16 + asrs r0, 16 + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r3, [r5, 0x22] + adds r0, r3 + strh r0, [r5, 0x22] + mov r1, r9 + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x2E] + ldr r0, _080B0B1C @ =gUnknown_83E7C08 + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r3, 0x22 + ldrsh r2, [r5, r3] + adds r3, r5, 0 + adds r3, 0x43 + ldrb r3, [r3] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3C] + cmp r0, 0x40 + beq _080B0B00 + movs r0, 0x3C + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080B0B20 @ =gSprites + adds r0, r4 + movs r1, 0 + bl StartSpriteAffineAnim + movs r2, 0x3C + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080B0B24 @ =SpriteCallbackDummy + str r1, [r0] +_080B0B00: + ldr r0, _080B0B28 @ =sub_80B0B2C + str r0, [r5, 0x1C] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0B10: .4byte gBattleAnimTarget +_080B0B14: .4byte gUnknown_2023BD6 +_080B0B18: .4byte 0xfff00000 +_080B0B1C: .4byte gUnknown_83E7C08 +_080B0B20: .4byte gSprites +_080B0B24: .4byte SpriteCallbackDummy +_080B0B28: .4byte sub_80B0B2C + thumb_func_end sub_80B09A4 + + thumb_func_start sub_80B0B2C +sub_80B0B2C: @ 80B0B2C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080B0B74 + movs r1, 0x3C + ldrsh r0, [r5, r1] + cmp r0, 0x40 + beq _080B0B68 + ldr r4, _080B0B70 @ =gSprites + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + movs r0, 0x3C + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite +_080B0B68: + adds r0, r5, 0 + bl DestroyAnimSprite + b _080B0B78 + .align 2, 0 +_080B0B70: .4byte gSprites +_080B0B74: + subs r0, r1, 0x1 + strh r0, [r5, 0x2E] +_080B0B78: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B0B2C + + thumb_func_start sub_80B0B80 +sub_80B0B80: @ 80B0B80 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + movs r0, 0x1E + strh r0, [r4, 0x2E] + ldr r0, _080B0BA0 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B0BA4 + ldrh r0, [r4, 0x20] + subs r0, 0x14 + strh r0, [r4, 0x32] + b _080B0BB6 + .align 2, 0 +_080B0BA0: .4byte gBattleAnimArgs +_080B0BA4: + ldrh r0, [r4, 0x20] + adds r0, 0x14 + strh r0, [r4, 0x32] + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080B0BB6: + ldrh r0, [r4, 0x22] + subs r0, 0x14 + strh r0, [r4, 0x36] + ldr r0, _080B0BD0 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080B0BD4 @ =sub_80B0BD8 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0BD0: .4byte sub_8075590 +_080B0BD4: .4byte sub_80B0BD8 + thumb_func_end sub_80B0B80 + + thumb_func_start sub_80B0BD8 +sub_80B0BD8: @ 80B0BD8 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x38] + adds r0, 0x1 + movs r6, 0 + strh r0, [r5, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _080B0C18 + ldrh r2, [r5, 0x20] + ldrh r4, [r5, 0x24] + subs r0, r2, r4 + strh r0, [r5, 0x32] + ldrh r1, [r5, 0x22] + ldrh r3, [r5, 0x26] + subs r0, r1, r3 + strh r0, [r5, 0x36] + movs r0, 0x8 + strh r0, [r5, 0x2E] + adds r2, r4 + strh r2, [r5, 0x20] + adds r1, r3 + strh r1, [r5, 0x22] + strh r6, [r5, 0x26] + strh r6, [r5, 0x24] + ldr r0, _080B0C20 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080B0C24 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 +_080B0C18: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B0C20: .4byte sub_8075590 +_080B0C24: .4byte DestroyAnimSprite + thumb_func_end sub_80B0BD8 + + thumb_func_start sub_80B0C28 +sub_80B0C28: @ 80B0C28 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080B0CA4 @ =gBattleAnimAttacker + ldrb r1, [r0] + movs r0, 0x2 + ldr r2, _080B0CA8 @ =gBattleAnimTarget + eors r0, r1 + ldrb r1, [r2] + cmp r0, r1 + bne _080B0C54 + ldrb r0, [r2] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080B0C54 + ldr r1, _080B0CAC @ =gBattleAnimArgs + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] +_080B0C54: + adds r0, r6, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r0, _080B0CA4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B0C72 + ldr r1, _080B0CAC @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080B0C72: + ldr r4, _080B0CAC @ =gBattleAnimArgs + ldrh r0, [r4, 0x6] + movs r5, 0 + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x3A] + strh r5, [r6, 0x3C] + ldr r0, _080B0CB0 @ =sub_80B0CB4 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B0CA4: .4byte gBattleAnimAttacker +_080B0CA8: .4byte gBattleAnimTarget +_080B0CAC: .4byte gBattleAnimArgs +_080B0CB0: .4byte sub_80B0CB4 + thumb_func_end sub_80B0C28 + + thumb_func_start sub_80B0CB4 +sub_80B0CB4: @ 80B0CB4 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080B0CE0 + ldrh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + strh r0, [r4, 0x3C] + b _080B0CE6 +_080B0CE0: + adds r0, r4, 0 + bl DestroyAnimSprite +_080B0CE6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B0CB4 + + thumb_func_start sub_80B0CEC +sub_80B0CEC: @ 80B0CEC + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r5, _080B0D18 @ =gBattleAnimArgs + ldrb r1, [r5, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldr r0, _080B0D1C @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080B0D20 @ =sub_80B0D24 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0D18: .4byte gBattleAnimArgs +_080B0D1C: .4byte sub_8074C44 +_080B0D20: .4byte sub_80B0D24 + thumb_func_end sub_80B0CEC + + thumb_func_start sub_80B0D24 +sub_80B0D24: @ 80B0D24 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl StartSpriteAffineAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r0, _080B0D50 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080B0D54 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0D50: .4byte sub_8074C44 +_080B0D54: .4byte DestroyAnimSprite + thumb_func_end sub_80B0D24 + + thumb_func_start sub_80B0D58 +sub_80B0D58: @ 80B0D58 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r0, _080B0D74 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080B0D78 @ =sub_80B0D7C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0D74: .4byte gBattleAnimArgs +_080B0D78: .4byte sub_80B0D7C + thumb_func_end sub_80B0D58 + + thumb_func_start sub_80B0D7C +sub_80B0D7C: @ 80B0D7C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + subs r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B0DC0 + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080B0DC8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080B0DCC @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080B0DD0 @ =sub_80B0DD4 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 +_080B0DC0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0DC8: .4byte gBattleAnimTarget +_080B0DCC: .4byte sub_8075590 +_080B0DD0: .4byte sub_80B0DD4 + thumb_func_end sub_80B0D7C + + thumb_func_start sub_80B0DD4 +sub_80B0DD4: @ 80B0DD4 + push {lr} + movs r1, 0xF + strh r1, [r0, 0x2E] + ldr r1, _080B0DE8 @ =sub_8074C44 + str r1, [r0, 0x1C] + ldr r1, _080B0DEC @ =DestroyAnimSprite + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080B0DE8: .4byte sub_8074C44 +_080B0DEC: .4byte DestroyAnimSprite + thumb_func_end sub_80B0DD4 + + thumb_func_start sub_80B0DF0 +sub_80B0DF0: @ 80B0DF0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B0E1C + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r1, _080B0E18 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B0E78 + .align 2, 0 +_080B0E18: .4byte gBattleAnimArgs +_080B0E1C: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x64 + ble _080B0E6A + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080B0E6A: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x78 + ble _080B0E78 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B0E78: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B0DF0 + + thumb_func_start sub_80B0E80 +sub_80B0E80: @ 80B0E80 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B0E94 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B0E9C + ldr r4, _080B0E98 @ =gBattleAnimAttacker + b _080B0E9E + .align 2, 0 +_080B0E94: .4byte gBattleAnimArgs +_080B0E98: .4byte gBattleAnimAttacker +_080B0E9C: + ldr r4, _080B0EE4 @ =gBattleAnimTarget +_080B0E9E: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080B0EE8 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x20] + adds r0, r2 + movs r2, 0 + strh r0, [r5, 0x20] + ldrh r0, [r1, 0x4] + ldrh r3, [r5, 0x22] + adds r0, r3 + strh r0, [r5, 0x22] + strh r2, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x32] + strh r2, [r5, 0x34] + ldr r0, _080B0EEC @ =sub_80B0EF0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0EE4: .4byte gBattleAnimTarget +_080B0EE8: .4byte gBattleAnimArgs +_080B0EEC: .4byte sub_80B0EF0 + thumb_func_end sub_80B0E80 + + thumb_func_start sub_80B0EF0 +sub_80B0EF0: @ 80B0EF0 + push {lr} + adds r1, r0, 0 + movs r0, 0x2E + ldrsh r2, [r1, r0] + cmp r2, 0 + beq _080B0F02 + cmp r2, 0x1 + beq _080B0F26 + b _080B0F60 +_080B0F02: + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080B0F60 + movs r2, 0x32 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080B0F1E + adds r0, r1, 0 + bl DestroyAnimSprite + b _080B0F60 +_080B0F1E: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _080B0F60 +_080B0F26: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B0F4E + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r0, [r1, 0x34] + adds r0, 0x1 + strh r0, [r1, 0x34] + ands r0, r2 + lsls r0, 16 + cmp r0, 0 + beq _080B0F4A + movs r0, 0x2 + b _080B0F4C +_080B0F4A: + ldr r0, _080B0F64 @ =0x0000fffe +_080B0F4C: + strh r0, [r1, 0x24] +_080B0F4E: + ldrh r0, [r1, 0x32] + subs r0, 0x1 + strh r0, [r1, 0x32] + lsls r0, 16 + cmp r0, 0 + bne _080B0F60 + adds r0, r1, 0 + bl DestroyAnimSprite +_080B0F60: + pop {r0} + bx r0 + .align 2, 0 +_080B0F64: .4byte 0x0000fffe + thumb_func_end sub_80B0EF0 + + thumb_func_start sub_80B0F68 +sub_80B0F68: @ 80B0F68 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080B0F8C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080B0F94 + ldr r4, _080B0F90 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x4] + adds r0, r2 + b _080B0FA6 + .align 2, 0 +_080B0F8C: .4byte gBattleAnimArgs +_080B0F90: .4byte gBattleAnimAttacker +_080B0F94: + ldr r4, _080B0FF0 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 +_080B0FA6: + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + strh r0, [r5, 0x22] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldr r3, _080B0FF4 @ =gBattleAnimArgs + movs r4, 0x2 + ldrsh r0, [r3, r4] + lsls r0, 4 + adds r1, r0 + ldr r4, _080B0FF8 @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080B0FFC @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + movs r1, 0 + movs r0, 0 + strh r0, [r5, 0x2E] + movs r2, 0x2 + ldrsh r0, [r3, r2] + cmp r0, 0x1 + beq _080B1014 + cmp r0, 0x1 + bgt _080B1000 + cmp r0, 0 + beq _080B100A + b _080B103A + .align 2, 0 +_080B0FF0: .4byte gBattleAnimTarget +_080B0FF4: .4byte gBattleAnimArgs +_080B0FF8: .4byte 0x000003ff +_080B0FFC: .4byte 0xfffffc00 +_080B1000: + cmp r0, 0x2 + beq _080B1024 + cmp r0, 0x3 + beq _080B1034 + b _080B103A +_080B100A: + ldr r0, _080B1010 @ =0x0000fffd + b _080B1034 + .align 2, 0 +_080B1010: .4byte 0x0000fffd +_080B1014: + movs r0, 0x3 + strh r0, [r5, 0x3A] + ldr r0, _080B1020 @ =0x0000fffd + strh r0, [r5, 0x3C] + b _080B1042 + .align 2, 0 +_080B1020: .4byte 0x0000fffd +_080B1024: + ldr r0, _080B1030 @ =0x0000fffd + strh r0, [r5, 0x3A] + movs r0, 0x3 + strh r0, [r5, 0x3C] + b _080B1042 + .align 2, 0 +_080B1030: .4byte 0x0000fffd +_080B1034: + strh r0, [r5, 0x3A] + strh r0, [r5, 0x3C] + b _080B1042 +_080B103A: + adds r0, r5, 0 + bl DestroyAnimSprite + b _080B1046 +_080B1042: + ldr r0, _080B104C @ =sub_80B1050 + str r0, [r5, 0x1C] +_080B1046: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B104C: .4byte sub_80B1050 + thumb_func_end sub_80B0F68 + + thumb_func_start sub_80B1050 +sub_80B1050: @ 80B1050 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x3A] + ldrh r2, [r1, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x3C] + ldrh r2, [r1, 0x22] + adds r0, r2 + strh r0, [r1, 0x22] + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080B1078 + adds r0, r1, 0 + bl DestroyAnimSprite +_080B1078: + pop {r0} + bx r0 + thumb_func_end sub_80B1050 + + thumb_func_start sub_80B107C +sub_80B107C: @ 80B107C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B10C8 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B10D8 + ldr r4, _080B10CC @ =sBattler_AI + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080B10D0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + ldr r0, _080B10D4 @ =gBattleAnimTarget + b _080B10F4 + .align 2, 0 +_080B10C8: .4byte gBattleAnimArgs +_080B10CC: .4byte sBattler_AI +_080B10D0: .4byte gBattleAnimAttacker +_080B10D4: .4byte gBattleAnimTarget +_080B10D8: + ldr r0, _080B1110 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + ldr r0, _080B1114 @ =gBattleAnimAttacker +_080B10F4: + ldrb r0, [r0] + strh r0, [r5, 0x3C] + movs r0, 0 + strh r0, [r5, 0x2E] + movs r0, 0xC + strh r0, [r5, 0x30] + movs r0, 0x8 + strh r0, [r5, 0x32] + ldr r0, _080B1118 @ =sub_80B111C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1110: .4byte gBattleAnimTarget +_080B1114: .4byte gBattleAnimAttacker +_080B1118: .4byte sub_80B111C + thumb_func_end sub_80B107C + + thumb_func_start sub_80B111C +sub_80B111C: @ 80B111C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB4 + bne _080B1178 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x10 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080B1180 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B1184 @ =sub_807563C + str r0, [r4, 0x1C] +_080B1178: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1180: .4byte move_anim_8074EE0 +_080B1184: .4byte sub_807563C + thumb_func_end sub_80B111C + + thumb_func_start sub_80B1188 +sub_80B1188: @ 80B1188 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B11D4 @ =gBattleAnimArgs + ldrh r0, [r4] + strh r0, [r5, 0x20] + movs r2, 0x78 + strh r2, [r5, 0x22] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x2E] + adds r0, r5, 0 + adds r0, 0x36 + adds r1, r5, 0 + adds r1, 0x38 + lsls r2, 8 + bl sub_80765C0 + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x3A] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x4 + ldrsh r0, [r4, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080B11D8 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B11DC @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r0, _080B11E0 @ =sub_80B11E4 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B11D4: .4byte gBattleAnimArgs +_080B11D8: .4byte 0x000003ff +_080B11DC: .4byte 0xfffffc00 +_080B11E0: .4byte sub_80B11E4 + thumb_func_end sub_80B1188 + + thumb_func_start sub_80B11E4 +sub_80B11E4: @ 80B11E4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r1, 0x2E + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _080B1236 + movs r2, 0x36 + ldrsh r0, [r7, r2] + movs r2, 0x38 + ldrsh r1, [r7, r2] + bl sub_80765C8 + adds r4, r0, 0 + movs r1, 0x3A + ldrsh r0, [r7, r1] + subs r4, r0 + adds r0, r7, 0 + adds r0, 0x36 + adds r1, r7, 0 + adds r1, 0x38 + adds r2, r4, 0 + bl sub_80765C0 + asrs r4, 8 + strh r4, [r7, 0x22] + lsls r4, 16 + asrs r4, 16 + movs r0, 0x8 + negs r0, r0 + cmp r4, r0 + bge _080B122E + adds r0, r7, 0 + bl DestroyAnimSprite + b _080B128C +_080B122E: + ldrh r0, [r7, 0x2E] + subs r0, 0x1 + strh r0, [r7, 0x2E] + b _080B128C +_080B1236: + ldr r4, _080B1298 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r2, _080B129C @ =gBattleAnimTarget + mov r8, r2 + ldrb r0, [r2] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + subs r4, r6 + strh r4, [r7, 0x2E] + lsrs r0, 24 + subs r0, r5 + strh r0, [r7, 0x30] + ldrh r0, [r7, 0x20] + lsls r0, 4 + strh r0, [r7, 0x32] + ldrh r0, [r7, 0x22] + lsls r0, 4 + strh r0, [r7, 0x34] + ldr r0, _080B12A0 @ =sub_80B12A4 + str r0, [r7, 0x1C] +_080B128C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1298: .4byte gBattleAnimAttacker +_080B129C: .4byte gBattleAnimTarget +_080B12A0: .4byte sub_80B12A4 + thumb_func_end sub_80B11E4 + + thumb_func_start sub_80B12A4 +sub_80B12A4: @ 80B12A4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r2, 0x30] + ldrh r3, [r2, 0x34] + adds r1, r3 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r3, r1, 20 + strh r3, [r2, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080B12DE + adds r1, r3, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080B12DE + cmp r1, 0x78 + ble _080B12E4 +_080B12DE: + adds r0, r2, 0 + bl DestroyAnimSprite +_080B12E4: + pop {r0} + bx r0 + thumb_func_end sub_80B12A4 + + thumb_func_start sub_80B12E8 +sub_80B12E8: @ 80B12E8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B131C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B132C + ldr r4, _080B1320 @ =sBattler_AI + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080B1324 @ =gBattleAnimTarget + ldrb r4, [r0] + ldr r0, _080B1328 @ =gBattleAnimAttacker + b _080B1332 + .align 2, 0 +_080B131C: .4byte gBattleAnimArgs +_080B1320: .4byte sBattler_AI +_080B1324: .4byte gBattleAnimTarget +_080B1328: .4byte gBattleAnimAttacker +_080B132C: + ldr r0, _080B1364 @ =gBattleAnimAttacker + ldrb r4, [r0] + ldr r0, _080B1368 @ =gBattleAnimTarget +_080B1332: + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B136C + ldrb r2, [r5, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x8 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x47 + b _080B1386 + .align 2, 0 +_080B1364: .4byte gBattleAnimAttacker +_080B1368: .4byte gBattleAnimTarget +_080B136C: + adds r0, r4, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B138C + ldrb r2, [r5, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x18 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x57 +_080B1386: + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x3] +_080B138C: + movs r0, 0x10 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + adds r0, r4, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080B13CC @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B13D0 @ =sub_807563C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B13CC: .4byte DestroyAnimSprite +_080B13D0: .4byte sub_807563C + thumb_func_end sub_80B12E8 + + thumb_func_start sub_80B13D4 +sub_80B13D4: @ 80B13D4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080B13EA + adds r0, r4, 0 + bl DestroyAnimSprite +_080B13EA: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B13D4 + + thumb_func_start sub_80B13F8 +sub_80B13F8: @ 80B13F8 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080B1474 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080B1478 @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1] + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x34] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x36] + ldr r0, _080B147C @ =gAnimMoveTurn + ldrb r6, [r0] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B1442 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080B1442: + movs r0, 0x1 + ands r6, r0 + cmp r6, 0 + beq _080B1456 + ldrh r0, [r5, 0x32] + negs r0, r0 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] +_080B1456: + ldrh r1, [r5, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x32] + strh r0, [r5, 0x24] + ldrh r0, [r5, 0x34] + strh r0, [r5, 0x26] + ldr r0, _080B1480 @ =sub_80B13D4 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1474: .4byte gBattleAnimTarget +_080B1478: .4byte gBattleAnimArgs +_080B147C: .4byte gAnimMoveTurn +_080B1480: .4byte sub_80B13D4 + thumb_func_end sub_80B13F8 + + thumb_func_start sub_80B1484 +sub_80B1484: @ 80B1484 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B149C @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B14A0 + adds r0, r4, 0 + movs r1, 0 + bl sub_8075160 + b _080B14A8 + .align 2, 0 +_080B149C: .4byte gBattleAnimArgs +_080B14A0: + adds r0, r4, 0 + movs r1, 0 + bl sub_8075114 +_080B14A8: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B14BC + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + b _080B14D2 +_080B14BC: + ldr r0, _080B14E4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B14D2 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080B14D2: + ldr r0, _080B14E8 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldr r1, _080B14EC @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B14E4: .4byte gBattleAnimAttacker +_080B14E8: .4byte sub_8074F6C +_080B14EC: .4byte DestroyAnimSprite + thumb_func_end sub_80B1484 + + thumb_func_start sub_80B14F0 +sub_80B14F0: @ 80B14F0 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B152A + ldrh r0, [r4, 0x30] + adds r0, 0x28 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x2 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080B152A + adds r0, r4, 0 + bl DestroyAnimSprite +_080B152A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B14F0 + + thumb_func_start sub_80B1530 +sub_80B1530: @ 80B1530 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080B1560 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B1568 + cmp r0, 0x1 + bgt _080B1582 + cmp r0, 0 + bne _080B1582 + movs r0, 0 + bl sub_8075458 + ldr r0, _080B1564 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r4, 0x18] + b _080B157A + .align 2, 0 +_080B1560: .4byte gTasks +_080B1564: .4byte gBattleAnimArgs +_080B1568: + ldrh r0, [r4, 0x18] + subs r0, 0x1 + strh r0, [r4, 0x18] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B158E +_080B157A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B158E +_080B1582: + movs r2, 0xA0 + lsls r2, 3 + adds r0, r2, 0 + ldrh r1, [r4, 0x1A] + adds r0, r1 + strh r0, [r4, 0x1A] +_080B158E: + movs r2, 0xB0 + lsls r2, 4 + adds r0, r2, 0 + ldrh r1, [r4, 0x1C] + adds r0, r1 + strh r0, [r4, 0x1C] + ldr r0, _080B15BC @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B15C4 + ldr r1, _080B15C0 @ =gBattle_BG3_X + ldrh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 24 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + adds r7, r1, 0 + b _080B15D4 + .align 2, 0 +_080B15BC: .4byte gBattleAnimTarget +_080B15C0: .4byte gBattle_BG3_X +_080B15C4: + ldr r2, _080B1614 @ =gBattle_BG3_X + ldrh r1, [r4, 0x1A] + lsls r1, 16 + asrs r1, 24 + ldrh r0, [r2] + subs r0, r1 + strh r0, [r2] + adds r7, r2, 0 +_080B15D4: + ldr r3, _080B1618 @ =gBattle_BG3_Y + ldrh r2, [r4, 0x1C] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r1, [r3] + adds r0, r1 + strh r0, [r3] + movs r0, 0xFF + ldrb r1, [r4, 0x1A] + movs r5, 0 + strh r1, [r4, 0x1A] + ands r0, r2 + strh r0, [r4, 0x1C] + ldr r0, _080B161C @ =gBattleAnimArgs + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080B160C + strh r5, [r7] + strh r5, [r3] + movs r0, 0x1 + bl sub_8075458 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080B160C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1614: .4byte gBattle_BG3_X +_080B1618: .4byte gBattle_BG3_Y +_080B161C: .4byte gBattleAnimArgs + thumb_func_end sub_80B1530 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fire.s b/asm/fire.s new file mode 100644 index 000000000..f4b89300a --- /dev/null +++ b/asm/fire.s @@ -0,0 +1,2500 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80AC90C +sub_80AC90C: @ 80AC90C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AC940 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r4, 0x2E] + movs r0, 0x3C + strh r0, [r4, 0x30] + movs r0, 0x9 + strh r0, [r4, 0x32] + movs r0, 0x1E + strh r0, [r4, 0x34] + movs r0, 0xFE + lsls r0, 8 + strh r0, [r4, 0x36] + ldr r1, _080AC944 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080AC948 @ =sub_8074AE0 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC940: .4byte gBattleAnimArgs +_080AC944: .4byte DestroyAnimSprite +_080AC948: .4byte sub_8074AE0 + thumb_func_end sub_80AC90C + + thumb_func_start sub_80AC94C +sub_80AC94C: @ 80AC94C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080AC984 @ =gBattleAnimArgs + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_8074FF8 + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x32] + ldr r0, _080AC988 @ =sub_8074D00 + str r0, [r4, 0x1C] + ldr r1, _080AC98C @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC984: .4byte gBattleAnimArgs +_080AC988: .4byte sub_8074D00 +_080AC98C: .4byte DestroyAnimSprite + thumb_func_end sub_80AC94C + + thumb_func_start sub_80AC990 +sub_80AC990: @ 80AC990 + push {r4,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r0, _080AC9C4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AC9CC + ldr r2, _080AC9C8 @ =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x8] + negs r0, r0 + strh r0, [r4, 0x32] + adds r1, r2, 0 + b _080AC9E2 + .align 2, 0 +_080AC9C4: .4byte gBattleAnimAttacker +_080AC9C8: .4byte gBattleAnimArgs +_080AC9CC: + ldr r1, _080AC9F8 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] +_080AC9E2: + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080AC9FC @ =sub_80ACA6C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC9F8: .4byte gBattleAnimArgs +_080AC9FC: .4byte sub_80ACA6C + thumb_func_end sub_80AC990 + + thumb_func_start sub_80ACA00 +sub_80ACA00: @ 80ACA00 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080ACA2C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080ACA34 + ldr r2, _080ACA30 @ =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x8] + strh r0, [r4, 0x32] + adds r1, r2, 0 + b _080ACA4C + .align 2, 0 +_080ACA2C: .4byte gBattleAnimAttacker +_080ACA30: .4byte gBattleAnimArgs +_080ACA34: + ldr r1, _080ACA64 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x8] + negs r0, r0 + strh r0, [r4, 0x32] +_080ACA4C: + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080ACA68 @ =sub_80ACA6C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACA64: .4byte gBattleAnimArgs +_080ACA68: .4byte sub_80ACA6C + thumb_func_end sub_80ACA00 + + thumb_func_start sub_80ACA6C +sub_80ACA6C: @ 80ACA6C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x36 + ldrsh r1, [r2, r3] + cmp r0, r1 + bge _080ACA92 + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x34] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] +_080ACA92: + movs r0, 0x2E + ldrsh r1, [r2, r0] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r1, r0 + bne _080ACAA4 + adds r0, r2, 0 + bl move_anim_8074EE0 +_080ACAA4: + pop {r0} + bx r0 + thumb_func_end sub_80ACA6C + + thumb_func_start sub_80ACAA8 +sub_80ACAA8: @ 80ACAA8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r0, _080ACACC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080ACAD4 + ldr r0, _080ACAD0 @ =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080ACAE6 + .align 2, 0 +_080ACACC: .4byte gBattleAnimAttacker +_080ACAD0: .4byte gBattleAnimArgs +_080ACAD4: + ldr r0, _080ACB14 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + adds r2, r4, 0 + adds r2, 0x43 + movs r1, 0x8 + strb r1, [r2] +_080ACAE6: + adds r2, r0, 0 + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r2, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r2, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r2, 0xA] + strh r0, [r4, 0x34] + ldrh r0, [r2, 0xC] + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + ldr r0, _080ACB18 @ =sub_80ACB1C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACB14: .4byte gBattleAnimArgs +_080ACB18: .4byte sub_80ACB1C + thumb_func_end sub_80ACAA8 + + thumb_func_start sub_80ACB1C +sub_80ACB1C: @ 80ACB1C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080ACBA4 + movs r2, 0x38 + ldrsh r1, [r4, r2] + ldr r0, _080ACB88 @ =0x00002710 + cmp r1, r0 + ble _080ACB3A + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1 + strb r0, [r1] +_080ACB3A: + movs r1, 0x2E + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x38] + adds r0, r2 + strh r0, [r4, 0x38] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080ACB90 + ldr r2, _080ACB8C @ =0xffffff00 + b _080ACB98 + .align 2, 0 +_080ACB88: .4byte 0x00002710 +_080ACB8C: .4byte 0xffffff00 +_080ACB90: + cmp r0, 0 + bge _080ACB9C + movs r2, 0x80 + lsls r2, 1 +_080ACB98: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_080ACB9C: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _080ACBAA +_080ACBA4: + adds r0, r4, 0 + bl move_anim_8074EE0 +_080ACBAA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ACB1C + + thumb_func_start sub_80ACBB0 +sub_80ACBB0: @ 80ACBB0 + push {lr} + movs r1, 0 + strh r1, [r0, 0x20] + strh r1, [r0, 0x22] + movs r1, 0x3C + strh r1, [r0, 0x2E] + movs r1, 0x8C + strh r1, [r0, 0x32] + movs r1, 0x50 + strh r1, [r0, 0x36] + ldr r1, _080ACBD4 @ =sub_8075590 + str r1, [r0, 0x1C] + ldr r1, _080ACBD8 @ =DestroyAnimSprite + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080ACBD4: .4byte sub_8075590 +_080ACBD8: .4byte DestroyAnimSprite + thumb_func_end sub_80ACBB0 + + thumb_func_start sub_80ACBDC +sub_80ACBDC: @ 80ACBDC + push {r4-r6,lr} + adds r6, r0, 0 + ldr r5, _080ACC34 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + adds r4, r0, 0 + ldr r0, _080ACC38 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080ACC22 + movs r0, 0x2 + bl GetBattlerAtPosition + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + beq _080ACC1A + movs r0, 0x3 + bl GetBattlerAtPosition + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _080ACC22 +_080ACC1A: + ldr r1, _080ACC3C @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080ACC22: + ldr r1, _080ACC40 @ =sub_8075F0C + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ACC34: .4byte gBattleAnimAttacker +_080ACC38: .4byte gBattleAnimTarget +_080ACC3C: .4byte gBattleAnimArgs +_080ACC40: .4byte sub_8075F0C + thumb_func_end sub_80ACBDC + + thumb_func_start sub_80ACC44 +sub_80ACC44: @ 80ACC44 + ldr r2, _080ACC58 @ =gBattleAnimArgs + ldrh r1, [r2] + negs r1, r1 + strh r1, [r2] + ldrh r1, [r2, 0x4] + negs r1, r1 + strh r1, [r2, 0x4] + ldr r1, _080ACC5C @ =sub_8075F0C + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080ACC58: .4byte gBattleAnimArgs +_080ACC5C: .4byte sub_8075F0C + thumb_func_end sub_80ACC44 + + thumb_func_start sub_80ACC60 +sub_80ACC60: @ 80ACC60 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080ACC80 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + movs r1, 0 + strh r0, [r4, 0x3C] + strh r1, [r4, 0x2E] + ldr r0, _080ACC84 @ =sub_80ACC88 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACC80: .4byte gBattleAnimArgs +_080ACC84: .4byte sub_80ACC88 + thumb_func_end sub_80ACC60 + + thumb_func_start sub_80ACC88 +sub_80ACC88: @ 80ACC88 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_80ACD7C + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x12 + bne _080ACCD2 + movs r0, 0x19 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080ACCD8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080ACCDC @ =sub_80ACCE0 + str r0, [r5, 0x1C] +_080ACCD2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ACCD8: .4byte gBattleAnimTarget +_080ACCDC: .4byte sub_80ACCE0 + thumb_func_end sub_80ACC88 + + thumb_func_start sub_80ACCE0 +sub_80ACCE0: @ 80ACCE0 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080ACD28 + movs r4, 0 + strh r4, [r6, 0x2E] + ldr r5, _080ACD20 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x22] + strh r4, [r6, 0x26] + strh r4, [r6, 0x24] + ldr r1, _080ACD24 @ =sub_80ACD58 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + b _080ACD52 + .align 2, 0 +_080ACD20: .4byte gBattleAnimTarget +_080ACD24: .4byte sub_80ACD58 +_080ACD28: + movs r1, 0x3C + ldrsh r0, [r6, r1] + movs r1, 0x1C + bl Sin + ldrh r1, [r6, 0x24] + adds r0, r1 + strh r0, [r6, 0x24] + movs r1, 0x3C + ldrsh r0, [r6, r1] + movs r1, 0x1C + bl Cos + ldrh r1, [r6, 0x26] + adds r0, r1 + strh r0, [r6, 0x26] + ldrh r0, [r6, 0x3C] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r6, 0x3C] +_080ACD52: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80ACCE0 + + thumb_func_start sub_80ACD58 +sub_80ACD58: @ 80ACD58 + push {r4,lr} + adds r4, r0, 0 + bl sub_80ACD7C + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080ACD74 + adds r0, r4, 0 + bl DestroyAnimSprite +_080ACD74: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ACD58 + + thumb_func_start sub_80ACD7C +sub_80ACD7C: @ 80ACD7C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x1C + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x1C + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ACD7C + + thumb_func_start sub_80ACDA8 +sub_80ACDA8: @ 80ACDA8 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080ACDDC @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] + ldr r1, _080ACDE0 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080ACDE4 @ =sub_8074CD0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACDDC: .4byte gBattleAnimArgs +_080ACDE0: .4byte DestroyAnimSprite +_080ACDE4: .4byte sub_8074CD0 + thumb_func_end sub_80ACDA8 + + thumb_func_start sub_80ACDE8 +sub_80ACDE8: @ 80ACDE8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080ACE1C @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x2E] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080ACE20 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080ACE24 @ =sub_80ACE28 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACE1C: .4byte gBattleAnimArgs +_080ACE20: .4byte sub_8074C44 +_080ACE24: .4byte sub_80ACE28 + thumb_func_end sub_80ACDE8 + + thumb_func_start sub_80ACE28 +sub_80ACE28: @ 80ACE28 + push {lr} + adds r3, r0, 0 + adds r3, 0x3E + ldrb r2, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r3] + ldrh r1, [r0, 0x30] + movs r2, 0 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + ldr r1, _080ACE4C @ =sub_80ACE50 + str r1, [r0, 0x1C] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080ACE4C: .4byte sub_80ACE50 + thumb_func_end sub_80ACE28 + + thumb_func_start sub_80ACE50 +sub_80ACE50: @ 80ACE50 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + adds r0, 0xD0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080ACE9C + adds r0, r4, 0 + bl DestroyAnimSprite +_080ACE9C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ACE50 + + thumb_func_start sub_80ACEA4 +sub_80ACEA4: @ 80ACEA4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080ACF04 @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x26] + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + ldr r2, _080ACF08 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x10] + ldr r0, _080ACF0C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + strh r5, [r4, 0x14] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80758E0 + ldr r0, _080ACF10 @ =sub_80ACF14 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ACF04: .4byte gTasks +_080ACF08: .4byte gSprites +_080ACF0C: .4byte gBattleAnimAttacker +_080ACF10: .4byte sub_80ACF14 + thumb_func_end sub_80ACEA4 + + thumb_func_start sub_80ACF14 +sub_80ACF14: @ 80ACF14 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080ACF3C @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bls _080ACF30 + b _080AD1EE +_080ACF30: + lsls r0, 2 + ldr r1, _080ACF40 @ =_080ACF44 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ACF3C: .4byte gTasks +_080ACF40: .4byte _080ACF44 + .align 2, 0 +_080ACF44: + .4byte _080ACF60 + .4byte _080ACF86 + .4byte _080AD038 + .4byte _080AD098 + .4byte _080AD0B6 + .4byte _080AD18C + .4byte _080AD1E0 +_080ACF60: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 1 + movs r0, 0xE0 + str r0, [sp] + movs r0, 0x80 + lsls r0, 2 + str r0, [sp, 0x4] + movs r0, 0x20 + str r0, [sp, 0x8] + adds r0, r4, 0 + adds r2, r3, 0 + bl sub_80765D4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080ACF86: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080ACFCE + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ACFBC + ldr r2, _080ACFB8 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + b _080ACFCC + .align 2, 0 +_080ACFB8: .4byte gSprites +_080ACFBC: + ldr r2, _080AD030 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080AD034 @ =0x0000fffd +_080ACFCC: + strh r1, [r0, 0x24] +_080ACFCE: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080ACFFC + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080ACFFC + movs r0, 0 + strh r0, [r4, 0xE] + ldr r2, _080AD030 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x1 + strh r1, [r0, 0x22] +_080ACFFC: + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080AD00C + b _080AD1EE +_080AD00C: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8076440 + ldr r2, _080AD030 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x24] + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + b _080AD1D4 + .align 2, 0 +_080AD030: .4byte gSprites +_080AD034: .4byte 0x0000fffd +_080AD038: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080AD048 + b _080AD1EE +_080AD048: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AD072 + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xF0 + str r0, [sp, 0x4] + movs r0, 0x6 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_80765D4 + b _080AD092 +_080AD072: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xC0 + str r0, [sp, 0x4] + movs r0, 0x6 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_80765D4 +_080AD092: + movs r0, 0 + strh r0, [r4, 0xA] + b _080AD1D4 +_080AD098: + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + cmp r0, 0 + beq _080AD0A6 + b _080AD1EE +_080AD0A6: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + adds r1, r5, 0 + movs r2, 0x6 + bl sub_80AD1F8 + b _080AD1D4 +_080AD0B6: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AD104 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD0F0 + ldr r2, _080AD0EC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x3 + b _080AD102 + .align 2, 0 +_080AD0EC: .4byte gSprites +_080AD0F0: + ldr r2, _080AD13C @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x3 +_080AD102: + strh r1, [r0, 0x26] +_080AD104: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + ble _080AD1EE + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AD140 + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xF0 + bl sub_80765D4 + b _080AD15E + .align 2, 0 +_080AD13C: .4byte gSprites +_080AD140: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xC0 + bl sub_80765D4 +_080AD15E: + ldrh r1, [r4, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD17C + ldr r2, _080AD188 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x3 + strh r1, [r0, 0x26] +_080AD17C: + movs r0, 0 + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + b _080AD1D4 + .align 2, 0 +_080AD188: .4byte gSprites +_080AD18C: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AD1A8 + ldr r2, _080AD1DC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] +_080AD1A8: + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080AD1EE + ldr r2, _080AD1DC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + strh r1, [r0, 0x22] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8075980 + strh r5, [r4, 0xC] +_080AD1D4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AD1EE + .align 2, 0 +_080AD1DC: .4byte gSprites +_080AD1E0: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AD1EE + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080AD1EE: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80ACF14 + + thumb_func_start sub_80AD1F8 +sub_80AD1F8: @ 80AD1F8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + adds r0, r4, 0 + bl sub_80AD374 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r1, _080AD248 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r4, [r0, 0x20] + ldr r0, _080AD24C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AD250 + adds r0, r4, 0 + subs r0, 0xC + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x1 + b _080AD25A + .align 2, 0 +_080AD248: .4byte gSprites +_080AD24C: .4byte gBattleAnimAttacker +_080AD250: + adds r0, r4, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0xFF +_080AD25A: + movs r6, 0 + movs r5, 0 + lsls r4, 16 + str r4, [sp, 0x8] + mov r1, r9 + lsls r1, 16 + str r1, [sp, 0x4] + ldr r2, _080AD314 @ =gUnknown_83E5E44 + mov r9, r2 + lsls r0, 24 + asrs r0, 24 + str r0, [sp] + mov r3, r8 + lsls r3, 1 + mov r10, r3 +_080AD278: + ldr r0, _080AD318 @ =gUnknown_83E5E2C + ldr r2, [sp, 0x8] + asrs r1, r2, 16 + ldr r3, [sp, 0x4] + asrs r2, r3, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080AD2FA + ldr r1, _080AD31C @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + lsls r0, r5, 2 + adds r0, 0x40 + adds r1, r0 + ldr r3, _080AD320 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r3, _080AD324 @ =0xfffffc00 + adds r0, r3, 0 + ands r2, r0 + orrs r2, r1 + strh r2, [r4, 0x4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _080AD2C2 + movs r5, 0 +_080AD2C2: + lsls r2, r6, 2 + mov r1, r9 + adds r0, r2, r1 + ldrh r0, [r0] + ldr r3, [sp] + adds r1, r0, 0 + muls r1, r3 + lsls r1, 16 + asrs r1, 16 + ldr r0, _080AD328 @ =gUnknown_83E5E46 + adds r2, r0 + movs r3, 0 + ldrsh r2, [r2, r3] + adds r0, r4, 0 + bl sub_80AD3C8 + strh r7, [r4, 0x3A] + mov r0, r8 + strh r0, [r4, 0x3C] + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + add r0, r10 + ldr r1, _080AD32C @ =gTasks+0x8 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] +_080AD2FA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x6 + bls _080AD278 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AD314: .4byte gUnknown_83E5E44 +_080AD318: .4byte gUnknown_83E5E2C +_080AD31C: .4byte gSprites +_080AD320: .4byte 0x000003ff +_080AD324: .4byte 0xfffffc00 +_080AD328: .4byte gUnknown_83E5E46 +_080AD32C: .4byte gTasks+0x8 + thumb_func_end sub_80AD1F8 + + thumb_func_start sub_80AD330 +sub_80AD330: @ 80AD330 + push {r4,lr} + adds r4, r0, 0 + bl sub_80AD3E4 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AD36A + ldr r3, _080AD370 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080AD36A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AD370: .4byte gTasks + thumb_func_end sub_80AD330 + + thumb_func_start sub_80AD374 +sub_80AD374: @ 80AD374 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AD3AC @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x26] + ldrh r0, [r1, 0x22] + adds r2, r0 + adds r1, 0x29 + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080AD3B0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AD3B4 + lsls r0, r4, 16 + movs r1, 0x94 + lsls r1, 15 + b _080AD3BA + .align 2, 0 +_080AD3AC: .4byte gSprites +_080AD3B0: .4byte gBattleAnimAttacker +_080AD3B4: + lsls r0, r4, 16 + movs r1, 0xB0 + lsls r1, 14 +_080AD3BA: + adds r0, r1 + lsrs r4, r0, 16 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AD374 + + thumb_func_start sub_80AD3C8 +sub_80AD3C8: @ 80AD3C8 + movs r3, 0 + strh r3, [r0, 0x2E] + strh r3, [r0, 0x30] + ldrh r3, [r0, 0x20] + lsls r3, 3 + strh r3, [r0, 0x32] + ldrh r3, [r0, 0x22] + lsls r3, 3 + strh r3, [r0, 0x34] + lsls r1, 3 + strh r1, [r0, 0x36] + lsls r2, 3 + strh r2, [r0, 0x38] + bx lr + thumb_func_end sub_80AD3C8 + + thumb_func_start sub_80AD3E4 +sub_80AD3E4: @ 80AD3E4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080AD40E + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x30] + adds r1, r0, 0 + muls r1, r0 + adds r0, r1, 0 + ldrh r3, [r2, 0x34] + adds r0, r3 + strh r0, [r2, 0x34] +_080AD40E: + ldrh r0, [r2, 0x36] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 19 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x38] + ldrh r3, [r2, 0x34] + adds r1, r3 + strh r1, [r2, 0x34] + lsls r1, 16 + asrs r3, r1, 19 + strh r3, [r2, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080AD444 + adds r1, r3, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080AD444 + cmp r1, 0x78 + ble _080AD450 +_080AD444: + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080AD450: + pop {r0} + bx r0 + thumb_func_end sub_80AD3E4 + + thumb_func_start sub_80AD454 +sub_80AD454: @ 80AD454 + push {r4,r5,lr} + ldr r3, _080AD498 @ =gBattleAnimArgs + ldrh r1, [r3] + movs r2, 0 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x2] + strh r1, [r0, 0x22] + strh r2, [r0, 0x2E] + strh r2, [r0, 0x30] + strh r2, [r0, 0x32] + ldrh r1, [r3, 0x4] + strh r1, [r0, 0x3A] + ldrh r1, [r3, 0x6] + strh r1, [r0, 0x3C] + ldrh r4, [r0, 0x4] + lsls r2, r4, 22 + lsrs r2, 22 + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r1, 4 + adds r2, r1 + ldr r3, _080AD49C @ =0x000003ff + adds r1, r3, 0 + ands r2, r1 + ldr r1, _080AD4A0 @ =0xfffffc00 + ands r1, r4 + orrs r1, r2 + strh r1, [r0, 0x4] + ldr r1, _080AD4A4 @ =sub_80AD4A8 + str r1, [r0, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AD498: .4byte gBattleAnimArgs +_080AD49C: .4byte 0x000003ff +_080AD4A0: .4byte 0xfffffc00 +_080AD4A4: .4byte sub_80AD4A8 + thumb_func_end sub_80AD454 + + thumb_func_start sub_80AD4A8 +sub_80AD4A8: @ 80AD4A8 + push {r4,lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _080AD4DA + cmp r0, 0x1 + bgt _080AD4BE + cmp r0, 0 + beq _080AD4C4 + b _080AD538 +_080AD4BE: + cmp r0, 0x2 + beq _080AD4F8 + b _080AD538 +_080AD4C4: + ldrh r1, [r2, 0x3A] + movs r3, 0x3A + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080AD4D4 + subs r0, r1, 0x1 + strh r0, [r2, 0x3A] + b _080AD538 +_080AD4D4: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] +_080AD4DA: + ldrh r0, [r2, 0x22] + adds r0, 0x8 + strh r0, [r2, 0x22] + lsls r0, 16 + asrs r0, 16 + ldrh r3, [r2, 0x3C] + movs r4, 0x3C + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080AD538 + strh r3, [r2, 0x22] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + b _080AD538 +_080AD4F8: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AD524 + movs r0, 0 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x32] + adds r0, 0x1 + strh r0, [r2, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD520 + ldr r0, _080AD51C @ =0x0000fffd + b _080AD522 + .align 2, 0 +_080AD51C: .4byte 0x0000fffd +_080AD520: + movs r0, 0x3 +_080AD522: + strh r0, [r2, 0x26] +_080AD524: + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080AD538 + adds r0, r2, 0 + bl DestroyAnimSprite +_080AD538: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AD4A8 + + thumb_func_start sub_80AD540 +sub_80AD540: @ 80AD540 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080AD5B4 + cmp r0, 0x1 + bgt _080AD556 + cmp r0, 0 + beq _080AD55C + b _080AD682 +_080AD556: + cmp r0, 0x2 + beq _080AD612 + b _080AD682 +_080AD55C: + adds r0, r5, 0 + movs r1, 0 + bl sub_8075160 + ldr r4, _080AD584 @ =gBattleAnimArgs + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x3C] + ldr r0, _080AD588 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AD58C + movs r0, 0x4 + b _080AD58E + .align 2, 0 +_080AD584: .4byte gBattleAnimArgs +_080AD588: .4byte gBattleAnimAttacker +_080AD58C: + ldr r0, _080AD5AC @ =0x0000fffc +_080AD58E: + strh r0, [r5, 0x36] + ldr r0, _080AD5B0 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080AD60A + .align 2, 0 +_080AD5AC: .4byte 0x0000fffc +_080AD5B0: .4byte gBattleAnimTarget +_080AD5B4: + ldrh r0, [r5, 0x30] + adds r0, 0xC0 + strh r0, [r5, 0x30] + ldr r0, _080AD5D4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AD5D8 + ldrh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + b _080AD5DE + .align 2, 0 +_080AD5D4: .4byte gBattleAnimAttacker +_080AD5D8: + ldrh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 24 +_080AD5DE: + strh r0, [r5, 0x26] + movs r2, 0x32 + ldrsh r0, [r5, r2] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] + ldrh r0, [r5, 0x32] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080AD682 + movs r0, 0 + strh r0, [r5, 0x34] +_080AD60A: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080AD682 +_080AD612: + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + adds r2, r0, 0 + movs r3, 0 + strh r2, [r5, 0x24] + ldrh r0, [r5, 0x32] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080AD682 + ldrh r0, [r5, 0x20] + adds r1, r2, r0 + strh r1, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r3, [r5, 0x26] + strh r3, [r5, 0x24] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + ldr r4, _080AD688 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8075678 + ldr r0, _080AD68C @ =sub_80AD690 + str r0, [r5, 0x1C] +_080AD682: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AD688: .4byte gBattleAnimTarget +_080AD68C: .4byte sub_80AD690 + thumb_func_end sub_80AD540 + + thumb_func_start sub_80AD690 +sub_80AD690: @ 80AD690 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080AD6E8 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x10 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080AD6C6 + cmp r2, 0xC4 + ble _080AD6EE +_080AD6C6: + lsls r0, 16 + cmp r0, 0 + ble _080AD6EE + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AD6EE + ldr r0, _080AD6E4 @ =gUnknown_2037F24 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x89 + bl PlaySE12WithPanning + b _080AD6EE + .align 2, 0 +_080AD6E4: .4byte gUnknown_2037F24 +_080AD6E8: + adds r0, r4, 0 + bl DestroyAnimSprite +_080AD6EE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AD690 + + thumb_func_start sub_80AD6F4 +sub_80AD6F4: @ 80AD6F4 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080AD70C + ldr r0, _080AD778 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r4, 0x30] + adds r0, r1, 0x1 + strh r0, [r4, 0x2E] +_080AD70C: + movs r0, 0xC0 + lsls r0, 1 + adds r1, r0, 0 + ldrh r2, [r4, 0x34] + adds r1, r2 + strh r1, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0xA0 + strh r0, [r4, 0x36] + movs r2, 0x30 + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x36] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x7 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AD7A8 + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x83 + bls _080AD780 + ldr r0, _080AD77C @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080AD7C4 + .align 2, 0 +_080AD778: .4byte gBattleAnimArgs +_080AD77C: .4byte gBattleAnimTarget +_080AD780: + ldr r0, _080AD7A4 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080AD7C4 + .align 2, 0 +_080AD7A4: .4byte gBattleAnimTarget +_080AD7A8: + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x83 + bls _080AD7BC + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D + b _080AD7C2 +_080AD7BC: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F +_080AD7C2: + strb r0, [r1] +_080AD7C4: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080AD7EC + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080AD7EC: + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x1E + bne _080AD7FA + adds r0, r4, 0 + bl DestroyAnimSprite +_080AD7FA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AD6F4 + + thumb_func_start sub_80AD800 +sub_80AD800: @ 80AD800 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080AD860 @ =gTasks + adds r4, r1, r0 + ldr r0, _080AD864 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080AD826 + movs r1, 0x1 +_080AD826: + strh r1, [r4, 0x20] + ldr r0, _080AD868 @ =gBattleAnimTarget + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + movs r0, 0x3 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080AD86C @ =sub_80AD870 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AD860: .4byte gTasks +_080AD864: .4byte gBattleAnimAttacker +_080AD868: .4byte gBattleAnimTarget +_080AD86C: .4byte sub_80AD870 + thumb_func_end sub_80AD800 + + thumb_func_start sub_80AD870 +sub_80AD870: @ 80AD870 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080AD894 @ =gTasks + adds r2, r0, r1 + movs r0, 0x8 + ldrsh r3, [r2, r0] + cmp r3, 0x1 + beq _080AD938 + cmp r3, 0x1 + bgt _080AD898 + cmp r3, 0 + beq _080AD8A6 + b _080ADA98 + .align 2, 0 +_080AD894: .4byte gTasks +_080AD898: + cmp r3, 0x2 + bne _080AD89E + b _080AD9C0 +_080AD89E: + cmp r3, 0x3 + bne _080AD8A4 + b _080ADA54 +_080AD8A4: + b _080ADA98 +_080AD8A6: + movs r1, 0x20 + ldrsh r0, [r2, r1] + lsls r0, 1 + ldrh r5, [r2, 0x1C] + adds r0, r5 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AD8D8 + strh r3, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD8D4 + movs r0, 0x2 + b _080AD8D6 +_080AD8D4: + ldr r0, _080AD930 @ =0x0000fffe +_080AD8D6: + strh r0, [r2, 0x1E] +_080AD8D8: + movs r1, 0 + strh r1, [r2, 0xE] + movs r7, 0x22 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080AD91A + ldr r4, _080AD934 @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 +_080AD8EA: + movs r1, 0xE + ldrsh r0, [r2, r1] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r5, 0 + ldrsh r0, [r0, r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r7, [r2, 0x1C] + adds r0, r7 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r5, 0x22 + ldrsh r1, [r2, r5] + cmp r0, r1 + blt _080AD8EA +_080AD91A: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + beq _080AD92A + b _080ADA98 +_080AD92A: + movs r0, 0 + strh r0, [r2, 0x1A] + b _080ADA44 + .align 2, 0 +_080AD930: .4byte 0x0000fffe +_080AD934: .4byte gSprites +_080AD938: + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080AD960 + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + ands r0, r3 + lsls r0, 16 + cmp r0, 0 + beq _080AD95C + movs r0, 0x2 + b _080AD95E +_080AD95C: + ldr r0, _080AD9B8 @ =0x0000fffe +_080AD95E: + strh r0, [r2, 0x1E] +_080AD960: + movs r1, 0 + strh r1, [r2, 0xE] + movs r7, 0x22 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080AD9A2 + ldr r4, _080AD9BC @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 +_080AD972: + movs r1, 0xE + ldrsh r0, [r2, r1] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r5, 0 + ldrsh r0, [r0, r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r7, [r2, 0x1C] + adds r0, r7 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r5, 0x22 + ldrsh r1, [r2, r5] + cmp r0, r1 + blt _080AD972 +_080AD9A2: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x60 + bne _080ADA98 + movs r0, 0 + strh r0, [r2, 0x1A] + b _080ADA44 + .align 2, 0 +_080AD9B8: .4byte 0x0000fffe +_080AD9BC: .4byte gSprites +_080AD9C0: + movs r7, 0x20 + ldrsh r1, [r2, r7] + lsls r1, 1 + ldrh r0, [r2, 0x1C] + subs r0, r1 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AD9F4 + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD9F0 + strh r3, [r2, 0x1E] + b _080AD9F4 +_080AD9F0: + ldr r0, _080ADA4C @ =0x0000fffe + strh r0, [r2, 0x1E] +_080AD9F4: + movs r1, 0 + strh r1, [r2, 0xE] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080ADA36 + ldr r4, _080ADA50 @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 +_080ADA06: + movs r5, 0xE + ldrsh r0, [r2, r5] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r7, 0 + ldrsh r0, [r0, r7] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r5, [r2, 0x1C] + adds r0, r5 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r7, 0x22 + ldrsh r1, [r2, r7] + cmp r0, r1 + blt _080ADA06 +_080ADA36: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080ADA98 +_080ADA44: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080ADA98 + .align 2, 0 +_080ADA4C: .4byte 0x0000fffe +_080ADA50: .4byte gSprites +_080ADA54: + movs r1, 0 + strh r1, [r2, 0xE] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080ADA92 + ldr r6, _080ADAA0 @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 + movs r5, 0 +_080ADA68: + movs r7, 0xE + ldrsh r0, [r2, r7] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r5, [r0, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r7, 0x22 + ldrsh r1, [r2, r7] + cmp r0, r1 + blt _080ADA68 +_080ADA92: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080ADA98: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ADAA0: .4byte gSprites + thumb_func_end sub_80AD870 + + thumb_func_start sub_80ADAA4 +sub_80ADAA4: @ 80ADAA4 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x8] + lsls r0, 4 + ldr r1, _080ADAD4 @ =gBattleAnimArgs + ldrb r2, [r1] + ldrh r3, [r1, 0x2] + movs r1, 0x10 + bl BlendPalette + adds r0, r4, 0 + bl DestroyAnimVisualTask + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADAD4: .4byte gBattleAnimArgs + thumb_func_end sub_80ADAA4 + + thumb_func_start sub_80ADAD8 +sub_80ADAD8: @ 80ADAD8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080ADB30 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + mov r9, r1 + ldr r4, _080ADB34 @ =gBattleAnimArgs + mov r8, r4 + cmp r0, 0 + bne _080ADB0E + ldrh r0, [r4] + strh r0, [r2, 0xA] + ldrh r0, [r4, 0x2] + strh r0, [r2, 0xC] + ldrh r0, [r4, 0x4] + strh r0, [r2, 0xE] + ldrh r0, [r4, 0x6] + strh r0, [r2, 0x10] +_080ADB0E: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + ldr r1, _080ADB38 @ =gBattlerSpriteIds + ldr r0, _080ADB3C @ =gBattleAnimTarget + ldrb r0, [r0] + adds r0, r1 + ldrb r6, [r0] + movs r5, 0x10 + ldrsh r0, [r2, r5] + cmp r0, 0 + bne _080ADB44 + ldr r4, _080ADB40 @ =gUnknown_83E5EFC + movs r1, 0x8 + ldrsh r0, [r2, r1] + b _080ADB4A + .align 2, 0 +_080ADB30: .4byte gTasks +_080ADB34: .4byte gBattleAnimArgs +_080ADB38: .4byte gBattlerSpriteIds +_080ADB3C: .4byte gBattleAnimTarget +_080ADB40: .4byte gUnknown_83E5EFC +_080ADB44: + ldr r4, _080ADB90 @ =gUnknown_83E5F0C + movs r3, 0x8 + ldrsh r0, [r2, r3] +_080ADB4A: + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + adds r0, r4 + ldrb r5, [r0] + lsls r0, r7, 2 + adds r1, r0, r7 + lsls r1, 3 + add r1, r9 + movs r4, 0xE + ldrsh r1, [r1, r4] + mov r12, r0 + cmp r1, 0x1 + bne _080ADB98 + ldr r2, _080ADB94 @ =gSprites + lsls r3, r6, 4 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + mov r10, r0 + mov r0, r8 + movs r4, 0x2 + ldrsh r1, [r0, r4] + lsls r0, r5, 24 + asrs r0, 24 + muls r0, r1 + cmp r0, 0 + bge _080ADB88 + negs r0, r0 +_080ADB88: + mov r5, r10 + strh r0, [r5, 0x26] + b _080ADBB2 + .align 2, 0 +_080ADB90: .4byte gUnknown_83E5F0C +_080ADB94: .4byte gSprites +_080ADB98: + ldr r3, _080ADBE8 @ =gSprites + lsls r4, r6, 4 + adds r2, r4, r6 + lsls r2, 2 + adds r2, r3 + lsls r0, r5, 24 + asrs r0, 24 + mov r5, r8 + ldrh r1, [r5, 0x2] + muls r0, r1 + strh r0, [r2, 0x24] + adds r2, r3, 0 + adds r3, r4, 0 +_080ADBB2: + mov r1, r12 + adds r0, r1, r7 + lsls r0, 3 + add r0, r9 + movs r4, 0x8 + ldrsh r1, [r0, r4] + movs r5, 0xA + ldrsh r0, [r0, r5] + cmp r1, r0 + bne _080ADBD8 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x24] + strh r1, [r0, 0x26] + adds r0, r7, 0 + bl DestroyAnimVisualTask +_080ADBD8: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ADBE8: .4byte gSprites + thumb_func_end sub_80ADAD8 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_berrytree.s b/asm/fldeff_berrytree.s deleted file mode 100644 index 83c9c8be8..000000000 --- a/asm/fldeff_berrytree.s +++ /dev/null @@ -1,13 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_56 -nullsub_56: @ 80A0E74 - bx lr - thumb_func_end nullsub_56 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s index 2497c695d..c98cda3b7 100644 --- a/asm/fldeff_cut.s +++ b/asm/fldeff_cut.s @@ -44,34 +44,34 @@ sub_8097898: @ 8097898 lsrs r0, 24 cmp r0, 0x1 bne _08097904 - ldr r1, _080978D0 @ =gUnknown_3005024 - ldr r0, _080978D4 @ =hm_add_c3_launch_phase_2 + ldr r1, _080978D0 @ =gFieldCallback2 + ldr r0, _080978D4 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080978D8 @ =gUnknown_203B0C4 + ldr r1, _080978D8 @ =gPostMenuFieldCallback ldr r0, _080978DC @ =sub_80979D0 b _080978EC .align 2, 0 _080978CC: .4byte gUnknown_2039874 -_080978D0: .4byte gUnknown_3005024 -_080978D4: .4byte hm_add_c3_launch_phase_2 -_080978D8: .4byte gUnknown_203B0C4 +_080978D0: .4byte gFieldCallback2 +_080978D4: .4byte FieldCallback_PrepareFadeInFromMenu +_080978D8: .4byte gPostMenuFieldCallback _080978DC: .4byte sub_80979D0 _080978E0: strb r0, [r4] _080978E2: - ldr r1, _080978F4 @ =gUnknown_3005024 - ldr r0, _080978F8 @ =hm_add_c3_launch_phase_2 + ldr r1, _080978F4 @ =gFieldCallback2 + ldr r0, _080978F8 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080978FC @ =gUnknown_203B0C4 + ldr r1, _080978FC @ =gPostMenuFieldCallback ldr r0, _08097900 @ =sub_8097984 _080978EC: str r0, [r1] movs r0, 0x1 b _08097970 .align 2, 0 -_080978F4: .4byte gUnknown_3005024 -_080978F8: .4byte hm_add_c3_launch_phase_2 -_080978FC: .4byte gUnknown_203B0C4 +_080978F4: .4byte gFieldCallback2 +_080978F8: .4byte FieldCallback_PrepareFadeInFromMenu +_080978FC: .4byte gPostMenuFieldCallback _08097900: .4byte sub_8097984 _08097904: ldr r4, _0809797C @ =gUnknown_2039A04 @@ -380,7 +380,7 @@ sub_8097B50: @ 8097B50 asrs r0, 16 lsrs r7, r1, 16 asrs r1, 16 - bl sub_8058E48 + bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r2, r0, 16 ldr r1, _08097B84 @ =gUnknown_83D4100 diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s index 6466c706e..c25978eb1 100644 --- a/asm/fldeff_flash.s +++ b/asm/fldeff_flash.s @@ -17,10 +17,10 @@ sub_80C9B2C: @ 80C9B2C lsls r0, 24 cmp r0, 0 bne _080C9B6C - ldr r1, _080C9B5C @ =gUnknown_3005024 - ldr r0, _080C9B60 @ =hm_add_c3_launch_phase_2 + ldr r1, _080C9B5C @ =gFieldCallback2 + ldr r0, _080C9B60 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080C9B64 @ =gUnknown_203B0C4 + ldr r1, _080C9B64 @ =gPostMenuFieldCallback ldr r0, _080C9B68 @ =sub_80C9B74 str r0, [r1] movs r0, 0x1 @@ -28,9 +28,9 @@ sub_80C9B2C: @ 80C9B2C .align 2, 0 _080C9B54: .4byte gMapHeader _080C9B58: .4byte 0x00000806 -_080C9B5C: .4byte gUnknown_3005024 -_080C9B60: .4byte hm_add_c3_launch_phase_2 -_080C9B64: .4byte gUnknown_203B0C4 +_080C9B5C: .4byte gFieldCallback2 +_080C9B60: .4byte FieldCallback_PrepareFadeInFromMenu +_080C9B64: .4byte gPostMenuFieldCallback _080C9B68: .4byte sub_80C9B74 _080C9B6C: movs r0, 0 diff --git a/asm/fldeff_softboiled.s b/asm/fldeff_softboiled.s deleted file mode 100644 index 857686ab3..000000000 --- a/asm/fldeff_softboiled.s +++ /dev/null @@ -1,366 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start hm_prepare_dive_probably -hm_prepare_dive_probably: @ 80E5684 - push {r4-r6,lr} - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x64 - muls r0, r6 - ldr r4, _080E56D0 @ =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - muls r0, r6 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x5 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r4, r0 - bhi _080E56D4 - movs r0, 0 - b _080E56D6 - .align 2, 0 -_080E56D0: .4byte gPlayerParty -_080E56D4: - movs r0, 0x1 -_080E56D6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end hm_prepare_dive_probably - - thumb_func_start sub_80E56DC -sub_80E56DC: @ 80E56DC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E5718 @ =gUnknown_203B0A0 - movs r1, 0xA - strb r1, [r0, 0xB] - ldrb r1, [r0, 0x9] - strb r1, [r0, 0xA] - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_811F818 - movs r0, 0x5 - bl sub_8121D0C - ldr r1, _080E571C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E5720 @ =sub_811FB28 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5718: .4byte gUnknown_203B0A0 -_080E571C: .4byte gTasks -_080E5720: .4byte sub_811FB28 - thumb_func_end sub_80E56DC - - thumb_func_start sub_80E5724 -sub_80E5724: @ 80E5724 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - str r4, [sp, 0x4] - ldr r1, _080E575C @ =gUnknown_203B0A0 - ldrb r7, [r1, 0x9] - mov r8, r7 - ldrb r0, [r1, 0xA] - adds r5, r0, 0 - cmp r5, 0x6 - bls _080E5768 - movs r0, 0 - strb r0, [r1, 0xB] - bl sub_8121D0C - ldr r1, _080E5760 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E5764 @ =sub_811FB28 - str r1, [r0] - b _080E57D4 - .align 2, 0 -_080E575C: .4byte gUnknown_203B0A0 -_080E5760: .4byte gTasks -_080E5764: .4byte sub_811FB28 -_080E5768: - movs r0, 0x64 - mov r10, r0 - mov r0, r10 - muls r0, r5 - ldr r1, _080E57A0 @ =gPlayerParty - mov r9, r1 - adds r6, r0, r1 - adds r0, r6, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080E5796 - cmp r7, r5 - beq _080E5796 - adds r0, r6, 0 - movs r1, 0x3A - bl GetMonData - cmp r0, r4 - bne _080E57A4 -_080E5796: - ldr r0, [sp, 0x4] - bl sub_80E5934 - b _080E57D4 - .align 2, 0 -_080E57A0: .4byte gPlayerParty -_080E57A4: - movs r0, 0x1 - bl PlaySE - mov r1, r10 - mov r0, r8 - muls r0, r1 - add r0, r9 - movs r1, 0x3A - bl GetMonData - movs r1, 0x5 - bl __udivsi3 - adds r3, r0, 0 - lsls r3, 16 - asrs r3, 16 - movs r2, 0x1 - negs r2, r2 - ldr r0, _080E57E4 @ =sub_80E57E8 - str r0, [sp] - ldr r0, [sp, 0x4] - mov r1, r8 - bl sub_8120760 -_080E57D4: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E57E4: .4byte sub_80E57E8 - thumb_func_end sub_80E5724 - - thumb_func_start sub_80E57E8 -sub_80E57E8: @ 80E57E8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl PlaySE - ldr r5, _080E5830 @ =gUnknown_203B0A0 - movs r1, 0x9 - ldrsb r1, [r5, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E5834 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - movs r1, 0x5 - bl __udivsi3 - adds r3, r0, 0 - lsls r3, 16 - asrs r3, 16 - ldrb r1, [r5, 0xA] - ldr r0, _080E5838 @ =sub_80E583C - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - bl sub_8120760 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E5830: .4byte gUnknown_203B0A0 -_080E5834: .4byte gPlayerParty -_080E5838: .4byte sub_80E583C - thumb_func_end sub_80E57E8 - - thumb_func_start sub_80E583C -sub_80E583C: @ 80E583C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080E5884 @ =gUnknown_203B0A0 - movs r1, 0xA - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E5888 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E588C @ =gStringVar1 - bl GetMonNickname - ldr r4, _080E5890 @ =gStringVar4 - ldr r1, _080E5894 @ =gUnknown_8416F27 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_81202F8 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _080E5898 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E589C @ =sub_80E58A0 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E5884: .4byte gUnknown_203B0A0 -_080E5888: .4byte gPlayerParty -_080E588C: .4byte gStringVar1 -_080E5890: .4byte gStringVar4 -_080E5894: .4byte gUnknown_8416F27 -_080E5898: .4byte gTasks -_080E589C: .4byte sub_80E58A0 - thumb_func_end sub_80E583C - - thumb_func_start sub_80E58A0 -sub_80E58A0: @ 80E58A0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8120370 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080E58EE - ldr r4, _080E58F4 @ =gUnknown_203B0A0 - movs r0, 0 - strb r0, [r4, 0xB] - ldrb r0, [r4, 0x9] - movs r1, 0 - bl sub_811F818 - ldrb r0, [r4, 0xA] - strb r0, [r4, 0x9] - ldrb r0, [r4, 0xA] - movs r1, 0x1 - bl sub_811F818 - movs r0, 0x6 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - bl ClearWindowTilemap - movs r0, 0 - bl sub_8121D0C - ldr r1, _080E58F8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E58FC @ =sub_811FB28 - str r1, [r0] -_080E58EE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E58F4: .4byte gUnknown_203B0A0 -_080E58F8: .4byte gTasks -_080E58FC: .4byte sub_811FB28 - thumb_func_end sub_80E58A0 - - thumb_func_start sub_80E5900 -sub_80E5900: @ 80E5900 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8120370 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080E5926 - movs r0, 0x5 - bl sub_8121D0C - ldr r0, _080E592C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080E5930 @ =sub_811FB28 - str r0, [r1] -_080E5926: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E592C: .4byte gTasks -_080E5930: .4byte sub_811FB28 - thumb_func_end sub_80E5900 - - thumb_func_start sub_80E5934 -sub_80E5934: @ 80E5934 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - ldr r0, _080E5964 @ =gUnknown_84169F8 - movs r1, 0 - bl sub_81202F8 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _080E5968 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E596C @ =sub_80E5900 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5964: .4byte gUnknown_84169F8 -_080E5968: .4byte gTasks -_080E596C: .4byte sub_80E5900 - thumb_func_end sub_80E5934 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s index 778f2c916..ace765f55 100644 --- a/asm/fldeff_strength.s +++ b/asm/fldeff_strength.s @@ -28,10 +28,10 @@ _080D080C: lsls r0, 24 lsrs r0, 24 strh r0, [r4] - ldr r1, _080D0830 @ =gUnknown_3005024 - ldr r0, _080D0834 @ =hm_add_c3_launch_phase_2 + ldr r1, _080D0830 @ =gFieldCallback2 + ldr r0, _080D0834 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080D0838 @ =gUnknown_203B0C4 + ldr r1, _080D0838 @ =gPostMenuFieldCallback ldr r0, _080D083C @ =sub_80D0840 str r0, [r1] movs r0, 0x1 @@ -41,9 +41,9 @@ _080D0826: bx r1 .align 2, 0 _080D082C: .4byte gSpecialVar_Result -_080D0830: .4byte gUnknown_3005024 -_080D0834: .4byte hm_add_c3_launch_phase_2 -_080D0838: .4byte gUnknown_203B0C4 +_080D0830: .4byte gFieldCallback2 +_080D0834: .4byte FieldCallback_PrepareFadeInFromMenu +_080D0838: .4byte gPostMenuFieldCallback _080D083C: .4byte sub_80D0840 thumb_func_end sub_80D07EC diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s index 47b9ef390..aead537d4 100644 --- a/asm/fldeff_sweetscent.s +++ b/asm/fldeff_sweetscent.s @@ -20,18 +20,18 @@ _080DE0C4: .4byte gUnknown_203B0A0 thumb_func_start sub_80DE0C8 sub_80DE0C8: @ 80DE0C8 - ldr r1, _080DE0D8 @ =gUnknown_3005024 - ldr r0, _080DE0DC @ =hm_add_c3_launch_phase_2 + ldr r1, _080DE0D8 @ =gFieldCallback2 + ldr r0, _080DE0DC @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080DE0E0 @ =gUnknown_203B0C4 + ldr r1, _080DE0E0 @ =gPostMenuFieldCallback ldr r0, _080DE0E4 @ =hm2_sweet_scent str r0, [r1] movs r0, 0x1 bx lr .align 2, 0 -_080DE0D8: .4byte gUnknown_3005024 -_080DE0DC: .4byte hm_add_c3_launch_phase_2 -_080DE0E0: .4byte gUnknown_203B0C4 +_080DE0D8: .4byte gFieldCallback2 +_080DE0DC: .4byte FieldCallback_PrepareFadeInFromMenu +_080DE0E0: .4byte gPostMenuFieldCallback _080DE0E4: .4byte hm2_sweet_scent thumb_func_end sub_80DE0C8 diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s deleted file mode 100644 index 698ad4c23..000000000 --- a/asm/fldeff_teleport.s +++ /dev/null @@ -1,92 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start SetUpFieldMove_Teleport -SetUpFieldMove_Teleport: @ 80F66F0 - push {lr} - ldr r0, _080F6708 @ =gMapHeader - ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080F670C - movs r0, 0 - b _080F671A - .align 2, 0 -_080F6708: .4byte gMapHeader -_080F670C: - ldr r1, _080F6720 @ =gUnknown_3005024 - ldr r0, _080F6724 @ =hm_add_c3_launch_phase_2 - str r0, [r1] - ldr r1, _080F6728 @ =gUnknown_203B0C4 - ldr r0, _080F672C @ =hm_teleport_run_dp02scr - str r0, [r1] - movs r0, 0x1 -_080F671A: - pop {r1} - bx r1 - .align 2, 0 -_080F6720: .4byte gUnknown_3005024 -_080F6724: .4byte hm_add_c3_launch_phase_2 -_080F6728: .4byte gUnknown_203B0C4 -_080F672C: .4byte hm_teleport_run_dp02scr - thumb_func_end SetUpFieldMove_Teleport - - thumb_func_start hm_teleport_run_dp02scr -hm_teleport_run_dp02scr: @ 80F6730 - push {lr} - bl sub_8054D08 - movs r0, 0x3F - bl FieldEffectStart - bl GetCursorSelectionMonId - ldr r1, _080F674C @ =gFieldEffectArguments - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080F674C: .4byte gFieldEffectArguments - thumb_func_end hm_teleport_run_dp02scr - - thumb_func_start FldEff_UseTeleport -FldEff_UseTeleport: @ 80F6750 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F6778 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080F677C @ =sub_80F6780 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080F6778: .4byte gTasks -_080F677C: .4byte sub_80F6780 - thumb_func_end FldEff_UseTeleport - - thumb_func_start sub_80F6780 -sub_80F6780: @ 80F6780 - push {lr} - movs r0, 0x3F - bl FieldEffectActiveListRemove - bl sub_8085B64 - pop {r0} - bx r0 - thumb_func_end sub_80F6780 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/flying.s b/asm/flying.s new file mode 100644 index 000000000..ada0296c8 --- /dev/null +++ b/asm/flying.s @@ -0,0 +1,2945 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B18A0 +sub_80B18A0: @ 80B18A0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0xB + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x30 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B18DC + adds r0, r4, 0 + bl DestroyAnimSprite +_080B18DC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B18A0 + + thumb_func_start sub_80B18E4 +sub_80B18E4: @ 80B18E4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075114 + ldrh r0, [r4, 0x22] + adds r0, 0x14 + strh r0, [r4, 0x22] + movs r0, 0xBF + strh r0, [r4, 0x30] + ldr r1, _080B1908 @ =sub_80B190C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1908: .4byte sub_80B190C + thumb_func_end sub_80B18E4 + + thumb_func_start sub_80B190C +sub_80B190C: @ 80B190C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x47 + bne _080B1946 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B1946: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B190C + + thumb_func_start sub_80B194C +sub_80B194C: @ 80B194C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B197C @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r1, _080B1980 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x8] + ldrh r0, [r1] + strh r0, [r4, 0xA] + ldr r0, _080B1984 @ =0x00002719 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xC] + ldr r0, _080B1988 @ =sub_80B198C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B197C: .4byte gTasks +_080B1980: .4byte gBattleAnimArgs +_080B1984: .4byte 0x00002719 +_080B1988: .4byte sub_80B198C + thumb_func_end sub_80B194C + + thumb_func_start sub_80B198C +sub_80B198C: @ 80B198C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080B1A0C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r1, r0, 0x1 + strh r1, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r4, 0xA + ldrsh r1, [r3, r4] + adds r7, r2, 0 + cmp r0, r1 + bne _080B19EA + movs r0, 0 + strh r0, [r3, 0x1C] + ldrb r0, [r3, 0xC] + ldr r2, _080B1A10 @ =gPlttBufferFaded + lsls r0, 4 + movs r3, 0x84 + lsls r3, 1 + adds r1, r0, r3 + lsls r1, 1 + adds r1, r2 + ldrh r6, [r1] + movs r4, 0x7 + mov r12, r0 + ldr r0, _080B1A14 @ =0x00000107 + add r0, r12 + lsls r0, 1 + adds r3, r0, r2 +_080B19D2: + ldrh r0, [r3] + strh r0, [r1] + subs r3, 0x2 + subs r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bgt _080B19D2 + ldr r0, _080B1A18 @ =0x00000101 + add r0, r12 + lsls r0, 1 + adds r0, r2 + strh r6, [r0] +_080B19EA: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r7 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bne _080B1A04 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B1A04: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1A0C: .4byte gTasks +_080B1A10: .4byte gPlttBufferFaded +_080B1A14: .4byte 0x00000107 +_080B1A18: .4byte 0x00000101 + thumb_func_end sub_80B198C + + thumb_func_start sub_80B1A1C +sub_80B1A1C: @ 80B1A1C + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080B1A88 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B1A3C + ldr r1, _080B1A8C @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080B1A3C: + ldr r4, _080B1A8C @ =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldr r5, _080B1A90 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080B1A94 @ =sub_8074F50 + str r0, [r6, 0x1C] + ldr r1, _080B1A98 @ =sub_80B1A9C + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1A88: .4byte gBattleAnimAttacker +_080B1A8C: .4byte gBattleAnimArgs +_080B1A90: .4byte gBattleAnimTarget +_080B1A94: .4byte sub_8074F50 +_080B1A98: .4byte sub_80B1A9C + thumb_func_end sub_80B1A1C + + thumb_func_start sub_80B1A9C +sub_80B1A9C: @ 80B1A9C + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080B1AB0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B1AB0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B1A9C + + thumb_func_start sub_80B1AB8 +sub_80B1AB8: @ 80B1AB8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B1B54 @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B1AE4 + ldr r1, _080B1B58 @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080B1AE4: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B1AFC + ldr r0, _080B1B58 @ =gBattleAnimArgs + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0x6] + negs r1, r1 + strh r1, [r0, 0x6] +_080B1AFC: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + ldr r2, _080B1B58 @ =gBattleAnimArgs + ldrh r1, [r2] + ldrh r3, [r5, 0x20] + adds r1, r3 + strh r1, [r5, 0x20] + lsrs r0, 24 + ldrh r1, [r2, 0x2] + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r0, [r2, 0x8] + strh r0, [r5, 0x2E] + movs r3, 0xC + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080B1B60 + ldr r4, _080B1B5C @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080B1B72 + .align 2, 0 +_080B1B54: .4byte gBattleAnimAttacker +_080B1B58: .4byte gBattleAnimArgs +_080B1B5C: .4byte gBattleAnimTarget +_080B1B60: + ldr r0, _080B1BA0 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_8076D9C +_080B1B72: + ldr r4, _080B1BA4 @ =gBattleAnimArgs + ldrh r0, [r4, 0x4] + ldrh r1, [r5, 0x32] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x6] + ldrh r3, [r5, 0x36] + adds r0, r3 + strh r0, [r5, 0x36] + ldr r0, _080B1BA8 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080B1BAC @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldrb r1, [r4, 0xA] + adds r0, r5, 0 + bl SeekSpriteAnim + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1BA0: .4byte gBattleAnimTarget +_080B1BA4: .4byte gBattleAnimArgs +_080B1BA8: .4byte sub_8075590 +_080B1BAC: .4byte DestroyAnimSprite + thumb_func_end sub_80B1AB8 + + thumb_func_start sub_80B1BB0 +sub_80B1BB0: @ 80B1BB0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080B1BEC @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080B1BF0 @ =sub_80B1BF8 + str r0, [r4, 0x1C] + movs r0, 0 + bl GetAnimBankSpriteId + ldr r2, _080B1BF4 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1BEC: .4byte gBattleAnimArgs +_080B1BF0: .4byte sub_80B1BF8 +_080B1BF4: .4byte gSprites + thumb_func_end sub_80B1BB0 + + thumb_func_start sub_80B1BF8 +sub_80B1BF8: @ 80B1BF8 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080B1C0C + subs r0, r1, 0x1 + strh r0, [r2, 0x2E] + b _080B1C1E +_080B1C0C: + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + subs r1, r0 + strh r1, [r2, 0x26] +_080B1C1E: + movs r3, 0x22 + ldrsh r0, [r2, r3] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080B1C36 + adds r0, r2, 0 + bl DestroyAnimSprite +_080B1C36: + pop {r0} + bx r0 + thumb_func_end sub_80B1BF8 + + thumb_func_start sub_80B1C3C +sub_80B1C3C: @ 80B1C3C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B1C64 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B1C6C + movs r0, 0x88 + lsls r0, 1 + strh r0, [r5, 0x20] + ldr r0, _080B1C68 @ =0x0000ffe0 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080B1C72 + .align 2, 0 +_080B1C64: .4byte gBattleAnimAttacker +_080B1C68: .4byte 0x0000ffe0 +_080B1C6C: + ldr r0, _080B1CB0 @ =0x0000ffe0 + strh r0, [r5, 0x20] + strh r0, [r5, 0x22] +_080B1C72: + ldr r0, _080B1CB4 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080B1CB8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080B1CBC @ =sub_80B1CC0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1CB0: .4byte 0x0000ffe0 +_080B1CB4: .4byte gBattleAnimArgs +_080B1CB8: .4byte gBattleAnimTarget +_080B1CBC: .4byte sub_80B1CC0 + thumb_func_end sub_80B1C3C + + thumb_func_start sub_80B1CC0 +sub_80B1CC0: @ 80B1CC0 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_80755E0 + ldrh r1, [r4, 0x34] + lsrs r0, r1, 8 + cmp r0, 0xC8 + bls _080B1CE8 + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0x24] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] +_080B1CE8: + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x20 + movs r1, 0x98 + lsls r1, 1 + cmp r0, r1 + bhi _080B1D0A + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + cmp r0, 0xA0 + ble _080B1D30 +_080B1D0A: + movs r0, 0 + bl GetAnimBankSpriteId + ldr r2, _080B1D38 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyAnimSprite +_080B1D30: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1D38: .4byte gSprites + thumb_func_end sub_80B1CC0 + + thumb_func_start sub_80B1D3C +sub_80B1D3C: @ 80B1D3C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080B1D7C + ldrb r0, [r4, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B1D6E + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] +_080B1D6E: + adds r0, r4, 0 + bl DestroySprite + ldr r1, _080B1D84 @ =gUnknown_2037EE2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080B1D7C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1D84: .4byte gUnknown_2037EE2 + thumb_func_end sub_80B1D3C + + thumb_func_start sub_80B1D88 +sub_80B1D88: @ 80B1D88 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + adds r5, r7, 0 + adds r5, 0x2E + ldr r0, _080B1DA8 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080B1DB0 + ldr r0, _080B1DAC @ =gBattleAnimAttacker + b _080B1DB2 + .align 2, 0 +_080B1DA8: .4byte gBattleAnimArgs +_080B1DAC: .4byte gBattleAnimAttacker +_080B1DB0: + ldr r0, _080B1E5C @ =gBattleAnimTarget +_080B1DB2: + ldrb r6, [r0] + adds r0, r6, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B1DC8 + ldr r1, _080B1E60 @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080B1DC8: + adds r0, r6, 0 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080B1E60 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r7, 0x20] + adds r0, r6, 0 + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + ldrh r1, [r4, 0x2] + lsrs r0, 24 + adds r1, r0, r1 + strh r1, [r7, 0x22] + lsls r1, 8 + strh r1, [r5, 0x8] + ldrh r1, [r4, 0xC] + adds r0, r1 + lsls r0, 1 + ldrh r2, [r5, 0xE] + movs r1, 0x1 + ands r1, r2 + orrs r1, r0 + strh r1, [r5, 0xE] + ldrb r0, [r5] + movs r2, 0x4 + mov r8, r2 + mov r1, r8 + orrs r0, r1 + strb r0, [r5] + ldrh r0, [r4, 0x4] + ldrb r1, [r4, 0x4] + strh r1, [r5, 0x2] + lsls r0, 16 + lsrs r0, 24 + strh r0, [r5, 0xA] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x4] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x6] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0xC] + subs r1, 0x40 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0x7F + bhi _080B1EBE + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B1E64 + adds r0, r6, 0 + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r7, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r7, 0x5] + b _080B1E7C + .align 2, 0 +_080B1E5C: .4byte gBattleAnimTarget +_080B1E60: .4byte gBattleAnimArgs +_080B1E64: + adds r0, r6, 0 + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, 0x5] +_080B1E7C: + ldrb r1, [r5, 0xE] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r1 + strb r0, [r5, 0xE] + movs r2, 0x4 + ldrsh r0, [r5, r2] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + bne _080B1F1E + adds r3, r7, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r0, r2, 31 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r7, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + b _080B1F16 +_080B1EBE: + adds r0, r6, 0 + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, 0x5] + ldrb r0, [r5, 0xE] + movs r4, 0x1 + orrs r0, r4 + strb r0, [r5, 0xE] + movs r1, 0x4 + ldrsh r0, [r5, r1] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080B1F1E + adds r3, r7, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + ands r1, r4 + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r7, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + mov r2, r8 + orrs r0, r2 +_080B1F16: + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] +_080B1F1E: + ldrh r1, [r5, 0x2] + lsrs r1, 6 + lsls r1, 4 + ldrb r2, [r5] + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldr r3, _080B1F88 @ =gSineTable + ldrh r0, [r5, 0x2] + lsls r0, 1 + adds r0, r3 + movs r2, 0 + ldrsh r1, [r0, r2] + ldrb r0, [r5, 0xC] + muls r0, r1 + asrs r0, 8 + strh r0, [r7, 0x24] + ldrb r2, [r7, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r1, 0x24 + ldrsh r0, [r7, r1] + negs r0, r0 + asrs r0, 1 + ldrb r5, [r5, 0xA] + adds r0, r5 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r3 + ldrh r4, [r1] + ldr r1, _080B1F8C @ =gOamMatrices + lsls r2, 3 + adds r2, r1 + adds r0, 0x40 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2, 0x6] + strh r0, [r2] + strh r4, [r2, 0x2] + lsls r0, r4, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + ldr r0, _080B1F90 @ =sub_80B1F94 + str r0, [r7, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1F88: .4byte gSineTable +_080B1F8C: .4byte gOamMatrices +_080B1F90: .4byte sub_80B1F94 + thumb_func_end sub_80B1D88 + + thumb_func_start sub_80B1F94 +sub_80B1F94: @ 80B1F94 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r6, 0 + adds r4, r5, 0 + adds r4, 0x2E + ldrb r2, [r4] + movs r7, 0x1 + movs r0, 0x1 + mov r9, r0 + ands r0, r2 + cmp r0, 0 + beq _080B1FCE + ldrb r0, [r4, 0x1] + adds r1, r0, 0 + adds r1, 0xFF + strb r1, [r4, 0x1] + lsls r0, 24 + cmp r0, 0 + beq _080B1FC2 + b _080B24AA +_080B1FC2: + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080B24AA +_080B1FCE: + ldrh r0, [r4, 0x2] + lsrs r1, r0, 6 + mov r12, r0 + cmp r1, 0x1 + bne _080B1FDA + b _080B20FE +_080B1FDA: + cmp r1, 0x1 + bgt _080B1FE4 + cmp r1, 0 + beq _080B1FF2 + b _080B23F0 +_080B1FE4: + cmp r1, 0x2 + bne _080B1FEA + b _080B21F2 +_080B1FEA: + cmp r1, 0x3 + bne _080B1FF0 + b _080B22E6 +_080B1FF0: + b _080B23F0 +_080B1FF2: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x1 + bne _080B2006 + movs r0, 0x8 + orrs r0, r2 + orrs r0, r7 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080B20F4 +_080B2006: + lsrs r0, r1, 28 + cmp r0, 0x3 + bne _080B2028 + lsls r0, r2, 30 + lsrs r0, 31 + movs r1, 0x1 + eors r0, r1 + ands r0, r7 + lsls r0, 1 + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + orrs r1, r7 + strb r1, [r4] + strb r6, [r4, 0x1] + b _080B20F4 +_080B2028: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080B20F4 + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r6, 0x1 + eors r1, r6 + ands r1, r7 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B20E6 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B20B6 + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B209C + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B20D4 +_080B209C: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B20D4 +_080B20B6: + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B20CA + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + b _080B20D2 +_080B20CA: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC +_080B20D2: + strb r0, [r1] +_080B20D4: + ldrb r2, [r4, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0xE] +_080B20E6: + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, 0x2] + mov r12, r1 +_080B20F4: + ldrb r1, [r4] + movs r0, 0xF + ands r0, r1 + strb r0, [r4] + b _080B23F0 +_080B20FE: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0 + bne _080B210C + movs r0, 0x8 + orrs r0, r2 + b _080B2114 +_080B210C: + lsrs r0, r1, 28 + cmp r0, 0x2 + bne _080B211C + adds r0, r2, 0 +_080B2114: + orrs r0, r7 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080B21E8 +_080B211C: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080B21E8 + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r6, 0x1 + eors r1, r6 + ands r1, r7 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B21DA + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B21AA + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B2190 + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B21C8 +_080B2190: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B21C8 +_080B21AA: + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B21BE + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + b _080B21C6 +_080B21BE: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC +_080B21C6: + strb r0, [r1] +_080B21C8: + ldrb r2, [r4, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0xE] +_080B21DA: + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, 0x2] + mov r12, r1 +_080B21E8: + ldrb r0, [r4] + movs r1, 0xF + ands r1, r0 + movs r0, 0x10 + b _080B23EC +_080B21F2: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x3 + bne _080B2200 + movs r0, 0x8 + orrs r0, r2 + b _080B2208 +_080B2200: + lsrs r0, r1, 28 + cmp r0, 0x1 + bne _080B2210 + adds r0, r2, 0 +_080B2208: + orrs r0, r7 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080B22DC +_080B2210: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080B22DC + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r6, 0x1 + eors r1, r6 + ands r1, r7 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B22CE + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B229E + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B2284 + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B22BC +_080B2284: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B22BC +_080B229E: + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B22B2 + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + b _080B22BA +_080B22B2: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC +_080B22BA: + strb r0, [r1] +_080B22BC: + ldrb r2, [r4, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0xE] +_080B22CE: + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, 0x2] + mov r12, r1 +_080B22DC: + ldrb r0, [r4] + movs r1, 0xF + ands r1, r0 + movs r0, 0x20 + b _080B23EC +_080B22E6: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x2 + bne _080B22F6 + movs r0, 0x8 + orrs r0, r2 + strb r0, [r4] + b _080B23E4 +_080B22F6: + lsrs r0, r1, 28 + cmp r0, 0 + bne _080B2318 + lsls r0, r2, 30 + lsrs r0, 31 + movs r1, 0x1 + eors r0, r1 + ands r0, r7 + lsls r0, 1 + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + orrs r1, r7 + strb r1, [r4] + strb r6, [r4, 0x1] + b _080B23E4 +_080B2318: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080B23E4 + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r6, 0x1 + eors r1, r6 + ands r1, r7 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B23D6 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B23A6 + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B238C + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B23C4 +_080B238C: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B23C4 +_080B23A6: + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B23BA + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + b _080B23C2 +_080B23BA: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC +_080B23C2: + strb r0, [r1] +_080B23C4: + ldrb r2, [r4, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0xE] +_080B23D6: + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, 0x2] + mov r12, r1 +_080B23E4: + ldrb r0, [r4] + movs r1, 0xF + ands r1, r0 + movs r0, 0x30 +_080B23EC: + orrs r1, r0 + strb r1, [r4] +_080B23F0: + ldrb r1, [r4] + lsls r1, 30 + lsrs r1, 31 + adds r0, r4, 0 + adds r0, 0xC + adds r0, r1 + ldrb r1, [r0] + ldr r3, _080B2478 @ =gSineTable + mov r2, r12 + lsls r0, r2, 1 + adds r0, r3 + movs r2, 0 + ldrsh r0, [r0, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x24] + ldrb r2, [r5, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r1, 0x24 + ldrsh r0, [r5, r1] + negs r0, r0 + asrs r0, 1 + ldrb r1, [r4, 0xA] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r3 + ldrh r6, [r1] + ldr r1, _080B247C @ =gOamMatrices + lsls r2, 3 + adds r2, r1 + adds r0, 0x40 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2, 0x6] + strh r0, [r2] + strh r6, [r2, 0x2] + lsls r0, r6, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + ldrh r0, [r4, 0x6] + ldrh r2, [r4, 0x8] + adds r0, r2 + strh r0, [r4, 0x8] + lsls r0, 16 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r1, 0x4 + ldrsh r0, [r4, r1] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080B2480 + ldrh r0, [r4, 0x4] + subs r1, 0x1 + ands r1, r0 + ldrh r0, [r4, 0x2] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2] + b _080B2490 + .align 2, 0 +_080B2478: .4byte gSineTable +_080B247C: .4byte gOamMatrices +_080B2480: + ldrh r0, [r4, 0x4] + ldr r1, _080B24B8 @ =0x00007fff + ands r1, r0 + ldrh r2, [r4, 0x2] + adds r1, r2 + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0x2] +_080B2490: + movs r0, 0x22 + ldrsh r1, [r5, r0] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + ldrh r0, [r4, 0xE] + lsrs r0, 1 + cmp r1, r0 + blt _080B24AA + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080B24BC @ =sub_80B1D3C + str r0, [r5, 0x1C] +_080B24AA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B24B8: .4byte 0x00007fff +_080B24BC: .4byte sub_80B1D3C + thumb_func_end sub_80B1F94 + + thumb_func_start sub_80B24C0 +sub_80B24C0: @ 80B24C0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, _080B2508 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + ldr r5, _080B250C @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r0, _080B2510 @ =sub_8075DF4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2508: .4byte gBattleAnimTarget +_080B250C: .4byte gBattleAnimAttacker +_080B2510: .4byte sub_8075DF4 + thumb_func_end sub_80B24C0 + + thumb_func_start sub_80B2514 +sub_80B2514: @ 80B2514 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r5, _080B2554 @ =gBattleAnimArgs + ldrh r0, [r5] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x34] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B25C4 + ldr r0, _080B2558 @ =gUnknown_2023BD6 + ldr r1, _080B255C @ =gBattleAnimTarget + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B2560 + adds r0, r2, 0 + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + b _080B256E + .align 2, 0 +_080B2554: .4byte gBattleAnimArgs +_080B2558: .4byte gUnknown_2023BD6 +_080B255C: .4byte gBattleAnimTarget +_080B2560: + adds r0, r2, 0 + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x28 +_080B256E: + strh r0, [r4, 0x3C] + ldr r0, _080B259C @ =gBattleAnimArgs + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080B25A4 + ldr r0, _080B25A0 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080B25D8 + .align 2, 0 +_080B259C: .4byte gBattleAnimArgs +_080B25A0: .4byte gBattleAnimTarget +_080B25A4: + ldr r0, _080B25C0 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080B25D8 + .align 2, 0 +_080B25C0: .4byte gBattleAnimTarget +_080B25C4: + ldr r0, _080B267C @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + strh r0, [r4, 0x3C] +_080B25D8: + ldr r5, _080B2680 @ =gSineTable + ldrh r3, [r4, 0x30] + movs r1, 0xFF + ands r1, r3 + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + movs r2, 0 + strh r0, [r4, 0x36] + adds r1, 0x40 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r4, 0x38] + strh r2, [r4, 0x3A] + strh r2, [r4, 0x26] + strh r2, [r4, 0x24] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r6, r0, 27 + lsls r3, 16 + lsrs r3, 24 + strh r3, [r4, 0x30] + bl Random + lsls r0, 16 + asrs r7, r0, 16 + movs r0, 0x80 + lsls r0, 8 + ands r0, r7 + cmp r0, 0 + beq _080B2622 + ldrh r1, [r4, 0x30] + movs r0, 0xFF + subs r0, r1 + strh r0, [r4, 0x30] +_080B2622: + movs r0, 0x30 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + ldr r3, _080B2684 @ =gOamMatrices + lsls r2, r6, 3 + adds r2, r3 + adds r1, 0x40 + lsls r1, 1 + adds r1, r5 + ldrh r1, [r1] + strh r1, [r2, 0x6] + strh r1, [r2] + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + adds r3, r4, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + movs r0, 0x1 + ands r0, r7 + cmp r0, 0 + beq _080B2672 + adds r2, r4, 0 + adds r2, 0x2A + movs r1, 0x1 + movs r0, 0x1 + strb r0, [r2] + ldrb r0, [r3] + orrs r0, r1 + strb r0, [r3] +_080B2672: + ldr r0, _080B2688 @ =sub_80B268C + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B267C: .4byte gBattleAnimTarget +_080B2680: .4byte gSineTable +_080B2684: .4byte gOamMatrices +_080B2688: .4byte sub_80B268C + thumb_func_end sub_80B2514 + + thumb_func_start sub_80B268C +sub_80B268C: @ 80B268C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r4, 0 + adds r5, 0x2E + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + movs r1, 0 + mov r8, r1 + movs r7, 0 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080B2770 + movs r2, 0x36 + ldrsh r1, [r4, r2] + movs r2, 0x3A + ldrsh r0, [r4, r2] + muls r0, r1 + asrs r6, r0, 8 + strh r6, [r4, 0x24] + movs r0, 0x38 + ldrsh r1, [r4, r0] + movs r2, 0x3A + ldrsh r0, [r4, r2] + muls r0, r1 + asrs r3, r0, 8 + strh r3, [r4, 0x26] + ldrh r2, [r4, 0x34] + movs r1, 0xFF + adds r0, r1, 0 + ands r0, r2 + ldrh r2, [r4, 0x3A] + adds r0, r2 + strh r0, [r4, 0x3A] + ldrh r2, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + ands r1, r2 + cmp r0, r1 + blt _080B2770 + ldrh r0, [r4, 0x20] + adds r0, r6 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + strh r7, [r4, 0x24] + strh r7, [r4, 0x26] + mov r0, sp + adds r1, r5, 0 + movs r2, 0x10 + bl memcpy + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x10 + bl memset + ldrh r0, [r4, 0x22] + lsls r0, 8 + strh r0, [r5, 0x8] + mov r0, sp + ldrh r0, [r0, 0x6] + lsrs r1, r0, 8 + strh r1, [r5, 0x6] + strh r7, [r5, 0x2] + mov r0, sp + ldrh r0, [r0, 0x2] + strh r0, [r5, 0xA] + adds r0, r4, 0 + adds r0, 0x2A + ldrb r0, [r0] + cmp r0, 0 + beq _080B2740 + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + beq _080B2738 + ldr r0, _080B2734 @ =0x00008001 + b _080B274E + .align 2, 0 +_080B2734: .4byte 0x00008001 +_080B2738: + ldr r0, _080B273C @ =0x00008002 + b _080B274E + .align 2, 0 +_080B273C: .4byte 0x00008002 +_080B2740: + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + beq _080B274C + movs r0, 0x1 + b _080B274E +_080B274C: + movs r0, 0x2 +_080B274E: + strh r0, [r5, 0x4] + mov r0, sp + ldrh r0, [r0, 0x4] + lsrs r0, 8 + strb r0, [r5, 0xC] + subs r0, 0x2 + strb r0, [r5, 0xD] + mov r0, sp + ldrh r1, [r0, 0xE] + lsls r1, 1 + ldrh r2, [r5, 0xE] + movs r0, 0x1 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0xE] + ldr r0, _080B277C @ =sub_80B1F94 + str r0, [r4, 0x1C] +_080B2770: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B277C: .4byte sub_80B1F94 + thumb_func_end sub_80B268C + + thumb_func_start sub_80B2780 +sub_80B2780: @ 80B2780 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B2798 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B279C + adds r0, r5, 0 + movs r1, 0 + bl sub_8075160 + b _080B27A4 + .align 2, 0 +_080B2798: .4byte gBattleAnimArgs +_080B279C: + adds r0, r5, 0 + movs r1, 0 + bl sub_8075114 +_080B27A4: + ldr r4, _080B280C @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B27BC + ldr r0, _080B2810 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B27D2 +_080B27BC: + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080B27D8 + ldr r0, _080B2814 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B27D8 +_080B27D2: + ldrh r0, [r5, 0x20] + adds r0, 0x8 + strh r0, [r5, 0x20] +_080B27D8: + ldr r4, _080B280C @ =gBattleAnimArgs + ldrb r1, [r4, 0x8] + adds r0, r5, 0 + bl SeekSpriteAnim + ldrh r0, [r5, 0x20] + subs r0, 0x20 + strh r0, [r5, 0x20] + ldr r0, _080B2818 @ =0x00000ccc + strh r0, [r5, 0x30] + ldrh r1, [r4, 0x8] + movs r0, 0xC + adds r2, r0, 0 + muls r2, r1 + adds r0, r2, 0 + ldrh r2, [r5, 0x24] + adds r0, r2 + strh r0, [r5, 0x24] + strh r1, [r5, 0x2E] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x3C] + ldr r0, _080B281C @ =sub_80B2820 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B280C: .4byte gBattleAnimArgs +_080B2810: .4byte gBattleAnimAttacker +_080B2814: .4byte gBattleAnimTarget +_080B2818: .4byte 0x00000ccc +_080B281C: .4byte sub_80B2820 + thumb_func_end sub_80B2780 + + thumb_func_start sub_80B2820 +sub_80B2820: @ 80B2820 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x24] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080B284A + strh r1, [r4, 0x2E] + strh r1, [r4, 0x24] + adds r0, r4, 0 + bl StartSpriteAnim +_080B284A: + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B2862 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B2862: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B2820 + + thumb_func_start sub_80B2868 +sub_80B2868: @ 80B2868 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080B2900 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r7, r0, r1 + ldrh r0, [r7, 0x8] + movs r1, 0x1F + ands r0, r1 + cmp r0, 0 + bne _080B28E2 + ldr r1, _080B2904 @ =gUnknown_2037EE2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r1, 0x8 + ldrsh r0, [r7, r1] + movs r5, 0xD + negs r5, r5 + adds r1, r5, 0 + bl Sin + ldr r4, _080B2908 @ =gBattleAnimArgs + strh r0, [r4] + movs r1, 0x8 + ldrsh r0, [r7, r1] + adds r1, r5, 0 + bl Cos + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r4, 0x4] + movs r0, 0x3 + strh r0, [r4, 0x6] + ldr r0, _080B290C @ =gUnknown_83E7C98 + mov r8, r0 + ldr r5, _080B2910 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + mov r0, r8 + adds r1, r4, 0 + movs r3, 0x3 + bl CreateSpriteAndAnimate +_080B28E2: + ldrh r0, [r7, 0x8] + adds r0, 0x8 + strh r0, [r7, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080B28F6 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080B28F6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2900: .4byte gTasks +_080B2904: .4byte gUnknown_2037EE2 +_080B2908: .4byte gBattleAnimArgs +_080B290C: .4byte gUnknown_83E7C98 +_080B2910: .4byte gBattleAnimTarget + thumb_func_end sub_80B2868 + + thumb_func_start sub_80B2914 +sub_80B2914: @ 80B2914 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B2926 + cmp r0, 0x1 + beq _080B2958 + b _080B296C +_080B2926: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075160 + movs r0, 0 + bl GetAnimBankSpriteId + ldr r2, _080B2954 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B296C + .align 2, 0 +_080B2954: .4byte gSprites +_080B2958: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B296C + adds r0, r4, 0 + bl DestroyAnimSprite +_080B296C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B2914 + + thumb_func_start sub_80B2974 +sub_80B2974: @ 80B2974 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B29AC + cmp r0, 0x1 + bgt _080B298A + cmp r0, 0 + beq _080B2990 + b _080B29FE +_080B298A: + cmp r0, 0x2 + beq _080B29C0 + b _080B29FE +_080B2990: + ldr r0, _080B29A8 @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + negs r0, r0 + subs r0, 0x20 + strh r0, [r4, 0x26] + b _080B29B8 + .align 2, 0 +_080B29A8: .4byte gBattleAnimTarget +_080B29AC: + ldrh r0, [r4, 0x26] + adds r0, 0xA + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + blt _080B29FE +_080B29B8: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B29FE +_080B29C0: + ldrh r0, [r4, 0x26] + subs r0, 0xA + strh r0, [r4, 0x26] + movs r2, 0x22 + ldrsh r0, [r4, r2] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080B29FE + movs r0, 0 + bl GetAnimBankSpriteId + ldr r2, _080B2A04 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyAnimSprite +_080B29FE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2A04: .4byte gSprites + thumb_func_end sub_80B2974 + + thumb_func_start sub_80B2A08 +sub_80B2A08: @ 80B2A08 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080B2A44 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080B2A48 @ =sub_80B2A50 + str r0, [r4, 0x1C] + movs r0, 0 + bl GetAnimBankSpriteId + ldr r2, _080B2A4C @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2A44: .4byte gBattleAnimArgs +_080B2A48: .4byte sub_80B2A50 +_080B2A4C: .4byte gSprites + thumb_func_end sub_80B2A08 + + thumb_func_start sub_80B2A50 +sub_80B2A50: @ 80B2A50 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080B2A64 + subs r0, r1, 0x1 + strh r0, [r2, 0x2E] + b _080B2AA8 +_080B2A64: + movs r1, 0x22 + ldrsh r0, [r2, r1] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + ble _080B2A8A + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + subs r1, r0 + strh r1, [r2, 0x26] + b _080B2AA8 +_080B2A8A: + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, 0x34] + adds r1, r0, 0x1 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080B2AA8 + ldr r0, _080B2AAC @ =sub_80B2AB0 + str r0, [r2, 0x1C] +_080B2AA8: + pop {r0} + bx r0 + .align 2, 0 +_080B2AAC: .4byte sub_80B2AB0 + thumb_func_end sub_80B2A50 + + thumb_func_start sub_80B2AB0 +sub_80B2AB0: @ 80B2AB0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + adds r0, r1 + strh r0, [r2, 0x26] + movs r3, 0x22 + ldrsh r0, [r2, r3] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + ble _080B2AE0 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_080B2AE0: + movs r1, 0x26 + ldrsh r0, [r2, r1] + cmp r0, 0 + ble _080B2AEE + adds r0, r2, 0 + bl DestroyAnimSprite +_080B2AEE: + pop {r0} + bx r0 + thumb_func_end sub_80B2AB0 + + thumb_func_start sub_80B2AF4 +sub_80B2AF4: @ 80B2AF4 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080B2B08 + cmp r0, 0x1 + beq _080B2B60 + b _080B2BCC +_080B2B08: + ldr r0, _080B2B18 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080B2B20 + ldr r4, _080B2B1C @ =gBattleAnimAttacker + b _080B2B22 + .align 2, 0 +_080B2B18: .4byte gBattleAnimArgs +_080B2B1C: .4byte gBattleAnimAttacker +_080B2B20: + ldr r4, _080B2B5C @ =gBattleAnimTarget +_080B2B22: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0 + movs r3, 0x80 + lsls r3, 2 + strh r3, [r5, 0x30] + movs r2, 0x80 + lsls r2, 1 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + bl sub_8075A1C + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080B2BCC + .align 2, 0 +_080B2B5C: .4byte gBattleAnimTarget +_080B2B60: + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0xB + bgt _080B2B6E + ldrh r0, [r5, 0x30] + subs r0, 0x28 + b _080B2B72 +_080B2B6E: + ldrh r0, [r5, 0x30] + adds r0, 0x28 +_080B2B72: + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0x32] + movs r2, 0x80 + lsls r2, 1 + movs r0, 0x30 + ldrsh r3, [r5, r0] + str r1, [sp] + adds r0, r5, 0 + bl sub_8075A1C + ldrb r1, [r5, 0x3] + lsls r1, 26 + lsrs r1, 27 + movs r0, 0xF4 + lsls r0, 6 + ldr r2, _080B2BD4 @ =gOamMatrices + lsls r1, 3 + adds r1, r2 + movs r2, 0x6 + ldrsh r1, [r1, r2] + bl __divsi3 + adds r1, r0, 0x1 + cmp r1, 0x80 + ble _080B2BAC + movs r1, 0x80 +_080B2BAC: + movs r0, 0x40 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r1, r0, 1 + strh r1, [r5, 0x26] + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0x18 + bne _080B2BCC + adds r0, r5, 0 + bl sub_8075AD8 + adds r0, r5, 0 + bl DestroyAnimSprite +_080B2BCC: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2BD4: .4byte gOamMatrices + thumb_func_end sub_80B2AF4 + + thumb_func_start sub_80B2BD8 +sub_80B2BD8: @ 80B2BD8 + push {r4,r5,lr} + adds r5, r0, 0 + bl Random + ldr r4, _080B2BFC @ =0x000001ff + ands r4, r0 + bl Random + movs r1, 0x7F + ands r1, r0 + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080B2C00 + movs r2, 0xB8 + lsls r2, 2 + adds r0, r4, r2 + b _080B2C08 + .align 2, 0 +_080B2BFC: .4byte 0x000001ff +_080B2C00: + movs r2, 0xB8 + lsls r2, 2 + adds r0, r2, 0 + subs r0, r4 +_080B2C08: + strh r0, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B2C1C + movs r2, 0xE0 + lsls r2, 2 + adds r0, r2, 0 + adds r0, r1, r0 + b _080B2C24 +_080B2C1C: + movs r2, 0xE0 + lsls r2, 2 + adds r0, r2, 0 + subs r0, r1 +_080B2C24: + strh r0, [r5, 0x30] + ldr r2, _080B2C4C @ =gBattleAnimArgs + ldrh r0, [r2] + strh r0, [r5, 0x32] + lsls r0, 16 + cmp r0, 0 + beq _080B2C40 + ldrb r0, [r5, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r5, 0x3] +_080B2C40: + movs r1, 0x2 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080B2C54 + ldr r4, _080B2C50 @ =gBattleAnimAttacker + b _080B2C56 + .align 2, 0 +_080B2C4C: .4byte gBattleAnimArgs +_080B2C50: .4byte gBattleAnimAttacker +_080B2C54: + ldr r4, _080B2C80 @ =gBattleAnimTarget +_080B2C56: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r5, 0x22] + ldr r0, _080B2C84 @ =sub_80B2C88 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2C80: .4byte gBattleAnimTarget +_080B2C84: .4byte sub_80B2C88 + thumb_func_end sub_80B2BD8 + + thumb_func_start sub_80B2C88 +sub_80B2C88: @ 80B2C88 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B2CA0 + ldrh r3, [r4, 0x2E] + lsls r0, r3, 16 + asrs r0, 24 + ldrh r1, [r4, 0x24] + adds r0, r1 + b _080B2CAA +_080B2CA0: + ldrh r3, [r4, 0x2E] + lsls r1, r3, 16 + asrs r1, 24 + ldrh r0, [r4, 0x24] + subs r0, r1 +_080B2CAA: + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x30] + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r4, 0x26] + subs r0, r1 + strh r0, [r4, 0x26] + strh r3, [r4, 0x2E] + adds r0, r2, 0 + subs r0, 0x20 + strh r0, [r4, 0x30] + lsls r0, r3, 16 + cmp r0, 0 + bge _080B2CCA + movs r0, 0 + strh r0, [r4, 0x2E] +_080B2CCA: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080B2CDE + adds r0, r4, 0 + bl DestroyAnimSprite +_080B2CDE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B2C88 + + thumb_func_start sub_80B2CE4 +sub_80B2CE4: @ 80B2CE4 + movs r1, 0 + strh r1, [r0, 0x3A] + movs r1, 0x40 + strh r1, [r0, 0x3C] + ldr r1, _080B2CF4 @ =sub_80B2CF8 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080B2CF4: .4byte sub_80B2CF8 + thumb_func_end sub_80B2CE4 + + thumb_func_start sub_80B2CF8 +sub_80B2CF8: @ 80B2CF8 + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _080B2D0A + cmp r1, 0x1 + beq _080B2D58 + b _080B2D5E +_080B2D0A: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080B2D5E + strh r1, [r3, 0x30] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r2, [r1] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080B2D5E + ldrb r1, [r1] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B2D5E + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080B2D5E +_080B2D58: + adds r0, r3, 0 + bl DestroyAnimSprite +_080B2D5E: + pop {r0} + bx r0 + thumb_func_end sub_80B2CF8 + + thumb_func_start sub_80B2D64 +sub_80B2D64: @ 80B2D64 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + mov r8, r0 + ldrh r4, [r0, 0x20] + ldrh r5, [r0, 0x22] + ldr r6, _080B2E18 @ =gBattleAnimAttacker + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + mov r2, r8 + strh r6, [r2, 0x22] + ldrh r0, [r2, 0x20] + mov r9, r0 + mov r1, r9 + lsls r0, r1, 4 + strh r0, [r2, 0x36] + lsls r0, r6, 4 + strh r0, [r2, 0x38] + lsls r4, 16 + asrs r4, 16 + movs r1, 0x20 + ldrsh r0, [r2, r1] + subs r0, r4, r0 + lsls r0, 4 + movs r1, 0xC + bl __divsi3 + mov r2, r8 + strh r0, [r2, 0x3A] + lsls r5, 16 + asrs r5, 16 + movs r1, 0x22 + ldrsh r0, [r2, r1] + subs r0, r5, r0 + lsls r0, 4 + movs r1, 0xC + bl __divsi3 + mov r2, r8 + strh r0, [r2, 0x3C] + mov r0, r9 + subs r4, r0 + lsls r4, 16 + asrs r4, 16 + subs r5, r6 + lsls r5, 16 + asrs r5, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8075B30 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + mov r0, r8 + movs r1, 0x1 + adds r2, r3, 0 + bl sub_8075A1C + ldr r0, _080B2E1C @ =sub_80B2E20 + mov r2, r8 + str r0, [r2, 0x1C] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B2E18: .4byte gBattleAnimAttacker +_080B2E1C: .4byte sub_80B2E20 + thumb_func_end sub_80B2D64 + + thumb_func_start sub_80B2E20 +sub_80B2E20: @ 80B2E20 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x36] + adds r0, r1 + strh r0, [r2, 0x36] + ldrh r1, [r2, 0x3C] + ldrh r3, [r2, 0x38] + adds r1, r3 + strh r1, [r2, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r3, r1, 20 + strh r3, [r2, 0x22] + adds r0, 0x2D + lsls r0, 16 + movs r1, 0xA5 + lsls r1, 17 + cmp r0, r1 + bhi _080B2E5A + adds r1, r3, 0 + cmp r1, 0x9D + bgt _080B2E5A + movs r0, 0x2D + negs r0, r0 + cmp r1, r0 + bge _080B2E60 +_080B2E5A: + adds r0, r2, 0 + bl move_anim_8074EE0 +_080B2E60: + pop {r0} + bx r0 + thumb_func_end sub_80B2E20 + + thumb_func_start sub_80B2E64 +sub_80B2E64: @ 80B2E64 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080B2E94 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B2E9C + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B2E98 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + b _080B2EBA + .align 2, 0 +_080B2E94: .4byte gBattleAnimArgs +_080B2E98: .4byte gSprites +_080B2E9C: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B2EC8 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 +_080B2EBA: + strb r0, [r1] + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2EC8: .4byte gSprites + thumb_func_end sub_80B2E64 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/ghost.s b/asm/ghost.s new file mode 100644 index 000000000..e3665a210 --- /dev/null +++ b/asm/ghost.s @@ -0,0 +1,4055 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B5268 +sub_80B5268: @ 80B5268 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080B52C4 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080B52C8 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_8075678 + ldr r0, _080B52CC @ =sub_80B52D0 + str r0, [r4, 0x1C] + movs r0, 0x10 + strh r0, [r4, 0x3A] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r4, 0x3A] + movs r0, 0x52 + bl SetGpuReg + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B52C4: .4byte gBattleAnimArgs +_080B52C8: .4byte gBattleAnimTarget +_080B52CC: .4byte sub_80B52D0 + thumb_func_end sub_80B5268 + + thumb_func_start sub_80B52D0 +sub_80B52D0: @ 80B52D0 + push {r4,lr} + adds r4, r0, 0 + bl sub_80B53C0 + adds r0, r4, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080B52F0 + ldr r0, _080B52EC @ =sub_80B5344 + str r0, [r4, 0x1C] + b _080B533A + .align 2, 0 +_080B52EC: .4byte sub_80B5344 +_080B52F0: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080B5328 + cmp r2, 0xC4 + ble _080B533A +_080B5328: + lsls r0, 16 + cmp r0, 0 + ble _080B533A + ldr r0, _080B5340 @ =gUnknown_2037F24 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0xBD + bl PlaySE12WithPanning +_080B533A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5340: .4byte gUnknown_2037F24 + thumb_func_end sub_80B52D0 + + thumb_func_start sub_80B5344 +sub_80B5344: @ 80B5344 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_80755E0 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080B538A + cmp r2, 0xC4 + ble _080B5396 +_080B538A: + lsls r0, 16 + cmp r0, 0 + ble _080B5396 + movs r0, 0xBD + bl PlaySE +_080B5396: + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B53B4 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B53B0 @ =sub_8074F88 + str r0, [r4, 0x1C] + b _080B53BA + .align 2, 0 +_080B53B0: .4byte sub_8074F88 +_080B53B4: + adds r0, r4, 0 + bl sub_80B53C0 +_080B53BA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B5344 + + thumb_func_start sub_80B53C0 +sub_80B53C0: @ 80B53C0 + push {r4,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x3A] + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0xFF + ble _080B53E4 + adds r0, r2, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + ldr r1, _080B53E0 @ =0x010d0000 + cmp r0, r1 + bne _080B544A + movs r0, 0 + b _080B5448 + .align 2, 0 +_080B53E0: .4byte 0x010d0000 +_080B53E4: + ldrh r1, [r4, 0x3C] + adds r3, r1, 0x1 + strh r3, [r4, 0x3C] + movs r0, 0xFF + ands r0, r1 + cmp r0, 0 + bne _080B544A + ldr r1, _080B5408 @ =0xffffff00 + ands r1, r3 + strh r1, [r4, 0x3C] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080B540C + adds r0, r2, 0x1 + b _080B540E + .align 2, 0 +_080B5408: .4byte 0xffffff00 +_080B540C: + subs r0, r2, 0x1 +_080B540E: + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x3A] + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B5430 + cmp r0, 0x10 + bne _080B543C +_080B5430: + ldrh r0, [r4, 0x3C] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + eors r0, r1 + strh r0, [r4, 0x3C] +_080B543C: + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B544A + movs r0, 0x80 + lsls r0, 1 +_080B5448: + strh r0, [r4, 0x3A] +_080B544A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B53C0 + + thumb_func_start sub_80B5450 +sub_80B5450: @ 80B5450 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r1, _080B546C @ =sub_80B5470 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B546C: .4byte sub_80B5470 + thumb_func_end sub_80B5450 + + thumb_func_start sub_80B5470 +sub_80B5470: @ 80B5470 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x82 + bhi _080B54A4 + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x8 + b _080B54AE +_080B54A4: + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 +_080B54AE: + orrs r1, r0 + strb r1, [r4, 0x5] + ldrh r0, [r4, 0x2E] + adds r0, 0x13 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x50 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3D + bne _080B54E0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B54E0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B5470 + + thumb_func_start sub_80B54E8 +sub_80B54E8: @ 80B54E8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0 + bl GetAnimBankSpriteId + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80758E0 + adds r0, r4, 0 + movs r1, 0x80 + movs r2, 0x80 + movs r3, 0 + bl obj_id_set_rotscale + ldr r1, _080B5560 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r1, _080B5564 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0x80 + strh r1, [r0, 0x8] + ldr r1, _080B5568 @ =gBattleAnimArgs + ldrh r1, [r1] + strh r1, [r0, 0xA] + strh r2, [r0, 0xC] + movs r1, 0x10 + strh r1, [r0, 0xE] + ldr r1, _080B556C @ =sub_80B5570 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B5560: .4byte gSprites +_080B5564: .4byte gTasks +_080B5568: .4byte gBattleAnimArgs +_080B556C: .4byte sub_80B5570 + thumb_func_end sub_80B54E8 + + thumb_func_start sub_80B5570 +sub_80B5570: @ 80B5570 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B55C0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080B55B8 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0xC] + adds r1, 0x1 + strh r1, [r4, 0xC] + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x9 + bne _080B55B8 + ldr r0, _080B55C4 @ =sub_80B55C8 + str r0, [r4] +_080B55B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B55C0: .4byte gTasks +_080B55C4: .4byte sub_80B55C8 + thumb_func_end sub_80B5570 + + thumb_func_start sub_80B55C8 +sub_80B55C8: @ 80B55C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080B55EC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080B55F0 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + b _080B5634 + .align 2, 0 +_080B55EC: .4byte gTasks +_080B55F0: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r1, r0, 24 + ldrh r0, [r4, 0x8] + adds r0, 0x8 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + bgt _080B5618 + movs r0, 0x8 + ldrsh r2, [r4, r0] + adds r0, r1, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + b _080B5634 +_080B5618: + adds r0, r1, 0 + bl sub_8075980 + adds r0, r5, 0 + bl DestroyAnimVisualTask + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg +_080B5634: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B55C8 + + thumb_func_start sub_80B563C +sub_80B563C: @ 80B563C + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r5, [r4, 0x20] + ldrh r6, [r4, 0x22] + ldr r0, _080B56D8 @ =gBattleAnimAttacker + mov r8, r0 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + mov r9, r1 + strh r0, [r4, 0x20] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + mov r1, r9 + strh r1, [r4, 0x2E] + ldr r2, _080B56DC @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r4, 0x30] + ldrh r1, [r2, 0x2] + strh r1, [r4, 0x32] + ldrh r1, [r2, 0x4] + strh r1, [r4, 0x34] + ldrh r1, [r4, 0x20] + lsls r1, 4 + strh r1, [r4, 0x36] + lsls r0, 4 + strh r0, [r4, 0x38] + lsls r5, 16 + asrs r5, 16 + movs r1, 0x20 + ldrsh r0, [r4, r1] + subs r5, r0 + lsls r5, 4 + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r1, 1 + adds r0, r5, 0 + str r2, [sp] + bl __divsi3 + strh r0, [r4, 0x3A] + lsls r6, 16 + asrs r6, 16 + movs r1, 0x22 + ldrsh r0, [r4, r1] + subs r6, r0 + lsls r6, 4 + ldr r2, [sp] + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r1, 1 + adds r0, r6, 0 + bl __divsi3 + strh r0, [r4, 0x3C] + ldr r0, _080B56E0 @ =sub_80B56E4 + str r0, [r4, 0x1C] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B56D8: .4byte gBattleAnimAttacker +_080B56DC: .4byte gBattleAnimArgs +_080B56E0: .4byte sub_80B56E4 + thumb_func_end sub_80B563C + + thumb_func_start sub_80B56E4 +sub_80B56E4: @ 80B56E4 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080B572E + cmp r0, 0x1 + bgt _080B56FA + cmp r0, 0 + beq _080B5704 + b _080B57F2 +_080B56FA: + cmp r0, 0x2 + beq _080B5798 + cmp r0, 0x3 + beq _080B57EC + b _080B57F2 +_080B5704: + ldrh r0, [r5, 0x3A] + ldrh r2, [r5, 0x36] + adds r0, r2 + strh r0, [r5, 0x36] + ldrh r1, [r5, 0x3C] + ldrh r2, [r5, 0x38] + adds r1, r2 + strh r1, [r5, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r5, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x30] + subs r0, 0x1 + strh r0, [r5, 0x30] + lsls r0, 16 + cmp r0, 0 + bgt _080B57F2 + b _080B57DE +_080B572E: + ldrh r0, [r5, 0x32] + subs r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + cmp r0, 0 + bgt _080B57F2 + ldr r4, _080B5794 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x30] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x20] + lsls r0, 4 + strh r0, [r5, 0x36] + ldrh r0, [r5, 0x22] + lsls r0, 4 + strh r0, [r5, 0x38] + movs r1, 0x30 + ldrsh r0, [r5, r1] + movs r2, 0x20 + ldrsh r1, [r5, r2] + subs r0, r1 + lsls r0, 4 + movs r2, 0x34 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, 0x3A] + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r2, 0x22 + ldrsh r1, [r5, r2] + subs r0, r1 + lsls r0, 4 + movs r2, 0x34 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, 0x3C] + b _080B57DE + .align 2, 0 +_080B5794: .4byte gBattleAnimTarget +_080B5798: + ldrh r0, [r5, 0x3A] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r1, [r5, 0x3C] + ldrh r2, [r5, 0x38] + adds r1, r2 + strh r1, [r5, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r5, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x34] + subs r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + cmp r0, 0 + bgt _080B57F2 + ldr r4, _080B57E8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] +_080B57DE: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080B57F2 + .align 2, 0 +_080B57E8: .4byte gBattleAnimTarget +_080B57EC: + adds r0, r5, 0 + bl move_anim_8074EE0 +_080B57F2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B56E4 + + thumb_func_start sub_80B57F8 +sub_80B57F8: @ 80B57F8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r0, _080B580C @ =sub_80B5810 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B580C: .4byte sub_80B5810 + thumb_func_end sub_80B57F8 + + thumb_func_start sub_80B5810 +sub_80B5810: @ 80B5810 + push {r4-r6,lr} + adds r3, r0, 0 + movs r5, 0 + movs r6, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B58A6 + adds r1, r3, 0 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x4 + ands r0, r2 + adds r4, r1, 0 + cmp r0, 0 + bne _080B583A + movs r0, 0x4 + orrs r0, r2 + strb r0, [r4] +_080B583A: + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080B584A + cmp r0, 0x1 + beq _080B5854 + movs r6, 0x1 + b _080B585E +_080B584A: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0x2 + bne _080B585E + b _080B5862 +_080B5854: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0x4 + bne _080B585E + movs r5, 0x1 +_080B585E: + cmp r5, 0 + beq _080B5894 +_080B5862: + ldrb r2, [r4] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r3, 0x32] + strh r1, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080B58A6 + strh r1, [r3, 0x32] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080B58A6 +_080B5894: + cmp r6, 0 + beq _080B58A0 + adds r0, r3, 0 + bl DestroyAnimSprite + b _080B58A6 +_080B58A0: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] +_080B58A6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B5810 + + thumb_func_start sub_80B58AC +sub_80B58AC: @ 80B58AC + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080B58D8 @ =gTasks + adds r5, r0, r1 + movs r0, 0x1 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + movs r6, 0 + movs r1, 0 + strh r0, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bge _080B58DC + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080B59B8 + .align 2, 0 +_080B58D8: .4byte gTasks +_080B58DC: + strh r1, [r5, 0xA] + movs r0, 0xF + strh r0, [r5, 0xC] + movs r0, 0x2 + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r5, 0xE] + lsls r1, 8 + ldrh r0, [r5, 0xC] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r4, _080B5944 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x50 + strh r1, [r0, 0x2E] + ldr r0, _080B5948 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B5950 + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080B594C @ =0x0000ff70 + strh r1, [r0, 0x30] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x70 + b _080B596E + .align 2, 0 +_080B5944: .4byte gSprites +_080B5948: .4byte gBattleAnimTarget +_080B594C: .4byte 0x0000ff70 +_080B5950: + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x90 + strh r1, [r0, 0x30] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080B59C0 @ =0x0000ff90 +_080B596E: + strh r1, [r0, 0x32] + ldr r4, _080B59C4 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r2, 0 + strh r2, [r0, 0x34] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x36] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080B59C8 @ =SpriteCallbackDummy + bl StoreSpriteCallbackInData6 + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080B59CC @ =sub_8074D00 + str r1, [r0] + ldr r0, _080B59D0 @ =sub_80B59D4 + str r0, [r5] +_080B59B8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B59C0: .4byte 0x0000ff90 +_080B59C4: .4byte gSprites +_080B59C8: .4byte SpriteCallbackDummy +_080B59CC: .4byte sub_8074D00 +_080B59D0: .4byte sub_80B59D4 + thumb_func_end sub_80B58AC + + thumb_func_start sub_80B59D4 +sub_80B59D4: @ 80B59D4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B59F8 @ =gTasks + adds r4, r0, r1 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B5A78 + cmp r0, 0x1 + bgt _080B59FC + cmp r0, 0 + beq _080B5A02 + b _080B5AA4 + .align 2, 0 +_080B59F8: .4byte gTasks +_080B59FC: + cmp r0, 0x2 + beq _080B5A9E + b _080B5AA4 +_080B5A02: + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x3 + ands r0, r1 + strh r0, [r4, 0x12] + cmp r0, 0x1 + bne _080B5A20 + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080B5A20 + subs r0, r1, 0x1 + strh r0, [r4, 0xC] +_080B5A20: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + bne _080B5A36 + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B5A36 + adds r0, r1, 0x1 + strh r0, [r4, 0xE] +_080B5A36: + ldrh r1, [r4, 0xE] + lsls r1, 8 + ldrh r0, [r4, 0xC] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r1, [r4, 0xC] + movs r0, 0x80 + lsls r0, 13 + cmp r1, r0 + bne _080B5AA4 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x50 + ble _080B5AA4 + movs r2, 0x8 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B5A74 @ =gSprites + adds r0, r1 + bl obj_delete_but_dont_free_vram + movs r0, 0x1 + strh r0, [r4, 0x10] + b _080B5AA4 + .align 2, 0 +_080B5A74: .4byte gSprites +_080B5A78: + ldrh r0, [r4, 0x14] + adds r0, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B5AA4 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + b _080B5AA4 +_080B5A9E: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B5AA4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B59D4 + + thumb_func_start sub_80B5AAC +sub_80B5AAC: @ 80B5AAC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r2, _080B5ACC @ =gTasks + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x26] + ldr r2, _080B5AD0 @ =sub_80B5AD4 + str r2, [r1] + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_080B5ACC: .4byte gTasks +_080B5AD0: .4byte sub_80B5AD4 + thumb_func_end sub_80B5AAC + + thumb_func_start sub_80B5AD4 +sub_80B5AD4: @ 80B5AD4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080B5B0C @ =gTasks + adds r5, r0, r1 + ldr r0, _080B5B10 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r6, r0, 24 + movs r1, 0x26 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080B5B00 + b _080B5D22 +_080B5B00: + lsls r0, 2 + ldr r1, _080B5B14 @ =_080B5B18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B5B0C: .4byte gTasks +_080B5B10: .4byte gBattleAnimTarget +_080B5B14: .4byte _080B5B18 + .align 2, 0 +_080B5B18: + .4byte _080B5B2C + .4byte _080B5C2C + .4byte _080B5C70 + .4byte _080B5CD8 + .4byte _080B5D04 +_080B5B2C: + ldr r7, _080B5B64 @ =0x00002771 + adds r0, r7, 0 + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + mov r8, r2 + strh r0, [r5, 0x24] + cmp r0, 0xFF + beq _080B5B5A + cmp r0, 0xF + beq _080B5B5A + movs r0, 0x1 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + strh r0, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bge _080B5B68 + adds r0, r7, 0 + bl FreeSpritePaletteByTag +_080B5B5A: + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080B5D28 + .align 2, 0 +_080B5B64: .4byte 0x00002771 +_080B5B68: + ldr r4, _080B5C14 @ =gSprites + movs r1, 0x8 + ldrsh r0, [r5, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r2, [r5, 0x24] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r2, 0x8 + ldrsh r0, [r5, r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + movs r1, 0x8 + ldrsh r0, [r5, r1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldr r0, _080B5C18 @ =gUnknown_2024018 + ldr r1, [r0] + ldr r0, _080B5C1C @ =gBattleAnimTarget + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 31 + adds r2, 0x3E + lsrs r1, 31 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + mov r2, r8 + strh r2, [r5, 0xA] + strh r2, [r5, 0xC] + movs r0, 0x10 + strh r0, [r5, 0xE] + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0x22 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r0, 4 + strh r0, [r5, 0x10] + cmp r6, 0x1 + bne _080B5C20 + movs r1, 0x80 + lsls r1, 2 + b _080B5C24 + .align 2, 0 +_080B5C14: .4byte gSprites +_080B5C18: .4byte gUnknown_2024018 +_080B5C1C: .4byte gBattleAnimTarget +_080B5C20: + movs r1, 0x80 + lsls r1, 3 +_080B5C24: + movs r0, 0 + bl ClearGpuRegBits + b _080B5D22 +_080B5C2C: + movs r1, 0x24 + ldrsh r0, [r5, r1] + adds r0, 0x10 + lsls r0, 4 + strh r0, [r5, 0x24] + movs r2, 0x10 + ldrsh r0, [r5, r2] + lsls r0, 1 + ldr r1, _080B5C60 @ =gPlttBufferUnfaded + adds r0, r1 + movs r2, 0x24 + ldrsh r1, [r5, r2] + lsls r1, 1 + ldr r2, _080B5C64 @ =gPlttBufferFaded + adds r1, r2 + ldr r2, _080B5C68 @ =0x04000008 + bl CpuSet + ldrh r0, [r5, 0x10] + ldr r3, _080B5C6C @ =0x00003c0d + movs r1, 0x10 + movs r2, 0xA + bl BlendPalette + b _080B5D22 + .align 2, 0 +_080B5C60: .4byte gPlttBufferUnfaded +_080B5C64: .4byte gPlttBufferFaded +_080B5C68: .4byte 0x04000008 +_080B5C6C: .4byte 0x00003c0d +_080B5C70: + ldr r2, _080B5CAC @ =gSprites + movs r0, 0x22 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + subs r1, 0x20 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r1, 0 + bge _080B5C90 + movs r2, 0 +_080B5C90: + cmp r6, 0x1 + bne _080B5CB0 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x4 + str r2, [sp, 0x4] + str r6, [sp, 0x8] + b _080B5CC8 + .align 2, 0 +_080B5CAC: .4byte gSprites +_080B5CB0: + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x8 + str r2, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] +_080B5CC8: + movs r2, 0x2 + movs r3, 0x6 + bl ScanlineEffect_InitWave + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + b _080B5D22 +_080B5CD8: + cmp r6, 0x1 + bne _080B5CEC + ldr r1, _080B5CE8 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + b _080B5CF4 + .align 2, 0 +_080B5CE8: .4byte 0x00003f42 +_080B5CEC: + ldr r1, _080B5D00 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg +_080B5CF4: + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + b _080B5D22 + .align 2, 0 +_080B5D00: .4byte 0x00003f44 +_080B5D04: + cmp r6, 0x1 + bne _080B5D14 + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + bl SetGpuRegBits + b _080B5D1E +_080B5D14: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl SetGpuRegBits +_080B5D1E: + ldr r0, _080B5D34 @ =sub_80B5D38 + str r0, [r5] +_080B5D22: + ldrh r0, [r5, 0x26] + adds r0, 0x1 + strh r0, [r5, 0x26] +_080B5D28: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5D34: .4byte sub_80B5D38 + thumb_func_end sub_80B5AD4 + + thumb_func_start sub_80B5D38 +sub_80B5D38: @ 80B5D38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B5DC0 @ =gTasks + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x1 + ands r0, r1 + strh r0, [r4, 0x12] + cmp r0, 0 + bne _080B5D70 + ldr r1, _080B5DC4 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + strh r0, [r4, 0xC] +_080B5D70: + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bne _080B5D92 + ldr r1, _080B5DC4 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + movs r1, 0x10 + subs r1, r0 + strh r1, [r4, 0xE] +_080B5D92: + ldrh r1, [r4, 0xE] + lsls r1, 8 + ldrh r0, [r4, 0xC] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x80 + bne _080B5DBA + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080B5DC8 @ =sub_80B5DCC + str r1, [r4] + adds r0, r5, 0 + bl _call_via_r1 +_080B5DBA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B5DC0: .4byte gTasks +_080B5DC4: .4byte gSineTable +_080B5DC8: .4byte sub_80B5DCC + thumb_func_end sub_80B5D38 + + thumb_func_start sub_80B5DCC +sub_80B5DCC: @ 80B5DCC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B5DFC @ =gTasks + adds r4, r0, r1 + ldr r0, _080B5E00 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r6, r0, 24 + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B5E38 + cmp r0, 0x1 + bgt _080B5E04 + cmp r0, 0 + beq _080B5E0A + b _080B5EB4 + .align 2, 0 +_080B5DFC: .4byte gTasks +_080B5E00: .4byte gBattleAnimTarget +_080B5E04: + cmp r0, 0x2 + beq _080B5E4C + b _080B5EB4 +_080B5E0A: + ldr r1, _080B5E28 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + cmp r6, 0x1 + bne _080B5E2C + movs r1, 0x80 + lsls r1, 2 + b _080B5E30 + .align 2, 0 +_080B5E28: .4byte gScanlineEffect +_080B5E2C: + movs r1, 0x80 + lsls r1, 3 +_080B5E30: + movs r0, 0 + bl ClearGpuRegBits + b _080B5EB4 +_080B5E38: + ldrh r0, [r4, 0x10] + ldr r3, _080B5E48 @ =0x00003c0d + movs r1, 0x10 + movs r2, 0 + bl BlendPalette + b _080B5EB4 + .align 2, 0 +_080B5E48: .4byte 0x00003c0d +_080B5E4C: + ldr r3, _080B5E9C @ =gSprites + movs r0, 0x24 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + bl obj_delete_but_dont_free_vram + ldr r0, _080B5EA0 @ =0x00002771 + bl FreeSpritePaletteByTag + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + cmp r6, 0x1 + bne _080B5EA4 + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + bl SetGpuRegBits + b _080B5EAE + .align 2, 0 +_080B5E9C: .4byte gSprites +_080B5EA0: .4byte 0x00002771 +_080B5EA4: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl SetGpuRegBits +_080B5EAE: + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B5EB4: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B5DCC + + thumb_func_start sub_80B5EC0 +sub_80B5EC0: @ 80B5EC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r7, r0, 0 + ldr r0, _080B5EFC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B5F08 + ldr r4, _080B5F00 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xE0 + lsls r2, 13 + adds r0, r2 + lsrs r5, r0, 16 + ldr r4, _080B5F04 @ =gBattleAnimTarget + b _080B5F2C + .align 2, 0 +_080B5EFC: .4byte gBattleAnimArgs +_080B5F00: .4byte gBattleAnimAttacker +_080B5F04: .4byte gBattleAnimTarget +_080B5F08: + ldr r4, _080B5FD0 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xE0 + lsls r2, 13 + adds r0, r2 + lsrs r5, r0, 16 + ldr r4, _080B5FD4 @ =gBattleAnimAttacker +_080B5F2C: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + movs r1, 0xE0 + lsls r1, 13 + adds r0, r1 + lsrs r0, 16 + mov r9, r0 + mov r8, r5 + mov r2, r9 + subs r4, r2, r5 + lsls r4, 16 + lsrs r4, 16 + lsls r0, r6, 4 + strh r0, [r7, 0x2E] + lsls r0, r5, 4 + strh r0, [r7, 0x30] + mov r1, r10 + subs r0, r1, r6 + lsls r0, 4 + ldr r5, _080B5FD8 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r7, 0x32] + lsls r4, 16 + asrs r4, 12 + movs r0, 0x2 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl __divsi3 + strh r0, [r7, 0x34] + ldrh r0, [r5, 0x2] + strh r0, [r7, 0x36] + mov r1, r10 + strh r1, [r7, 0x38] + mov r2, r9 + strh r2, [r7, 0x3A] + movs r1, 0x36 + ldrsh r0, [r7, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r7, 0x3C] + ldrb r1, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r7, 0x5] + strh r6, [r7, 0x20] + mov r2, r8 + strh r2, [r7, 0x22] + ldr r0, _080B5FDC @ =sub_80B5FE0 + str r0, [r7, 0x1C] + adds r2, r7, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5FD0: .4byte gBattleAnimTarget +_080B5FD4: .4byte gBattleAnimAttacker +_080B5FD8: .4byte gBattleAnimArgs +_080B5FDC: .4byte sub_80B5FE0 + thumb_func_end sub_80B5EC0 + + thumb_func_start sub_80B5FE0 +sub_80B5FE0: @ 80B5FE0 + push {r4,lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x36] + movs r1, 0x36 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080B6018 + ldrh r0, [r2, 0x32] + ldrh r4, [r2, 0x2E] + adds r0, r4 + strh r0, [r2, 0x2E] + ldrh r1, [r2, 0x34] + ldrh r4, [r2, 0x30] + adds r1, r4 + strh r1, [r2, 0x30] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r2, 0x22] + subs r0, r3, 0x1 + strh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080B6018 + strh r0, [r2, 0x2E] +_080B6018: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B5FE0 + + thumb_func_start sub_80B6020 +sub_80B6020: @ 80B6020 + 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 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B6170 @ =gTasks + adds r1, r0 + str r1, [sp] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0 + ldr r1, [sp] + strh r0, [r1, 0x12] + strh r0, [r1, 0x14] + strh r0, [r1, 0x16] + strh r0, [r1, 0x18] + movs r0, 0x10 + strh r0, [r1, 0x1A] + ldr r2, _080B6174 @ =gBattleAnimArgs + ldrh r0, [r2] + strh r0, [r1, 0x1C] + ldr r4, _080B6178 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8076B2C + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B6090 + b _080B618C +_080B6090: + movs r4, 0 +_080B6092: + lsls r1, r4, 16 + asrs r3, r1, 16 + ldr r0, _080B6178 @ =gBattleAnimAttacker + ldrb r2, [r0] + str r1, [sp, 0x10] + cmp r3, r2 + beq _080B615E + movs r0, 0x2 + eors r2, r0 + cmp r3, r2 + beq _080B615E + lsls r0, r4, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B615E + ldr r6, [sp, 0x4] + ldr r3, [sp, 0x8] + lsls r0, r3, 16 + asrs r7, r0, 16 + ldr r0, _080B617C @ =gUnknown_83E7668 + adds r1, r6, 0 + adds r2, r7, 0 + movs r3, 0x37 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x40 + beq _080B615E + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + adds r0, r4, 0 + movs r1, 0x3 + bl sub_8076B2C + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + mov r0, r8 + lsls r5, r0, 4 + add r5, r8 + lsls r5, 2 + ldr r1, _080B6180 @ =gSprites + adds r4, r5, r1 + lsls r0, r6, 4 + strh r0, [r4, 0x2E] + lsls r0, r7, 4 + strh r0, [r4, 0x30] + mov r2, r10 + subs r0, r2, r6 + lsls r0, 4 + ldr r3, _080B6174 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r1, [r3, r2] + bl __divsi3 + strh r0, [r4, 0x32] + mov r3, r9 + lsls r0, r3, 16 + asrs r0, 16 + subs r0, r7 + lsls r0, 4 + ldr r2, _080B6174 @ =gBattleAnimArgs + movs r3, 0x2 + ldrsh r1, [r2, r3] + bl __divsi3 + strh r0, [r4, 0x34] + ldr r1, _080B6174 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x36] + mov r2, r10 + strh r2, [r4, 0x38] + mov r3, r9 + strh r3, [r4, 0x3A] + ldr r0, _080B6184 @ =gSprites + 0x1C + adds r5, r0 + ldr r0, _080B6188 @ =sub_80B5FE0 + str r0, [r5] + ldr r2, [sp] + movs r3, 0x20 + ldrsh r1, [r2, r3] + adds r1, 0xD + lsls r1, 1 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1 + mov r1, r8 + strh r1, [r0] + ldrh r0, [r2, 0x20] + adds r0, 0x1 + strh r0, [r2, 0x20] +_080B615E: + ldr r2, [sp, 0x10] + movs r3, 0x80 + lsls r3, 9 + adds r0, r2, r3 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080B6092 + b _080B6210 + .align 2, 0 +_080B6170: .4byte gTasks +_080B6174: .4byte gBattleAnimArgs +_080B6178: .4byte gBattleAnimAttacker +_080B617C: .4byte gUnknown_83E7668 +_080B6180: .4byte gSprites +_080B6184: .4byte gSprites + 0x1C +_080B6188: .4byte sub_80B5FE0 +_080B618C: + ldr r0, _080B6228 @ =gUnknown_83E7668 + ldr r7, [sp, 0x4] + ldr r2, [sp, 0x8] + lsls r1, r2, 16 + asrs r1, 16 + str r1, [sp, 0xC] + adds r1, r7, 0 + ldr r2, [sp, 0xC] + movs r3, 0x37 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x40 + beq _080B6210 + movs r3, 0x30 + mov r10, r3 + movs r0, 0x28 + mov r9, r0 + ldr r6, _080B622C @ =gSprites + mov r1, r8 + lsls r5, r1, 4 + add r5, r8 + lsls r5, 2 + adds r4, r5, r6 + lsls r0, r7, 4 + strh r0, [r4, 0x2E] + ldr r2, [sp, 0xC] + lsls r0, r2, 4 + strh r0, [r4, 0x30] + subs r0, r3, r7 + lsls r0, 4 + ldr r3, _080B6230 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r1, [r3, r2] + bl __divsi3 + strh r0, [r4, 0x32] + mov r3, r9 + ldr r1, [sp, 0xC] + subs r0, r3, r1 + lsls r0, 4 + ldr r2, _080B6230 @ =gBattleAnimArgs + movs r3, 0x2 + ldrsh r1, [r2, r3] + bl __divsi3 + strh r0, [r4, 0x34] + ldr r1, _080B6230 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x36] + mov r2, r10 + strh r2, [r4, 0x38] + mov r3, r9 + strh r3, [r4, 0x3A] + adds r6, 0x1C + adds r5, r6 + ldr r0, _080B6234 @ =sub_80B5FE0 + str r0, [r5] + mov r1, r8 + ldr r0, [sp] + strh r1, [r0, 0x22] + movs r0, 0x1 + ldr r2, [sp] + strh r0, [r2, 0x20] +_080B6210: + ldr r0, _080B6238 @ =sub_80B623C + ldr r3, [sp] + str r0, [r3] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B6228: .4byte gUnknown_83E7668 +_080B622C: .4byte gSprites +_080B6230: .4byte gBattleAnimArgs +_080B6234: .4byte sub_80B5FE0 +_080B6238: .4byte sub_80B623C + thumb_func_end sub_80B6020 + + thumb_func_start sub_80B623C +sub_80B623C: @ 80B623C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B6260 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080B62F2 + cmp r1, 0x1 + bgt _080B6264 + cmp r1, 0 + beq _080B6272 + b _080B63AE + .align 2, 0 +_080B6260: .4byte gTasks +_080B6264: + cmp r1, 0x2 + bne _080B626A + b _080B6384 +_080B626A: + cmp r1, 0x3 + bne _080B6270 + b _080B6398 +_080B6270: + b _080B63AE +_080B6272: + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B62D8 + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B62D8 + strh r1, [r4, 0x12] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B62A8 + ldrh r1, [r4, 0x18] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B62B6 + adds r0, r1, 0x1 + strh r0, [r4, 0x18] + b _080B62B6 +_080B62A8: + ldrh r1, [r4, 0x1A] + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B62B6 + subs r0, r1, 0x1 + strh r0, [r4, 0x1A] +_080B62B6: + ldrh r1, [r4, 0x1A] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x16 + ldrsh r0, [r4, r1] + cmp r0, 0x17 + ble _080B62D8 + movs r0, 0 + strh r0, [r4, 0x16] + movs r0, 0x1 + strh r0, [r4, 0x14] +_080B62D8: + ldrh r1, [r4, 0x1C] + movs r2, 0x1C + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B62E8 + subs r0, r1, 0x1 + strh r0, [r4, 0x1C] + b _080B63AE +_080B62E8: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B63AE + b _080B6390 +_080B62F2: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B63AE + movs r0, 0 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + ands r0, r1 + lsls r0, 16 + cmp r0, 0 + beq _080B6322 + ldrh r1, [r4, 0x18] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B6330 + subs r0, r1, 0x1 + strh r0, [r4, 0x18] + b _080B6330 +_080B6322: + ldrh r1, [r4, 0x1A] + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B6330 + adds r0, r1, 0x1 + strh r0, [r4, 0x1A] +_080B6330: + ldrh r1, [r4, 0x1A] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r1, [r4, 0x18] + movs r0, 0x80 + lsls r0, 13 + cmp r1, r0 + bne _080B63AE + movs r5, 0 + b _080B6374 +_080B6350: + adds r1, r5, 0 + adds r1, 0xD + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0x8 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B6380 @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080B6374: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r5, r0 + blt _080B6350 + b _080B6390 + .align 2, 0 +_080B6380: .4byte gSprites +_080B6384: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + cmp r0, 0 + ble _080B63AE +_080B6390: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B63AE +_080B6398: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B63AE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B623C + + thumb_func_start sub_80B63B4 +sub_80B63B4: @ 80B63B4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080B6400 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080B6404 @ =gUnknown_2022986 + strh r1, [r0] + ldr r1, _080B6408 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080B640C @ =0x00003f1f + movs r0, 0x4A + bl SetGpuReg + movs r0, 0x50 + movs r1, 0xC8 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0x10 + bl SetGpuReg + ldr r0, _080B6410 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B63FC + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B6414 +_080B63FC: + movs r6, 0x28 + b _080B6416 + .align 2, 0 +_080B6400: .4byte gUnknown_2022984 +_080B6404: .4byte gUnknown_2022986 +_080B6408: .4byte 0x00003f3f +_080B640C: .4byte 0x00003f1f +_080B6410: .4byte gBattleAnimAttacker +_080B6414: + movs r6, 0xC8 +_080B6416: + ldr r1, _080B6454 @ =gUnknown_2022984 + lsls r3, r6, 16 + asrs r2, r3, 16 + lsls r0, r2, 8 + orrs r0, r2 + strh r0, [r1] + ldr r1, _080B6458 @ =gUnknown_2022986 + movs r5, 0x28 + ldr r0, _080B645C @ =0x00002828 + strh r0, [r1] + lsrs r3, 16 + movs r1, 0xF0 + subs r1, r2 + movs r4, 0x48 + ldr r2, _080B6460 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + strh r3, [r0, 0xA] + strh r1, [r0, 0xC] + strh r5, [r0, 0xE] + strh r4, [r0, 0x10] + strh r6, [r0, 0x12] + strh r5, [r0, 0x14] + ldr r1, _080B6464 @ =sub_80B6468 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B6454: .4byte gUnknown_2022984 +_080B6458: .4byte gUnknown_2022986 +_080B645C: .4byte 0x00002828 +_080B6460: .4byte gTasks +_080B6464: .4byte sub_80B6468 + thumb_func_end sub_80B63B4 + + thumb_func_start sub_80B6468 +sub_80B6468: @ 80B6468 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B6588 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0x8] + adds r0, r1, 0x1 + strh r0, [r4, 0x8] + ldrh r5, [r4, 0xA] + ldrh r7, [r4, 0xC] + ldrh r0, [r4, 0xE] + mov r10, r0 + ldrh r2, [r4, 0x10] + str r2, [sp, 0xC] + ldrh r0, [r4, 0x12] + ldrh r2, [r4, 0x14] + mov r8, r2 + lsls r1, 16 + asrs r6, r1, 16 + cmp r6, 0xF + ble _080B64A4 + b _080B6594 +_080B64A4: + lsls r0, 16 + asrs r0, 16 + bl __floatsidf + str r0, [sp, 0x10] + str r1, [sp, 0x14] + lsls r0, r5, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080B658C @ =0x3fb00000 + ldr r3, _080B6590 @ =0x00000000 + bl __muldf3 + adds r5, r1, 0 + adds r4, r0, 0 + adds r0, r6, 0 + bl __floatsidf + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + adds r1, r5, 0 + adds r0, r4, 0 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + bl __subdf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r0, r7, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080B658C @ =0x3fb00000 + ldr r3, _080B6590 @ =0x00000000 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + bl __adddf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r7, r0, 16 + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + bl __floatsidf + adds r5, r1, 0 + adds r4, r0, 0 + mov r2, r10 + lsls r0, r2, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080B658C @ =0x3fb00000 + ldr r3, _080B6590 @ =0x00000000 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + adds r1, r5, 0 + adds r0, r4, 0 + bl __subdf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, [sp, 0xC] + lsls r0, r1, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080B658C @ =0x3fb00000 + ldr r3, _080B6590 @ =0x00000000 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + adds r1, r5, 0 + adds r0, r4, 0 + bl __adddf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r5, r0, 16 + b _080B65C2 + .align 2, 0 +_080B6588: .4byte gTasks +_080B658C: .4byte 0x3fb00000 +_080B6590: .4byte 0x00000000 +_080B6594: + movs r2, 0 + mov r9, r2 + movs r7, 0xF0 + movs r6, 0 + movs r5, 0x70 + str r6, [sp] + str r6, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r3, 0 + bl sub_8075BE8 + lsls r0, 16 + lsrs r0, 16 + str r6, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080B65E4 @ =sub_80B65F0 + str r0, [r4] +_080B65C2: + ldr r1, _080B65E8 @ =gUnknown_2022984 + mov r2, r9 + lsls r0, r2, 8 + orrs r7, r0 + strh r7, [r1] + ldr r1, _080B65EC @ =gUnknown_2022986 + lsls r0, r6, 8 + orrs r5, r0 + strh r5, [r1] + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B65E4: .4byte sub_80B65F0 +_080B65E8: .4byte gUnknown_2022984 +_080B65EC: .4byte gUnknown_2022986 + thumb_func_end sub_80B6468 + + thumb_func_start sub_80B65F0 +sub_80B65F0: @ 80B65F0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080B663C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080B6636 + ldr r0, _080B6640 @ =gUnknown_2022984 + strh r1, [r0] + ldr r0, _080B6644 @ =gUnknown_2022986 + strh r1, [r0] + ldr r4, _080B6648 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B6636: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B663C: .4byte gPaletteFade +_080B6640: .4byte gUnknown_2022984 +_080B6644: .4byte gUnknown_2022986 +_080B6648: .4byte 0x00003f3f + thumb_func_end sub_80B65F0 + + thumb_func_start sub_80B664C +sub_80B664C: @ 80B664C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080B6678 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B6680 + movs r2, 0x18 + ldr r3, _080B667C @ =0x0000fffe + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r4, 0x3] + b _080B6684 + .align 2, 0 +_080B6678: .4byte gBattleAnimAttacker +_080B667C: .4byte 0x0000fffe +_080B6680: + ldr r2, _080B66A0 @ =0x0000ffe8 + movs r3, 0x2 +_080B6684: + lsls r0, r2, 16 + asrs r0, 16 + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r3, [r4, 0x30] + movs r0, 0x3C + strh r0, [r4, 0x2E] + ldr r0, _080B66A4 @ =sub_80B66A8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B66A0: .4byte 0x0000ffe8 +_080B66A4: .4byte sub_80B66A8 + thumb_func_end sub_80B664C + + thumb_func_start sub_80B66A8 +sub_80B66A8: @ 80B66A8 + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x2E] + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080B66BA + subs r0, r1, 0x1 + b _080B671E +_080B66BA: + ldrh r0, [r3, 0x30] + ldrh r4, [r3, 0x24] + adds r1, r0, r4 + strh r1, [r3, 0x24] + adds r0, r1, 0x7 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xE + bls _080B6720 + ldrh r0, [r3, 0x20] + adds r0, r1 + strh r0, [r3, 0x20] + movs r0, 0 + strh r0, [r3, 0x24] + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r4, _080B670C @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080B6710 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080B671C + movs r0, 0x1E + strh r0, [r3, 0x2E] + ldr r0, _080B6714 @ =sub_8074C44 + str r0, [r3, 0x1C] + ldr r1, _080B6718 @ =sub_80B6728 + adds r0, r3, 0 + bl StoreSpriteCallbackInData6 + b _080B6720 + .align 2, 0 +_080B670C: .4byte 0x000003ff +_080B6710: .4byte 0xfffffc00 +_080B6714: .4byte sub_8074C44 +_080B6718: .4byte sub_80B6728 +_080B671C: + movs r0, 0x28 +_080B671E: + strh r0, [r3, 0x2E] +_080B6720: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B66A8 + + thumb_func_start sub_80B6728 +sub_80B6728: @ 80B6728 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _080B6752 + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] + b _080B6796 +_080B6752: + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bgt _080B6762 + adds r0, r1, 0x1 + strh r0, [r4, 0x30] + b _080B6796 +_080B6762: + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + movs r1, 0x10 + subs r1, r0 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080B6796 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B679C @ =sub_80B67A0 + str r0, [r4, 0x1C] +_080B6796: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B679C: .4byte sub_80B67A0 + thumb_func_end sub_80B6728 + + thumb_func_start sub_80B67A0 +sub_80B67A0: @ 80B67A0 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + ldr r0, _080B67CC @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080B67D0 @ =gUnknown_2022986 + strh r1, [r0] + adds r0, r4, 0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B67CC: .4byte gUnknown_2022984 +_080B67D0: .4byte gUnknown_2022986 + thumb_func_end sub_80B67A0 + + thumb_func_start sub_80B67D4 +sub_80B67D4: @ 80B67D4 + push {r4-r7,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + movs r1, 0xC + bl Sin + strh r0, [r5, 0x24] + ldr r0, _080B683C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B67F8 + ldrh r0, [r5, 0x24] + negs r0, r0 + strh r0, [r5, 0x24] +_080B67F8: + ldrh r0, [r5, 0x2E] + adds r0, 0x6 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x2E] + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r5, 0x30] + adds r0, r1 + strh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x3C] + adds r0, 0x1 + strh r0, [r5, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080B6844 + ldr r0, _080B6840 @ =0x0000050b + strh r0, [r5, 0x3A] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r5, 0x3A] + movs r0, 0x52 + bl SetGpuReg + b _080B689C + .align 2, 0 +_080B683C: .4byte gBattleAnimAttacker +_080B6840: .4byte 0x0000050b +_080B6844: + cmp r0, 0x1E + ble _080B689C + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + ldrh r1, [r5, 0x3A] + lsls r0, r1, 16 + asrs r0, 24 + lsls r0, 16 + movs r6, 0xFF + ands r6, r1 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r7, r0, 16 + cmp r7, 0x10 + bls _080B6868 + movs r7, 0x10 +_080B6868: + subs r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r0, 0 + bge _080B6874 + movs r6, 0 +_080B6874: + lsls r4, r7, 8 + orrs r4, r6 + lsls r1, r4, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + strh r4, [r5, 0x3A] + cmp r7, 0x10 + bne _080B689C + cmp r6, 0 + bne _080B689C + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B68A4 @ =sub_80B68A8 + str r0, [r5, 0x1C] +_080B689C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B68A4: .4byte sub_80B68A8 + thumb_func_end sub_80B67D4 + + thumb_func_start sub_80B68A8 +sub_80B68A8: @ 80B68A8 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B68A8 + + thumb_func_start sub_80B68C8 +sub_80B68C8: @ 80B68C8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080B6960 @ =gTasks + adds r4, r0 + movs r6, 0 + strh r6, [r4, 0x8] + movs r0, 0x10 + mov r8, r0 + mov r0, r8 + strh r0, [r4, 0xA] + ldr r5, _080B6964 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + ldrb r0, [r5] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + asrs r1, 1 + adds r1, 0x8 + strh r1, [r4, 0x1E] + strh r6, [r4, 0x16] + ldrb r0, [r5] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + ldrb r0, [r5] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x2 + strh r0, [r4, 0x14] + strh r6, [r4, 0xE] + mov r0, r8 + strh r0, [r4, 0x10] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + strh r6, [r4, 0x18] + ldr r0, _080B6968 @ =sub_80B696C + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B6960: .4byte gTasks +_080B6964: .4byte gBattleAnimAttacker +_080B6968: .4byte sub_80B696C + thumb_func_end sub_80B68C8 + + thumb_func_start sub_80B696C +sub_80B696C: @ 80B696C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _080B6990 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080B6986 + b _080B6AF2 +_080B6986: + lsls r0, 2 + ldr r1, _080B6994 @ =_080B6998 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B6990: .4byte gTasks +_080B6994: .4byte _080B6998 + .align 2, 0 +_080B6998: + .4byte _080B69B0 + .4byte _080B6A20 + .4byte _080B6A62 + .4byte _080B6A76 + .4byte _080B6ACC + .4byte _080B6ADC +_080B69B0: + movs r6, 0 +_080B69B2: + movs r2, 0x1A + ldrsh r1, [r4, r2] + movs r0, 0x1C + ldrsh r2, [r4, r0] + ldrb r3, [r4, 0x14] + ldr r0, _080B6A14 @ =gUnknown_83E76E0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080B6A06 + ldr r1, _080B6A18 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r1 + strh r7, [r5, 0x2E] + ldr r0, _080B6A1C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _080B69E8 + movs r1, 0x1 +_080B69E8: + strh r1, [r5, 0x30] + movs r0, 0x2A + muls r0, r6 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x1E] + strh r0, [r5, 0x34] + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 1 + strh r0, [r5, 0x38] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] +_080B6A06: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080B69B2 + b _080B6AD4 + .align 2, 0 +_080B6A14: .4byte gUnknown_83E76E0 +_080B6A18: .4byte gSprites +_080B6A1C: .4byte gBattleAnimAttacker +_080B6A20: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B6A3E + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0xD + bgt _080B6A4C + adds r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080B6A4C +_080B6A3E: + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0x4 + ble _080B6A4C + subs r0, r1, 0x1 + strh r0, [r4, 0x10] +_080B6A4C: + movs r1, 0xE + ldrsh r0, [r4, r1] + ldrh r2, [r4, 0xE] + ldrh r1, [r4, 0x10] + cmp r0, 0xE + bne _080B6ABC + cmp r1, 0x4 + bne _080B6ABC + movs r0, 0 + strh r0, [r4, 0xA] + b _080B6AB6 +_080B6A62: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080B6AF2 + movs r0, 0 + strh r0, [r4, 0xA] + b _080B6AD4 +_080B6A76: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B6A94 + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080B6AA2 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080B6AA2 +_080B6A94: + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B6AA2 + adds r0, r1, 0x1 + strh r0, [r4, 0x10] +_080B6AA2: + movs r1, 0xE + ldrsh r0, [r4, r1] + ldrh r2, [r4, 0xE] + ldrh r1, [r4, 0x10] + cmp r0, 0 + bne _080B6ABC + cmp r1, 0x10 + bne _080B6ABC + movs r0, 0x1 + strh r0, [r4, 0x18] +_080B6AB6: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B6ABC: + lsls r1, 8 + orrs r1, r2 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + b _080B6AF2 +_080B6ACC: + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B6AF2 +_080B6AD4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B6AF2 +_080B6ADC: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r7, 0 + bl DestroyAnimVisualTask +_080B6AF2: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B696C + + thumb_func_start sub_80B6AF8 +sub_80B6AF8: @ 80B6AF8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B6B0A + ldrh r0, [r4, 0x32] + adds r0, 0x2 + b _080B6B0E +_080B6B0A: + ldrh r0, [r4, 0x32] + subs r0, 0x2 +_080B6B0E: + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x32] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7E + bhi _080B6B50 + ldr r2, _080B6B4C @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x12] + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + b _080B6B64 + .align 2, 0 +_080B6B4C: .4byte gTasks +_080B6B50: + ldr r2, _080B6BB8 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x3 + ldrb r1, [r0, 0x12] + ands r1, r2 +_080B6B64: + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsls r0, 3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + movs r1, 0x7 + bl Sin + strh r0, [r4, 0x26] + ldr r2, _080B6BB8 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r0, r2 + movs r2, 0x18 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080B6BB2 + ldrh r0, [r1, 0x16] + subs r0, 0x1 + strh r0, [r1, 0x16] + adds r0, r4, 0 + bl DestroySprite +_080B6BB2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B6BB8: .4byte gTasks + thumb_func_end sub_80B6AF8 + + thumb_func_start sub_80B6BBC +sub_80B6BBC: @ 80B6BBC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r2, _080B6BDC @ =gTasks + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x26] + ldr r2, _080B6BE0 @ =sub_80B6BE4 + str r2, [r1] + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_080B6BDC: .4byte gTasks +_080B6BE0: .4byte sub_80B6BE4 + thumb_func_end sub_80B6BBC + + thumb_func_start sub_80B6BE4 +sub_80B6BE4: @ 80B6BE4 + push {r4-r6,lr} + sub sp, 0x1C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B6C18 @ =gTasks + adds r6, r1, r0 + ldr r0, _080B6C1C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r4, r0, 24 + movs r1, 0x26 + ldrsh r0, [r6, r1] + cmp r0, 0x7 + bls _080B6C0C + b _080B6F1E +_080B6C0C: + lsls r0, 2 + ldr r1, _080B6C20 @ =_080B6C24 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B6C18: .4byte gTasks +_080B6C1C: .4byte gBattleAnimAttacker +_080B6C20: .4byte _080B6C24 + .align 2, 0 +_080B6C24: + .4byte _080B6C44 + .4byte _080B6CCC + .4byte _080B6D28 + .4byte _080B6D8C + .4byte _080B6E04 + .4byte _080B6E6C + .4byte _080B6E82 + .4byte _080B6EEC +_080B6C44: + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x2 + bl SetAnimBgAttribute + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0 + strh r0, [r6, 0xA] + strh r0, [r6, 0xC] + movs r0, 0x10 + strh r0, [r6, 0xE] + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x10] + ldr r3, _080B6CC8 @ =gSprites + movs r2, 0x10 + ldrsh r1, [r6, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x5] + lsls r0, 28 + lsrs r0, 30 + strh r0, [r6, 0x12] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r0, 4 + strh r0, [r6, 0x14] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x1] + movs r0, 0x10 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + movs r0, 0x80 + strh r0, [r6, 0x16] + b _080B6F1E + .align 2, 0 +_080B6CC8: .4byte gSprites +_080B6CCC: + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] + movs r5, 0x1 + ands r5, r0 + cmp r5, 0 + beq _080B6CDC + b _080B6F24 +_080B6CDC: + ldrh r0, [r6, 0x14] + ldrb r2, [r6, 0xC] + ldr r4, _080B6D08 @ =0x000066e0 + movs r1, 0x10 + adds r3, r4, 0 + bl BlendPalette + ldrh r0, [r6, 0x16] + ldrb r2, [r6, 0xC] + movs r1, 0x10 + adds r3, r4, 0 + bl BlendPalette + ldrh r1, [r6, 0xC] + movs r2, 0xC + ldrsh r0, [r6, r2] + cmp r0, 0xB + bgt _080B6D0C + adds r0, r1, 0x1 + strh r0, [r6, 0xC] + b _080B6F24 + .align 2, 0 +_080B6D08: .4byte 0x000066e0 +_080B6D0C: + strh r5, [r6, 0xA] + strh r5, [r6, 0xC] + ldr r1, _080B6D24 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + b _080B6F1E + .align 2, 0 +_080B6D24: .4byte 0x00003f44 +_080B6D28: + movs r0, 0x2 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + ldr r0, _080B6D7C @ =gBattle_BG2_X + movs r1, 0 + strh r1, [r0] + ldr r4, _080B6D80 @ =gBattle_BG2_Y + strh r1, [r4] + movs r0, 0x18 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x1A + bl SetGpuReg + add r0, sp, 0xC + movs r1, 0x2 + bl sub_80752C8 + add r0, sp, 0xC + ldrb r0, [r0, 0x9] + ldr r1, _080B6D84 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet + add r2, sp, 0xC + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080B6D88 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette + add r1, sp, 0xC + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _080B6F1E + .align 2, 0 +_080B6D7C: .4byte gBattle_BG2_X +_080B6D80: .4byte gBattle_BG2_Y +_080B6D84: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet +_080B6D88: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette +_080B6D8C: + add r0, sp, 0xC + movs r1, 0x2 + bl sub_80752C8 + movs r0, 0x80 + lsls r0, 6 + bl AllocZeroed + adds r1, r0, 0 + ldr r5, _080B6DFC @ =gMonSpritesGfxPtr + ldr r0, [r5] + movs r4, 0xBE + lsls r4, 1 + adds r0, r4 + str r1, [r0] + ldr r0, _080B6E00 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap + bl LZDecompressWram + add r0, sp, 0xC + ldrb r0, [r0, 0x8] + ldr r1, [r5] + adds r1, r4 + ldr r1, [r1] + movs r2, 0x80 + lsls r2, 1 + movs r3, 0 + bl sub_80730C0 + add r0, sp, 0xC + ldrb r0, [r0, 0x9] + ldr r1, [r5] + adds r1, r4 + ldr r1, [r1] + movs r2, 0x20 + str r2, [sp] + str r2, [sp, 0x4] + movs r2, 0x11 + str r2, [sp, 0x8] + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + ldr r0, [r5] + adds r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r5] + adds r0, r4 + movs r1, 0 + str r1, [r0] + b _080B6F1E + .align 2, 0 +_080B6DFC: .4byte gMonSpritesGfxPtr +_080B6E00: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap +_080B6E04: + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B6E14 + b _080B6F24 +_080B6E14: + ldrh r1, [r6, 0xC] + adds r1, 0x1 + strh r1, [r6, 0xC] + ldrh r0, [r6, 0xE] + subs r0, 0x1 + strh r0, [r6, 0xE] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0xE + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080B6F24 + strh r0, [r6, 0xA] + strh r0, [r6, 0xC] + movs r0, 0x10 + strh r0, [r6, 0xE] + ldr r1, _080B6E68 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x2 + bl SetAnimBgAttribute + b _080B6F1E + .align 2, 0 +_080B6E68: .4byte 0x00003f42 +_080B6E6C: + cmp r4, 0x1 + bne _080B6E76 + movs r1, 0x80 + lsls r1, 2 + b _080B6E7A +_080B6E76: + movs r1, 0x80 + lsls r1, 3 +_080B6E7A: + movs r0, 0 + bl ClearGpuRegBits + b _080B6F1E +_080B6E82: + ldr r2, _080B6EC0 @ =gSprites + movs r0, 0x10 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + subs r1, 0x20 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r1, 0 + bge _080B6EA2 + movs r2, 0 +_080B6EA2: + cmp r4, 0x1 + bne _080B6EC4 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x4 + str r2, [sp, 0x4] + str r4, [sp, 0x8] + b _080B6EDE + .align 2, 0 +_080B6EC0: .4byte gSprites +_080B6EC4: + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x8 + str r2, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] + movs r2, 0x4 +_080B6EDE: + movs r3, 0x8 + bl ScanlineEffect_InitWave + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x1C] + b _080B6F1E +_080B6EEC: + ldrh r0, [r6, 0x16] + ldr r3, _080B6F08 @ =0x000077ff + movs r1, 0x10 + movs r2, 0xC + bl BlendPalette + cmp r4, 0x1 + bne _080B6F0C + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + bl SetGpuRegBits + b _080B6F16 + .align 2, 0 +_080B6F08: .4byte 0x000077ff +_080B6F0C: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl SetGpuRegBits +_080B6F16: + ldr r0, _080B6F2C @ =sub_80B6F30 + str r0, [r6] + movs r0, 0 + strh r0, [r6, 0x26] +_080B6F1E: + ldrh r0, [r6, 0x26] + adds r0, 0x1 + strh r0, [r6, 0x26] +_080B6F24: + add sp, 0x1C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B6F2C: .4byte sub_80B6F30 + thumb_func_end sub_80B6BE4 + + thumb_func_start sub_80B6F30 +sub_80B6F30: @ 80B6F30 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B6FB8 @ =gTasks + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x1 + ands r0, r1 + strh r0, [r4, 0x18] + cmp r0, 0 + bne _080B6F68 + ldr r1, _080B6FBC @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + strh r0, [r4, 0xC] +_080B6F68: + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bne _080B6F8A + ldr r1, _080B6FBC @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + movs r1, 0x10 + subs r1, r0 + strh r1, [r4, 0xE] +_080B6F8A: + ldrh r1, [r4, 0xE] + lsls r1, 8 + ldrh r0, [r4, 0xC] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x80 + bne _080B6FB2 + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080B6FC0 @ =sub_80B6FC4 + str r1, [r4] + adds r0, r5, 0 + bl _call_via_r1 +_080B6FB2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6FB8: .4byte gTasks +_080B6FBC: .4byte gSineTable +_080B6FC0: .4byte sub_80B6FC4 + thumb_func_end sub_80B6F30 + + thumb_func_start sub_80B6FC4 +sub_80B6FC4: @ 80B6FC4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _080B6FE8 @ =gTasks + adds r6, r0, r1 + movs r1, 0x26 + ldrsh r0, [r6, r1] + cmp r0, 0x5 + bls _080B6FDE + b _080B7148 +_080B6FDE: + lsls r0, 2 + ldr r1, _080B6FEC @ =_080B6FF0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B6FE8: .4byte gTasks +_080B6FEC: .4byte _080B6FF0 + .align 2, 0 +_080B6FF0: + .4byte _080B7008 + .4byte _080B7024 + .4byte _080B7044 + .4byte _080B707C + .4byte _080B709C + .4byte _080B70E8 +_080B7008: + ldr r1, _080B701C @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] + ldrh r0, [r6, 0x16] + ldr r3, _080B7020 @ =0x000066e0 + movs r1, 0x10 + movs r2, 0xC + bl BlendPalette + b _080B7148 + .align 2, 0 +_080B701C: .4byte gScanlineEffect +_080B7020: .4byte 0x000066e0 +_080B7024: + ldr r1, _080B7040 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + movs r1, 0 + movs r0, 0x10 + strh r0, [r6, 0xC] + strh r1, [r6, 0xE] + b _080B7148 + .align 2, 0 +_080B7040: .4byte 0x00003f44 +_080B7044: + ldrh r1, [r6, 0xC] + subs r1, 0x1 + strh r1, [r6, 0xC] + ldrh r0, [r6, 0xE] + adds r0, 0x1 + strh r0, [r6, 0xE] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0xE + ldrsh r0, [r6, r2] + cmp r0, 0xF + ble _080B714E + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x2 + bl SetAnimBgAttribute + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x2 + bl SetAnimBgAttribute + b _080B7148 +_080B707C: + movs r0, 0x2 + bl sub_8075358 + movs r0, 0 + movs r1, 0x90 + movs r2, 0x20 + bl FillPalette + movs r0, 0x2 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute + movs r0, 0xC + strh r0, [r6, 0xA] + b _080B7148 +_080B709C: + ldrh r0, [r6, 0x14] + ldrb r2, [r6, 0xA] + ldr r4, _080B70C8 @ =0x000066e0 + movs r1, 0x10 + adds r3, r4, 0 + bl BlendPalette + ldrh r0, [r6, 0x16] + ldrb r2, [r6, 0xA] + movs r1, 0x10 + adds r3, r4, 0 + bl BlendPalette + ldrh r0, [r6, 0xA] + movs r2, 0xA + ldrsh r1, [r6, r2] + cmp r1, 0 + beq _080B70CC + subs r0, 0x1 + strh r0, [r6, 0xA] + b _080B714E + .align 2, 0 +_080B70C8: .4byte 0x000066e0 +_080B70CC: + strh r1, [r6, 0xA] + ldr r1, _080B70E4 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + b _080B7148 + .align 2, 0 +_080B70E4: .4byte 0x00003f44 +_080B70E8: + ldr r5, _080B7154 @ =gSprites + movs r1, 0x10 + ldrsh r0, [r6, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + movs r0, 0x3 + ldrb r2, [r6, 0x12] + ands r2, r0 + lsls r2, 2 + ldrb r4, [r1, 0x5] + movs r3, 0xD + negs r3, r3 + adds r0, r3, 0 + ands r0, r4 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r2, 0x10 + ldrsh r1, [r6, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + ands r3, r1 + strb r3, [r0, 0x1] + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r7, 0 + bl DestroyAnimVisualTask +_080B7148: + ldrh r0, [r6, 0x26] + adds r0, 0x1 + strh r0, [r6, 0x26] +_080B714E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B7154: .4byte gSprites + thumb_func_end sub_80B6FC4 + + thumb_func_start sub_80B7158 +sub_80B7158: @ 80B7158 + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r3] + ldr r2, _080B719C @ =gBattlerSpriteIds + ldr r1, _080B71A0 @ =gBattleAnimAttacker + ldrb r1, [r1] + adds r1, r2 + ldrb r1, [r1] + strh r1, [r0, 0x38] + movs r1, 0x80 + strh r1, [r0, 0x2E] + movs r1, 0xA + strh r1, [r0, 0x30] + ldr r2, _080B71A4 @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0x32] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x34] + ldr r1, _080B71A8 @ =sub_80B71B0 + str r1, [r0, 0x1C] + ldr r2, _080B71AC @ =gSprites + movs r3, 0x38 + ldrsh r1, [r0, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080B719C: .4byte gBattlerSpriteIds +_080B71A0: .4byte gBattleAnimAttacker +_080B71A4: .4byte gBattleAnimArgs +_080B71A8: .4byte sub_80B71B0 +_080B71AC: .4byte gSprites + thumb_func_end sub_80B7158 + + thumb_func_start sub_80B71B0 +sub_80B71B0: @ 80B71B0 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x34] + movs r1, 0x34 + ldrsh r3, [r5, r1] + cmp r3, 0 + beq _080B7218 + subs r0, 0x1 + strh r0, [r5, 0x34] + movs r2, 0x2E + ldrsh r0, [r5, r2] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Sin + ldr r4, _080B7210 @ =gSprites + movs r1, 0x38 + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x24] + movs r2, 0x2E + ldrsh r0, [r5, r2] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Cos + movs r1, 0x38 + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x26] + ldrh r0, [r5, 0x32] + ldrh r2, [r5, 0x2E] + adds r1, r0, r2 + strh r1, [r5, 0x2E] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080B724C + ldr r2, _080B7214 @ =0xffffff00 + adds r0, r1, r2 + strh r0, [r5, 0x2E] + b _080B724C + .align 2, 0 +_080B7210: .4byte gSprites +_080B7214: .4byte 0xffffff00 +_080B7218: + ldr r2, _080B7254 @ =gSprites + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x24] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x8 + strh r1, [r0, 0x22] + ldr r0, _080B7258 @ =move_anim_8074EE0 + str r0, [r5, 0x1C] +_080B724C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7254: .4byte gSprites +_080B7258: .4byte move_anim_8074EE0 + thumb_func_end sub_80B71B0 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/ground.s b/asm/ground.s new file mode 100644 index 000000000..4009c7056 --- /dev/null +++ b/asm/ground.s @@ -0,0 +1,1787 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B8B6C +sub_80B8B6C: @ 80B8B6C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B8BC4 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r5, _080B8BC8 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080B8BCC @ =0x0000ffd8 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_8075068 + ldr r0, _080B8BD0 @ =sub_80B8BD4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8BC4: .4byte gBattleAnimAttacker +_080B8BC8: .4byte gBattleAnimTarget +_080B8BCC: .4byte 0x0000ffd8 +_080B8BD0: .4byte sub_80B8BD4 + thumb_func_end sub_80B8B6C + + thumb_func_start sub_80B8BD4 +sub_80B8BD4: @ 80B8BD4 + push {r4,r5,lr} + adds r5, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B8C28 + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + movs r0, 0x14 + strh r0, [r5, 0x2E] + ldr r4, _080B8C30 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + movs r0, 0x28 + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_8075068 + ldr r0, _080B8C34 @ =sub_80B8C38 + str r0, [r5, 0x1C] +_080B8C28: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8C30: .4byte gBattleAnimAttacker +_080B8C34: .4byte sub_80B8C38 + thumb_func_end sub_80B8BD4 + + thumb_func_start sub_80B8C38 +sub_80B8C38: @ 80B8C38 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B8C4C + adds r0, r4, 0 + bl DestroyAnimSprite +_080B8C4C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B8C38 + + thumb_func_start sub_80B8C54 +sub_80B8C54: @ 80B8C54 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r0, _080B8CB4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B8C74 + ldr r1, _080B8CB8 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080B8C74: + ldr r4, _080B8CB8 @ =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080B8CBC @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + ldr r0, _080B8CC0 @ =sub_8075590 + str r0, [r6, 0x1C] + ldr r1, _080B8CC4 @ =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B8CB4: .4byte gBattleAnimAttacker +_080B8CB8: .4byte gBattleAnimArgs +_080B8CBC: .4byte gBattleAnimTarget +_080B8CC0: .4byte sub_8075590 +_080B8CC4: .4byte DestroyAnimSprite + thumb_func_end sub_80B8C54 + + thumb_func_start sub_80B8CC8 +sub_80B8CC8: @ 80B8CC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r4, _080B8D48 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074844 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074844 + lsls r0, 24 + lsrs r7, r0, 24 + bl Random + movs r4, 0x1F + adds r5, r4, 0 + ands r5, r0 + bl Random + ands r4, r0 + adds r1, r5, 0 + cmp r1, 0x10 + ble _080B8D10 + movs r0, 0x10 + subs r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 +_080B8D10: + lsls r0, r4, 16 + asrs r1, r0, 16 + cmp r1, 0x10 + ble _080B8D20 + movs r0, 0x10 + subs r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_080B8D20: + ldr r0, _080B8D4C @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r6, 0x2E] + mov r1, r8 + adds r0, r1, r5 + strh r0, [r6, 0x32] + adds r0, r7, r4 + strh r0, [r6, 0x36] + ldr r0, _080B8D50 @ =sub_8075590 + str r0, [r6, 0x1C] + ldr r1, _080B8D54 @ =move_anim_8074EE0 + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8D48: .4byte gBattleAnimTarget +_080B8D4C: .4byte gBattleAnimArgs +_080B8D50: .4byte sub_8075590 +_080B8D54: .4byte move_anim_8074EE0 + thumb_func_end sub_80B8CC8 + + thumb_func_start sub_80B8D58 +sub_80B8D58: @ 80B8D58 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x1 + ldr r3, _080B8DB8 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B8DBC @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r6, _080B8DC0 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080B8DCC + ldr r4, _080B8DC4 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x2] + adds r0, r2 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r6, 0x4] + adds r0, r3 + strh r0, [r5, 0x22] + movs r1, 0x2 + ldrsh r0, [r6, r1] + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + ble _080B8DB2 + movs r1, 0x1 +_080B8DB2: + strh r1, [r5, 0x2E] + ldr r0, _080B8DC8 @ =sub_80B8DE8 + b _080B8DDA + .align 2, 0 +_080B8DB8: .4byte 0x000003ff +_080B8DBC: .4byte 0xfffffc00 +_080B8DC0: .4byte gBattleAnimArgs +_080B8DC4: .4byte gBattleAnimAttacker +_080B8DC8: .4byte sub_80B8DE8 +_080B8DCC: + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x20] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x22] + negs r0, r0 + strh r0, [r5, 0x26] + ldr r0, _080B8DE4 @ =sub_80B8E24 +_080B8DDA: + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B8DE4: .4byte sub_80B8E24 + thumb_func_end sub_80B8D58 + + thumb_func_start sub_80B8DE8 +sub_80B8DE8: @ 80B8DE8 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B8E06 + movs r0, 0 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] +_080B8E06: + ldrh r0, [r2, 0x22] + subs r0, 0x4 + strh r0, [r2, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x4 + negs r1, r1 + cmp r0, r1 + bge _080B8E1E + adds r0, r2, 0 + bl DestroyAnimSprite +_080B8E1E: + pop {r0} + bx r0 + thumb_func_end sub_80B8DE8 + + thumb_func_start sub_80B8E24 +sub_80B8E24: @ 80B8E24 + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _080B8E36 + cmp r1, 0x1 + beq _080B8E4C + b _080B8E8E +_080B8E36: + ldrh r0, [r3, 0x26] + adds r0, 0x4 + strh r0, [r3, 0x26] + lsls r0, 16 + cmp r0, 0 + blt _080B8E8E + strh r1, [r3, 0x26] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080B8E8E +_080B8E4C: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + cmp r0, 0 + ble _080B8E8E + movs r0, 0 + strh r0, [r3, 0x30] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r2, [r1] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080B8E8E + adds r0, r3, 0 + bl DestroyAnimSprite +_080B8E8E: + pop {r0} + bx r0 + thumb_func_end sub_80B8E24 + + thumb_func_start sub_80B8E94 +sub_80B8E94: @ 80B8E94 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B8EB4 @ =gTasks + adds r1, r0, r1 + ldr r0, _080B8EB8 @ =gBattleAnimArgs + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080B8EC0 + ldr r0, _080B8EBC @ =sub_80B8ED4 + b _080B8EC2 + .align 2, 0 +_080B8EB4: .4byte gTasks +_080B8EB8: .4byte gBattleAnimArgs +_080B8EBC: .4byte sub_80B8ED4 +_080B8EC0: + ldr r0, _080B8ED0 @ =sub_80B908C +_080B8EC2: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, 0 + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B8ED0: .4byte sub_80B908C + thumb_func_end sub_80B8E94 + + thumb_func_start sub_80B8ED4 +sub_80B8ED4: @ 80B8ED4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B8EF8 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080B8EEE + b _080B9082 +_080B8EEE: + lsls r0, 2 + ldr r1, _080B8EFC @ =_080B8F00 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B8EF8: .4byte gTasks +_080B8EFC: .4byte _080B8F00 + .align 2, 0 +_080B8F00: + .4byte _080B8F14 + .4byte _080B8F9C + .4byte _080B8FAC + .4byte _080B9050 + .4byte _080B9064 +_080B8F14: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r0, _080B8F3C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + cmp r0, 0x1 + bne _080B8F48 + ldr r0, _080B8F40 @ =gBattle_BG1_X + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080B8F44 @ =gBattle_BG1_Y + b _080B8F50 + .align 2, 0 +_080B8F3C: .4byte gBattleAnimAttacker +_080B8F40: .4byte gBattle_BG1_X +_080B8F44: .4byte gBattle_BG1_Y +_080B8F48: + ldr r0, _080B8F8C @ =gBattle_BG2_X + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080B8F90 @ =gBattle_BG2_Y +_080B8F50: + ldrh r0, [r0] + strh r0, [r4, 0x22] + ldr r0, _080B8F94 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0x24] + adds r0, 0x20 + strh r0, [r4, 0x26] + cmp r1, 0 + bge _080B8F72 + movs r0, 0 + strh r0, [r4, 0x24] +_080B8F72: + ldr r2, _080B8F98 @ =gSprites + movs r3, 0x1C + ldrsh r1, [r4, r3] + 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] + b _080B9056 + .align 2, 0 +_080B8F8C: .4byte gBattle_BG2_X +_080B8F90: .4byte gBattle_BG2_Y +_080B8F94: .4byte gBattleAnimAttacker +_080B8F98: .4byte gSprites +_080B8F9C: + ldrb r0, [r4, 0x1E] + movs r2, 0x24 + ldrsh r1, [r4, r2] + movs r3, 0x26 + ldrsh r2, [r4, r3] + bl sub_80B92B8 + b _080B9056 +_080B8FAC: + ldrh r0, [r4, 0xC] + adds r0, 0x6 + movs r1, 0x7F + ands r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080B8FCE + movs r0, 0 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] +_080B8FCE: + ldr r1, _080B8FF0 @ =gSineTable + movs r2, 0xC + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + ldrh r3, [r4, 0xE] + adds r2, r0, r3 + strh r2, [r4, 0x12] + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080B8FF8 + ldr r1, _080B8FF4 @ =gBattle_BG1_Y + b _080B8FFA + .align 2, 0 +_080B8FF0: .4byte gSineTable +_080B8FF4: .4byte gBattle_BG1_Y +_080B8FF8: + ldr r1, _080B901C @ =gBattle_BG2_Y +_080B8FFA: + ldrh r0, [r4, 0x22] + subs r0, r2 + strh r0, [r1] + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0x3F + ble _080B9082 + ldrh r0, [r4, 0x24] + movs r1, 0x78 + subs r2, r1, r0 + strh r2, [r4, 0x12] + movs r3, 0x1E + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080B9024 + ldr r1, _080B9020 @ =gBattle_BG1_Y + b _080B9026 + .align 2, 0 +_080B901C: .4byte gBattle_BG2_Y +_080B9020: .4byte gBattle_BG1_Y +_080B9024: + ldr r1, _080B9048 @ =gBattle_BG2_Y +_080B9026: + ldrh r0, [r4, 0x22] + subs r0, r2 + strh r0, [r1] + ldr r2, _080B904C @ =gSprites + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x20] + movs r3, 0x88 + lsls r3, 1 + adds r0, r3, 0 + subs r0, r2 + strh r0, [r1, 0x24] + b _080B9056 + .align 2, 0 +_080B9048: .4byte gBattle_BG2_Y +_080B904C: .4byte gSprites +_080B9050: + ldr r1, _080B9060 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_080B9056: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B9082 + .align 2, 0 +_080B9060: .4byte gScanlineEffect +_080B9064: + adds r0, r2, 0 + bl DestroyAnimVisualTask + ldr r2, _080B9088 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + 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] +_080B9082: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9088: .4byte gSprites + thumb_func_end sub_80B8ED4 + + thumb_func_start sub_80B908C +sub_80B908C: @ 80B908C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B90CC @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r3] + movs r4, 0 + strh r4, [r1, 0x24] + strh r4, [r1, 0x26] + ldr r0, _080B90D0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B90D8 + ldr r0, _080B90D4 @ =gBattle_BG1_Y + b _080B90DA + .align 2, 0 +_080B90CC: .4byte gSprites +_080B90D0: .4byte gBattleAnimAttacker +_080B90D4: .4byte gBattle_BG1_Y +_080B90D8: + ldr r0, _080B90E8 @ =gBattle_BG2_Y +_080B90DA: + strh r4, [r0] + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B90E8: .4byte gBattle_BG2_Y + thumb_func_end sub_80B908C + + thumb_func_start sub_80B90EC +sub_80B90EC: @ 80B90EC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B910C @ =gTasks + adds r1, r0, r1 + ldr r0, _080B9110 @ =gBattleAnimArgs + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080B9118 + ldr r0, _080B9114 @ =sub_80B912C + b _080B911A + .align 2, 0 +_080B910C: .4byte gTasks +_080B9110: .4byte gBattleAnimArgs +_080B9114: .4byte sub_80B912C +_080B9118: + ldr r0, _080B9128 @ =sub_80B91B0 +_080B911A: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, 0 + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B9128: .4byte sub_80B91B0 + thumb_func_end sub_80B90EC + + thumb_func_start sub_80B912C +sub_80B912C: @ 80B912C + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B914C @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080B9150 + cmp r5, 0x1 + beq _080B91A4 + b _080B91AA + .align 2, 0 +_080B914C: .4byte gTasks +_080B9150: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r3, _080B91A0 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r5, [r0, 0x24] + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x22] + movs r0, 0xA0 + subs r0, r2 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B91AA + .align 2, 0 +_080B91A0: .4byte gSprites +_080B91A4: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B91AA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B912C + + thumb_func_start sub_80B91B0 +sub_80B91B0: @ 80B91B0 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B91D4 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _080B92B2 + lsls r0, 2 + ldr r1, _080B91D8 @ =_080B91DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B91D4: .4byte gTasks +_080B91D8: .4byte _080B91DC + .align 2, 0 +_080B91DC: + .4byte _080B91F0 + .4byte _080B9244 + .4byte _080B9252 + .4byte _080B926C + .4byte _080B92AC +_080B91F0: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r0, _080B9214 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + cmp r0, 0x1 + bne _080B921C + ldr r0, _080B9218 @ =gBattle_BG1_X + b _080B921E + .align 2, 0 +_080B9214: .4byte gBattleAnimAttacker +_080B9218: .4byte gBattle_BG1_X +_080B921C: + ldr r0, _080B923C @ =gBattle_BG2_X +_080B921E: + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080B9240 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0x24] + adds r0, 0x20 + strh r0, [r4, 0x26] + b _080B929A + .align 2, 0 +_080B923C: .4byte gBattle_BG2_X +_080B9240: .4byte gBattleAnimAttacker +_080B9244: + ldrb r0, [r4, 0x1E] + movs r1, 0x26 + ldrsh r2, [r4, r1] + movs r1, 0 + bl sub_80B92B8 + b _080B929A +_080B9252: + ldr r2, _080B9268 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x60 + strh r1, [r0, 0x26] + b _080B929A + .align 2, 0 +_080B9268: .4byte gSprites +_080B926C: + ldr r2, _080B92A4 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x8 + strh r1, [r0, 0x26] + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x26 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B92B2 + ldr r1, _080B92A8 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_080B929A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B92B2 + .align 2, 0 +_080B92A4: .4byte gSprites +_080B92A8: .4byte gScanlineEffect +_080B92AC: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B92B2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B91B0 + + thumb_func_start sub_80B92B8 +sub_80B92B8: @ 80B92B8 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + cmp r0, 0x1 + bne _080B92DC + ldr r0, _080B92D4 @ =gBattle_BG1_X + ldrh r3, [r0] + ldr r0, _080B92D8 @ =0x04000014 + b _080B92E2 + .align 2, 0 +_080B92D4: .4byte gBattle_BG1_X +_080B92D8: .4byte 0x04000014 +_080B92DC: + ldr r0, _080B9368 @ =gBattle_BG2_X + ldrh r3, [r0] + ldr r0, _080B936C @ =0x04000018 +_080B92E2: + str r0, [sp] + lsls r0, r1, 16 + cmp r0, 0 + bge _080B92EC + movs r1, 0 +_080B92EC: + lsls r2, r1, 16 + lsls r0, r4, 16 + asrs r4, r0, 16 + cmp r2, r0 + bge _080B9318 + ldr r5, _080B9370 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080B92FE: + asrs r2, 16 + lsls r1, r2, 1 + adds r0, r1, r5 + strh r3, [r0] + adds r1, r6 + strh r3, [r1] + adds r2, 0x1 + lsls r2, 16 + lsrs r1, r2, 16 + lsls r2, r1, 16 + asrs r0, r2, 16 + cmp r0, r4 + blt _080B92FE +_080B9318: + lsls r1, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080B9346 + ldr r4, _080B9370 @ =gScanlineEffectRegBuffers + lsls r0, r3, 16 + asrs r0, 16 + adds r3, r0, 0 + adds r3, 0xF0 + movs r0, 0xF0 + lsls r0, 3 + adds r5, r4, r0 +_080B9330: + asrs r2, r1, 16 + lsls r1, r2, 1 + adds r0, r1, r4 + strh r3, [r0] + adds r1, r5 + strh r3, [r1] + adds r2, 0x1 + lsls r1, r2, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080B9330 +_080B9346: + ldr r0, _080B9374 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9368: .4byte gBattle_BG2_X +_080B936C: .4byte 0x04000018 +_080B9370: .4byte gScanlineEffectRegBuffers +_080B9374: .4byte 0xa2600001 + thumb_func_end sub_80B92B8 + + thumb_func_start sub_80B9378 +sub_80B9378: @ 80B9378 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080B938C @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + adds r7, r0, 0 + cmp r1, 0 + bne _080B9394 + ldr r0, _080B9390 @ =gBattleAnimAttacker + b _080B9396 + .align 2, 0 +_080B938C: .4byte gBattleAnimArgs +_080B9390: .4byte gBattleAnimAttacker +_080B9394: + ldr r0, _080B93F8 @ =gBattleAnimTarget +_080B9396: + ldrb r4, [r0] + movs r6, 0x18 + adds r1, r7, 0 + movs r2, 0x2 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _080B93B2 + negs r0, r6 + lsls r0, 16 + lsrs r6, r0, 16 + movs r2, 0x4 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x4] +_080B93B2: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x20] + adds r0, r4, 0 + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1E + strh r0, [r5, 0x22] + ldrh r1, [r7, 0xA] + strh r1, [r5, 0x2E] + ldrh r1, [r7, 0x4] + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x32] + ldrh r1, [r7, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r7, 0x8] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_8075068 + ldr r0, _080B93FC @ =sub_80B9400 + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B93F8: .4byte gBattleAnimTarget +_080B93FC: .4byte sub_80B9400 + thumb_func_end sub_80B9378 + + thumb_func_start sub_80B9400 +sub_80B9400: @ 80B9400 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B9414 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B9414: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B9400 + + thumb_func_start sub_80B941C +sub_80B941C: @ 80B941C + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080B9430 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B9438 + ldr r0, _080B9434 @ =gBattleAnimAttacker + b _080B943A + .align 2, 0 +_080B9430: .4byte gBattleAnimArgs +_080B9434: .4byte gBattleAnimAttacker +_080B9438: + ldr r0, _080B9498 @ =gBattleAnimTarget +_080B943A: + ldrb r5, [r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B949C @ =0x0000fff0 + adds r0, r2 + ldr r4, _080B94A0 @ =gBattleAnimArgs + movs r3, 0x2 + ldrsh r1, [r4, r3] + lsls r1, 5 + adds r0, r1 + strh r0, [r6, 0x20] + adds r0, r5, 0 + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r6, 0x22] + ldrh r2, [r6, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x2 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r1, r0 + ldr r3, _080B94A4 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B94A8 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r6, 0x4] + ldr r1, _080B94AC @ =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x2E] + ldr r0, _080B94B0 @ =sub_8074C44 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9498: .4byte gBattleAnimTarget +_080B949C: .4byte 0x0000fff0 +_080B94A0: .4byte gBattleAnimArgs +_080B94A4: .4byte 0x000003ff +_080B94A8: .4byte 0xfffffc00 +_080B94AC: .4byte DestroyAnimSprite +_080B94B0: .4byte sub_8074C44 + thumb_func_end sub_80B941C + + thumb_func_start sub_80B94B4 +sub_80B94B4: @ 80B94B4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B94D8 @ =gTasks + adds r4, r0, r1 + ldr r0, _080B94DC @ =gBattleAnimArgs + ldrh r2, [r0, 0x2] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r6, r0, 0 + cmp r1, 0 + beq _080B94E0 + adds r0, r2, 0x3 + b _080B94EC + .align 2, 0 +_080B94D8: .4byte gTasks +_080B94DC: .4byte gBattleAnimArgs +_080B94E0: + ldr r0, _080B950C @ =gUnknown_2037EEC + ldrh r0, [r0] + movs r1, 0xA + bl __udivsi3 + adds r0, 0x3 +_080B94EC: + strh r0, [r4, 0x26] + strh r0, [r4, 0x24] + adds r1, r6, 0 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0xE] + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + beq _080B9518 + cmp r0, 0x5 + bne _080B9558 + ldr r0, _080B9510 @ =gBattle_BG3_X + ldrh r0, [r0] + strh r0, [r4, 0x22] + ldr r0, _080B9514 @ =sub_80B9584 + b _080B9576 + .align 2, 0 +_080B950C: .4byte gUnknown_2037EEC +_080B9510: .4byte gBattle_BG3_X +_080B9514: .4byte sub_80B9584 +_080B9518: + movs r0, 0 + strh r0, [r4, 0x22] + movs r5, 0 +_080B951E: + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B9548 + movs r3, 0x22 + ldrsh r0, [r4, r3] + adds r0, 0x9 + lsls r0, 1 + adds r1, r4, 0 + adds r1, 0x8 + adds r1, r0 + ldr r0, _080B9554 @ =gBattlerSpriteIds + adds r0, r5, r0 + ldrb r0, [r0] + strh r0, [r1] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_080B9548: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080B951E + b _080B9574 + .align 2, 0 +_080B9554: .4byte gBattlerSpriteIds +_080B9558: + ldrb r0, [r6] + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + cmp r0, 0xFF + bne _080B9570 + adds r0, r5, 0 + bl DestroyAnimVisualTask + b _080B9578 +_080B9570: + movs r0, 0x1 + strh r0, [r4, 0x22] +_080B9574: + ldr r0, _080B9580 @ =sub_80B967C +_080B9576: + str r0, [r4] +_080B9578: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9580: .4byte sub_80B967C + thumb_func_end sub_80B94B4 + + thumb_func_start sub_80B9584 +sub_80B9584: @ 80B9584 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B95A8 @ =gTasks + adds r3, r0, r1 + movs r0, 0x8 + ldrsh r1, [r3, r0] + cmp r1, 0x1 + beq _080B9608 + cmp r1, 0x1 + bgt _080B95AC + cmp r1, 0 + beq _080B95B2 + b _080B9674 + .align 2, 0 +_080B95A8: .4byte gTasks +_080B95AC: + cmp r1, 0x2 + beq _080B9668 + b _080B9674 +_080B95B2: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B9674 + strh r1, [r3, 0xA] + ldrh r1, [r3, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080B95DC + ldr r1, _080B95D8 @ =gBattle_BG3_X + ldrh r0, [r3, 0x26] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r1] + b _080B95E6 + .align 2, 0 +_080B95D8: .4byte gBattle_BG3_X +_080B95DC: + ldr r0, _080B9604 @ =gBattle_BG3_X + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x26] + subs r1, r2 + strh r1, [r0] +_080B95E6: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xE + ldrsh r1, [r3, r2] + cmp r0, r1 + bne _080B9674 + movs r0, 0 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x24] + subs r0, 0x1 + strh r0, [r3, 0x24] + b _080B965C + .align 2, 0 +_080B9604: .4byte gBattle_BG3_X +_080B9608: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B9674 + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r0, [r3, 0xC] + ands r1, r0 + cmp r1, 0 + bne _080B9634 + ldr r1, _080B9630 @ =gBattle_BG3_X + ldrh r0, [r3, 0x24] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r1] + b _080B963E + .align 2, 0 +_080B9630: .4byte gBattle_BG3_X +_080B9634: + ldr r0, _080B9664 @ =gBattle_BG3_X + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x24] + subs r1, r2 + strh r1, [r0] +_080B963E: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080B9674 + movs r0, 0 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x24] + subs r0, 0x1 + strh r0, [r3, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080B9674 +_080B965C: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080B9674 + .align 2, 0 +_080B9664: .4byte gBattle_BG3_X +_080B9668: + ldr r1, _080B9678 @ =gBattle_BG3_X + ldrh r0, [r3, 0x22] + strh r0, [r1] + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B9674: + pop {r0} + bx r0 + .align 2, 0 +_080B9678: .4byte gBattle_BG3_X + thumb_func_end sub_80B9584 + + thumb_func_start sub_80B967C +sub_80B967C: @ 80B967C + push {r4-r7,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080B96A0 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080B96DC + cmp r5, 0x1 + bgt _080B96A4 + cmp r5, 0 + beq _080B96AA + b _080B9756 + .align 2, 0 +_080B96A0: .4byte gTasks +_080B96A4: + cmp r5, 0x2 + beq _080B9718 + b _080B9756 +_080B96AA: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B9756 + strh r5, [r4, 0xA] + adds r0, r4, 0 + bl sub_80B9760 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080B9756 + strh r5, [r4, 0xC] + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + b _080B9710 +_080B96DC: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B9756 + strh r5, [r4, 0xA] + adds r0, r4, 0 + bl sub_80B9760 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080B9756 + strh r5, [r4, 0xC] + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080B9756 +_080B9710: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B9756 +_080B9718: + movs r2, 0 + movs r7, 0x22 + ldrsh r0, [r4, r7] + cmp r2, r0 + bge _080B9750 + ldr r0, _080B975C @ =gSprites + mov r12, r0 + adds r5, r4, 0 + adds r5, 0x8 + movs r6, 0 +_080B972C: + adds r0, r2, 0 + adds r0, 0x9 + lsls r0, 1 + adds r0, r5, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r12 + strh r6, [r0, 0x24] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _080B972C +_080B9750: + adds r0, r3, 0 + bl DestroyAnimVisualTask +_080B9756: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B975C: .4byte gSprites + thumb_func_end sub_80B967C + + thumb_func_start sub_80B9760 +sub_80B9760: @ 80B9760 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0xC] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080B9788 + movs r0, 0x24 + ldrsh r1, [r3, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r2, [r3, 0x24] + adds r0, r4, 0 + ands r0, r2 + adds r1, r0 + lsls r1, 16 + lsrs r4, r1, 16 + b _080B9798 +_080B9788: + movs r1, 0x24 + ldrsh r0, [r3, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + negs r0, r0 + lsls r0, 16 + lsrs r4, r0, 16 +_080B9798: + movs r2, 0 + movs r7, 0x22 + ldrsh r0, [r3, r7] + cmp r2, r0 + bge _080B97CC + ldr r6, _080B97D4 @ =gSprites + adds r5, r3, 0 + adds r5, 0x8 +_080B97A8: + adds r0, r2, 0 + adds r0, 0x9 + lsls r0, 1 + adds r0, r5, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r4, [r0, 0x24] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x22 + ldrsh r0, [r3, r1] + cmp r2, r0 + blt _080B97A8 +_080B97CC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B97D4: .4byte gSprites + thumb_func_end sub_80B9760 + + thumb_func_start sub_80B97D8 +sub_80B97D8: @ 80B97D8 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, _080B97F8 @ =gBattleAnimArgs + movs r2, 0 + ldr r0, _080B97FC @ =gUnknown_2037EEC + ldrh r0, [r0] + cmp r0, 0x63 + bls _080B97EC + movs r2, 0x1 +_080B97EC: + strh r2, [r3, 0x1E] + adds r0, r1, 0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080B97F8: .4byte gBattleAnimArgs +_080B97FC: .4byte gUnknown_2037EEC + thumb_func_end sub_80B97D8 + + thumb_func_start sub_80B9800 +sub_80B9800: @ 80B9800 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _080B9818 @ =gBattleAnimArgs + ldrh r1, [r2] + movs r0, 0x1 + ands r0, r1 + adds r6, r2, 0 + cmp r0, 0 + beq _080B9820 + ldr r0, _080B981C @ =gBattleAnimTarget + b _080B9822 + .align 2, 0 +_080B9818: .4byte gBattleAnimArgs +_080B981C: .4byte gBattleAnimTarget +_080B9820: + ldr r0, _080B9890 @ =gBattleAnimAttacker +_080B9822: + ldrb r0, [r0] + adds r5, r0, 0 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + ble _080B9832 + movs r0, 0x2 + eors r5, r0 +_080B9832: + ldr r0, _080B9894 @ =sub_80B98A8 + ldrb r1, [r6, 0x2] + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080B9898 @ =gTasks + adds r4, r0 + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x20 + subs r1, r0 + ldr r2, _080B989C @ =0x000001ff + adds r0, r2, 0 + ands r1, r0 + strh r1, [r4, 0xA] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x40 + subs r1, r0 + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0xC] + ldr r2, _080B98A0 @ =gBattle_BG3_X + ldrh r0, [r4, 0xA] + strh r0, [r2] + ldr r0, _080B98A4 @ =gBattle_BG3_Y + strh r1, [r0] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0xE] + adds r0, r7, 0 + bl DestroyAnimVisualTask + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9890: .4byte gBattleAnimAttacker +_080B9894: .4byte sub_80B98A8 +_080B9898: .4byte gTasks +_080B989C: .4byte 0x000001ff +_080B98A0: .4byte gBattle_BG3_X +_080B98A4: .4byte gBattle_BG3_Y + thumb_func_end sub_80B9800 + + thumb_func_start sub_80B98A8 +sub_80B98A8: @ 80B98A8 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080B98D8 @ =gTasks + adds r2, r0, r1 + ldr r0, _080B98DC @ =gBattleAnimArgs + movs r4, 0xE + ldrsh r1, [r0, r4] + movs r4, 0xE + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _080B98E8 + ldr r0, _080B98E0 @ =gBattle_BG3_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080B98E4 @ =gBattle_BG3_Y + strh r1, [r0] + adds r0, r3, 0 + bl DestroyTask + b _080B98F4 + .align 2, 0 +_080B98D8: .4byte gTasks +_080B98DC: .4byte gBattleAnimArgs +_080B98E0: .4byte gBattle_BG3_X +_080B98E4: .4byte gBattle_BG3_Y +_080B98E8: + ldr r1, _080B98FC @ =gBattle_BG3_X + ldrh r0, [r2, 0xA] + strh r0, [r1] + ldr r1, _080B9900 @ =gBattle_BG3_Y + ldrh r0, [r2, 0xC] + strh r0, [r1] +_080B98F4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B98FC: .4byte gBattle_BG3_X +_080B9900: .4byte gBattle_BG3_Y + thumb_func_end sub_80B98A8 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index 147bc65c0..97bf9ef64 100644 --- a/asm/hall_of_fame.s +++ b/asm/hall_of_fame.s @@ -508,7 +508,7 @@ _080F21B2: bl memcpy movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _080F2214 @ =gUnknown_8419F54 movs r0, 0 str r0, [sp] @@ -521,7 +521,7 @@ _080F21B2: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -692,7 +692,7 @@ _080F22F2: ldr r3, _080F238C @ =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 24 lsrs r0, 24 ldr r3, _080F2390 @ =gSprites @@ -723,7 +723,7 @@ _080F22F2: strh r0, [r1] movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame adds r4, r5 ldr r0, _080F239C @ =sub_80F23A0 str r0, [r4] @@ -1172,7 +1172,7 @@ sub_80F26D4: @ 80F26D4 ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 16 lsrs r0, 16 movs r1, 0x6 @@ -1182,7 +1182,7 @@ sub_80F26D4: @ 80F26D4 movs r1, 0x1 movs r2, 0x78 movs r3, 0x48 - bl sub_810C2A4 + bl CreateTrainerPicSprite ldr r1, _080F2750 @ =gTasks lsls r4, r5, 2 adds r4, r5 @@ -1194,7 +1194,7 @@ sub_80F26D4: @ 80F26D4 ldr r1, _080F2758 @ =0x0000021d movs r0, 0x1 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0x78 strh r0, [r4, 0xE] ldr r0, _080F275C @ =Task_Hof_WaitAndPrintPlayerInfo @@ -1265,7 +1265,7 @@ _080F27AC: bl sub_80F33DC movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _080F27FC @ =gUnknown_84160C8 str r5, [sp] movs r0, 0x2 @@ -1277,7 +1277,7 @@ _080F27AC: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -1383,7 +1383,7 @@ _080F28AC: ldrb r0, [r4] cmp r0, 0xFF beq _080F28B6 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite _080F28B6: adds r4, 0x2 subs r5, 0x1 @@ -1394,7 +1394,7 @@ _080F28B6: lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x10] - bl sub_810C2E8 + bl FreeAndDestroyTrainerPicSprite movs r0, 0 bl HideBg movs r0, 0x1 @@ -1459,8 +1459,8 @@ sub_80F2934: @ 80F2934 movs r1, 0x9 movs r3, 0xB bl Overworld_SetWarpDestination - bl sub_807E438 - bl sub_80559E4 + bl DoWarp + bl ResetInitialPlayerAvatarState add sp, 0x4 pop {r0} bx r0 @@ -1607,7 +1607,7 @@ sub_80F2AA4: @ 80F2AA4 movs r1, 0x1E movs r2, 0 movs r3, 0xC - bl sub_810F558 + bl CreateWindow_SnapRight_StdPal movs r0, 0x3 bl Save_LoadGameData lsls r0, 24 @@ -1825,7 +1825,7 @@ _080F2C4C: ldr r3, _080F2CA0 @ =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r0, 16 ldr r2, _080F2CA4 @ =gSprites @@ -1888,13 +1888,13 @@ _080F2CB4: ldrsh r0, [r4, r1] cmp r0, 0 bgt _080F2D24 - ldr r1, _080F2D20 @ =gUnknown_8415D78 + ldr r1, _080F2D20 @ =gText_UPDOWNPick_ABUTTONBBUTTONCancel movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r2, 0 movs r3, 0 - bl sub_810F650 + bl Menu_PrintHelpSystemUIHeader b _080F2D34 .align 2, 0 _080F2D08: .4byte 0xffff0000 @@ -1903,15 +1903,15 @@ _080F2D10: .4byte gStringVar1 _080F2D14: .4byte gTasks _080F2D18: .4byte gStringVar4 _080F2D1C: .4byte gUnknown_84160B4 -_080F2D20: .4byte gUnknown_8415D78 +_080F2D20: .4byte gText_UPDOWNPick_ABUTTONBBUTTONCancel _080F2D24: - ldr r1, _080F2D54 @ =gUnknown_8415D60 + ldr r1, _080F2D54 @ =gText_UPDOWNPick_ABUTTONNext_BBUTTONBack movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r2, 0 movs r3, 0 - bl sub_810F650 + bl Menu_PrintHelpSystemUIHeader _080F2D34: ldr r0, _080F2D58 @ =gTasks ldr r1, [sp, 0x14] @@ -1929,7 +1929,7 @@ _080F2D34: pop {r0} bx r0 .align 2, 0 -_080F2D54: .4byte gUnknown_8415D60 +_080F2D54: .4byte gText_UPDOWNPick_ABUTTONNext_BBUTTONBack _080F2D58: .4byte gTasks _080F2D5C: .4byte Task_HofPC_PrintMonInfo thumb_func_end sub_80F2B6C @@ -2118,7 +2118,7 @@ _080F2EC4: ldrb r0, [r0] cmp r0, 0xFF beq _080F2ED6 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite _080F2ED6: adds r0, r4, 0x1 lsls r0, 16 @@ -2339,13 +2339,13 @@ sub_80F30A4: @ 80F30A4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080F30FC @ =gUnknown_8415D8C + ldr r0, _080F30FC @ =gText_ABUTTONExit movs r1, 0x8 movs r2, 0x1 - bl sub_810F5E8 + bl PrintTextOnRightSnappedWindow movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _080F3100 @ =gUnknown_8416090 movs r0, 0 str r0, [sp] @@ -2358,7 +2358,7 @@ sub_80F30A4: @ 80F30A4 movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -2374,7 +2374,7 @@ sub_80F30A4: @ 80F30A4 pop {r0} bx r0 .align 2, 0 -_080F30FC: .4byte gUnknown_8415D8C +_080F30FC: .4byte gText_ABUTTONExit _080F3100: .4byte gUnknown_8416090 _080F3104: .4byte gTasks _080F3108: .4byte Task_HofPC_ExitOnButtonPress @@ -2436,7 +2436,7 @@ HallOfFame_PrintWelcomeText: @ 80F313C movs r1, 0x2 adds r2, r4, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -2535,7 +2535,7 @@ _080F322E: movs r1, 0x2 movs r2, 0x10 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _080F3252: movs r2, 0 ldrb r0, [r7, 0xA] @@ -2606,7 +2606,7 @@ _080F32C4: movs r0, 0 movs r1, 0x2 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldrh r2, [r7, 0x8] ldr r4, _080F3320 @ =0x000001ff adds r0, r4, 0 @@ -2676,7 +2676,7 @@ _080F3348: movs r1, 0x2 movs r2, 0x80 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, _080F33D4 @ =gUnknown_84160F4 add r0, sp, 0xC bl StringCopy @@ -2694,7 +2694,7 @@ _080F3348: movs r1, 0x2 movs r2, 0x20 movs r3, 0x11 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, _080F33D8 @ =gUnknown_8416104 add r0, sp, 0xC bl StringCopy @@ -2711,7 +2711,7 @@ _080F3348: movs r1, 0x2 movs r2, 0x60 movs r3, 0x11 - bl box_print + bl AddTextPrinterParameterized3 _080F33BA: movs r0, 0 movs r1, 0x3 @@ -2764,7 +2764,7 @@ sub_80F33DC: @ 80F33DC movs r1, 0x2 movs r2, 0x4 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r0, _080F35FC @ =gSaveBlock2Ptr mov r10, r0 ldr r1, [r0] @@ -2785,7 +2785,7 @@ sub_80F33DC: @ 80F33DC movs r0, 0x1 movs r1, 0x2 movs r3, 0x3 - bl box_print + bl AddTextPrinterParameterized3 mov r1, r10 ldr r0, [r1] ldrb r4, [r0, 0xA] @@ -2801,7 +2801,7 @@ sub_80F33DC: @ 80F33DC movs r1, 0x2 movs r2, 0x4 movs r3, 0x12 - bl box_print + bl AddTextPrinterParameterized3 add r1, sp, 0x14 mov r8, r1 ldr r1, _080F3604 @ =0x000186a0 @@ -2869,7 +2869,7 @@ sub_80F33DC: @ 80F33DC movs r1, 0x2 adds r2, r6, 0 movs r3, 0x12 - bl box_print + bl AddTextPrinterParameterized3 mov r1, r9 str r1, [sp] str r7, [sp, 0x4] @@ -2879,7 +2879,7 @@ sub_80F33DC: @ 80F33DC movs r1, 0x2 movs r2, 0x4 movs r3, 0x20 - bl box_print + bl AddTextPrinterParameterized3 add r5, sp, 0x14 mov r0, r10 ldr r4, [r0] @@ -2957,7 +2957,7 @@ _080F3582: movs r0, 0x1 movs r1, 0x2 movs r3, 0x20 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram @@ -3070,11 +3070,11 @@ _080F36B8: .4byte gUnknown_840C39C thumb_func_start sub_80F36BC sub_80F36BC: @ 80F36BC push {lr} - bl remove_some_task + bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData bl reset_temp_tile_data_buffers - bl dp13_810BB8C + bl ResetAllPicSprites bl FreeAllSpritePalettes ldr r1, _080F36EC @ =gReservedSpritePaletteCount movs r0, 0x8 @@ -3223,8 +3223,8 @@ _080F37C8: bl CopyBgTilemapBufferToVram b _080F3854 _080F381E: - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 b _080F3854 _080F3828: movs r1, 0x82 @@ -3353,7 +3353,7 @@ _080F38EE: movs r1, 0x3 ands r0, r1 adds r0, 0x8 - ldr r1, _080F392C @ =gUnknown_825E074 + ldr r1, _080F392C @ =gSineTable lsls r4, 1 adds r4, r1 movs r2, 0 @@ -3373,7 +3373,7 @@ _080F3926: pop {r0} bx r0 .align 2, 0 -_080F392C: .4byte gUnknown_825E074 +_080F392C: .4byte gSineTable thumb_func_end sub_80F38D8 thumb_func_start sub_80F3930 diff --git a/asm/heal_location.s b/asm/heal_location.s deleted file mode 100644 index 34eb1461b..000000000 --- a/asm/heal_location.s +++ /dev/null @@ -1,254 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GetHealLocationIndexFromMapGroupAndNum -GetHealLocationIndexFromMapGroupAndNum: @ 80BFC50 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r1, 16 - movs r3, 0 - ldr r2, _080BFC74 @ =gUnknown_83EEBF8 -_080BFC5E: - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, r4 - bne _080BFC78 - movs r0, 0x1 - ldrsb r0, [r2, r0] - cmp r0, r1 - bne _080BFC78 - adds r0, r3, 0x1 - b _080BFC82 - .align 2, 0 -_080BFC74: .4byte gUnknown_83EEBF8 -_080BFC78: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, 0x13 - bls _080BFC5E - movs r0, 0 -_080BFC82: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetHealLocationIndexFromMapGroupAndNum - - thumb_func_start GetHealLocationPointerFromMapGroupAndNum -GetHealLocationPointerFromMapGroupAndNum: @ 80BFC88 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - bl GetHealLocationIndexFromMapGroupAndNum - cmp r0, 0 - beq _080BFCA8 - lsls r0, 3 - ldr r1, _080BFCA4 @ =gUnknown_83EEBF0 - adds r0, r1 - b _080BFCAA - .align 2, 0 -_080BFCA4: .4byte gUnknown_83EEBF0 -_080BFCA8: - movs r0, 0 -_080BFCAA: - pop {r1} - bx r1 - thumb_func_end GetHealLocationPointerFromMapGroupAndNum - - thumb_func_start GetHealLocationPointer -GetHealLocationPointer: @ 80BFCB0 - push {lr} - cmp r0, 0 - beq _080BFCC8 - cmp r0, 0x14 - bhi _080BFCC8 - lsls r0, 3 - ldr r1, _080BFCC4 @ =gUnknown_83EEBF0 - adds r0, r1 - b _080BFCCA - .align 2, 0 -_080BFCC4: .4byte gUnknown_83EEBF0 -_080BFCC8: - movs r0, 0 -_080BFCCA: - pop {r1} - bx r1 - thumb_func_end GetHealLocationPointer - - thumb_func_start sub_80BFCD0 -sub_80BFCD0: @ 80BFCD0 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080BFD24 @ =0x00004082 - adds r0, r6, 0 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bne _080BFD38 - ldr r0, _080BFD28 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _080BFD2C @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _080BFD30 @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - blt _080BFD0A - adds r0, r6, 0 - movs r1, 0 - bl VarSet -_080BFD0A: - ldr r0, _080BFD34 @ =gSpecialVar_LastTalked - strh r5, [r0] - movs r0, 0x4 - strh r0, [r4, 0x4] - movs r0, 0xB - strh r0, [r4, 0x6] - movs r0, 0x2 - strb r0, [r4] - movs r0, 0xA - strb r0, [r4, 0x1] - movs r0, 0xFF - strb r0, [r4, 0x2] - b _080BFDFA - .align 2, 0 -_080BFD24: .4byte 0x00004082 -_080BFD28: .4byte gSaveBlock1Ptr -_080BFD2C: .4byte 0x00003d34 -_080BFD30: .4byte 0x00003d42 -_080BFD34: .4byte gSpecialVar_LastTalked -_080BFD38: - ldr r0, _080BFD7C @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x1C - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x1D] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl GetHealLocationIndexFromMapGroupAndNum - adds r6, r0, 0 - ldr r2, _080BFD80 @ =gUnknown_83EEC98 - subs r0, r6, 0x1 - lsls r0, 2 - adds r1, r0, r2 - ldrh r1, [r1] - strb r1, [r4] - adds r2, 0x2 - adds r0, r2 - ldrh r2, [r0] - strb r2, [r4, 0x1] - movs r0, 0xFF - strb r0, [r4, 0x2] - cmp r1, 0x4 - bne _080BFD84 - cmp r2, 0 - bne _080BFD84 - movs r0, 0x8 - strh r0, [r4, 0x4] - movs r0, 0x5 - b _080BFDF2 - .align 2, 0 -_080BFD7C: .4byte gSaveBlock1Ptr -_080BFD80: .4byte gUnknown_83EEC98 -_080BFD84: - ldr r0, _080BFDA4 @ =gUnknown_83EEC98 - subs r2, r6, 0x1 - lsls r3, r2, 2 - adds r1, r3, r0 - ldrh r1, [r1] - adds r5, r0, 0 - cmp r1, 0xD - bne _080BFDA8 - adds r0, r5, 0x2 - adds r0, r3, r0 - ldrh r0, [r0] - cmp r0, 0 - bne _080BFDA8 - strh r1, [r4, 0x4] - movs r0, 0xC - b _080BFDF2 - .align 2, 0 -_080BFDA4: .4byte gUnknown_83EEC98 -_080BFDA8: - lsls r1, r2, 2 - adds r0, r1, r5 - ldrh r0, [r0] - cmp r0, 0x20 - bne _080BFDC0 - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrh r0, [r0] - cmp r0, 0 - bne _080BFDC0 - movs r0, 0x5 - b _080BFDEE -_080BFDC0: - lsls r2, 2 - adds r0, r2, r5 - ldrh r0, [r0] - cmp r0, 0x2 - bne _080BFDEC - adds r0, r5, 0x2 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, 0xA - bne _080BFDEC - movs r0, 0x4 - strh r0, [r4, 0x4] - movs r0, 0xB - strh r0, [r4, 0x6] - ldr r0, _080BFDE8 @ =0x00004082 - movs r1, 0 - bl VarSet - b _080BFDF4 - .align 2, 0 -_080BFDE8: .4byte 0x00004082 -_080BFDEC: - movs r0, 0x7 -_080BFDEE: - strh r0, [r4, 0x4] - movs r0, 0x4 -_080BFDF2: - strh r0, [r4, 0x6] -_080BFDF4: - adds r0, r6, 0 - bl sub_80BFE00 -_080BFDFA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BFCD0 - - thumb_func_start sub_80BFE00 -sub_80BFE00: @ 80BFE00 - ldr r2, _080BFE10 @ =gSpecialVar_LastTalked - ldr r1, _080BFE14 @ =gUnknown_83EECE8 - subs r0, 0x1 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_080BFE10: .4byte gSpecialVar_LastTalked -_080BFE14: .4byte gUnknown_83EECE8 - thumb_func_end sub_80BFE00 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/help_system.s b/asm/help_system.s deleted file mode 100644 index 7026c65d5..000000000 --- a/asm/help_system.s +++ /dev/null @@ -1,2254 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_813B870 -sub_813B870: @ 813B870 - push {r4,r5,lr} - ldr r0, _0813B888 @ =gUnknown_203F178 - ldrb r0, [r0, 0x15] - cmp r0, 0x8 - bls _0813B87C - b _0813BB24 -_0813B87C: - lsls r0, 2 - ldr r1, _0813B88C @ =_0813B890 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813B888: .4byte gUnknown_203F178 -_0813B88C: .4byte _0813B890 - .align 2, 0 -_0813B890: - .4byte _0813B8B4 - .4byte _0813B968 - .4byte _0813B994 - .4byte _0813B9D8 - .4byte _0813BA40 - .4byte _0813BA78 - .4byte _0813BAA0 - .4byte _0813BAE0 - .4byte _0813BB14 -_0813B8B4: - ldr r1, _0813B904 @ =gUnknown_203F177 - movs r0, 0 - strb r0, [r1] - ldr r0, _0813B908 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - bne _0813B900 - ldr r2, _0813B90C @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0813B8DA - ldr r0, _0813B910 @ =gUnknown_203F175 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0813B900 -_0813B8DA: - ldrh r1, [r2, 0x2E] - movs r0, 0xC0 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _0813B8E8 - b _0813BB24 -_0813B8E8: - bl sub_812B45C - lsls r0, 24 - cmp r0, 0 - beq _0813B8FA - ldr r0, _0813B914 @ =gUnknown_3005ECC - ldrb r0, [r0] - cmp r0, 0 - bne _0813B918 -_0813B8FA: - movs r0, 0xFC - bl PlaySE -_0813B900: - movs r0, 0 - b _0813BB28 - .align 2, 0 -_0813B904: .4byte gUnknown_203F177 -_0813B908: .4byte gSaveBlock2Ptr -_0813B90C: .4byte gMain -_0813B910: .4byte gUnknown_203F175 -_0813B914: .4byte gUnknown_3005ECC -_0813B918: - ldr r0, _0813B94C @ =gMPlayInfo_SE1 - bl m4aMPlayStop - ldr r0, _0813B950 @ =gMPlayInfo_SE2 - bl m4aMPlayStop - movs r0, 0xFA - bl PlaySE - ldr r0, _0813B954 @ =gUnknown_203F174 - ldrb r0, [r0] - cmp r0, 0 - bne _0813B93C - ldr r0, _0813B958 @ =gMPlayInfo_BGM - ldr r1, _0813B95C @ =0x0000ffff - movs r2, 0x80 - bl m4aMPlayVolumeControl -_0813B93C: - bl sub_813BB38 - ldr r1, _0813B960 @ =gUnknown_203F177 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _0813B964 @ =gUnknown_203F178 - movs r0, 0x1 - b _0813BB22 - .align 2, 0 -_0813B94C: .4byte gMPlayInfo_SE1 -_0813B950: .4byte gMPlayInfo_SE2 -_0813B954: .4byte gUnknown_203F174 -_0813B958: .4byte gMPlayInfo_BGM -_0813B95C: .4byte 0x0000ffff -_0813B960: .4byte gUnknown_203F177 -_0813B964: .4byte gUnknown_203F178 -_0813B968: - bl sub_813BBAC - bl sub_813BB74 - bl sub_813BBC8 - movs r1, 0xA0 - lsls r1, 19 - ldr r0, _0813B98C @ =gUnknown_8464128 - ldrh r0, [r0, 0x1E] - strh r0, [r1] - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r1, _0813B990 @ =gUnknown_203F178 - movs r0, 0x2 - b _0813BB22 - .align 2, 0 -_0813B98C: .4byte gUnknown_8464128 -_0813B990: .4byte gUnknown_203F178 -_0813B994: - ldr r1, _0813B9C4 @ =0x0600c000 - movs r2, 0x80 - lsls r2, 7 - movs r0, 0 - movs r3, 0 - bl RequestDma3Fill - ldr r0, _0813B9C8 @ =gUnknown_8464128 - movs r1, 0xA0 - lsls r1, 19 - movs r2, 0x20 - movs r3, 0 - bl RequestDma3Copy - ldr r0, _0813B9CC @ =gUnknown_8464008 - ldr r1, _0813B9D0 @ =gUnknown_201FEE0 - movs r2, 0x90 - lsls r2, 1 - movs r3, 0 - bl RequestDma3Copy - ldr r1, _0813B9D4 @ =gUnknown_203F178 - movs r0, 0x3 - b _0813BB22 - .align 2, 0 -_0813B9C4: .4byte 0x0600c000 -_0813B9C8: .4byte gUnknown_8464128 -_0813B9CC: .4byte gUnknown_8464008 -_0813B9D0: .4byte gUnknown_201FEE0 -_0813B9D4: .4byte gUnknown_203F178 -_0813B9D8: - bl sub_813BCF4 - bl sub_813C5D4 - bl sub_813C5FC - ldr r0, _0813BA08 @ =gUnknown_841CB49 - bl sub_813C454 - movs r0, 0x1 - bl sub_813BD14 - bl sub_812B40C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813BA14 - ldr r0, _0813BA0C @ =gUnknown_203F190 - ldr r1, _0813BA10 @ =gUnknown_203F1AC - bl sub_812BC54 - b _0813BA1C - .align 2, 0 -_0813BA08: .4byte gUnknown_841CB49 -_0813BA0C: .4byte gUnknown_203F190 -_0813BA10: .4byte gUnknown_203F1AC -_0813BA14: - ldr r0, _0813BA34 @ =gUnknown_203F190 - ldr r1, _0813BA38 @ =gUnknown_203F1AC - bl sub_812BCA8 -_0813BA1C: - movs r0, 0x1 - bl sub_813BE78 - movs r0, 0x1 - bl sub_813BF50 - bl sub_813BC5C - ldr r1, _0813BA3C @ =gUnknown_203F178 - movs r0, 0x4 - b _0813BB22 - .align 2, 0 -_0813BA34: .4byte gUnknown_203F190 -_0813BA38: .4byte gUnknown_203F1AC -_0813BA3C: .4byte gUnknown_203F178 -_0813BA40: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - ldr r1, _0813BA70 @ =0x00001f0c - movs r0, 0x8 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 1 - movs r0, 0 - bl SetGpuReg - ldr r1, _0813BA74 @ =gUnknown_203F178 - movs r0, 0x5 - b _0813BB22 - .align 2, 0 -_0813BA70: .4byte 0x00001f0c -_0813BA74: .4byte gUnknown_203F178 -_0813BA78: - ldr r0, _0813BA94 @ =gUnknown_203F190 - ldr r1, _0813BA98 @ =gUnknown_203F1AC - bl sub_812BB9C - lsls r0, 24 - cmp r0, 0 - bne _0813BB24 - movs r0, 0xFB - bl PlaySE - ldr r1, _0813BA9C @ =gUnknown_203F178 - movs r0, 0x6 - b _0813BB22 - .align 2, 0 -_0813BA94: .4byte gUnknown_203F190 -_0813BA98: .4byte gUnknown_203F1AC -_0813BA9C: .4byte gUnknown_203F178 -_0813BAA0: - movs r0, 0 - movs r1, 0 - bl SetGpuReg - bl sub_813BC2C - movs r1, 0 - ldr r5, _0813BAD0 @ =0x000001ff - movs r4, 0xA0 - lsls r4, 19 - ldr r0, _0813BAD4 @ =gUnknown_8464128 - ldrh r2, [r0, 0x1E] - ldr r3, _0813BAD8 @ =0x05000200 -_0813BABA: - adds r0, r1, r4 - strh r2, [r0] - adds r0, r1, r3 - strh r2, [r0] - adds r1, 0x2 - cmp r1, r5 - ble _0813BABA - ldr r1, _0813BADC @ =gUnknown_203F178 - movs r0, 0x7 - b _0813BB22 - .align 2, 0 -_0813BAD0: .4byte 0x000001ff -_0813BAD4: .4byte gUnknown_8464128 -_0813BAD8: .4byte 0x05000200 -_0813BADC: .4byte gUnknown_203F178 -_0813BAE0: - ldr r0, _0813BB04 @ =gUnknown_203F174 - ldrb r0, [r0] - cmp r0, 0 - bne _0813BAF4 - ldr r0, _0813BB08 @ =gMPlayInfo_BGM - ldr r1, _0813BB0C @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_0813BAF4: - bl sub_813BC48 - bl sub_813BBF4 - ldr r1, _0813BB10 @ =gUnknown_203F178 - movs r0, 0x8 - b _0813BB22 - .align 2, 0 -_0813BB04: .4byte gUnknown_203F174 -_0813BB08: .4byte gMPlayInfo_BGM -_0813BB0C: .4byte 0x0000ffff -_0813BB10: .4byte gUnknown_203F178 -_0813BB14: - bl sub_813BBDC - ldr r1, _0813BB30 @ =gUnknown_203F177 - movs r0, 0 - strb r0, [r1] - ldr r1, _0813BB34 @ =gUnknown_203F178 - movs r0, 0 -_0813BB22: - strb r0, [r1, 0x15] -_0813BB24: - ldr r0, _0813BB34 @ =gUnknown_203F178 - ldrb r0, [r0, 0x15] -_0813BB28: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0813BB30: .4byte gUnknown_203F177 -_0813BB34: .4byte gUnknown_203F178 - thumb_func_end sub_813B870 - - thumb_func_start sub_813BB38 -sub_813BB38: @ 813BB38 - ldr r2, _0813BB60 @ =gUnknown_203F178 - ldr r1, _0813BB64 @ =gMain - ldr r0, [r1, 0xC] - str r0, [r2] - ldr r0, [r1, 0x10] - str r0, [r2, 0x4] - movs r0, 0 - str r0, [r1, 0xC] - str r0, [r1, 0x10] - ldr r1, _0813BB68 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0813BB6C @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0813BB70 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - bx lr - .align 2, 0 -_0813BB60: .4byte gUnknown_203F178 -_0813BB64: .4byte gMain -_0813BB68: .4byte 0x040000b0 -_0813BB6C: .4byte 0x0000c5ff -_0813BB70: .4byte 0x00007fff - thumb_func_end sub_813BB38 - - thumb_func_start sub_813BB74 -sub_813BB74: @ 813BB74 - push {r4,lr} - movs r0, 0 - bl GetGpuReg - ldr r4, _0813BBA8 @ =gUnknown_203F178 - strh r0, [r4, 0x8] - movs r0, 0x8 - bl GetGpuReg - strh r0, [r4, 0xA] - movs r0, 0x10 - bl GetGpuReg - strh r0, [r4, 0xC] - movs r0, 0x12 - bl GetGpuReg - strh r0, [r4, 0xE] - movs r0, 0x50 - bl GetGpuReg - strh r0, [r4, 0x10] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BBA8: .4byte gUnknown_203F178 - thumb_func_end sub_813BB74 - - thumb_func_start sub_813BBAC -sub_813BBAC: @ 813BBAC - push {lr} - ldr r0, _0813BBC0 @ =0x0600c000 - ldr r1, _0813BBC4 @ =gUnknown_203B174 - movs r2, 0x80 - lsls r2, 7 - movs r3, 0 - bl RequestDma3Copy - pop {r0} - bx r0 - .align 2, 0 -_0813BBC0: .4byte 0x0600c000 -_0813BBC4: .4byte gUnknown_203B174 - thumb_func_end sub_813BBAC - - thumb_func_start sub_813BBC8 -sub_813BBC8: @ 813BBC8 - push {lr} - ldr r0, _0813BBD8 @ =gUnknown_203F18A - adds r1, r0, 0x1 - adds r2, r0, 0x2 - bl SaveTextColors - pop {r0} - bx r0 - .align 2, 0 -_0813BBD8: .4byte gUnknown_203F18A - thumb_func_end sub_813BBC8 - - thumb_func_start sub_813BBDC -sub_813BBDC: @ 813BBDC - ldr r2, _0813BBEC @ =gMain - ldr r1, _0813BBF0 @ =gUnknown_203F178 - ldr r0, [r1] - str r0, [r2, 0xC] - ldr r0, [r1, 0x4] - str r0, [r2, 0x10] - bx lr - .align 2, 0 -_0813BBEC: .4byte gMain -_0813BBF0: .4byte gUnknown_203F178 - thumb_func_end sub_813BBDC - - thumb_func_start sub_813BBF4 -sub_813BBF4: @ 813BBF4 - push {r4,lr} - ldr r4, _0813BC28 @ =gUnknown_203F178 - ldrh r1, [r4, 0x10] - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x10 - bl SetGpuReg - ldrh r1, [r4, 0xE] - movs r0, 0x12 - bl SetGpuReg - ldrh r1, [r4, 0xA] - movs r0, 0x8 - bl SetGpuReg - ldrh r1, [r4, 0x8] - movs r0, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BC28: .4byte gUnknown_203F178 - thumb_func_end sub_813BBF4 - - thumb_func_start sub_813BC2C -sub_813BC2C: @ 813BC2C - push {lr} - ldr r0, _0813BC40 @ =gUnknown_203B174 - ldr r1, _0813BC44 @ =0x0600c000 - movs r2, 0x80 - lsls r2, 7 - movs r3, 0 - bl RequestDma3Copy - pop {r0} - bx r0 - .align 2, 0 -_0813BC40: .4byte gUnknown_203B174 -_0813BC44: .4byte 0x0600c000 - thumb_func_end sub_813BC2C - - thumb_func_start sub_813BC48 -sub_813BC48: @ 813BC48 - push {lr} - ldr r0, _0813BC58 @ =gUnknown_203F18A - adds r1, r0, 0x1 - adds r2, r0, 0x2 - bl RestoreTextColors - pop {r0} - bx r0 - .align 2, 0 -_0813BC58: .4byte gUnknown_203F18A - thumb_func_end sub_813BC48 - - thumb_func_start sub_813BC5C -sub_813BC5C: @ 813BC5C - push {lr} - ldr r0, _0813BC70 @ =gDecompressionBuffer - ldr r1, _0813BC74 @ =0x0600c000 - movs r2, 0x80 - lsls r2, 7 - movs r3, 0 - bl RequestDma3Copy - pop {r0} - bx r0 - .align 2, 0 -_0813BC70: .4byte gDecompressionBuffer -_0813BC74: .4byte 0x0600c000 - thumb_func_end sub_813BC5C - - thumb_func_start sub_813BC78 -sub_813BC78: @ 813BC78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, [sp, 0x20] - ldr r5, [sp, 0x24] - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r7, r5, 16 - lsrs r0, r2, 24 - adds r2, r0, r4 - cmp r0, r2 - bge _0813BCDE - mov r12, r2 - ldr r1, _0813BCF0 @ =gUnknown_201F800 - mov r10, r1 -_0813BCAE: - mov r4, r9 - mov r2, r8 - adds r1, r4, r2 - adds r3, r0, 0x1 - cmp r4, r1 - bge _0813BCD6 - lsls r2, r0, 6 - mov r5, r10 -_0813BCBE: - lsls r0, r4, 1 - adds r0, r2, r0 - adds r0, r5 - strh r6, [r0] - adds r0, r6, r7 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r1 - blt _0813BCBE -_0813BCD6: - lsls r0, r3, 16 - lsrs r0, 16 - cmp r0, r12 - blt _0813BCAE -_0813BCDE: - bl sub_813BC5C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813BCF0: .4byte gUnknown_201F800 - thumb_func_end sub_813BC78 - - thumb_func_start sub_813BCF4 -sub_813BCF4: @ 813BCF4 - push {lr} - sub sp, 0x8 - ldr r0, _0813BD10 @ =0x000001ff - movs r1, 0x14 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r2, 0 - movs r3, 0x1E - bl sub_813BC78 - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0813BD10: .4byte 0x000001ff - thumb_func_end sub_813BCF4 - - thumb_func_start sub_813BD14 -sub_813BD14: @ 813BD14 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BD26 - cmp r2, 0x1 - beq _0813BD40 - b _0813BD54 -_0813BD26: - ldr r0, _0813BD3C @ =0x000001ff - movs r1, 0x2 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x7 - bl sub_813BC78 - b _0813BD54 - .align 2, 0 -_0813BD3C: .4byte 0x000001ff -_0813BD40: - movs r0, 0xF4 - lsls r0, 1 - movs r1, 0x2 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x7 - bl sub_813BC78 -_0813BD54: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BD14 - - thumb_func_start sub_813BD5C -sub_813BD5C: @ 813BD5C - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BD6E - cmp r2, 0x1 - beq _0813BD88 - b _0813BD9C -_0813BD6E: - ldr r0, _0813BD84 @ =0x000001ff - movs r1, 0x2 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0xD - movs r2, 0 - movs r3, 0x10 - bl sub_813BC78 - b _0813BD9C - .align 2, 0 -_0813BD84: .4byte 0x000001ff -_0813BD88: - movs r0, 0xD0 - lsls r0, 1 - movs r1, 0x2 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0xD - movs r2, 0 - movs r3, 0x10 - bl sub_813BC78 -_0813BD9C: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BD5C - - thumb_func_start sub_813BDA4 -sub_813BDA4: @ 813BDA4 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BDB6 - cmp r2, 0x1 - beq _0813BDD0 - b _0813BDE2 -_0813BDB6: - ldr r0, _0813BDCC @ =0x000001ff - movs r1, 0x10 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0x1A - bl sub_813BC78 - b _0813BDE2 - .align 2, 0 -_0813BDCC: .4byte 0x000001ff -_0813BDD0: - movs r0, 0x10 - str r0, [sp] - str r2, [sp, 0x4] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0x1A - bl sub_813BC78 -_0813BDE2: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BDA4 - - thumb_func_start sub_813BDE8 -sub_813BDE8: @ 813BDE8 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BDFA - cmp r2, 0x1 - beq _0813BE14 - b _0813BE2A -_0813BDFA: - ldr r0, _0813BE10 @ =0x000001ff - movs r1, 0x10 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x1C - bl sub_813BC78 - b _0813BE2A - .align 2, 0 -_0813BE10: .4byte 0x000001ff -_0813BE14: - movs r0, 0xFD - lsls r0, 1 - movs r1, 0x11 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x1C - bl sub_813BC78 -_0813BE2A: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BDE8 - - thumb_func_start sub_813BE30 -sub_813BE30: @ 813BE30 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BE42 - cmp r2, 0x1 - beq _0813BE5C - b _0813BE70 -_0813BE42: - ldr r0, _0813BE58 @ =0x000001ff - movs r1, 0x5 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x2 - movs r2, 0xE - movs r3, 0x1A - bl sub_813BC78 - b _0813BE70 - .align 2, 0 -_0813BE58: .4byte 0x000001ff -_0813BE5C: - movs r0, 0x8F - lsls r0, 1 - movs r1, 0x5 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x2 - movs r2, 0xE - movs r3, 0x1A - bl sub_813BC78 -_0813BE70: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BE30 - - thumb_func_start sub_813BE78 -sub_813BE78: @ 813BE78 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0813BE8A - cmp r6, 0x1 - beq _0813BEB4 - b _0813BED8 -_0813BE8A: - ldr r5, _0813BEB0 @ =0x000001ff - movs r4, 0x1 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x1C - bl sub_813BC78 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x13 - movs r3, 0x1C - bl sub_813BC78 - b _0813BED8 - .align 2, 0 -_0813BEB0: .4byte 0x000001ff -_0813BEB4: - ldr r0, _0813BEE0 @ =0x000001f7 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x1C - bl sub_813BC78 - movs r0, 0xFC - lsls r0, 1 - str r6, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x13 - movs r3, 0x1C - bl sub_813BC78 -_0813BED8: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813BEE0: .4byte 0x000001f7 - thumb_func_end sub_813BE78 - - thumb_func_start sub_813BEE4 -sub_813BEE4: @ 813BEE4 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0813BEF6 - cmp r6, 0x1 - beq _0813BF20 - b _0813BF44 -_0813BEF6: - ldr r5, _0813BF1C @ =0x000001ff - movs r4, 0x1 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x1C - bl sub_813BC78 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x13 - movs r3, 0x1C - bl sub_813BC78 - b _0813BF44 - .align 2, 0 -_0813BF1C: .4byte 0x000001ff -_0813BF20: - ldr r0, _0813BF4C @ =0x000001fb - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x1C - bl sub_813BC78 - movs r0, 0xFE - lsls r0, 1 - str r6, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x13 - movs r3, 0x1C - bl sub_813BC78 -_0813BF44: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813BF4C: .4byte 0x000001fb - thumb_func_end sub_813BEE4 - - thumb_func_start sub_813BF50 -sub_813BF50: @ 813BF50 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0813BF62 - cmp r6, 0x1 - beq _0813BF8C - b _0813BFB2 -_0813BF62: - ldr r5, _0813BF88 @ =0x000001ff - movs r4, 0x14 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_813BC78 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1D - movs r2, 0 - movs r3, 0x1 - bl sub_813BC78 - b _0813BFB2 - .align 2, 0 -_0813BF88: .4byte 0x000001ff -_0813BF8C: - ldr r6, _0813BFBC @ =0x000001f9 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_813BC78 - str r5, [sp] - str r4, [sp, 0x4] - adds r0, r6, 0 - movs r1, 0x1D - movs r2, 0 - movs r3, 0x1 - bl sub_813BC78 -_0813BFB2: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813BFBC: .4byte 0x000001f9 - thumb_func_end sub_813BF50 - - thumb_func_start sub_813BFC0 -sub_813BFC0: @ 813BFC0 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BFD2 - cmp r2, 0x1 - beq _0813BFE8 - b _0813BFFC -_0813BFD2: - ldr r0, _0813BFE4 @ =0x000001ff - movs r1, 0x1 - str r1, [sp] - str r2, [sp, 0x4] - movs r2, 0x5 - movs r3, 0x1C - bl sub_813BC78 - b _0813BFFC - .align 2, 0 -_0813BFE4: .4byte 0x000001ff -_0813BFE8: - movs r0, 0xFE - lsls r0, 1 - str r2, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x5 - movs r3, 0x1C - bl sub_813BC78 -_0813BFFC: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BFC0 - - thumb_func_start sub_813C004 -sub_813C004: @ 813C004 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r6, 0 - beq _0813C01A - cmp r6, 0x1 - beq _0813C040 - b _0813C06A -_0813C01A: - ldr r5, _0813C03C @ =0x000001ff - movs r4, 0x1 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1C - movs r2, 0x3 - movs r3, 0x1 - bl sub_813BC78 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1C - movs r2, 0x12 - b _0813C050 - .align 2, 0 -_0813C03C: .4byte 0x000001ff -_0813C040: - cmp r2, 0 - bne _0813C058 - movs r0, 0xFF - lsls r0, 1 - str r6, [sp] - str r2, [sp, 0x4] - movs r1, 0x1C - movs r2, 0x3 -_0813C050: - movs r3, 0x1 - bl sub_813BC78 - b _0813C06A -_0813C058: - ldr r0, _0813C074 @ =0x000001fd - str r6, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x1C - movs r2, 0x12 - movs r3, 0x1 - bl sub_813BC78 -_0813C06A: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813C074: .4byte 0x000001fd - thumb_func_end sub_813C004 - - thumb_func_start sub_813C078 -sub_813C078: @ 813C078 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - str r1, [sp, 0x28] - mov r9, r2 - ldr r1, [sp, 0x58] - ldr r2, [sp, 0x5C] - ldr r4, [sp, 0x60] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x2C] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x30] - str r7, [sp, 0x34] -_0813C0AC: - mov r0, r9 - ldrb r1, [r0] - movs r2, 0x1 - add r9, r2 - adds r0, r1, 0 - subs r0, 0xF8 - cmp r0, 0x7 - bls _0813C0BE - b _0813C358 -_0813C0BE: - lsls r0, 2 - ldr r1, _0813C0C8 @ =_0813C0CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813C0C8: .4byte _0813C0CC - .align 2, 0 -_0813C0CC: - .4byte _0813C2D4 - .4byte _0813C348 - .4byte _0813C1E4 - .4byte _0813C1E4 - .4byte _0813C200 - .4byte _0813C0EC - .4byte _0813C1E4 - .4byte _0813C39C -_0813C0EC: - mov r0, r9 - ldrb r1, [r0] - movs r2, 0x1 - add r9, r2 - cmp r1, 0x1 - bne _0813C154 - movs r4, 0 - ldr r0, _0813C14C @ =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r1, [r1] - cmp r1, 0xFF - beq _0813C0AC - ldr r5, _0813C150 @ =gGlyphInfo + 0x80 -_0813C106: - ldr r0, [r0] - adds r0, r4 - ldrb r1, [r0] - ldr r0, [sp, 0x28] - str r0, [sp] - str r7, [sp, 0x4] - mov r2, r10 - str r2, [sp, 0x8] - ldr r0, [sp, 0x2C] - str r0, [sp, 0xC] - ldr r2, [sp, 0x30] - str r2, [sp, 0x10] - ldr r0, [sp, 0x24] - add r2, sp, 0x14 - add r3, sp, 0x1C - bl sub_813C3AC - ldr r0, [sp, 0x24] - ldrb r0, [r5] - adds r0, r7, r0 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bhi _0813C0AC - ldr r0, _0813C14C @ =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, r4 - ldrb r1, [r1] - cmp r1, 0xFF - bne _0813C106 - b _0813C0AC - .align 2, 0 -_0813C14C: .4byte gSaveBlock2Ptr -_0813C150: .4byte gGlyphInfo + 0x80 -_0813C154: - cmp r1, 0x2 - bne _0813C0AC - movs r4, 0 - ldr r5, _0813C160 @ =gGlyphInfo + 0x80 - b _0813C1BC - .align 2, 0 -_0813C160: .4byte gGlyphInfo + 0x80 -_0813C164: - ldrb r1, [r1] - ldr r2, [sp, 0x28] - str r2, [sp] - str r7, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - ldr r2, [sp, 0x2C] - str r2, [sp, 0xC] - ldr r0, [sp, 0x30] - str r0, [sp, 0x10] - ldr r0, [sp, 0x24] - add r2, sp, 0x14 - add r3, sp, 0x1C - bl sub_813C3AC - b _0813C1AC -_0813C184: - ldr r0, _0813C1D8 @ =gUnknown_841CB41 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0813C0AC - adds r1, r0, 0 - ldr r2, [sp, 0x28] - str r2, [sp] - str r7, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - ldr r2, [sp, 0x2C] - str r2, [sp, 0xC] - ldr r0, [sp, 0x30] - str r0, [sp, 0x10] - ldr r0, [sp, 0x24] - add r2, sp, 0x14 - add r3, sp, 0x1C - bl sub_813C3AC -_0813C1AC: - ldr r1, [sp, 0x24] - ldrb r0, [r5] - adds r0, r7, r0 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0813C1BC: - ldr r0, _0813C1DC @ =0x00000834 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813C184 - ldr r0, _0813C1E0 @ =gUnknown_841CB3C - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0813C164 - b _0813C0AC - .align 2, 0 -_0813C1D8: .4byte gUnknown_841CB41 -_0813C1DC: .4byte 0x00000834 -_0813C1E0: .4byte gUnknown_841CB3C -_0813C1E4: - ldr r7, [sp, 0x34] - ldr r1, _0813C1FC @ =gGlyphInfo - adds r1, 0x81 - mov r0, r10 - adds r0, 0x1 - ldrb r1, [r1] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - b _0813C0AC - .align 2, 0 -_0813C1FC: .4byte gGlyphInfo -_0813C200: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x1 - add r9, r0 - subs r0, r1, 0x1 - cmp r0, 0x15 - bls _0813C210 - b _0813C0AC -_0813C210: - lsls r0, 2 - ldr r1, _0813C21C @ =_0813C220 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813C21C: .4byte _0813C220 - .align 2, 0 -_0813C220: - .4byte _0813C2C8 - .4byte _0813C2C8 - .4byte _0813C2C8 - .4byte _0813C278 - .4byte _0813C2C8 - .4byte _0813C2C8 - .4byte _0813C0AC - .4byte _0813C2C8 - .4byte _0813C0AC - .4byte _0813C0AC - .4byte _0813C27C - .4byte _0813C2C8 - .4byte _0813C2C8 - .4byte _0813C2C8 - .4byte _0813C0AC - .4byte _0813C27C - .4byte _0813C2CE - .4byte _0813C2CE - .4byte _0813C282 - .4byte _0813C2CE - .4byte _0813C0AC - .4byte _0813C0AC -_0813C278: - movs r1, 0x1 - add r9, r1 -_0813C27C: - movs r2, 0x1 - add r9, r2 - b _0813C2C8 -_0813C282: - mov r2, r9 - ldrb r0, [r2] - ldr r1, [sp, 0x34] - adds r0, r1 - subs r6, r0, r7 - cmp r6, 0 - ble _0813C2C8 - ldr r2, [sp, 0x28] - str r2, [sp, 0x1C] - ldr r1, [sp, 0x2C] - lsls r0, r1, 3 - add r4, sp, 0x1C - movs r5, 0 - strh r0, [r4, 0x4] - ldr r2, [sp, 0x30] - lsls r0, r2, 3 - strh r0, [r4, 0x6] - ldr r0, [sp, 0x24] - movs r1, 0x1 - bl GetFontAttribute - lsls r0, 24 - lsrs r0, 24 - lsls r3, r6, 16 - lsrs r3, 16 - str r0, [sp] - str r5, [sp, 0x4] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r10 - bl FillBitmapRect4Bit - adds r0, r7, r6 - lsls r0, 24 - lsrs r7, r0, 24 -_0813C2C8: - movs r0, 0x1 - add r9, r0 - b _0813C0AC -_0813C2CE: - movs r1, 0x1 - add r9, r1 - b _0813C0AC -_0813C2D4: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x1 - add r9, r0 - adds r6, r1, 0 - adds r0, r6, 0 - bl GetKeypadIconTileOffset - lsls r0, 24 - lsrs r0, 19 - ldr r1, _0813C344 @ =gKeypadIconTiles - adds r0, r1 - str r0, [sp, 0x14] - add r1, sp, 0x14 - movs r2, 0 - mov r8, r2 - movs r0, 0x80 - strh r0, [r1, 0x4] - strh r0, [r1, 0x6] - ldr r0, [sp, 0x28] - str r0, [sp, 0x1C] - ldr r1, [sp, 0x2C] - lsls r0, r1, 3 - add r5, sp, 0x1C - strh r0, [r5, 0x4] - ldr r2, [sp, 0x30] - lsls r0, r2, 3 - strh r0, [r5, 0x6] - adds r0, r6, 0 - bl GetKeypadIconWidth - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl GetKeypadIconHeight - lsls r0, 24 - lsrs r0, 24 - str r7, [sp] - mov r1, r10 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r0, [sp, 0xC] - mov r2, r8 - str r2, [sp, 0x10] - add r0, sp, 0x14 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRect4Bit - adds r0, r6, 0 - bl GetKeypadIconWidth - b _0813C38E - .align 2, 0 -_0813C344: .4byte gKeypadIconTiles -_0813C348: - mov r0, r9 - ldrb r1, [r0] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - orrs r1, r0 - movs r0, 0x1 - add r9, r0 -_0813C358: - cmp r1, 0 - bne _0813C36A - ldr r1, [sp, 0x24] - cmp r1, 0 - bne _0813C366 - adds r0, r7, 0x5 - b _0813C390 -_0813C366: - adds r0, r7, 0x4 - b _0813C390 -_0813C36A: - add r3, sp, 0x1C - ldr r2, [sp, 0x28] - str r2, [sp] - str r7, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - ldr r2, [sp, 0x2C] - str r2, [sp, 0xC] - ldr r0, [sp, 0x30] - str r0, [sp, 0x10] - ldr r0, [sp, 0x24] - add r2, sp, 0x14 - bl sub_813C3AC - ldr r1, [sp, 0x24] - ldr r0, _0813C398 @ =gGlyphInfo - adds r0, 0x80 - ldrb r0, [r0] -_0813C38E: - adds r0, r7, r0 -_0813C390: - lsls r0, 24 - lsrs r7, r0, 24 - b _0813C0AC - .align 2, 0 -_0813C398: .4byte gGlyphInfo -_0813C39C: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_813C078 - - thumb_func_start sub_813C3AC -sub_813C3AC: @ 813C3AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r7, r2, 0 - mov r8, r3 - ldr r2, [sp, 0x38] - ldr r3, [sp, 0x3C] - ldr r4, [sp, 0x40] - ldr r5, [sp, 0x44] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r0, r1, 16 - adds r1, r0, 0 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - cmp r6, 0 - bne _0813C3EE - movs r1, 0 - bl DecompressGlyphFont0 - b _0813C402 -_0813C3EE: - cmp r6, 0x5 - bne _0813C3FA - movs r1, 0 - bl DecompressGlyphFont5 - b _0813C402 -_0813C3FA: - adds r0, r1, 0 - movs r1, 0 - bl DecompressGlyphFont2 -_0813C402: - ldr r1, _0813C450 @ =gGlyphInfo - str r1, [r7] - movs r2, 0 - movs r0, 0x10 - strh r0, [r7, 0x4] - strh r0, [r7, 0x6] - ldr r0, [sp, 0x34] - mov r3, r8 - str r0, [r3] - lsls r0, r4, 3 - strh r0, [r3, 0x4] - lsls r0, r5, 3 - strh r0, [r3, 0x6] - mov r0, r10 - str r0, [sp] - mov r3, r9 - str r3, [sp, 0x4] - adds r0, r1, 0 - adds r0, 0x80 - ldrb r0, [r0] - str r0, [sp, 0x8] - adds r1, 0x81 - ldrb r0, [r1] - str r0, [sp, 0xC] - str r2, [sp, 0x10] - adds r0, r7, 0 - mov r1, r8 - movs r3, 0 - bl BlitBitmapRect4Bit - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C450: .4byte gGlyphInfo - thumb_func_end sub_813C3AC - - thumb_func_start sub_813C454 -sub_813C454: @ 813C454 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0x1 - movs r1, 0xF - movs r2, 0x2 - bl GenerateFontHalfRowLookupTable - ldr r1, _0813C484 @ =gUnknown_201FD00 - movs r2, 0x2 - str r2, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0x5 - adds r2, r4, 0 - movs r3, 0x6 - bl sub_813C078 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C484: .4byte gUnknown_201FD00 - thumb_func_end sub_813C454 - - thumb_func_start sub_813C488 -sub_813C488: @ 813C488 - push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - movs r0, 0 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - movs r4, 0x7C - subs r4, r0 - movs r0, 0x1 - movs r1, 0xF - movs r2, 0x2 - bl GenerateFontHalfRowLookupTable - ldr r1, _0813C4C8 @ =gUnknown_201F400 - lsls r4, 24 - lsrs r4, 24 - movs r2, 0x2 - str r2, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_813C078 - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813C4C8: .4byte gUnknown_201F400 - thumb_func_end sub_813C488 - - thumb_func_start sub_813C4CC -sub_813C4CC: @ 813C4CC - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0xF - movs r2, 0x2 - bl GenerateFontHalfRowLookupTable - ldr r1, _0813C508 @ =gDecompressionBuffer - str r4, [sp] - movs r0, 0x1A - str r0, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x2 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_813C078 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813C508: .4byte gDecompressionBuffer - thumb_func_end sub_813C4CC - - thumb_func_start sub_813C50C -sub_813C50C: @ 813C50C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - mov r8, r0 - mov r9, r1 - add r1, sp, 0xC - ldr r2, _0813C578 @ =0x0000eeee - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _0813C57C @ =gDecompressionBuffer - ldr r2, _0813C580 @ =0x01001a00 - adds r0, r1, 0 - adds r1, r4, 0 - bl CpuSet - movs r0, 0x1 - movs r1, 0xE - movs r2, 0x2 - bl GenerateFontHalfRowLookupTable - movs r6, 0 - str r6, [sp] - movs r5, 0x1A - str r5, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x2 - adds r1, r4, 0 - mov r2, r8 - movs r3, 0 - bl sub_813C078 - movs r0, 0x9C - lsls r0, 4 - adds r4, r0 - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0xD - str r0, [sp, 0x8] - movs r0, 0x2 - adds r1, r4, 0 - mov r2, r9 - movs r3, 0 - bl sub_813C078 - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813C578: .4byte 0x0000eeee -_0813C57C: .4byte gDecompressionBuffer -_0813C580: .4byte 0x01001a00 - thumb_func_end sub_813C50C - - thumb_func_start sub_813C584 -sub_813C584: @ 813C584 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - add r1, sp, 0xC - ldr r2, _0813C5C8 @ =0x00001111 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _0813C5CC @ =gUnknown_201E3C0 - ldr r2, _0813C5D0 @ =0x01000820 - adds r0, r1, 0 - adds r1, r4, 0 - bl CpuSet - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x3 - bl GenerateFontHalfRowLookupTable - movs r0, 0x6 - str r0, [sp] - movs r0, 0x1A - str r0, [sp, 0x4] - movs r0, 0x5 - str r0, [sp, 0x8] - movs r0, 0x2 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl sub_813C078 - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813C5C8: .4byte 0x00001111 -_0813C5CC: .4byte gUnknown_201E3C0 -_0813C5D0: .4byte 0x01000820 - thumb_func_end sub_813C584 - - thumb_func_start sub_813C5D4 -sub_813C5D4: @ 813C5D4 - push {lr} - sub sp, 0x4 - mov r1, sp - ldr r2, _0813C5F0 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0813C5F4 @ =gUnknown_201FD00 - ldr r2, _0813C5F8 @ =0x010000e0 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0813C5F0: .4byte 0x0000ffff -_0813C5F4: .4byte gUnknown_201FD00 -_0813C5F8: .4byte 0x010000e0 - thumb_func_end sub_813C5D4 - - thumb_func_start sub_813C5FC -sub_813C5FC: @ 813C5FC - push {lr} - sub sp, 0x4 - mov r1, sp - ldr r2, _0813C618 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0813C61C @ =gUnknown_201F400 - ldr r2, _0813C620 @ =0x01000200 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0813C618: .4byte 0x0000ffff -_0813C61C: .4byte gUnknown_201F400 -_0813C620: .4byte 0x01000200 - thumb_func_end sub_813C5FC - - thumb_func_start sub_813C624 -sub_813C624: @ 813C624 - push {lr} - sub sp, 0x4 - mov r1, sp - ldr r2, _0813C640 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0813C644 @ =gDecompressionBuffer - ldr r2, _0813C648 @ =0x01001a00 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0813C640: .4byte 0x0000ffff -_0813C644: .4byte gDecompressionBuffer -_0813C648: .4byte 0x01001a00 - thumb_func_end sub_813C624 - - thumb_func_start sub_813C64C -sub_813C64C: @ 813C64C - push {r4-r7,lr} - ldr r4, _0813C680 @ =gUnknown_203F190 - adds r3, r4, 0 - ldm r0!, {r5-r7} - stm r3!, {r5-r7} - movs r0, 0 - strb r1, [r4, 0xC] - strb r2, [r4, 0xD] - strb r0, [r4, 0xE] - ldrh r0, [r4, 0x4] - ldrh r1, [r4, 0x6] - cmp r0, r1 - bcs _0813C668 - strh r0, [r4, 0x6] -_0813C668: - movs r0, 0 - bl sub_813BDA4 - bl sub_813C624 - bl sub_813C7CC - bl sub_813C828 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C680: .4byte gUnknown_203F190 - thumb_func_end sub_813C64C - - thumb_func_start sub_813C684 -sub_813C684: @ 813C684 - ldr r1, _0813C68C @ =gUnknown_203F176 - strb r0, [r1] - bx lr - .align 2, 0 -_0813C68C: .4byte gUnknown_203F176 - thumb_func_end sub_813C684 - - thumb_func_start sub_813C690 -sub_813C690: @ 813C690 - push {lr} - ldr r1, _0813C6A0 @ =gUnknown_203F176 - ldrb r0, [r1] - cmp r0, 0 - beq _0813C6A4 - subs r0, 0x1 - strb r0, [r1] - b _0813C752 - .align 2, 0 -_0813C6A0: .4byte gUnknown_203F176 -_0813C6A4: - ldr r2, _0813C6C8 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813C6D0 - movs r0, 0x5 - bl PlaySE - ldr r1, _0813C6CC @ =gUnknown_203F190 - ldrb r0, [r1, 0xC] - ldrb r2, [r1, 0xD] - adds r0, r2 - ldr r1, [r1] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - b _0813C756 - .align 2, 0 -_0813C6C8: .4byte gMain -_0813C6CC: .4byte gUnknown_203F190 -_0813C6D0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0813C6E4 - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - negs r0, r0 - b _0813C756 -_0813C6E4: - movs r0, 0xC0 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0813C6F4 - movs r0, 0x6 - negs r0, r0 - b _0813C756 -_0813C6F4: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0813C702 - movs r0, 0x1 - b _0813C718 -_0813C702: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0813C70E - movs r0, 0x1 - b _0813C73A -_0813C70E: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0813C730 - movs r0, 0x7 -_0813C718: - movs r1, 0 - bl sub_813C944 - lsls r0, 24 - cmp r0, 0 - bne _0813C72A - movs r0, 0x5 - bl PlaySE -_0813C72A: - movs r0, 0x4 - negs r0, r0 - b _0813C756 -_0813C730: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0813C752 - movs r0, 0x7 -_0813C73A: - movs r1, 0x1 - bl sub_813C944 - lsls r0, 24 - cmp r0, 0 - bne _0813C74C - movs r0, 0x5 - bl PlaySE -_0813C74C: - movs r0, 0x5 - negs r0, r0 - b _0813C756 -_0813C752: - movs r0, 0x1 - negs r0, r0 -_0813C756: - pop {r1} - bx r1 - thumb_func_end sub_813C690 - - thumb_func_start sub_813C75C -sub_813C75C: @ 813C75C - push {r4-r6,lr} - ldr r5, _0813C784 @ =gUnknown_203F190 - ldrh r1, [r5, 0x4] - subs r0, r1, 0x7 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r1, 0x7 - bls _0813C7C4 - ldrb r4, [r5, 0xC] - ldrb r0, [r5, 0xD] - adds r4, r0 - movs r0, 0 - movs r1, 0 - bl sub_813C004 - cmp r4, 0 - bne _0813C788 - movs r0, 0x1 - b _0813C7A2 - .align 2, 0 -_0813C784: .4byte gUnknown_203F190 -_0813C788: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _0813C798 - ldrb r0, [r5, 0xD] - cmp r0, 0 - beq _0813C798 - movs r0, 0x1 - b _0813C7A2 -_0813C798: - ldr r0, _0813C7AC @ =gUnknown_203F190 - ldrb r0, [r0, 0xC] - cmp r0, r6 - bne _0813C7B0 - movs r0, 0 -_0813C7A2: - movs r1, 0x1 - bl sub_813C004 - b _0813C7C4 - .align 2, 0 -_0813C7AC: .4byte gUnknown_203F190 -_0813C7B0: - cmp r0, 0 - beq _0813C7C4 - movs r0, 0 - movs r1, 0x1 - bl sub_813C004 - movs r0, 0x1 - movs r1, 0x1 - bl sub_813C004 -_0813C7C4: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813C75C - - thumb_func_start sub_813C7CC -sub_813C7CC: @ 813C7CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r3, _0813C824 @ =gUnknown_203F190 - ldrb r5, [r3, 0xC] - movs r6, 0 - ldrh r0, [r3, 0x6] - cmp r6, r0 - bge _0813C81A - adds r4, r3, 0 - movs r7, 0 -_0813C7F2: - ldrb r1, [r4, 0x8] - adds r1, 0x8 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r4, 0x9] - adds r2, r7 - lsls r2, 24 - lsrs r2, 24 - ldr r3, [r4] - lsls r0, r5, 3 - adds r0, r3 - ldr r0, [r0] - bl sub_813C4CC - adds r5, 0x1 - add r7, r8 - adds r6, 0x1 - ldrh r0, [r4, 0x6] - cmp r6, r0 - blt _0813C7F2 -_0813C81A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C824: .4byte gUnknown_203F190 - thumb_func_end sub_813C7CC - - thumb_func_start sub_813C828 -sub_813C828: @ 813C828 - push {r4,lr} - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0813C858 @ =gUnknown_203F190 - ldrb r1, [r3, 0x8] - ldrb r2, [r3, 0xD] - adds r4, r2, 0 - muls r4, r0 - adds r2, r4, 0 - ldrb r3, [r3, 0x9] - adds r2, r3 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0813C85C @ =gFameCheckerText_ListMenuCursor - bl sub_813C4CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C858: .4byte gUnknown_203F190 -_0813C85C: .4byte gFameCheckerText_ListMenuCursor - thumb_func_end sub_813C828 - - thumb_func_start sub_813C860 -sub_813C860: @ 813C860 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0813C894 @ =gUnknown_203F190 - ldrb r1, [r3, 0x8] - adds r2, r4, 0 - muls r2, r0 - ldrb r3, [r3, 0x9] - adds r2, r3 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0813C898 @ =gUnknown_841CB4E - bl sub_813C4CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C894: .4byte gUnknown_203F190 -_0813C898: .4byte gUnknown_841CB4E - thumb_func_end sub_813C860 - - thumb_func_start sub_813C89C -sub_813C89C: @ 813C89C - push {r4,r5,lr} - lsls r0, 24 - cmp r0, 0 - bne _0813C8EC - ldr r0, _0813C8B4 @ =gUnknown_203F190 - ldrh r1, [r0, 0x6] - adds r5, r0, 0 - cmp r1, 0x1 - bne _0813C8B8 - movs r4, 0 - b _0813C8CA - .align 2, 0 -_0813C8B4: .4byte gUnknown_203F190 -_0813C8B8: - ldrh r0, [r5, 0x6] - lsrs r2, r0, 1 - movs r1, 0x1 - ands r1, r0 - adds r2, r1 - subs r0, r2 - subs r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_0813C8CA: - ldrb r1, [r5, 0xC] - cmp r1, 0 - bne _0813C8DA - ldrb r0, [r5, 0xD] - cmp r0, 0 - beq _0813C926 - subs r0, 0x1 - b _0813C93A -_0813C8DA: - ldrb r0, [r5, 0xD] - cmp r0, r4 - bls _0813C8E4 - subs r0, 0x1 - b _0813C93A -_0813C8E4: - subs r0, r1, 0x1 - strb r0, [r5, 0xC] - movs r0, 0x2 - b _0813C93E -_0813C8EC: - ldr r0, _0813C8FC @ =gUnknown_203F190 - ldrh r1, [r0, 0x6] - adds r5, r0, 0 - cmp r1, 0x1 - bne _0813C900 - movs r4, 0 - b _0813C90A - .align 2, 0 -_0813C8FC: .4byte gUnknown_203F190 -_0813C900: - ldrh r0, [r5, 0x6] - lsrs r2, r0, 1 - movs r1, 0x1 - ands r0, r1 - adds r4, r2, r0 -_0813C90A: - adds r1, r5, 0 - ldrb r2, [r1, 0xC] - ldrh r0, [r1, 0x4] - ldrh r3, [r1, 0x6] - subs r0, r3 - cmp r2, r0 - bne _0813C92A - ldrb r2, [r1, 0xD] - subs r0, r3, 0x1 - cmp r2, r0 - bge _0813C926 - adds r0, r2, 0x1 - strb r0, [r1, 0xD] - b _0813C93C -_0813C926: - movs r0, 0 - b _0813C93E -_0813C92A: - ldrb r0, [r1, 0xD] - cmp r0, r4 - bcc _0813C938 - adds r0, r2, 0x1 - strb r0, [r1, 0xC] - movs r0, 0x2 - b _0813C93E -_0813C938: - adds r0, 0x1 -_0813C93A: - strb r0, [r5, 0xD] -_0813C93C: - movs r0, 0x1 -_0813C93E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_813C89C - - thumb_func_start sub_813C944 -sub_813C944: @ 813C944 - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, _0813C97C @ =gUnknown_203F190 - ldrb r7, [r0, 0xD] - movs r5, 0 - cmp r5, r2 - bge _0813C96C - adds r4, r2, 0 -_0813C95A: - adds r0, r6, 0 - bl sub_813C89C - orrs r5, r0 - lsls r0, r5, 24 - lsrs r5, r0, 24 - subs r4, 0x1 - cmp r4, 0 - bne _0813C95A -_0813C96C: - cmp r5, 0x1 - beq _0813C980 - cmp r5, 0x1 - ble _0813C978 - cmp r5, 0x3 - ble _0813C990 -_0813C978: - movs r0, 0x1 - b _0813C9D6 - .align 2, 0 -_0813C97C: .4byte gUnknown_203F190 -_0813C980: - adds r0, r7, 0 - bl sub_813C860 - bl sub_813C828 - bl sub_813BC5C - b _0813C9D4 -_0813C990: - bl sub_812BF88 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813C9B8 - movs r0, 0x2 - bl sub_813C684 - bl sub_813C624 - bl sub_813C7CC - bl sub_813C828 - bl sub_812BDEC - bl sub_813C75C - b _0813C9D0 -_0813C9B8: - movs r0, 0 - bl sub_813BDA4 - bl sub_813C624 - bl sub_813C7CC - bl sub_813C828 - movs r0, 0x1 - bl sub_813BDA4 -_0813C9D0: - bl sub_813BC5C -_0813C9D4: - movs r0, 0 -_0813C9D6: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_813C944 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s deleted file mode 100644 index f9fb50cf7..000000000 --- a/asm/help_system_812B1E0.s +++ /dev/null @@ -1,1761 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_812B1E0 -sub_812B1E0: @ 812B1E0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0812B1EC @ =gUnknown_203B0EC - strh r0, [r1] - bx lr - .align 2, 0 -_0812B1EC: .4byte gUnknown_203B0EC - thumb_func_end sub_812B1E0 - - thumb_func_start sub_812B1F0 -sub_812B1F0: @ 812B1F0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _0812B21C @ =gUnknown_203B0EC - ldrh r2, [r0] - cmp r2, 0x1A - bgt _0812B216 - cmp r2, 0x17 - blt _0812B216 - cmp r1, 0x9 - beq _0812B218 - cmp r1, 0x5 - beq _0812B218 - cmp r1, 0x6 - beq _0812B218 - cmp r1, 0x7 - beq _0812B218 - cmp r1, 0x8 - beq _0812B218 -_0812B216: - strh r1, [r0] -_0812B218: - pop {r0} - bx r0 - .align 2, 0 -_0812B21C: .4byte gUnknown_203B0EC - thumb_func_end sub_812B1F0 - - thumb_func_start sub_812B220 -sub_812B220: @ 812B220 - ldr r0, _0812B22C @ =gUnknown_203B0EC - ldr r1, _0812B230 @ =gSpecialVar_0x8004 - ldrh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0812B22C: .4byte gUnknown_203B0EC -_0812B230: .4byte gSpecialVar_0x8004 - thumb_func_end sub_812B220 - - thumb_func_start sub_812B234 -sub_812B234: @ 812B234 - ldr r0, _0812B240 @ =gUnknown_3005EA0 - ldr r1, _0812B244 @ =gUnknown_203B0EC - ldrh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0812B240: .4byte gUnknown_3005EA0 -_0812B244: .4byte gUnknown_203B0EC - thumb_func_end sub_812B234 - - thumb_func_start sub_812B248 -sub_812B248: @ 812B248 - ldr r0, _0812B254 @ =gUnknown_203B0EC - ldr r1, _0812B258 @ =gUnknown_3005EA0 - ldrh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0812B254: .4byte gUnknown_203B0EC -_0812B258: .4byte gUnknown_3005EA0 - thumb_func_end sub_812B248 - - thumb_func_start sub_812B25C -sub_812B25C: @ 812B25C - push {lr} - ldr r0, _0812B268 @ =gUnknown_845C594 - bl sub_812B27C - pop {r1} - bx r1 - .align 2, 0 -_0812B268: .4byte gUnknown_845C594 - thumb_func_end sub_812B25C - - thumb_func_start sub_812B26C -sub_812B26C: @ 812B26C - push {lr} - ldr r0, _0812B278 @ =gUnknown_845C5BC - bl sub_812B27C - pop {r1} - bx r1 - .align 2, 0 -_0812B278: .4byte gUnknown_845C5BC - thumb_func_end sub_812B26C - - thumb_func_start sub_812B27C -sub_812B27C: @ 812B27C - push {r4,lr} - adds r2, r0, 0 - ldr r0, _0812B2AC @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x5] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r0, [r2] - ldr r1, _0812B2B0 @ =0x0000ffff - cmp r0, r1 - beq _0812B2BC - adds r4, r1, 0 - adds r1, r2, 0 -_0812B2A2: - ldrh r0, [r1] - cmp r0, r3 - bne _0812B2B4 - movs r0, 0x1 - b _0812B2BE - .align 2, 0 -_0812B2AC: .4byte gSaveBlock1Ptr -_0812B2B0: .4byte 0x0000ffff -_0812B2B4: - adds r1, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _0812B2A2 -_0812B2BC: - movs r0, 0 -_0812B2BE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812B27C - - thumb_func_start sub_812B2C4 -sub_812B2C4: @ 812B2C4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r5, 0 - ldr r0, _0812B2E8 @ =gUnknown_845C5CE - mov r9, r0 - movs r0, 0x2 - add r0, r9 - mov r8, r0 -_0812B2D8: - movs r6, 0 - mov r4, r9 - lsls r1, r5, 1 - adds r0, r1, r5 - add r0, r8 - adds r7, r1, 0 - b _0812B33A - .align 2, 0 -_0812B2E8: .4byte gUnknown_845C5CE -_0812B2EC: - adds r3, r1, r5 - adds r0, r3, r4 - ldrb r1, [r0] - ldr r0, _0812B324 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _0812B32C - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r0, r6 - movs r1, 0x5 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _0812B32C - cmp r5, 0xF - bne _0812B320 - ldr r0, _0812B328 @ =0x00000849 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812B32C -_0812B320: - movs r0, 0x1 - b _0812B34C - .align 2, 0 -_0812B324: .4byte gSaveBlock1Ptr -_0812B328: .4byte 0x00000849 -_0812B32C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _0812B358 @ =gUnknown_845C5CE - adds r1, r7, 0 - adds r0, r1, r5 - add r0, r8 -_0812B33A: - ldrb r0, [r0] - cmp r6, r0 - bcc _0812B2EC - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _0812B2D8 - movs r0, 0 -_0812B34C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0812B358: .4byte gUnknown_845C5CE - thumb_func_end sub_812B2C4 - - thumb_func_start sub_812B35C -sub_812B35C: @ 812B35C - push {lr} - bl sub_812B4B8 - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0812B376 - movs r0, 0x16 - bl sub_812B1F0 - b _0812B406 -_0812B376: - bl sub_812B2C4 - lsls r0, 24 - cmp r0, 0 - beq _0812B388 - movs r0, 0x15 - bl sub_812B1F0 - b _0812B406 -_0812B388: - ldr r0, _0812B3B0 @ =gMapHeader - ldrb r0, [r0, 0x17] - bl is_light_level_8_or_9 - lsls r0, 24 - cmp r0, 0 - beq _0812B400 - ldr r0, _0812B3B4 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - cmp r1, 0x4 - beq _0812B3A8 - movs r0, 0x82 - lsls r0, 1 - cmp r1, r0 - bne _0812B3B8 -_0812B3A8: - movs r0, 0xE - bl sub_812B1F0 - b _0812B406 - .align 2, 0 -_0812B3B0: .4byte gMapHeader -_0812B3B4: .4byte gSaveBlock1Ptr -_0812B3B8: - movs r0, 0xC1 - lsls r0, 2 - cmp r1, r0 - bne _0812B3C8 - movs r0, 0xF - bl sub_812B1F0 - b _0812B406 -_0812B3C8: - bl IsCurMapPokeCenter - cmp r0, 0x1 - bne _0812B3D8 - movs r0, 0x10 - bl sub_812B1F0 - b _0812B406 -_0812B3D8: - bl sub_812B25C - cmp r0, 0x1 - bne _0812B3E8 - movs r0, 0x11 - bl sub_812B1F0 - b _0812B406 -_0812B3E8: - bl sub_812B26C - cmp r0, 0x1 - bne _0812B3F8 - movs r0, 0x12 - bl sub_812B1F0 - b _0812B406 -_0812B3F8: - movs r0, 0x13 - bl sub_812B1F0 - b _0812B406 -_0812B400: - movs r0, 0x14 - bl sub_812B1F0 -_0812B406: - pop {r0} - bx r0 - thumb_func_end sub_812B35C - - thumb_func_start sub_812B40C -sub_812B40C: @ 812B40C - push {lr} - ldr r0, _0812B434 @ =gUnknown_203B0EE - ldrb r0, [r0] - cmp r0, 0x1 - beq _0812B42E - ldr r0, _0812B438 @ =gSaveFileStatus - ldrh r0, [r0] - cmp r0, 0 - beq _0812B440 - cmp r0, 0x2 - beq _0812B440 - ldr r0, _0812B43C @ =0x0000083c - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0812B440 -_0812B42E: - movs r0, 0 - b _0812B44E - .align 2, 0 -_0812B434: .4byte gUnknown_203B0EE -_0812B438: .4byte gSaveFileStatus -_0812B43C: .4byte 0x0000083c -_0812B440: - ldr r0, _0812B454 @ =0x0000083c - bl FlagSet - ldr r1, _0812B458 @ =gUnknown_203B0EE - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 -_0812B44E: - pop {r1} - bx r1 - .align 2, 0 -_0812B454: .4byte 0x0000083c -_0812B458: .4byte gUnknown_203B0EE - thumb_func_end sub_812B40C - - thumb_func_start sub_812B45C -sub_812B45C: @ 812B45C - push {lr} - ldr r0, _0812B46C @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0x1 - beq _0812B470 - movs r0, 0x1 - b _0812B472 - .align 2, 0 -_0812B46C: .4byte gReceivedRemoteLinkPlayers -_0812B470: - movs r0, 0 -_0812B472: - pop {r1} - bx r1 - thumb_func_end sub_812B45C - - thumb_func_start sub_812B478 -sub_812B478: @ 812B478 - ldr r1, _0812B480 @ =gUnknown_3005ECC - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0812B480: .4byte gUnknown_3005ECC - thumb_func_end sub_812B478 - - thumb_func_start sub_812B484 -sub_812B484: @ 812B484 - push {lr} - ldr r0, _0812B4A4 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0812B49E - ldr r1, _0812B4A8 @ =gUnknown_3005ECC - movs r0, 0x1 - strb r0, [r1] - bl sub_812B4B8 -_0812B49E: - pop {r0} - bx r0 - .align 2, 0 -_0812B4A4: .4byte gUnknown_203ADFA -_0812B4A8: .4byte gUnknown_3005ECC - thumb_func_end sub_812B484 - - thumb_func_start sub_812B4AC -sub_812B4AC: @ 812B4AC - ldr r1, _0812B4B4 @ =gUnknown_203F175 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_0812B4B4: .4byte gUnknown_203F175 - thumb_func_end sub_812B4AC - - thumb_func_start sub_812B4B8 -sub_812B4B8: @ 812B4B8 - ldr r1, _0812B4C0 @ =gUnknown_203F175 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0812B4C0: .4byte gUnknown_203F175 - thumb_func_end sub_812B4B8 - - thumb_func_start sub_812B4C4 -sub_812B4C4: @ 812B4C4 - str r1, [r0] - movs r2, 0x1 - movs r1, 0x1 - strh r1, [r0, 0x4] - strh r1, [r0, 0x6] - strb r2, [r0, 0x8] - movs r1, 0x4 - strb r1, [r0, 0x9] - bx lr - thumb_func_end sub_812B4C4 - - thumb_func_start sub_812B4D8 -sub_812B4D8: @ 812B4D8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_812B4C4 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B520 - ldr r0, _0812B518 @ =gUnknown_841DFAC - bl sub_812BF74 - ldr r0, _0812B51C @ =gUnknown_3005E9C - ldrb r2, [r0, 0x2] - adds r0, r4, 0 - movs r1, 0 - bl sub_813C64C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812BF9C - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B518: .4byte gUnknown_841DFAC -_0812B51C: .4byte gUnknown_3005E9C - thumb_func_end sub_812B4D8 - - thumb_func_start sub_812B520 -sub_812B520: @ 812B520 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 - movs r3, 0 - ldr r0, _0812B598 @ =gUnknown_845C4B0 - mov r9, r0 - ldr r1, _0812B59C @ =gUnknown_203B0EC - mov r8, r1 - ldr r0, _0812B5A0 @ =gUnknown_845C4B6 - mov r12, r0 - ldr r7, _0812B5A4 @ =gUnknown_845B080 -_0812B53E: - mov r1, r9 - adds r0, r3, r1 - ldrb r2, [r0] - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - adds r0, r2, r0 - add r0, r12 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0812B56C - lsls r1, r4, 3 - adds r1, r5 - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - str r0, [r1] - str r2, [r1, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0812B56C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _0812B53E - lsls r0, r4, 3 - adds r0, r5 - subs r0, 0x8 - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - movs r0, 0 - strh r4, [r6, 0x4] - strh r4, [r6, 0x6] - strb r0, [r6, 0x8] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812B598: .4byte gUnknown_845C4B0 -_0812B59C: .4byte gUnknown_203B0EC -_0812B5A0: .4byte gUnknown_845C4B6 -_0812B5A4: .4byte gUnknown_845B080 - thumb_func_end sub_812B520 - - thumb_func_start sub_812B5A8 -sub_812B5A8: @ 812B5A8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - bl sub_813BDE8 - movs r0, 0 - bl sub_813BFC0 - movs r0, 0x1 - bl sub_813BE78 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B4C4 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B614 - ldr r0, _0812B608 @ =gUnknown_841DFC9 - bl sub_812BF74 - ldrb r1, [r4, 0xC] - ldrb r2, [r4, 0xD] - adds r0, r4, 0 - bl sub_813C64C - ldr r1, _0812B60C @ =gUnknown_845B080 - ldr r0, _0812B610 @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_813C4CC - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B608: .4byte gUnknown_841DFC9 -_0812B60C: .4byte gUnknown_845B080 -_0812B610: .4byte gUnknown_3005E9C - thumb_func_end sub_812B5A8 - - thumb_func_start sub_812B614 -sub_812B614: @ 812B614 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - movs r6, 0 - ldr r3, _0812B664 @ =gUnknown_845B9E0 - ldr r0, _0812B668 @ =gUnknown_203B0EC - ldrh r1, [r0] - lsls r0, r1, 2 - ldr r2, _0812B66C @ =gUnknown_3005E9C - adds r0, r1 - ldrb r2, [r2, 0x1] - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldr r3, [r0] - movs r7, 0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _0812B6D0 -_0812B640: - adds r4, r3, r7 - ldrb r0, [r4] - str r3, [sp] - bl sub_812B780 - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp] - cmp r0, 0x1 - bne _0812B6C2 - ldr r0, _0812B66C @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0812B674 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B670 @ =gUnknown_845B0B0 - b _0812B6AA - .align 2, 0 -_0812B664: .4byte gUnknown_845B9E0 -_0812B668: .4byte gUnknown_203B0EC -_0812B66C: .4byte gUnknown_3005E9C -_0812B670: .4byte gUnknown_845B0B0 -_0812B674: - cmp r0, 0x1 - bne _0812B684 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B680 @ =gUnknown_845B218 - b _0812B6AA - .align 2, 0 -_0812B680: .4byte gUnknown_845B218 -_0812B684: - cmp r0, 0x2 - bne _0812B694 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B690 @ =gUnknown_845B3A0 - b _0812B6AA - .align 2, 0 -_0812B690: .4byte gUnknown_845B3A0 -_0812B694: - cmp r0, 0x3 - bne _0812B6A4 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B6A0 @ =gUnknown_845B500 - b _0812B6AA - .align 2, 0 -_0812B6A0: .4byte gUnknown_845B500 -_0812B6A4: - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B744 @ =gUnknown_845B540 -_0812B6AA: - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] - lsls r0, r6, 3 - adds r0, r5 - ldrb r1, [r4] - str r1, [r0, 0x4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0812B6C2: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812B640 -_0812B6D0: - bl sub_812B754 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812B710 - movs r7, 0 - ldr r3, _0812B748 @ =gUnknown_845B9BE - ldrb r0, [r3] - cmp r0, 0xFF - beq _0812B710 - ldr r4, _0812B74C @ =gUnknown_845B3A0 -_0812B6E8: - lsls r1, r6, 3 - adds r1, r5 - adds r2, r3, r7 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - ldrb r0, [r2] - str r0, [r1, 0x4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812B6E8 -_0812B710: - lsls r0, r6, 3 - adds r0, r5 - ldr r1, _0812B750 @ =gUnknown_81B2E6F - str r1, [r0] - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0 - mov r0, r8 - strh r6, [r0, 0x4] - movs r0, 0x7 - mov r2, r8 - strh r0, [r2, 0x6] - strb r1, [r2, 0x8] - movs r0, 0x15 - strb r0, [r2, 0x9] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812B744: .4byte gUnknown_845B540 -_0812B748: .4byte gUnknown_845B9BE -_0812B74C: .4byte gUnknown_845B3A0 -_0812B750: .4byte gUnknown_81B2E6F - thumb_func_end sub_812B614 - - thumb_func_start sub_812B754 -sub_812B754: @ 812B754 - push {lr} - movs r0, 0x96 - lsls r0, 3 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812B778 - ldr r0, _0812B774 @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0812B778 - movs r0, 0x1 - b _0812B77A - .align 2, 0 -_0812B774: .4byte gUnknown_3005E9C -_0812B778: - movs r0, 0 -_0812B77A: - pop {r1} - bx r1 - thumb_func_end sub_812B754 - - thumb_func_start sub_812B780 -sub_812B780: @ 812B780 - push {r4,r5,lr} - lsls r0, 24 - lsrs r1, r0, 24 - adds r5, r1, 0 - movs r4, 0 - ldr r0, _0812B7A8 @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0812B794 - b _0812B8AC -_0812B794: - subs r0, r1, 0x1 - cmp r0, 0x2B - bls _0812B79C - b _0812BB04 -_0812B79C: - lsls r0, 2 - ldr r1, _0812B7AC @ =_0812B7B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812B7A8: .4byte gUnknown_3005E9C -_0812B7AC: .4byte _0812B7B0 - .align 2, 0 -_0812B7B0: - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B860 - .4byte _0812BB08 - .4byte _0812B868 - .4byte _0812B870 - .4byte _0812BB08 - .4byte _0812B880 - .4byte _0812B868 - .4byte _0812B878 - .4byte _0812B890 - .4byte _0812B880 - .4byte _0812B880 - .4byte _0812B880 - .4byte _0812B868 - .4byte _0812B880 - .4byte _0812B880 - .4byte _0812B868 - .4byte _0812B880 - .4byte _0812B888 - .4byte _0812B868 - .4byte _0812B888 - .4byte _0812B878 - .4byte _0812B890 - .4byte _0812B880 - .4byte _0812B890 - .4byte _0812B896 - .4byte _0812B880 - .4byte _0812B890 - .4byte _0812B880 - .4byte _0812B890 - .4byte _0812B890 - .4byte _0812BB08 - .4byte _0812B868 - .4byte _0812B868 - .4byte _0812B880 - .4byte _0812BB08 - .4byte _0812B89C - .4byte _0812B896 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B8A4 -_0812B860: - ldr r0, _0812B864 @ =0x000002cf - b _0812BAF2 - .align 2, 0 -_0812B864: .4byte 0x000002cf -_0812B868: - ldr r0, _0812B86C @ =0x00000891 - b _0812BAF2 - .align 2, 0 -_0812B86C: .4byte 0x00000891 -_0812B870: - ldr r0, _0812B874 @ =0x00000895 - b _0812BAF2 - .align 2, 0 -_0812B874: .4byte 0x00000895 -_0812B878: - ldr r0, _0812B87C @ =0x000008a4 - b _0812BAF2 - .align 2, 0 -_0812B87C: .4byte 0x000008a4 -_0812B880: - ldr r0, _0812B884 @ =0x00000828 - b _0812BAF2 - .align 2, 0 -_0812B884: .4byte 0x00000828 -_0812B888: - ldr r0, _0812B88C @ =0x00000829 - b _0812BAF2 - .align 2, 0 -_0812B88C: .4byte 0x00000829 -_0812B890: - movs r0, 0x82 - lsls r0, 4 - b _0812BAF2 -_0812B896: - bl sub_812BB10 - b _0812BAF6 -_0812B89C: - ldr r0, _0812B8A0 @ =0x0000029b - b _0812BAF2 - .align 2, 0 -_0812B8A0: .4byte 0x0000029b -_0812B8A4: - ldr r0, _0812B8A8 @ =0x00000892 - b _0812BAF2 - .align 2, 0 -_0812B8A8: .4byte 0x00000892 -_0812B8AC: - cmp r0, 0x1 - beq _0812B8B2 - b _0812B9D8 -_0812B8B2: - subs r0, r1, 0x1 - cmp r0, 0x2F - bls _0812B8BA - b _0812BB04 -_0812B8BA: - lsls r0, 2 - ldr r1, _0812B8C4 @ =_0812B8C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812B8C4: .4byte _0812B8C8 - .align 2, 0 -_0812B8C8: - .4byte _0812B988 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812B9A8 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B990 - .4byte _0812B9BA - .4byte _0812B9C0 - .4byte _0812B9C0 - .4byte _0812B9C6 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B988 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812B9A8 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812B988 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B9D0 -_0812B988: - ldr r0, _0812B98C @ =0x00000829 - b _0812BAF2 - .align 2, 0 -_0812B98C: .4byte 0x00000829 -_0812B990: - ldr r0, _0812B99C @ =0x00000169 - movs r1, 0x1 - bl sub_8099F40 - b _0812BAF6 - .align 2, 0 -_0812B99C: .4byte 0x00000169 -_0812B9A0: - ldr r0, _0812B9A4 @ =0x00000828 - b _0812BAF2 - .align 2, 0 -_0812B9A4: .4byte 0x00000828 -_0812B9A8: - movs r0, 0x1 - bl sub_8088EDC - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _0812B9B8 - b _0812BB08 -_0812B9B8: - b _0812BB04 -_0812B9BA: - movs r0, 0x82 - lsls r0, 4 - b _0812BAF2 -_0812B9C0: - bl sub_812BB10 - b _0812BAF6 -_0812B9C6: - ldr r0, _0812B9CC @ =0x00000271 - b _0812BAF2 - .align 2, 0 -_0812B9CC: .4byte 0x00000271 -_0812B9D0: - ldr r0, _0812B9D4 @ =0x0000082c - b _0812BAF2 - .align 2, 0 -_0812B9D4: .4byte 0x0000082c -_0812B9D8: - cmp r0, 0x2 - beq _0812B9DE - b _0812BADC -_0812B9DE: - bl sub_812B754 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812BA0E - ldr r0, _0812BA20 @ =gUnknown_845B9BE - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0xFF - beq _0812BA0E - adds r1, r2, 0 -_0812B9F6: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, r5 - bne _0812BA00 - b _0812BB04 -_0812BA00: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812B9F6 -_0812BA0E: - subs r0, r5, 0x1 - cmp r0, 0x26 - bls _0812BA16 - b _0812BB08 -_0812BA16: - lsls r0, 2 - ldr r1, _0812BA24 @ =_0812BA28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BA20: .4byte gUnknown_845B9BE -_0812BA24: .4byte _0812BA28 - .align 2, 0 -_0812BA28: - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAD2 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BB08 - .4byte _0812BAD2 - .4byte _0812BAC4 - .4byte _0812BB08 - .4byte _0812BAD2 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BACC - .4byte _0812BACC - .4byte _0812BB08 - .4byte _0812BAD2 -_0812BAC4: - ldr r0, _0812BAC8 @ =0x00000828 - b _0812BAF2 - .align 2, 0 -_0812BAC8: .4byte 0x00000828 -_0812BACC: - bl sub_812BB10 - b _0812BAF6 -_0812BAD2: - ldr r0, _0812BAD8 @ =0x000008a4 - b _0812BAF2 - .align 2, 0 -_0812BAD8: .4byte 0x000008a4 -_0812BADC: - cmp r0, 0x3 - bne _0812BB00 - cmp r5, 0x5 - beq _0812BAEA - cmp r5, 0x6 - beq _0812BAF0 - b _0812BB08 -_0812BAEA: - movs r0, 0x82 - lsls r0, 4 - b _0812BAF2 -_0812BAF0: - ldr r0, _0812BAFC @ =0x00000821 -_0812BAF2: - bl FlagGet -_0812BAF6: - lsls r0, 24 - lsrs r0, 24 - b _0812BB0A - .align 2, 0 -_0812BAFC: .4byte 0x00000821 -_0812BB00: - cmp r0, 0x4 - beq _0812BB08 -_0812BB04: - movs r0, 0 - b _0812BB0A -_0812BB08: - movs r0, 0x1 -_0812BB0A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_812B780 - - thumb_func_start sub_812BB10 -sub_812BB10: @ 812BB10 - push {lr} - ldr r0, _0812BB7C @ =0x00000237 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - movs r0, 0x8E - lsls r0, 2 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB80 @ =0x00000239 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB84 @ =0x0000023a - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB88 @ =0x0000023b - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB8C @ =0x000002ef - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB90 @ =0x000001f1 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - movs r0, 0 - b _0812BB96 - .align 2, 0 -_0812BB7C: .4byte 0x00000237 -_0812BB80: .4byte 0x00000239 -_0812BB84: .4byte 0x0000023a -_0812BB88: .4byte 0x0000023b -_0812BB8C: .4byte 0x000002ef -_0812BB90: .4byte 0x000001f1 -_0812BB94: - movs r0, 0x1 -_0812BB96: - pop {r1} - bx r1 - thumb_func_end sub_812BB10 - - thumb_func_start sub_812BB9C -sub_812BB9C: @ 812BB9C - push {lr} - adds r2, r0, 0 - adds r3, r1, 0 - ldrb r0, [r2, 0xE] - cmp r0, 0xA - bhi _0812BC4C - lsls r0, 2 - ldr r1, _0812BBB4 @ =_0812BBB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BBB4: .4byte _0812BBB8 - .align 2, 0 -_0812BBB8: - .4byte _0812BC02 - .4byte _0812BC0C - .4byte _0812BC16 - .4byte _0812BC20 - .4byte _0812BC2A - .4byte _0812BC34 - .4byte _0812BC3E - .4byte _0812BC4C - .4byte _0812BBE4 - .4byte _0812BBEE - .4byte _0812BBF8 -_0812BBE4: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BC54 - b _0812BC46 -_0812BBEE: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BC80 - b _0812BC46 -_0812BBF8: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BCA8 - b _0812BC46 -_0812BC02: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BCD0 - b _0812BC46 -_0812BC0C: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BD2C - b _0812BC46 -_0812BC16: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BD64 - b _0812BC46 -_0812BC20: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BD98 - b _0812BC46 -_0812BC2A: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BE10 - b _0812BC46 -_0812BC34: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BEEC - b _0812BC46 -_0812BC3E: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BF18 -_0812BC46: - lsls r0, 24 - lsrs r0, 24 - b _0812BC4E -_0812BC4C: - movs r0, 0 -_0812BC4E: - pop {r1} - bx r1 - thumb_func_end sub_812BB9C - - thumb_func_start sub_812BC54 -sub_812BC54: @ 812BC54 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0812BC7C @ =gUnknown_841DFA5 - bl sub_812BF74 - bl sub_812BF5C - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - movs r0, 0x9 - strb r0, [r4, 0xE] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BC7C: .4byte gUnknown_841DFA5 - thumb_func_end sub_812BC54 - - thumb_func_start sub_812BC80 -sub_812BC80: @ 812BC80 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0812BCA4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812BC9A - movs r0, 0x5 - bl PlaySE - movs r0, 0xA - strb r0, [r4, 0xE] -_0812BC9A: - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BCA4: .4byte gMain - thumb_func_end sub_812BC80 - - thumb_func_start sub_812BCA8 -sub_812BCA8: @ 812BCA8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - ldr r0, _0812BCCC @ =gUnknown_3005E9C - movs r5, 0 - strb r5, [r0, 0x2] - adds r0, r4, 0 - bl sub_812BF94 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_812B4D8 - strb r5, [r4, 0xE] - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0812BCCC: .4byte gUnknown_3005E9C - thumb_func_end sub_812BCA8 - - thumb_func_start sub_812BCD0 -sub_812BCD0: @ 812BCD0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_813C690 - adds r1, r0, 0 - adds r0, r1, 0x6 - cmp r0, 0x5 - bhi _0812BD16 - lsls r0, 2 - ldr r1, _0812BCEC @ =_0812BCF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BCEC: .4byte _0812BCF0 - .align 2, 0 -_0812BCF0: - .4byte _0812BD08 - .4byte _0812BD0C - .4byte _0812BD0C - .4byte _0812BD1E - .4byte _0812BD08 - .4byte _0812BD1E -_0812BD08: - movs r0, 0 - b _0812BD20 -_0812BD0C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812BF9C - b _0812BD1E -_0812BD16: - ldr r0, _0812BD28 @ =gUnknown_3005E9C - strb r1, [r0, 0x1] - movs r0, 0x1 - strb r0, [r4, 0xE] -_0812BD1E: - movs r0, 0x1 -_0812BD20: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812BD28: .4byte gUnknown_3005E9C - thumb_func_end sub_812BCD0 - - thumb_func_start sub_812BD2C -sub_812BD2C: @ 812BD2C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, _0812BD60 @ =gUnknown_3005E9C - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4, 0xD] - strb r0, [r1, 0x2] - adds r0, r4, 0 - bl sub_812BF94 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B5A8 - bl sub_813C75C - movs r0, 0x2 - bl sub_813C684 - movs r0, 0x3 - strb r0, [r4, 0xE] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812BD60: .4byte gUnknown_3005E9C - thumb_func_end sub_812BD2C - - thumb_func_start sub_812BD64 -sub_812BD64: @ 812BD64 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0 - movs r1, 0 - bl sub_813C004 - movs r0, 0x1 - movs r1, 0 - bl sub_813C004 - ldr r0, _0812BD94 @ =gUnknown_3005E9C - movs r4, 0 - strb r4, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_812B4D8 - strb r4, [r5, 0xE] - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0812BD94: .4byte gUnknown_3005E9C - thumb_func_end sub_812BD64 - - thumb_func_start sub_812BD98 -sub_812BD98: @ 812BD98 - push {r4,lr} - adds r4, r0, 0 - bl sub_813C690 - adds r1, r0, 0 - adds r0, r1, 0x6 - cmp r0, 0x5 - bhi _0812BDD8 - lsls r0, 2 - ldr r1, _0812BDB4 @ =_0812BDB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BDB4: .4byte _0812BDB8 - .align 2, 0 -_0812BDB8: - .4byte _0812BDD0 - .4byte _0812BDE0 - .4byte _0812BDE0 - .4byte _0812BDE0 - .4byte _0812BDD4 - .4byte _0812BDE0 -_0812BDD0: - movs r0, 0 - b _0812BDE2 -_0812BDD4: - movs r0, 0x2 - b _0812BDDE -_0812BDD8: - ldr r0, _0812BDE8 @ =gUnknown_3005E9C - strb r1, [r0, 0x3] - movs r0, 0x4 -_0812BDDE: - strb r0, [r4, 0xE] -_0812BDE0: - movs r0, 0x1 -_0812BDE2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BDE8: .4byte gUnknown_3005E9C - thumb_func_end sub_812BD98 - - thumb_func_start sub_812BDEC -sub_812BDEC: @ 812BDEC - push {lr} - ldr r1, _0812BE08 @ =gUnknown_845B080 - ldr r0, _0812BE0C @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_813C4CC - pop {r0} - bx r0 - .align 2, 0 -_0812BE08: .4byte gUnknown_845B080 -_0812BE0C: .4byte gUnknown_3005E9C - thumb_func_end sub_812BDEC - - thumb_func_start sub_812BE10 -sub_812BE10: @ 812BE10 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _0812BE4C @ =gUnknown_3005E9C - movs r0, 0x2 - strb r0, [r4] - movs r0, 0 - bl sub_813BDA4 - bl sub_813C624 - ldr r0, _0812BE50 @ =gUnknown_841DFBE - bl sub_812BF74 - movs r0, 0x1 - bl sub_813BDE8 - movs r0, 0x1 - bl sub_813BEE4 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _0812BE5C - ldr r0, _0812BE54 @ =gUnknown_845B0B0 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BE58 @ =gUnknown_845B164 - b _0812BEA4 - .align 2, 0 -_0812BE4C: .4byte gUnknown_3005E9C -_0812BE50: .4byte gUnknown_841DFBE -_0812BE54: .4byte gUnknown_845B0B0 -_0812BE58: .4byte gUnknown_845B164 -_0812BE5C: - cmp r0, 0x1 - bne _0812BE78 - ldr r0, _0812BE70 @ =gUnknown_845B218 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BE74 @ =gUnknown_845B2DC - b _0812BEA4 - .align 2, 0 -_0812BE70: .4byte gUnknown_845B218 -_0812BE74: .4byte gUnknown_845B2DC -_0812BE78: - cmp r0, 0x2 - bne _0812BE94 - ldr r0, _0812BE8C @ =gUnknown_845B3A0 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BE90 @ =gUnknown_845B450 - b _0812BEA4 - .align 2, 0 -_0812BE8C: .4byte gUnknown_845B3A0 -_0812BE90: .4byte gUnknown_845B450 -_0812BE94: - cmp r0, 0x3 - bne _0812BEB8 - ldr r0, _0812BEB0 @ =gUnknown_845B500 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BEB4 @ =gUnknown_845B520 -_0812BEA4: - adds r1, r2 - ldr r1, [r1] - bl sub_813C50C - b _0812BECC - .align 2, 0 -_0812BEB0: .4byte gUnknown_845B500 -_0812BEB4: .4byte gUnknown_845B520 -_0812BEB8: - ldr r0, _0812BEE4 @ =gUnknown_845B540 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BEE8 @ =gUnknown_845B5D0 - adds r1, r2 - ldr r1, [r1] - bl sub_813C50C -_0812BECC: - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - movs r0, 0x6 - strb r0, [r5, 0xE] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812BEE4: .4byte gUnknown_845B540 -_0812BEE8: .4byte gUnknown_845B5D0 - thumb_func_end sub_812BE10 - - thumb_func_start sub_812BEEC -sub_812BEEC: @ 812BEEC - push {r4,lr} - adds r4, r0, 0 - ldr r2, _0812BF14 @ =gUnknown_3005E9C - movs r0, 0x1 - strb r0, [r2] - adds r0, r4, 0 - bl sub_812B5A8 - bl sub_813C75C - movs r0, 0x2 - bl sub_813C684 - movs r0, 0x3 - strb r0, [r4, 0xE] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BF14: .4byte gUnknown_3005E9C - thumb_func_end sub_812BEEC - - thumb_func_start sub_812BF18 -sub_812BF18: @ 812BF18 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0812BF40 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0812BF30 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812BF44 -_0812BF30: - movs r0, 0x5 - bl PlaySE - movs r0, 0x5 - strb r0, [r4, 0xE] - movs r0, 0x1 - b _0812BF54 - .align 2, 0 -_0812BF40: .4byte gMain -_0812BF44: - movs r0, 0xC0 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _0812BF52 - movs r0, 0x1 - b _0812BF54 -_0812BF52: - movs r0, 0 -_0812BF54: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812BF18 - - thumb_func_start sub_812BF5C -sub_812BF5C: @ 812BF5C - push {lr} - bl sub_813C624 - ldr r0, _0812BF70 @ =gUnknown_81B2FC9 - movs r1, 0 - movs r2, 0 - bl sub_813C4CC - pop {r0} - bx r0 - .align 2, 0 -_0812BF70: .4byte gUnknown_81B2FC9 - thumb_func_end sub_812BF5C - - thumb_func_start sub_812BF74 -sub_812BF74: @ 812BF74 - push {r4,lr} - adds r4, r0, 0 - bl sub_813C5FC - adds r0, r4, 0 - bl sub_813C488 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812BF74 - - thumb_func_start sub_812BF88 -sub_812BF88: @ 812BF88 - ldr r0, _0812BF90 @ =gUnknown_3005E9C - ldrb r0, [r0] - bx lr - .align 2, 0 -_0812BF90: .4byte gUnknown_3005E9C - thumb_func_end sub_812BF88 - - thumb_func_start sub_812BF94 -sub_812BF94: @ 812BF94 - movs r1, 0 - strb r1, [r0, 0xC] - strb r1, [r0, 0xD] - bx lr - thumb_func_end sub_812BF94 - - thumb_func_start sub_812BF9C -sub_812BF9C: @ 812BF9C - push {lr} - ldrb r2, [r0, 0xC] - ldrb r0, [r0, 0xD] - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldr r1, [r2, 0x4] - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - bne _0812BFC0 - ldr r0, _0812BFBC @ =gUnknown_845B098 - ldr r0, [r0, 0x14] - bl sub_813C584 - b _0812BFCC - .align 2, 0 -_0812BFBC: .4byte gUnknown_845B098 -_0812BFC0: - ldr r0, _0812BFD8 @ =gUnknown_845B098 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl sub_813C584 -_0812BFCC: - movs r0, 0x1 - bl sub_813BE30 - pop {r0} - bx r0 - .align 2, 0 -_0812BFD8: .4byte gUnknown_845B098 - thumb_func_end sub_812BF9C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/hof_pc.s b/asm/hof_pc.s index b5a437662..80f7fc3f9 100644 --- a/asm/hof_pc.s +++ b/asm/hof_pc.s @@ -57,16 +57,16 @@ _080CA59C: .4byte sub_80CA53C thumb_func_start sub_80CA5A0 sub_80CA5A0: @ 80CA5A0 push {lr} - ldr r0, _080CA5B4 @ =c2_exit_to_overworld_2_switch + ldr r0, _080CA5B4 @ =CB2_ReturnToField bl SetMainCallback2 - ldr r1, _080CA5B8 @ =gUnknown_3005020 + ldr r1, _080CA5B8 @ =gFieldCallback ldr r0, _080CA5BC @ =sub_80CA5C0 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_080CA5B4: .4byte c2_exit_to_overworld_2_switch -_080CA5B8: .4byte gUnknown_3005020 +_080CA5B4: .4byte CB2_ReturnToField +_080CA5B8: .4byte gFieldCallback _080CA5BC: .4byte sub_80CA5C0 thumb_func_end sub_80CA5A0 diff --git a/asm/ice.s b/asm/ice.s new file mode 100644 index 000000000..c04715b95 --- /dev/null +++ b/asm/ice.s @@ -0,0 +1,3099 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80AF058 +sub_80AF058: @ 80AF058 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080AF0B4 @ =gUnknown_83E5F38 + movs r2, 0x22 + ldrsh r1, [r4, r2] + movs r3, 0x24 + ldrsh r2, [r4, r3] + ldrh r3, [r4, 0x20] + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080AF09C + ldr r3, _080AF0B8 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, _080AF0BC @ =sub_80AF0C8 + str r2, [r1] + adds r0, r3 + strh r5, [r0, 0x3A] + movs r1, 0xA + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] +_080AF09C: + ldrh r2, [r4, 0x24] + movs r0, 0x24 + ldrsh r1, [r4, r0] + movs r3, 0x26 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080AF0C0 + adds r0, r2, 0 + adds r0, 0x20 + strh r0, [r4, 0x24] + movs r0, 0 + b _080AF0C2 + .align 2, 0 +_080AF0B4: .4byte gUnknown_83E5F38 +_080AF0B8: .4byte gSprites +_080AF0BC: .4byte sub_80AF0C8 +_080AF0C0: + movs r0, 0x1 +_080AF0C2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80AF058 + + thumb_func_start sub_80AF0C8 +sub_80AF0C8: @ 80AF0C8 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AF0FC + ldr r3, _080AF104 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080AF0FC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF104: .4byte gTasks + thumb_func_end sub_80AF0C8 + + thumb_func_start sub_80AF108 +sub_80AF108: @ 80AF108 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x7 + ldr r3, _080AF210 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080AF214 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r4, _080AF218 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, _080AF21C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + str r3, [sp] + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080AF220 @ =gBattleAnimArgs + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r1] + ldr r3, [sp] + adds r0, r3 + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x4] + mov r4, r9 + adds r0, r4, r0 + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x2] + adds r0, r6 + strh r0, [r5, 0x34] + ldrh r0, [r1, 0x6] + mov r7, r8 + adds r0, r7, r0 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8074C80 + adds r4, 0x20 + movs r0, 0x98 + lsls r0, 1 + mov r12, r0 + ldr r3, [sp] + cmp r4, r12 + bhi _080AF1E2 + adds r0, r7, 0 + adds r0, 0x20 + ldrh r1, [r5, 0x30] + ldrh r2, [r5, 0x32] + cmp r0, 0xE0 + bhi _080AF1E2 + adds r4, r1, 0 + mov r10, r12 +_080AF1AE: + mov r7, r9 + lsls r1, r7, 16 + asrs r1, 16 + adds r1, r4 + lsls r1, 16 + mov r7, r8 + lsls r0, r7, 16 + asrs r0, 16 + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsrs r0, r1, 16 + mov r9, r0 + movs r7, 0x80 + lsls r7, 14 + adds r1, r7 + lsrs r1, 16 + cmp r1, r10 + bhi _080AF1E2 + mov r1, r8 + lsls r0, r1, 16 + adds r0, r7 + lsrs r0, 16 + cmp r0, 0xE0 + bls _080AF1AE +_080AF1E2: + ldrh r0, [r5, 0x30] + negs r7, r0 + strh r7, [r5, 0x30] + ldrh r0, [r5, 0x32] + negs r4, r0 + strh r4, [r5, 0x32] + lsls r0, r3, 16 + movs r1, 0x80 + lsls r1, 14 + adds r0, r1 + lsrs r0, 16 + movs r2, 0x98 + lsls r2, 1 + mov r12, r2 + ldr r1, _080AF220 @ =gBattleAnimArgs + mov r10, r1 + cmp r0, r12 + bhi _080AF24E + lsls r1, r6, 16 + movs r2, 0x80 + lsls r2, 14 + adds r0, r1, r2 + b _080AF246 + .align 2, 0 +_080AF210: .4byte 0x000003ff +_080AF214: .4byte 0xfffffc00 +_080AF218: .4byte gBattleAnimTarget +_080AF21C: .4byte gBattleAnimAttacker +_080AF220: .4byte gBattleAnimArgs +_080AF224: + lsls r1, r3, 16 + asrs r1, 16 + adds r1, r7 + lsls r1, 16 + asrs r0, r2, 16 + adds r0, r4 + lsls r0, 16 + lsrs r6, r0, 16 + lsrs r3, r1, 16 + movs r0, 0x80 + lsls r0, 14 + adds r1, r0 + lsrs r1, 16 + cmp r1, r12 + bhi _080AF24E + lsls r1, r6, 16 + adds r0, r1, r0 +_080AF246: + lsrs r0, 16 + adds r2, r1, 0 + cmp r0, 0xE0 + bls _080AF224 +_080AF24E: + strh r3, [r5, 0x20] + strh r6, [r5, 0x22] + mov r1, r10 + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + strh r3, [r5, 0x30] + mov r2, r9 + strh r2, [r5, 0x32] + strh r6, [r5, 0x34] + mov r3, r8 + strh r3, [r5, 0x36] + adds r0, r5, 0 + bl sub_8074C80 + mov r7, r10 + ldrh r0, [r7, 0xA] + strh r0, [r5, 0x34] + ldrh r0, [r7, 0xC] + strh r0, [r5, 0x36] + ldr r0, _080AF288 @ =sub_80AF28C + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AF288: .4byte sub_80AF28C + thumb_func_end sub_80AF108 + + thumb_func_start sub_80AF28C +sub_80AF28C: @ 80AF28C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AF2E4 + ldrh r1, [r4, 0x30] + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x3A] + adds r0, r2 + strh r0, [r4, 0x3A] + strh r1, [r4, 0x24] + strh r0, [r4, 0x26] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + b _080AF2EA +_080AF2E4: + adds r0, r4, 0 + bl DestroyAnimSprite +_080AF2EA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF28C + + thumb_func_start sub_80AF2F0 +sub_80AF2F0: @ 80AF2F0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AF324 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r4, 0x2E] + movs r0, 0x3C + strh r0, [r4, 0x30] + movs r0, 0x9 + strh r0, [r4, 0x32] + movs r0, 0x1E + strh r0, [r4, 0x34] + movs r0, 0xFE + lsls r0, 8 + strh r0, [r4, 0x36] + ldr r1, _080AF328 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080AF32C @ =sub_8074AE0 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF324: .4byte gBattleAnimArgs +_080AF328: .4byte DestroyAnimSprite +_080AF32C: .4byte sub_8074AE0 + thumb_func_end sub_80AF2F0 + + thumb_func_start sub_80AF330 +sub_80AF330: @ 80AF330 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080AF364 @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldr r0, _080AF368 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF370 + ldr r0, _080AF36C @ =gBattleAnimArgs + ldrh r1, [r4, 0x32] + ldrh r0, [r0, 0x4] + subs r1, r0 + strh r1, [r4, 0x32] + b _080AF37A + .align 2, 0 +_080AF364: .4byte gBattleAnimTarget +_080AF368: .4byte gBattleAnimAttacker +_080AF36C: .4byte gBattleAnimArgs +_080AF370: + ldr r0, _080AF3A8 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] +_080AF37A: + ldr r0, _080AF3AC @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + ldr r1, _080AF3A8 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r2, [r1, 0x6] + adds r0, r2 + strh r0, [r4, 0x36] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x2E] + ldr r1, _080AF3B0 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080AF3B4 @ =sub_8075590 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF3A8: .4byte gBattleAnimArgs +_080AF3AC: .4byte gBattleAnimTarget +_080AF3B0: .4byte DestroyAnimSprite +_080AF3B4: .4byte sub_8075590 + thumb_func_end sub_80AF330 + + thumb_func_start sub_80AF3B8 +sub_80AF3B8: @ 80AF3B8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080AF3D0 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AF3D4 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + b _080AF40A + .align 2, 0 +_080AF3D0: .4byte gBattleAnimArgs +_080AF3D4: + ldr r0, _080AF41C @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_8076D9C + ldr r0, _080AF420 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF3FA + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080AF3FA: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080AF40A: + ldr r1, _080AF424 @ =sub_80AF42C + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080AF428 @ =sub_8074F50 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AF41C: .4byte gBattleAnimTarget +_080AF420: .4byte gBattleAnimAttacker +_080AF424: .4byte sub_80AF42C +_080AF428: .4byte sub_8074F50 + thumb_func_end sub_80AF3B8 + + thumb_func_start sub_80AF42C +sub_80AF42C: @ 80AF42C + push {lr} + adds r3, r0, 0 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080AF462 + adds r0, r3, 0 + bl move_anim_8074EE0 +_080AF462: + pop {r0} + bx r0 + thumb_func_end sub_80AF42C + + thumb_func_start sub_80AF468 +sub_80AF468: @ 80AF468 + push {r4-r7,lr} + sub sp, 0x10 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r6, _080AF4B0 @ =gBattleAnimArgs + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080AF4B8 + ldr r4, _080AF4B4 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + strh r0, [r5, 0x36] + b _080AF4CA + .align 2, 0 +_080AF4B0: .4byte gBattleAnimArgs +_080AF4B4: .4byte gBattleAnimTarget +_080AF4B8: + ldr r0, _080AF4E4 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_8076D9C +_080AF4CA: + ldr r0, _080AF4E8 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF4F0 + ldr r0, _080AF4EC @ =gBattleAnimArgs + ldrh r1, [r5, 0x32] + ldrh r0, [r0, 0x4] + subs r1, r0 + strh r1, [r5, 0x32] + b _080AF4FA + .align 2, 0 +_080AF4E4: .4byte gBattleAnimTarget +_080AF4E8: .4byte gBattleAnimAttacker +_080AF4EC: .4byte gBattleAnimArgs +_080AF4F0: + ldr r0, _080AF598 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] +_080AF4FA: + adds r7, r5, 0 + adds r7, 0x2E + adds r2, r7, 0 + mov r1, sp + movs r4, 0x7 +_080AF504: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080AF504 + adds r0, r5, 0 + bl sub_8075804 + ldrh r0, [r5, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + eors r0, r1 + strh r0, [r5, 0x32] +_080AF526: + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_807578C + movs r0, 0x20 + ldrsh r1, [r5, r0] + movs r2, 0x24 + ldrsh r0, [r5, r2] + adds r1, r0 + adds r1, 0x10 + movs r0, 0x88 + lsls r0, 1 + cmp r1, r0 + bhi _080AF55A + movs r0, 0x22 + ldrsh r1, [r5, r0] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080AF55A + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080AF526 +_080AF55A: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + ldr r6, _080AF59C @ =sub_8075830 + ldr r1, _080AF5A0 @ =sub_80AF5A4 + mov r3, sp + adds r2, r7, 0 + movs r4, 0x7 +_080AF57A: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080AF57A + str r6, [r5, 0x1C] + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AF598: .4byte gBattleAnimArgs +_080AF59C: .4byte sub_8075830 +_080AF5A0: .4byte sub_80AF5A4 + thumb_func_end sub_80AF468 + + thumb_func_start sub_80AF5A4 +sub_80AF5A4: @ 80AF5A4 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r5, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r5, [r4, 0x26] + strh r5, [r4, 0x24] + movs r0, 0x80 + strh r0, [r4, 0x2E] + ldr r0, _080AF600 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + ldr r1, _080AF604 @ =0x0000ffec + cmp r0, 0 + beq _080AF5D4 + movs r1, 0x14 +_080AF5D4: + movs r2, 0x2E + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x34] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + strh r0, [r4, 0x36] + strh r5, [r4, 0x38] + ldr r1, _080AF608 @ =sub_80AF60C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AF600: .4byte gBattleAnimAttacker +_080AF604: .4byte 0x0000ffec +_080AF608: .4byte sub_80AF60C + thumb_func_end sub_80AF5A4 + + thumb_func_start sub_80AF60C +sub_80AF60C: @ 80AF60C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AF660 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + ldr r1, _080AF664 @ =0x0000ffec + cmp r0, 0 + beq _080AF622 + movs r1, 0x14 +_080AF622: + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0x1F + bgt _080AF668 + movs r2, 0x2E + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 16 + bl Sin + ldrh r1, [r4, 0x34] + subs r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x36] + subs r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x10 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + b _080AF686 + .align 2, 0 +_080AF660: .4byte gBattleAnimAttacker +_080AF664: .4byte 0x0000ffec +_080AF668: + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + strh r1, [r4, 0x36] + strh r1, [r4, 0x34] + ldr r0, _080AF68C @ =sub_80AF690 + str r0, [r4, 0x1C] +_080AF686: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF68C: .4byte sub_80AF690 + thumb_func_end sub_80AF60C + + thumb_func_start sub_80AF690 +sub_80AF690: @ 80AF690 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_807578C + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080AF6CC + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r1, r0, r1 + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bgt _080AF6CC + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080AF6D2 +_080AF6CC: + adds r0, r4, 0 + bl DestroyAnimSprite +_080AF6D2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF690 + + thumb_func_start sub_80AF6D8 +sub_80AF6D8: @ 80AF6D8 + push {r4-r7,lr} + sub sp, 0x10 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080AF71C @ =gBattleAnimArgs + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r2, 0xE + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080AF724 + ldr r4, _080AF720 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080AF736 + .align 2, 0 +_080AF71C: .4byte gBattleAnimArgs +_080AF720: .4byte gBattleAnimTarget +_080AF724: + ldr r0, _080AF754 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_8076D9C +_080AF736: + ldr r0, _080AF758 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF760 + ldr r0, _080AF75C @ =gBattleAnimArgs + ldrh r1, [r5, 0x32] + ldrh r2, [r0, 0x4] + subs r1, r2 + strh r1, [r5, 0x32] + adds r1, r0, 0 + b _080AF76A + .align 2, 0 +_080AF754: .4byte gBattleAnimTarget +_080AF758: .4byte gBattleAnimAttacker +_080AF75C: .4byte gBattleAnimArgs +_080AF760: + ldr r1, _080AF814 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] +_080AF76A: + ldrh r0, [r1, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8075804 + adds r7, r5, 0 + adds r7, 0x2E + adds r2, r7, 0 + mov r1, sp + movs r4, 0x7 +_080AF782: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080AF782 + ldrh r0, [r5, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + eors r0, r1 + strh r0, [r5, 0x32] +_080AF79E: + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_807578C + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r2, 0x24 + ldrsh r0, [r5, r2] + adds r1, r0 + adds r1, 0x10 + movs r0, 0x88 + lsls r0, 1 + cmp r1, r0 + bhi _080AF7D2 + movs r0, 0x22 + ldrsh r1, [r5, r0] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080AF7D2 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080AF79E +_080AF7D2: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + ldr r1, _080AF814 @ =gBattleAnimArgs + ldr r6, _080AF818 @ =sub_80AF81C + mov r3, sp + adds r2, r7, 0 + movs r4, 0x7 +_080AF7F2: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080AF7F2 + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x38] + ldrh r0, [r1, 0xC] + strh r0, [r5, 0x3A] + str r6, [r5, 0x1C] + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AF814: .4byte gBattleAnimArgs +_080AF818: .4byte sub_80AF81C + thumb_func_end sub_80AF6D8 + + thumb_func_start sub_80AF81C +sub_80AF81C: @ 80AF81C + push {r4,lr} + adds r4, r0, 0 + bl sub_807578C + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AF830 + movs r0, 0x1 + strh r0, [r4, 0x2E] +_080AF830: + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080AF886 + movs r2, 0x20 + ldrsh r0, [r4, r2] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080AF880 + movs r0, 0x22 + ldrsh r1, [r4, r0] + movs r2, 0x26 + ldrsh r0, [r4, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080AF880 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080AF886 +_080AF880: + adds r0, r4, 0 + bl DestroyAnimSprite +_080AF886: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF81C + + thumb_func_start sub_80AF88C +sub_80AF88C: @ 80AF88C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AF8F8 + ldr r5, _080AF8AC @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AF8B0 + adds r0, r4, 0 + movs r1, 0 + bl sub_8075114 + b _080AF8E6 + .align 2, 0 +_080AF8AC: .4byte gBattleAnimArgs +_080AF8B0: + ldr r0, _080AF8F0 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C + ldr r0, _080AF8F4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF8D6 + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080AF8D6: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080AF8E6: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080AF90C + .align 2, 0 +_080AF8F0: .4byte gBattleAnimTarget +_080AF8F4: .4byte gBattleAnimAttacker +_080AF8F8: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AF90C + adds r0, r4, 0 + bl DestroyAnimSprite +_080AF90C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AF88C + + thumb_func_start sub_80AF914 +sub_80AF914: @ 80AF914 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080AF934 @ =gBattleAnimArgs + movs r1, 0x8 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080AF984 + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080AF938 + adds r0, r5, 0 + movs r1, 0 + bl sub_8075160 + b _080AF976 + .align 2, 0 +_080AF934: .4byte gBattleAnimArgs +_080AF938: + ldr r4, _080AF960 @ =gBattleAnimAttacker + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF964 + ldrh r0, [r5, 0x20] + ldrh r1, [r6] + subs r0, r1 + b _080AF96A + .align 2, 0 +_080AF960: .4byte gBattleAnimAttacker +_080AF964: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080AF96A: + strh r0, [r5, 0x20] + ldr r0, _080AF97C @ =gBattleAnimArgs + ldrh r0, [r0, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] +_080AF976: + ldr r0, _080AF980 @ =gBattleAnimAttacker + b _080AF9D4 + .align 2, 0 +_080AF97C: .4byte gBattleAnimArgs +_080AF980: .4byte gBattleAnimAttacker +_080AF984: + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080AF996 + adds r0, r5, 0 + movs r1, 0 + bl sub_8075114 + b _080AF9D2 +_080AF996: + ldr r4, _080AF9BC @ =gBattleAnimTarget + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF9C0 + ldrh r0, [r5, 0x20] + ldrh r1, [r6] + subs r0, r1 + b _080AF9C6 + .align 2, 0 +_080AF9BC: .4byte gBattleAnimTarget +_080AF9C0: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080AF9C6: + strh r0, [r5, 0x20] + ldr r0, _080AF9F0 @ =gBattleAnimArgs + ldrh r0, [r0, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] +_080AF9D2: + ldr r0, _080AF9F4 @ =gBattleAnimTarget +_080AF9D4: + ldrb r0, [r0] + strh r0, [r5, 0x3C] + ldr r0, _080AF9F0 @ =gBattleAnimArgs + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080AF9EC + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _080AF9F8 +_080AF9EC: + movs r0, 0x20 + b _080AF9FA + .align 2, 0 +_080AF9F0: .4byte gBattleAnimArgs +_080AF9F4: .4byte gBattleAnimTarget +_080AF9F8: + movs r0, 0x40 +_080AF9FA: + strh r0, [r5, 0x3A] + ldr r0, _080AFA40 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AFA10 + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] +_080AFA10: + ldr r1, _080AFA44 @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrh r1, [r1, 0x4] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r5, 0x38] + ldr r1, _080AFA48 @ =sub_80AFA4C + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AFA40: .4byte gBattleAnimTarget +_080AFA44: .4byte gBattleAnimArgs +_080AFA48: .4byte sub_80AFA4C + thumb_func_end sub_80AF914 + + thumb_func_start sub_80AFA4C +sub_80AFA4C: @ 80AFA4C + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080AFAD6 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r1, 0x6 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080AFAA8 + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080AFACA +_080AFAA8: + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_080AFACA: + ldrh r0, [r4, 0x38] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080AFADC +_080AFAD6: + adds r0, r4, 0 + bl DestroyAnimSprite +_080AFADC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AFA4C + + thumb_func_start sub_80AFAE4 +sub_80AFAE4: @ 80AFAE4 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080AFBA0 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AFB26 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080AFB26: + ldr r0, _080AFBA4 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r4, _080AFBA8 @ =gBattle_BG1_Y + strh r1, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AFBAC @ =gUnknown_83C3540 + movs r2, 0x80 + lsls r2, 4 + mov r3, sp + ldrh r3, [r3, 0xA] + bl LoadBgTiles + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AFBB0 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap + bl sub_807543C + ldr r0, _080AFBB4 @ =gUnknown_83C2CE0 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080AFB88 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080AFB88: + ldr r0, _080AFBB8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AFBBC @ =sub_80AFBC0 + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFBA0: .4byte 0x00003f42 +_080AFBA4: .4byte gBattle_BG1_X +_080AFBA8: .4byte gBattle_BG1_Y +_080AFBAC: .4byte gUnknown_83C3540 +_080AFBB0: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap +_080AFBB4: .4byte gUnknown_83C2CE0 +_080AFBB8: .4byte gTasks +_080AFBBC: .4byte sub_80AFBC0 + thumb_func_end sub_80AFAE4 + + thumb_func_start sub_80AFBC0 +sub_80AFBC0: @ 80AFBC0 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080AFBF4 @ =gBattle_BG1_X + ldr r2, _080AFBF8 @ =0x0000ffff + adds r0, r2, 0 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + ldr r1, _080AFBFC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080AFBEA + b _080AFD36 +_080AFBEA: + lsls r0, 2 + ldr r1, _080AFC00 @ =_080AFC04 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AFBF4: .4byte gBattle_BG1_X +_080AFBF8: .4byte 0x0000ffff +_080AFBFC: .4byte gTasks +_080AFC00: .4byte _080AFC04 + .align 2, 0 +_080AFC04: + .4byte _080AFC18 + .4byte _080AFC70 + .4byte _080AFC92 + .4byte _080AFCD6 + .4byte _080AFCF8 +_080AFC18: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + beq _080AFC32 + b _080AFD36 +_080AFC32: + strh r5, [r4, 0x1C] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + ldr r1, _080AFC6C @ =gUnknown_83E64D4 + movs r2, 0x1A + ldrsh r0, [r4, r2] + adds r0, r1 + ldrb r1, [r0] + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x9 + bne _080AFD36 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x1E] + b _080AFD36 + .align 2, 0 +_080AFC6C: .4byte gUnknown_83E64D4 +_080AFC70: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x51 + bne _080AFD36 + movs r0, 0x9 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080AFD36 +_080AFC92: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080AFD36 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080AFD36 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080AFD36 +_080AFCD6: + mov r0, sp + bl sub_80752A0 + movs r0, 0x1 + bl sub_8075358 + movs r0, 0x2 + bl sub_8075358 + ldr r0, _080AFD40 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] +_080AFCF8: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AFD0C + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080AFD0C: + ldr r0, _080AFD44 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080AFD48 @ =gBattle_BG1_Y + strh r1, [r0] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AFD36: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFD40: .4byte gTasks +_080AFD44: .4byte gBattle_BG1_X +_080AFD48: .4byte gBattle_BG1_Y + thumb_func_end sub_80AFBC0 + + thumb_func_start sub_80AFD4C +sub_80AFD4C: @ 80AFD4C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080AFD78 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r0, _080AFD7C @ =sub_8075DF4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFD78: .4byte gBattleAnimAttacker +_080AFD7C: .4byte sub_8075DF4 + thumb_func_end sub_80AFD4C + + thumb_func_start sub_80AFD80 +sub_80AFD80: @ 80AFD80 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080AFE40 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AFDC2 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080AFDC2: + ldr r0, _080AFE44 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r4, _080AFE48 @ =gBattle_BG1_Y + strh r1, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AFE4C @ =gUnknown_83C3540 + movs r2, 0x80 + lsls r2, 4 + mov r3, sp + ldrh r3, [r3, 0xA] + bl LoadBgTiles + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AFE50 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap + bl sub_807543C + ldr r0, _080AFE54 @ =gUnknown_83C2CE0 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080AFE24 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080AFE24: + ldr r1, _080AFE58 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080AFE5C @ =0x0000ffff + strh r1, [r0, 0x26] + ldr r1, _080AFE60 @ =sub_80AFE64 + str r1, [r0] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFE40: .4byte 0x00003f42 +_080AFE44: .4byte gBattle_BG1_X +_080AFE48: .4byte gBattle_BG1_Y +_080AFE4C: .4byte gUnknown_83C3540 +_080AFE50: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap +_080AFE54: .4byte gUnknown_83C2CE0 +_080AFE58: .4byte gTasks +_080AFE5C: .4byte 0x0000ffff +_080AFE60: .4byte sub_80AFE64 + thumb_func_end sub_80AFD80 + + thumb_func_start sub_80AFE64 +sub_80AFE64: @ 80AFE64 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, _080AFE94 @ =gBattle_BG1_X + ldr r3, _080AFE98 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r3 + ldrh r0, [r1, 0x26] + ldrh r5, [r2] + adds r0, r5 + strh r0, [r2] + movs r2, 0x20 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + bls _080AFE8A + b _080AFFBE +_080AFE8A: + lsls r0, 2 + ldr r1, _080AFE9C @ =_080AFEA0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AFE94: .4byte gBattle_BG1_X +_080AFE98: .4byte gTasks +_080AFE9C: .4byte _080AFEA0 + .align 2, 0 +_080AFEA0: + .4byte _080AFEB4 + .4byte _080AFEF8 + .4byte _080AFF1A + .4byte _080AFF5E + .4byte _080AFF80 +_080AFEB4: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r3 + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + ldr r1, _080AFEF4 @ =gUnknown_83E6500 + movs r5, 0x1A + ldrsh r0, [r4, r5] + adds r0, r1 + ldrb r1, [r0] + strh r1, [r4, 0x1E] + movs r0, 0x11 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bne _080AFFBE + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0x1E] + b _080AFFBE + .align 2, 0 +_080AFEF4: .4byte gUnknown_83E6500 +_080AFEF8: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r3 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x51 + bne _080AFFBE + movs r0, 0x5 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080AFFBE +_080AFF1A: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r3 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080AFFBE + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080AFFBE + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080AFFBE +_080AFF5E: + mov r0, sp + bl sub_80752A0 + movs r0, 0x1 + bl sub_8075358 + movs r0, 0x2 + bl sub_8075358 + ldr r0, _080AFFC8 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] +_080AFF80: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AFF94 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080AFF94: + ldr r0, _080AFFCC @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080AFFD0 @ =gBattle_BG1_Y + strh r1, [r0] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AFFBE: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFFC8: .4byte gTasks +_080AFFCC: .4byte gBattle_BG1_X +_080AFFD0: .4byte gBattle_BG1_Y + thumb_func_end sub_80AFE64 + + thumb_func_start sub_80AFFD4 +sub_80AFFD4: @ 80AFFD4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldr r6, _080B00BC @ =gBattleAnimArgs + ldrh r0, [r6] + strh r0, [r5, 0x2E] + ldr r0, _080B00C0 @ =gBattleAnimAttacker + mov r8, r0 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + ldr r7, _080B00C4 @ =gBattleAnimTarget + ldrb r0, [r7] + movs r1, 0x2 + bl sub_8074480 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bcs _080B0008 + movs r0, 0x80 + lsls r0, 8 + strh r0, [r5, 0x3C] +_080B0008: + ldr r3, _080B00C8 @ =gUnknown_2023BD6 + ldrb r0, [r7] + adds r0, r3 + ldrb r1, [r0] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080B0068 + ldrh r0, [r6, 0x2] + negs r0, r0 + strh r0, [r6, 0x2] + ldrh r0, [r6, 0x6] + negs r0, r0 + strh r0, [r6, 0x6] + movs r1, 0x3C + ldrsh r0, [r5, r1] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080B0064 + mov r1, r8 + ldrb r0, [r1] + adds r0, r3 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080B0064 + movs r0, 0x1 + bl GetAnimBankSpriteId + ldr r2, _080B00CC @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0x1 + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] +_080B0064: + movs r0, 0x1 + strh r0, [r5, 0x3A] +_080B0068: + ldr r4, _080B00C0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r6, _080B00BC @ =gBattleAnimArgs + movs r1, 0xE + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080B00D0 + ldrh r0, [r6, 0x2] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x30] + ldr r4, _080B00C4 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + b _080B00F8 + .align 2, 0 +_080B00BC: .4byte gBattleAnimArgs +_080B00C0: .4byte gBattleAnimAttacker +_080B00C4: .4byte gBattleAnimTarget +_080B00C8: .4byte gUnknown_2023BD6 +_080B00CC: .4byte gSprites +_080B00D0: + ldrh r0, [r6, 0x2] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x30] + ldr r4, _080B0140 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x1 +_080B00F8: + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x8] + adds r0, r6 + strh r0, [r5, 0x36] + ldrb r0, [r4] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 16 + ldrh r1, [r5, 0x3C] + orrs r0, r1 + strh r0, [r5, 0x3C] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B012C + movs r0, 0x1 + strh r0, [r5, 0x3A] + adds r1, r5, 0 + adds r1, 0x43 + movs r0, 0x80 + strb r0, [r1] +_080B012C: + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080B0144 @ =sub_80B0148 + str r0, [r5, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0140: .4byte gBattleAnimTarget +_080B0144: .4byte sub_80B0148 + thumb_func_end sub_80AFFD4 + + thumb_func_start sub_80B0148 +sub_80B0148: @ 80B0148 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3C] + movs r5, 0xFF + movs r1, 0xFF + ands r1, r0 + cmp r1, 0x1 + beq _080B0230 + cmp r1, 0x1 + bgt _080B0162 + cmp r1, 0 + beq _080B016A + b _080B0380 +_080B0162: + cmp r1, 0x2 + bne _080B0168 + b _080B0344 +_080B0168: + b _080B0380 +_080B016A: + adds r0, r4, 0 + bl sub_80755E0 + ldr r1, _080B0194 @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r0, 4 + ldrh r2, [r4, 0x24] + adds r0, r2 + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B0198 + ldrh r0, [r4, 0x38] + subs r0, 0x8 + b _080B019C + .align 2, 0 +_080B0194: .4byte gSineTable +_080B0198: + ldrh r0, [r4, 0x38] + adds r0, 0x8 +_080B019C: + ands r0, r5 + strh r0, [r4, 0x38] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080B01AA + b _080B0380 +_080B01AA: + movs r5, 0x50 + strh r5, [r4, 0x2E] + ldr r6, _080B01F8 @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, 0x1D + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B0200 + ldr r1, _080B01FC @ =gUnknown_2023BD6 + ldrb r0, [r6] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B0200 + movs r0, 0xCC + strh r0, [r4, 0x38] + b _080B0202 + .align 2, 0 +_080B01F8: .4byte gBattleAnimTarget +_080B01FC: .4byte gUnknown_2023BD6 +_080B0200: + strh r5, [r4, 0x38] +_080B0202: + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080B022C @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r0, 3 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x38] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + b _080B0380 + .align 2, 0 +_080B022C: .4byte gSineTable +_080B0230: + adds r0, r4, 0 + bl sub_80755E0 + ldr r1, _080B028C @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + asrs r0, 3 + ldrh r2, [r4, 0x24] + adds r0, r2 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + adds r0, 0x40 + lsls r0, 1 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 1 + adds r0, r1 + negs r0, r0 + asrs r0, 8 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B02AE + ldrh r1, [r4, 0x38] + adds r0, r1, 0 + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + adds r3, r1, 0 + cmp r0, 0x7F + bhi _080B0290 + ldrh r1, [r4, 0x3C] + lsls r1, 16 + asrs r1, 24 + b _080B0298 + .align 2, 0 +_080B028C: .4byte gSineTable +_080B0290: + ldrh r1, [r4, 0x3C] + lsls r1, 16 + asrs r1, 24 + adds r1, 0x1 +_080B0298: + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + adds r0, r3, 0x4 + b _080B02CE +_080B02AE: + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080B02C2 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x80 + b _080B02C8 +_080B02C2: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x8C +_080B02C8: + strb r0, [r1] + ldrh r0, [r4, 0x38] + subs r0, 0x4 +_080B02CE: + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bgt _080B0380 + movs r5, 0 + movs r0, 0xC0 + lsls r0, 2 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, 0x4 + strh r0, [r4, 0x36] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B0328 + ldr r1, _080B0320 @ =gUnknown_2023BD6 + ldr r0, _080B0324 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B0328 + movs r0, 0x80 + lsls r0, 1 + b _080B032A + .align 2, 0 +_080B0320: .4byte gUnknown_2023BD6 +_080B0324: .4byte gBattleAnimTarget +_080B0328: + ldr r0, _080B0340 @ =0x0000fff0 +_080B032A: + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x3C] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + adds r0, r4, 0 + bl sub_8075678 + b _080B0380 + .align 2, 0 +_080B0340: .4byte 0x0000fff0 +_080B0344: + adds r0, r4, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080B0380 + ldrb r0, [r4, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B0372 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] +_080B0372: + adds r0, r4, 0 + bl DestroySprite + ldr r1, _080B0388 @ =gUnknown_2037EE2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080B0380: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B0388: .4byte gUnknown_2037EE2 + thumb_func_end sub_80B0148 + + thumb_func_start sub_80B038C +sub_80B038C: @ 80B038C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B03A0 @ =gTasks + adds r1, r0 + ldr r0, _080B03A4 @ =sub_80B03A8 + str r0, [r1] + bx lr + .align 2, 0 +_080B03A0: .4byte gTasks +_080B03A4: .4byte sub_80B03A8 + thumb_func_end sub_80B038C + + thumb_func_start sub_80B03A8 +sub_80B03A8: @ 80B03A8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B03CC @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080B03EC + cmp r5, 0x1 + bgt _080B03D0 + cmp r5, 0 + beq _080B03D6 + b _080B0450 + .align 2, 0 +_080B03CC: .4byte gTasks +_080B03D0: + cmp r5, 0x2 + beq _080B0442 + b _080B0450 +_080B03D6: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080B0450 + strh r5, [r4, 0x10] + strh r5, [r4, 0x12] + strh r5, [r4, 0xC] + b _080B0428 +_080B03EC: + ldrh r1, [r4, 0x12] + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080B043C + ldrb r0, [r4, 0xE] + ldrb r1, [r4, 0xC] + movs r3, 0x1 + bl sub_80B0458 + lsls r0, 24 + cmp r0, 0 + beq _080B040C + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] +_080B040C: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080B0438 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080B0430 +_080B0428: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B0450 +_080B0430: + ldrh r0, [r4, 0x8] + subs r0, 0x1 + strh r0, [r4, 0x8] + b _080B0450 +_080B0438: + strh r5, [r4, 0x12] + b _080B0450 +_080B043C: + subs r0, r1, 0x1 + strh r0, [r4, 0x12] + b _080B0450 +_080B0442: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B0450 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B0450: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B03A8 + + thumb_func_start sub_80B0458 +sub_80B0458: @ 80B0458 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + movs r1, 0 + str r1, [sp, 0x4] + ldr r1, _080B04D0 @ =gUnknown_83E652C + lsrs r0, 22 + adds r4, r0, r1 + ldrb r0, [r4, 0x3] + lsls r0, 24 + asrs r0, 28 + mov r8, r0 + cmp r0, 0x2 + beq _080B0544 + ldrh r0, [r4, 0x2] + lsls r0, 20 + lsrs r0, 24 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B0544 + movs r0, 0x1 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + mov r1, r8 + cmp r1, 0 + beq _080B04D4 + cmp r1, 0x1 + beq _080B050A + b _080B0556 + .align 2, 0 +_080B04D0: .4byte gUnknown_83E652C +_080B04D4: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r5, 0 + movs r1, 0 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r6, 16 + asrs r1, 16 + subs r1, r0 + b _080B053E +_080B050A: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r7, 16 + asrs r1, 16 + adds r1, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r5, 0 + movs r1, 0 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r6, 16 + asrs r1, 16 + adds r1, r0 +_080B053E: + lsls r1, 16 + lsrs r6, r1, 16 + b _080B0556 +_080B0544: + ldrh r0, [r4] + lsls r0, 22 + asrs r0, 6 + lsrs r7, r0, 16 + ldr r0, [r4] + lsls r0, 12 + asrs r0, 22 + lsls r0, 16 + lsrs r6, r0, 16 +_080B0556: + lsls r0, r6, 16 + asrs r0, 16 + adds r0, 0x8 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r0 + ldr r0, _080B05B0 @ =gUnknown_83E65A4 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x8 + negs r2, r2 + movs r3, 0x12 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080B05B8 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r0, _080B05B4 @ =gSprites + adds r4, r0 + adds r0, r4, 0 + mov r1, r9 + bl StartSpriteAffineAnim + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + strh r7, [r4, 0x34] + strh r6, [r4, 0x36] + mov r1, r9 + strh r1, [r4, 0x38] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x3A] + mov r1, r10 + strh r1, [r4, 0x3C] + movs r0, 0x1 + b _080B05BA + .align 2, 0 +_080B05B0: .4byte gUnknown_83E65A4 +_080B05B4: .4byte gSprites +_080B05B8: + movs r0, 0 +_080B05BA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B0458 + + thumb_func_start sub_80B05CC +sub_80B05CC: @ 80B05CC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x22] + adds r2, r1, 0 + adds r2, 0x8 + strh r2, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _080B05F6 + lsls r0, r2, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080B06A6 +_080B05F6: + movs r3, 0x2E + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080B0678 + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B0678 + ldr r0, _080B066C @ =gUnknown_83E63E0 + movs r2, 0x34 + ldrsh r1, [r4, r2] + movs r3, 0x36 + ldrsh r2, [r4, r3] + adds r3, r4, 0 + adds r3, 0x43 + ldrb r3, [r3] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + cmp r0, 0x40 + beq _080B065A + ldr r2, _080B0670 @ =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080B0674 @ =sub_80B06B0 + str r1, [r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x3A] + strh r1, [r0, 0x3A] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x3C] + strh r1, [r0, 0x3C] +_080B065A: + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite + b _080B06A6 + .align 2, 0 +_080B066C: .4byte gUnknown_83E63E0 +_080B0670: .4byte gSprites +_080B0674: .4byte sub_80B06B0 +_080B0678: + ldr r3, _080B06AC @ =gTasks + movs r2, 0x3C + ldrsh r1, [r4, r2] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080B06A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B06AC: .4byte gTasks + thumb_func_end sub_80B05CC + + thumb_func_start sub_80B06B0 +sub_80B06B0: @ 80B06B0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080B06F0 + ldr r3, _080B06F8 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080B06F0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B06F8: .4byte gTasks + thumb_func_end sub_80B06B0 + + thumb_func_start unc_080B06FC +unc_080B06FC: @ 80B06FC + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080B077C @ =gAnimDisableStructPtr + ldr r0, [r0] + ldrb r1, [r0, 0x11] + lsrs r0, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r0, r1 + subs r0, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080B071A + movs r1, 0x4 +_080B071A: + adds r0, r5, 0 + bl StartSpriteAffineAnim + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r6, _080B0780 @ =gBattleAnimArgs + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080B0784 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B0742 + ldrh r0, [r6, 0x4] + negs r0, r0 + strh r0, [r6, 0x4] +_080B0742: + ldr r4, _080B0788 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r6, 0xA] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_8075068 + ldr r0, _080B078C @ =sub_80B0790 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B077C: .4byte gAnimDisableStructPtr +_080B0780: .4byte gBattleAnimArgs +_080B0784: .4byte gBattleAnimAttacker +_080B0788: .4byte gBattleAnimTarget +_080B078C: .4byte sub_80B0790 + thumb_func_end unc_080B06FC + + thumb_func_start sub_80B0790 +sub_80B0790: @ 80B0790 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B07B2 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _080B07B8 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldr r1, _080B07BC @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 +_080B07B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B07B8: .4byte sub_8074F6C +_080B07BC: .4byte DestroyAnimSprite + thumb_func_end sub_80B0790 + + thumb_func_start sub_80B07C0 +sub_80B07C0: @ 80B07C0 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r3, _080B0814 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B0818 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + bl Random + movs r5, 0xFF + ands r5, r0 + movs r0, 0x80 + lsls r0, 1 + adds r6, r0, 0 + orrs r5, r6 + bl Random + ldr r1, _080B081C @ =0x000001ff + ands r1, r0 + adds r0, r1, 0 + cmp r0, 0xFF + ble _080B0806 + subs r0, r6, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080B0806: + strh r5, [r4, 0x30] + strh r1, [r4, 0x32] + ldr r0, _080B0820 @ =sub_80B0824 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B0814: .4byte 0x000003ff +_080B0818: .4byte 0xfffffc00 +_080B081C: .4byte 0x000001ff +_080B0820: .4byte sub_80B0824 + thumb_func_end sub_80B07C0 + + thumb_func_start sub_80B0824 +sub_80B0824: @ 80B0824 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r3, r0, r1 + strh r3, [r2, 0x34] + ldrh r1, [r2, 0x32] + ldrh r4, [r2, 0x36] + adds r1, r4 + strh r1, [r2, 0x36] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080B0848 + lsls r0, r3, 16 + asrs r0, 24 + negs r0, r0 + b _080B084C +_080B0848: + lsls r0, r3, 16 + asrs r0, 24 +_080B084C: + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080B086A + adds r0, r2, 0 + bl DestroyAnimSprite +_080B086A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B0824 + + thumb_func_start sub_80B0870 +sub_80B0870: @ 80B0870 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B0898 @ =gBattleAnimArgs + ldrb r3, [r1] + lsls r3, 1 + adds r3, r1 + ldr r1, _080B089C @ =gAnimDisableStructPtr + ldr r1, [r1] + ldrb r1, [r1, 0x11] + lsrs r2, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r2, r1 + subs r2, 0x1 + strh r2, [r3] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080B0898: .4byte gBattleAnimArgs +_080B089C: .4byte gAnimDisableStructPtr + thumb_func_end sub_80B0870 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/intro.s b/asm/intro.s index af5104da3..909fee72e 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -166,7 +166,7 @@ _080EC65E: movs r0, 0 movs r2, 0 bl load_copyright_graphics - bl remove_some_task + bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes @@ -898,7 +898,7 @@ _080ECCF6: movs r1, 0x10 movs r2, 0x10 movs r3, 0 - bl sub_812E944 + bl StartBlendTask b _080ECD36 .align 2, 0 _080ECD14: .4byte 0x00003f44 @@ -907,7 +907,7 @@ _080ECD18: bl ShowBg b _080ECD36 _080ECD20: - bl sub_812E9E4 + bl IsBlendTaskActive lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 @@ -980,7 +980,7 @@ _080ECD9C: movs r1, 0x10 movs r2, 0x10 movs r3, 0 - bl sub_812E944 + bl StartBlendTask strh r4, [r6, 0x8] strh r5, [r6, 0xA] strh r4, [r6, 0x12] @@ -992,7 +992,7 @@ _080ECDC4: str r0, [r6, 0x14] b _080ECE70 _080ECDCC: - bl sub_812E9E4 + bl IsBlendTaskActive lsls r0, 24 cmp r0, 0 bne _080ECE96 @@ -1051,10 +1051,10 @@ _080ECE26: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl sub_812E944 + bl StartBlendTask b _080ECE70 _080ECE52: - bl sub_812E9E4 + bl IsBlendTaskActive lsls r0, 24 cmp r0, 0 bne _080ECE96 @@ -2742,14 +2742,14 @@ _080EDC0C: bl DisableInterrupts movs r0, 0 bl SetHBlankCallback - ldr r0, _080EDC3C @ =sub_8078914 + ldr r0, _080EDC3C @ =CB2_InitTitleScreen bl SetMainCallback2 _080EDC34: pop {r4} pop {r0} bx r0 .align 2, 0 -_080EDC3C: .4byte sub_8078914 +_080EDC3C: .4byte CB2_InitTitleScreen thumb_func_end sub_80EDBE8 thumb_func_start sub_80EDC40 @@ -3369,7 +3369,7 @@ _080EE114: _080EE11C: movs r4, 0x6 ldrsh r3, [r5, r4] - ldr r4, _080EE15C @ =gUnknown_825E074 + ldr r4, _080EE15C @ =gSineTable adds r0, r3, 0 adds r0, 0x40 lsls r0, 1 @@ -3400,7 +3400,7 @@ _080EE156: pop {r0} bx r0 .align 2, 0 -_080EE15C: .4byte gUnknown_825E074 +_080EE15C: .4byte gSineTable thumb_func_end sub_80EE024 thumb_func_start sub_80EE160 @@ -3587,7 +3587,7 @@ sub_80EE29C: @ 80EE29C lsls r1, 16 asrs r1, 20 strh r1, [r5, 0x22] - ldr r1, _080EE340 @ =gUnknown_825E074 + ldr r1, _080EE340 @ =gSineTable lsls r0, 16 asrs r0, 20 adds r0, 0x40 @@ -3646,7 +3646,7 @@ _080EE336: pop {r0} bx r0 .align 2, 0 -_080EE340: .4byte gUnknown_825E074 +_080EE340: .4byte gSineTable _080EE344: .4byte gUnknown_203AB16 _080EE348: .4byte 0x41c64e6d _080EE34C: .4byte 0x00006073 @@ -4208,7 +4208,7 @@ _080EE740: lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x24] - ldr r1, _080EE7B0 @ =gUnknown_825E074 + ldr r1, _080EE7B0 @ =gSineTable movs r3, 0x34 ldrsh r0, [r4, r3] lsls r0, 1 @@ -4253,7 +4253,7 @@ _080EE78C: strh r0, [r4, 0x3C] b _080EE818 .align 2, 0 -_080EE7B0: .4byte gUnknown_825E074 +_080EE7B0: .4byte gSineTable _080EE7B4: .4byte gUnknown_203AB04 _080EE7B8: .4byte gUnknown_203AB08 _080EE7BC: .4byte gUnknown_203AB06 @@ -4585,7 +4585,7 @@ _080EEA08: lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x24] - ldr r1, _080EEA48 @ =gUnknown_825E074 + ldr r1, _080EEA48 @ =gSineTable lsls r0, 16 asrs r0, 20 lsls r0, 1 @@ -4599,7 +4599,7 @@ _080EEA08: strh r0, [r4, 0x26] b _080EEA88 .align 2, 0 -_080EEA48: .4byte gUnknown_825E074 +_080EEA48: .4byte gSineTable _080EEA4C: ldrh r0, [r4, 0x32] lsrs r0, 4 @@ -4775,7 +4775,7 @@ _080EEB84: asrs r0, 20 negs r1, r0 strh r1, [r4, 0x24] - ldr r1, _080EEBD4 @ =gUnknown_825E074 + ldr r1, _080EEBD4 @ =gSineTable lsls r0, 1 adds r0, r1 movs r3, 0 @@ -4810,7 +4810,7 @@ _080EEBCE: pop {r0} bx r0 .align 2, 0 -_080EEBD4: .4byte gUnknown_825E074 +_080EEBD4: .4byte gSineTable _080EEBD8: .4byte gUnknown_203AB04 _080EEBDC: .4byte gUnknown_203AB08 _080EEBE0: .4byte SpriteCallbackDummy diff --git a/asm/item.s b/asm/item.s deleted file mode 100644 index aa64e54fa..000000000 --- a/asm/item.s +++ /dev/null @@ -1,1853 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GetBagItemQuantity -GetBagItemQuantity: @ 8099DA0 - adds r1, r0, 0 - ldr r0, _08099DB8 @ =gSaveBlock2Ptr - ldr r0, [r0] - movs r2, 0xF2 - lsls r2, 4 - adds r0, r2 - ldr r0, [r0] - ldrh r1, [r1] - eors r0, r1 - lsls r0, 16 - lsrs r0, 16 - bx lr - .align 2, 0 -_08099DB8: .4byte gSaveBlock2Ptr - thumb_func_end GetBagItemQuantity - - thumb_func_start sub_8099DBC -sub_8099DBC: @ 8099DBC - lsls r1, 16 - lsrs r1, 16 - ldr r2, _08099DD4 @ =gSaveBlock2Ptr - ldr r2, [r2] - movs r3, 0xF2 - lsls r3, 4 - adds r2, r3 - ldr r2, [r2] - eors r1, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_08099DD4: .4byte gSaveBlock2Ptr - thumb_func_end sub_8099DBC - - thumb_func_start GetBagItemId -GetBagItemId: @ 8099DD8 - ldrh r0, [r0] - bx lr - thumb_func_end GetBagItemId - - thumb_func_start sub_8099DDC -sub_8099DDC: @ 8099DDC - strh r1, [r0] - bx lr - thumb_func_end sub_8099DDC - - thumb_func_start ApplyNewEncryptionKeyToBagItems -ApplyNewEncryptionKeyToBagItems: @ 8099DE0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r8, r0 - movs r1, 0 - ldr r0, _08099E34 @ =gUnknown_203988C - mov r9, r0 -_08099DF2: - movs r6, 0 - lsls r5, r1, 3 - mov r2, r9 - adds r0, r5, r2 - adds r7, r1, 0x1 - ldrb r0, [r0, 0x4] - cmp r6, r0 - bcs _08099E20 - ldr r2, _08099E34 @ =gUnknown_203988C -_08099E04: - adds r4, r5, r2 - lsls r1, r6, 2 - ldr r0, [r4] - adds r0, r1 - adds r0, 0x2 - mov r1, r8 - str r2, [sp] - bl ApplyNewEncryptionKeyToHword - adds r6, 0x1 - ldr r2, [sp] - ldrb r4, [r4, 0x4] - cmp r6, r4 - bcc _08099E04 -_08099E20: - adds r1, r7, 0 - cmp r1, 0x4 - bls _08099DF2 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099E34: .4byte gUnknown_203988C - thumb_func_end ApplyNewEncryptionKeyToBagItems - - thumb_func_start ApplyNewEncryptionKeyToBagItems_ -ApplyNewEncryptionKeyToBagItems_: @ 8099E38 - push {lr} - bl ApplyNewEncryptionKeyToBagItems - pop {r0} - bx r0 - thumb_func_end ApplyNewEncryptionKeyToBagItems_ - - thumb_func_start sub_8099E44 -sub_8099E44: @ 8099E44 - ldr r1, _08099E84 @ =gUnknown_203988C - ldr r0, _08099E88 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r3, 0xC4 - lsls r3, 2 - adds r0, r2, r3 - str r0, [r1] - movs r0, 0x2A - strb r0, [r1, 0x4] - adds r3, 0xA8 - adds r0, r2, r3 - str r0, [r1, 0x8] - movs r0, 0x1E - strb r0, [r1, 0xC] - adds r3, 0x78 - adds r0, r2, r3 - str r0, [r1, 0x10] - movs r0, 0xD - strb r0, [r1, 0x14] - adds r3, 0x34 - adds r0, r2, r3 - str r0, [r1, 0x18] - movs r0, 0x3A - strb r0, [r1, 0x1C] - ldr r0, _08099E8C @ =0x0000054c - adds r2, r0 - str r2, [r1, 0x20] - adds r1, 0x24 - movs r0, 0x2B - strb r0, [r1] - bx lr - .align 2, 0 -_08099E84: .4byte gUnknown_203988C -_08099E88: .4byte gSaveBlock1Ptr -_08099E8C: .4byte 0x0000054c - thumb_func_end sub_8099E44 - - thumb_func_start sub_8099E90 -sub_8099E90: @ 8099E90 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _08099EB8 - movs r0, 0x2B - bl sub_809C8A0 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, _08099EB4 @ =gUnknown_84162BD - adds r0, r4, 0 - bl StringAppend - b _08099EC4 - .align 2, 0 -_08099EB4: .4byte gUnknown_84162BD -_08099EB8: - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy -_08099EC4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8099E90 - - thumb_func_start sub_8099ECC -sub_8099ECC: @ 8099ECC - push {lr} - lsls r0, 24 - movs r2, 0 - ldr r1, _08099EF0 @ =gUnknown_203988C - lsrs r0, 21 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _08099EFE - ldr r3, [r0] -_08099EE0: - lsls r0, r2, 2 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _08099EF4 - lsls r0, r2, 24 - asrs r0, 24 - b _08099F02 - .align 2, 0 -_08099EF0: .4byte gUnknown_203988C -_08099EF4: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r1 - bcc _08099EE0 -_08099EFE: - movs r0, 0x1 - negs r0, r0 -_08099F02: - pop {r1} - bx r1 - thumb_func_end sub_8099ECC - - thumb_func_start sub_8099F08 -sub_8099F08: @ 8099F08 - push {lr} - lsls r0, 24 - movs r2, 0 - ldr r1, _08099F2C @ =gUnknown_203988C - lsrs r0, 21 - subs r0, 0x8 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _08099F3A - ldr r3, [r0] -_08099F1E: - lsls r0, r2, 2 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _08099F30 - movs r0, 0x1 - b _08099F3C - .align 2, 0 -_08099F2C: .4byte gUnknown_203988C -_08099F30: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _08099F1E -_08099F3A: - movs r0, 0 -_08099F3C: - pop {r1} - bx r1 - thumb_func_end sub_8099F08 - - thumb_func_start sub_8099F40 -sub_8099F40: @ 8099F40 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - cmp r0, 0 - bne _08099F5C - b _08099FA4 -_08099F58: - movs r0, 0x1 - b _08099FA6 -_08099F5C: - adds r0, r4, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - movs r2, 0 - ldr r1, _08099F94 @ =gUnknown_203988C - lsrs r0, 21 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _08099FA4 - adds r3, r0, 0 -_08099F76: - ldr r0, [r3] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, r4 - bne _08099F98 - adds r0, r1, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - cmp r0, r5 - bcs _08099F58 - b _08099FA4 - .align 2, 0 -_08099F94: .4byte gUnknown_203988C -_08099F98: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x4] - cmp r2, r0 - bcc _08099F76 -_08099FA4: - movs r0, 0 -_08099FA6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8099F40 - - thumb_func_start sub_8099FAC -sub_8099FAC: @ 8099FAC - push {r4,lr} - ldr r0, _08099FC0 @ =0x0000016d - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08099FD4 - b _08099FF0 - .align 2, 0 -_08099FC0: .4byte 0x0000016d -_08099FC4: - ldr r1, _08099FD0 @ =gSpecialVar_Result - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x1 - b _08099FF6 - .align 2, 0 -_08099FD0: .4byte gSpecialVar_Result -_08099FD4: - movs r4, 0x85 -_08099FD6: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08099FC4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xAF - bls _08099FD6 -_08099FF0: - ldr r0, _08099FFC @ =gSpecialVar_Result - strh r1, [r0] - movs r0, 0 -_08099FF6: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08099FFC: .4byte gSpecialVar_Result - thumb_func_end sub_8099FAC - - thumb_func_start sub_809A000 -sub_809A000: @ 809A000 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - cmp r0, 0 - beq _0809A050 - adds r0, r4, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0 - ldr r1, _0809A054 @ =gUnknown_203988C - lsls r0, r5, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _0809A068 - adds r3, r0, 0 -_0809A032: - ldr r0, [r3] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, r4 - bne _0809A05C - adds r0, r1, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - adds r0, r6 - ldr r1, _0809A058 @ =0x000003e7 - cmp r0, r1 - ble _0809A07A -_0809A050: - movs r0, 0 - b _0809A07C - .align 2, 0 -_0809A054: .4byte gUnknown_203988C -_0809A058: .4byte 0x000003e7 -_0809A05C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x4] - cmp r2, r0 - bcc _0809A032 -_0809A068: - adds r0, r5, 0 - bl sub_8099ECC - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _0809A050 -_0809A07A: - movs r0, 0x1 -_0809A07C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809A000 - - thumb_func_start sub_809A084 -sub_809A084: @ 809A084 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - adds r0, r6, 0 - bl ItemId_GetPocket - lsls r0, 24 - cmp r0, 0 - bne _0809A0A2 - b _0809A1CA -_0809A0A2: - adds r0, r6, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - movs r2, 0 - ldr r1, _0809A0E0 @ =gUnknown_203988C - lsls r0, r7, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _0809A0F4 - adds r5, r0, 0 -_0809A0BE: - ldr r0, [r5] - lsls r4, r2, 2 - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, r6 - bne _0809A0E8 - adds r0, r1, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - mov r2, r8 - adds r1, r0, r2 - ldr r0, _0809A0E4 @ =0x000003e7 - cmp r1, r0 - ble _0809A1B8 - b _0809A1CA - .align 2, 0 -_0809A0E0: .4byte gUnknown_203988C -_0809A0E4: .4byte 0x000003e7 -_0809A0E8: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r5, 0x4] - cmp r2, r0 - bcc _0809A0BE -_0809A0F4: - cmp r7, 0x3 - bne _0809A132 - movs r4, 0xB6 - lsls r4, 1 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - cmp r0, 0 - bne _0809A132 - movs r0, 0x1 - bl sub_8099ECC - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809A1CA - ldr r2, _0809A1AC @ =gUnknown_203988C - ldr r0, [r2, 0x8] - lsls r1, 2 - adds r0, r1, r0 - strh r4, [r0] - ldr r0, [r2, 0x8] - adds r0, r1 - adds r0, 0x2 - movs r1, 0x1 - bl sub_8099DBC -_0809A132: - cmp r7, 0x4 - bne _0809A174 - ldr r4, _0809A1B0 @ =0x0000016d - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - cmp r0, 0 - bne _0809A174 - movs r0, 0x1 - bl sub_8099ECC - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809A1CA - ldr r2, _0809A1AC @ =gUnknown_203988C - ldr r0, [r2, 0x8] - lsls r1, 2 - adds r0, r1, r0 - strh r4, [r0] - ldr r0, [r2, 0x8] - adds r0, r1 - adds r0, 0x2 - movs r1, 0x1 - bl sub_8099DBC - ldr r0, _0809A1B4 @ =0x00000847 - bl FlagSet -_0809A174: - ldr r0, _0809A1B0 @ =0x0000016d - cmp r6, r0 - bne _0809A180 - ldr r0, _0809A1B4 @ =0x00000847 - bl FlagSet -_0809A180: - adds r0, r7, 0 - bl sub_8099ECC - lsls r0, 24 - asrs r2, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _0809A1CA - ldr r0, _0809A1AC @ =gUnknown_203988C - lsls r1, r7, 3 - adds r1, r0 - ldr r0, [r1] - lsls r2, 2 - adds r0, r2, r0 - strh r6, [r0] - ldr r0, [r1] - adds r0, r2 - adds r0, 0x2 - mov r1, r8 - b _0809A1C2 - .align 2, 0 -_0809A1AC: .4byte gUnknown_203988C -_0809A1B0: .4byte 0x0000016d -_0809A1B4: .4byte 0x00000847 -_0809A1B8: - lsls r1, 16 - lsrs r1, 16 - ldr r0, [r5] - adds r0, r4 - adds r0, 0x2 -_0809A1C2: - bl sub_8099DBC - movs r0, 0x1 - b _0809A1CC -_0809A1CA: - movs r0, 0 -_0809A1CC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809A084 - - thumb_func_start sub_809A1D8 -sub_809A1D8: @ 809A1D8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - cmp r0, 0 - beq _0809A258 - cmp r4, 0 - beq _0809A258 - adds r0, r4, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - movs r2, 0 - ldr r1, _0809A248 @ =gUnknown_203988C - lsrs r0, 21 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _0809A258 - adds r6, r0, 0 -_0809A20C: - ldr r0, [r6] - lsls r5, r2, 2 - adds r1, r5, r0 - ldrh r0, [r1] - cmp r0, r4 - bne _0809A24C - adds r0, r1, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - cmp r0, r7 - bcc _0809A258 - subs r0, r7 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r6] - adds r0, r5 - adds r0, 0x2 - adds r1, r4, 0 - bl sub_8099DBC - cmp r4, 0 - bne _0809A242 - ldr r0, [r6] - adds r0, r5, r0 - strh r4, [r0] -_0809A242: - movs r0, 0x1 - b _0809A25A - .align 2, 0 -_0809A248: .4byte gUnknown_203988C -_0809A24C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r6, 0x4] - cmp r2, r0 - bcc _0809A20C -_0809A258: - movs r0, 0 -_0809A25A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809A1D8 - - thumb_func_start GetPocketByItemId -GetPocketByItemId: @ 809A260 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetPocketByItemId - - thumb_func_start ClearItemSlots -ClearItemSlots: @ 809A274 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 24 - movs r4, 0 - lsrs r1, 24 - cmp r4, r1 - bcs _0809A29E - adds r5, r1, 0 - movs r7, 0 -_0809A286: - lsls r0, r4, 2 - adds r0, r6 - strh r7, [r0] - adds r0, 0x2 - movs r1, 0 - bl sub_8099DBC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bcc _0809A286 -_0809A29E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ClearItemSlots - - thumb_func_start sub_809A2A4 -sub_809A2A4: @ 809A2A4 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0xA6 - lsls r5, 2 -_0809A2AC: - ldr r0, _0809A2D8 @ =gSaveBlock1Ptr - ldr r0, [r0] - lsls r3, r4, 2 - adds r1, r0, r3 - adds r1, r5 - movs r2, 0 - strh r2, [r1] - adds r3, r5 - adds r0, r3 - adds r0, 0x2 - movs r1, 0 - bl sub_8099DDC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _0809A2AC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A2D8: .4byte gSaveBlock1Ptr - thumb_func_end sub_809A2A4 - - thumb_func_start sub_809A2DC -sub_809A2DC: @ 809A2DC - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0809A300 @ =gUnknown_203988C -_0809A2E2: - lsls r1, r4, 3 - adds r1, r5 - ldr r0, [r1] - ldrb r1, [r1, 0x4] - bl ClearItemSlots - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _0809A2E2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A300: .4byte gUnknown_203988C - thumb_func_end sub_809A2DC - - thumb_func_start sub_809A304 -sub_809A304: @ 809A304 - push {lr} - movs r1, 0 - ldr r0, _0809A324 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r3, 0xA6 - lsls r3, 2 -_0809A310: - lsls r0, r1, 24 - asrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r2, r0 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _0809A328 - adds r0, r1, 0 - b _0809A338 - .align 2, 0 -_0809A324: .4byte gSaveBlock1Ptr -_0809A328: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0x1D - ble _0809A310 - movs r0, 0x1 - negs r0, r0 -_0809A338: - pop {r1} - bx r1 - thumb_func_end sub_809A304 - - thumb_func_start sub_809A33C -sub_809A33C: @ 809A33C - push {r4,lr} - movs r2, 0 - movs r1, 0 - ldr r0, _0809A370 @ =gSaveBlock1Ptr - ldr r3, [r0] - movs r4, 0xA6 - lsls r4, 2 -_0809A34A: - lsls r0, r1, 2 - adds r0, r3, r0 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - beq _0809A35C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_0809A35C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1D - bls _0809A34A - adds r0, r2, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A370: .4byte gSaveBlock1Ptr - thumb_func_end sub_809A33C - - thumb_func_start sub_809A374 -sub_809A374: @ 809A374 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - movs r4, 0 -_0809A380: - ldr r0, _0809A3AC @ =gSaveBlock1Ptr - ldr r2, [r0] - lsls r1, r4, 2 - adds r0, r2, r1 - movs r3, 0xA6 - lsls r3, 2 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r6 - bne _0809A3B4 - adds r0, r1, r2 - ldr r1, _0809A3B0 @ =0x0000029a - adds r0, r1 - bl GetBagItemId - lsls r0, 16 - lsrs r0, 16 - cmp r0, r5 - bcc _0809A3B4 - movs r0, 0x1 - b _0809A3C0 - .align 2, 0 -_0809A3AC: .4byte gSaveBlock1Ptr -_0809A3B0: .4byte 0x0000029a -_0809A3B4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1D - bls _0809A380 - movs r0, 0 -_0809A3C0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809A374 - - thumb_func_start sub_809A3C8 -sub_809A3C8: @ 809A3C8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - movs r3, 0 - ldr r6, _0809A404 @ =gSaveBlock1Ptr -_0809A3D6: - ldr r2, [r6] - lsls r1, r3, 2 - adds r0, r2, r1 - movs r7, 0xA6 - lsls r7, 2 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r4 - bne _0809A40C - adds r0, r7, 0 - adds r4, r1, r0 - adds r0, r2, r4 - adds r0, 0x2 - bl GetBagItemId - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, r5 - ldr r0, _0809A408 @ =0x000003e7 - cmp r1, r0 - ble _0809A444 - b _0809A456 - .align 2, 0 -_0809A404: .4byte gSaveBlock1Ptr -_0809A408: .4byte 0x000003e7 -_0809A40C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1D - bls _0809A3D6 - bl sub_809A304 - lsls r0, 24 - asrs r2, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _0809A456 - ldr r0, _0809A440 @ =gSaveBlock1Ptr - ldr r0, [r0] - lsls r2, 2 - adds r1, r0, r2 - movs r3, 0xA6 - lsls r3, 2 - adds r1, r3 - strh r4, [r1] - adds r2, r3 - adds r0, r2 - adds r0, 0x2 - adds r1, r5, 0 - b _0809A44E - .align 2, 0 -_0809A440: .4byte gSaveBlock1Ptr -_0809A444: - lsls r1, 16 - lsrs r1, 16 - ldr r0, [r6] - adds r0, r4 - adds r0, 0x2 -_0809A44E: - bl sub_8099DDC - movs r0, 0x1 - b _0809A458 -_0809A456: - movs r0, 0 -_0809A458: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809A3C8 - - thumb_func_start sub_809A460 -sub_809A460: @ 809A460 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - cmp r2, 0 - beq _0809A4D8 - movs r4, 0 - ldr r0, _0809A4E4 @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r3, 0xA6 - lsls r3, 2 - adds r1, r3 - ldrh r1, [r1] - adds r7, r0, 0 - cmp r1, r2 - beq _0809A49E - adds r5, r7, 0 -_0809A48A: - adds r4, 0x1 - cmp r4, 0x1D - bhi _0809A49E - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, r1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0809A48A -_0809A49E: - cmp r4, 0x1E - beq _0809A4D8 - lsls r6, r4, 2 - movs r0, 0xA6 - lsls r0, 2 - adds r4, r6, r0 - ldr r0, [r7] - adds r0, r4 - adds r0, 0x2 - bl GetBagItemId - mov r1, r8 - subs r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [r7] - adds r0, r4 - adds r0, 0x2 - adds r1, r5, 0 - bl sub_8099DDC - cmp r5, 0 - bne _0809A4D8 - ldr r0, [r7] - adds r0, r6 - movs r1, 0xA6 - lsls r1, 2 - adds r0, r1 - strh r5, [r0] -_0809A4D8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A4E4: .4byte gSaveBlock1Ptr - thumb_func_end sub_809A460 - - thumb_func_start sub_809A4E8 -sub_809A4E8: @ 809A4E8 - push {r4-r7,lr} - movs r2, 0 -_0809A4EC: - adds r1, r2, 0x1 - lsls r0, r1, 16 - lsrs r4, r0, 16 - adds r6, r1, 0 - cmp r4, 0x1D - bhi _0809A52E - ldr r0, _0809A53C @ =gSaveBlock1Ptr - mov r12, r0 - lsls r5, r2, 2 - movs r7, 0xA6 - lsls r7, 2 -_0809A502: - mov r0, r12 - ldr r1, [r0] - adds r0, r1, r5 - adds r0, r7 - ldrh r0, [r0] - cmp r0, 0 - bne _0809A524 - movs r0, 0xA6 - lsls r0, 2 - adds r1, r0 - adds r2, r1, r5 - ldr r3, [r2] - lsls r0, r4, 2 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - str r3, [r1] -_0809A524: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _0809A502 -_0809A52E: - lsls r0, r6, 16 - lsrs r2, r0, 16 - cmp r2, 0x1C - bls _0809A4EC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A53C: .4byte gSaveBlock1Ptr - thumb_func_end sub_809A4E8 - - thumb_func_start sub_809A540 -sub_809A540: @ 809A540 - push {lr} - ldr r0, _0809A55C @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, _0809A560 @ =0x00000296 - adds r1, r0, r2 - ldrh r2, [r1] - ldr r3, _0809A564 @ =0x00000103 - cmp r2, r3 - beq _0809A568 - movs r0, 0x88 - lsls r0, 1 - cmp r2, r0 - beq _0809A570 - b _0809A572 - .align 2, 0 -_0809A55C: .4byte gSaveBlock1Ptr -_0809A560: .4byte 0x00000296 -_0809A564: .4byte 0x00000103 -_0809A568: - movs r0, 0x88 - lsls r0, 1 - strh r0, [r1] - b _0809A572 -_0809A570: - strh r3, [r1] -_0809A572: - pop {r0} - bx r0 - thumb_func_end sub_809A540 - - thumb_func_start sub_809A578 -sub_809A578: @ 809A578 - ldr r3, [r0] - ldr r2, [r1] - str r2, [r0] - str r3, [r1] - bx lr - thumb_func_end sub_809A578 - - thumb_func_start sub_809A584 -sub_809A584: @ 809A584 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - subs r0, r1, 0x1 - cmp r2, r0 - bge _0809A5D8 - adds r6, r1, 0 - mov r9, r0 -_0809A59E: - adds r1, r2, 0x1 - lsls r0, r1, 16 - lsrs r4, r0, 16 - adds r7, r1, 0 - cmp r4, r6 - bcs _0809A5D0 - lsls r0, r2, 2 - mov r1, r8 - adds r5, r1, r0 -_0809A5B0: - adds r0, r5, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - cmp r0, 0 - bne _0809A5C6 - lsls r1, r4, 2 - add r1, r8 - adds r0, r5, 0 - bl sub_809A578 -_0809A5C6: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r6 - bcc _0809A5B0 -_0809A5D0: - lsls r0, r7, 16 - lsrs r2, r0, 16 - cmp r2, r9 - blt _0809A59E -_0809A5D8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809A584 - - thumb_func_start sub_809A5E4 -sub_809A5E4: @ 809A5E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - movs r4, 0 - bl sub_809A720 - movs r3, 0 - ldrb r0, [r5, 0x4] - cmp r3, r0 - bcs _0809A676 - movs r6, 0xA9 - lsls r6, 1 -_0809A604: - ldr r0, [r5] - lsls r1, r3, 2 - adds r2, r1, r0 - ldrh r0, [r2] - adds r7, r1, 0 - cmp r0, 0 - bne _0809A622 - adds r0, r2, 0x2 - str r3, [sp] - bl GetBagItemQuantity - lsls r0, 16 - ldr r3, [sp] - cmp r0, 0 - beq _0809A70A -_0809A622: - ldr r0, [r5] - adds r1, r7, r0 - ldrh r0, [r1] - cmp r0, r6 - bls _0809A66A - adds r0, r1, 0x2 - str r3, [sp] - bl GetBagItemQuantity - lsls r0, 16 - ldr r3, [sp] - cmp r0, 0 - beq _0809A66A - adds r0, r3, 0x1 - b _0809A642 -_0809A640: - adds r0, r4, 0x1 -_0809A642: - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r1, [r5, 0x4] - cmp r4, r1 - bcs _0809A676 - ldr r0, [r5] - lsls r1, r4, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0809A640 - adds r0, r1, 0x2 - str r3, [sp] - bl GetBagItemQuantity - lsls r0, 16 - ldr r3, [sp] - cmp r0, 0 - bne _0809A640 - b _0809A676 -_0809A66A: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrb r2, [r5, 0x4] - cmp r3, r2 - bcc _0809A604 -_0809A676: - movs r6, 0 - lsls r7, r3, 2 - subs r4, r3 - mov r10, r4 - lsls r3, 1 - mov r9, r3 - ldrb r0, [r5, 0x4] - cmp r6, r0 - bcs _0809A6A6 -_0809A688: - lsls r4, r6, 2 - ldr r0, [r5] - adds r0, r4 - adds r0, 0x2 - bl GetBagItemQuantity - ldr r1, [r5] - adds r4, r1 - strh r0, [r4, 0x2] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r1, [r5, 0x4] - cmp r6, r1 - bcc _0809A688 -_0809A6A6: - ldrb r0, [r5, 0x4] - lsls r0, 2 - bl AllocZeroed - mov r8, r0 - ldr r0, [r5] - adds r0, r7 - mov r1, r10 - lsls r2, r1, 1 - ldr r4, _0809A71C @ =0x001fffff - ands r2, r4 - mov r1, r8 - bl CpuSet - ldr r0, [r5] - mov r2, r10 - lsls r1, r2, 2 - add r1, r8 - mov r2, r9 - ands r2, r4 - mov r9, r2 - bl CpuSet - ldr r1, [r5] - ldrb r2, [r5, 0x4] - lsls r2, 1 - ands r2, r4 - mov r0, r8 - bl CpuSet - movs r6, 0 - ldrb r0, [r5, 0x4] - cmp r6, r0 - bcs _0809A704 -_0809A6EA: - lsls r0, r6, 2 - ldr r1, [r5] - adds r1, r0 - adds r0, r1, 0x2 - ldrh r1, [r1, 0x2] - bl sub_8099DBC - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r1, [r5, 0x4] - cmp r6, r1 - bcc _0809A6EA -_0809A704: - mov r0, r8 - bl Free -_0809A70A: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A71C: .4byte 0x001fffff - thumb_func_end sub_809A5E4 - - thumb_func_start sub_809A720 -sub_809A720: @ 809A720 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - movs r3, 0 - b _0809A786 -_0809A72C: - adds r1, r3, 0x1 - lsls r0, r1, 16 - lsrs r5, r0, 16 - mov r8, r1 - cmp r5, r2 - bcs _0809A780 - lsls r7, r3, 2 -_0809A73A: - ldr r0, [r6] - adds r0, r7 - adds r0, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsls r4, r5, 2 - cmp r0, 0 - beq _0809A76A - ldr r0, [r6] - adds r0, r4 - adds r0, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - cmp r0, 0 - beq _0809A774 - ldr r0, [r6] - adds r1, r7, r0 - adds r0, r4, r0 - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - bls _0809A774 -_0809A76A: - ldr r1, [r6] - adds r0, r1, r7 - adds r1, r4 - bl sub_809A578 -_0809A774: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r0, [r6, 0x4] - cmp r5, r0 - bcc _0809A73A -_0809A780: - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 -_0809A786: - ldrb r2, [r6, 0x4] - cmp r3, r2 - bcc _0809A72C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809A720 - - thumb_func_start sub_809A798 -sub_809A798: @ 809A798 - lsls r0, 24 - lsls r1, 16 - ldr r2, _0809A7B0 @ =gUnknown_203988C - lsrs r0, 21 - subs r0, 0x8 - adds r0, r2 - ldr r0, [r0] - lsrs r1, 14 - adds r1, r0 - ldrh r0, [r1] - bx lr - .align 2, 0 -_0809A7B0: .4byte gUnknown_203988C - thumb_func_end sub_809A798 - - thumb_func_start sub_809A7B4 -sub_809A7B4: @ 809A7B4 - push {lr} - lsls r0, 24 - lsls r1, 16 - ldr r2, _0809A7D8 @ =gUnknown_203988C - lsrs r0, 21 - subs r0, 0x8 - adds r0, r2 - lsrs r1, 14 - ldr r0, [r0] - adds r0, r1 - adds r0, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0809A7D8: .4byte gUnknown_203988C - thumb_func_end sub_809A7B4 - - thumb_func_start sub_809A7DC -sub_809A7DC: @ 809A7DC - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 21 - ldr r1, _0809A7F4 @ =gUnknown_2039884 - adds r3, r0, r1 - movs r2, 0 - b _0809A816 - .align 2, 0 -_0809A7F4: .4byte gUnknown_2039884 -_0809A7F8: - ldr r0, [r3] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, r4 - bne _0809A810 - adds r0, r1, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - b _0809A81E -_0809A810: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_0809A816: - ldrb r0, [r3, 0x4] - cmp r2, r0 - bcc _0809A7F8 - movs r0, 0 -_0809A81E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809A7DC - - thumb_func_start sub_809A824 -sub_809A824: @ 809A824 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _0809A894 @ =0xfea30000 - adds r0, r1 - lsrs r0, 16 - cmp r0, 0xD - bls _0809A85A - movs r0, 0xB7 - lsls r0, 1 - cmp r5, r0 - beq _0809A85A - adds r0, 0x2 - cmp r5, r0 - beq _0809A85A - adds r0, 0x1 - cmp r5, r0 - beq _0809A85A - adds r0, 0x3 - cmp r5, r0 - beq _0809A85A - adds r0, 0x1 - cmp r5, r0 - beq _0809A85A - adds r0, 0x1 - cmp r5, r0 - bne _0809A88C -_0809A85A: - ldr r0, _0809A898 @ =0x00000169 - cmp r5, r0 - bne _0809A86E - ldr r0, _0809A89C @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0x81 - lsls r0, 2 - cmp r1, r0 - bne _0809A88C -_0809A86E: - movs r0, 0x4 - bl Alloc - adds r4, r0, 0 - strh r5, [r4] - ldr r0, _0809A8A0 @ =gMapHeader - ldrb r0, [r0, 0x14] - strb r0, [r4, 0x2] - movs r0, 0x28 - adds r1, r4, 0 - bl sub_8113550 - adds r0, r4, 0 - bl Free -_0809A88C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A894: .4byte 0xfea30000 -_0809A898: .4byte 0x00000169 -_0809A89C: .4byte gSaveBlock1Ptr -_0809A8A0: .4byte gMapHeader - thumb_func_end sub_809A824 - - thumb_func_start SanitizeItemId -SanitizeItemId: @ 809A8A4 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0xBB - lsls r0, 1 - cmp r1, r0 - bhi _0809A8B6 - adds r0, r1, 0 - b _0809A8B8 -_0809A8B6: - movs r0, 0 -_0809A8B8: - pop {r1} - bx r1 - thumb_func_end SanitizeItemId - - thumb_func_start ItemId_GetItem -ItemId_GetItem: @ 809A8BC - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - ldr r1, _0809A8D8 @ =gUnknown_83DB028 - adds r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_0809A8D8: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetItem - - thumb_func_start itemid_get_number -itemid_get_number: @ 809A8DC - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A8FC @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrh r0, [r0, 0xE] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A8FC: .4byte gUnknown_83DB028 - thumb_func_end itemid_get_number - - thumb_func_start itemid_get_market_price -itemid_get_market_price: @ 809A900 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A920 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrh r0, [r0, 0x10] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A920: .4byte gUnknown_83DB028 - thumb_func_end itemid_get_market_price - - thumb_func_start ItemId_GetHoldEffect -ItemId_GetHoldEffect: @ 809A924 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A944 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x12] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A944: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetHoldEffect - - thumb_func_start ItemId_GetHoldEffectParam -ItemId_GetHoldEffectParam: @ 809A948 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A968 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x13] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A968: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetHoldEffectParam - - thumb_func_start ItemId_GetDescription -ItemId_GetDescription: @ 809A96C - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A98C @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r4, 0x14 - adds r0, r4 - ldr r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A98C: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetDescription - - thumb_func_start itemid_is_unique -itemid_is_unique: @ 809A990 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A9B0 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x18] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A9B0: .4byte gUnknown_83DB028 - thumb_func_end itemid_is_unique - - thumb_func_start itemid_get_x19 -itemid_get_x19: @ 809A9B4 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A9D4 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x19] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A9D4: .4byte gUnknown_83DB028 - thumb_func_end itemid_get_x19 - - thumb_func_start ItemId_GetPocket -ItemId_GetPocket: @ 809A9D8 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A9F8 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x1A] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A9F8: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetPocket - - thumb_func_start ItemId_GetType -ItemId_GetType: @ 809A9FC - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809AA1C @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x1B] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA1C: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetType - - thumb_func_start ItemId_GetFieldFunc -ItemId_GetFieldFunc: @ 809AA20 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809AA40 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r4, 0x1C - adds r0, r4 - ldr r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA40: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetFieldFunc - - thumb_func_start ItemId_GetBattleUsage -ItemId_GetBattleUsage: @ 809AA44 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809AA64 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA64: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetBattleUsage - - thumb_func_start ItemId_GetBattleFunc -ItemId_GetBattleFunc: @ 809AA68 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809AA88 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r4, 0x24 - adds r0, r4 - ldr r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA88: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetBattleFunc - - thumb_func_start ItemId_GetSecondaryId -ItemId_GetSecondaryId: @ 809AA8C - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809AAAC @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - adds r0, 0x28 - ldrb r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AAAC: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetSecondaryId - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_menu.s b/asm/item_menu.s index 58b74acf3..bdefc393f 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -138,8 +138,8 @@ _08107EB0: .4byte gUnknown_203AD10 _08107EB4: .4byte gUnknown_203ACFC thumb_func_end sub_8107DB4 - thumb_func_start UseFameCheckerFromMenu -UseFameCheckerFromMenu: @ 8107EB8 + thumb_func_start ReturnToBagFromKeyItem +ReturnToBagFromKeyItem: @ 8107EB8 push {lr} ldr r2, _08107EC8 @ =sub_80568A8 movs r0, 0 @@ -149,7 +149,7 @@ UseFameCheckerFromMenu: @ 8107EB8 bx r0 .align 2, 0 _08107EC8: .4byte sub_80568A8 - thumb_func_end UseFameCheckerFromMenu + thumb_func_end ReturnToBagFromKeyItem thumb_func_start sub_8107ECC sub_8107ECC: @ 8107ECC @@ -200,7 +200,7 @@ _08107F12: lsrs r0, 24 cmp r0, 0x1 beq _08107F36 - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -253,11 +253,11 @@ _08107F60: .4byte _081080D8 .4byte _081080DE _08107FB0: - bl sub_80BF768 + bl VblankHblankHandlerSetZero bl clear_scheduled_bg_copies_to_vram b _08108104 _08107FBA: - bl remove_some_task + bl ScanlineEffect_Stop b _08108104 _08107FC0: bl FreeAllSpritePalettes @@ -275,10 +275,10 @@ _08107FD8: bl ResetSpriteData b _08108104 _08107FDE: - bl sub_80984D8 + bl ResetItemMenuIconState b _08108104 _08107FE4: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 beq _08107FF0 @@ -350,7 +350,7 @@ _0810806E: adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r0, _081080B0 @ =gUnknown_3005E70 + ldr r0, _081080B0 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r1, r4, 0 @@ -375,7 +375,7 @@ _0810806E: b _08108104 .align 2, 0 _081080AC: .4byte gUnknown_203ACFC -_081080B0: .4byte gUnknown_3005E70 +_081080B0: .4byte gMultiuseListMenuTemplate _081080B4: .4byte gTasks _081080B8: ldr r0, _081080C4 @ =gUnknown_203ACFC @@ -400,13 +400,13 @@ _081080DE: cmp r0, 0x3 bne _081080F4 movs r0, 0x1D - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _081080FA .align 2, 0 _081080F0: .4byte gUnknown_203ACFC _081080F4: movs r0, 0x9 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _081080FA: ldr r2, _08108114 @ =gPaletteFade ldrb r1, [r2, 0x8] @@ -520,7 +520,7 @@ _081081CC: .4byte gUnknown_203AD1C thumb_func_start sub_81081D0 sub_81081D0: @ 81081D0 push {r4,r5,lr} - bl sub_80BF7C8 + bl InitBgReg ldr r5, _08108230 @ =gUnknown_203AD14 movs r4, 0x80 lsls r4, 4 @@ -687,7 +687,7 @@ _08108340: .align 2, 0 _08108348: .4byte gUnknown_83D41F4 _0810834C: - ldr r0, _08108360 @ =gUnknown_83D4240 + ldr r0, _08108360 @ =gBagSwapSpriteSheet _0810834E: bl LoadCompressedObjectPic _08108352: @@ -698,10 +698,10 @@ _08108352: strb r0, [r1, 0x10] b _0810837C .align 2, 0 -_08108360: .4byte gUnknown_83D4240 +_08108360: .4byte gBagSwapSpriteSheet _08108364: .4byte gUnknown_203AD10 _08108368: - ldr r0, _08108378 @ =gUnknown_83D4248 + ldr r0, _08108378 @ =gBagSwapSpritePalette bl LoadCompressedObjectPalette ldr r1, [r4] movs r0, 0 @@ -709,7 +709,7 @@ _08108368: movs r0, 0x1 b _0810837E .align 2, 0 -_08108378: .4byte gUnknown_83D4248 +_08108378: .4byte gBagSwapSpritePalette _0810837C: movs r0, 0 _0810837E: @@ -817,7 +817,7 @@ sub_810842C: @ 810842C lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 3 - ldr r0, _0810853C @ =gUnknown_203988C + ldr r0, _0810853C @ =gBagPockets adds r1, r0 mov r8, r1 movs r6, 0 @@ -881,7 +881,7 @@ _0810848C: adds r0, r4 str r0, [r1] str r6, [r1, 0x4] - ldr r3, _08108554 @ =gUnknown_3005E70 + ldr r3, _08108554 @ =gMultiuseListMenuTemplate str r2, [r3] ldr r0, _08108540 @ =gUnknown_203AD10 ldr r2, [r0] @@ -946,13 +946,13 @@ _0810848C: pop {r0} bx r0 .align 2, 0 -_0810853C: .4byte gUnknown_203988C +_0810853C: .4byte gBagPockets _08108540: .4byte gUnknown_203AD10 _08108544: .4byte gUnknown_203AD1C _08108548: .4byte gUnknown_203AD18 _0810854C: .4byte gUnknown_8452F60 _08108550: .4byte gFameCheckerText_Cancel -_08108554: .4byte gUnknown_3005E70 +_08108554: .4byte gMultiuseListMenuTemplate _08108558: .4byte sub_81085A4 _0810855C: .4byte sub_8108654 thumb_func_end sub_810842C @@ -981,7 +981,7 @@ _08108584: bl StringCopy _0810858C: adds r0, r5, 0 - bl ItemId_GetItem + bl ItemId_GetName adds r1, r0, 0 adds r0, r4, 0 bl StringAppend @@ -1014,7 +1014,7 @@ _081085BA: lsrs r1, 30 movs r0, 0x1 eors r0, r1 - bl sub_8098940 + bl DestroyItemMenuIcon ldr r2, [r4] ldr r0, _08108608 @ =gUnknown_203ACFC ldrh r1, [r0, 0x6] @@ -1029,14 +1029,14 @@ _081085BA: lsrs r0, 24 lsls r1, r5, 16 lsrs r1, 16 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 ldr r1, [r4] ldrb r1, [r1, 0x5] lsls r1, 26 lsrs r1, 30 - bl sub_80988E8 + bl CreateItemMenuIcon b _08108618 .align 2, 0 _08108604: .4byte gUnknown_203AD10 @@ -1046,7 +1046,7 @@ _0810860C: ldrb r1, [r2, 0x5] lsls r1, 26 lsrs r1, 30 - bl sub_80988E8 + bl CreateItemMenuIcon _08108618: ldr r4, _08108650 @ =gUnknown_203AD10 ldr r3, [r4] @@ -1129,7 +1129,7 @@ _08108690: lsls r4, 16 lsrs r4, 16 adds r1, r4, 0 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r7, r0, 16 ldrb r0, [r5, 0x6] @@ -1137,7 +1137,7 @@ _08108690: lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 - bl sub_809A7B4 + bl BagGetQuantityByPocketPosition lsls r0, 16 lsrs r4, r0, 16 ldrh r0, [r5, 0x6] @@ -1155,7 +1155,7 @@ _08108690: movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _08108724 @ =gStringVar4 - ldr r1, _08108728 @ =gUnknown_84162B9 + ldr r1, _08108728 @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders str r6, [sp] @@ -1176,7 +1176,7 @@ _08108718: .4byte gUnknown_203AD10 _0810871C: .4byte gUnknown_203ACFC _08108720: .4byte gStringVar1 _08108724: .4byte gStringVar4 -_08108728: .4byte gUnknown_84162B9 +_08108728: .4byte gText_TimesStrVar1 _0810872C: ldr r0, _08108760 @ =gSaveBlock1Ptr ldr r0, [r0] @@ -1317,7 +1317,7 @@ sub_8108818: @ 8108818 lsrs r0, 24 lsls r1, r2, 16 lsrs r1, 16 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl ItemId_GetDescription @@ -1383,7 +1383,7 @@ sub_8108888: @ 8108888 movs r1, 0xA0 movs r2, 0x8 movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 @@ -1439,7 +1439,7 @@ sub_8108908: @ 8108908 movs r1, 0x98 movs r2, 0x48 movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 @@ -1469,7 +1469,7 @@ sub_8108940: @ 8108940 movs r1, 0xD4 movs r2, 0x78 movs r3, 0x98 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 @@ -1739,8 +1739,8 @@ _08108B48: .4byte gUnknown_203AD18 _08108B4C: .4byte gUnknown_203AD1C thumb_func_end sub_8108B04 - thumb_func_start sub_8108B50 -sub_8108B50: @ 8108B50 + thumb_func_start ItemMenu_StartFadeToExitCallback +ItemMenu_StartFadeToExitCallback: @ 8108B50 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 @@ -1768,7 +1768,7 @@ sub_8108B50: @ 8108B50 .align 2, 0 _08108B84: .4byte gTasks _08108B88: .4byte sub_8108B8C - thumb_func_end sub_8108B50 + thumb_func_end ItemMenu_StartFadeToExitCallback thumb_func_start sub_8108B8C sub_8108B8C: @ 8108B8C @@ -1802,7 +1802,7 @@ sub_8108B8C: @ 8108B8C adds r3, r4, 0 adds r3, 0x8 adds r2, r3 - bl sub_810713C + bl DestroyListMenu ldr r0, _08108BF0 @ =gUnknown_203AD10 ldr r0, [r0] ldr r0, [r0] @@ -1999,8 +1999,8 @@ _08108D5A: bx r0 thumb_func_end sub_8108CFC - thumb_func_start sub_8108D60 -sub_8108D60: @ 8108D60 + thumb_func_start ItemMenu_MoveItemSlotToNewPositionInArray +ItemMenu_MoveItemSlotToNewPositionInArray: @ 8108D60 push {r4-r6,lr} adds r4, r0, 0 adds r3, r2, 0 @@ -2057,7 +2057,7 @@ _08108DC0: pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_8108D60 + thumb_func_end ItemMenu_MoveItemSlotToNewPositionInArray thumb_func_start sub_8108DC8 sub_8108DC8: @ 8108DC8 @@ -2065,11 +2065,11 @@ sub_8108DC8: @ 8108DC8 lsls r0, 24 lsrs r5, r0, 24 lsls r1, r5, 3 - ldr r0, _08108E3C @ =gUnknown_203988C + ldr r0, _08108E3C @ =gBagPockets adds r4, r1, r0 ldr r0, [r4] ldrb r1, [r4, 0x4] - bl sub_809A584 + bl BagPocketCompaction ldr r3, _08108E40 @ =gUnknown_203AD10 ldr r0, [r3] adds r0, 0xA @@ -2120,7 +2120,7 @@ _08108E1C: strb r1, [r0] b _08108E4C .align 2, 0 -_08108E3C: .4byte gUnknown_203988C +_08108E3C: .4byte gBagPockets _08108E40: .4byte gUnknown_203AD10 _08108E44: adds r0, r1, 0 @@ -2150,8 +2150,8 @@ _08108E58: bx r0 thumb_func_end sub_8108E54 - thumb_func_start sub_8108E70 -sub_8108E70: @ 8108E70 + thumb_func_start DisplayItemMessageInBag +DisplayItemMessageInBag: @ 8108E70 push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2177,7 +2177,7 @@ sub_8108E70: @ 8108E70 strh r0, [r4, 0x14] movs r1, 0x11 bl FillWindowPixelBuffer - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0x14] @@ -2202,17 +2202,17 @@ sub_8108E70: @ 8108E70 bx r0 .align 2, 0 _08108EDC: .4byte gTasks+0x8 - thumb_func_end sub_8108E70 + thumb_func_end DisplayItemMessageInBag - thumb_func_start sub_8108EE0 -sub_8108EE0: @ 8108EE0 + thumb_func_start ItemMenu_SetExitCallback +ItemMenu_SetExitCallback: @ 8108EE0 ldr r1, _08108EE8 @ =gUnknown_203AD10 ldr r1, [r1] str r0, [r1] bx lr .align 2, 0 _08108EE8: .4byte gUnknown_203AD10 - thumb_func_end sub_8108EE0 + thumb_func_end ItemMenu_SetExitCallback thumb_func_start sub_8108EEC sub_8108EEC: @ 8108EEC @@ -2313,7 +2313,7 @@ _08108FA0: adds r4, 0x2 mov r1, sp adds r2, r4, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow mov r0, sp ldrh r1, [r0] ldrh r0, [r4] @@ -2353,7 +2353,7 @@ _08108FE4: adds r3, r5, 0 adds r3, 0x8 adds r2, r3 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow movs r0, 0x2 negs r0, r0 cmp r4, r0 @@ -2376,12 +2376,12 @@ _08109018: adds r0, r6 lsls r0, 3 adds r0, r1 - ldr r1, _08109040 @ =sub_8108B50 + ldr r1, _08109040 @ =ItemMenu_StartFadeToExitCallback b _081090C4 .align 2, 0 _08109038: .4byte gSpecialVar_ItemId _0810903C: .4byte gTasks -_08109040: .4byte sub_8108B50 +_08109040: .4byte ItemMenu_StartFadeToExitCallback _08109044: movs r0, 0x5 bl PlaySE @@ -2402,13 +2402,13 @@ _08109044: adds r0, r6 lsls r0, 3 adds r0, r1 - ldr r1, _08109080 @ =sub_8108B50 + ldr r1, _08109080 @ =ItemMenu_StartFadeToExitCallback b _081090C4 .align 2, 0 _08109074: .4byte gUnknown_203AD10 _08109078: .4byte gSpecialVar_ItemId _0810907C: .4byte gTasks -_08109080: .4byte sub_8108B50 +_08109080: .4byte ItemMenu_StartFadeToExitCallback _08109084: bl sub_8108978 ldrb r0, [r7] @@ -2422,14 +2422,14 @@ _08109084: lsls r4, 16 lsrs r4, 16 adds r1, r4, 0 - bl sub_809A7B4 + bl BagGetQuantityByPocketPosition strh r0, [r7, 0x4] ldrb r0, [r5, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 - bl sub_809A798 + bl BagGetItemIdByPocketPosition ldr r1, _081090D0 @ =gSpecialVar_ItemId strh r0, [r1] ldr r1, _081090D4 @ =gTasks @@ -2514,7 +2514,7 @@ sub_8109140: @ 8109140 movs r1, 0 movs r2, 0xE movs r3, 0x1E - bl sub_80F6B08 + bl SetBgRectPal movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 @@ -2617,7 +2617,7 @@ sub_81091D0: @ 81091D0 adds r1, r2, r1 adds r3, 0x8 adds r2, r3 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r0, _08109290 @ =gUnknown_203AD10 @@ -2627,7 +2627,7 @@ sub_81091D0: @ 81091D0 lsrs r1, 30 movs r0, 0x1 eors r0, r1 - bl sub_8098940 + bl DestroyItemMenuIcon bl sub_8108978 _08109242: movs r0, 0x12 @@ -2677,7 +2677,7 @@ sub_8109298: @ 8109298 lsls r0, 3 ldr r1, _081092DC @ =gTasks+0x8 adds r5, r0, r1 - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _08109314 @@ -2773,7 +2773,7 @@ _08109358: bl sub_81087EC ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _081093B4 @ =gUnknown_3005E70 + ldr r0, _081093B4 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r1, r4, 0 @@ -2803,7 +2803,7 @@ _081093AA: bx r0 .align 2, 0 _081093B0: .4byte gUnknown_203ACFC -_081093B4: .4byte gUnknown_3005E70 +_081093B4: .4byte gMultiuseListMenuTemplate thumb_func_end sub_8109298 thumb_func_start sub_81093B8 @@ -2830,7 +2830,7 @@ sub_81093B8: @ 81093B8 mov r2, sp adds r2, 0x16 add r1, sp, 0x14 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow mov r2, r8 ldrb r0, [r2] movs r1, 0x10 @@ -2850,15 +2850,15 @@ sub_81093B8: @ 81093B8 lsrs r0, 24 mov r2, r8 ldrh r1, [r2, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 - bl ItemId_GetItem + bl ItemId_GetName adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r4, _081094A4 @ =gStringVar4 - ldr r1, _081094A8 @ =gUnknown_841633F + ldr r1, _081094A8 @ =gOtherText_WhereShouldTheStrVar1BePlaced adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 @@ -2910,7 +2910,7 @@ _08109498: .4byte gUnknown_203AD10 _0810949C: .4byte gStringVar1 _081094A0: .4byte gUnknown_203ACFC _081094A4: .4byte gStringVar4 -_081094A8: .4byte gUnknown_841633F +_081094A8: .4byte gOtherText_WhereShouldTheStrVar1BePlaced _081094AC: .4byte sub_81094B0 thumb_func_end sub_81093B8 @@ -2942,7 +2942,7 @@ sub_81094B0: @ 81094B0 adds r1, r2, r1 adds r3, 0x8 adds r2, r3 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldrb r0, [r4] bl ListMenuGetYCoordForPrintingArrowCursor adds r1, r0, 0 @@ -2967,7 +2967,7 @@ sub_81094B0: @ 81094B0 adds r4, 0x2 mov r1, sp adds r2, r4, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow mov r0, sp ldrh r1, [r0] ldrh r0, [r4] @@ -3001,7 +3001,7 @@ _08109558: adds r4, 0x2 mov r1, sp adds r2, r4, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow mov r0, sp ldrh r1, [r0] ldrh r0, [r4] @@ -3063,7 +3063,7 @@ _081095DA: .align 2, 0 _081095E4: .4byte gTasks+0x8 _081095E8: - ldr r1, _0810966C @ =gUnknown_203988C + ldr r1, _0810966C @ =gBagPockets ldr r4, _08109670 @ =gUnknown_203ACFC ldrh r0, [r4, 0x6] lsls r0, 3 @@ -3071,7 +3071,7 @@ _081095E8: ldr r0, [r0] adds r1, r2, 0 adds r2, r5, 0 - bl sub_8108D60 + bl ItemMenu_MoveItemSlotToNewPositionInArray ldrb r0, [r6] ldrh r2, [r4, 0x6] lsls r2, 1 @@ -3082,7 +3082,7 @@ _081095E8: adds r7, r4, 0 adds r7, 0x8 adds r2, r7 - bl sub_810713C + bl DestroyListMenu movs r3, 0x2 ldrsh r0, [r6, r3] cmp r0, r5 @@ -3096,7 +3096,7 @@ _081095E8: _08109628: ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _08109674 @ =gUnknown_3005E70 + ldr r0, _08109674 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 mov r3, r8 @@ -3125,9 +3125,9 @@ _0810965C: pop {r0} bx r0 .align 2, 0 -_0810966C: .4byte gUnknown_203988C +_0810966C: .4byte gBagPockets _08109670: .4byte gUnknown_203ACFC -_08109674: .4byte gUnknown_3005E70 +_08109674: .4byte gMultiuseListMenuTemplate _08109678: .4byte sub_8108F0C thumb_func_end sub_81095AC @@ -3160,7 +3160,7 @@ sub_810967C: @ 810967C adds r7, r5, 0 adds r7, 0x8 adds r2, r7 - bl sub_810713C + bl DestroyListMenu movs r3, 0x2 ldrsh r0, [r6, r3] cmp r0, r4 @@ -3174,7 +3174,7 @@ sub_810967C: @ 810967C _081096CA: ldrb r0, [r5, 0x6] bl sub_810842C - ldr r0, _08109714 @ =gUnknown_3005E70 + ldr r0, _08109714 @ =gMultiuseListMenuTemplate ldrh r2, [r5, 0x6] lsls r2, 1 mov r3, r9 @@ -3204,7 +3204,7 @@ _081096CA: .align 2, 0 _0810970C: .4byte gTasks+0x8 _08109710: .4byte gUnknown_203ACFC -_08109714: .4byte gUnknown_3005E70 +_08109714: .4byte gMultiuseListMenuTemplate _08109718: .4byte sub_8108F0C thumb_func_end sub_810967C @@ -3232,12 +3232,12 @@ sub_810971C: @ 810971C lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 ldr r1, _081097D8 @ =gStringVar1 mov r10, r1 - bl sub_8099E90 + bl CopyItemName ldr r0, _081097DC @ =gStringVar4 mov r9, r0 adds r1, r6, 0 @@ -3267,7 +3267,7 @@ sub_810971C: @ 810971C movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN - ldr r1, _081097E0 @ =gUnknown_84162B9 + ldr r1, _081097E0 @ =gText_TimesStrVar1 mov r0, r9 bl StringExpandPlaceholders movs r0, 0xA @@ -3295,7 +3295,7 @@ sub_810971C: @ 810971C _081097D4: .4byte gUnknown_203ACFC _081097D8: .4byte gStringVar1 _081097DC: .4byte gStringVar4 -_081097E0: .4byte gUnknown_84162B9 +_081097E0: .4byte gText_TimesStrVar1 thumb_func_end sub_810971C thumb_func_start sub_81097E4 @@ -3324,7 +3324,7 @@ sub_81097E4: @ 81097E4 adds r3, r5, 0 bl ConvertIntToDecimalStringN ldr r4, _0810984C @ =gStringVar4 - ldr r1, _08109850 @ =gUnknown_84162B9 + ldr r1, _08109850 @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0xA @@ -3347,7 +3347,7 @@ sub_81097E4: @ 81097E4 .align 2, 0 _08109848: .4byte gStringVar1 _0810984C: .4byte gStringVar4 -_08109850: .4byte gUnknown_84162B9 +_08109850: .4byte gText_TimesStrVar1 thumb_func_end sub_81097E4 thumb_func_start sub_8109854 @@ -3464,7 +3464,7 @@ _08109930: .4byte gUnknown_203AD24 _08109934: .4byte gUnknown_8452F30 _08109938: .4byte gUnknown_203AD28 _0810993C: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3715,7 +3715,7 @@ _08109AD4: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x6 movs r1, 0 bl sub_810B9DC @@ -3725,9 +3725,9 @@ _08109AD4: ldr r0, _08109BA8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _08109BAC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _08109BB0 @ =gStringVar4 - ldr r1, _08109BB4 @ =gUnknown_84162FF + ldr r1, _08109BB4 @ =gOtherText_StrVar1 adds r0, r6, 0 bl StringExpandPlaceholders movs r0, 0x2 @@ -3754,7 +3754,7 @@ _08109BA4: .4byte gUnknown_8452EB8 _08109BA8: .4byte gSpecialVar_ItemId _08109BAC: .4byte gStringVar1 _08109BB0: .4byte gStringVar4 -_08109BB4: .4byte gUnknown_84162FF +_08109BB4: .4byte gOtherText_StrVar1 thumb_func_end sub_8109890 thumb_func_start sub_8109BB8 @@ -4121,11 +4121,11 @@ sub_8109EA8: @ 8109EA8 lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 ldr r1, _08109F30 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _08109F34 @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r6, r2] @@ -4200,7 +4200,7 @@ _08109F6E: ldr r0, _08109FF4 @ =gSpecialVar_ItemId ldrh r0, [r0] ldrh r1, [r7, 0x10] - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0x6 bl sub_810BA3C ldrb r0, [r7] @@ -4213,14 +4213,14 @@ _08109F6E: adds r6, r4, 0 adds r6, 0x8 adds r2, r6 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] bl sub_81089F4 ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _08109FFC @ =gUnknown_3005E70 + ldr r0, _08109FFC @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 @@ -4251,7 +4251,7 @@ _08109FEC: .4byte gTasks+0x8 _08109FF0: .4byte gMain _08109FF4: .4byte gSpecialVar_ItemId _08109FF8: .4byte gUnknown_203ACFC -_08109FFC: .4byte gUnknown_3005E70 +_08109FFC: .4byte gMultiuseListMenuTemplate thumb_func_end sub_8109F44 thumb_func_start sub_810A000 @@ -4273,7 +4273,7 @@ sub_810A000: @ 810A000 lsls r0, 24 lsrs r0, 24 ldrh r1, [r7, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r2, r0, 16 ldr r0, _0810A048 @ =gSaveBlock1Ptr @@ -4304,10 +4304,10 @@ _0810A052: adds r6, r4, 0 adds r6, 0x8 adds r2, r6 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _0810A0A4 @ =gUnknown_3005E70 + ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 @@ -4330,7 +4330,7 @@ _0810A052: bx r0 .align 2, 0 _0810A0A0: .4byte gUnknown_203ACFC -_0810A0A4: .4byte gUnknown_3005E70 +_0810A0A4: .4byte gMultiuseListMenuTemplate thumb_func_end sub_810A000 thumb_func_start sub_810A0A8 @@ -4353,7 +4353,7 @@ sub_810A0A8: @ 810A0A8 lsls r0, 24 lsrs r0, 24 ldrh r1, [r1, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r5, r0, 16 movs r0, 0xA @@ -4376,7 +4376,7 @@ sub_810A0A8: @ 810A0A8 ldr r3, _0810A11C @ =sub_810A1D0 adds r0, r4, 0 movs r1, 0x2 - bl sub_8108E70 + bl DisplayItemMessageInBag b _0810A166 .align 2, 0 _0810A110: .4byte gTasks+0x8 @@ -4404,13 +4404,13 @@ _0810A13E: mov r0, r8 subs r0, 0x8 adds r0, r6, r0 - ldr r1, _0810A15C @ =sub_8108B50 + ldr r1, _0810A15C @ =ItemMenu_StartFadeToExitCallback str r1, [r0] b _0810A166 .align 2, 0 _0810A154: .4byte gUnknown_203AD10 _0810A158: .4byte sub_8126EDC -_0810A15C: .4byte sub_8108B50 +_0810A15C: .4byte ItemMenu_StartFadeToExitCallback _0810A160: adds r0, r7, 0 bl sub_810A18C @@ -4427,14 +4427,14 @@ sub_810A170: @ 810A170 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _0810A184 @ =gUnknown_841632A + ldr r2, _0810A184 @ =gText_ThereIsNoPokemon ldr r3, _0810A188 @ =sub_810A1D0 movs r1, 0x2 - bl sub_8108E70 + bl DisplayItemMessageInBag pop {r0} bx r0 .align 2, 0 -_0810A184: .4byte gUnknown_841632A +_0810A184: .4byte gText_ThereIsNoPokemon _0810A188: .4byte sub_810A1D0 thumb_func_end sub_810A170 @@ -4447,16 +4447,16 @@ sub_810A18C: @ 810A18C ldr r0, _0810A1BC @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A1C0 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r5, _0810A1C4 @ =gStringVar4 - ldr r1, _0810A1C8 @ =gUnknown_841635E + ldr r1, _0810A1C8 @ =gText_ItemCantBeHeld adds r0, r5, 0 bl StringExpandPlaceholders ldr r3, _0810A1CC @ =sub_810A1D0 adds r0, r4, 0 movs r1, 0x2 adds r2, r5, 0 - bl sub_8108E70 + bl DisplayItemMessageInBag pop {r4,r5} pop {r0} bx r0 @@ -4464,7 +4464,7 @@ sub_810A18C: @ 810A18C _0810A1BC: .4byte gSpecialVar_ItemId _0810A1C0: .4byte gStringVar1 _0810A1C4: .4byte gStringVar4 -_0810A1C8: .4byte gUnknown_841635E +_0810A1C8: .4byte gText_ItemCantBeHeld _0810A1CC: .4byte sub_810A1D0 thumb_func_end sub_810A18C @@ -4519,14 +4519,14 @@ sub_810A1F8: @ 810A1F8 adds r3, r4 mov r9, r3 add r2, r9 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] bl sub_81089F4 ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _0810A284 @ =gUnknown_3005E70 + ldr r0, _0810A284 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r6, r2, r6 @@ -4553,7 +4553,7 @@ sub_810A1F8: @ 810A1F8 .align 2, 0 _0810A27C: .4byte gTasks+0x8 _0810A280: .4byte gUnknown_203ACFC -_0810A284: .4byte gUnknown_3005E70 +_0810A284: .4byte gMultiuseListMenuTemplate thumb_func_end sub_810A1F8 thumb_func_start sub_810A288 @@ -4573,7 +4573,7 @@ sub_810A288: @ 810A288 adds r6, 0x2 mov r1, sp adds r2, r6, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow mov r0, sp ldrh r0, [r0] ldrh r1, [r6] @@ -4684,7 +4684,7 @@ sub_810A370: @ 810A370 lsls r0, 24 lsrs r0, 24 ldrh r1, [r1, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 @@ -4697,7 +4697,7 @@ sub_810A370: @ 810A370 ldr r3, _0810A3C8 @ =sub_810A1D0 adds r0, r5, 0 movs r1, 0x2 - bl sub_8108E70 + bl DisplayItemMessageInBag b _0810A426 .align 2, 0 _0810A3BC: .4byte gTasks+0x8 @@ -4719,9 +4719,9 @@ _0810A3DC: bne _0810A3F8 ldr r0, _0810A3F4 @ =sub_810A448 _0810A3E4: - bl sub_8108EE0 + bl ItemMenu_SetExitCallback adds r0, r5, 0 - bl sub_8108B50 + bl ItemMenu_StartFadeToExitCallback b _0810A426 .align 2, 0 _0810A3F0: .4byte 0x0000016d @@ -4740,11 +4740,11 @@ _0810A3F8: mov r0, r9 subs r0, 0x8 adds r0, r7, r0 - ldr r1, _0810A41C @ =sub_8108B50 + ldr r1, _0810A41C @ =ItemMenu_StartFadeToExitCallback str r1, [r0] b _0810A426 .align 2, 0 -_0810A41C: .4byte sub_8108B50 +_0810A41C: .4byte ItemMenu_StartFadeToExitCallback _0810A420: adds r0, r5, 0 bl sub_810A18C @@ -4763,7 +4763,7 @@ sub_810A434: @ 810A434 ldr r1, _0810A444 @ =sub_810A45C movs r0, 0x1 movs r2, 0 - bl sub_81317F8 + bl InitTMCase pop {r0} bx r0 .align 2, 0 @@ -4776,7 +4776,7 @@ sub_810A448: @ 810A448 ldr r1, _0810A458 @ =sub_810A45C movs r0, 0x1 movs r2, 0 - bl sub_813CD50 + bl InitBerryPouch pop {r0} bx r0 .align 2, 0 @@ -4812,7 +4812,7 @@ sub_810A468: @ 810A468 lsls r0, 24 lsrs r0, 24 ldrh r1, [r1, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 @@ -4826,7 +4826,7 @@ sub_810A468: @ 810A468 ldr r3, _0810A4C0 @ =sub_810A1D0 adds r0, r5, 0 movs r1, 0x2 - bl sub_8108E70 + bl DisplayItemMessageInBag b _0810A51E .align 2, 0 _0810A4B4: .4byte gTasks+0x8 @@ -4835,7 +4835,7 @@ _0810A4BC: .4byte gUnknown_841630F _0810A4C0: .4byte sub_810A1D0 _0810A4C4: movs r0, 0xB6 - lsls r0, 1 + lsls r0, 1 @ ITEM_TM_CASE cmp r4, r0 bne _0810A4D4 ldr r0, _0810A4D0 @ =sub_810A52C @@ -4843,14 +4843,14 @@ _0810A4C4: .align 2, 0 _0810A4D0: .4byte sub_810A52C _0810A4D4: - ldr r0, _0810A4E8 @ =0x0000016d + ldr r0, _0810A4E8 @ =0x0000016d @ ITEM_BERRY_POUCH cmp r4, r0 bne _0810A4F0 ldr r0, _0810A4EC @ =sub_810A540 _0810A4DC: - bl sub_8108EE0 + bl ItemMenu_SetExitCallback adds r0, r5, 0 - bl sub_8108B50 + bl ItemMenu_StartFadeToExitCallback b _0810A51E .align 2, 0 _0810A4E8: .4byte 0x0000016d @@ -4869,11 +4869,11 @@ _0810A4F0: mov r0, r9 subs r0, 0x8 adds r0, r7, r0 - ldr r1, _0810A514 @ =sub_8108B50 + ldr r1, _0810A514 @ =ItemMenu_StartFadeToExitCallback str r1, [r0] b _0810A51E .align 2, 0 -_0810A514: .4byte sub_8108B50 +_0810A514: .4byte ItemMenu_StartFadeToExitCallback _0810A518: adds r0, r5, 0 bl sub_810A18C @@ -4892,7 +4892,7 @@ sub_810A52C: @ 810A52C ldr r1, _0810A53C @ =sub_810A554 movs r0, 0x3 movs r2, 0 - bl sub_81317F8 + bl InitTMCase pop {r0} bx r0 .align 2, 0 @@ -4905,7 +4905,7 @@ sub_810A540: @ 810A540 ldr r1, _0810A550 @ =sub_810A554 movs r0, 0x3 movs r2, 0 - bl sub_813CD50 + bl InitBerryPouch pop {r0} bx r0 .align 2, 0 @@ -4954,9 +4954,9 @@ _0810A598: bne _0810A5B4 ldr r0, _0810A5B0 @ =sub_810A668 _0810A5A0: - bl sub_8108EE0 + bl ItemMenu_SetExitCallback adds r0, r5, 0 - bl sub_8108B50 + bl ItemMenu_StartFadeToExitCallback b _0810A63E .align 2, 0 _0810A5AC: .4byte 0x0000016d @@ -4969,9 +4969,9 @@ _0810A5B4: bne _0810A5F8 ldrh r0, [r6] ldr r1, _0810A5E8 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0810A5EC @ =gStringVar4 - ldr r1, _0810A5F0 @ =gUnknown_84168F1 + ldr r1, _0810A5F0 @ =gText_OhNoICantBuyThat adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -4981,12 +4981,12 @@ _0810A5B4: ldr r3, _0810A5F4 @ =sub_810A1F8 adds r0, r5, 0 adds r2, r4, 0 - bl sub_8108E70 + bl DisplayItemMessageInBag b _0810A63E .align 2, 0 _0810A5E8: .4byte gStringVar1 _0810A5EC: .4byte gStringVar4 -_0810A5F0: .4byte gUnknown_84168F1 +_0810A5F0: .4byte gText_OhNoICantBuyThat _0810A5F4: .4byte sub_810A1F8 _0810A5F8: movs r0, 0x1 @@ -5007,9 +5007,9 @@ _0810A610: _0810A618: ldrh r0, [r6] ldr r1, _0810A644 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0810A648 @ =gStringVar4 - ldr r1, _0810A64C @ =gUnknown_8416911 + ldr r1, _0810A64C @ =gText_HowManyWouldYouLikeToSell adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -5019,7 +5019,7 @@ _0810A618: ldr r3, _0810A650 @ =sub_810A770 adds r0, r7, 0 adds r2, r4, 0 - bl sub_8108E70 + bl DisplayItemMessageInBag _0810A63E: pop {r4-r7} pop {r0} @@ -5027,7 +5027,7 @@ _0810A63E: .align 2, 0 _0810A644: .4byte gStringVar1 _0810A648: .4byte gStringVar4 -_0810A64C: .4byte gUnknown_8416911 +_0810A64C: .4byte gText_HowManyWouldYouLikeToSell _0810A650: .4byte sub_810A770 thumb_func_end sub_810A568 @@ -5037,7 +5037,7 @@ sub_810A654: @ 810A654 ldr r1, _0810A664 @ =sub_810A67C movs r0, 0x2 movs r2, 0 - bl sub_81317F8 + bl InitTMCase pop {r0} bx r0 .align 2, 0 @@ -5050,7 +5050,7 @@ sub_810A668: @ 810A668 ldr r1, _0810A678 @ =sub_810A67C movs r0, 0x2 movs r2, 0 - bl sub_813CD50 + bl InitBerryPouch pop {r0} bx r0 .align 2, 0 @@ -5060,14 +5060,14 @@ _0810A678: .4byte sub_810A67C thumb_func_start sub_810A67C sub_810A67C: @ 810A67C push {lr} - ldr r2, _0810A68C @ =c2_exit_to_overworld_2_switch + ldr r2, _0810A68C @ =CB2_ReturnToField movs r0, 0x2 movs r1, 0x3 bl sub_8107DB4 pop {r0} bx r0 .align 2, 0 -_0810A68C: .4byte c2_exit_to_overworld_2_switch +_0810A68C: .4byte CB2_ReturnToField thumb_func_end sub_810A67C thumb_func_start sub_810A690 @@ -5088,7 +5088,7 @@ sub_810A690: @ 810A690 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -5102,7 +5102,7 @@ sub_810A690: @ 810A690 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0810A700 @ =gStringVar4 - ldr r1, _0810A704 @ =gUnknown_8416936 + ldr r1, _0810A704 @ =gText_ICanPayThisMuch_WouldThatBeOkay adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -5112,7 +5112,7 @@ sub_810A690: @ 810A690 ldr r3, _0810A708 @ =sub_810A70C adds r0, r5, 0 adds r2, r4, 0 - bl sub_8108E70 + bl DisplayItemMessageInBag pop {r4-r6} pop {r0} bx r0 @@ -5121,7 +5121,7 @@ _0810A6F4: .4byte gTasks+0x8 _0810A6F8: .4byte gStringVar3 _0810A6FC: .4byte gUnknown_203ACFC _0810A700: .4byte gStringVar4 -_0810A704: .4byte gUnknown_8416936 +_0810A704: .4byte gText_ICanPayThisMuch_WouldThatBeOkay _0810A708: .4byte sub_810A70C thumb_func_end sub_810A690 @@ -5202,7 +5202,7 @@ sub_810A770: @ 810A770 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r6, _0810A824 @ =gStringVar4 - ldr r1, _0810A828 @ =gUnknown_84162B9 + ldr r1, _0810A828 @ =gText_TimesStrVar1 adds r0, r6, 0 bl StringExpandPlaceholders movs r0, 0xA @@ -5226,7 +5226,7 @@ sub_810A770: @ 810A770 lsrs r0, 24 mov r3, r9 ldrh r1, [r3, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -5256,7 +5256,7 @@ sub_810A770: @ 810A770 _0810A81C: .4byte gTasks+0x8 _0810A820: .4byte gStringVar1 _0810A824: .4byte gStringVar4 -_0810A828: .4byte gUnknown_84162B9 +_0810A828: .4byte gText_TimesStrVar1 _0810A82C: .4byte gUnknown_203ACFC _0810A830: .4byte sub_810A85C thumb_func_end sub_810A770 @@ -5311,7 +5311,7 @@ sub_810A85C: @ 810A85C lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -5397,7 +5397,7 @@ sub_810A940: @ 810A940 ldr r0, _0810A9B8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A9BC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _0810A9C0 @ =gStringVar3 ldr r0, _0810A9C4 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] @@ -5405,7 +5405,7 @@ sub_810A940: @ 810A940 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -5419,14 +5419,14 @@ sub_810A940: @ 810A940 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0810A9C8 @ =gStringVar4 - ldr r1, _0810A9CC @ =gUnknown_8416959 + ldr r1, _0810A9CC @ =gText_TurnedOverItemsWorthYen adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, _0810A9D0 @ =sub_810A9D4 adds r0, r5, 0 movs r1, 0x2 adds r2, r4, 0 - bl sub_8108E70 + bl DisplayItemMessageInBag pop {r4-r6} pop {r0} bx r0 @@ -5437,7 +5437,7 @@ _0810A9BC: .4byte gStringVar1 _0810A9C0: .4byte gStringVar3 _0810A9C4: .4byte gUnknown_203ACFC _0810A9C8: .4byte gStringVar4 -_0810A9CC: .4byte gUnknown_8416959 +_0810A9CC: .4byte gText_TurnedOverItemsWorthYen _0810A9D0: .4byte sub_810A9D4 thumb_func_end sub_810A940 @@ -5464,7 +5464,7 @@ sub_810A9D4: @ 810A9D4 ldrh r0, [r5] mov r2, r8 ldrh r1, [r2, 0x10] - bl sub_809A1D8 + bl RemoveBagItem ldr r3, _0810AAE0 @ =gSaveBlock1Ptr ldr r4, [r3] movs r7, 0xA4 @@ -5497,7 +5497,7 @@ sub_810A9D4: @ 810A9D4 adds r3, r4 mov r9, r3 add r2, r9 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] @@ -5512,7 +5512,7 @@ sub_810A9D4: @ 810A9D4 strb r0, [r2, 0x5] ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _0810AAEC @ =gUnknown_3005E70 + ldr r0, _0810AAEC @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 @@ -5563,7 +5563,7 @@ _0810AADC: .4byte gSpecialVar_ItemId _0810AAE0: .4byte gSaveBlock1Ptr _0810AAE4: .4byte gUnknown_203ACFC _0810AAE8: .4byte gUnknown_203AD10 -_0810AAEC: .4byte gUnknown_3005E70 +_0810AAEC: .4byte gMultiuseListMenuTemplate _0810AAF0: .4byte sub_810AAF4 thumb_func_end sub_810A9D4 @@ -5744,7 +5744,7 @@ sub_810AC40: @ 810AC40 ldr r5, _0810ACD0 @ =gSpecialVar_ItemId ldrh r0, [r5] ldrh r1, [r7, 0x10] - bl sub_809A3C8 + bl AddPCItem lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 @@ -5753,10 +5753,10 @@ sub_810AC40: @ 810AC40 ldr r3, _0810ACD4 @ =0x0000ffff movs r0, 0x1C movs r1, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent ldrh r0, [r5] ldr r1, _0810ACD8 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _0810ACDC @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r7, r2] @@ -5803,7 +5803,7 @@ _0810ACEC: ldr r3, _0810AD0C @ =sub_810A1D0 adds r0, r4, 0 movs r1, 0x2 - bl sub_8108E70 + bl DisplayItemMessageInBag _0810ACF8: add sp, 0x14 pop {r3,r4} @@ -5839,7 +5839,7 @@ _0810AD1E: cmp r0, 0 beq _0810AD98 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 @@ -6120,10 +6120,10 @@ sub_810AF74: @ 810AF74 bl sub_810ADD8 movs r0, 0xD movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0x4 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldr r2, _0810AF98 @ =sub_8030AEC movs r0, 0x6 movs r1, 0 @@ -6212,7 +6212,7 @@ _0810B01C: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_810AECC bl sub_8108CB4 adds r0, r7, 0 @@ -6317,36 +6317,36 @@ sub_810B108: @ 810B108 bl sub_810ADD8 movs r0, 0xD movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0xE movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0xB7 lsls r0, 1 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0xB6 lsls r0, 1 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0x4 movs r1, 0x5 - bl sub_809A084 + bl AddBagItem movs r0, 0x3 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0x8 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem cmp r4, 0x7 beq _0810B160 cmp r4, 0x8 beq _0810B16C - ldr r2, _0810B15C @ =sub_815ABFC + ldr r2, _0810B15C @ =CB2_ReturnToTeachyTV adds r0, r4, 0 b _0810B170 .align 2, 0 -_0810B15C: .4byte sub_815ABFC +_0810B15C: .4byte CB2_ReturnToTeachyTV _0810B160: ldr r2, _0810B168 @ =sub_8030AEC movs r0, 0x7 @@ -6383,10 +6383,10 @@ sub_810B180: @ 810B180 _0810B198: .4byte gMain _0810B19C: bl sub_810AECC - bl sub_815AC20 + bl SetTeachyTvControllerModeToResume ldr r0, _0810B1C4 @ =gUnknown_203AD10 ldr r1, [r0] - ldr r0, _0810B1C8 @ =sub_815ABFC + ldr r0, _0810B1C8 @ =CB2_ReturnToTeachyTV str r0, [r1] ldr r1, _0810B1CC @ =gTasks lsls r0, r4, 2 @@ -6402,7 +6402,7 @@ _0810B1BC: bx r1 .align 2, 0 _0810B1C4: .4byte gUnknown_203AD10 -_0810B1C8: .4byte sub_815ABFC +_0810B1C8: .4byte CB2_ReturnToTeachyTV _0810B1CC: .4byte gTasks _0810B1D0: .4byte sub_810B070 thumb_func_end sub_810B180 @@ -6537,10 +6537,10 @@ _0810B29E: adds r6, r4, 0 adds r6, 0x8 adds r2, r6 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _0810B328 @ =gUnknown_3005E70 + ldr r0, _0810B328 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 @@ -6565,7 +6565,7 @@ _0810B318: .4byte gSaveBlock1Ptr _0810B31C: .4byte gSpecialVar_ItemId _0810B320: .4byte 0x00000296 _0810B324: .4byte gUnknown_203ACFC -_0810B328: .4byte gUnknown_3005E70 +_0810B328: .4byte gMultiuseListMenuTemplate _0810B32C: ldr r1, _0810B340 @ =gMain movs r0, 0 @@ -6583,7 +6583,7 @@ _0810B344: ldrb r0, [r7] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_810AECC bl sub_8108CB4 adds r0, r6, 0 @@ -6738,7 +6738,7 @@ _0810B468: ldrb r0, [r4] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_810AECC bl sub_8108CB4 adds r0, r7, 0 @@ -6854,13 +6854,13 @@ _0810B564: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_810AECC ldr r1, _0810B5B0 @ =gUnknown_3005E98 ldr r0, _0810B5B4 @ =ItemUseCB_Medicine str r0, [r1] ldr r0, _0810B5B8 @ =sub_81279A4 - bl sub_8108EE0 + bl ItemMenu_SetExitCallback mov r0, r9 subs r0, 0x8 add r0, r8 @@ -6989,11 +6989,11 @@ _0810B68C: ldrb r0, [r6] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_810AECC ldr r0, _0810B6D4 @ =gUnknown_203AD10 ldr r1, [r0] - ldr r0, _0810B6D8 @ =sub_8132E64 + ldr r0, _0810B6D8 @ =PokeDude_InitTMCase str r0, [r1] mov r0, r9 subs r0, 0x8 @@ -7003,7 +7003,7 @@ _0810B68C: b _0810B6E6 .align 2, 0 _0810B6D4: .4byte gUnknown_203AD10 -_0810B6D8: .4byte sub_8132E64 +_0810B6D8: .4byte PokeDude_InitTMCase _0810B6DC: .4byte sub_810B070 _0810B6E0: ldrh r0, [r6, 0x10] diff --git a/asm/item_menu_icons.s b/asm/item_menu_icons.s deleted file mode 100644 index 118591dc2..000000000 --- a/asm/item_menu_icons.s +++ /dev/null @@ -1,680 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80984D8 -sub_80984D8: @ 80984D8 - push {r4,lr} - movs r2, 0 - ldr r4, _080984F8 @ =gUnknown_2039878 - movs r3, 0xFF -_080984E0: - adds r0, r2, r4 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xB - bls _080984E0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080984F8: .4byte gUnknown_2039878 - thumb_func_end sub_80984D8 - - thumb_func_start sub_80984FC -sub_80984FC: @ 80984FC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08098520 @ =gUnknown_83D41FC - movs r1, 0x28 - movs r2, 0x44 - movs r3, 0 - bl CreateSprite - ldr r1, _08098524 @ =gUnknown_2039878 - strb r0, [r1] - adds r0, r4, 0 - bl sub_8098528 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08098520: .4byte gUnknown_83D41FC -_08098524: .4byte gUnknown_2039878 - thumb_func_end sub_80984FC - - thumb_func_start sub_8098528 -sub_8098528: @ 8098528 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08098550 @ =gUnknown_2039878 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r2, _08098554 @ =gSprites - adds r0, r2 - ldr r2, _08098558 @ =0x0000fffb - strh r2, [r0, 0x26] - ldr r2, _0809855C @ =sub_8098560 - str r2, [r0, 0x1C] - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_08098550: .4byte gUnknown_2039878 -_08098554: .4byte gSprites -_08098558: .4byte 0x0000fffb -_0809855C: .4byte sub_8098560 - thumb_func_end sub_8098528 - - thumb_func_start sub_8098560 -sub_8098560: @ 8098560 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x26] - movs r3, 0x26 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08098574 - adds r0, r2, 0x1 - strh r0, [r1, 0x26] - b _08098578 -_08098574: - ldr r0, _0809857C @ =SpriteCallbackDummy - str r0, [r1, 0x1C] -_08098578: - pop {r0} - bx r0 - .align 2, 0 -_0809857C: .4byte SpriteCallbackDummy - thumb_func_end sub_8098560 - - thumb_func_start sub_8098580 -sub_8098580: @ 8098580 - push {r4,lr} - ldr r0, _080985B0 @ =gUnknown_2039878 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080985B4 @ =gSprites - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080985AA - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _080985B8 @ =sub_80985BC - str r0, [r4, 0x1C] -_080985AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080985B0: .4byte gUnknown_2039878 -_080985B4: .4byte gSprites -_080985B8: .4byte sub_80985BC - thumb_func_end sub_8098580 - - thumb_func_start sub_80985BC -sub_80985BC: @ 80985BC - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080985D8 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - ldr r0, _080985E0 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_080985D8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080985E0: .4byte SpriteCallbackDummy - thumb_func_end sub_80985BC - - thumb_func_start sub_80985E4 -sub_80985E4: @ 80985E4 - push {r4-r7,lr} - ldr r7, _08098620 @ =gUnknown_2039879 - movs r5, 0 - ldr r6, _08098624 @ =gSprites -_080985EC: - lsls r1, r5, 20 - movs r0, 0xC0 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - ldr r0, _08098628 @ =gUnknown_83D4250 - movs r2, 0x7 - movs r3, 0 - bl CreateSprite - adds r1, r7, r5 - strb r0, [r1] - adds r4, r1, 0 - cmp r5, 0 - beq _0809863C - cmp r5, 0x8 - bne _0809862C - ldrb r1, [r7, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x2 - bl StartSpriteAnim - b _0809863C - .align 2, 0 -_08098620: .4byte gUnknown_2039879 -_08098624: .4byte gSprites -_08098628: .4byte gUnknown_83D4250 -_0809862C: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartSpriteAnim -_0809863C: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x8 - bls _080985EC - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80985E4 - - thumb_func_start sub_8098660 -sub_8098660: @ 8098660 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r7, _080986A0 @ =gUnknown_2039879 - movs r3, 0 - ldr r6, _080986A4 @ =gSprites - movs r1, 0x1 - ands r0, r1 - lsls r4, r0, 2 - movs r5, 0x5 - negs r5, r5 -_08098676: - adds r0, r7, r3 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _08098676 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080986A0: .4byte gUnknown_2039879 -_080986A4: .4byte gSprites - thumb_func_end sub_8098660 - - thumb_func_start sub_80986A8 -sub_80986A8: @ 80986A8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r7, _080986E4 @ =gUnknown_2039879 - movs r3, 0 - ldr r4, _080986E8 @ =gSprites - adds r5, r1, 0x7 -_080986BA: - adds r2, r7, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r6, [r0, 0x24] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r5, [r0, 0x22] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _080986BA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080986E4: .4byte gUnknown_2039879 -_080986E8: .4byte gSprites - thumb_func_end sub_80986A8 - - thumb_func_start sub_80986EC -sub_80986EC: @ 80986EC - push {r4,r5,lr} - ldr r5, _08098714 @ =gUnknown_2039884 - movs r0, 0x90 - lsls r0, 1 - bl Alloc - str r0, [r5] - cmp r0, 0 - beq _08098722 - ldr r4, _08098718 @ =gUnknown_2039888 - movs r0, 0x80 - lsls r0, 2 - bl AllocZeroed - str r0, [r4] - cmp r0, 0 - beq _0809871C - movs r0, 0x1 - b _08098724 - .align 2, 0 -_08098714: .4byte gUnknown_2039884 -_08098718: .4byte gUnknown_2039888 -_0809871C: - ldr r0, [r5] - bl Free -_08098722: - movs r0, 0 -_08098724: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80986EC - - thumb_func_start CopyItemIconPicTo4x4Buffer -CopyItemIconPicTo4x4Buffer: @ 809872C - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 -_08098734: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 5 - adds r0, r6, r0 - lsls r1, r4, 7 - adds r1, r5, r1 - movs r2, 0x30 - bl CpuSet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08098734 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end CopyItemIconPicTo4x4Buffer - - thumb_func_start AddItemIconObject -AddItemIconObject: @ 8098758 - push {r4-r7,lr} - sub sp, 0x28 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 16 - lsrs r7, r2, 16 - bl sub_80986EC - lsls r0, 24 - cmp r0, 0 - beq _08098810 - adds r0, r7, 0 - movs r1, 0 - bl sub_8098974 - ldr r2, _080987FC @ =gUnknown_2039884 - ldr r1, [r2] - bl LZDecompressWram - ldr r1, _080987FC @ =gUnknown_2039884 - ldr r0, [r1] - ldr r2, _08098800 @ =gUnknown_2039888 - ldr r1, [r2] - bl CopyItemIconPicTo4x4Buffer - ldr r1, _08098800 @ =gUnknown_2039888 - ldr r0, [r1] - str r0, [sp, 0x18] - ldr r4, _08098804 @ =0xffff0000 - add r0, sp, 0x18 - ldr r1, [r0, 0x4] - ands r1, r4 - movs r2, 0x80 - lsls r2, 2 - orrs r1, r2 - lsls r3, r6, 16 - ldr r2, _08098808 @ =0x0000ffff - ands r1, r2 - orrs r1, r3 - str r1, [r0, 0x4] - bl LoadSpriteSheet - adds r0, r7, 0 - movs r1, 0x1 - bl sub_8098974 - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r4 - orrs r1, r5 - str r1, [r0, 0x4] - bl LoadCompressedObjectPalette - ldr r0, _0809880C @ =gUnknown_83D427C - mov r1, sp - movs r2, 0xC - bl CpuSet - mov r0, sp - strh r6, [r0] - strh r5, [r0, 0x2] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080987FC @ =gUnknown_2039884 - ldr r0, [r2] - bl Free - ldr r1, _08098800 @ =gUnknown_2039888 - ldr r0, [r1] - bl Free - adds r0, r4, 0 - b _08098812 - .align 2, 0 -_080987FC: .4byte gUnknown_2039884 -_08098800: .4byte gUnknown_2039888 -_08098804: .4byte 0xffff0000 -_08098808: .4byte 0x0000ffff -_0809880C: .4byte gUnknown_83D427C -_08098810: - movs r0, 0x40 -_08098812: - add sp, 0x28 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddItemIconObject - - thumb_func_start AddItemIconObjectWithCustomObjectTemplate -AddItemIconObjectWithCustomObjectTemplate: @ 809881C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - mov r8, r0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - lsls r3, 16 - lsrs r7, r3, 16 - bl sub_80986EC - lsls r0, 24 - cmp r0, 0 - beq _080988D8 - adds r0, r7, 0 - movs r1, 0 - bl sub_8098974 - ldr r2, _080988C8 @ =gUnknown_2039884 - ldr r1, [r2] - bl LZDecompressWram - ldr r1, _080988C8 @ =gUnknown_2039884 - ldr r0, [r1] - ldr r2, _080988CC @ =gUnknown_2039888 - ldr r1, [r2] - bl CopyItemIconPicTo4x4Buffer - ldr r1, _080988CC @ =gUnknown_2039888 - ldr r0, [r1] - str r0, [sp, 0x18] - ldr r4, _080988D0 @ =0xffff0000 - add r0, sp, 0x18 - ldr r1, [r0, 0x4] - ands r1, r4 - movs r2, 0x80 - lsls r2, 2 - orrs r1, r2 - lsls r3, r6, 16 - ldr r2, _080988D4 @ =0x0000ffff - ands r1, r2 - orrs r1, r3 - str r1, [r0, 0x4] - bl LoadSpriteSheet - adds r0, r7, 0 - movs r1, 0x1 - bl sub_8098974 - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r4 - orrs r1, r5 - str r1, [r0, 0x4] - bl LoadCompressedObjectPalette - mov r0, r8 - mov r1, sp - movs r2, 0xC - bl CpuSet - mov r0, sp - strh r6, [r0] - strh r5, [r0, 0x2] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080988C8 @ =gUnknown_2039884 - ldr r0, [r2] - bl Free - ldr r1, _080988CC @ =gUnknown_2039888 - ldr r0, [r1] - bl Free - adds r0, r4, 0 - b _080988DA - .align 2, 0 -_080988C8: .4byte gUnknown_2039884 -_080988CC: .4byte gUnknown_2039888 -_080988D0: .4byte 0xffff0000 -_080988D4: .4byte 0x0000ffff -_080988D8: - movs r0, 0x40 -_080988DA: - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddItemIconObjectWithCustomObjectTemplate - - thumb_func_start sub_80988E8 -sub_80988E8: @ 80988E8 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08098938 @ =gUnknown_2039882 - adds r5, r1, r0 - ldrb r0, [r5] - cmp r0, 0xFF - bne _08098932 - adds r4, r1, 0 - adds r4, 0x66 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl AddItemIconObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _08098932 - strb r2, [r5] - ldr r1, _0809893C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x18 - strh r1, [r0, 0x24] - movs r1, 0x8C - strh r1, [r0, 0x26] -_08098932: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098938: .4byte gUnknown_2039882 -_0809893C: .4byte gSprites - thumb_func_end sub_80988E8 - - thumb_func_start sub_8098940 -sub_8098940: @ 8098940 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809896C @ =gUnknown_2039882 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - beq _08098964 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08098970 @ =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - movs r0, 0xFF - strb r0, [r4] -_08098964: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809896C: .4byte gUnknown_2039882 -_08098970: .4byte gSprites - thumb_func_end sub_8098940 - - thumb_func_start sub_8098974 -sub_8098974: @ 8098974 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08098998 @ =0x00000177 - cmp r3, r0 - bls _08098986 - movs r3, 0 -_08098986: - ldr r2, _0809899C @ =gUnknown_83D4294 - lsls r0, r1, 2 - lsls r1, r3, 3 - adds r0, r1 - adds r0, r2 - ldr r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_08098998: .4byte 0x00000177 -_0809899C: .4byte gUnknown_83D4294 - thumb_func_end sub_8098974 - - thumb_func_start sub_80989A0 -sub_80989A0: @ 80989A0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080989F0 @ =gUnknown_2039882 - adds r5, r1, r0 - ldrb r0, [r5] - cmp r0, 0xFF - bne _080989EA - adds r4, r1, 0 - adds r4, 0x66 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl AddItemIconObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080989EA - strb r2, [r5] - ldr r1, _080989F4 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x18 - strh r1, [r0, 0x24] - movs r1, 0x93 - strh r1, [r0, 0x26] -_080989EA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080989F0: .4byte gUnknown_2039882 -_080989F4: .4byte gSprites - thumb_func_end sub_80989A0 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_pc.s b/asm/item_pc.s deleted file mode 100644 index b222b9ca2..000000000 --- a/asm/item_pc.s +++ /dev/null @@ -1,2909 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_810D3F4 -sub_810D3F4: @ 810D3F4 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - cmp r5, 0x1 - bhi _0810D410 - ldr r6, _0810D418 @ =gUnknown_203ADBC - movs r0, 0x14 - bl Alloc - str r0, [r6] - cmp r0, 0 - bne _0810D41C -_0810D410: - adds r0, r4, 0 - bl SetMainCallback2 - b _0810D462 - .align 2, 0 -_0810D418: .4byte gUnknown_203ADBC -_0810D41C: - cmp r5, 0x1 - beq _0810D42A - ldr r0, _0810D468 @ =gUnknown_203ADCC - str r4, [r0] - movs r1, 0 - strh r1, [r0, 0x6] - strh r1, [r0, 0x4] -_0810D42A: - ldr r1, [r6] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, [r6] - movs r2, 0 - strb r2, [r0, 0x5] - ldr r1, [r6] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x8] - ldr r0, [r6] - str r2, [r0] - ldr r5, _0810D46C @ =sub_810D4A0 - adds r4, r6, 0 - movs r3, 0 -_0810D448: - ldr r0, [r4] - lsls r1, r2, 1 - adds r0, 0xC - adds r0, r1 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _0810D448 - adds r0, r5, 0 - bl SetMainCallback2 -_0810D462: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810D468: .4byte gUnknown_203ADCC -_0810D46C: .4byte sub_810D4A0 - thumb_func_end sub_810D3F4 - - thumb_func_start sub_810D470 -sub_810D470: @ 810D470 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_810D470 - - thumb_func_start sub_810D48C -sub_810D48C: @ 810D48C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_810D48C - - thumb_func_start sub_810D4A0 -sub_810D4A0: @ 810D4A0 - push {lr} -_0810D4A2: - bl sub_810D4C0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810D4BA - bl sub_80BF708 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810D4A2 -_0810D4BA: - pop {r0} - bx r0 - thumb_func_end sub_810D4A0 - - thumb_func_start sub_810D4C0 -sub_810D4C0: @ 810D4C0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0810D4E0 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x14 - bls _0810D4D4 - b _0810D688 -_0810D4D4: - lsls r0, 2 - ldr r1, _0810D4E4 @ =_0810D4E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810D4E0: .4byte gMain -_0810D4E4: .4byte _0810D4E8 - .align 2, 0 -_0810D4E8: - .4byte _0810D53C - .4byte _0810D546 - .4byte _0810D54C - .4byte _0810D552 - .4byte _0810D558 - .4byte _0810D55E - .4byte _0810D564 - .4byte _0810D56A - .4byte _0810D584 - .4byte _0810D594 - .4byte _0810D59A - .4byte _0810D5A8 - .4byte _0810D5BA - .4byte _0810D5C0 - .4byte _0810D5C6 - .4byte _0810D5CC - .4byte _0810D608 - .4byte _0810D60E - .4byte _0810D616 - .4byte _0810D630 - .4byte _0810D668 -_0810D53C: - bl sub_80BF768 - bl clear_scheduled_bg_copies_to_vram - b _0810D674 -_0810D546: - bl remove_some_task - b _0810D674 -_0810D54C: - bl FreeAllSpritePalettes - b _0810D674 -_0810D552: - bl ResetPaletteFade - b _0810D674 -_0810D558: - bl ResetSpriteData - b _0810D674 -_0810D55E: - bl sub_80984D8 - b _0810D674 -_0810D564: - bl ResetTasks - b _0810D674 -_0810D56A: - bl sub_810D71C - lsls r0, 24 - cmp r0, 0 - beq _0810D5B2 - ldr r0, _0810D580 @ =gUnknown_203ADBC - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0xC] - b _0810D674 - .align 2, 0 -_0810D580: .4byte gUnknown_203ADBC -_0810D584: - bl sub_810D78C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810D592 - b _0810D6A0 -_0810D592: - b _0810D674 -_0810D594: - bl sub_810E8F0 - b _0810D674 -_0810D59A: - bl sub_810DDA4 - bl sub_810DBF0 - bl sub_810DE08 - b _0810D674 -_0810D5A8: - bl sub_810D83C - lsls r0, 24 - cmp r0, 0 - bne _0810D674 -_0810D5B2: - bl sub_810D6AC - movs r0, 0x1 - b _0810D6A2 -_0810D5BA: - bl sub_810D878 - b _0810D674 -_0810D5C0: - bl sub_810DB34 - b _0810D674 -_0810D5C6: - bl sub_80985E4 - b _0810D674 -_0810D5CC: - ldr r0, _0810D5F8 @ =sub_810DEA0 - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810D5FC @ =gUnknown_3005E70 - ldr r2, _0810D600 @ =gUnknown_203ADCC - ldrh r1, [r2, 0x4] - ldrh r2, [r2, 0x6] - bl ListMenuInit - ldr r2, _0810D604 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x8] - b _0810D674 - .align 2, 0 -_0810D5F8: .4byte sub_810DEA0 -_0810D5FC: .4byte gUnknown_3005E70 -_0810D600: .4byte gUnknown_203ADCC -_0810D604: .4byte gTasks -_0810D608: - bl sub_810DB5C - b _0810D674 -_0810D60E: - movs r0, 0x1D - bl sub_812B1F0 - b _0810D674 -_0810D616: - ldr r0, _0810D62C @ =gUnknown_203ADCC - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _0810D674 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _0810D674 - .align 2, 0 -_0810D62C: .4byte gUnknown_203ADCC -_0810D630: - ldr r0, _0810D64C @ =gUnknown_203ADCC - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _0810D650 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _0810D674 - .align 2, 0 -_0810D64C: .4byte gUnknown_203ADCC -_0810D650: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_80A0A48 - movs r0, 0x1 - bl sub_810DE94 - movs r0, 0x2 - bl PlaySE - b _0810D674 -_0810D668: - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810D6A0 -_0810D674: - ldr r1, _0810D684 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0810D6A0 - .align 2, 0 -_0810D684: .4byte gMain -_0810D688: - ldr r0, _0810D698 @ =sub_810D48C - bl SetVBlankCallback - ldr r0, _0810D69C @ =sub_810D470 - bl SetMainCallback2 - movs r0, 0x1 - b _0810D6A2 - .align 2, 0 -_0810D698: .4byte sub_810D48C -_0810D69C: .4byte sub_810D470 -_0810D6A0: - movs r0, 0 -_0810D6A2: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810D4C0 - - thumb_func_start sub_810D6AC -sub_810D6AC: @ 810D6AC - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0810D6DC @ =sub_810D6E8 - movs r1, 0 - bl CreateTask - ldr r0, _0810D6E0 @ =sub_810D48C - bl SetVBlankCallback - ldr r0, _0810D6E4 @ =sub_810D470 - bl SetMainCallback2 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0810D6DC: .4byte sub_810D6E8 -_0810D6E0: .4byte sub_810D48C -_0810D6E4: .4byte sub_810D470 - thumb_func_end sub_810D6AC - - thumb_func_start sub_810D6E8 -sub_810D6E8: @ 810D6E8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810D714 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810D70C - ldr r0, _0810D718 @ =gUnknown_203ADCC - ldr r0, [r0] - bl SetMainCallback2 - bl sub_810DC40 - adds r0, r4, 0 - bl DestroyTask -_0810D70C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D714: .4byte gPaletteFade -_0810D718: .4byte gUnknown_203ADCC - thumb_func_end sub_810D6E8 - - thumb_func_start sub_810D71C -sub_810D71C: @ 810D71C - push {r4,r5,lr} - bl sub_80BF7C8 - ldr r5, _0810D77C @ =gUnknown_203ADC0 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - cmp r0, 0 - beq _0810D784 - movs r1, 0 - adds r2, r4, 0 - bl memset - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0810D780 @ =gUnknown_8453F6C - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - ldr r1, [r5] - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x1 - b _0810D786 - .align 2, 0 -_0810D77C: .4byte gUnknown_203ADC0 -_0810D780: .4byte gUnknown_8453F6C -_0810D784: - movs r0, 0 -_0810D786: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810D71C - - thumb_func_start sub_810D78C -sub_810D78C: @ 810D78C - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _0810D7A8 @ =gUnknown_203ADBC - ldr r0, [r5] - movs r1, 0xC - ldrsh r4, [r0, r1] - cmp r4, 0x1 - beq _0810D7D0 - cmp r4, 0x1 - bgt _0810D7AC - cmp r4, 0 - beq _0810D7B6 - b _0810D814 - .align 2, 0 -_0810D7A8: .4byte gUnknown_203ADBC -_0810D7AC: - cmp r4, 0x2 - beq _0810D7F0 - cmp r4, 0x3 - beq _0810D800 - b _0810D814 -_0810D7B6: - bl reset_temp_tile_data_buffers - ldr r1, _0810D7CC @ =gUnknown_8E85090 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _0810D806 - .align 2, 0 -_0810D7CC: .4byte gUnknown_8E85090 -_0810D7D0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810D830 - ldr r0, _0810D7E8 @ =gUnknown_8E85458 - ldr r1, _0810D7EC @ =gUnknown_203ADC0 - ldr r1, [r1] - bl LZDecompressWram - b _0810D806 - .align 2, 0 -_0810D7E8: .4byte gUnknown_8E85458 -_0810D7EC: .4byte gUnknown_203ADC0 -_0810D7F0: - ldr r0, _0810D7FC @ =gUnknown_8E85408 - movs r1, 0 - movs r2, 0x60 - bl LoadCompressedPalette - b _0810D806 - .align 2, 0 -_0810D7FC: .4byte gUnknown_8E85408 -_0810D800: - ldr r0, _0810D810 @ =gUnknown_83D4240 - bl LoadCompressedObjectPic -_0810D806: - ldr r1, [r5] - ldrh r0, [r1, 0xC] - adds r0, 0x1 - strh r0, [r1, 0xC] - b _0810D830 - .align 2, 0 -_0810D810: .4byte gUnknown_83D4240 -_0810D814: - ldr r0, _0810D828 @ =gUnknown_83D4248 - bl LoadCompressedObjectPalette - ldr r0, _0810D82C @ =gUnknown_203ADBC - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0xC] - movs r0, 0x1 - b _0810D832 - .align 2, 0 -_0810D828: .4byte gUnknown_83D4248 -_0810D82C: .4byte gUnknown_203ADBC -_0810D830: - movs r0, 0 -_0810D832: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810D78C - - thumb_func_start sub_810D83C -sub_810D83C: @ 810D83C - push {r4,lr} - ldr r4, _0810D860 @ =gUnknown_203ADC4 - movs r0, 0xF8 - bl Alloc - str r0, [r4] - cmp r0, 0 - beq _0810D868 - ldr r4, _0810D864 @ =gUnknown_203ADC8 - movs r0, 0xD9 - lsls r0, 1 - bl Alloc - str r0, [r4] - cmp r0, 0 - beq _0810D868 - movs r0, 0x1 - b _0810D872 - .align 2, 0 -_0810D860: .4byte gUnknown_203ADC4 -_0810D864: .4byte gUnknown_203ADC8 -_0810D868: - bl sub_810DC40 - bl sub_810D6AC - movs r0, 0 -_0810D872: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810D83C - - thumb_func_start sub_810D878 -sub_810D878: @ 810D878 - push {r4,r5,lr} - movs r4, 0 - b _0810D8A4 -_0810D87E: - ldr r0, _0810D938 @ =gSaveBlock1Ptr - ldr r0, [r0] - lsls r1, r4, 2 - adds r0, r1 - movs r1, 0xA6 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - bl ItemId_GetItem - ldr r1, _0810D93C @ =gUnknown_203ADC4 - ldr r2, [r1] - lsls r1, r4, 3 - adds r1, r2 - str r0, [r1] - str r4, [r1, 0x4] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_0810D8A4: - ldr r0, _0810D940 @ =gUnknown_203ADBC - ldr r0, [r0] - ldrb r0, [r0, 0x7] - cmp r4, r0 - bcc _0810D87E - ldr r0, _0810D93C @ =gUnknown_203ADC4 - ldr r3, [r0] - lsls r0, r4, 3 - adds r0, r3 - ldr r1, _0810D944 @ =gFameCheckerText_Cancel - str r1, [r0] - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - ldr r2, _0810D948 @ =gUnknown_3005E70 - str r3, [r2] - ldr r0, _0810D940 @ =gUnknown_203ADBC - ldr r3, [r0] - ldrb r0, [r3, 0x7] - adds r0, 0x1 - movs r1, 0 - strh r0, [r2, 0xC] - strb r1, [r2, 0x10] - strb r1, [r2, 0x11] - movs r0, 0x9 - strb r0, [r2, 0x12] - movs r1, 0x1 - movs r0, 0x1 - strb r0, [r2, 0x13] - ldrb r0, [r2, 0x16] - movs r4, 0x8 - negs r4, r4 - ands r4, r0 - orrs r4, r1 - movs r0, 0x39 - negs r0, r0 - ands r4, r0 - movs r0, 0x10 - orrs r4, r0 - strb r4, [r2, 0x16] - ldrb r1, [r2, 0x14] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r5, 0x2 - orrs r0, r5 - strb r0, [r2, 0x14] - ldrb r1, [r3, 0x6] - strh r1, [r2, 0xE] - ldrb r1, [r2, 0x17] - movs r3, 0x40 - negs r3, r3 - ands r3, r1 - orrs r3, r5 - movs r1, 0xF - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x14] - movs r0, 0x30 - strb r0, [r2, 0x15] - ldr r0, _0810D94C @ =sub_810D954 - str r0, [r2, 0x4] - ldr r0, _0810D950 @ =sub_810DA20 - str r0, [r2, 0x8] - movs r0, 0x3F - ands r4, r0 - strb r4, [r2, 0x16] - ands r3, r0 - strb r3, [r2, 0x17] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810D938: .4byte gSaveBlock1Ptr -_0810D93C: .4byte gUnknown_203ADC4 -_0810D940: .4byte gUnknown_203ADBC -_0810D944: .4byte gFameCheckerText_Cancel -_0810D948: .4byte gUnknown_3005E70 -_0810D94C: .4byte sub_810D954 -_0810D950: .4byte sub_810DA20 - thumb_func_end sub_810D878 - - thumb_func_start sub_810D954 -sub_810D954: @ 810D954 - push {r4,r5,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _0810D968 - movs r0, 0x5 - bl PlaySE -_0810D968: - ldr r5, _0810D9BC @ =gUnknown_203ADBC - ldr r1, [r5] - ldrb r0, [r1, 0x4] - cmp r0, 0xFF - bne _0810DA0A - ldrb r1, [r1, 0x5] - movs r0, 0x1 - eors r0, r1 - bl sub_8098940 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0810D9CE - lsls r0, r4, 16 - lsrs r0, 16 - bl sub_810DD68 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r5] - ldrb r1, [r0, 0x5] - adds r0, r4, 0 - bl sub_80988E8 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0810D9C4 - adds r0, r4, 0 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, _0810D9C0 @ =gMoveNames - adds r5, r1, r0 - b _0810D9DA - .align 2, 0 -_0810D9BC: .4byte gUnknown_203ADBC -_0810D9C0: .4byte gMoveNames -_0810D9C4: - adds r0, r4, 0 - bl ItemId_GetDescription - adds r5, r0, 0 - b _0810D9DA -_0810D9CE: - ldr r0, _0810DA14 @ =0x00000177 - ldr r1, [r5] - ldrb r1, [r1, 0x5] - bl sub_80988E8 - ldr r5, _0810DA18 @ =gUnknown_84178BE -_0810D9DA: - ldr r0, _0810DA1C @ =gUnknown_203ADBC - ldr r2, [r0] - ldrb r0, [r2, 0x5] - movs r1, 0x1 - eors r0, r1 - movs r4, 0 - strb r0, [r2, 0x5] - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0x3 - str r1, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r1, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl sub_810EA34 -_0810DA0A: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DA14: .4byte 0x00000177 -_0810DA18: .4byte gUnknown_84178BE -_0810DA1C: .4byte gUnknown_203ADBC - thumb_func_end sub_810D954 - - thumb_func_start sub_810DA20 -sub_810DA20: @ 810DA20 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r0, _0810DA4C @ =gUnknown_203ADBC - ldr r0, [r0] - ldrb r1, [r0, 0x4] - cmp r1, 0xFF - beq _0810DA58 - lsls r0, r4, 24 - lsrs r0, 24 - cmp r1, r0 - bne _0810DA50 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_810DAD4 - b _0810DA58 - .align 2, 0 -_0810DA4C: .4byte gUnknown_203ADBC -_0810DA50: - adds r0, r5, 0 - movs r1, 0xFF - bl sub_810DAD4 -_0810DA58: - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0810DA9E - lsls r0, r4, 16 - lsrs r0, 16 - bl sub_810DD80 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _0810DAA8 @ =gStringVar1 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _0810DAAC @ =gStringVar4 - ldr r1, _0810DAB0 @ =gUnknown_84162B9 - adds r0, r4, 0 - bl StringExpandPlaceholders - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - adds r0, r6, 0 - movs r1, 0 - adds r2, r4, 0 - movs r3, 0x6E - bl sub_810EA34 -_0810DA9E: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810DAA8: .4byte gStringVar1 -_0810DAAC: .4byte gStringVar4 -_0810DAB0: .4byte gUnknown_84162B9 - thumb_func_end sub_810DA20 - - thumb_func_start sub_810DAB4 -sub_810DAB4: @ 810DAB4 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_810DAD4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810DAB4 - - thumb_func_start sub_810DAD4 -sub_810DAD4: @ 810DAD4 - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0xFF - bne _0810DB10 - movs r0, 0x2 - movs r1, 0 - bl GetFontAttribute - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl FillWindowPixelRect - b _0810DB26 -_0810DB10: - ldr r2, _0810DB30 @ =gFameCheckerText_ListMenuCursor - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0 - bl sub_810EA34 -_0810DB26: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DB30: .4byte gFameCheckerText_ListMenuCursor - thumb_func_end sub_810DAD4 - - thumb_func_start sub_810DB34 -sub_810DB34: @ 810DB34 - push {lr} - sub sp, 0x14 - ldr r2, _0810DB58 @ =gUnknown_84178A7 - movs r1, 0x1 - str r1, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x2 - movs r1, 0 - movs r3, 0 - bl sub_810EA34 - add sp, 0x14 - pop {r0} - bx r0 - .align 2, 0 -_0810DB58: .4byte gUnknown_84178A7 - thumb_func_end sub_810DB34 - - thumb_func_start sub_810DB5C -sub_810DB5C: @ 810DB5C - push {r4,lr} - sub sp, 0x10 - ldr r4, _0810DB90 @ =gUnknown_203ADBC - ldr r1, [r4] - ldrb r0, [r1, 0x7] - ldrb r1, [r1, 0x6] - subs r0, r1 - adds r0, 0x1 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldr r0, _0810DB94 @ =gUnknown_203ADD0 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x80 - movs r2, 0x8 - movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DB90: .4byte gUnknown_203ADBC -_0810DB94: .4byte gUnknown_203ADD0 - thumb_func_end sub_810DB5C - - thumb_func_start sub_810DB98 -sub_810DB98: @ 810DB98 - push {r4,lr} - sub sp, 0x10 - ldr r4, _0810DBCC @ =gUnknown_203ADBC - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0xA] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0xA - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xD4 - movs r2, 0x78 - movs r3, 0x98 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DBCC: .4byte gUnknown_203ADBC - thumb_func_end sub_810DB98 - - thumb_func_start sub_810DBD0 -sub_810DBD0: @ 810DBD0 - push {r4,lr} - ldr r4, _0810DBEC @ =gUnknown_203ADBC - ldr r1, [r4] - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _0810DBE6 - bl RemoveScrollIndicatorArrowPair - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x8] -_0810DBE6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DBEC: .4byte gUnknown_203ADBC - thumb_func_end sub_810DBD0 - - thumb_func_start sub_810DBF0 -sub_810DBF0: @ 810DBF0 - push {r4,r5,lr} - ldr r0, _0810DC30 @ =gUnknown_203ADCC - ldrh r1, [r0, 0x4] - adds r4, r0, 0 - ldr r5, _0810DC34 @ =gUnknown_203ADBC - cmp r1, 0 - beq _0810DC14 - ldrh r0, [r4, 0x4] - ldr r1, [r5] - ldrb r3, [r1, 0x6] - adds r0, r3 - ldrb r2, [r1, 0x7] - adds r1, r2, 0x1 - cmp r0, r1 - ble _0810DC14 - subs r0, r3, 0x1 - subs r0, r2, r0 - strh r0, [r4, 0x4] -_0810DC14: - adds r3, r4, 0 - ldrh r0, [r3, 0x4] - ldrh r1, [r3, 0x6] - adds r0, r1 - ldr r1, [r5] - ldrb r1, [r1, 0x7] - adds r2, r1, 0x1 - cmp r0, r2 - blt _0810DC3A - cmp r2, 0x1 - bgt _0810DC38 - movs r0, 0 - strh r0, [r3, 0x6] - b _0810DC3A - .align 2, 0 -_0810DC30: .4byte gUnknown_203ADCC -_0810DC34: .4byte gUnknown_203ADBC -_0810DC38: - strh r1, [r4, 0x6] -_0810DC3A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810DBF0 - - thumb_func_start sub_810DC40 -sub_810DC40: @ 810DC40 - push {lr} - ldr r0, _0810DC7C @ =gUnknown_203ADBC - ldr r0, [r0] - cmp r0, 0 - beq _0810DC4E - bl Free -_0810DC4E: - ldr r0, _0810DC80 @ =gUnknown_203ADC0 - ldr r0, [r0] - cmp r0, 0 - beq _0810DC5A - bl Free -_0810DC5A: - ldr r0, _0810DC84 @ =gUnknown_203ADC4 - ldr r0, [r0] - cmp r0, 0 - beq _0810DC66 - bl Free -_0810DC66: - ldr r0, _0810DC88 @ =gUnknown_203ADC8 - ldr r0, [r0] - cmp r0, 0 - beq _0810DC72 - bl Free -_0810DC72: - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .align 2, 0 -_0810DC7C: .4byte gUnknown_203ADBC -_0810DC80: .4byte gUnknown_203ADC0 -_0810DC84: .4byte gUnknown_203ADC4 -_0810DC88: .4byte gUnknown_203ADC8 - thumb_func_end sub_810DC40 - - thumb_func_start sub_810DC8C -sub_810DC8C: @ 810DC8C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810DCB0 @ =gUnknown_203ADCC - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _0810DCB4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0810DCC4 - .align 2, 0 -_0810DCB0: .4byte gUnknown_203ADCC -_0810DCB4: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_80A0A70 - movs r0, 0x3 - bl PlaySE -_0810DCC4: - ldr r0, _0810DCDC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0810DCE0 @ =sub_810DCE4 - str r0, [r1] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DCDC: .4byte gTasks -_0810DCE0: .4byte sub_810DCE4 - thumb_func_end sub_810DC8C - - thumb_func_start sub_810DCE4 -sub_810DCE4: @ 810DCE4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810DD28 @ =gTasks+0x8 - adds r4, r0, r1 - ldr r0, _0810DD2C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810DD4E - bl sub_80A0AAC - lsls r0, 24 - cmp r0, 0 - bne _0810DD4E - ldrb r0, [r4] - ldr r4, _0810DD30 @ =gUnknown_203ADD0 - adds r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - ldr r0, _0810DD34 @ =gUnknown_203ADBC - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _0810DD38 - bl SetMainCallback2 - b _0810DD40 - .align 2, 0 -_0810DD28: .4byte gTasks+0x8 -_0810DD2C: .4byte gPaletteFade -_0810DD30: .4byte gUnknown_203ADD0 -_0810DD34: .4byte gUnknown_203ADBC -_0810DD38: - subs r0, r4, 0x4 - ldr r0, [r0] - bl SetMainCallback2 -_0810DD40: - bl sub_810DBD0 - bl sub_810DC40 - adds r0, r5, 0 - bl DestroyTask -_0810DD4E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810DCE4 - - thumb_func_start sub_810DD54 -sub_810DD54: @ 810DD54 - ldr r1, _0810DD64 @ =gUnknown_203ADCC - ldrb r0, [r1, 0x6] - ldrb r1, [r1, 0x4] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_0810DD64: .4byte gUnknown_203ADCC - thumb_func_end sub_810DD54 - - thumb_func_start sub_810DD68 -sub_810DD68: @ 810DD68 - lsls r0, 16 - ldr r1, _0810DD7C @ =gSaveBlock1Ptr - ldr r1, [r1] - lsrs r0, 14 - adds r1, r0 - movs r0, 0xA6 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - bx lr - .align 2, 0 -_0810DD7C: .4byte gSaveBlock1Ptr - thumb_func_end sub_810DD68 - - thumb_func_start sub_810DD80 -sub_810DD80: @ 810DD80 - push {lr} - lsls r0, 16 - ldr r1, _0810DD9C @ =gSaveBlock1Ptr - lsrs r0, 14 - ldr r1, [r1] - adds r0, r1 - ldr r1, _0810DDA0 @ =0x0000029a - adds r0, r1 - bl GetBagItemId - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0810DD9C: .4byte gSaveBlock1Ptr -_0810DDA0: .4byte 0x0000029a - thumb_func_end sub_810DD80 - - thumb_func_start sub_810DDA4 -sub_810DDA4: @ 810DDA4 - push {r4,r5,lr} - bl sub_809A4E8 - ldr r4, _0810DE00 @ =gUnknown_203ADBC - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0x7] - movs r2, 0 - ldr r3, _0810DE04 @ =gSaveBlock1Ptr - ldr r0, [r3] - movs r1, 0xA6 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0810DDEA - adds r5, r4, 0 - adds r4, r3, 0 - adds r3, r1, 0 -_0810DDCA: - ldr r0, [r5] - ldrb r1, [r0, 0x7] - adds r1, 0x1 - strb r1, [r0, 0x7] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bhi _0810DDEA - ldr r0, [r4] - lsls r1, r2, 2 - adds r0, r1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _0810DDCA -_0810DDEA: - ldr r0, _0810DE00 @ =gUnknown_203ADBC - ldr r1, [r0] - ldrb r0, [r1, 0x7] - adds r0, 0x1 - cmp r0, 0x6 - ble _0810DDF8 - movs r0, 0x6 -_0810DDF8: - strb r0, [r1, 0x6] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DE00: .4byte gUnknown_203ADBC -_0810DE04: .4byte gSaveBlock1Ptr - thumb_func_end sub_810DDA4 - - thumb_func_start sub_810DE08 -sub_810DE08: @ 810DE08 - push {r4-r6,lr} - ldr r0, _0810DE64 @ =gUnknown_203ADCC - ldrh r1, [r0, 0x6] - adds r6, r0, 0 - cmp r1, 0x3 - bls _0810DE5C - movs r4, 0 - ldrh r0, [r6, 0x6] - subs r0, 0x3 - cmp r4, r0 - bgt _0810DE5C - ldrh r1, [r6, 0x4] - ldr r5, _0810DE68 @ =gUnknown_203ADBC - ldr r2, [r5] - ldrb r0, [r2, 0x6] - adds r1, r0 - ldrb r0, [r2, 0x7] - adds r0, 0x1 - cmp r1, r0 - beq _0810DE5C - adds r3, r6, 0 -_0810DE32: - ldrh r0, [r3, 0x6] - subs r0, 0x1 - strh r0, [r3, 0x6] - ldrh r0, [r3, 0x4] - adds r0, 0x1 - strh r0, [r3, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r0, [r3, 0x6] - subs r0, 0x3 - cmp r4, r0 - bgt _0810DE5C - ldrh r1, [r6, 0x4] - ldr r2, [r5] - ldrb r0, [r2, 0x6] - adds r1, r0 - ldrb r0, [r2, 0x7] - adds r0, 0x1 - cmp r1, r0 - bne _0810DE32 -_0810DE5C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810DE64: .4byte gUnknown_203ADCC -_0810DE68: .4byte gUnknown_203ADBC - thumb_func_end sub_810DE08 - - thumb_func_start sub_810DE6C -sub_810DE6C: @ 810DE6C - push {lr} - sub sp, 0x8 - movs r1, 0x6 - str r1, [sp] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0xE - movs r3, 0x1E - bl sub_80F6B08 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_810DE6C - - thumb_func_start sub_810DE94 -sub_810DE94: @ 810DE94 - ldr r1, _0810DE9C @ =gUnknown_203ADCC - strb r0, [r1, 0x8] - bx lr - .align 2, 0 -_0810DE9C: .4byte gUnknown_203ADCC - thumb_func_end sub_810DE94 - - thumb_func_start sub_810DEA0 -sub_810DEA0: @ 810DEA0 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810DF10 @ =gTasks+0x8 - adds r6, r0, r1 - ldr r0, _0810DF14 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810DF9E - bl sub_80A0A98 - lsls r0, 24 - cmp r0, 0 - bne _0810DF9E - ldr r0, _0810DF18 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0810DF20 - ldrb r0, [r6] - mov r4, sp - adds r4, 0x2 - mov r1, sp - adds r2, r4, 0 - bl get_coro_args_x18_x1A - mov r0, sp - ldrh r1, [r0] - ldrh r0, [r4] - adds r1, r0 - ldr r0, _0810DF1C @ =gUnknown_203ADBC - ldr r0, [r0] - ldrb r0, [r0, 0x7] - cmp r1, r0 - beq _0810DF20 - movs r0, 0x5 - bl PlaySE - mov r0, sp - ldrh r1, [r4] - ldrh r0, [r0] - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_810DFE0 - b _0810DF9E - .align 2, 0 -_0810DF10: .4byte gTasks+0x8 -_0810DF14: .4byte gPaletteFade -_0810DF18: .4byte gMain -_0810DF1C: .4byte gUnknown_203ADBC -_0810DF20: - ldrb r0, [r6] - bl ListMenuHandleInput - adds r4, r0, 0 - ldrb r0, [r6] - ldr r1, _0810DF44 @ =gUnknown_203ADD0 - adds r2, r1, 0x2 - bl get_coro_args_x18_x1A - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0810DF48 - adds r0, 0x1 - cmp r4, r0 - bne _0810DF6C - b _0810DF9E - .align 2, 0 -_0810DF44: .4byte gUnknown_203ADD0 -_0810DF48: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_810DE94 - ldr r0, _0810DF64 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0810DF68 @ =sub_810DC8C - str r0, [r1] - b _0810DF9E - .align 2, 0 -_0810DF64: .4byte gTasks -_0810DF68: .4byte sub_810DC8C -_0810DF6C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_810DE6C - bl sub_810DBD0 - strh r4, [r6, 0x2] - lsls r0, r4, 16 - lsrs r0, 16 - bl sub_810DD80 - strh r0, [r6, 0x4] - ldrb r0, [r6] - movs r1, 0x2 - bl sub_810DAB4 - ldr r1, _0810DFA8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810DFAC @ =sub_810E274 - str r1, [r0] -_0810DF9E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810DFA8: .4byte gTasks -_0810DFAC: .4byte sub_810E274 - thumb_func_end sub_810DEA0 - - thumb_func_start sub_810DFB0 -sub_810DFB0: @ 810DFB0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_810DE6C - bl sub_810DB5C - ldr r1, _0810DFD8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810DFDC @ =sub_810DEA0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DFD8: .4byte gTasks -_0810DFDC: .4byte sub_810DEA0 - thumb_func_end sub_810DFB0 - - thumb_func_start sub_810DFE0 -sub_810DFE0: @ 810DFE0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, r0, 2 - adds r5, r0 - lsls r5, 3 - ldr r0, _0810E09C @ =gTasks+0x8 - mov r8, r0 - adds r6, r5, r0 - ldrb r0, [r6] - movs r1, 0x10 - movs r2, 0x1 - bl sub_8107BD0 - strh r4, [r6, 0x2] - ldr r0, _0810E0A0 @ =gUnknown_203ADBC - ldr r0, [r0] - movs r1, 0 - mov r9, r1 - strb r4, [r0, 0x4] - ldr r4, _0810E0A4 @ =gStringVar1 - ldrh r0, [r6, 0x2] - bl sub_810DD68 - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r4, _0810E0A8 @ =gStringVar4 - ldr r1, _0810E0AC @ =gUnknown_841633F - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0x3 - str r1, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - mov r0, r9 - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl sub_810EA34 - movs r4, 0x20 - negs r4, r4 - ldrb r0, [r6] - bl ListMenuGetYCoordForPrintingArrowCursor - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_80986A8 - movs r0, 0 - bl sub_8098660 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_810DAB4 - movs r1, 0x8 - negs r1, r1 - add r8, r1 - add r5, r8 - ldr r0, _0810E0B0 @ =sub_810E0B4 - str r0, [r5] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E09C: .4byte gTasks+0x8 -_0810E0A0: .4byte gUnknown_203ADBC -_0810E0A4: .4byte gStringVar1 -_0810E0A8: .4byte gStringVar4 -_0810E0AC: .4byte gUnknown_841633F -_0810E0B0: .4byte sub_810E0B4 - thumb_func_end sub_810DFE0 - - thumb_func_start sub_810E0B4 -sub_810E0B4: @ 810E0B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - mov r8, r6 - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - ldr r0, _0810E11C @ =gTasks+0x8 - adds r4, r0 - ldrb r0, [r4] - bl ListMenuHandleInput - ldrb r0, [r4] - ldr r7, _0810E120 @ =gUnknown_203ADD0 - adds r2, r7, 0x2 - adds r1, r7, 0 - bl get_coro_args_x18_x1A - movs r5, 0x20 - negs r5, r5 - ldrb r0, [r4] - bl ListMenuGetYCoordForPrintingArrowCursor - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_80986A8 - ldr r0, _0810E124 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x5 - ands r0, r1 - cmp r0, 0 - beq _0810E12C - movs r0, 0x5 - bl PlaySE - ldr r0, _0810E128 @ =gUnknown_203ADBC - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1, 0x4] - subs r0, r7, 0x4 - ldrh r1, [r0, 0x4] - ldrh r0, [r0, 0x6] - adds r1, r0 - adds r0, r6, 0 - bl sub_810E160 - b _0810E150 - .align 2, 0 -_0810E11C: .4byte gTasks+0x8 -_0810E120: .4byte gUnknown_203ADD0 -_0810E124: .4byte gMain -_0810E128: .4byte gUnknown_203ADBC -_0810E12C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810E150 - movs r0, 0x5 - bl PlaySE - ldr r0, _0810E15C @ =gUnknown_203ADBC - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1, 0x4] - subs r0, r7, 0x4 - ldrh r1, [r0, 0x4] - ldrh r0, [r0, 0x6] - adds r1, r0 - mov r0, r8 - bl sub_810E200 -_0810E150: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E15C: .4byte gUnknown_203ADBC - thumb_func_end sub_810E0B4 - - thumb_func_start sub_810E160 -sub_810E160: @ 810E160 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r1, 0 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r7, r0, 3 - ldr r0, _0810E190 @ =gTasks+0x8 - mov r8, r0 - adds r6, r7, r0 - movs r0, 0x2 - ldrsh r1, [r6, r0] - cmp r1, r4 - beq _0810E186 - subs r0, r4, 0x1 - cmp r1, r0 - bne _0810E194 -_0810E186: - adds r0, r2, 0 - adds r1, r4, 0 - bl sub_810E200 - b _0810E1E6 - .align 2, 0 -_0810E190: .4byte gTasks+0x8 -_0810E194: - ldr r0, _0810E1F0 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r2, 0xA6 - lsls r2, 2 - adds r0, r2 - adds r2, r4, 0 - bl sub_8108D60 - ldrb r0, [r6] - ldr r5, _0810E1F4 @ =gUnknown_203ADD0 - adds r2, r5, 0x2 - adds r1, r5, 0 - bl sub_810713C - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, r4 - bcs _0810E1C0 - subs r1, r5, 0x4 - ldrh r0, [r1, 0x6] - subs r0, 0x1 - strh r0, [r1, 0x6] -_0810E1C0: - bl sub_810D878 - ldr r0, _0810E1F8 @ =gUnknown_3005E70 - subs r2, r5, 0x4 - ldrh r1, [r2, 0x4] - ldrh r2, [r2, 0x6] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6] - movs r0, 0x1 - bl sub_8098660 - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _0810E1FC @ =sub_810DEA0 - str r1, [r0] -_0810E1E6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E1F0: .4byte gSaveBlock1Ptr -_0810E1F4: .4byte gUnknown_203ADD0 -_0810E1F8: .4byte gUnknown_3005E70 -_0810E1FC: .4byte sub_810DEA0 - thumb_func_end sub_810E160 - - thumb_func_start sub_810E200 -sub_810E200: @ 810E200 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r7, r1, 3 - ldr r0, _0810E264 @ =gTasks+0x8 - mov r8, r0 - adds r6, r7, r0 - ldrb r0, [r6] - ldr r5, _0810E268 @ =gUnknown_203ADD0 - adds r2, r5, 0x2 - adds r1, r5, 0 - bl sub_810713C - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, r4 - bcs _0810E234 - subs r1, r5, 0x4 - ldrh r0, [r1, 0x6] - subs r0, 0x1 - strh r0, [r1, 0x6] -_0810E234: - bl sub_810D878 - ldr r0, _0810E26C @ =gUnknown_3005E70 - subs r2, r5, 0x4 - ldrh r1, [r2, 0x4] - ldrh r2, [r2, 0x6] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6] - movs r0, 0x1 - bl sub_8098660 - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _0810E270 @ =sub_810DEA0 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E264: .4byte gTasks+0x8 -_0810E268: .4byte gUnknown_203ADD0 -_0810E26C: .4byte gUnknown_3005E70 -_0810E270: .4byte sub_810DEA0 - thumb_func_end sub_810E200 - - thumb_func_start sub_810E274 -sub_810E274: @ 810E274 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0810E340 @ =gTasks+0x8 - mov r9, r0 - adds r6, r4, r0 - movs r0, 0x4 - bl sub_810EA9C - movs r0, 0 - bl sub_810EAB4 - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r5, 0x3 - str r5, [sp, 0x4] - ldr r0, _0810E344 @ =gUnknown_8453F74 - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x2 - movs r2, 0x8 - movs r3, 0x2 - bl PrintTextArray - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - str r5, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl sub_810F7D8 - ldrh r0, [r6, 0x2] - bl sub_810DD68 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0810E348 @ =gStringVar1 - bl sub_8099E90 - ldr r6, _0810E34C @ =gStringVar4 - ldr r1, _0810E350 @ =gUnknown_84162FF - adds r0, r6, 0 - bl StringExpandPlaceholders - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r5, [sp, 0xC] - str r0, [sp, 0x10] - mov r0, r8 - movs r1, 0x2 - adds r2, r6, 0 - movs r3, 0 - bl sub_810EA34 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x8 - negs r0, r0 - add r9, r0 - add r4, r9 - ldr r0, _0810E354 @ =sub_810E358 - str r0, [r4] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E340: .4byte gTasks+0x8 -_0810E344: .4byte gUnknown_8453F74 -_0810E348: .4byte gStringVar1 -_0810E34C: .4byte gStringVar4 -_0810E350: .4byte gUnknown_84162FF -_0810E354: .4byte sub_810E358 - thumb_func_end sub_810E274 - - thumb_func_start sub_810E358 -sub_810E358: @ 810E358 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl ProcessMenuInputNoWrapAround - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0810E39A - adds r0, 0x1 - cmp r4, r0 - bne _0810E384 - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_810E8A0 - b _0810E39A -_0810E384: - movs r0, 0x5 - bl PlaySE - ldr r0, _0810E3A0 @ =gUnknown_8453F74 - lsls r1, r4, 3 - adds r0, 0x4 - adds r1, r0 - ldr r1, [r1] - adds r0, r6, 0 - bl _call_via_r1 -_0810E39A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E3A0: .4byte gUnknown_8453F74 - thumb_func_end sub_810E358 - - thumb_func_start sub_810E3A4 -sub_810E3A4: @ 810E3A4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _0810E3F0 @ =gTasks+0x8 - adds r4, r6, r7 - movs r0, 0x4 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0 - bl sub_810EAF0 - movs r0, 0x4 - bl ClearWindowTilemap - movs r0, 0x1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x2] - bl sub_810DD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0810E3F4 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_810E418 - b _0810E40E - .align 2, 0 -_0810E3F0: .4byte gTasks+0x8 -_0810E3F4: - movs r0, 0 - bl PutWindowTilemap - ldrh r0, [r4, 0x2] - bl sub_810E5E0 - bl sub_810DB98 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0810E414 @ =sub_810E6D8 - str r1, [r0] -_0810E40E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E414: .4byte sub_810E6D8 - thumb_func_end sub_810E3A4 - - thumb_func_start sub_810E418 -sub_810E418: @ 810E418 - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _0810E49C @ =gTasks+0x8 - adds r5, r6, r7 - ldrh r0, [r5, 0x2] - bl sub_810DD68 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r1, [r5, 0x10] - adds r0, r4, 0 - bl sub_809A084 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810E4B8 - ldr r3, _0810E4A0 @ =0x0000ffff - movs r0, 0x1D - movs r1, 0 - adds r2, r4, 0 - bl sub_80A2294 - ldr r1, _0810E4A4 @ =gStringVar1 - adds r0, r4, 0 - bl sub_8099E90 - ldr r0, _0810E4A8 @ =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r5, r2] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _0810E4AC @ =gStringVar4 - ldr r1, _0810E4B0 @ =gUnknown_84177C5 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x2 - bl sub_810EAB4 - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl AddTextPrinterParameterized - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0810E4B4 @ =sub_810E4F4 - b _0810E4E0 - .align 2, 0 -_0810E49C: .4byte gTasks+0x8 -_0810E4A0: .4byte 0x0000ffff -_0810E4A4: .4byte gStringVar1 -_0810E4A8: .4byte gStringVar2 -_0810E4AC: .4byte gStringVar4 -_0810E4B0: .4byte gUnknown_84177C5 -_0810E4B4: .4byte sub_810E4F4 -_0810E4B8: - movs r0, 0x2 - bl sub_810EAB4 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, _0810E4EC @ =gUnknown_841778A - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0810E4F0 @ =sub_810E548 -_0810E4E0: - str r1, [r0] - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E4EC: .4byte gUnknown_841778A -_0810E4F0: .4byte sub_810E548 - thumb_func_end sub_810E418 - - thumb_func_start sub_810E4F4 -sub_810E4F4: @ 810E4F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0810E540 @ =gTasks+0x8 - adds r5, r0, r1 - ldr r0, _0810E544 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810E51A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810E53A -_0810E51A: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r5, 0x2] - bl sub_810DD68 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r5, 0x10] - bl sub_809A460 - bl sub_809A4E8 - adds r0, r4, 0 - bl sub_810E578 -_0810E53A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E540: .4byte gTasks+0x8 -_0810E544: .4byte gMain - thumb_func_end sub_810E4F4 - - thumb_func_start sub_810E548 -sub_810E548: @ 810E548 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810E574 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810E562 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810E56E -_0810E562: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_810E578 -_0810E56E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E574: .4byte gMain - thumb_func_end sub_810E548 - - thumb_func_start sub_810E578 -sub_810E578: @ 810E578 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - ldr r0, _0810E5D4 @ =gTasks+0x8 - adds r5, r0 - movs r0, 0x2 - bl sub_810EAF0 - movs r0, 0x1 - bl PutWindowTilemap - ldrb r0, [r5] - ldr r4, _0810E5D8 @ =gUnknown_203ADD0 - adds r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - bl sub_810DDA4 - bl sub_810DBF0 - bl sub_810D878 - ldr r0, _0810E5DC @ =gUnknown_3005E70 - subs r4, 0x4 - ldrh r1, [r4, 0x4] - ldrh r2, [r4, 0x6] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl sub_810DFB0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E5D4: .4byte gTasks+0x8 -_0810E5D8: .4byte gUnknown_203ADD0 -_0810E5DC: .4byte gUnknown_3005E70 - thumb_func_end sub_810E578 - - thumb_func_start sub_810E5E0 -sub_810E5E0: @ 810E5E0 - push {r4-r6,lr} - sub sp, 0x14 - lsls r0, 16 - lsrs r0, 16 - bl sub_810DD68 - lsls r0, 16 - lsrs r0, 16 - ldr r6, _0810E660 @ =gStringVar1 - adds r1, r6, 0 - bl sub_8099E90 - ldr r5, _0810E664 @ =gStringVar4 - ldr r1, _0810E668 @ =gUnknown_84177AC - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - bl sub_810EAB4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r2, r5, 0 - movs r3, 0 - bl AddTextPrinterParameterized - adds r0, r6, 0 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r1, _0810E66C @ =gUnknown_84162B9 - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0x3 - bl sub_810EA9C - movs r0, 0xA - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x3 - movs r1, 0 - adds r2, r5, 0 - movs r3, 0x8 - bl sub_810EA34 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E660: .4byte gStringVar1 -_0810E664: .4byte gStringVar4 -_0810E668: .4byte gUnknown_84177AC -_0810E66C: .4byte gUnknown_84162B9 - thumb_func_end sub_810E5E0 - - thumb_func_start sub_810E670 -sub_810E670: @ 810E670 - push {r4,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x1C - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0x3 - movs r1, 0x11 - movs r2, 0xA - movs r3, 0xA - bl FillWindowPixelRect - ldr r0, _0810E6CC @ =gStringVar1 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _0810E6D0 @ =gStringVar4 - ldr r1, _0810E6D4 @ =gUnknown_84162B9 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r0, 0x3 - movs r1, 0 - adds r2, r4, 0 - movs r3, 0x8 - bl sub_810EA34 - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E6CC: .4byte gStringVar1 -_0810E6D0: .4byte gStringVar4 -_0810E6D4: .4byte gUnknown_84162B9 - thumb_func_end sub_810E670 - - thumb_func_start sub_810E6D8 -sub_810E6D8: @ 810E6D8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810E708 @ =gTasks+0x8 - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x10 - ldrh r1, [r4, 0x4] - bl sub_80BF848 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810E70C - movs r1, 0x10 - ldrsh r0, [r4, r1] - bl sub_810E670 - b _0810E796 - .align 2, 0 -_0810E708: .4byte gTasks+0x8 -_0810E70C: - ldr r0, _0810E74C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810E750 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_810EAF0 - movs r0, 0x3 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_810DAB4 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - bl sub_810DBD0 - adds r0, r5, 0 - bl sub_810E418 - b _0810E796 - .align 2, 0 -_0810E74C: .4byte gMain -_0810E750: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810E796 - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x1 - bl sub_810EAF0 - movs r0, 0x3 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_810DAB4 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - bl sub_810DBD0 - adds r0, r6, 0 - bl sub_810DFB0 -_0810E796: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810E6D8 - - thumb_func_start sub_810E79C -sub_810E79C: @ 810E79C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _0810E7DC - movs r0, 0x4 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0 - bl sub_810EAF0 - movs r0, 0x4 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - ldr r1, _0810E7D4 @ =gUnknown_841632A - ldr r2, _0810E7D8 @ =sub_810E848 - adds r0, r4, 0 - bl sub_810EB30 - b _0810E7EA - .align 2, 0 -_0810E7D4: .4byte gUnknown_841632A -_0810E7D8: .4byte sub_810E848 -_0810E7DC: - ldr r0, _0810E7F0 @ =gUnknown_203ADBC - ldr r1, [r0] - ldr r0, _0810E7F4 @ =sub_810E7F8 - str r0, [r1] - adds r0, r4, 0 - bl sub_810DC8C -_0810E7EA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E7F0: .4byte gUnknown_203ADBC -_0810E7F4: .4byte sub_810E7F8 - thumb_func_end sub_810E79C - - thumb_func_start sub_810E7F8 -sub_810E7F8: @ 810E7F8 - push {lr} - sub sp, 0xC - movs r0, 0x6 - str r0, [sp] - ldr r0, _0810E82C @ =sub_811FB28 - str r0, [sp, 0x4] - ldr r0, _0810E830 @ =sub_810E838 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x6 - movs r3, 0 - bl sub_811EA44 - bl sub_810DD54 - lsls r0, 24 - lsrs r0, 24 - bl sub_810DD68 - ldr r1, _0810E834 @ =gUnknown_203B0A0 - strh r0, [r1, 0xC] - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_0810E82C: .4byte sub_811FB28 -_0810E830: .4byte sub_810E838 -_0810E834: .4byte gUnknown_203B0A0 - thumb_func_end sub_810E7F8 - - thumb_func_start sub_810E838 -sub_810E838: @ 810E838 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl sub_810D3F4 - pop {r0} - bx r0 - thumb_func_end sub_810E838 - - thumb_func_start sub_810E848 -sub_810E848: @ 810E848 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0810E898 @ =gTasks+0x8 - adds r5, r0, r1 - ldr r0, _0810E89C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810E892 - movs r0, 0x5 - bl PlaySE - movs r0, 0x5 - movs r1, 0 - bl sub_810F260 - movs r0, 0x5 - bl ClearWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - ldrb r0, [r5] - movs r1, 0x1 - bl sub_810DAB4 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r4, 0 - bl sub_810DFB0 -_0810E892: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E898: .4byte gTasks+0x8 -_0810E89C: .4byte gMain - thumb_func_end sub_810E848 - - thumb_func_start sub_810E8A0 -sub_810E8A0: @ 810E8A0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _0810E8EC @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x4 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0 - bl sub_810EAF0 - movs r0, 0x4 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_810DAB4 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_810DFB0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E8EC: .4byte gTasks+0x8 - thumb_func_end sub_810E8A0 - - thumb_func_start sub_810E8F0 -sub_810E8F0: @ 810E8F0 - push {r4,lr} - ldr r0, _0810E974 @ =gUnknown_8453F98 - bl InitWindows - bl DeactivateAllTextPrinters - movs r1, 0xF0 - lsls r1, 2 - movs r0, 0 - movs r2, 0xE0 - bl sub_815001C - ldr r1, _0810E978 @ =0x000003a3 - movs r0, 0 - movs r2, 0xC0 - bl sub_814FF2C - movs r1, 0xEB - lsls r1, 2 - movs r0, 0 - movs r2, 0xB0 - bl sub_814FEAC - movs r0, 0x2 - bl stdpal_get - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0810E97C @ =gUnknown_841F408 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0 -_0810E938: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0810E938 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r4, 0 - ldr r3, _0810E980 @ =gUnknown_203ADD8 - movs r2, 0xFF -_0810E95C: - adds r0, r4, r3 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0810E95C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E974: .4byte gUnknown_8453F98 -_0810E978: .4byte 0x000003a3 -_0810E97C: .4byte gUnknown_841F408 -_0810E980: .4byte gUnknown_203ADD8 - thumb_func_end sub_810E8F0 - - thumb_func_start sub_810E984 -sub_810E984: @ 810E984 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - ldr r6, [sp, 0x28] - ldr r4, [sp, 0x2C] - mov r8, r4 - ldr r4, [sp, 0x30] - mov r9, r4 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r4, r8 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - mov r4, r9 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - str r1, [sp] - mov r1, sp - strb r0, [r1, 0x4] - movs r0, 0x3 - strb r0, [r1, 0x5] - mov r0, sp - strb r2, [r0, 0x6] - strb r3, [r0, 0x7] - strb r2, [r0, 0x8] - strb r3, [r0, 0x9] - mov r2, sp - ldrb r1, [r2, 0xC] - movs r5, 0xF - adds r0, r5, 0 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0xC] - ldrb r1, [r2, 0xD] - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r1 - strb r0, [r2, 0xD] - mov r1, sp - movs r0, 0x30 - strb r0, [r1, 0xD] - movs r0, 0x3 - movs r1, 0x4 - bl GetFontAttribute - mov r1, sp - ands r5, r0 - ldrb r0, [r1, 0xC] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, 0xC] - movs r0, 0x3 - movs r1, 0x2 - bl GetFontAttribute - mov r1, sp - adds r6, r0 - strb r6, [r1, 0xA] - movs r0, 0x3 - movs r1, 0x3 - bl GetFontAttribute - mov r1, sp - add r8, r0 - mov r0, r8 - strb r0, [r1, 0xB] - mov r0, sp - mov r1, r9 - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810E984 - - thumb_func_start sub_810EA34 -sub_810EA34: @ 810EA34 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r3 - ldr r3, [sp, 0x30] - ldr r4, [sp, 0x34] - ldr r6, [sp, 0x38] - ldr r5, [sp, 0x3C] - mov r8, r5 - ldr r5, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - mov r9, r7 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, _0810EA98 @ =gUnknown_8453F8C - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r2, [sp, 0x10] - mov r2, r9 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810EA98: .4byte gUnknown_8453F8C - thumb_func_end sub_810EA34 - - thumb_func_start sub_810EA9C -sub_810EA9C: @ 810EA9C - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xF0 - lsls r2, 2 - movs r1, 0 - movs r3, 0xE - bl SetWindowBorderStyle - pop {r0} - bx r0 - thumb_func_end sub_810EA9C - - thumb_func_start sub_810EAB4 -sub_810EAB4: @ 810EAB4 - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _0810EAE4 @ =gUnknown_203ADD8 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - bne _0810EADC - lsls r0, r1, 3 - ldr r1, _0810EAE8 @ =gUnknown_8453FD0 - adds r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - ldr r2, _0810EAEC @ =0x000003a3 - movs r1, 0x1 - movs r3, 0xC - bl SetWindowBorderStyle -_0810EADC: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810EAE4: .4byte gUnknown_203ADD8 -_0810EAE8: .4byte gUnknown_8453FD0 -_0810EAEC: .4byte 0x000003a3 - thumb_func_end sub_810EAB4 - - thumb_func_start sub_810EAF0 -sub_810EAF0: @ 810EAF0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810EB1C @ =gUnknown_203ADD8 - adds r4, r0 - ldrb r0, [r4] - movs r1, 0 - bl sub_810F4D8 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0xFF - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810EB1C: .4byte gUnknown_203ADD8 - thumb_func_end sub_810EAF0 - - thumb_func_start sub_810EB20 -sub_810EB20: @ 810EB20 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810EB2C @ =gUnknown_203ADD8 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0810EB2C: .4byte gUnknown_203ADD8 - thumb_func_end sub_810EB20 - - thumb_func_start sub_810EB30 -sub_810EB30: @ 810EB30 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80F78A8 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xEB - lsls r2, 2 - movs r1, 0x2 - str r1, [sp] - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0x5 - movs r3, 0xB - bl DisplayMessageAndContinueTask - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810EB30 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_use.s b/asm/item_use.s deleted file mode 100644 index 558e175f2..000000000 --- a/asm/item_use.s +++ /dev/null @@ -1,2410 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80A0FBC -sub_80A0FBC: @ 80A0FBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A0FD8 @ =gSpecialVar_ItemId - ldrh r0, [r1] - cmp r0, 0xAF - bne _080A0FE0 - ldr r0, _080A0FDC @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x10] - b _080A0FE6 - .align 2, 0 -_080A0FD8: .4byte gSpecialVar_ItemId -_080A0FDC: .4byte gTasks -_080A0FE0: - ldrh r0, [r1] - bl ItemId_GetType -_080A0FE6: - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1010 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080A1018 - ldr r0, _080A1014 @ =gUnknown_83E2954 - lsls r1, r4, 2 - adds r1, r0 - ldr r0, [r1] - bl sub_813D934 - adds r0, r5, 0 - bl sub_813D808 - b _080A1032 - .align 2, 0 -_080A1010: .4byte gSpecialVar_ItemId -_080A1014: .4byte gUnknown_83E2954 -_080A1018: - ldr r0, _080A1038 @ =gUnknown_83E2954 - lsls r1, r4, 2 - adds r1, r0 - ldr r0, [r1] - bl sub_8108EE0 - cmp r4, 0x1 - bne _080A102C - bl sub_8108CB4 -_080A102C: - adds r0, r5, 0 - bl sub_8108B50 -_080A1032: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1038: .4byte gUnknown_83E2954 - thumb_func_end sub_80A0FBC - - thumb_func_start sub_80A103C -sub_80A103C: @ 80A103C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080A1064 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080A1070 - ldr r1, _080A1068 @ =gUnknown_3005020 - ldr r0, _080A106C @ =sub_80A1084 - str r0, [r1] - adds r0, r2, 0 - bl sub_80A0FBC - b _080A107A - .align 2, 0 -_080A1064: .4byte gTasks -_080A1068: .4byte gUnknown_3005020 -_080A106C: .4byte sub_80A1084 -_080A1070: - ldr r0, _080A1080 @ =gUnknown_2039998 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 -_080A107A: - pop {r0} - bx r0 - .align 2, 0 -_080A1080: .4byte gUnknown_2039998 - thumb_func_end sub_80A103C - - thumb_func_start sub_80A1084 -sub_80A1084: @ 80A1084 - push {lr} - bl sub_807DC00 - ldr r0, _080A1098 @ =sub_80A109C - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080A1098: .4byte sub_80A109C - thumb_func_end sub_80A1084 - - thumb_func_start sub_80A109C -sub_80A109C: @ 80A109C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807AA70 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A10B8 - ldr r0, _080A10C0 @ =gUnknown_2039998 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080A10B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A10C0: .4byte gUnknown_2039998 - thumb_func_end sub_80A109C - - thumb_func_start sub_80A10C4 -sub_80A10C4: @ 80A10C4 - push {r4-r7,lr} - adds r4, r1, 0 - adds r1, r3, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r5, _080A10F0 @ =gStringVar4 - adds r0, r5, 0 - bl StringExpandPlaceholders - cmp r4, 0 - bne _080A10F8 - ldr r3, _080A10F4 @ =sub_810A1F8 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_8108E70 - b _080A1104 - .align 2, 0 -_080A10F0: .4byte gStringVar4 -_080A10F4: .4byte sub_810A1F8 -_080A10F8: - ldr r3, _080A110C @ =sub_80A112C - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl DisplayItemMessageOnField -_080A1104: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A110C: .4byte sub_80A112C - thumb_func_end sub_80A10C4 - - thumb_func_start sub_80A1110 -sub_80A1110: @ 80A1110 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080A1128 @ =gUnknown_8416425 - movs r2, 0x4 - bl sub_80A10C4 - pop {r0} - bx r0 - .align 2, 0 -_080A1128: .4byte gUnknown_8416425 - thumb_func_end sub_80A1110 - - thumb_func_start sub_80A112C -sub_80A112C: @ 80A112C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - adds r0, r4, 0 - bl DestroyTask - bl sub_80696C0 - bl ScriptContext2_Disable - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A112C - - thumb_func_start sub_80A1150 -sub_80A1150: @ 80A1150 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080A1168 - movs r0, 0x1 - b _080A117E -_080A1168: - adds r0, r4, 0 - bl ItemId_GetFieldFunc - ldr r1, _080A1178 @ =sub_80A1750 - cmp r0, r1 - beq _080A117C - movs r0, 0 - b _080A117E - .align 2, 0 -_080A1178: .4byte sub_80A1750 -_080A117C: - movs r0, 0x2 -_080A117E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A1150 - - thumb_func_start sub_80A1184 -sub_80A1184: @ 80A1184 - ldr r1, _080A118C @ =gUnknown_3005024 - ldr r0, _080A1190 @ =sub_80A1194 - str r0, [r1] - bx lr - .align 2, 0 -_080A118C: .4byte gUnknown_3005024 -_080A1190: .4byte sub_80A1194 - thumb_func_end sub_80A1184 - - thumb_func_start sub_80A1194 -sub_80A1194: @ 80A1194 - push {lr} - bl player_bitmagic - bl ScriptContext2_Enable - bl sub_807DC00 - ldr r0, _080A11B8 @ =sub_80A11C0 - movs r1, 0xA - bl CreateTask - ldr r1, _080A11BC @ =gUnknown_2031DE0 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_080A11B8: .4byte sub_80A11C0 -_080A11BC: .4byte gUnknown_2031DE0 - thumb_func_end sub_80A1194 - - thumb_func_start sub_80A11C0 -sub_80A11C0: @ 80A11C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807AA70 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A11E0 - bl UnfreezeMapObjects - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask -_080A11E0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A11C0 - - thumb_func_start sub_80A11E8 -sub_80A11E8: @ 80A11E8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A1204 @ =sub_80A1208 - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1204: .4byte sub_80A1208 - thumb_func_end sub_80A11E8 - - thumb_func_start sub_80A1208 -sub_80A1208: @ 80A1208 - push {lr} - sub sp, 0x24 - mov r1, sp - ldr r0, _080A1224 @ =gSpecialVar_ItemId - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, _080A1228 @ =UseFameCheckerFromMenu - mov r0, sp - movs r2, 0 - bl sub_80BEBEC - add sp, 0x24 - pop {r0} - bx r0 - .align 2, 0 -_080A1224: .4byte gSpecialVar_ItemId -_080A1228: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A1208 - - thumb_func_start sub_80A122C -sub_80A122C: @ 80A122C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x83 - lsls r0, 4 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A129A - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_17 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A129A - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_18 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A129A - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_15 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A129A - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_16 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A12BC -_080A129A: - ldr r1, _080A12B4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xE] - ldr r3, _080A12B8 @ =gUnknown_8416451 - adds r0, r5, 0 - movs r2, 0x2 - bl sub_80A10C4 - b _080A12F6 - .align 2, 0 -_080A12B4: .4byte gTasks -_080A12B8: .4byte gUnknown_8416451 -_080A12BC: - bl sub_8055C9C - cmp r0, 0x1 - bne _080A12E4 - bl sub_80BD540 - lsls r0, 24 - cmp r0, 0 - bne _080A12E4 - ldr r1, _080A12DC @ =gUnknown_2039998 - ldr r0, _080A12E0 @ =sub_80A1304 - str r0, [r1] - adds r0, r5, 0 - bl sub_80A103C - b _080A12F6 - .align 2, 0 -_080A12DC: .4byte gUnknown_2039998 -_080A12E0: .4byte sub_80A1304 -_080A12E4: - ldr r0, _080A1300 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r5, 0 - bl sub_80A1110 -_080A12F6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1300: .4byte gTasks - thumb_func_end sub_80A122C - - thumb_func_start sub_80A1304 -sub_80A1304: @ 80A1304 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x6 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080A131C - movs r0, 0xB - bl PlaySE -_080A131C: - movs r0, 0x6 - bl sub_80BD5C8 - bl sub_80696C0 - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A1304 - - thumb_func_start sub_80A1338 -sub_80A1338: @ 80A1338 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80A137C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A1360 - ldr r1, _080A1358 @ =gUnknown_2039998 - ldr r0, _080A135C @ =ItemUseOnFieldCB_Rod - str r0, [r1] - adds r0, r4, 0 - bl sub_80A103C - b _080A1372 - .align 2, 0 -_080A1358: .4byte gUnknown_2039998 -_080A135C: .4byte ItemUseOnFieldCB_Rod -_080A1360: - ldr r0, _080A1378 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r4, 0 - bl sub_80A1110 -_080A1372: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1378: .4byte gTasks - thumb_func_end sub_80A1338 - - thumb_func_start sub_80A137C -sub_80A137C: @ 80A137C - push {r4-r6,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - cmp r0, 0 - bne _080A1404 - movs r0, 0x10 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080A1404 - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080A13D4 - bl IsPlayerFacingSurfableFishableWater - lsls r0, 24 - cmp r0, 0 - beq _080A1404 -_080A13D0: - movs r0, 0x1 - b _080A1406 -_080A13D4: - adds r0, r5, 0 - bl MetatileBehavior_IsSurfable - lsls r0, 24 - cmp r0, 0 - beq _080A13F4 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl sub_8058DC4 - lsls r0, 24 - cmp r0, 0 - beq _080A13D0 -_080A13F4: - lsls r0, r6, 24 - lsrs r0, 24 - bl MetatileBehavior_ReturnFalse_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A13D0 -_080A1404: - movs r0, 0 -_080A1406: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A137C - - thumb_func_start ItemUseOnFieldCB_Rod -ItemUseOnFieldCB_Rod: @ 80A1410 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A1434 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemId_GetSecondaryId - lsls r0, 24 - lsrs r0, 24 - bl sub_805D2C0 - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1434: .4byte gSpecialVar_ItemId - thumb_func_end ItemUseOnFieldCB_Rod - - thumb_func_start ItemUseOutOfBattle_Itemfinder -ItemUseOutOfBattle_Itemfinder: @ 80A1438 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x27 - bl IncrementGameStat - ldr r1, _080A1458 @ =gUnknown_2039998 - ldr r0, _080A145C @ =sub_813EC8C - str r0, [r1] - adds r0, r4, 0 - bl sub_80A103C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1458: .4byte gUnknown_2039998 -_080A145C: .4byte sub_813EC8C - thumb_func_end ItemUseOutOfBattle_Itemfinder - - thumb_func_start sub_80A1460 -sub_80A1460: @ 80A1460 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A14B4 @ =gStringVar1 - bl GetCoins - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, _080A14B8 @ =gStringVar4 - ldr r1, _080A14BC @ =gUnknown_8416537 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080A14C0 @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A14C4 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A14C8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A14D0 - ldr r3, _080A14CC @ =sub_810A1F8 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_8108E70 - b _080A14DC - .align 2, 0 -_080A14B4: .4byte gStringVar1 -_080A14B8: .4byte gStringVar4 -_080A14BC: .4byte gUnknown_8416537 -_080A14C0: .4byte gSpecialVar_ItemId -_080A14C4: .4byte 0x0000ffff -_080A14C8: .4byte gTasks -_080A14CC: .4byte sub_810A1F8 -_080A14D0: - ldr r3, _080A14E4 @ =sub_80A112C - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl DisplayItemMessageOnField -_080A14DC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A14E4: .4byte sub_80A112C - thumb_func_end sub_80A1460 - - thumb_func_start sub_80A14E8 -sub_80A14E8: @ 80A14E8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A1538 @ =gStringVar1 - bl sub_815EFA0 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - ldr r4, _080A153C @ =gStringVar4 - ldr r1, _080A1540 @ =gUnknown_8416644 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080A1544 @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A1548 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A154C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A1554 - ldr r3, _080A1550 @ =sub_810A1F8 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_8108E70 - b _080A1560 - .align 2, 0 -_080A1538: .4byte gStringVar1 -_080A153C: .4byte gStringVar4 -_080A1540: .4byte gUnknown_8416644 -_080A1544: .4byte gSpecialVar_ItemId -_080A1548: .4byte 0x0000ffff -_080A154C: .4byte gTasks -_080A1550: .4byte sub_810A1F8 -_080A1554: - ldr r3, _080A1568 @ =sub_80A112C - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl DisplayItemMessageOnField -_080A1560: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1568: .4byte sub_80A112C - thumb_func_end sub_80A14E8 - - thumb_func_start sub_80A156C -sub_80A156C: @ 80A156C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - movs r4, 0 - b _080A1598 -_080A1578: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080A15D0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x11 - adds r2, r4, 0 - movs r3, 0 - bl ExecuteTableBasedItemEffect - lsls r0, 24 - cmp r0, 0 - bne _080A1592 - movs r6, 0x1 -_080A1592: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080A1598: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _080A1578 - cmp r6, 0 - beq _080A1600 - ldr r0, _080A15D4 @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A15D8 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A15DC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A15E8 - ldr r2, _080A15E0 @ =gUnknown_8416690 - ldr r3, _080A15E4 @ =sub_80A1648 - b _080A1616 - .align 2, 0 -_080A15D0: .4byte gPlayerParty -_080A15D4: .4byte gSpecialVar_ItemId -_080A15D8: .4byte 0x0000ffff -_080A15DC: .4byte gTasks -_080A15E0: .4byte gUnknown_8416690 -_080A15E4: .4byte sub_80A1648 -_080A15E8: - ldr r2, _080A15F8 @ =gUnknown_8416690 - ldr r3, _080A15FC @ =sub_80A1648 - adds r0, r5, 0 - movs r1, 0x2 - bl DisplayItemMessageOnField - b _080A1638 - .align 2, 0 -_080A15F8: .4byte gUnknown_8416690 -_080A15FC: .4byte sub_80A1648 -_080A1600: - ldr r0, _080A1620 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080A162C - ldr r2, _080A1624 @ =gUnknown_841665C - ldr r3, _080A1628 @ =sub_810A1F8 -_080A1616: - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8108E70 - b _080A1638 - .align 2, 0 -_080A1620: .4byte gTasks -_080A1624: .4byte gUnknown_841665C -_080A1628: .4byte sub_810A1F8 -_080A162C: - ldr r2, _080A1640 @ =gUnknown_841665C - ldr r3, _080A1644 @ =sub_80A112C - adds r0, r5, 0 - movs r1, 0x2 - bl DisplayItemMessageOnField -_080A1638: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1640: .4byte gUnknown_841665C -_080A1644: .4byte sub_80A112C - thumb_func_end sub_80A156C - - thumb_func_start sub_80A1648 -sub_80A1648: @ 80A1648 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xB - bl PlayFanfareByFanfareNum - ldr r1, _080A166C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A1670 @ =sub_80A1674 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A166C: .4byte gTasks -_080A1670: .4byte sub_80A1674 - thumb_func_end sub_80A1648 - - thumb_func_start sub_80A1674 -sub_80A1674: @ 80A1674 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r0, 0 - bl WaitFanfare - lsls r0, 24 - cmp r0, 0 - beq _080A16C0 - ldr r0, _080A16A8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080A16B4 - ldr r2, _080A16AC @ =gUnknown_84166A7 - ldr r3, _080A16B0 @ =sub_810A1F8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 - b _080A16C0 - .align 2, 0 -_080A16A8: .4byte gTasks -_080A16AC: .4byte gUnknown_84166A7 -_080A16B0: .4byte sub_810A1F8 -_080A16B4: - ldr r2, _080A16C8 @ =gUnknown_84166A7 - ldr r3, _080A16CC @ =sub_80A112C - adds r0, r5, 0 - movs r1, 0x2 - bl DisplayItemMessageOnField -_080A16C0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A16C8: .4byte gUnknown_84166A7 -_080A16CC: .4byte sub_80A112C - thumb_func_end sub_80A1674 - - thumb_func_start sub_80A16D0 -sub_80A16D0: @ 80A16D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80A0FBC - pop {r0} - bx r0 - thumb_func_end sub_80A16D0 - - thumb_func_start sub_80A16E0 -sub_80A16E0: @ 80A16E0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A16F4 @ =gUnknown_3005E98 - ldr r1, _080A16F8 @ =sub_81252D0 - str r1, [r2] - bl sub_80A16D0 - pop {r0} - bx r0 - .align 2, 0 -_080A16F4: .4byte gUnknown_3005E98 -_080A16F8: .4byte sub_81252D0 - thumb_func_end sub_80A16E0 - - thumb_func_start sub_80A16FC -sub_80A16FC: @ 80A16FC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1710 @ =gUnknown_3005E98 - ldr r1, _080A1714 @ =sub_81256F8 - str r1, [r2] - bl sub_80A16D0 - pop {r0} - bx r0 - .align 2, 0 -_080A1710: .4byte gUnknown_3005E98 -_080A1714: .4byte sub_81256F8 - thumb_func_end sub_80A16FC - - thumb_func_start sub_80A1718 -sub_80A1718: @ 80A1718 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A172C @ =gUnknown_3005E98 - ldr r1, _080A1730 @ =dp05_pp_up - str r1, [r2] - bl sub_80A16D0 - pop {r0} - bx r0 - .align 2, 0 -_080A172C: .4byte gUnknown_3005E98 -_080A1730: .4byte dp05_pp_up - thumb_func_end sub_80A1718 - - thumb_func_start sub_80A1734 -sub_80A1734: @ 80A1734 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1748 @ =gUnknown_3005E98 - ldr r1, _080A174C @ =dp05_rare_candy - str r1, [r2] - bl sub_80A16D0 - pop {r0} - bx r0 - .align 2, 0 -_080A1748: .4byte gUnknown_3005E98 -_080A174C: .4byte dp05_rare_candy - thumb_func_end sub_80A1734 - - thumb_func_start sub_80A1750 -sub_80A1750: @ 80A1750 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1764 @ =gUnknown_3005E98 - ldr r1, _080A1768 @ =sub_8126B60 - str r1, [r2] - bl sub_80A16D0 - pop {r0} - bx r0 - .align 2, 0 -_080A1764: .4byte gUnknown_3005E98 -_080A1768: .4byte sub_8126B60 - thumb_func_end sub_80A1750 - - thumb_func_start sub_80A176C -sub_80A176C: @ 80A176C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1780 @ =gUnknown_3005E98 - ldr r1, _080A1784 @ =sub_8126894 - str r1, [r2] - bl sub_80A0FBC - pop {r0} - bx r0 - .align 2, 0 -_080A1780: .4byte gUnknown_3005E98 -_080A1784: .4byte sub_8126894 - thumb_func_end sub_80A176C - - thumb_func_start sub_80A1788 -sub_80A1788: @ 80A1788 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A17B0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A17B8 - ldr r0, _080A17B4 @ =sub_80A17D4 - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - b _080A17C8 - .align 2, 0 -_080A17B0: .4byte gTasks -_080A17B4: .4byte sub_80A17D4 -_080A17B8: - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080A17D0 @ =sub_80A17E8 - str r0, [r5] -_080A17C8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A17D0: .4byte sub_80A17E8 - thumb_func_end sub_80A1788 - - thumb_func_start sub_80A17D4 -sub_80A17D4: @ 80A17D4 - push {lr} - ldr r1, _080A17E4 @ =UseFameCheckerFromMenu - movs r0, 0 - movs r2, 0 - bl sub_81317F8 - pop {r0} - bx r0 - .align 2, 0 -_080A17E4: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A17D4 - - thumb_func_start sub_80A17E8 -sub_80A17E8: @ 80A17E8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1818 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A1812 - bl sub_80563F0 - bl sub_80A1184 - ldr r1, _080A181C @ =c2_exit_to_overworld_2_switch - movs r0, 0 - movs r2, 0x1 - bl sub_81317F8 - adds r0, r4, 0 - bl DestroyTask -_080A1812: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1818: .4byte gPaletteFade -_080A181C: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A17E8 - - thumb_func_start sub_80A1820 -sub_80A1820: @ 80A1820 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A1848 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A1850 - ldr r0, _080A184C @ =sub_80A186C - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - b _080A1860 - .align 2, 0 -_080A1848: .4byte gTasks -_080A184C: .4byte sub_80A186C -_080A1850: - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080A1868 @ =sub_80A1880 - str r0, [r5] -_080A1860: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1868: .4byte sub_80A1880 - thumb_func_end sub_80A1820 - - thumb_func_start sub_80A186C -sub_80A186C: @ 80A186C - push {lr} - ldr r1, _080A187C @ =UseFameCheckerFromMenu - movs r0, 0 - movs r2, 0 - bl sub_813CD50 - pop {r0} - bx r0 - .align 2, 0 -_080A187C: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A186C - - thumb_func_start sub_80A1880 -sub_80A1880: @ 80A1880 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A18B0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A18AA - bl sub_80563F0 - bl sub_80A1184 - ldr r1, _080A18B4 @ =c2_exit_to_overworld_2_switch - movs r0, 0 - movs r2, 0x1 - bl sub_813CD50 - adds r0, r4, 0 - bl DestroyTask -_080A18AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A18B0: .4byte gPaletteFade -_080A18B4: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A1880 - - thumb_func_start sub_80A18B8 -sub_80A18B8: @ 80A18B8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A18D4 @ =sub_80A18D8 - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A18D4: .4byte sub_80A18D8 - thumb_func_end sub_80A18B8 - - thumb_func_start sub_80A18D8 -sub_80A18D8: @ 80A18D8 - push {lr} - ldr r1, _080A18E8 @ =sub_8107ECC - movs r0, 0x4 - movs r2, 0 - bl sub_813CD50 - pop {r0} - bx r0 - .align 2, 0 -_080A18E8: .4byte sub_8107ECC - thumb_func_end sub_80A18D8 - - thumb_func_start sub_80A18EC -sub_80A18EC: @ 80A18EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1920 @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A1924 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A1928 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A1930 - ldr r0, _080A192C @ =sub_80A194C - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - b _080A1940 - .align 2, 0 -_080A1920: .4byte gSpecialVar_ItemId -_080A1924: .4byte 0x0000ffff -_080A1928: .4byte gTasks -_080A192C: .4byte sub_80A194C -_080A1930: - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080A1948 @ =sub_80A1960 - str r0, [r5] -_080A1940: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1948: .4byte sub_80A1960 - thumb_func_end sub_80A18EC - - thumb_func_start sub_80A194C -sub_80A194C: @ 80A194C - push {lr} - ldr r1, _080A195C @ =UseFameCheckerFromMenu - movs r0, 0 - bl sub_815ABC4 - pop {r0} - bx r0 - .align 2, 0 -_080A195C: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A194C - - thumb_func_start sub_80A1960 -sub_80A1960: @ 80A1960 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1990 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A1988 - bl sub_80563F0 - bl sub_80A1184 - ldr r1, _080A1994 @ =c2_exit_to_overworld_2_switch - movs r0, 0 - bl sub_815ABC4 - adds r0, r4, 0 - bl DestroyTask -_080A1988: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1990: .4byte gPaletteFade -_080A1994: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A1960 - - thumb_func_start sub_80A1998 -sub_80A1998: @ 80A1998 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A19C0 @ =0x00004020 - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _080A19CC - movs r0, 0x29 - bl PlaySE - ldr r0, _080A19C4 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A19C8 @ =sub_80A19E8 - str r0, [r1] - b _080A19D8 - .align 2, 0 -_080A19C0: .4byte 0x00004020 -_080A19C4: .4byte gTasks -_080A19C8: .4byte sub_80A19E8 -_080A19CC: - ldr r2, _080A19E0 @ =gUnknown_841659E - ldr r3, _080A19E4 @ =sub_810A1F8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 -_080A19D8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A19E0: .4byte gUnknown_841659E -_080A19E4: .4byte sub_810A1F8 - thumb_func_end sub_80A1998 - - thumb_func_start sub_80A19E8 -sub_80A19E8: @ 80A19E8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _080A1A2A - ldr r4, _080A1A30 @ =gSpecialVar_ItemId - ldrh r2, [r4] - ldr r3, _080A1A34 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r5, _080A1A38 @ =0x00004020 - ldrh r0, [r4] - bl ItemId_GetHoldEffectParam - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl VarSet - bl sub_80A1A44 - ldr r2, _080A1A3C @ =gStringVar4 - ldr r3, _080A1A40 @ =sub_810A1F8 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8108E70 -_080A1A2A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1A30: .4byte gSpecialVar_ItemId -_080A1A34: .4byte 0x0000ffff -_080A1A38: .4byte 0x00004020 -_080A1A3C: .4byte gStringVar4 -_080A1A40: .4byte sub_810A1F8 - thumb_func_end sub_80A19E8 - - thumb_func_start sub_80A1A44 -sub_80A1A44: @ 80A1A44 - push {r4,lr} - ldr r4, _080A1A84 @ =gSpecialVar_ItemId - ldrh r0, [r4] - movs r1, 0x1 - bl sub_809A1D8 - ldrh r0, [r4] - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - bl sub_8108DC8 - ldrh r0, [r4] - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - bl sub_81089F4 - ldrh r0, [r4] - ldr r1, _080A1A88 @ =gStringVar2 - bl sub_8099E90 - ldr r0, _080A1A8C @ =gStringVar4 - ldr r1, _080A1A90 @ =gUnknown_841658C - bl StringExpandPlaceholders - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1A84: .4byte gSpecialVar_ItemId -_080A1A88: .4byte gStringVar2 -_080A1A8C: .4byte gStringVar4 -_080A1A90: .4byte gUnknown_841658C - thumb_func_end sub_80A1A44 - - thumb_func_start sub_80A1A94 -sub_80A1A94: @ 80A1A94 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r5, _080A1AD4 @ =gSpecialVar_ItemId - ldrh r2, [r5] - ldr r3, _080A1AD8 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldrh r0, [r5] - cmp r0, 0x2B - bne _080A1AF4 - ldr r0, _080A1ADC @ =0x00000803 - bl FlagSet - ldr r0, _080A1AE0 @ =0x00000804 - bl FlagClear - ldrh r0, [r5] - ldr r1, _080A1AE4 @ =gStringVar2 - bl sub_8099E90 - ldr r0, _080A1AE8 @ =gStringVar4 - ldr r1, _080A1AEC @ =gUnknown_84165D2 - bl StringExpandPlaceholders - ldr r1, _080A1AF0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - b _080A1B1A - .align 2, 0 -_080A1AD4: .4byte gSpecialVar_ItemId -_080A1AD8: .4byte 0x0000ffff -_080A1ADC: .4byte 0x00000803 -_080A1AE0: .4byte 0x00000804 -_080A1AE4: .4byte gStringVar2 -_080A1AE8: .4byte gStringVar4 -_080A1AEC: .4byte gUnknown_84165D2 -_080A1AF0: .4byte gTasks -_080A1AF4: - cmp r0, 0x2A - bne _080A1B26 - ldr r0, _080A1B2C @ =0x00000804 - bl FlagSet - ldr r0, _080A1B30 @ =0x00000803 - bl FlagClear - ldrh r0, [r5] - ldr r1, _080A1B34 @ =gStringVar2 - bl sub_8099E90 - ldr r0, _080A1B38 @ =gStringVar4 - ldr r1, _080A1B3C @ =gUnknown_8416600 - bl StringExpandPlaceholders - ldr r1, _080A1B40 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 -_080A1B1A: - lsls r0, 3 - adds r0, r1 - ldr r1, _080A1B44 @ =sub_80A1B48 - str r1, [r0] - movs r1, 0 - strh r1, [r0, 0x18] -_080A1B26: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1B2C: .4byte 0x00000804 -_080A1B30: .4byte 0x00000803 -_080A1B34: .4byte gStringVar2 -_080A1B38: .4byte gStringVar4 -_080A1B3C: .4byte gUnknown_8416600 -_080A1B40: .4byte gTasks -_080A1B44: .4byte sub_80A1B48 - thumb_func_end sub_80A1A94 - - thumb_func_start sub_80A1B48 -sub_80A1B48: @ 80A1B48 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1B80 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - strh r0, [r1, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080A1B78 - movs r0, 0x6E - bl PlaySE - ldr r2, _080A1B84 @ =gStringVar4 - ldr r3, _080A1B88 @ =sub_810A1F8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 -_080A1B78: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1B80: .4byte gTasks -_080A1B84: .4byte gStringVar4 -_080A1B88: .4byte sub_810A1F8 - thumb_func_end sub_80A1B48 - - thumb_func_start sub_80A1B8C -sub_80A1B8C: @ 80A1B8C - push {lr} - ldr r0, _080A1BA0 @ =gMapHeader - ldrb r1, [r0, 0x19] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A1BA4 - movs r0, 0 - b _080A1BA6 - .align 2, 0 -_080A1BA0: .4byte gMapHeader -_080A1BA4: - movs r0, 0x1 -_080A1BA6: - pop {r1} - bx r1 - thumb_func_end sub_80A1B8C - - thumb_func_start ItemUseOutOfBattle_EscapeRope -ItemUseOutOfBattle_EscapeRope: @ 80A1BAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80A1B8C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A1BEC - ldr r0, _080A1BDC @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r0, _080A1BE0 @ =gMapHeader - ldrb r3, [r0, 0x14] - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A1BE4 @ =gUnknown_2039998 - ldr r0, _080A1BE8 @ =sub_80A1C08 - str r0, [r1] - adds r0, r4, 0 - bl sub_80A103C - b _080A1BFE - .align 2, 0 -_080A1BDC: .4byte gSpecialVar_ItemId -_080A1BE0: .4byte gMapHeader -_080A1BE4: .4byte gUnknown_2039998 -_080A1BE8: .4byte sub_80A1C08 -_080A1BEC: - ldr r0, _080A1C04 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r4, 0 - bl sub_80A1110 -_080A1BFE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1C04: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_EscapeRope - - thumb_func_start sub_80A1C08 -sub_80A1C08: @ 80A1C08 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8054D70 - bl sub_80A1A44 - ldr r1, _080A1C38 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r2, _080A1C3C @ =gStringVar4 - ldr r3, _080A1C40 @ =sub_80A1C44 - adds r0, r4, 0 - movs r1, 0x2 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1C38: .4byte gTasks -_080A1C3C: .4byte gStringVar4 -_080A1C40: .4byte sub_80A1C44 - thumb_func_end sub_80A1C08 - - thumb_func_start sub_80A1C44 -sub_80A1C44: @ 80A1C44 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80559E4 - bl sub_8085620 - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A1C44 - - thumb_func_start sub_80A1C60 -sub_80A1C60: @ 80A1C60 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A1C88 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A1C90 - ldr r0, _080A1C8C @ =sub_80A1CAC - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - b _080A1CA0 - .align 2, 0 -_080A1C88: .4byte gTasks -_080A1C8C: .4byte sub_80A1CAC -_080A1C90: - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080A1CA8 @ =sub_80A1CC0 - str r0, [r5] -_080A1CA0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1CA8: .4byte sub_80A1CC0 - thumb_func_end sub_80A1C60 - - thumb_func_start sub_80A1CAC -sub_80A1CAC: @ 80A1CAC - push {lr} - ldr r1, _080A1CBC @ =UseFameCheckerFromMenu - movs r0, 0 - bl sub_80BFF50 - pop {r0} - bx r0 - .align 2, 0 -_080A1CBC: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A1CAC - - thumb_func_start sub_80A1CC0 -sub_80A1CC0: @ 80A1CC0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1CF0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A1CE8 - bl sub_80563F0 - bl sub_80A1184 - ldr r1, _080A1CF4 @ =c2_exit_to_overworld_2_switch - movs r0, 0 - bl sub_80BFF50 - adds r0, r4, 0 - bl DestroyTask -_080A1CE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1CF0: .4byte gPaletteFade -_080A1CF4: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A1CC0 - - thumb_func_start sub_80A1CF8 -sub_80A1CF8: @ 80A1CF8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1D2C @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A1D30 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A1D34 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A1D3C - ldr r0, _080A1D38 @ =sub_80A1D58 - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - b _080A1D4C - .align 2, 0 -_080A1D2C: .4byte gSpecialVar_ItemId -_080A1D30: .4byte 0x0000ffff -_080A1D34: .4byte gTasks -_080A1D38: .4byte sub_80A1D58 -_080A1D3C: - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080A1D54 @ =sub_80A1D68 - str r0, [r5] -_080A1D4C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1D54: .4byte sub_80A1D68 - thumb_func_end sub_80A1CF8 - - thumb_func_start sub_80A1D58 -sub_80A1D58: @ 80A1D58 - push {lr} - ldr r0, _080A1D64 @ =UseFameCheckerFromMenu - bl UseFameChecker - pop {r0} - bx r0 - .align 2, 0 -_080A1D64: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A1D58 - - thumb_func_start sub_80A1D68 -sub_80A1D68: @ 80A1D68 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1D94 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A1D8E - bl sub_80563F0 - bl sub_80A1184 - ldr r0, _080A1D98 @ =c2_exit_to_overworld_2_switch - bl UseFameChecker - adds r0, r4, 0 - bl DestroyTask -_080A1D8E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1D94: .4byte gPaletteFade -_080A1D98: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A1D68 - - thumb_func_start sub_80A1D9C -sub_80A1D9C: @ 80A1D9C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080A1DE8 @ =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x3 - beq _080A1DB2 - cmp r0, 0x1 - beq _080A1DB2 - cmp r0, 0x2 - bne _080A1DD2 -_080A1DB2: - ldr r0, _080A1DEC @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x1 - bne _080A1DF4 - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0 - beq _080A1DD2 - cmp r0, 0x61 - beq _080A1DD2 - cmp r0, 0x6D - beq _080A1DD2 - cmp r0, 0x79 - bne _080A1DF4 -_080A1DD2: - ldr r0, _080A1DF0 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r2, 0 - bl sub_80A1110 - b _080A1E00 - .align 2, 0 -_080A1DE8: .4byte gMapHeader -_080A1DEC: .4byte gSaveBlock1Ptr -_080A1DF0: .4byte gTasks -_080A1DF4: - ldr r1, _080A1E04 @ =gUnknown_2039998 - ldr r0, _080A1E08 @ =Task_VsSeeker_0 - str r0, [r1] - adds r0, r2, 0 - bl sub_80A103C -_080A1E00: - pop {r0} - bx r0 - .align 2, 0 -_080A1E04: .4byte gUnknown_2039998 -_080A1E08: .4byte Task_VsSeeker_0 - thumb_func_end sub_80A1D9C - - thumb_func_start sub_80A1E0C -sub_80A1E0C: @ 80A1E0C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80A112C - pop {r0} - bx r0 - thumb_func_end sub_80A1E0C - - thumb_func_start sub_80A1E1C -sub_80A1E1C: @ 80A1E1C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsPlayerPartyAndPokemonStorageFull - lsls r0, 24 - cmp r0, 0 - bne _080A1E48 - ldr r0, _080A1E44 @ =gSpecialVar_ItemId - ldrh r0, [r0] - movs r1, 0x1 - bl sub_809A1D8 - bl sub_8108CB4 - adds r0, r4, 0 - bl sub_8108B50 - b _080A1E54 - .align 2, 0 -_080A1E44: .4byte gSpecialVar_ItemId -_080A1E48: - ldr r2, _080A1E5C @ =gUnknown_8416631 - ldr r3, _080A1E60 @ =sub_810A1F8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 -_080A1E54: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1E5C: .4byte gUnknown_8416631 -_080A1E60: .4byte sub_810A1F8 - thumb_func_end sub_80A1E1C - - thumb_func_start sub_80A1E64 -sub_80A1E64: @ 80A1E64 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8108CB4 - adds r0, r4, 0 - bl sub_8108B50 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A1E64 - - thumb_func_start sub_80A1E7C -sub_80A1E7C: @ 80A1E7C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A1EBC @ =gBattlerPartyIndexes - ldr r0, _080A1EC0 @ =gBattlerInMenuId - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r1, _080A1EC4 @ =gPlayerParty - adds r0, r1 - ldr r1, _080A1EC8 @ =gSpecialVar_ItemId - ldrh r1, [r1] - lsls r2, 24 - lsrs r2, 24 - movs r3, 0 - bl ExecuteTableBasedItemEffect - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080A1ED4 - ldr r2, _080A1ECC @ =gUnknown_84169DC - ldr r3, _080A1ED0 @ =sub_810A1F8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 - b _080A1EE4 - .align 2, 0 -_080A1EBC: .4byte gBattlerPartyIndexes -_080A1EC0: .4byte gBattlerInMenuId -_080A1EC4: .4byte gPlayerParty -_080A1EC8: .4byte gSpecialVar_ItemId -_080A1ECC: .4byte gUnknown_84169DC -_080A1ED0: .4byte sub_810A1F8 -_080A1ED4: - ldr r0, _080A1EEC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x18] - ldr r0, _080A1EF0 @ =sub_80A1EF4 - str r0, [r1] -_080A1EE4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1EEC: .4byte gTasks -_080A1EF0: .4byte sub_80A1EF4 - thumb_func_end sub_80A1E7C - - thumb_func_start sub_80A1EF4 -sub_80A1EF4: @ 80A1EF4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - ldr r0, _080A1F3C @ =gTasks+0x8 - adds r1, r0 - ldrh r0, [r1, 0x10] - adds r0, 0x1 - strh r0, [r1, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080A1F36 - ldr r0, _080A1F40 @ =gSpecialVar_ItemId - ldrh r4, [r0] - movs r0, 0x1 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809A1D8 - adds r0, r4, 0 - bl sub_8042DA4 - adds r2, r0, 0 - ldr r3, _080A1F44 @ =sub_80A1F48 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8108E70 -_080A1F36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1F3C: .4byte gTasks+0x8 -_080A1F40: .4byte gSpecialVar_ItemId -_080A1F44: .4byte sub_80A1F48 - thumb_func_end sub_80A1EF4 - - thumb_func_start sub_80A1F48 -sub_80A1F48: @ 80A1F48 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1F74 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A1F62 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A1F6C -_080A1F62: - bl sub_8108CB4 - adds r0, r4, 0 - bl sub_8108B50 -_080A1F6C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1F74: .4byte gMain - thumb_func_end sub_80A1F48 - - thumb_func_start sub_80A1F78 -sub_80A1F78: @ 80A1F78 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1F9C @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080A1FA4 - ldr r0, _080A1FA0 @ =sub_81279E0 - bl sub_813D934 - adds r0, r4, 0 - bl sub_813D808 - b _080A1FB0 - .align 2, 0 -_080A1F9C: .4byte gSpecialVar_ItemId -_080A1FA0: .4byte sub_81279E0 -_080A1FA4: - ldr r0, _080A1FB8 @ =sub_81279E0 - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 -_080A1FB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1FB8: .4byte sub_81279E0 - thumb_func_end sub_80A1F78 - - thumb_func_start sub_80A1FBC -sub_80A1FBC: @ 80A1FBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1FD0 @ =gUnknown_3005E98 - ldr r1, _080A1FD4 @ =ItemUseCB_Medicine - str r1, [r2] - bl sub_80A1F78 - pop {r0} - bx r0 - .align 2, 0 -_080A1FD0: .4byte gUnknown_3005E98 -_080A1FD4: .4byte ItemUseCB_Medicine - thumb_func_end sub_80A1FBC - - thumb_func_start sub_80A1FD8 -sub_80A1FD8: @ 80A1FD8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1FEC @ =gUnknown_3005E98 - ldr r1, _080A1FF0 @ =sub_8126894 - str r1, [r2] - bl sub_80A1F78 - pop {r0} - bx r0 - .align 2, 0 -_080A1FEC: .4byte gUnknown_3005E98 -_080A1FF0: .4byte sub_8126894 - thumb_func_end sub_80A1FD8 - - thumb_func_start sub_80A1FF4 -sub_80A1FF4: @ 80A1FF4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A2008 @ =gUnknown_3005E98 - ldr r1, _080A200C @ =sub_81256F8 - str r1, [r2] - bl sub_80A1F78 - pop {r0} - bx r0 - .align 2, 0 -_080A2008: .4byte gUnknown_3005E98 -_080A200C: .4byte sub_81256F8 - thumb_func_end sub_80A1FF4 - - thumb_func_start sub_80A2010 -sub_80A2010: @ 80A2010 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A2044 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080A2058 - bl sub_80A1A44 - ldr r0, _080A2048 @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A204C @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r2, _080A2050 @ =gStringVar4 - ldr r3, _080A2054 @ =sub_8108B50 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 - b _080A2060 - .align 2, 0 -_080A2044: .4byte gBattleTypeFlags -_080A2048: .4byte gSpecialVar_ItemId -_080A204C: .4byte 0x0000ffff -_080A2050: .4byte gStringVar4 -_080A2054: .4byte sub_8108B50 -_080A2058: - adds r0, r4, 0 - movs r1, 0 - bl sub_80A1110 -_080A2060: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2010 - - thumb_func_start ItemUseOutOfBattle_EnigmaBerry -ItemUseOutOfBattle_EnigmaBerry: @ 80A2068 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A208C @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x14 - bls _080A2082 - b _080A2174 -_080A2082: - lsls r0, 2 - ldr r1, _080A2090 @ =_080A2094 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A208C: .4byte gSpecialVar_ItemId -_080A2090: .4byte _080A2094 - .align 2, 0 -_080A2094: - .4byte _080A2120 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A2174 - .4byte _080A2174 - .4byte _080A2104 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A2174 - .4byte _080A213C - .4byte _080A213C - .4byte _080A2158 -_080A20E8: - ldr r0, _080A2100 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A16E0 - b _080A2188 - .align 2, 0 -_080A2100: .4byte gTasks -_080A2104: - ldr r0, _080A211C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A176C - b _080A2188 - .align 2, 0 -_080A211C: .4byte gTasks -_080A2120: - ldr r0, _080A2138 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A1734 - b _080A2188 - .align 2, 0 -_080A2138: .4byte gTasks -_080A213C: - ldr r0, _080A2154 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A1718 - b _080A2188 - .align 2, 0 -_080A2154: .4byte gTasks -_080A2158: - ldr r0, _080A2170 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A16FC - b _080A2188 - .align 2, 0 -_080A2170: .4byte gTasks -_080A2174: - ldr r0, _080A2190 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x4 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A2238 -_080A2188: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2190: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_EnigmaBerry - - thumb_func_start ItemUseInBattle_EnigmaBerry -ItemUseInBattle_EnigmaBerry: @ 80A2194 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A21B4 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x15 - bhi _080A222C - lsls r0, 2 - ldr r1, _080A21B8 @ =_080A21BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A21B4: .4byte gSpecialVar_ItemId -_080A21B8: .4byte _080A21BC - .align 2, 0 -_080A21BC: - .4byte _080A2214 - .4byte _080A222C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A222C - .4byte _080A221C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A2224 -_080A2214: - adds r0, r4, 0 - bl sub_80A1E7C - b _080A2232 -_080A221C: - adds r0, r4, 0 - bl sub_80A1FBC - b _080A2232 -_080A2224: - adds r0, r4, 0 - bl sub_80A1FF4 - b _080A2232 -_080A222C: - adds r0, r4, 0 - bl sub_80A2238 -_080A2232: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ItemUseInBattle_EnigmaBerry - - thumb_func_start sub_80A2238 -sub_80A2238: @ 80A2238 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080A2268 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080A2278 - ldr r4, _080A226C @ =gStringVar4 - ldr r1, _080A2270 @ =gUnknown_8416425 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, _080A2274 @ =sub_813E2B8 - adds r0, r5, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl sub_813EB20 - b _080A228A - .align 2, 0 -_080A2268: .4byte gSpecialVar_ItemId -_080A226C: .4byte gStringVar4 -_080A2270: .4byte gUnknown_8416425 -_080A2274: .4byte sub_813E2B8 -_080A2278: - ldr r0, _080A2290 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r5, 0 - bl sub_80A1110 -_080A228A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2290: .4byte gTasks - thumb_func_end sub_80A2238 - - thumb_func_start sub_80A2294 -sub_80A2294: @ 80A2294 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - adds r4, r2, 0 - adds r5, r3, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0x8 - bl Alloc - adds r6, r0, 0 - strh r4, [r6] - strh r5, [r6, 0x6] - cmp r7, 0 - beq _080A22C8 - adds r0, r7, 0 - movs r1, 0x41 - bl GetMonData - b _080A22CA -_080A22C8: - ldr r0, _080A22E4 @ =0x0000ffff -_080A22CA: - strh r0, [r6, 0x4] - mov r0, r8 - adds r1, r6, 0 - bl sub_8113550 - adds r0, r6, 0 - bl Free - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A22E4: .4byte 0x0000ffff - thumb_func_end sub_80A2294 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/itemfinder.s b/asm/itemfinder.s index bf3e78ebc..e510252ab 100644 --- a/asm/itemfinder.s +++ b/asm/itemfinder.s @@ -81,7 +81,7 @@ sub_813ED18: @ 813ED18 lsrs r4, 24 movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame bl sub_80696C0 bl ScriptContext2_Disable adds r0, r4, 0 @@ -970,7 +970,7 @@ sub_813F380: @ 813F380 bl sub_813F3FC movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame bl sub_80696C0 bl ScriptContext2_Disable adds r0, r4, 0 diff --git a/asm/learn_move.s b/asm/learn_move.s index 5068e6d16..4a37c7eae 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -50,8 +50,8 @@ sub_80E4660: @ 80E4660 bne _080E4684 ldr r0, _080E4690 @ =sub_80E478C bl SetMainCallback2 - ldr r1, _080E4694 @ =gUnknown_3005020 - ldr r0, _080E4698 @ =sub_807DD24 + ldr r1, _080E4694 @ =gFieldCallback + ldr r0, _080E4698 @ =FieldCallback_ReturnToEventScript2 str r0, [r1] adds r0, r4, 0 bl DestroyTask @@ -62,8 +62,8 @@ _080E4684: .align 2, 0 _080E468C: .4byte gPaletteFade _080E4690: .4byte sub_80E478C -_080E4694: .4byte gUnknown_3005020 -_080E4698: .4byte sub_807DD24 +_080E4694: .4byte gFieldCallback +_080E4698: .4byte FieldCallback_ReturnToEventScript2 thumb_func_end sub_80E4660 thumb_func_start sub_80E469C @@ -119,7 +119,7 @@ _080E46C6: movs r0, 0 movs r1, 0x1 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0xD0 movs r1, 0x1 bl sub_8107D38 @@ -133,7 +133,7 @@ _080E46C6: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080E4788 @ =gUnknown_8E97EC4 movs r0, 0x1 movs r2, 0 @@ -296,7 +296,7 @@ sub_80E48C0: @ 80E48C0 ldr r4, _080E48F0 @ =gStringVar4 adds r0, r4, 0 bl StringExpandPlaceholders - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 str r0, [sp] @@ -454,7 +454,7 @@ _080E4A3E: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, _080E4A64 @ =gUnknown_203AAB4 ldr r1, [r0] ldrb r0, [r1] @@ -540,7 +540,7 @@ _080E4AF4: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, _080E4B1C @ =gUnknown_203AAB4 ldr r1, [r0] ldrb r0, [r1] @@ -601,7 +601,7 @@ _080E4B70: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, _080E4B94 @ =gUnknown_203AAB4 ldr r1, [r0] movs r0, 0x12 @@ -665,7 +665,7 @@ _080E4BF4: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, _080E4C18 @ =gUnknown_203AAB4 ldr r1, [r0] movs r0, 0x1A @@ -736,7 +736,7 @@ _080E4C7E: adds r1, r2, r3 ldr r6, _080E4CD4 @ =0x00000a6a adds r2, r6 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow bl FreeAllWindowBuffers ldr r0, _080E4CD8 @ =gPlayerParty ldr r5, [r7] @@ -810,13 +810,13 @@ _080E4D26: ldr r0, _080E4D40 @ =gUnknown_203AAB4 ldr r0, [r0] bl Free - ldr r0, _080E4D44 @ =c2_exit_to_overworld_2_switch + ldr r0, _080E4D44 @ =CB2_ReturnToField bl SetMainCallback2 b _080E4EDA .align 2, 0 _080E4D3C: .4byte gPaletteFade _080E4D40: .4byte gUnknown_203AAB4 -_080E4D44: .4byte c2_exit_to_overworld_2_switch +_080E4D44: .4byte CB2_ReturnToField _080E4D48: movs r0, 0x1 negs r0, r0 @@ -1016,7 +1016,7 @@ _080E4EF4: lsrs r0, 24 movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter adds r4, 0x1 cmp r4, 0x7 ble _080E4EF4 @@ -1373,7 +1373,7 @@ _080E51AA: adds r2, r3 movs r0, 0xFE str r0, [r2] - ldr r2, _080E51FC @ =gUnknown_3005E70 + ldr r2, _080E51FC @ =gMultiuseListMenuTemplate adds r1, r2, 0 ldr r0, _080E5200 @ =gUnknown_83FFA94 ldm r0!, {r3,r5,r6} @@ -1397,7 +1397,7 @@ _080E51EC: .4byte gPlayerParty _080E51F0: .4byte gMoveNames _080E51F4: .4byte gStringVar1 _080E51F8: .4byte gFameCheckerText_Cancel -_080E51FC: .4byte gUnknown_3005E70 +_080E51FC: .4byte gMultiuseListMenuTemplate _080E5200: .4byte gUnknown_83FFA94 thumb_func_end sub_80E50CC @@ -1523,7 +1523,7 @@ _080E52FA: thumb_func_start sub_80E5300 sub_80E5300: @ 80E5300 push {r4,lr} - ldr r0, _080E5330 @ =gUnknown_3005E70 + ldr r0, _080E5330 @ =gMultiuseListMenuTemplate ldr r4, _080E5334 @ =gUnknown_203AAB4 ldr r2, [r4] ldr r3, _080E5338 @ =0x00000a68 @@ -1544,7 +1544,7 @@ sub_80E5300: @ 80E5300 pop {r0} bx r0 .align 2, 0 -_080E5330: .4byte gUnknown_3005E70 +_080E5330: .4byte gMultiuseListMenuTemplate _080E5334: .4byte gUnknown_203AAB4 _080E5338: .4byte 0x00000a68 _080E533C: .4byte 0x00000263 @@ -1568,11 +1568,11 @@ sub_80E5340: @ 80E5340 movs r0, 0x2 movs r2, 0x1 movs r3, 0x4 - bl sub_8107D68 + bl blit_move_info_icon ldrb r0, [r4, 0x1] cmp r0, 0x1 bhi _080E5388 - ldr r1, _080E5384 @ =gUnknown_8416213 + ldr r1, _080E5384 @ =gText_ThreeHyphens movs r0, 0 str r0, [sp] str r0, [sp, 0x4] @@ -1583,7 +1583,7 @@ sub_80E5340: @ 80E5340 b _080E53A6 .align 2, 0 _080E5380: .4byte gBattleMoves -_080E5384: .4byte gUnknown_8416213 +_080E5384: .4byte gText_ThreeHyphens _080E5388: ldrb r1, [r4, 0x1] add r0, sp, 0x8 @@ -1608,7 +1608,7 @@ _080E53A6: adds r4, r1, 0 cmp r2, 0 bne _080E53D4 - ldr r1, _080E53D0 @ =gUnknown_8416213 + ldr r1, _080E53D0 @ =gText_ThreeHyphens str r2, [sp] movs r0, 0x1 str r0, [sp, 0x4] @@ -1619,7 +1619,7 @@ _080E53A6: b _080E53F4 .align 2, 0 _080E53CC: .4byte gBattleMoves -_080E53D0: .4byte gUnknown_8416213 +_080E53D0: .4byte gText_ThreeHyphens _080E53D4: ldrb r1, [r0, 0x3] add r0, sp, 0x8 @@ -1680,27 +1680,27 @@ sub_80E5444: @ 80E5444 movs r1, 0x13 movs r2, 0x1 movs r3, 0x4 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0x1 movs r1, 0x14 movs r2, 0 movs r3, 0x4 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0x1 movs r1, 0x15 movs r2, 0 movs r3, 0x13 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0 movs r1, 0x16 movs r2, 0x1 movs r3, 0x13 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0 movs r1, 0x17 movs r2, 0x1 movs r3, 0x22 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0 bl PutWindowTilemap movs r0, 0x1 @@ -1814,7 +1814,7 @@ _080E5570: .4byte 0x00000a67 thumb_func_start sub_80E5574 sub_80E5574: @ 80E5574 push {r4,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 @@ -1936,7 +1936,7 @@ _080E563E: movs r1, 0x3 adds r2, r7, 0 adds r3, r6, 0 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r3-r5} mov r8, r3 diff --git a/asm/link.s b/asm/link.s index a0ba7f9cb..28dc18656 100644 --- a/asm/link.s +++ b/asm/link.s @@ -29,7 +29,7 @@ _08009498: cmp r0, r1 beq _080094C4 bl sub_800B210 - bl sub_80098B8 + bl CloseLink bl RestoreSerialTimer3IntrHandlers movs r0, 0 b _080094CE @@ -507,8 +507,8 @@ _080098B0: .4byte gUnknown_3003F30 _080098B4: .4byte gUnknown_3003F2C thumb_func_end sub_8009804 - thumb_func_start sub_80098B8 -sub_80098B8: @ 80098B8 + thumb_func_start CloseLink +CloseLink: @ 80098B8 push {r4,lr} ldr r0, _080098DC @ =gReceivedRemoteLinkPlayers movs r4, 0 @@ -529,7 +529,7 @@ _080098CC: _080098DC: .4byte gReceivedRemoteLinkPlayers _080098E0: .4byte gWirelessCommType _080098E4: .4byte gLinkOpen - thumb_func_end sub_80098B8 + thumb_func_end CloseLink thumb_func_start TestBlockTransfer TestBlockTransfer: @ 80098E8 @@ -870,7 +870,7 @@ _08009B7E: movs r0, 0 strh r0, [r3] lsls r4, r6, 4 - ldr r5, _08009BCC @ =gUnknown_3003ED0 + ldr r5, _08009BCC @ =gRecvCmds adds r2, r4, r5 ldrh r0, [r2] mov r12, r1 @@ -906,7 +906,7 @@ _08009BC4: b _08009E3E .align 2, 0 _08009BC8: .4byte gUnknown_3003E60 -_08009BCC: .4byte gUnknown_3003ED0 +_08009BCC: .4byte gRecvCmds _08009BD0: .4byte 0x00005fff _08009BD4: .4byte 0x00004444 _08009BD8: .4byte 0x00002222 @@ -1006,12 +1006,12 @@ _08009C94: adds r1, r0 movs r2, 0 strh r2, [r1] - ldr r0, _08009CBC @ =gUnknown_3003ED0 + ldr r0, _08009CBC @ =gRecvCmds adds r0, 0x2 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r1, 0x2] - ldr r0, _08009CBC @ =gUnknown_3003ED0 + ldr r0, _08009CBC @ =gRecvCmds adds r0, 0x4 adds r0, r4, r0 ldrh r0, [r0] @@ -1019,7 +1019,7 @@ _08009C94: b _08009E3E .align 2, 0 _08009CB8: .4byte gUnknown_3000E18 -_08009CBC: .4byte gUnknown_3003ED0 +_08009CBC: .4byte gRecvCmds _08009CC0: mov r3, r12 adds r0, r3, r6 @@ -1037,7 +1037,7 @@ _08009CC0: mov r8, r0 movs r2, 0 adds r5, r3, 0 - ldr r7, _08009D0C @ =gUnknown_3003ED0 + ldr r7, _08009D0C @ =gRecvCmds adds r3, r4, 0 _08009CE4: ldrh r1, [r5] @@ -1059,13 +1059,13 @@ _08009CE4: .align 2, 0 _08009D04: .4byte gUnknown_3000E18 _08009D08: .4byte gDecompressionBuffer -_08009D0C: .4byte gUnknown_3003ED0 +_08009D0C: .4byte gRecvCmds _08009D10: movs r2, 0 ldr r1, _08009DC4 @ =gBlockRecvBuffer mov r9, r1 adds r7, r3, 0 - ldr r3, _08009DC8 @ =gUnknown_3003ED0 + ldr r3, _08009DC8 @ =gRecvCmds mov r8, r3 lsls r5, r6, 8 adds r3, r4, 0 @@ -1153,7 +1153,7 @@ _08009DBC: b _08009E3E .align 2, 0 _08009DC4: .4byte gBlockRecvBuffer -_08009DC8: .4byte gUnknown_3003ED0 +_08009DC8: .4byte gRecvCmds _08009DCC: .4byte gUnknown_3003EB8 _08009DD0: .4byte gLinkPlayers _08009DD4: .4byte gUnknown_82345C0 @@ -1187,7 +1187,7 @@ _08009E08: b _08009E3E _08009E0E: ldr r3, _08009E2C @ =gUnknown_8234598 - ldr r0, _08009E30 @ =gUnknown_3003ED0 + ldr r0, _08009E30 @ =gRecvCmds adds r0, 0x2 adds r0, r4, r0 ldrh r2, [r0] @@ -1202,9 +1202,9 @@ _08009E0E: b _08009E3E .align 2, 0 _08009E2C: .4byte gUnknown_8234598 -_08009E30: .4byte gUnknown_3003ED0 +_08009E30: .4byte gRecvCmds _08009E34: - ldr r0, _08009E5C @ =gUnknown_3003ED0 + ldr r0, _08009E5C @ =gRecvCmds adds r0, 0x2 adds r0, r4, r0 ldrh r0, [r0] @@ -1226,7 +1226,7 @@ _08009E4A: pop {r0} bx r0 .align 2, 0 -_08009E5C: .4byte gUnknown_3003ED0 +_08009E5C: .4byte gRecvCmds thumb_func_end sub_8009B70 thumb_func_start sub_8009E60 @@ -1596,7 +1596,7 @@ _0800A100: bne _0800A112 ldr r0, _0800A11C @ =gUnknown_3003EAC strb r4, [r0] - bl sub_80098B8 + bl CloseLink _0800A112: movs r6, 0 ldr r4, _0800A120 @ =gLinkPlayers @@ -2122,7 +2122,7 @@ sub_800A4BC: @ 800A4BC ldrb r0, [r0] cmp r0, 0x1 bne _0800A4D4 - bl sub_80FA4F8 + bl IsNoOneConnected lsls r0, 24 lsrs r0, 24 b _0800A4E2 @@ -2833,7 +2833,7 @@ _0800A9E6: ldr r1, _0800AA1C @ =gUnknown_3003EAC movs r0, 0x1 strb r0, [r1] - bl sub_80098B8 + bl CloseLink ldr r0, _0800AA20 @ =c2_800ACD4 bl SetMainCallback2 _0800A9F6: @@ -3045,7 +3045,7 @@ _0800AB5C: ldr r0, _0800AB90 @ =gLinkVSyncDisabled movs r4, 0x1 strb r4, [r0] - bl sub_80098B8 + bl CloseLink ldr r1, _0800AB94 @ =gUnknown_3003F80 movs r0, 0 str r0, [r1] @@ -3198,7 +3198,7 @@ _0800AC8E: ldr r1, _0800ACB8 @ =gUnknown_3003EAC movs r0, 0x1 strb r0, [r1] - bl sub_80098B8 + bl CloseLink _0800AC98: pop {r0} bx r0 @@ -3252,7 +3252,7 @@ c2_800ACD4: @ 800ACD4 movs r2, 0x2 bl FillPalette bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop ldr r1, _0800ADF0 @ =gWirelessCommType ldrb r0, [r1] cmp r0, 0 @@ -3308,7 +3308,7 @@ _0800AD30: lsls r1, 8 movs r0, 0 bl ClearGpuRegBits - ldr r0, _0800AE08 @ =gUnknown_841F408 + ldr r0, _0800AE08 @ =gTMCaseMainWindowPalette movs r1, 0xF0 movs r2, 0x20 bl LoadPalette @@ -3343,7 +3343,7 @@ _0800ADF8: .4byte sub_800978C _0800ADFC: .4byte gUnknown_82345E8 _0800AE00: .4byte gUnknown_2022860 _0800AE04: .4byte gUnknown_82345F0 -_0800AE08: .4byte gUnknown_841F408 +_0800AE08: .4byte gTMCaseMainWindowPalette _0800AE0C: .4byte gSoftResetDisabled _0800AE10: .4byte sub_80094D4 _0800AE14: .4byte gMain @@ -3360,7 +3360,7 @@ sub_800AE1C: @ 800AE1C movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _0800AEBC @ =gWirelessLinkDisplayBin movs r0, 0x1 movs r2, 0 @@ -3387,7 +3387,7 @@ sub_800AE1C: @ 800AE1C movs r1, 0x3 movs r2, 0x2 movs r3, 0x5 - bl box_print + bl AddTextPrinterParameterized3 str r4, [sp] str r5, [sp, 0x4] ldr r0, _0800AECC @ =gUnknown_841DF05 @@ -3396,7 +3396,7 @@ sub_800AE1C: @ 800AE1C movs r1, 0x3 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 bl PutWindowTilemap movs r0, 0x2 @@ -3444,7 +3444,7 @@ sub_800AED0: @ 800AED0 movs r1, 0x3 movs r2, 0x2 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x2 @@ -3522,7 +3522,7 @@ _0800AF7A: movs r1, 0x3 movs r2, 0x2 movs r3, 0x14 - bl box_print + bl AddTextPrinterParameterized3 b _0800AFC4 .align 2, 0 _0800AF9C: .4byte gWirelessCommType @@ -3541,7 +3541,7 @@ _0800AFA8: movs r1, 0x3 movs r2, 0x2 movs r3, 0x14 - bl box_print + bl AddTextPrinterParameterized3 _0800AFC4: ldr r0, _0800B004 @ =gMain movs r2, 0x87 @@ -3779,7 +3779,7 @@ HandleLinkConnection: @ 800B178 bne _0800B1C8 ldr r0, _0800B1B4 @ =gUnknown_3003F84 ldr r1, _0800B1B8 @ =gUnknown_3003F50 - ldr r2, _0800B1BC @ =gUnknown_3003ED0 + ldr r2, _0800B1BC @ =gRecvCmds bl LinkMain1 ldr r4, _0800B1C0 @ =gUnknown_3003F20 str r0, [r4] @@ -3801,7 +3801,7 @@ _0800B1AA: _0800B1B0: .4byte gWirelessCommType _0800B1B4: .4byte gUnknown_3003F84 _0800B1B8: .4byte gUnknown_3003F50 -_0800B1BC: .4byte gUnknown_3003ED0 +_0800B1BC: .4byte gRecvCmds _0800B1C0: .4byte gUnknown_3003F20 _0800B1C4: .4byte gMain + 0x2C _0800B1C8: @@ -4686,7 +4686,7 @@ _0800B85C: _0800B860: adds r0, r2, 0 strh r0, [r1] - ldr r2, _0800B8BC @ =gUnknown_3003FB4 + ldr r2, _0800B8BC @ =gSioMlt_Recv ldr r3, _0800B8C0 @ =0x04000120 ldr r0, [r3] ldr r1, [r3, 0x4] @@ -4731,7 +4731,7 @@ _0800B8A0: .align 2, 0 _0800B8B4: .4byte 0x0400012a _0800B8B8: .4byte 0x0000b9a0 -_0800B8BC: .4byte gUnknown_3003FB4 +_0800B8BC: .4byte gSioMlt_Recv _0800B8C0: .4byte 0x04000120 _0800B8C4: .4byte gUnknown_3000E6B _0800B8C8: .4byte 0x00008fff diff --git a/asm/link_rfu.s b/asm/link_rfu.s index 08f81f729..a1d543dd6 100644 --- a/asm/link_rfu.s +++ b/asm/link_rfu.s @@ -3259,7 +3259,7 @@ sub_80FEC54: @ 80FEC54 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _080FEC70 _080FEC62: @@ -4359,7 +4359,7 @@ _080FF4A2: thumb_func_start sub_80FF4A8 sub_80FF4A8: @ 80FF4A8 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4400,7 +4400,7 @@ _080FF4EA: thumb_func_start sub_80FF4F0 sub_80FF4F0: @ 80FF4F0 push {r4,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4446,7 +4446,7 @@ _080FF53E: thumb_func_start sub_80FF544 sub_80FF544: @ 80FF544 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -6079,7 +6079,7 @@ _08100038: movs r0, 0x3 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _08100068 @ =gUnknown_8E99E74 movs r0, 0x3 movs r2, 0 @@ -6106,7 +6106,7 @@ _0810006C: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap movs r0, 0x1 bl CopyBgTilemapBufferToVram b _08100104 @@ -7823,7 +7823,7 @@ _08100E0A: str r0, [sp, 0x8] mov r0, r12 adds r2, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x10 pop {r3,r4} mov r8, r3 @@ -7851,11 +7851,11 @@ sub_8100E34: @ 8100E34 movs r0, 0x1 movs r1, 0x1 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0x1 movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl sub_8100E7C movs r0, 0x1 @@ -7964,7 +7964,7 @@ sub_8100F18: @ 8100F18 movs r1, 0x1 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0xC pop {r0} bx r0 diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s index d36eeca20..feb7c886f 100644 --- a/asm/link_rfu_2.s +++ b/asm/link_rfu_2.s @@ -77,7 +77,7 @@ _080F863E: bl CpuSet mov r0, r8 strh r5, [r0] - ldr r1, _080F86B4 @ =gUnknown_3003ED0 + ldr r1, _080F86B4 @ =gRecvCmds ldr r2, _080F86B8 @ =0x01000028 bl CpuSet mov r0, r9 @@ -99,7 +99,7 @@ _080F86A4: .4byte gUnknown_30054BC _080F86A8: .4byte 0x00000634 _080F86AC: .4byte gUnknown_3003F50 _080F86B0: .4byte 0x01000008 -_080F86B4: .4byte gUnknown_3003ED0 +_080F86B4: .4byte gRecvCmds _080F86B8: .4byte 0x01000028 _080F86BC: .4byte gLinkPlayers _080F86C0: .4byte 0x01000046 @@ -1228,7 +1228,7 @@ sub_80F8FD4: @ 80F8FD4 push {r4-r7,lr} sub sp, 0x4 movs r2, 0 - ldr r7, _080F9028 @ =gUnknown_3003ED0 + ldr r7, _080F9028 @ =gRecvCmds ldr r0, _080F902C @ =gUnknown_3005450 adds r6, r7, 0 ldr r1, _080F9030 @ =0x0000093f @@ -1268,7 +1268,7 @@ _080F8FF4: pop {r0} bx r0 .align 2, 0 -_080F9028: .4byte gUnknown_3003ED0 +_080F9028: .4byte gRecvCmds _080F902C: .4byte gUnknown_3005450 _080F9030: .4byte 0x0000093f _080F9034: .4byte 0x01000028 @@ -1278,7 +1278,7 @@ _080F9034: .4byte 0x01000028 sub_80F9038: @ 80F9038 push {lr} ldr r3, _080F9064 @ =gUnknown_3003F50 - ldr r2, _080F9068 @ =gUnknown_3003ED0 + ldr r2, _080F9068 @ =gRecvCmds movs r1, 0x6 _080F9040: ldrh r0, [r3] @@ -1301,7 +1301,7 @@ _080F9056: bx r0 .align 2, 0 _080F9064: .4byte gUnknown_3003F50 -_080F9068: .4byte gUnknown_3003ED0 +_080F9068: .4byte gRecvCmds thumb_func_end sub_80F9038 thumb_func_start sub_80F906C @@ -1375,7 +1375,7 @@ _080F90E8: _080F90EC: .4byte gUnknown_3007460 _080F90F0: movs r3, 0 - ldr r4, _080F9118 @ =gUnknown_3003ED0 + ldr r4, _080F9118 @ =gRecvCmds _080F90F4: movs r2, 0 lsls r0, r3, 4 @@ -1397,7 +1397,7 @@ _080F9110: pop {r1} bx r1 .align 2, 0 -_080F9118: .4byte gUnknown_3003ED0 +_080F9118: .4byte gRecvCmds thumb_func_end sub_80F90DC thumb_func_start sub_80F911C @@ -1664,7 +1664,7 @@ _080F9304: str r2, [sp, 0x4] adds r5, 0x1 str r5, [sp] - ldr r1, _080F9450 @ =gUnknown_3003ED0 + ldr r1, _080F9450 @ =gRecvCmds mov r9, r1 adds r5, r3, 0 adds r7, r4, 0 @@ -1791,7 +1791,7 @@ _080F93FA: _080F9444: .4byte gUnknown_3005450 _080F9448: .4byte 0x000009a6 _080F944C: .4byte gUnknown_3005DE6 -_080F9450: .4byte gUnknown_3003ED0 +_080F9450: .4byte gRecvCmds _080F9454: .4byte 0x0000099d _080F9458: .4byte 0x00000991 _080F945C: .4byte gUnknown_203AC08 @@ -1904,7 +1904,7 @@ sub_80F9514: @ 80F9514 mov r1, sp bl sub_80FC6E8 movs r1, 0 - ldr r0, _080F963C @ =gUnknown_3003ED0 + ldr r0, _080F963C @ =gRecvCmds mov r12, r0 _080F952A: movs r4, 0 @@ -2038,7 +2038,7 @@ _080F9628: bx r1 .align 2, 0 _080F9638: .4byte gUnknown_3005574 -_080F963C: .4byte gUnknown_3003ED0 +_080F963C: .4byte gRecvCmds _080F9640: .4byte gUnknown_3005E10 _080F9644: .4byte gUnknown_3005450 _080F9648: .4byte 0x0000099c @@ -2348,7 +2348,7 @@ sub_80F9868: @ 80F9868 _080F9876: mov r1, r8 lsls r5, r1, 4 - ldr r2, _080F98B4 @ =gUnknown_3003ED0 + ldr r2, _080F98B4 @ =gRecvCmds adds r0, r5, r2 ldrh r7, [r0] movs r3, 0xFF @@ -2379,7 +2379,7 @@ _080F98A2: _080F98B0: b _080F9BF4 .align 2, 0 -_080F98B4: .4byte gUnknown_3003ED0 +_080F98B4: .4byte gRecvCmds _080F98B8: movs r0, 0xEE lsls r0, 7 @@ -2562,7 +2562,7 @@ _080F99FE: adds r2, r4, 0x1 lsls r0, r2, 1 adds r0, r3 - ldr r4, _080F9A90 @ =gUnknown_3003ED0 + ldr r4, _080F9A90 @ =gRecvCmds adds r0, r4 ldrh r0, [r0] strh r0, [r1] @@ -2623,7 +2623,7 @@ _080F9A80: .align 2, 0 _080F9A88: .4byte gUnknown_3005450 _080F9A8C: .4byte gBlockRecvBuffer -_080F9A90: .4byte gUnknown_3003ED0 +_080F9A90: .4byte gRecvCmds _080F9A94: .4byte gUnknown_843EBD4 _080F9A98: .4byte gReceivedRemoteLinkPlayers _080F9A9C: @@ -2703,7 +2703,7 @@ _080F9B00: adds r0, r7, r2 strb r1, [r0] _080F9B38: - ldr r0, _080F9B64 @ =gUnknown_3003ED0 + ldr r0, _080F9B64 @ =gRecvCmds adds r0, 0x6 adds r0, r5, r0 ldrh r0, [r0] @@ -2718,7 +2718,7 @@ _080F9B54: .4byte gUnknown_3003ED2 _080F9B58: .4byte gUnknown_3007460 _080F9B5C: .4byte gUnknown_3003ED4 _080F9B60: .4byte 0x0000099c -_080F9B64: .4byte gUnknown_3003ED0 +_080F9B64: .4byte gRecvCmds _080F9B68: movs r0, 0xEE lsls r0, 8 @@ -2732,7 +2732,7 @@ _080F9B68: adds r0, r5, r4 ldrh r0, [r0] strh r0, [r1, 0x4] - ldr r0, _080F9B9C @ =gUnknown_3003ED0 + ldr r0, _080F9B9C @ =gRecvCmds adds r0, 0x6 adds r0, r5, r0 ldrh r0, [r0] @@ -2742,7 +2742,7 @@ _080F9B68: _080F9B90: .4byte gUnknown_3003F50 _080F9B94: .4byte gUnknown_3003ED2 _080F9B98: .4byte gUnknown_3003ED4 -_080F9B9C: .4byte gUnknown_3003ED0 +_080F9B9C: .4byte gRecvCmds _080F9BA0: ldr r4, _080F9BD0 @ =gUnknown_3005450 ldrb r0, [r4, 0xC] @@ -3267,7 +3267,7 @@ _080F9F74: .4byte gUnknown_3003F50 _080F9F78: .4byte gUnknown_3005450 _080F9F7C: bl GetMultiplayerId - ldr r1, _080F9FA0 @ =gUnknown_3003ED0 + ldr r1, _080F9FA0 @ =gRecvCmds lsls r0, 24 lsrs r0, 20 adds r0, r1 @@ -3285,7 +3285,7 @@ _080F9F98: pop {r0} bx r0 .align 2, 0 -_080F9FA0: .4byte gUnknown_3003ED0 +_080F9FA0: .4byte gRecvCmds _080F9FA4: .4byte sub_80F9FA8 thumb_func_end rfufunc_80F9F44 @@ -3378,7 +3378,7 @@ rfufunc_80FA020: @ 80FA020 strh r0, [r3] movs r4, 0 mov r9, r5 - ldr r0, _080FA0D4 @ =gUnknown_3003ED0 + ldr r0, _080FA0D4 @ =gRecvCmds mov r12, r0 lsls r5, r6, 4 adds r7, r2, 0 @@ -3441,7 +3441,7 @@ _080FA05C: _080FA0C8: .4byte gUnknown_3005450 _080FA0CC: .4byte gUnknown_3003F50 _080FA0D0: .4byte 0xffff8900 -_080FA0D4: .4byte gUnknown_3003ED0 +_080FA0D4: .4byte gRecvCmds _080FA0D8: .4byte gUnknown_843EBD4 _080FA0DC: .4byte gUnknown_203AC08 _080FA0E0: @@ -4012,8 +4012,8 @@ sub_80FA4EC: @ 80FA4EC _080FA4F4: .4byte gUnknown_3005450 thumb_func_end sub_80FA4EC - thumb_func_start sub_80FA4F8 -sub_80FA4F8: @ 80FA4F8 + thumb_func_start IsNoOneConnected +IsNoOneConnected: @ 80FA4F8 push {lr} movs r1, 0 ldr r0, _080FA50C @ =gUnknown_3005450 @@ -4027,7 +4027,7 @@ _080FA506: bx r1 .align 2, 0 _080FA50C: .4byte gUnknown_3005450 - thumb_func_end sub_80FA4F8 + thumb_func_end IsNoOneConnected thumb_func_start sub_80FA510 sub_80FA510: @ 80FA510 @@ -5152,7 +5152,7 @@ sub_80FAD98: @ 80FAD98 bne _080FAE30 ldr r6, _080FAE18 @ =gMain ldr r1, [r6, 0x4] - ldr r0, _080FAE1C @ =sub_814208C + ldr r0, _080FAE1C @ =c2_mystery_gift_e_reader_run cmp r1, r0 bne _080FADC0 ldr r1, _080FAE20 @ =gWirelessCommType @@ -5193,13 +5193,13 @@ _080FADF8: ldrb r0, [r7] movs r0, 0x2 strb r0, [r7] - bl sub_80098B8 + bl CloseLink b _080FAE62 .align 2, 0 _080FAE10: .4byte gUnknown_3005450 _080FAE14: .4byte gUnknown_3005E10 _080FAE18: .4byte gMain -_080FAE1C: .4byte sub_814208C +_080FAE1C: .4byte c2_mystery_gift_e_reader_run _080FAE20: .4byte gWirelessCommType _080FAE24: .4byte c2_800ACD4 _080FAE28: .4byte 0x0000069e @@ -6835,7 +6835,7 @@ sub_80FBA44: @ 80FBA44 sub sp, 0x4 movs r0, 0 str r0, [sp] - ldr r1, _080FBA5C @ =gUnknown_3003ED0 + ldr r1, _080FBA5C @ =gRecvCmds ldr r2, _080FBA60 @ =0x05000014 mov r0, sp bl CpuSet @@ -6843,7 +6843,7 @@ sub_80FBA44: @ 80FBA44 pop {r0} bx r0 .align 2, 0 -_080FBA5C: .4byte gUnknown_3003ED0 +_080FBA5C: .4byte gRecvCmds _080FBA60: .4byte 0x05000014 thumb_func_end sub_80FBA44 @@ -9466,8 +9466,8 @@ _080FCE3C: .4byte 0x00001234 _080FCE40: .4byte gUnknown_843F274 thumb_func_end sub_80FCD74 - thumb_func_start sub_80FCE44 -sub_80FCE44: @ 80FCE44 + thumb_func_start DestroyWirelessStatusIndicatorSprite +DestroyWirelessStatusIndicatorSprite: @ 80FCE44 push {r4,lr} ldr r4, _080FCE90 @ =gSprites ldr r3, _080FCE94 @ =gUnknown_203ACE4 @@ -9512,7 +9512,7 @@ _080FCE98: .4byte 0x00001234 _080FCE9C: .4byte gMain _080FCEA0: .4byte gDummyOamData _080FCEA4: .4byte 0x070003e8 - thumb_func_end sub_80FCE44 + thumb_func_end DestroyWirelessStatusIndicatorSprite thumb_func_start sub_80FCEA8 sub_80FCEA8: @ 80FCEA8 @@ -9830,7 +9830,7 @@ _080FD072: lsrs r0, 24 cmp r0, 0x1 bne _080FD106 - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite _080FD106: pop {r3} mov r8, r3 diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index c5947ebc0..50121e847 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -401,8 +401,8 @@ _08115B5C: bl CopyWindowToVram ldrb r0, [r5, 0xF] movs r1, 0 - bl sub_80F6F1C - ldr r0, _08115C58 @ =gUnknown_3005E70 + bl DrawStdWindowFrame + ldr r0, _08115C58 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, _08115C5C @ =gUnknown_8456D34 ldm r1!, {r3,r6,r7} @@ -417,7 +417,7 @@ _08115B5C: strb r0, [r5, 0x12] ldrb r0, [r5, 0x11] movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame ldrb r0, [r5, 0x11] bl PutWindowTilemap ldrb r0, [r5, 0x11] @@ -434,7 +434,7 @@ _08115C48: .4byte gUnknown_8456CD0 _08115C4C: .4byte gUnknown_8456CFC _08115C50: .4byte gUnknown_8456D04 _08115C54: .4byte gUnknown_845747C -_08115C58: .4byte gUnknown_3005E70 +_08115C58: .4byte gMultiuseListMenuTemplate _08115C5C: .4byte gUnknown_8456D34 _08115C60: ldr r0, _08115C98 @ =gStringVar1 @@ -1071,7 +1071,7 @@ _0811615C: .align 2, 0 _08116164: .4byte gUnknown_8457610 _08116168: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite bl sub_80F8DC0 adds r0, r5, 0 bl sub_81161E4 @@ -1135,16 +1135,16 @@ sub_81161E4: @ 81161E4 bl ClearWindowTilemap ldrb r0, [r4, 0x11] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r4, 0x12] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x10] bl ClearWindowTilemap ldrb r0, [r4, 0xF] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r4, 0x11] @@ -1919,8 +1919,8 @@ _08116838: bl CopyWindowToVram ldrb r0, [r6, 0xB] movs r1, 0 - bl sub_80F6F1C - ldr r0, _081168FC @ =gUnknown_3005E70 + bl DrawStdWindowFrame + ldr r0, _081168FC @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, _08116900 @ =gUnknown_8456DDC ldm r1!, {r3,r5,r7} @@ -1935,7 +1935,7 @@ _08116838: strb r0, [r6, 0xE] ldrb r0, [r6, 0xD] movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame ldrb r0, [r6, 0xD] bl PutWindowTilemap ldrb r0, [r6, 0xD] @@ -1955,7 +1955,7 @@ _081168EC: .4byte gUnknown_8456CD0 _081168F0: .4byte gUnknown_8456D4C _081168F4: .4byte gUnknown_8456D54 _081168F8: .4byte gUnknown_8458FC8 -_081168FC: .4byte gUnknown_3005E70 +_081168FC: .4byte gMultiuseListMenuTemplate _08116900: .4byte gUnknown_8456DDC _08116904: bl sub_8116FE4 @@ -2318,16 +2318,16 @@ _08116C10: bl ClearWindowTilemap ldrb r0, [r6, 0xD] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r6, 0xE] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r6, 0xC] bl ClearWindowTilemap ldrb r0, [r6, 0xB] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r6, 0xD] @@ -2347,7 +2347,7 @@ _08116C10: strb r0, [r6, 0x8] b _08116D06 _08116C68: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite adds r5, r6, 0 adds r5, 0x9 ldr r4, _08116C90 @ =gUnknown_8457754 @@ -2368,14 +2368,14 @@ _08116C68: _08116C90: .4byte gUnknown_8457754 _08116C94: .4byte gSpecialVar_Result _08116C98: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite ldr r0, _08116CA4 @ =gSpecialVar_Result movs r1, 0x5 b _08116CDC .align 2, 0 _08116CA4: .4byte gSpecialVar_Result _08116CA8: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite adds r5, r6, 0 adds r5, 0x9 ldr r4, _08116CC4 @ =gUnknown_8457754 @@ -3088,7 +3088,7 @@ _08117210: movs r0, 0x6 strb r0, [r1, 0x1] ldr r1, _08117274 @ =gMain - ldr r0, _08117278 @ =c2_exit_to_overworld_2_switch + ldr r0, _08117278 @ =CB2_ReturnToField str r0, [r1, 0x8] ldr r0, _0811727C @ =sub_8050138 bl SetMainCallback2 @@ -3107,7 +3107,7 @@ _08117268: .4byte gUnknown_2031CCC _0811726C: .4byte gBlockRecvBuffer _08117270: .4byte gUnknown_2031DA4 _08117274: .4byte gMain -_08117278: .4byte c2_exit_to_overworld_2_switch +_08117278: .4byte CB2_ReturnToField _0811727C: .4byte sub_8050138 thumb_func_end sub_8117130 @@ -3251,7 +3251,7 @@ _08117384: eors r0, r1 lsls r0, 24 lsrs r0, 24 - ldr r1, _081173BC @ =c2_exit_to_overworld_2_switch + ldr r1, _081173BC @ =CB2_ReturnToField bl sub_808B700 _081173A2: bl RunTasks @@ -3263,7 +3263,7 @@ _081173A2: bx r0 .align 2, 0 _081173B8: .4byte sub_8117280 -_081173BC: .4byte c2_exit_to_overworld_2_switch +_081173BC: .4byte CB2_ReturnToField thumb_func_end sub_8117354 thumb_func_start sub_81173C0 @@ -3366,7 +3366,7 @@ sub_8117440: @ 8117440 str r5, [sp, 0x4] movs r0, 0 mov r3, r8 - bl saved_warp2_set_2 + bl SetDynamicWarpWithCoords bl warp_in add sp, 0x8 pop {r3} @@ -3645,7 +3645,7 @@ _08117640: .4byte _081178E0 .4byte _08117784 _08117784: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r1, _08117798 @ =gMain ldr r0, _0811779C @ =sub_811C1C8 str r0, [r1, 0x8] @@ -3656,7 +3656,7 @@ _08117784: _08117798: .4byte gMain _0811779C: .4byte sub_811C1C8 _081177A0: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _081177C4 @ =gBlockSendBuffer movs r1, 0x1 bl sub_8117594 @@ -3672,7 +3672,7 @@ _081177A0: .align 2, 0 _081177C4: .4byte gBlockSendBuffer _081177C8: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps bl sp000_heal_pokemon bl SavePlayerParty bl LoadPlayerBag @@ -3688,7 +3688,7 @@ _081177C8: .align 2, 0 _081177EC: .4byte gBlockSendBuffer _081177F0: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps bl sp000_heal_pokemon bl SavePlayerParty bl LoadPlayerBag @@ -3706,7 +3706,7 @@ _08117818: ldr r0, _0811783C @ =gBlockSendBuffer movs r1, 0x1 bl sub_8117594 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps movs r0, 0x3 str r0, [sp] movs r0, 0 @@ -3911,8 +3911,8 @@ _081179C4: .4byte sub_81175BC _081179C8: .4byte gTasks thumb_func_end sub_81179A4 - thumb_func_start sub_81179CC -sub_81179CC: @ 81179CC + thumb_func_start MEvent_CreateTask_Leader +MEvent_CreateTask_Leader: @ 81179CC push {r4,lr} adds r4, r0, 0 ldr r0, _081179FC @ =sub_8117A0C @@ -3941,7 +3941,7 @@ _081179FC: .4byte sub_8117A0C _08117A00: .4byte gUnknown_203B05C _08117A04: .4byte gTasks+0x8 _08117A08: .4byte gSpecialVar_Result - thumb_func_end sub_81179CC + thumb_func_end MEvent_CreateTask_Leader thumb_func_start sub_8117A0C sub_8117A0C: @ 8117A0C @@ -4056,7 +4056,7 @@ _08117AB8: ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] - bl sub_81435D4 + bl GetMysteryGiftBaseBlock lsls r0, 16 ldr r2, _08117B70 @ =0x0000ffff ldr r1, [sp, 0x4] @@ -4067,8 +4067,8 @@ _08117AB8: bl AddWindow strb r0, [r5, 0xF] ldrb r0, [r5, 0xF] - bl sub_814240C - ldr r0, _08117B74 @ =gUnknown_3005E70 + bl MG_DrawTextBorder + ldr r0, _08117B74 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, _08117B78 @ =gUnknown_8456D34 ldm r1!, {r3,r4,r6} @@ -4089,7 +4089,7 @@ _08117AB8: .align 2, 0 _08117B6C: .4byte gUnknown_8456CFC _08117B70: .4byte 0x0000ffff -_08117B74: .4byte gUnknown_3005E70 +_08117B74: .4byte gMultiuseListMenuTemplate _08117B78: .4byte gUnknown_8456D34 _08117B7C: ldr r0, _08117B9C @ =gStringVar1 @@ -4113,7 +4113,7 @@ _08117BA4: .4byte gUnknown_203B058 _08117BA8: .4byte gStringVar4 _08117BAC: ldr r0, _08117BB8 @ =gStringVar4 - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0x4 strb r0, [r5, 0xC] b _08117ECA @@ -4134,7 +4134,7 @@ _08117BBC: _08117BD4: movs r0, 0xD strb r0, [r5, 0xC] - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite b _08117ECA .align 2, 0 _08117BE0: .4byte gMain @@ -4142,7 +4142,7 @@ _08117BE4: adds r0, r5, 0 adds r0, 0xD ldr r1, _08117C08 @ =gUnknown_84577F8 - bl mevent_0814257C + bl MG_PrintTextOnWindow1AndWaitButton cmp r0, 0 bne _08117BF4 b _08117ECA @@ -4169,7 +4169,7 @@ _08117C12: adds r1, 0x14 ldr r3, _08117C38 @ =gStringVar4 movs r2, 0 - bl sub_81427A0 + bl mevent_message_print_and_prompt_yes_no lsls r0, 24 asrs r4, r0, 24 cmp r4, 0 @@ -4346,7 +4346,7 @@ _08117D88: b _08117ECA _08117D94: ldr r0, _08117DA0 @ =gStringVar4 - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0xA strb r0, [r5, 0xC] b _08117ECA @@ -4393,12 +4393,12 @@ _08117DE8: strb r0, [r5, 0xC] b _08117ECA _08117DEE: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite bl sub_80F8DC0 ldrb r0, [r5, 0x12] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xF] @@ -4416,7 +4416,7 @@ _08117E26: adds r0, r5, 0 adds r0, 0xD ldr r1, _08117E44 @ =gUnknown_84571B8 - bl mevent_0814257C + bl MG_PrintTextOnWindow1AndWaitButton cmp r0, 0 beq _08117ECA adds r0, r4, 0 @@ -4457,7 +4457,7 @@ _08117E80: ldrb r0, [r5, 0x12] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xF] @@ -4490,8 +4490,8 @@ _08117ECA: bx r0 thumb_func_end sub_8117A0C - thumb_func_start sub_8117ED4 -sub_8117ED4: @ 8117ED4 + thumb_func_start MEvent_CreateTask_CardOrNewsWithFriend +MEvent_CreateTask_CardOrNewsWithFriend: @ 8117ED4 push {r4,lr} adds r4, r0, 0 ldr r0, _08117F0C @ =sub_8117F20 @@ -4524,7 +4524,7 @@ _08117F10: .4byte gUnknown_203B05C _08117F14: .4byte gTasks+0x8 _08117F18: .4byte gUnknown_3002028 _08117F1C: .4byte gSpecialVar_Result - thumb_func_end sub_8117ED4 + thumb_func_end MEvent_CreateTask_CardOrNewsWithFriend thumb_func_start sub_8117F20 sub_8117F20: @ 8117F20 @@ -4585,7 +4585,7 @@ _08117F7C: b _08118288 _08117FB0: ldr r0, _08117FBC @ =gUnknown_8458FE4 - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0x2 strb r0, [r5, 0x8] b _08118288 @@ -4609,7 +4609,7 @@ _08117FC0: ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] - bl sub_81435D4 + bl GetMysteryGiftBaseBlock lsls r0, 16 ldr r2, _08118060 @ =0x0000ffff ldr r1, [sp, 0x4] @@ -4623,8 +4623,8 @@ _08117FC0: bl AddWindow strb r0, [r5, 0xD] ldrb r0, [r5, 0xB] - bl sub_814240C - ldr r0, _08118068 @ =gUnknown_3005E70 + bl MG_DrawTextBorder + ldr r0, _08118068 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, _0811806C @ =gUnknown_8456DDC ldm r1!, {r3,r6,r7} @@ -4638,7 +4638,7 @@ _08117FC0: bl ListMenuInit strb r0, [r5, 0xE] ldrb r0, [r5, 0xD] - bl sub_814240C + bl MG_DrawTextBorder ldrb r0, [r5, 0xD] movs r1, 0x11 bl FillWindowPixelBuffer @@ -4659,7 +4659,7 @@ _08117FC0: _0811805C: .4byte gUnknown_8456D4C _08118060: .4byte 0x0000ffff _08118064: .4byte gUnknown_8456D54 -_08118068: .4byte gUnknown_3005E70 +_08118068: .4byte gMultiuseListMenuTemplate _0811806C: .4byte gUnknown_8456DDC _08118070: bl sub_8116FE4 @@ -4766,7 +4766,7 @@ _08118146: _0811814C: .4byte gMain _08118150: ldr r0, _08118184 @ =gUnknown_8459238 - bl sub_8142504 + bl AddTextPrinterToWindow1 ldr r4, _08118188 @ =gStringVar1 ldrb r0, [r5, 0xF] lsls r0, 5 @@ -4831,7 +4831,7 @@ _081181D0: b _08118288 _081181D6: ldr r0, _081181E8 @ =gUnknown_84576AC - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0 movs r1, 0 bl sub_80FB9E4 @@ -4842,7 +4842,7 @@ _081181EC: ldrb r0, [r5, 0xE] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xD] @@ -4868,17 +4868,17 @@ _08118222: adds r0, r4 ldr r1, [r0] adds r0, r5, 0 - bl mevent_0814257C + bl MG_PrintTextOnWindow1AndWaitButton cmp r0, 0 beq _08118288 - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite b _08118252 .align 2, 0 _08118244: .4byte gUnknown_8457838 _08118248: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite ldr r0, _08118264 @ =gUnknown_84571B8 - bl sub_8142504 + bl AddTextPrinterToWindow1 _08118252: adds r0, r6, 0 bl DestroyTask @@ -4910,8 +4910,8 @@ _08118288: bx r0 thumb_func_end sub_8117F20 - thumb_func_start sub_8118290 -sub_8118290: @ 8118290 + thumb_func_start MEvent_CreateTask_CardOrNewsOverWireless +MEvent_CreateTask_CardOrNewsOverWireless: @ 8118290 push {r4,lr} adds r4, r0, 0 ldr r0, _081182C8 @ =sub_81182DC @@ -4944,7 +4944,7 @@ _081182CC: .4byte gUnknown_203B05C _081182D0: .4byte gTasks+0x8 _081182D4: .4byte gUnknown_3002028 _081182D8: .4byte gSpecialVar_Result - thumb_func_end sub_8118290 + thumb_func_end MEvent_CreateTask_CardOrNewsOverWireless thumb_func_start sub_81182DC sub_81182DC: @ 81182DC @@ -5004,7 +5004,7 @@ _08118340: b _08118604 _0811836E: ldr r0, _0811837C @ =gUnknown_84591DC - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0x2 strb r0, [r5, 0x8] b _08118604 @@ -5030,7 +5030,7 @@ _08118380: ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] - bl sub_81435D4 + bl GetMysteryGiftBaseBlock lsls r0, 16 ldr r2, _081183FC @ =0x0000ffff ldr r1, [sp, 0x4] @@ -5041,8 +5041,8 @@ _08118380: bl AddWindow strb r0, [r5, 0xB] ldrb r0, [r5, 0xB] - bl sub_814240C - ldr r0, _08118400 @ =gUnknown_3005E70 + bl MG_DrawTextBorder + ldr r0, _08118400 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, _08118404 @ =gUnknown_8456DDC ldm r1!, {r3,r4,r6} @@ -5066,7 +5066,7 @@ _081183EC: .align 2, 0 _081183F8: .4byte gUnknown_8456D4C _081183FC: .4byte 0x0000ffff -_08118400: .4byte gUnknown_3005E70 +_08118400: .4byte gMultiuseListMenuTemplate _08118404: .4byte gUnknown_8456DDC _08118408: bl sub_8116FE4 @@ -5163,7 +5163,7 @@ _081184BC: _081184C4: .4byte gMain _081184C8: ldr r0, _081184FC @ =gUnknown_845928C - bl sub_8142504 + bl AddTextPrinterToWindow1 ldr r4, _08118500 @ =gStringVar1 ldrb r0, [r5, 0xF] lsls r0, 5 @@ -5228,7 +5228,7 @@ _08118548: b _08118604 _0811854E: ldr r0, _08118560 @ =gUnknown_845777C - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0 movs r1, 0 bl sub_80FB9E4 @@ -5242,7 +5242,7 @@ _08118564: ldrb r0, [r5, 0xE] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xB] @@ -5281,10 +5281,10 @@ _081185B4: adds r1, r2 ldr r1, [r1] _081185C2: - bl mevent_0814257C + bl MG_PrintTextOnWindow1AndWaitButton cmp r0, 0 beq _08118604 - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite adds r0, r4, 0 bl DestroyTask bl sub_80F8DC0 @@ -5404,7 +5404,7 @@ _081186AC: .4byte gStringVar4 thumb_func_start sub_81186B0 sub_81186B0: @ 81186B0 push {lr} - ldr r3, _081186C4 @ =gUnknown_201FF00 + ldr r3, _081186C4 @ =gDecompressionBuffer + 0x3F00 ldr r1, [r0] movs r2, 0x80 lsls r2, 1 @@ -5413,21 +5413,21 @@ sub_81186B0: @ 81186B0 pop {r0} bx r0 .align 2, 0 -_081186C4: .4byte gUnknown_201FF00 +_081186C4: .4byte gDecompressionBuffer + 0x3F00 thumb_func_end sub_81186B0 thumb_func_start sub_81186C8 sub_81186C8: @ 81186C8 push {lr} ldr r0, [r0] - ldr r1, _081186DC @ =gUnknown_201FF00 + ldr r1, _081186DC @ =gDecompressionBuffer + 0x3F00 movs r2, 0x80 lsls r2, 1 bl memcpy pop {r0} bx r0 .align 2, 0 -_081186DC: .4byte gUnknown_201FF00 +_081186DC: .4byte gDecompressionBuffer + 0x3F00 thumb_func_end sub_81186C8 thumb_func_start sub_81186E0 @@ -7001,19 +7001,19 @@ _08119512: ldr r1, _0811952C @ =gUnknown_203B06C movs r0, 0x1 strh r0, [r1] - ldr r1, _08119530 @ =gUnknown_3005020 + ldr r1, _08119530 @ =gFieldCallback ldr r0, _08119534 @ =sub_807DCE4 str r0, [r1] - ldr r1, _08119538 @ =c2_exit_to_overworld_2_switch + ldr r1, _08119538 @ =CB2_ReturnToField movs r0, 0x8 bl sub_81277F4 b _081198DC .align 2, 0 _08119528: .4byte gPaletteFade _0811952C: .4byte gUnknown_203B06C -_08119530: .4byte gUnknown_3005020 +_08119530: .4byte gFieldCallback _08119534: .4byte sub_807DCE4 -_08119538: .4byte c2_exit_to_overworld_2_switch +_08119538: .4byte CB2_ReturnToField _0811953C: adds r0, r6, 0 adds r0, 0x16 @@ -7354,10 +7354,10 @@ _081197CA: lsls r0, 22 lsrs r0, 22 strh r0, [r2] - ldr r1, _08119834 @ =gUnknown_3005020 + ldr r1, _08119834 @ =gFieldCallback ldr r0, _08119838 @ =sub_807DCE4 str r0, [r1] - ldr r1, _0811983C @ =c2_exit_to_overworld_2_switch + ldr r1, _0811983C @ =CB2_ReturnToField movs r0, 0x9 bl sub_81277F4 adds r0, r6, 0 @@ -7371,9 +7371,9 @@ _08119824: .4byte gUnknown_203B06C _08119828: .4byte gUnknown_203B064 _0811982C: .4byte gUnknown_203B06A _08119830: .4byte gUnknown_203B068 -_08119834: .4byte gUnknown_3005020 +_08119834: .4byte gFieldCallback _08119838: .4byte sub_807DCE4 -_0811983C: .4byte c2_exit_to_overworld_2_switch +_0811983C: .4byte CB2_ReturnToField _08119840: ldr r1, _08119890 @ =gUnknown_203B058 movs r0, 0x44 @@ -7477,7 +7477,7 @@ _08119900: .4byte gSpecialVar_Result sub_8119904: @ 8119904 push {r4,r5,lr} adds r2, r0, 0 - ldr r3, _08119940 @ =gUnknown_3003ED0 + ldr r3, _08119940 @ =gRecvCmds ldrh r5, [r3, 0x12] adds r4, r5, 0 cmp r4, 0 @@ -7506,7 +7506,7 @@ _08119938: pop {r0} bx r0 .align 2, 0 -_08119940: .4byte gUnknown_3003ED0 +_08119940: .4byte gRecvCmds thumb_func_end sub_8119904 thumb_func_start sub_8119944 @@ -8485,7 +8485,7 @@ sub_811A0B4: @ 811A0B4 bl sub_80F6E9C movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r0, _0811A0DC @ =gStringVar4 adds r1, r4, 0 bl StringExpandPlaceholders @@ -8531,7 +8531,7 @@ _0811A10A: bl sub_80F6E9C movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r0, _0811A12C @ =gStringVar4 adds r1, r5, 0 bl StringExpandPlaceholders @@ -8593,7 +8593,7 @@ _0811A174: negs r0, r0 b _0811A1A4 _0811A186: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 movs r2, 0x80 @@ -8624,7 +8624,7 @@ sub_811A1AC: @ 811A1AC lsrs r4, 24 adds r0, r4, 0 movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame adds r0, r4, 0 movs r1, 0xFF bl FillWindowPixelBuffer @@ -8659,7 +8659,7 @@ sub_811A1FC: @ 811A1FC lsrs r4, 24 adds r0, r4, 0 movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame adds r0, r4, 0 bl RemoveWindow pop {r4} @@ -8688,8 +8688,8 @@ _0811A234: strb r0, [r5] ldrb r0, [r5] movs r1, 0 - bl sub_80F6F1C - ldr r0, _0811A270 @ =gUnknown_3005E70 + bl DrawStdWindowFrame + ldr r0, _0811A270 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, [sp, 0x1C] ldm r1!, {r3,r4,r6} @@ -8711,7 +8711,7 @@ _0811A234: strb r0, [r7] b _0811A2DA .align 2, 0 -_0811A270: .4byte gUnknown_3005E70 +_0811A270: .4byte gMultiuseListMenuTemplate _0811A274: mov r3, r9 ldrb r0, [r3] @@ -8726,10 +8726,10 @@ _0811A274: ldrb r0, [r4] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r5] movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r5] bl RemoveWindow movs r0, 0 @@ -8747,10 +8747,10 @@ _0811A2B0: ldrb r0, [r6] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r5] movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r5] bl RemoveWindow strb r4, [r7] @@ -8794,8 +8794,8 @@ _0811A308: strb r0, [r4] ldrb r0, [r4] movs r1, 0 - bl sub_80F6F1C - ldr r0, _0811A354 @ =gUnknown_3005E70 + bl DrawStdWindowFrame + ldr r0, _0811A354 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, [sp, 0x20] ldm r1!, {r3,r6,r7} @@ -8818,7 +8818,7 @@ _0811A308: b _0811A3E6 .align 2, 0 _0811A350: .4byte gUnknown_8456F1C -_0811A354: .4byte gUnknown_3005E70 +_0811A354: .4byte gMultiuseListMenuTemplate _0811A358: ldrb r0, [r5] bl ListMenuHandleInput @@ -8842,10 +8842,10 @@ _0811A37E: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4] movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r4] bl RemoveWindow ldrb r0, [r7] @@ -8867,10 +8867,10 @@ _0811A3AC: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4] movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r4] bl RemoveWindow ldrb r0, [r7] @@ -9999,7 +9999,7 @@ _0811AC3C: adds r0, r6, 0 movs r2, 0x44 adds r3, r5, 0 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0xB mov r2, r8 muls r2, r0 @@ -10578,7 +10578,7 @@ _0811B0A0: .4byte gUnknown_8457E0C sub_811B0A4: @ 811B0A4 push {lr} adds r2, r0, 0 - ldr r0, _0811B0C4 @ =gUnknown_3003ED0 + ldr r0, _0811B0C4 @ =gRecvCmds ldrh r1, [r0, 0x2] cmp r1, 0 beq _0811B0C8 @@ -10593,7 +10593,7 @@ _0811B0B8: movs r0, 0x1 b _0811B0CA .align 2, 0 -_0811B0C4: .4byte gUnknown_3003ED0 +_0811B0C4: .4byte gRecvCmds _0811B0C8: movs r0, 0 _0811B0CA: @@ -11969,7 +11969,7 @@ _0811BADA: str r0, [sp, 0x4] movs r0, 0x19 adds r1, r4, 0 - bl sub_805E9F8 + bl sprite_new ldr r1, [sp, 0x8] adds r5, r1, r5 strb r0, [r5] @@ -12766,7 +12766,7 @@ sub_811C0E0: @ 811C0E0 movs r1, 0x3 adds r2, r6, 0 ldr r3, [sp, 0x14] - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x18 pop {r3-r5} mov r8, r3 @@ -12797,7 +12797,7 @@ _0811C168: movs r0, 0 movs r1, 0x1 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter str r5, [sp] movs r0, 0 adds r1, r6, 0 @@ -12966,7 +12966,7 @@ _0811C300: movs r0, 0 movs r1, 0x1 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal bl sub_80F77B8 ldr r0, _0811C35C @ =sub_811C1B4 bl SetVBlankCallback @@ -13151,13 +13151,13 @@ _0811C4C0: bl sub_811C150 cmp r0, 0 beq _0811C516 - ldr r0, _0811C4E0 @ =c2_exit_to_overworld_2_switch + ldr r0, _0811C4E0 @ =CB2_ReturnToField bl SetMainCallback2 b _0811C516 .align 2, 0 _0811C4D8: .4byte gUnknown_203B08C _0811C4DC: .4byte gUnknown_841E58D -_0811C4E0: .4byte c2_exit_to_overworld_2_switch +_0811C4E0: .4byte CB2_ReturnToField _0811C4E4: ldr r0, _0811C4FC @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] @@ -13181,7 +13181,7 @@ _0811C500: bl sub_811C150 cmp r0, 0 beq _0811C516 - ldr r0, _0811C53C @ =c2_exit_to_overworld_2_switch + ldr r0, _0811C53C @ =CB2_ReturnToField bl SetMainCallback2 _0811C516: bl RunTasks @@ -13197,7 +13197,7 @@ _0811C52A: .align 2, 0 _0811C534: .4byte gUnknown_203B08C _0811C538: .4byte gUnknown_841E572 -_0811C53C: .4byte c2_exit_to_overworld_2_switch +_0811C53C: .4byte CB2_ReturnToField thumb_func_end sub_811C1C8 .align 2, 0 @ Don't pad with nop. diff --git a/asm/link_rfu_4.s b/asm/link_rfu_4.s deleted file mode 100644 index dd9c498a4..000000000 --- a/asm/link_rfu_4.s +++ /dev/null @@ -1,2316 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_814240C -sub_814240C: @ 814240C - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - pop {r0} - bx r0 - thumb_func_end sub_814240C - - thumb_func_start sub_8142420 -sub_8142420: @ 8142420 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r8, r0 - movs r0, 0x20 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x3 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - movs r4, 0x1 - movs r1, 0x11 - mov r10, r1 -_0814244E: - movs r7, 0 - mov r0, r8 - adds r0, 0x2 - movs r1, 0x1 - add r1, r8 - mov r9, r1 - lsls r5, r0, 24 - movs r6, 0 -_0814245E: - mov r1, r8 - ands r1, r4 - adds r0, r7, 0 - ands r0, r4 - cmp r1, r0 - beq _08142480 - lsrs r2, r6, 24 - str r4, [sp] - str r4, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - lsrs r3, r5, 24 - bl FillBgTilemapBufferRect - b _08142494 -_08142480: - lsrs r2, r6, 24 - str r4, [sp] - str r4, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x2 - lsrs r3, r5, 24 - bl FillBgTilemapBufferRect -_08142494: - movs r0, 0x80 - lsls r0, 17 - adds r6, r0 - adds r7, 0x1 - cmp r7, 0x1F - ble _0814245E - mov r8, r9 - mov r1, r8 - cmp r1, 0x11 - ble _0814244E - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8142420 - - thumb_func_start sub_81424B8 -sub_81424B8: @ 81424B8 - push {lr} - sub sp, 0xC - cmp r0, 0 - beq _081424C6 - cmp r0, 0x1 - beq _081424DE - b _081424F6 -_081424C6: - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - b _081424F6 -_081424DE: - movs r0, 0x20 - str r0, [sp] - movs r0, 0x1E - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect -_081424F6: - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_81424B8 - - thumb_func_start sub_8142504 -sub_8142504: @ 8142504 - push {r4,lr} - sub sp, 0x14 - adds r1, r0, 0 - ldr r4, _08142558 @ =gStringVar4 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - ldr r0, _0814255C @ =gUnknown_8466EF0 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142558: .4byte gStringVar4 -_0814255C: .4byte gUnknown_8466EF0 - thumb_func_end sub_8142504 - - thumb_func_start sub_8142560 -sub_8142560: @ 8142560 - push {lr} - movs r0, 0x1 - bl rbox_fill_rectangle - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0x1 - movs r1, 0x1 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_8142560 - - thumb_func_start mevent_0814257C -mevent_0814257C: @ 814257C - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r0, r1, 0 - ldrb r2, [r4] - cmp r2, 0x1 - beq _081425A4 - cmp r2, 0x1 - bgt _08142594 - cmp r2, 0 - beq _0814259E - b _08142604 -_08142594: - cmp r2, 0x2 - beq _081425D8 - cmp r2, 0xFF - beq _08142600 - b _08142604 -_0814259E: - bl sub_8142504 - b _081425C8 -_081425A4: - movs r0, 0 - str r0, [sp] - ldr r0, _081425D0 @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - ldr r0, _081425D4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08142604 -_081425C8: - ldrb r0, [r4] - adds r0, 0x1 - b _08142602 - .align 2, 0 -_081425D0: .4byte gUnknown_203F3B0 -_081425D4: .4byte gMain -_081425D8: - movs r0, 0x1 - str r0, [sp] - ldr r0, _081425FC @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - movs r0, 0 - strb r0, [r4] - bl sub_8142560 - movs r0, 0x1 - b _08142606 - .align 2, 0 -_081425FC: .4byte gUnknown_203F3B0 -_08142600: - movs r0, 0x2 -_08142602: - strb r0, [r4] -_08142604: - movs r0, 0 -_08142606: - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end mevent_0814257C - - thumb_func_start sub_8142610 -sub_8142610: @ 8142610 - push {lr} - sub sp, 0xC - movs r0, 0 - str r0, [sp] - ldr r0, _08142634 @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_08142634: .4byte gUnknown_203F3B0 - thumb_func_end sub_8142610 - - thumb_func_start sub_8142638 -sub_8142638: @ 8142638 - push {lr} - sub sp, 0xC - movs r0, 0x1 - str r0, [sp] - ldr r0, _0814265C @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_0814265C: .4byte gUnknown_203F3B0 - thumb_func_end sub_8142638 - - thumb_func_start sub_8142660 -sub_8142660: @ 8142660 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0 - beq _08142670 - cmp r0, 0x1 - beq _0814268C - b _08142698 -_08142670: - bl sub_8142610 - ldr r0, _08142688 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08142698 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08142698 - .align 2, 0 -_08142688: .4byte gMain -_0814268C: - bl sub_8142638 - movs r0, 0 - strb r0, [r4] - movs r0, 0x1 - b _0814269A -_08142698: - movs r0, 0 -_0814269A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8142660 - - thumb_func_start sub_81426A0 -sub_81426A0: @ 81426A0 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0 - bne _081426B0 - adds r0, r1, 0 - bl sub_8142504 -_081426B0: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x78 - bhi _081426C2 - movs r0, 0 - b _081426CC -_081426C2: - movs r0, 0 - strb r0, [r4] - bl sub_8142560 - movs r0, 0x1 -_081426CC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81426A0 - - thumb_func_start sub_81426D4 -sub_81426D4: @ 81426D4 - push {r4-r7,lr} - sub sp, 0x24 - lsls r2, 24 - add r1, sp, 0x4 - ldr r0, _081426F8 @ =gUnknown_8466E00 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, _081426FC @ =gUnknown_8466DA8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x1C] - str r1, [sp, 0x20] - cmp r2, 0 - bne _08142704 - ldr r0, _08142700 @ =gUnknown_8466DD0 - b _08142706 - .align 2, 0 -_081426F8: .4byte gUnknown_8466E00 -_081426FC: .4byte gUnknown_8466DA8 -_08142700: .4byte gUnknown_8466DD0 -_08142704: - ldr r0, _08142794 @ =gUnknown_8466DE8 -_08142706: - str r0, [sp, 0x4] - movs r6, 0 - movs r4, 0 - add r0, sp, 0x4 - add r7, sp, 0x1C - ldrh r0, [r0, 0xC] - cmp r6, r0 - bcs _0814273A - add r5, sp, 0x4 -_08142718: - ldr r1, [sp, 0x4] - lsls r0, r4, 3 - adds r0, r1 - ldr r1, [r0] - ldrb r2, [r5, 0x16] - lsls r2, 29 - lsrs r2, 29 - movs r0, 0x2 - bl GetStringWidth - cmp r0, r6 - bls _08142732 - adds r6, r0, 0 -_08142732: - adds r4, 0x1 - ldrh r0, [r5, 0xC] - cmp r4, r0 - bcc _08142718 -_0814273A: - adds r2, r6, 0 - adds r2, 0x9 - lsrs r2, 3 - adds r2, 0x2 - movs r0, 0x2 - negs r0, r0 - ands r2, r0 - lsls r3, r2, 24 - ldr r0, _08142798 @ =0x00ffffff - ldr r1, [sp, 0x1C] - ands r1, r0 - orrs r1, r3 - movs r0, 0x1E - subs r0, r2 - lsls r0, 23 - lsrs r0, 16 - ldr r2, _0814279C @ =0xffff00ff - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0x1C] - movs r0, 0xE0 - str r0, [sp] - adds r0, r7, 0 - add r1, sp, 0x4 - movs r2, 0x1 - movs r3, 0xA - bl DoMysteryGiftListMenu - adds r4, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _0814278A - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x2 - movs r1, 0x1 - bl CopyWindowToVram -_0814278A: - adds r0, r4, 0 - add sp, 0x24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08142794: .4byte gUnknown_8466DE8 -_08142798: .4byte 0x00ffffff -_0814279C: .4byte 0xffff00ff - thumb_func_end sub_81426D4 - - thumb_func_start sub_81427A0 -sub_81427A0: @ 81427A0 - push {r4-r6,lr} - sub sp, 0x1C - adds r5, r0, 0 - adds r4, r1, 0 - adds r1, r3, 0 - lsls r2, 24 - lsrs r6, r2, 24 - ldrb r0, [r5] - cmp r0, 0x1 - beq _08142834 - cmp r0, 0x1 - bgt _081427BE - cmp r0, 0 - beq _081427CA - b _081428E6 -_081427BE: - cmp r0, 0x2 - beq _0814288C - cmp r0, 0xFF - bne _081427C8 - b _081428C2 -_081427C8: - b _081428E6 -_081427CA: - ldr r0, _081427D8 @ =gStringVar4 - bl StringExpandPlaceholders - cmp r6, 0 - bne _081427E0 - ldr r0, _081427DC @ =gUnknown_8466D90 - b _081427E2 - .align 2, 0 -_081427D8: .4byte gStringVar4 -_081427DC: .4byte gUnknown_8466D90 -_081427E0: - ldr r0, _08142828 @ =gUnknown_8466D98 -_081427E2: - bl AddWindow - strh r0, [r4] - ldrb r0, [r4] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4] - movs r2, 0 - str r2, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - ldr r1, _0814282C @ =gUnknown_8466EF0 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r1, _08142830 @ =gStringVar4 - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - ldrb r0, [r4] - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - ldrb r0, [r4] - bl PutWindowTilemap - b _0814287E - .align 2, 0 -_08142828: .4byte gUnknown_8466D98 -_0814282C: .4byte gUnknown_8466EF0 -_08142830: .4byte gStringVar4 -_08142834: - ldr r0, _08142850 @ =gUnknown_8466DB0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x14] - str r1, [sp, 0x18] - cmp r6, 0 - bne _08142858 - ldr r0, _08142854 @ =0xff00ffff - ldr r1, [sp, 0x14] - ands r1, r0 - movs r0, 0x90 - lsls r0, 12 - b _08142862 - .align 2, 0 -_08142850: .4byte gUnknown_8466DB0 -_08142854: .4byte 0xff00ffff -_08142858: - ldr r0, _08142888 @ =0xff00ffff - ldr r1, [sp, 0x14] - ands r1, r0 - movs r0, 0xF0 - lsls r0, 12 -_08142862: - orrs r1, r0 - str r1, [sp, 0x14] - movs r0, 0xA - str r0, [sp] - movs r0, 0xE - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - add r0, sp, 0x14 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl sub_810FF60 -_0814287E: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _081428E6 - .align 2, 0 -_08142888: .4byte 0xff00ffff -_0814288C: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r6, r0, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x2 - bhi _081428E6 - movs r0, 0 - strb r0, [r5] - ldrb r0, [r4] - bl rbox_fill_rectangle - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - adds r0, r6, 0 - b _081428EA -_081428C2: - movs r0, 0 - strb r0, [r5] - ldrb r0, [r4] - bl rbox_fill_rectangle - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0x1 - negs r0, r0 - b _081428EA -_081428E6: - movs r0, 0x2 - negs r0, r0 -_081428EA: - add sp, 0x1C - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81427A0 - - thumb_func_start sub_81428F4 -sub_81428F4: @ 81428F4 - push {r4-r6,lr} - sub sp, 0x14 - adds r6, r0, 0 - adds r5, r1, 0 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08142994 - cmp r0, 0x1 - bgt _0814290C - cmp r0, 0 - beq _08142914 - b _08142A38 -_0814290C: - cmp r0, 0xFF - bne _08142912 - b _08142A14 -_08142912: - b _08142A38 -_08142914: - cmp r2, 0 - bne _0814292C - ldr r0, _08142924 @ =gStringVar4 - ldr r1, _08142928 @ =gUnknown_841EA86 - bl StringExpandPlaceholders - b _08142934 - .align 2, 0 -_08142924: .4byte gStringVar4 -_08142928: .4byte gUnknown_841EA86 -_0814292C: - ldr r0, _08142984 @ =gStringVar4 - ldr r1, _08142988 @ =gUnknown_841EAB7 - bl StringExpandPlaceholders -_08142934: - ldr r0, _0814298C @ =gUnknown_8466DA0 - bl AddWindow - strh r0, [r5] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5] - movs r2, 0 - str r2, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - ldr r1, _08142990 @ =gUnknown_8466EF0 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r1, _08142984 @ =gStringVar4 - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - ldrb r0, [r5] - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - ldrb r0, [r5] - movs r1, 0x2 - bl CopyWindowToVram - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _08142A38 - .align 2, 0 -_08142984: .4byte gStringVar4 -_08142988: .4byte gUnknown_841EAB7 -_0814298C: .4byte gUnknown_8466DA0 -_08142990: .4byte gUnknown_8466EF0 -_08142994: - cmp r3, 0 - beq _081429BC - cmp r2, 0 - bne _081429AC - ldr r0, _081429A4 @ =gUnknown_8466DC0 - ldr r1, _081429A8 @ =gUnknown_8466E90 - b _081429D4 - .align 2, 0 -_081429A4: .4byte gUnknown_8466DC0 -_081429A8: .4byte gUnknown_8466E90 -_081429AC: - ldr r0, _081429B4 @ =gUnknown_8466DC8 - ldr r1, _081429B8 @ =gUnknown_8466EC0 - b _081429D4 - .align 2, 0 -_081429B4: .4byte gUnknown_8466DC8 -_081429B8: .4byte gUnknown_8466EC0 -_081429BC: - cmp r2, 0 - bne _081429D0 - ldr r0, _081429C8 @ =gUnknown_8466DB8 - ldr r1, _081429CC @ =gUnknown_8466E78 - b _081429D4 - .align 2, 0 -_081429C8: .4byte gUnknown_8466DB8 -_081429CC: .4byte gUnknown_8466E78 -_081429D0: - ldr r0, _08142A0C @ =gUnknown_8466DC0 - ldr r1, _08142A10 @ =gUnknown_8466EA8 -_081429D4: - movs r2, 0xE0 - str r2, [sp] - movs r2, 0x1 - movs r3, 0xA - bl DoMysteryGiftListMenu - adds r4, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _08142A38 - movs r0, 0 - strb r0, [r6] - ldrb r0, [r5] - bl rbox_fill_rectangle - ldrb r0, [r5] - bl ClearWindowTilemap - ldrb r0, [r5] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r5] - bl RemoveWindow - adds r0, r4, 0 - b _08142A3C - .align 2, 0 -_08142A0C: .4byte gUnknown_8466DC0 -_08142A10: .4byte gUnknown_8466EA8 -_08142A14: - movs r0, 0 - strb r0, [r6] - ldrb r0, [r5] - bl rbox_fill_rectangle - ldrb r0, [r5] - bl ClearWindowTilemap - ldrb r0, [r5] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r5] - bl RemoveWindow - movs r0, 0x2 - negs r0, r0 - b _08142A3C -_08142A38: - movs r0, 0x1 - negs r0, r0 -_08142A3C: - add sp, 0x14 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81428F4 - - thumb_func_start sub_8142A44 -sub_8142A44: @ 8142A44 - push {lr} - cmp r0, 0 - beq _08142A50 - bl sub_8143E1C - b _08142A54 -_08142A50: - bl sub_8143FC8 -_08142A54: - pop {r1} - bx r1 - thumb_func_end sub_8142A44 - - thumb_func_start sub_8142A58 -sub_8142A58: @ 8142A58 - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r0, [r5] - cmp r0, 0 - beq _08142A68 - cmp r0, 0x1 - beq _08142A90 - b _08142AAC -_08142A68: - cmp r1, 0 - bne _08142A80 - bl sav1_get_mevent_buffer_1 - adds r4, r0, 0 - bl sav1_get_mevent_buffer_2 - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_8145654 - b _08142A88 -_08142A80: - bl sub_8143D58 - bl sub_8146288 -_08142A88: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _08142AAC -_08142A90: - cmp r1, 0 - bne _08142A9E - bl sub_814571C -_08142A98: - cmp r0, 0 - bne _08142AA4 - b _08142AAC -_08142A9E: - bl sub_8146318 - b _08142A98 -_08142AA4: - movs r0, 0 - strb r0, [r5] - movs r0, 0x1 - b _08142AAE -_08142AAC: - movs r0, 0 -_08142AAE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8142A58 - - thumb_func_start sub_8142AB4 -sub_8142AB4: @ 8142AB4 - push {lr} - cmp r0, 0 - bne _08142AC0 - bl sub_8143F38 - b _08142AC4 -_08142AC0: - bl sub_8143DBC -_08142AC4: - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8142AB4 - - thumb_func_start sub_8142ACC -sub_8142ACC: @ 8142ACC - push {lr} - cmp r0, 0 - bne _08142AE2 - adds r0, r1, 0 - bl sub_814593C - cmp r0, 0 - beq _08142AEC - bl sub_81456F0 - b _08142AF4 -_08142AE2: - adds r0, r1, 0 - bl sub_8146604 - cmp r0, 0 - bne _08142AF0 -_08142AEC: - movs r0, 0 - b _08142AF6 -_08142AF0: - bl sub_81462EC -_08142AF4: - movs r0, 0x1 -_08142AF6: - pop {r1} - bx r1 - thumb_func_end sub_8142ACC - - thumb_func_start sub_8142AFC -sub_8142AFC: @ 8142AFC - push {lr} - cmp r2, 0 - beq _08142B0C - ldr r3, _08142B08 @ =gUnknown_841ECD3 - b _08142B0E - .align 2, 0 -_08142B08: .4byte gUnknown_841ECD3 -_08142B0C: - ldr r3, _08142B1C @ =gUnknown_841EC99 -_08142B0E: - movs r2, 0x1 - bl sub_81427A0 - lsls r0, 24 - asrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08142B1C: .4byte gUnknown_841EC99 - thumb_func_end sub_8142AFC - - thumb_func_start mevent_message_was_thrown_away -mevent_message_was_thrown_away: @ 8142B20 - push {lr} - cmp r1, 0 - beq _08142B30 - ldr r1, _08142B2C @ =gUnknown_841ED9C - b _08142B32 - .align 2, 0 -_08142B2C: .4byte gUnknown_841ED9C -_08142B30: - ldr r1, _08142B3C @ =gUnknown_841ED7B -_08142B32: - bl mevent_0814257C - pop {r1} - bx r1 - .align 2, 0 -_08142B3C: .4byte gUnknown_841ED7B - thumb_func_end mevent_message_was_thrown_away - - thumb_func_start mevent_save_game -mevent_save_game: @ 8142B40 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0x4 - bhi _08142BB0 - lsls r0, 2 - ldr r1, _08142B54 @ =_08142B58 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142B54: .4byte _08142B58 - .align 2, 0 -_08142B58: - .4byte _08142B6C - .4byte _08142B78 - .4byte _08142B80 - .4byte _08142B8C - .4byte _08142BA4 -_08142B6C: - ldr r0, _08142B74 @ =gUnknown_841ED2F - bl sub_8142504 - b _08142B98 - .align 2, 0 -_08142B74: .4byte gUnknown_841ED2F -_08142B78: - movs r0, 0 - bl TrySavingData - b _08142B98 -_08142B80: - ldr r0, _08142B88 @ =gUnknown_841ED50 - bl sub_8142504 - b _08142B98 - .align 2, 0 -_08142B88: .4byte gUnknown_841ED50 -_08142B8C: - ldr r0, _08142BA0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08142BB0 -_08142B98: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08142BB0 - .align 2, 0 -_08142BA0: .4byte gMain -_08142BA4: - movs r0, 0 - strb r0, [r4] - bl sub_8142560 - movs r0, 0x1 - b _08142BB2 -_08142BB0: - movs r0, 0 -_08142BB2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end mevent_save_game - - thumb_func_start mevent_message -mevent_message: @ 8142BB8 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r2, 0 - str r2, [r4] - cmp r3, 0xE - bls _08142BCE - b _08142CE0 -_08142BCE: - lsls r0, r3, 2 - ldr r1, _08142BD8 @ =_08142BDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142BD8: .4byte _08142BDC - .align 2, 0 -_08142BDC: - .4byte _08142C18 - .4byte _08142C24 - .4byte _08142C30 - .4byte _08142C48 - .4byte _08142C60 - .4byte _08142C6C - .4byte _08142C78 - .4byte _08142C84 - .4byte _08142C90 - .4byte _08142C9C - .4byte _08142CA8 - .4byte _08142CC0 - .4byte _08142CCC - .4byte _08142CD8 - .4byte _08142CDC -_08142C18: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C20 @ =gUnknown_841EA6F - b _08142CE0 - .align 2, 0 -_08142C20: .4byte gUnknown_841EA6F -_08142C24: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C2C @ =gUnknown_841E9D3 - b _08142CE0 - .align 2, 0 -_08142C2C: .4byte gUnknown_841E9D3 -_08142C30: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142C40 @ =gUnknown_841E866 - cmp r5, 0 - bne _08142CE0 - ldr r2, _08142C44 @ =gUnknown_841E8BD - b _08142CE0 - .align 2, 0 -_08142C40: .4byte gUnknown_841E866 -_08142C44: .4byte gUnknown_841E8BD -_08142C48: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142C58 @ =gUnknown_841E88F - cmp r5, 0 - bne _08142CE0 - ldr r2, _08142C5C @ =gUnknown_841E8E2 - b _08142CE0 - .align 2, 0 -_08142C58: .4byte gUnknown_841E88F -_08142C5C: .4byte gUnknown_841E8E2 -_08142C60: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142C68 @ =gUnknown_841E90C - b _08142CE0 - .align 2, 0 -_08142C68: .4byte gUnknown_841E90C -_08142C6C: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C74 @ =gUnknown_841E946 - b _08142CE0 - .align 2, 0 -_08142C74: .4byte gUnknown_841E946 -_08142C78: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C80 @ =gUnknown_841E98F - b _08142CE0 - .align 2, 0 -_08142C80: .4byte gUnknown_841E98F -_08142C84: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C8C @ =gUnknown_841E968 - b _08142CE0 - .align 2, 0 -_08142C8C: .4byte gUnknown_841E968 -_08142C90: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C98 @ =gUnknown_841E9AB - b _08142CE0 - .align 2, 0 -_08142C98: .4byte gUnknown_841E9AB -_08142C9C: - movs r0, 0 - str r0, [r4] - ldr r2, _08142CA4 @ =gUnknown_841E7D1 - b _08142CE0 - .align 2, 0 -_08142CA4: .4byte gUnknown_841E7D1 -_08142CA8: - movs r0, 0 - str r0, [r4] - ldr r2, _08142CB8 @ =gUnknown_841EA3F - cmp r6, 0 - bne _08142CE0 - ldr r2, _08142CBC @ =gUnknown_841EA0D - b _08142CE0 - .align 2, 0 -_08142CB8: .4byte gUnknown_841EA3F -_08142CBC: .4byte gUnknown_841EA0D -_08142CC0: - movs r0, 0 - str r0, [r4] - ldr r2, _08142CC8 @ =gUnknown_841E7BC - b _08142CE0 - .align 2, 0 -_08142CC8: .4byte gUnknown_841E7BC -_08142CCC: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142CD4 @ =gUnknown_841E92B - b _08142CE0 - .align 2, 0 -_08142CD4: .4byte gUnknown_841E92B -_08142CD8: - movs r0, 0x1 - b _08142CDE -_08142CDC: - movs r0, 0 -_08142CDE: - str r0, [r4] -_08142CE0: - adds r0, r2, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end mevent_message - - thumb_func_start mevent_08142CE8 -mevent_08142CE8: @ 8142CE8 - push {r4-r6,lr} - adds r6, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - ldrb r4, [r6] - cmp r4, 0x1 - beq _08142D1A - cmp r4, 0x1 - bgt _08142D00 - cmp r4, 0 - beq _08142D06 - b _08142D46 -_08142D00: - cmp r4, 0x2 - beq _08142D30 - b _08142D46 -_08142D06: - cmp r0, 0 - beq _08142D0E - bl sub_8142504 -_08142D0E: - movs r0, 0x81 - lsls r0, 1 - bl PlayFanfare - strh r4, [r5] - b _08142D28 -_08142D1A: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xF0 - bls _08142D46 -_08142D28: - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _08142D46 -_08142D30: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08142D46 - movs r0, 0 - strb r0, [r6] - bl sub_8142560 - movs r0, 0x1 - b _08142D48 -_08142D46: - movs r0, 0 -_08142D48: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end mevent_08142CE8 - - thumb_func_start mevent_message_stamp_card_etc_send_status -mevent_message_stamp_card_etc_send_status: @ 8142D50 - push {r4,lr} - adds r3, r0, 0 - ldr r1, _08142D6C @ =gUnknown_841E7BC - movs r0, 0 - str r0, [r3] - adds r4, r1, 0 - cmp r2, 0xE - bhi _08142E12 - lsls r0, r2, 2 - ldr r1, _08142D70 @ =_08142D74 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142D6C: .4byte gUnknown_841E7BC -_08142D70: .4byte _08142D74 - .align 2, 0 -_08142D74: - .4byte _08142DB0 - .4byte _08142DB8 - .4byte _08142DC0 - .4byte _08142DC8 - .4byte _08142DD4 - .4byte _08142DDC - .4byte _08142DE4 - .4byte _08142DEC - .4byte _08142DF4 - .4byte _08142DFC - .4byte _08142E10 - .4byte _08142E04 - .4byte _08142E08 - .4byte _08142E08 - .4byte _08142E10 -_08142DB0: - ldr r1, _08142DB4 @ =gUnknown_841EA6F - b _08142E12 - .align 2, 0 -_08142DB4: .4byte gUnknown_841EA6F -_08142DB8: - ldr r1, _08142DBC @ =gUnknown_841E9D3 - b _08142E12 - .align 2, 0 -_08142DBC: .4byte gUnknown_841E9D3 -_08142DC0: - ldr r1, _08142DC4 @ =gUnknown_841EB20 - b _08142DCA - .align 2, 0 -_08142DC4: .4byte gUnknown_841EB20 -_08142DC8: - ldr r1, _08142DD0 @ =gUnknown_841EB46 -_08142DCA: - movs r0, 0x1 - str r0, [r3] - b _08142E12 - .align 2, 0 -_08142DD0: .4byte gUnknown_841EB46 -_08142DD4: - ldr r1, _08142DD8 @ =gUnknown_841EB71 - b _08142E12 - .align 2, 0 -_08142DD8: .4byte gUnknown_841EB71 -_08142DDC: - ldr r1, _08142DE0 @ =gUnknown_841EBAA - b _08142E12 - .align 2, 0 -_08142DE0: .4byte gUnknown_841EBAA -_08142DE4: - ldr r1, _08142DE8 @ =gUnknown_841EC12 - b _08142E12 - .align 2, 0 -_08142DE8: .4byte gUnknown_841EC12 -_08142DEC: - ldr r1, _08142DF0 @ =gUnknown_841EBDE - b _08142E12 - .align 2, 0 -_08142DF0: .4byte gUnknown_841EBDE -_08142DF4: - ldr r1, _08142DF8 @ =gUnknown_841E9AB - b _08142E12 - .align 2, 0 -_08142DF8: .4byte gUnknown_841E9AB -_08142DFC: - ldr r1, _08142E00 @ =gUnknown_841EC40 - b _08142E12 - .align 2, 0 -_08142E00: .4byte gUnknown_841EC40 -_08142E04: - adds r1, r4, 0 - b _08142E12 -_08142E08: - ldr r1, _08142E0C @ =gUnknown_841EB8E - b _08142E12 - .align 2, 0 -_08142E0C: .4byte gUnknown_841EB8E -_08142E10: - ldr r1, _08142E1C @ =gUnknown_841EC6A -_08142E12: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08142E1C: .4byte gUnknown_841EC6A - thumb_func_end mevent_message_stamp_card_etc_send_status - - thumb_func_start sub_8142E20 -sub_8142E20: @ 8142E20 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - adds r1, r2, 0 - adds r2, r3, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - bl mevent_message_stamp_card_etc_send_status - adds r1, r0, 0 - ldr r0, [sp] - cmp r0, 0 - bne _08142E46 - adds r0, r4, 0 - bl mevent_0814257C - b _08142E4E -_08142E46: - adds r0, r4, 0 - adds r2, r5, 0 - bl mevent_08142CE8 -_08142E4E: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8142E20 - - thumb_func_start task_add_00_mystery_gift -task_add_00_mystery_gift: @ 8142E58 - push {r4,lr} - ldr r0, _08142E98 @ =sub_8142EA0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08142E9C @ =gTasks+0x8 - adds r4, r0 - movs r0, 0 - strb r0, [r4, 0x8] - strb r0, [r4, 0x9] - strb r0, [r4, 0xA] - strb r0, [r4, 0xB] - strb r0, [r4, 0xC] - strb r0, [r4, 0xD] - movs r1, 0 - strh r0, [r4] - strh r0, [r4, 0x2] - strh r0, [r4, 0x4] - strh r0, [r4, 0x6] - strb r1, [r4, 0xE] - movs r0, 0x40 - bl AllocZeroed - str r0, [r4, 0x10] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142E98: .4byte sub_8142EA0 -_08142E9C: .4byte gTasks+0x8 - thumb_func_end task_add_00_mystery_gift - - thumb_func_start sub_8142EA0 -sub_8142EA0: @ 8142EA0 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08142EC4 @ =gTasks+0x8 - adds r5, r0, r1 - ldrb r0, [r5, 0x8] - cmp r0, 0x25 - bls _08142EBA - b _081435C6 -_08142EBA: - lsls r0, 2 - ldr r1, _08142EC8 @ =_08142ECC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142EC4: .4byte gTasks+0x8 -_08142EC8: .4byte _08142ECC - .align 2, 0 -_08142ECC: - .4byte _08142F64 - .4byte _08142F6A - .4byte _08142FAC - .4byte _08142FE4 - .4byte _08143008 - .4byte _08143058 - .4byte _081430B8 - .4byte _081430EC - .4byte _081430FC - .4byte _08143174 - .4byte _08143198 - .4byte _081431B0 - .4byte _081431E0 - .4byte _0814321C - .4byte _08143232 - .4byte _08143264 - .4byte _0814358C - .4byte _081432C2 - .4byte _081432CC - .4byte _081435C6 - .4byte _081432DE - .4byte _0814332C - .4byte _081433A2 - .4byte _081433D2 - .4byte _08143408 - .4byte _08143422 - .4byte _08143436 - .4byte _08143442 - .4byte _08143456 - .4byte _0814346A - .4byte _0814349C - .4byte _081434D0 - .4byte _08143514 - .4byte _08143528 - .4byte _08143544 - .4byte _08143558 - .4byte _0814358C - .4byte _081435AC -_08142F64: - movs r0, 0x1 - strb r0, [r5, 0x8] - b _081435C6 -_08142F6A: - adds r0, r5, 0 - adds r0, 0x9 - adds r1, r5, 0 - movs r2, 0 - bl sub_81426D4 - adds r1, r0, 0 - cmp r1, 0x1 - beq _08142F94 - cmp r1, 0x1 - bcc _08142F8A - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08142FA6 - b _081435C6 -_08142F8A: - movs r0, 0 - strb r0, [r5, 0xC] - bl sub_8143FC8 - b _08142F9A -_08142F94: - strb r1, [r5, 0xC] - bl sub_8143E1C -_08142F9A: - cmp r0, 0x1 - bne _08142FA0 - b _081434C4 -_08142FA0: - movs r0, 0x2 - strb r0, [r5, 0x8] - b _081435C6 -_08142FA6: - movs r0, 0x25 - strb r0, [r5, 0x8] - b _081435C6 -_08142FAC: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08142FC0 - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _08142FBC @ =gUnknown_841E6A1 - b _08142FC6 - .align 2, 0 -_08142FBC: .4byte gUnknown_841E6A1 -_08142FC0: - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _08142FE0 @ =gUnknown_841E6DC -_08142FC6: - bl mevent_0814257C - cmp r0, 0 - bne _08142FD0 - b _081435C6 -_08142FD0: - movs r0, 0x3 - strb r0, [r5, 0x8] - movs r0, 0 - movs r1, 0x1 - bl sub_8142344 - b _081435C6 - .align 2, 0 -_08142FE0: .4byte gUnknown_841E6DC -_08142FE4: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08142FF8 - ldr r0, _08142FF4 @ =gUnknown_841E717 - bl sub_8142504 - b _08142FFE - .align 2, 0 -_08142FF4: .4byte gUnknown_841E717 -_08142FF8: - ldr r0, _08143004 @ =gUnknown_841E741 - bl sub_8142504 -_08142FFE: - movs r0, 0x4 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143004: .4byte gUnknown_841E741 -_08143008: - adds r0, r5, 0 - adds r0, 0x9 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_81426D4 - adds r4, r0, 0 - cmp r4, 0x1 - beq _08143036 - cmp r4, 0x1 - bcc _08143028 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _08143042 - b _081435C6 -_08143028: - bl sub_8142560 - movs r1, 0 - movs r0, 0x5 - strb r0, [r5, 0x8] - strb r1, [r5, 0xD] - b _081435C6 -_08143036: - bl sub_8142560 - movs r0, 0x5 - strb r0, [r5, 0x8] - strb r4, [r5, 0xD] - b _081435C6 -_08143042: - bl sub_8142560 - ldrb r0, [r5, 0xC] - bl sub_8142A44 - cmp r0, 0 - beq _08143052 - b _081434C4 -_08143052: - strb r0, [r5, 0x8] - movs r0, 0 - b _0814359E -_08143058: - ldr r0, _08143074 @ =gStringVar1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _08143078 @ =gStringVar2 - strb r1, [r0] - ldr r0, _0814307C @ =gStringVar3 - strb r1, [r0] - ldrb r0, [r5, 0xC] - cmp r0, 0 - beq _08143080 - cmp r0, 0x1 - beq _0814309A - b _081430B2 - .align 2, 0 -_08143074: .4byte gStringVar1 -_08143078: .4byte gStringVar2 -_0814307C: .4byte gStringVar3 -_08143080: - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _0814308E - movs r0, 0x15 - bl sub_8117ED4 - b _081430B2 -_0814308E: - cmp r0, 0 - bne _081430B2 - movs r0, 0x15 - bl sub_8118290 - b _081430B2 -_0814309A: - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _081430A8 - movs r0, 0x16 - bl sub_8117ED4 - b _081430B2 -_081430A8: - cmp r0, 0 - bne _081430B2 - movs r0, 0x16 - bl sub_8118290 -_081430B2: - movs r0, 0x6 - strb r0, [r5, 0x8] - b _081435C6 -_081430B8: - ldr r0, _081430D0 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _081430D4 - movs r0, 0x1 - bl sub_81424B8 - movs r0, 0x7 - strb r0, [r5, 0x8] - bl mevent_srv_ish_do_init - b _081435C6 - .align 2, 0 -_081430D0: .4byte gReceivedRemoteLinkPlayers -_081430D4: - ldr r0, _081430E8 @ =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x5 - beq _081430DE - b _081435C6 -_081430DE: - movs r0, 0x1 - bl sub_81424B8 - b _08143464 - .align 2, 0 -_081430E8: .4byte gSpecialVar_Result -_081430EC: - ldr r0, _081430F8 @ =gUnknown_841E794 - bl sub_8142504 - movs r0, 0x8 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081430F8: .4byte gUnknown_841E794 -_081430FC: - adds r0, r5, 0 - bl mevent_srv_ish_do_exec - subs r0, 0x2 - cmp r0, 0x4 - bls _0814310A - b _081435C6 -_0814310A: - lsls r0, 2 - ldr r1, _08143114 @ =_08143118 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08143114: .4byte _08143118 - .align 2, 0 -_08143118: - .4byte _08143156 - .4byte _08143150 - .4byte _0814315C - .4byte _0814313A - .4byte _0814312C -_0814312C: - bl task_add_05_task_del_08FA224_when_no_RfuFunc - ldrh r0, [r5] - strb r0, [r5, 0xE] - movs r0, 0xD - strb r0, [r5, 0x8] - b _081435C6 -_0814313A: - ldr r4, [r5, 0x10] - bl mevent_srv_ish_get_buffer - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x40 - bl memcpy - bl mevent_srv_ish_inc_flag - b _081435C6 -_08143150: - movs r0, 0xA - strb r0, [r5, 0x8] - b _081435C6 -_08143156: - movs r0, 0x9 - strb r0, [r5, 0x8] - b _081435C6 -_0814315C: - movs r0, 0xB - strb r0, [r5, 0x8] - ldr r0, _0814316C @ =gStringVar1 - ldr r1, _08143170 @ =gLinkPlayers + 8 - bl StringCopy - b _081435C6 - .align 2, 0 -_0814316C: .4byte gStringVar1 -_08143170: .4byte gLinkPlayers + 8 -_08143174: - adds r4, r5, 0 - adds r4, 0x9 - bl mevent_srv_ish_get_buffer - adds r3, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _0814320C - cmp r1, 0x1 - bcs _081431FA - movs r0, 0 - b _0814320E -_08143198: - adds r4, r5, 0 - adds r4, 0x9 - bl mevent_srv_ish_get_buffer - adds r1, r0, 0 - adds r0, r4, 0 - bl mevent_0814257C - cmp r0, 0 - bne _081431AE - b _081435C6 -_081431AE: - b _08143212 -_081431B0: - adds r0, r5, 0 - adds r0, 0x9 - ldr r3, _081431D8 @ =gUnknown_841E7F2 - adds r1, r5, 0 - movs r2, 0 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _0814320C - cmp r1, 0x1 - bcs _081431FA - bl sub_8144144 - cmp r0, 0x1 - bne _081431DC - movs r0, 0xC - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081431D8: .4byte gUnknown_841E7F2 -_081431DC: - movs r0, 0 - b _0814320E -_081431E0: - adds r0, r5, 0 - adds r0, 0x9 - ldr r3, _08143204 @ =gUnknown_841E823 - adds r1, r5, 0 - movs r2, 0 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _0814320C - cmp r1, 0x1 - bcc _08143208 -_081431FA: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0814320C - b _081435C6 - .align 2, 0 -_08143204: .4byte gUnknown_841E823 -_08143208: - movs r0, 0 - b _0814320E -_0814320C: - movs r0, 0x1 -_0814320E: - bl mevent_srv_ish_set_param -_08143212: - bl mevent_srv_ish_inc_flag - movs r0, 0x7 - strb r0, [r5, 0x8] - b _081435C6 -_0814321C: - bl sub_80FA4F8 - lsls r0, 24 - cmp r0, 0 - bne _08143228 - b _081435C6 -_08143228: - bl sub_80FCE44 - movs r0, 0xE - strb r0, [r5, 0x8] - b _081435C6 -_08143232: - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _08143258 @ =gUnknown_841E7A3 - bl sub_81426A0 - cmp r0, 0 - bne _08143242 - b _081435C6 -_08143242: - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _08143250 - ldr r0, _0814325C @ =gStringVar1 - ldr r1, _08143260 @ =gLinkPlayers + 8 - bl StringCopy -_08143250: - movs r0, 0xF - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143258: .4byte gUnknown_841E7A3 -_0814325C: .4byte gStringVar1 -_08143260: .4byte gLinkPlayers + 8 -_08143264: - ldrb r1, [r5, 0xC] - ldrb r2, [r5, 0xD] - ldrb r3, [r5, 0xE] - mov r0, sp - bl mevent_message - adds r1, r0, 0 - cmp r1, 0 - bne _08143278 - ldr r1, [r5, 0x10] -_08143278: - ldr r0, [sp] - cmp r0, 0 - beq _0814328A - adds r0, r5, 0 - adds r0, 0x9 - adds r2, r5, 0 - bl mevent_08142CE8 - b _08143292 -_0814328A: - adds r0, r5, 0 - adds r0, 0x9 - bl mevent_0814257C -_08143292: - adds r1, r0, 0 - cmp r1, 0 - bne _0814329A - b _081435C6 -_0814329A: - ldrb r0, [r5, 0xE] - cmp r0, 0x3 - bne _081432B4 - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _081432AE - movs r0, 0x1 - bl sub_8146C30 - b _081432B4 -_081432AE: - movs r0, 0x2 - bl sub_8146C30 -_081432B4: - ldr r0, [sp] - cmp r0, 0 - beq _081432BC - b _0814357C -_081432BC: - strb r0, [r5, 0x8] - movs r0, 0 - b _0814359E -_081432C2: - adds r0, r5, 0 - adds r0, 0x9 - bl mevent_save_game - b _08143596 -_081432CC: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r1, [r5, 0xC] - bl sub_8142A58 - cmp r0, 0 - bne _081432DC - b _081435C6 -_081432DC: - b _0814339C -_081432DE: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08143308 - ldr r2, _08143304 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081432F4 - movs r0, 0x15 - strb r0, [r5, 0x8] -_081432F4: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08143300 - b _081435C6 -_08143300: - b _08143326 - .align 2, 0 -_08143304: .4byte gMain -_08143308: - ldr r0, _0814331C @ =gMain - ldrh r0, [r0, 0x2E] - bl sub_8146884 - cmp r0, 0 - beq _08143320 - cmp r0, 0x1 - beq _08143326 - b _081435C6 - .align 2, 0 -_0814331C: .4byte gMain -_08143320: - bl sub_81467EC - b _08143402 -_08143326: - movs r0, 0x1B - strb r0, [r5, 0x8] - b _081435C6 -_0814332C: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08143346 - bl sub_8144054 - cmp r0, 0 - beq _0814335A - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - movs r3, 0 - b _08143364 -_08143346: - bl sub_8143E78 - cmp r0, 0 - beq _0814335A - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - movs r3, 0 - b _08143364 -_0814335A: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - movs r3, 0x1 -_08143364: - bl sub_81428F4 - adds r1, r0, 0 - cmp r1, 0x1 - beq _08143386 - cmp r1, 0x1 - bcc _08143380 - cmp r1, 0x2 - beq _0814338C - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08143392 - b _081435C6 -_08143380: - movs r0, 0x1C - strb r0, [r5, 0x8] - b _081435C6 -_08143386: - movs r0, 0x1D - strb r0, [r5, 0x8] - b _081435C6 -_0814338C: - movs r0, 0x16 - strb r0, [r5, 0x8] - b _081435C6 -_08143392: - ldrb r0, [r5, 0xC] - cmp r0, 0x1 - bne _0814339C - bl sub_8146834 -_0814339C: - movs r0, 0x14 - strb r0, [r5, 0x8] - b _081435C6 -_081433A2: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - bl sub_8142AFC - adds r1, r0, 0 - cmp r1, 0 - beq _081433BE - cmp r1, 0 - ble _081433EC - cmp r1, 0x1 - beq _08143402 - b _081435C6 -_081433BE: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _081433FC - bl sub_8144144 - cmp r0, 0x1 - bne _081433FC - movs r0, 0x17 - strb r0, [r5, 0x8] - b _081435C6 -_081433D2: - adds r0, r5, 0 - adds r0, 0x9 - ldr r3, _081433F8 @ =gUnknown_841ECF9 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _08143402 - cmp r1, 0x1 - bcc _081433FC -_081433EC: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08143402 - b _081435C6 - .align 2, 0 -_081433F8: .4byte gUnknown_841ECF9 -_081433FC: - movs r0, 0x18 - strb r0, [r5, 0x8] - b _081435C6 -_08143402: - movs r0, 0x15 - strb r0, [r5, 0x8] - b _081435C6 -_08143408: - ldrb r0, [r5, 0xC] - movs r1, 0x1 - bl sub_8142ACC - cmp r0, 0 - bne _08143416 - b _081435C6 -_08143416: - ldrb r0, [r5, 0xC] - bl sub_8142AB4 - movs r0, 0x19 - strb r0, [r5, 0x8] - b _081435C6 -_08143422: - adds r0, r5, 0 - adds r0, 0x9 - bl mevent_save_game - cmp r0, 0 - bne _08143430 - b _081435C6 -_08143430: - movs r0, 0x1A - strb r0, [r5, 0x8] - b _081435C6 -_08143436: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r1, [r5, 0xC] - bl mevent_message_was_thrown_away - b _08143596 -_08143442: - ldrb r0, [r5, 0xC] - movs r1, 0 - bl sub_8142ACC - cmp r0, 0 - bne _08143450 - b _081435C6 -_08143450: - movs r0, 0 - strb r0, [r5, 0x8] - b _081435C6 -_08143456: - ldrb r0, [r5, 0xC] - movs r1, 0x1 - bl sub_8142ACC - cmp r0, 0 - bne _08143464 - b _081435C6 -_08143464: - movs r0, 0x3 - strb r0, [r5, 0x8] - b _081435C6 -_0814346A: - ldrb r0, [r5, 0xC] - movs r1, 0x1 - bl sub_8142ACC - cmp r0, 0 - bne _08143478 - b _081435C6 -_08143478: - ldrb r0, [r5, 0xC] - cmp r0, 0 - beq _08143484 - cmp r0, 0x1 - beq _0814348C - b _08143492 -_08143484: - movs r0, 0x15 - bl sub_81179CC - b _08143492 -_0814348C: - movs r0, 0x16 - bl sub_81179CC -_08143492: - movs r0, 0x1 - strb r0, [r5, 0xD] - movs r0, 0x1E - strb r0, [r5, 0x8] - b _081435C6 -_0814349C: - ldr r0, _081434B0 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _081434B4 - movs r0, 0x1 - bl sub_81424B8 - movs r0, 0x1F - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081434B0: .4byte gReceivedRemoteLinkPlayers -_081434B4: - ldr r0, _081434CC @ =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x5 - beq _081434BE - b _081435C6 -_081434BE: - movs r0, 0x1 - bl sub_81424B8 -_081434C4: - movs r0, 0x12 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081434CC: .4byte gSpecialVar_Result -_081434D0: - ldr r0, _081434F0 @ =gStringVar1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _081434F4 @ =gStringVar2 - strb r1, [r0] - ldr r0, _081434F8 @ =gStringVar3 - strb r1, [r0] - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08143500 - ldr r0, _081434FC @ =gUnknown_841EAE7 - bl sub_8142504 - bl mevent_srv_common_do_init_2 - b _0814350A - .align 2, 0 -_081434F0: .4byte gStringVar1 -_081434F4: .4byte gStringVar2 -_081434F8: .4byte gStringVar3 -_081434FC: .4byte gUnknown_841EAE7 -_08143500: - ldr r0, _08143510 @ =gUnknown_841EB01 - bl sub_8142504 - bl mevent_srv_common_do_init_1 -_0814350A: - movs r0, 0x20 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143510: .4byte gUnknown_841EB01 -_08143514: - adds r0, r5, 0 - bl mevent_srv_init_do_exec - cmp r0, 0x3 - bne _081435C6 - ldrh r0, [r5] - strb r0, [r5, 0xE] - movs r0, 0x21 - strb r0, [r5, 0x8] - b _081435C6 -_08143528: - bl task_add_05_task_del_08FA224_when_no_RfuFunc - ldr r0, _0814353C @ =gStringVar1 - ldr r1, _08143540 @ =gLinkPlayers + 0x24 - bl StringCopy - movs r0, 0x22 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_0814353C: .4byte gStringVar1 -_08143540: .4byte gLinkPlayers + 0x24 -_08143544: - bl sub_80FA4F8 - lsls r0, 24 - cmp r0, 0 - beq _081435C6 - bl sub_80FCE44 - movs r0, 0x23 - strb r0, [r5, 0x8] - b _081435C6 -_08143558: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xD] - ldrb r3, [r5, 0xE] - adds r1, r5, 0 - bl sub_8142E20 - cmp r0, 0 - beq _081435C6 - ldr r0, [r5, 0xC] - ldr r1, _08143584 @ =0x00ffff00 - ands r0, r1 - ldr r1, _08143588 @ =0x00030100 - cmp r0, r1 - bne _0814359A - movs r0, 0x3 - bl sub_8146C30 -_0814357C: - movs r0, 0x11 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143584: .4byte 0x00ffff00 -_08143588: .4byte 0x00030100 -_0814358C: - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _081435A8 @ =gUnknown_841E7BC - bl mevent_0814257C -_08143596: - cmp r0, 0 - beq _081435C6 -_0814359A: - movs r0, 0 - strb r0, [r5, 0x8] -_0814359E: - movs r1, 0 - bl sub_8142344 - b _081435C6 - .align 2, 0 -_081435A8: .4byte gUnknown_841E7BC -_081435AC: - bl sub_80098B8 - bl sub_812B484 - ldr r0, [r5, 0x10] - bl Free - adds r0, r4, 0 - bl DestroyTask - ldr r0, _081435D0 @ =sub_81422FC - bl SetMainCallback2 -_081435C6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081435D0: .4byte sub_81422FC - thumb_func_end sub_8142EA0 - - thumb_func_start sub_81435D4 -sub_81435D4: @ 81435D4 - ldr r0, _081435D8 @ =0x0000019b - bx lr - .align 2, 0 -_081435D8: .4byte 0x0000019b - thumb_func_end sub_81435D4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/list_menu.s b/asm/list_menu.s index 3475b0914..e6e316fb7 100644 --- a/asm/list_menu.s +++ b/asm/list_menu.s @@ -52,7 +52,7 @@ _08106F06: lsls r2, r1, 24 lsrs r2, 24 adds r1, r7, 0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame _08106F24: ldrb r0, [r5, 0x5] mov r3, r8 @@ -60,9 +60,9 @@ _08106F24: lsls r2, 24 lsrs r2, 24 ldr r1, [sp, 0x4] - bl sub_8150048 + bl DrawTextBorderOuter _08106F34: - ldr r0, _08106F64 @ =gUnknown_3005E70 + ldr r0, _08106F64 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, [sp] ldm r1!, {r3-r5} @@ -84,7 +84,7 @@ _08106F34: b _08106FE4 .align 2, 0 _08106F60: .4byte gUnknown_203ACF4 -_08106F64: .4byte gUnknown_3005E70 +_08106F64: .4byte gMultiuseListMenuTemplate _08106F68: ldrb r0, [r5, 0x6] bl ListMenuHandleInput @@ -126,7 +126,7 @@ _08106FA8: bgt _08106FBA ldrb r0, [r5, 0x5] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame _08106FBA: ldr r0, _08106FC8 @ =gUnknown_203ACF4 ldrb r0, [r0, 0x5] @@ -139,7 +139,7 @@ _08106FCC: ldrb r0, [r5, 0x6] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r5, 0x5] bl RemoveWindow movs r0, 0 @@ -340,8 +340,8 @@ _08107136: bx r1 thumb_func_end ListMenuHandleInput - thumb_func_start sub_810713C -sub_810713C: @ 810713C + thumb_func_start DestroyListMenu +DestroyListMenu: @ 810713C push {r4,lr} adds r3, r1, 0 lsls r0, 24 @@ -377,7 +377,7 @@ _08107170: bx r0 .align 2, 0 _0810717C: .4byte gTasks+0x8 - thumb_func_end sub_810713C + thumb_func_end DestroyListMenu thumb_func_start sub_8107180 sub_8107180: @ 8107180 @@ -563,8 +563,8 @@ _081072CA: _081072D0: .4byte gTasks+0x8 thumb_func_end sub_81072AC - thumb_func_start get_coro_args_x18_x1A -get_coro_args_x18_x1A: @ 81072D4 + thumb_func_start ListMenuGetScrollAndRow +ListMenuGetScrollAndRow: @ 81072D4 push {lr} adds r3, r1, 0 lsls r0, 24 @@ -588,7 +588,7 @@ _081072F6: bx r0 .align 2, 0 _081072FC: .4byte gTasks+0x8 - thumb_func_end get_coro_args_x18_x1A + thumb_func_end ListMenuGetScrollAndRow thumb_func_start ListMenuGetYCoordForPrintingArrowCursor ListMenuGetYCoordForPrintingArrowCursor: @ 8107300 @@ -782,7 +782,7 @@ ListMenuPrint: @ 8107428 str r6, [sp, 0x10] adds r2, r7, 0 mov r3, r12 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldrb r1, [r5, 0x3] movs r0, 0x7F ands r0, r1 @@ -820,7 +820,7 @@ _08107494: str r6, [sp, 0x10] adds r2, r7, 0 mov r3, r12 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 _081074D2: add sp, 0x18 pop {r4-r7} @@ -1635,8 +1635,8 @@ sub_8107A9C: @ 8107A9C _08107AE8: .4byte gUnknown_3005E60 thumb_func_end sub_8107A9C - thumb_func_start sub_8107AEC -sub_8107AEC: @ 8107AEC + thumb_func_start ListMenuDefaultCursorMoveFunc +ListMenuDefaultCursorMoveFunc: @ 8107AEC push {lr} lsls r1, 24 cmp r1, 0 @@ -1646,7 +1646,7 @@ sub_8107AEC: @ 8107AEC _08107AFA: pop {r0} bx r0 - thumb_func_end sub_8107AEC + thumb_func_end ListMenuDefaultCursorMoveFunc thumb_func_start sub_8107B00 sub_8107B00: @ 8107B00 @@ -1976,8 +1976,8 @@ _08107D56: _08107D64: .4byte gUnknown_8E95DBC thumb_func_end sub_8107D38 - thumb_func_start sub_8107D68 -sub_8107D68: @ 8107D68 + thumb_func_start blit_move_info_icon +blit_move_info_icon: @ 8107D68 push {r4,r5,lr} sub sp, 0x18 lsls r0, 24 @@ -2014,6 +2014,6 @@ sub_8107D68: @ 8107D68 .align 2, 0 _08107DAC: .4byte gUnknown_8452C94 _08107DB0: .4byte gUnknown_8E95DDC - thumb_func_end sub_8107D68 + thumb_func_end blit_move_info_icon .align 2, 0 @ Don't pad with nop. diff --git a/asm/m4a_1.s b/asm/m4a_1.s index e78c3e69b..db8476382 100644 --- a/asm/m4a_1.s +++ b/asm/m4a_1.s @@ -4,8 +4,6 @@ .syntax unified - .lcomm gUnknown_030007B8, 0x770 - .text thumb_func_start umul3232H32 @@ -1909,3 +1907,28 @@ _081DDD90: thumb_func_end ply_mod .align 2, 0 @ Don't pad with nop. + + .bss +gUnknown_030007B8: + .space 0x40 + .size gUnknown_030007B8, .-gUnknown_030007B8 + + .global gMPlayTrack_BGM +gMPlayTrack_BGM: + .space 0x320 + .size gMPlayTrack_BGM, .-gMPlayTrack_BGM + + .global gMPlayTrack_SE1 +gMPlayTrack_SE1: + .space 0xF0 + .size gMPlayTrack_SE1, .-gMPlayTrack_SE1 + + .global gMPlayTrack_SE2 +gMPlayTrack_SE2: + .space 0x2D0 + .size gMPlayTrack_SE2, .-gMPlayTrack_SE2 + + .global gMPlayTrack_SE3 +gMPlayTrack_SE3: + .space 0x50 + .size gMPlayTrack_SE3, .-gMPlayTrack_SE3 diff --git a/asm/m4a_3.s b/asm/m4a_3.s deleted file mode 100644 index a842ae925..000000000 --- a/asm/m4a_3.s +++ /dev/null @@ -1,574 +0,0 @@ - .include "asm/macros.inc" - .include "constants/gba_constants.inc" - .include "constants/m4a_constants.inc" - - .syntax unified - - .text - - thumb_func_start CgbSound -CgbSound: @ 81DEA70 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, =SOUND_INFO_PTR - ldr r0, [r0] - str r0, [sp, 0x4] - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _081DEA94 - subs r0, 0x1 - ldr r1, [sp, 0x4] - strb r0, [r1, 0xA] - b _081DEA9A - .pool -_081DEA94: - movs r0, 0xE - ldr r2, [sp, 0x4] - strb r0, [r2, 0xA] -_081DEA9A: - movs r6, 0x1 - ldr r0, [sp, 0x4] - ldr r4, [r0, 0x1C] -_081DEAA0: - ldrb r1, [r4] - movs r0, 0xC7 - ands r0, r1 - adds r2, r6, 0x1 - mov r10, r2 - movs r2, 0x40 - adds r2, r4 - mov r9, r2 - cmp r0, 0 - bne _081DEAB6 - b _081DEEA0 -_081DEAB6: - cmp r6, 0x2 - beq _081DEAE8 - cmp r6, 0x2 - bgt _081DEAC4 - cmp r6, 0x1 - beq _081DEACA - b _081DEB20 -_081DEAC4: - cmp r6, 0x3 - beq _081DEB00 - b _081DEB20 -_081DEACA: - ldr r0, =REG_NR10 - str r0, [sp, 0x8] - ldr r7, =REG_NR11 - ldr r2, =REG_NR12 - str r2, [sp, 0xC] - adds r0, 0x4 - str r0, [sp, 0x10] - adds r2, 0x2 - b _081DEB30 - .pool -_081DEAE8: - ldr r0, =REG_NR10 + 1 - str r0, [sp, 0x8] - ldr r7, =REG_NR21 - ldr r2, =REG_NR22 - b _081DEB28 - .pool -_081DEB00: - ldr r0, =REG_NR30 - str r0, [sp, 0x8] - ldr r7, =REG_NR31 - ldr r2, =REG_NR32 - str r2, [sp, 0xC] - adds r0, 0x4 - str r0, [sp, 0x10] - adds r2, 0x2 - b _081DEB30 - .pool -_081DEB20: - ldr r0, =REG_NR30 + 1 - str r0, [sp, 0x8] - ldr r7, =REG_NR41 - ldr r2, =REG_NR42 -_081DEB28: - str r2, [sp, 0xC] - adds r0, 0xB - str r0, [sp, 0x10] - adds r2, 0x4 -_081DEB30: - str r2, [sp, 0x14] - ldr r0, [sp, 0x4] - ldrb r0, [r0, 0xA] - str r0, [sp] - ldr r2, [sp, 0xC] - ldrb r0, [r2] - mov r8, r0 - adds r2, r1, 0 - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _081DEC26 - movs r3, 0x40 - adds r0, r3, 0 - ands r0, r2 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0x1 - mov r10, r0 - movs r1, 0x40 - adds r1, r4 - mov r9, r1 - cmp r5, 0 - bne _081DEC4A - movs r0, 0x3 - strb r0, [r4] - strb r0, [r4, 0x1D] - adds r0, r4, 0 - str r3, [sp, 0x18] - bl CgbModVol - ldr r3, [sp, 0x18] - cmp r6, 0x2 - beq _081DEB98 - cmp r6, 0x2 - bgt _081DEB8C - cmp r6, 0x1 - beq _081DEB92 - b _081DEBEC - .pool -_081DEB8C: - cmp r6, 0x3 - beq _081DEBA4 - b _081DEBEC -_081DEB92: - ldrb r0, [r4, 0x1F] - ldr r2, [sp, 0x8] - strb r0, [r2] -_081DEB98: - ldr r0, [r4, 0x24] - lsls r0, 6 - ldrb r1, [r4, 0x1E] - adds r0, r1, r0 - strb r0, [r7] - b _081DEBF8 -_081DEBA4: - ldr r1, [r4, 0x24] - ldr r0, [r4, 0x28] - cmp r1, r0 - beq _081DEBCC - ldr r2, [sp, 0x8] - strb r3, [r2] - ldr r1, =REG_WAVE_RAM - ldr r2, [r4, 0x24] - ldr r0, [r2] - str r0, [r1] - adds r1, 0x4 - ldr r0, [r2, 0x4] - str r0, [r1] - adds r1, 0x4 - ldr r0, [r2, 0x8] - str r0, [r1] - adds r1, 0x4 - ldr r0, [r2, 0xC] - str r0, [r1] - str r2, [r4, 0x28] -_081DEBCC: - ldr r0, [sp, 0x8] - strb r5, [r0] - ldrb r0, [r4, 0x1E] - strb r0, [r7] - ldrb r0, [r4, 0x1E] - cmp r0, 0 - beq _081DEBE4 - movs r0, 0xC0 - b _081DEC06 - .pool -_081DEBE4: - movs r1, 0x80 - negs r1, r1 - strb r1, [r4, 0x1A] - b _081DEC08 -_081DEBEC: - ldrb r0, [r4, 0x1E] - strb r0, [r7] - ldr r0, [r4, 0x24] - lsls r0, 3 - ldr r2, [sp, 0x10] - strb r0, [r2] -_081DEBF8: - ldrb r0, [r4, 0x4] - adds r0, 0x8 - mov r8, r0 - ldrb r0, [r4, 0x1E] - cmp r0, 0 - beq _081DEC06 - movs r0, 0x40 -_081DEC06: - strb r0, [r4, 0x1A] -_081DEC08: - ldrb r1, [r4, 0x4] - movs r2, 0 - strb r1, [r4, 0xB] - movs r0, 0xFF - ands r0, r1 - adds r1, r6, 0x1 - mov r10, r1 - movs r1, 0x40 - adds r1, r4 - mov r9, r1 - cmp r0, 0 - bne _081DEC22 - b _081DED5E -_081DEC22: - strb r2, [r4, 0x9] - b _081DED8C -_081DEC26: - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _081DEC58 - ldrb r0, [r4, 0xD] - subs r0, 0x1 - strb r0, [r4, 0xD] - movs r2, 0xFF - ands r0, r2 - lsls r0, 24 - adds r1, r6, 0x1 - mov r10, r1 - movs r2, 0x40 - adds r2, r4 - mov r9, r2 - cmp r0, 0 - ble _081DEC4A - b _081DED9E -_081DEC4A: - lsls r0, r6, 24 - lsrs r0, 24 - bl CgbOscOff - movs r0, 0 - strb r0, [r4] - b _081DEE9C -_081DEC58: - movs r0, 0x40 - ands r0, r1 - adds r2, r6, 0x1 - mov r10, r2 - movs r2, 0x40 - adds r2, r4 - mov r9, r2 - cmp r0, 0 - beq _081DEC98 - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081DEC98 - movs r0, 0xFC - ands r0, r1 - movs r2, 0 - strb r0, [r4] - ldrb r1, [r4, 0x7] - strb r1, [r4, 0xB] - movs r0, 0xFF - ands r0, r1 - cmp r0, 0 - beq _081DECCA - movs r0, 0x1 - ldrb r1, [r4, 0x1D] - orrs r0, r1 - strb r0, [r4, 0x1D] - cmp r6, 0x3 - beq _081DED8C - ldrb r2, [r4, 0x7] - mov r8, r2 - b _081DED8C -_081DEC98: - ldrb r0, [r4, 0xB] - cmp r0, 0 - bne _081DED8C - cmp r6, 0x3 - bne _081DECAA - movs r0, 0x1 - ldrb r1, [r4, 0x1D] - orrs r0, r1 - strb r0, [r4, 0x1D] -_081DECAA: - adds r0, r4, 0 - bl CgbModVol - movs r0, 0x3 - ldrb r2, [r4] - ands r0, r2 - cmp r0, 0 - bne _081DECFE - ldrb r0, [r4, 0x9] - subs r0, 0x1 - strb r0, [r4, 0x9] - movs r1, 0xFF - ands r0, r1 - lsls r0, 24 - cmp r0, 0 - bgt _081DECFA -_081DECCA: - ldrb r2, [r4, 0xC] - ldrb r1, [r4, 0xA] - adds r0, r2, 0 - muls r0, r1 - adds r0, 0xFF - asrs r0, 8 - movs r1, 0 - strb r0, [r4, 0x9] - lsls r0, 24 - cmp r0, 0 - beq _081DEC4A - movs r0, 0x4 - ldrb r2, [r4] - orrs r0, r2 - strb r0, [r4] - movs r0, 0x1 - ldrb r1, [r4, 0x1D] - orrs r0, r1 - strb r0, [r4, 0x1D] - cmp r6, 0x3 - beq _081DED9E - movs r2, 0x8 - mov r8, r2 - b _081DED9E -_081DECFA: - ldrb r0, [r4, 0x7] - b _081DED8A -_081DECFE: - cmp r0, 0x1 - bne _081DED0A -_081DED02: - ldrb r0, [r4, 0x19] - strb r0, [r4, 0x9] - movs r0, 0x7 - b _081DED8A -_081DED0A: - cmp r0, 0x2 - bne _081DED4E - ldrb r0, [r4, 0x9] - subs r0, 0x1 - strb r0, [r4, 0x9] - movs r1, 0xFF - ands r0, r1 - lsls r0, 24 - ldrb r2, [r4, 0x19] - lsls r1, r2, 24 - cmp r0, r1 - bgt _081DED4A -_081DED22: - ldrb r0, [r4, 0x6] - cmp r0, 0 - bne _081DED32 - movs r0, 0xFC - ldrb r1, [r4] - ands r0, r1 - strb r0, [r4] - b _081DECCA -_081DED32: - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - movs r0, 0x1 - ldrb r2, [r4, 0x1D] - orrs r0, r2 - strb r0, [r4, 0x1D] - cmp r6, 0x3 - beq _081DED02 - movs r0, 0x8 - mov r8, r0 - b _081DED02 -_081DED4A: - ldrb r0, [r4, 0x5] - b _081DED8A -_081DED4E: - ldrb r0, [r4, 0x9] - adds r0, 0x1 - strb r0, [r4, 0x9] - movs r1, 0xFF - ands r0, r1 - ldrb r2, [r4, 0xA] - cmp r0, r2 - bcc _081DED88 -_081DED5E: - ldrb r0, [r4] - subs r0, 0x1 - movs r2, 0 - strb r0, [r4] - ldrb r1, [r4, 0x5] - strb r1, [r4, 0xB] - movs r0, 0xFF - ands r0, r1 - cmp r0, 0 - beq _081DED22 - movs r0, 0x1 - ldrb r1, [r4, 0x1D] - orrs r0, r1 - strb r0, [r4, 0x1D] - ldrb r0, [r4, 0xA] - strb r0, [r4, 0x9] - cmp r6, 0x3 - beq _081DED8C - ldrb r2, [r4, 0x5] - mov r8, r2 - b _081DED8C -_081DED88: - ldrb r0, [r4, 0x4] -_081DED8A: - strb r0, [r4, 0xB] -_081DED8C: - ldrb r0, [r4, 0xB] - subs r0, 0x1 - strb r0, [r4, 0xB] - ldr r0, [sp] - cmp r0, 0 - bne _081DED9E - subs r0, 0x1 - str r0, [sp] - b _081DEC98 -_081DED9E: - movs r0, 0x2 - ldrb r1, [r4, 0x1D] - ands r0, r1 - cmp r0, 0 - beq _081DEE16 - cmp r6, 0x3 - bgt _081DEDDE - movs r0, 0x8 - ldrb r2, [r4, 0x1] - ands r0, r2 - cmp r0, 0 - beq _081DEDDE - ldr r0, =REG_SOUNDBIAS + 1 - ldrb r0, [r0] - cmp r0, 0x3F - bgt _081DEDD0 - ldr r0, [r4, 0x20] - adds r0, 0x2 - ldr r1, =0x000007fc - b _081DEDDA - .pool -_081DEDD0: - cmp r0, 0x7F - bgt _081DEDDE - ldr r0, [r4, 0x20] - adds r0, 0x1 - ldr r1, =0x000007fe -_081DEDDA: - ands r0, r1 - str r0, [r4, 0x20] -_081DEDDE: - cmp r6, 0x4 - beq _081DEDF0 - ldr r0, [r4, 0x20] - ldr r1, [sp, 0x10] - strb r0, [r1] - b _081DEDFE - .pool -_081DEDF0: - ldr r2, [sp, 0x10] - ldrb r0, [r2] - movs r1, 0x8 - ands r1, r0 - ldr r0, [r4, 0x20] - orrs r0, r1 - strb r0, [r2] -_081DEDFE: - movs r0, 0xC0 - ldrb r1, [r4, 0x1A] - ands r0, r1 - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - adds r0, r1, r0 - strb r0, [r4, 0x1A] - movs r2, 0xFF - ands r0, r2 - ldr r1, [sp, 0x14] - strb r0, [r1] -_081DEE16: - movs r0, 0x1 - ldrb r2, [r4, 0x1D] - ands r0, r2 - cmp r0, 0 - beq _081DEE9C - ldr r1, =REG_NR51 - ldrb r0, [r1] - ldrb r2, [r4, 0x1C] - bics r0, r2 - ldrb r2, [r4, 0x1B] - orrs r0, r2 - strb r0, [r1] - cmp r6, 0x3 - bne _081DEE68 - ldr r0, =gCgb3Vol - ldrb r1, [r4, 0x9] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, [sp, 0xC] - strb r0, [r2] - movs r1, 0x80 - adds r0, r1, 0 - ldrb r2, [r4, 0x1A] - ands r0, r2 - cmp r0, 0 - beq _081DEE9C - ldr r0, [sp, 0x8] - strb r1, [r0] - ldrb r0, [r4, 0x1A] - ldr r1, [sp, 0x14] - strb r0, [r1] - movs r0, 0x7F - ldrb r2, [r4, 0x1A] - ands r0, r2 - strb r0, [r4, 0x1A] - b _081DEE9C - .pool -_081DEE68: - movs r0, 0xF - mov r1, r8 - ands r1, r0 - mov r8, r1 - ldrb r2, [r4, 0x9] - lsls r0, r2, 4 - add r0, r8 - ldr r1, [sp, 0xC] - strb r0, [r1] - movs r2, 0x80 - ldrb r0, [r4, 0x1A] - orrs r0, r2 - ldr r1, [sp, 0x14] - strb r0, [r1] - cmp r6, 0x1 - bne _081DEE9C - ldr r0, [sp, 0x8] - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _081DEE9C - ldrb r0, [r4, 0x1A] - orrs r0, r2 - ldr r1, [sp, 0x14] - strb r0, [r1] -_081DEE9C: - movs r0, 0 - strb r0, [r4, 0x1D] -_081DEEA0: - mov r6, r10 - mov r4, r9 - cmp r6, 0x4 - bgt _081DEEAA - b _081DEAA0 -_081DEEAA: - 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 CgbSound - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/macros.inc b/asm/macros.inc index 6d8657892..e6813d319 100644 --- a/asm/macros.inc +++ b/asm/macros.inc @@ -4,6 +4,7 @@ .include "asm/macros/pokemon_data.inc" .include "asm/macros/ec.inc" .include "asm/macros/map.inc" + .include "asm/macros/m4a.inc" .macro region_map_location x, y, width, height, name .byte \x @@ -147,3 +148,8 @@ .2byte MAP_\map_name .space 2 .endm + + .macro window_template bg, top, left, height, width, palno, baseBlock + .byte \bg, \top, \left, \height, \width, \palno + .2byte \baseBlock + .endm diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 960b300b7..7ce50a5e1 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -295,8 +295,6 @@ @ In FireRed, this command is a nop. .macro initclock hour minute .byte 0x2c - .byte \hour - .byte \minute .endm @ In FireRed, this command is a nop. @@ -304,7 +302,7 @@ .byte 0x2d .endm - @ Resets the values of variables 0x8000, 0x8001, and 0x8002. Related to RTC in RSE? + @ Resets the values of variables 0x8000, 0x8001, and 0x8002. .macro gettime .byte 0x2e .endm @@ -492,7 +490,7 @@ .endm @ Adds a quantity amount of item index to the player's PC. Both arguments can be variables. - .macro addpcitem index, quantity + .macro givepcitem index, quantity .byte 0x49 .2byte \index .2byte \quantity @@ -506,27 +504,27 @@ .endm @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro adddecor a + .macro adddecor decoration .byte 0x4b - .2byte \a + .2byte \decoration .endm @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro removedecor a + .macro removedecor decoration .byte 0x4c - .2byte \a + .2byte \decoration .endm @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro hasdecor a + .macro hasdecor decoration .byte 0x4d - .2byte \a + .2byte \decoration .endm @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro checkdecor a + .macro checkdecor decoration .byte 0x4e - .2byte \a + .2byte \decoration .endm @ Applies the movement data at movements to the specified (index) Person event. Also closes any standard message boxes that are still open. @@ -584,36 +582,35 @@ .endif .endm - .macro setobjectxy word1, word2, word3 - .byte 0x57 - .2byte \word1 - .2byte \word2 - .2byte \word3 + @ Sets the specified (index) Object's position on the current map. + .macro setobjectxy index, x, y + .byte 0x57 + .2byte \index + .2byte \x + .2byte \y .endm - .macro showobject word, byte1, byte2 - .byte 0x58 - .2byte \word - .byte \byte1 - .byte \byte2 + .macro showobject index, map + .byte 0x58 + .2byte \index + map \map .endm - .macro hideobject word, byte1, byte2 - .byte 0x59 - .2byte \word - .byte \byte1 - .byte \byte2 + .macro hideobject index, map + .byte 0x59 + .2byte \index + map \map .endm - @ If the script was called by a Person event, then that Person will turn to face toward the tile that the player is stepping off of. + @ If the script was called by an Object, then that Object will turn to face toward the metatile that the player is standing on. .macro faceplayer - .byte 0x5a + .byte 0x5a .endm - .macro turnobject word, byte - .byte 0x5b - .2byte \word - .byte \byte + .macro turnobject index, direction + .byte 0x5b + .2byte \index + .byte \direction .endm @ If the Trainer flag for Trainer index is not set, this command does absolutely nothing. @@ -656,6 +653,9 @@ .4byte \pointer2 @ text .4byte \pointer3 @ text .4byte \pointer4 @ event script + .elseif \type == 9 + .4byte \pointer1 @ text + .4byte \pointer2 @ text .endif .endm @@ -691,16 +691,16 @@ .2byte \trainer .endm - .macro setobjectxyperm word1, word2, word3 + .macro setobjectxyperm index, x, y .byte 0x63 - .2byte \word1 - .2byte \word2 - .2byte \word3 + .2byte \index + .2byte \x + .2byte \y .endm - .macro moveobjectoffscreen word + .macro moveobjectoffscreen index .byte 0x64 - .2byte \word + .2byte \index .endm .macro setobjectmovementtype word, byte @@ -725,73 +725,69 @@ .byte 0x68 .endm - @ Ceases movement for all OWs on-screen. + @ Ceases movement for all Objects on-screen. .macro lockall .byte 0x69 .endm - @ If the script was called by a Person event, then that Person's movement will cease. + @ If the script was called by an Object, then that Object's movement will cease. .macro lock .byte 0x6a .endm - @ Resumes normal movement for all OWs on-screen, and closes any standard message boxes that are still open. + @ Resumes normal movement for all Objects on-screen, and closes any standard message boxes that are still open. .macro releaseall .byte 0x6b .endm - @ If the script was called by a Person event, then that Person's movement will resume. This command also closes any standard message boxes that are still open. + @ If the script was called by an Object, then that Object's movement will resume. This command also closes any standard message boxes that are still open. .macro release .byte 0x6c .endm @ Blocks script execution until the player presses any key. - .macro waitbutton + .macro waitbuttonpress .byte 0x6d .endm @ Displays a YES/NO multichoice box at the specified coordinates, and blocks script execution until the user makes a selection. Their selection is stored in variable 0x800D (LASTRESULT); 0x0000 for "NO" or if the user pressed B, and 0x0001 for "YES". - .macro yesnobox X, Y + .macro yesnobox x, y .byte 0x6e - .byte \X - .byte \Y + .byte \x + .byte \y .endm - @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If B is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. - .macro multichoice X, Y, list, B + @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + .macro multichoice x, y, list, b .byte 0x6f - .byte \X - .byte \Y + .byte \x + .byte \y .byte \list - .byte \B + .byte \b .endm - @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If B is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. - .macro multichoicedefault X, Y, list, default, B + @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + .macro multichoicedefault x, y, list, default, b .byte 0x70 - .byte \X - .byte \Y + .byte \x + .byte \y .byte \list .byte \default - .byte \B + .byte \b .endm @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box. - .macro multichoicegrid X, Y, list, per_row, B + .macro multichoicegrid x, y, list, per_row, B .byte 0x71 - .byte \X - .byte \Y + .byte \x + .byte \y .byte \list .byte \per_row .byte \B .endm - .macro drawbox byte1, byte2, byte3, byte4 + .macro drawbox .byte 0x72 - .byte \byte1 - .byte \byte2 - .byte \byte3 - .byte \byte4 .endm .macro erasebox byte1, byte2, byte3, byte4 @@ -802,28 +798,24 @@ .byte \byte4 .endm - .macro drawboxtext byte1, byte2, byte3, byte4 + .macro drawboxtext .byte 0x74 - .byte \byte1 - .byte \byte2 - .byte \byte3 - .byte \byte4 .endm - @ Displays a box containing the front sprite for the specified (species) Pokmon species. - .macro drawpokepic species, X, Y + @ Displays a box containing the front sprite for the specified (species) Pokemon species. + .macro drawmonpic species, x, y .byte 0x75 .2byte \species - .byte \X - .byte \Y + .byte \x + .byte \y .endm - @ Hides all boxes displayed with showpokepic. - .macro erasepokepic + @ Hides all boxes displayed with drawmonpic. + .macro erasemonpic .byte 0x76 .endm - @ In FireRed, this command is a nop. (The argument is discarded.) + @ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.) .macro drawcontestwinner a .byte 0x77 .byte \a @@ -835,8 +827,9 @@ .4byte \text .endm + @ RENAMED! @ Gives the player one of the specified (species) Pokmon at level level holding item. The unknown arguments should all be zeroes. - .macro givepoke species, level, item, unknown1, unknown2, unknown3 + .macro givemon species, level, item, unknown1, unknown2, unknown3 .byte 0x79 .2byte \species .byte \level @@ -846,39 +839,42 @@ .byte \unknown3 .endm - .macro giveegg word + .macro giveegg species .byte 0x7a - .2byte \word + .2byte \species .endm - .macro setpokemove byte1, byte2, word + @ RENAMED! + .macro setmonmove byte1, byte2, word .byte 0x7b .byte \byte1 .byte \byte2 .2byte \word .endm - @ Checks if at least one Pokmon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the Pokmon that knows the move. If not, LASTRESULT is set to 0x0006. - .macro checkpokemove index + @ Checks if at least one Pokémon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the first Pokémon that knows the move. If not, LASTRESULT is set to 0x0006. Variable 0x8004 is also set to this Pokémon's species. + .macro checkpartymove index .byte 0x7c .2byte \index .endm - @ Writes the name of the Pokmon at index species to the specified buffer. + @ Writes the name of the Pokemon at index species to the specified buffer. .macro getspeciesname out, species .byte 0x7d .byte \out .2byte \species .endm - @ Writes the name of the first Pokmon in the player's party to the specified buffer. - .macro getfirstpartypokename out + @ RENAMED! + @ Writes the name of the species of the first Pokémon in the player's party to the specified buffer. + .macro getfirstpartymonname out .byte 0x7e .byte \out .endm - @ Writes the name of the Pokmon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer. - .macro getpartypokename out, slot + @ RENAMED! + @ Writes the nickname of the Pokemon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer. + .macro getpartymonname out, slot .byte 0x7f .byte \out .2byte \slot @@ -891,18 +887,18 @@ .2byte \item .endm - @ In FireRed, this command is a nop. (The first argument is discarded immediately. The second argument is read, but not used for anything.) - .macro getdecorname a, b + @ Writes the name of the decoration at index decoration to the specified buffer. In FireRed, this command is a nop. + .macro getdecorname out, decoration .byte 0x81 - .byte \a - .2byte \b + .byte \out + .2byte \decoration .endm - @ Writes the name of the attack at index attack to the specified buffer. - .macro getmovename out, attack + @ Writes the name of the move at index move to the specified buffer. + .macro getmovename out, move .byte 0x82 .byte \out - .2byte \attack + .2byte \move .endm @ Converts the value of input to a decimal string, and writes that string to the specified buffer. @@ -912,7 +908,7 @@ .2byte \input .endm - @ Writes the standard string identified by index to the specified buffer. Specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption (I've observed destruction of the stored player name and crashes when entering/exiting certain menu screens). + @ Writes the standard string identified by index to the specified buffer. This command has no protections in place at all, so specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption. .macro getstdstring out, index .byte 0x84 .byte \out @@ -944,15 +940,15 @@ .4byte \products .endm + @ Starts up the slot machine minigame. .macro playslotmachine word .byte 0x89 .2byte \word .endm @ In FireRed, this command is a nop. - .macro plantberrytree byte1, byte2, byte3 + .macro plantberrytree .byte 0x8a - .byte \byte1, \byte2, \byte3 .endm @ In FireRed, this command sets the byte at 0x03000EA8 to 0x01. I do not know what that means. @@ -1003,30 +999,29 @@ .endm @ Spawns a secondary box showing how much money the player has. - .macro showmoneybox X, Y + .macro showmoneybox x, y, check .byte 0x93 - .byte \X - .byte \Y + .byte \x + .byte \y + .byte \check .endm @ Hides the secondary box spawned by showmoney. - .macro hidemoneybox X, Y + .macro hidemoneybox .byte 0x94 - .byte \X - .byte \Y .endm - @ Updates the secondary box spawned by showmoney. (What does it do with its arguments?) - .macro updatemoneybox X, Y + @ Updates the secondary box spawned by showmoney. Consumes but does not use arguments. + .macro updatemoneybox x, y, check .byte 0x95 - .byte \X - .byte \Y + .byte \x + .byte \y + .byte \check .endm @ In FireRed, this command is a nop. - .macro getpricereduction word + .macro getpricereduction .byte 0x96 - .2byte \word .endm @ Fades the screen to black or back, using the specified effect. Effect 0x00 fades in, and effect 0x01 fades out. I don't know if other effects exist. @@ -1035,18 +1030,19 @@ .byte \effect .endm - .macro fadescreendelay byte1, byte2 + @ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. Other modes may exist. + .macro fadescreenspeed effect, speed .byte 0x98 - .byte \byte1 - .byte \byte2 + .byte \effect + .byte \speed .endm - .macro setdarklevel word + .macro setflashradius word .byte 0x99 .2byte \word .endm - .macro animdarklevel byte + .macro animateflash byte .byte 0x9a .byte \byte .endm @@ -1062,11 +1058,11 @@ .2byte \animation .endm - @ Tells the game which party Pokmon to use for the next field move animation. - .macro setfieldeffect animation, slot + @ Sets up the field effect argument argument with the value value. + .macro setfieldeffectarg argument, param .byte 0x9d - .byte \animation - .2byte \slot + .byte \argument + .2byte \param .endm @ Blocks script execution until all playing field move animations complete. @@ -1075,8 +1071,8 @@ .2byte \animation .endm - @ Sets which healing place the player will return to if all of the Pokmon in their party faint. A list of available healing places can be found on PokeCommunity. - .macro sethealplace flightspot + @ Sets which healing place the player will return to if all of the Pokemon in their party faint. + .macro setrespawn flightspot .byte 0x9f .2byte \flightspot .endm @@ -1086,19 +1082,19 @@ .byte 0xa0 .endm - @ Plays the specified (species) Pokmon's cry. You can use waitcry to block script execution until the sound finishes. - .macro playpokecry species, effect + @ Plays the specified (species) Pokemon's cry. You can use waitcry to block script execution until the sound finishes. + .macro playmoncry species, effect .byte 0xa1 .2byte \species .2byte \effect .endm - @ Changes the tile at (X, Y) on the current map. - .macro setmaptile X, Y, tile_number, tile_attrib + @ Changes the metatile at (x, y) on the current map. + .macro setmetatile x, y, metatile_number, tile_attrib .byte 0xa2 - .2byte \X - .2byte \Y - .2byte \tile_number + .2byte \x + .2byte \y + .2byte \metatile_number .2byte \tile_attrib .endm @@ -1119,98 +1115,96 @@ .endm @ This command manages cases in which maps have tiles that change state when stepped on (specifically, cracked/breakable floors). - .macro tileeffect subroutine + .macro setstepcallback subroutine .byte 0xa6 .byte \subroutine .endm - .macro setmaplayoutindex word + .macro setmaplayoutindex index .byte 0xa7 - .2byte \word + .2byte \index .endm - .macro setobjectpriority word, byte1, byte2, byte3 + .macro setobjectpriority index, map, priority .byte 0xa8 - .2byte \word - .byte \byte1 - .byte \byte2 - .byte \byte3 + .2byte \index + map \map + .byte \priority .endm - .macro resetobjectpriority word, byte1, byte2 + .macro resetobjectpriority index, map .byte 0xa9 - .2byte \word - .byte \byte1 - .byte \byte2 + .2byte \index + map \map .endm - .macro createvobject byte1, byte2, word1, word2, byte3, byte4 + .macro createvobject sprite, byte2, x, y, elevation, direction .byte 0xaa - .byte \byte1 + .byte \sprite .byte \byte2 - .2byte \word1 - .2byte \word2 - .byte \byte3 - .byte \byte4 + .2byte \x + .2byte \y + .byte \elevation + .byte \direction .endm - .macro turnvobject byte1, byte2 + .macro turnvobject index, direction .byte 0xab - .byte \byte1 - .byte \byte2 + .byte \index + .byte \direction .endm - @ Queues the opening of the door tile at (X, Y) with an animation. - .macro opendoor X, Y + @ Opens the door metatile at (X, Y) with an animation. + .macro opendoor x, y .byte 0xac - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm - @ Queues the closing of the door tile at (X, Y) with an animation. - .macro closedoor X, Y + @ Closes the door metatile at (X, Y) with an animation. + .macro closedoor x, y .byte 0xad - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm - @ Executes the state changes queued with setdooropened, setdoorclosed, setdooropened2, and setdoorclosed2. + @ Waits for the door animation started with opendoor or closedoor to finish. .macro waitdooranim .byte 0xae .endm - @ Queues the opening of the door tile at (X, Y) without an animation. - .macro setdooropen X, Y + @ Sets the door tile at (x, y) to be open without an animation. + .macro setdooropen x, y .byte 0xaf - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm - @ Queues the closing of the door tile at (X, Y) without an animation. - .macro setdoorclosed X, Y + @ Sets the door tile at (x, y) to be closed without an animation. + .macro setdoorclosed2 x, y .byte 0xb0 - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm - @ In FireRed, this command is a nop. + @ In Emerald, this command consumes its parameters and does nothing. In FireRed, this command is a nop. .macro addelevmenuitem .byte 0xb1 .endm - @ In FireRed, this command is a nop. + @ In FireRed and Emerald, this command is a nop. .macro showelevmenu .byte 0xb2 .endm - .macro checkcoins word + .macro checkcoins out .byte 0xb3 - .2byte \word + .2byte \out .endm - .macro givecoins word + .macro givecoins count .byte 0xb4 - .2byte \word + .2byte \count .endm .macro takecoins word @@ -1226,7 +1220,7 @@ .2byte \item .endm - @ Starts a wild battle against the Pokmon generated by setwildbattle. Blocks script execution until the battle finishes. + @ Starts a wild battle against the Pokemon generated by setwildbattle. Blocks script execution until the battle finishes. .macro dowildbattle .byte 0xb7 .endm @@ -1264,55 +1258,55 @@ .4byte \pointer .endm - .macro vloadword pointer + .macro vloadptr pointer .byte 0xbe .4byte \pointer .endm - .macro vgetstring byte, pointer + .macro vbufferstring byte, pointer .byte 0xbf .byte \byte .4byte \pointer .endm @ Spawns a secondary box showing how many Coins the player has. - .macro showcoinsbox X, Y + .macro showcoinsbox x, y .byte 0xc0 - .byte \X - .byte \Y + .byte \x + .byte \y .endm - @ Hides the secondary box spawned by showcoins. It doesn't appear to use its arguments, but they are still required. - .macro hidecoinsbox X, Y + @ Hides the secondary box spawned by showcoins. It consumes its arguments but doesn't use them. + .macro hidecoinsbox x, y .byte 0xc1 - .byte \X - .byte \Y + .byte \x + .byte \y .endm - @ Updates the secondary box spawned by showcoins. (What does it do with its arguments?) - .macro updatecoinsbox X, Y + @ Updates the secondary box spawned by showcoins. It consumes its arguments but doesn't use them. + .macro updatecoinsbox x, y .byte 0xc2 - .byte \X - .byte \Y + .byte \x + .byte \y .endm - @ Increases the value of the specified hidden variable by 1. The hidden variable's value will not be allowed to exceed 0x00FFFFFF. - .macro incrementgamestat a + @ Increases the value of the specified game stat by 1. The stat's value will not be allowed to exceed 0x00FFFFFF. + .macro incrementgamestat stat .byte 0xc3 - .byte \a + .byte \stat .endm - @ Clone of warp... Except that it doesn't appear to have any effect when used in some of FireRed's default level scripts. (If it did, Berry Forest would be impossible to enter...) - .macro setescapewarp map, warp, X, Y + @ Sets the destination that using an Escape Rope or Dig will take the player to. + .macro setescapewarp map, warp, x, y .byte 0xc4 map \map .byte \warp - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm @ Blocks script execution until cry finishes. - .macro waitpokecry + .macro waitmoncry .byte 0xc5 .endm @@ -1357,128 +1351,52 @@ .4byte \value .endm - @ Makes the Pokmon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle. - .macro setobedience slot + @ Makes the Pokemon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle. + .macro setmonobedient slot .byte 0xcd .2byte \slot .endm - @ Checks if the Pokmon in the specified slot of the player's party is obedient. If the Pokmon is disobedient, 0x0001 is written to script variable 0x800D (LASTRESULT). If the Pokmon is obedient (or if the specified slot is empty or invalid), 0x0000 is written. - .macro checkobedience slot + @ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient, 0x0001 is written to script variable 0x800D (LASTRESULT). If the Pokemon is obedient (or if the specified slot is empty or invalid), 0x0000 is written. + .macro checkmonobedience slot .byte 0xce .2byte \slot .endm - @ Depending on factors I haven't managed to understand yet, this command may cause script execution to jump to the offset specified by the pointer at 0x020370A4. + @ Depending on factors I haven't managed to understand yet, this command may cause script execution to jump to the offset specified by the pointer at 0x020375C0. .macro execram .byte 0xcf .endm @ Sets worldmapflag to 1. This allows the player to Fly to the corresponding map, if that map has a flightspot. - .macro setworldflag worldmapflag + .macro setworldmapflag worldmapflag .byte 0xd0 .2byte \worldmapflag .endm @ Clone of warpteleport? It is apparently only used in FR/LG, and only with specials.[source] - .macro warpteleport2 map, warp, X, Y + .macro warpteleport2 map, warp, x, y .byte 0xd1 map \map .byte \warp - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm - @ Changes the location where the player caught the Pokmon in the specified slot of their party. A list of valid catch locations can be found on PokeCommunity. - .macro setcatchlocale slot, location + @ Changes the location where the player caught the Pokemon in the specified slot of their party. + .macro setmonmetlocation slot, location .byte 0xd2 .2byte \slot .byte \location .endm - .macro event_d3 unknown + .macro getbraillestringwidth pointer .byte 0xd3 - .2byte \unknown - .endm - - .macro event_d4 - .byte 0xd4 - .endm - - @ In FireRed, this command is a nop. - .macro event_d5 var - .byte 0xd5 - .2byte \var - .endm - - .macro event_d6 - .byte 0xd6 - .endm - - .macro warp7 map, byte, word1, word2 - .byte 0xd7 - map \map - .byte \byte - .2byte \word1 - .2byte \word2 - .endm - - .macro event_d8 - .byte 0xd8 - .endm - - .macro event_d9 - .byte 0xd9 - .endm - - .macro hidebox2 - .byte 0xda - .endm - - .macro message3 pointer - .byte 0xdb .4byte \pointer .endm - .macro fadescreen3 byte - .byte 0xdc - .byte \byte - .endm - - .macro buffertrainerclass byte, word - .byte 0xdd - .byte \byte - .2byte \word - .endm - - .macro buffertrainername byte, word - .byte 0xde - .byte \byte - .2byte \word - .endm - - .macro pokenavcall pointer - .byte 0xdf - .4byte \pointer - .endm - - .macro warp8 map, byte, word1, word2 - .byte 0xe0 - map \map - .byte \byte - .2byte \word1 - .2byte \word2 - .endm - - .macro buffercontesttype byte, word - .byte 0xe1 - .byte \byte - .2byte \word - .endm - - @ Writes the name of the specified (item) item to the specified buffer. If the specified item is a Berry (0x85 - 0xAE) or Poke Ball (0x4) and if the quantity is 2 or more, the buffered string will be pluralized ("IES" or "S" appended). If the specified item is the Enigma Berry, I have no idea what this command does (but testing showed no pluralization). If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead. - .macro storeitems out, item, quantity - .byte 0xe2 + .macro bufferitemnameplural out, item, quantity + .byte 0xd4 .byte \out .2byte \item .2byte \quantity @@ -1517,7 +1435,10 @@ callstd \function .endm - .macro givedecoration decoration - setorcopyvar 0x8000, \decoration - callstd 7 + .macro giveitemfanfaremsg msg, item, amount=1, fanfare=MUS_FANFA1 + loadword 0, \msg + setorcopyvar 0x8000, \item + setorcopyvar 0x8001, \amount + setorcopyvar 0x8002, \fanfare + callstd 9 .endm diff --git a/asm/macros/map.inc b/asm/macros/map.inc index 9c68e8414..075993fd3 100644 --- a/asm/macros/map.inc +++ b/asm/macros/map.inc @@ -14,13 +14,15 @@ .4byte \address .endm - .macro object_event byte1, word1, byte2, byte3, byte4, byte5, byte6, byte7, byte8, byte9, byte10, byte11, byte12, byte13, byte14, script, word2, byte15, byte16 - .byte \byte1 - .2byte \word1 - .byte \byte2, \byte3, \byte4, \byte5, \byte6, \byte7, \byte8, \byte9, \byte10, \byte11, \byte12, \byte13, \byte14 + .macro object_event index:req, gfx:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req + .byte \index + .2byte \gfx + .byte 0 + .2byte \x, \y + .byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0 + .2byte \trainer_type, \sight_radius_tree_etc .4byte \script - .2byte \word2 - .byte \byte15, \byte16 + .2byte \event_flag, 0 inc _num_npcs .endm @@ -53,6 +55,10 @@ inc _num_signs .endm + .macro bg_hidden_item_event x, y, height, item, flag, unknown + bg_event \x, \y, \height, 7, 0, \item, \flag, \unknown + .endm + .macro map_events npcs, warps, traps, signs .byte _num_npcs, _num_warps, _num_traps, _num_signs .4byte \npcs, \warps, \traps, \signs diff --git a/asm/macros/movement.inc b/asm/macros/movement.inc index 909b24916..f077a8f5a 100644 --- a/asm/macros/movement.inc +++ b/asm/macros/movement.inc @@ -5,7 +5,7 @@ .endm .endm - enum_start + enum_start 0 create_movement step_00 create_movement step_01 create_movement step_02 @@ -108,6 +108,8 @@ create_movement step_63 create_movement step_64 create_movement step_65 + create_movement step_66 + create_movement step_67 enum_start 0x91 create_movement step_91 diff --git a/asm/mail.s b/asm/mail.s index 1ecaf17cc..77f8864ed 100644 --- a/asm/mail.s +++ b/asm/mail.s @@ -200,7 +200,7 @@ _080BED40: _080BED8C: movs r0, 0 bl SetVBlankCallback - bl remove_some_task + bl ScanlineEffect_Stop movs r0, 0 movs r1, 0 bl SetGpuReg @@ -209,13 +209,13 @@ _080BED8C: cmp r0, 0 bne _080BEDB4 movs r0, 0x22 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080BF0F4 .align 2, 0 _080BEDB0: .4byte gUnknown_203AAC4 _080BEDB4: movs r0, 0x1E - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080BF0F4 _080BEDBC: add r1, sp, 0x8 @@ -623,7 +623,7 @@ _080BF112: .align 2, 0 _080BF128: .4byte sub_80BF368 _080BF12C: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -811,7 +811,7 @@ _080BF260: str r0, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 mov r1, r8 ldr r0, [r1] adds r0, 0xF8 @@ -856,7 +856,7 @@ _080BF2CE: str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r5] adds r0, r1, 0 adds r0, 0xE9 @@ -875,7 +875,7 @@ _080BF2CE: str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s index d2cc06070..aecca0735 100644 --- a/asm/mailbox_pc.s +++ b/asm/mailbox_pc.s @@ -81,7 +81,7 @@ sub_810EBE0: @ 810EBE0 adds r4, r0 ldrb r0, [r4] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] @@ -154,7 +154,7 @@ _0810EC62: movs r1, 0x2 movs r2, 0x8 adds r3, r5, 0 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 _0810EC82: add sp, 0x34 pop {r4,r5} @@ -176,7 +176,7 @@ sub_810EC98: @ 810EC98 ldr r7, _0810ED50 @ =gUnknown_203ADE0 ldr r0, _0810ED54 @ =gFameCheckerText_Cancel mov r12, r0 - ldr r5, _0810ED58 @ =gUnknown_3005E70 + ldr r5, _0810ED58 @ =gMultiuseListMenuTemplate ldr r1, _0810ED5C @ =gUnknown_203ADDC mov r8, r1 ldrb r0, [r6, 0x5] @@ -263,7 +263,7 @@ _0810ECCE: .align 2, 0 _0810ED50: .4byte gUnknown_203ADE0 _0810ED54: .4byte gFameCheckerText_Cancel -_0810ED58: .4byte gUnknown_3005E70 +_0810ED58: .4byte gMultiuseListMenuTemplate _0810ED5C: .4byte gUnknown_203ADDC _0810ED60: .4byte gUnknown_8454003 _0810ED64: .4byte sub_810ED6C @@ -303,7 +303,7 @@ sub_810ED80: @ 810ED80 movs r1, 0xC2 movs r2, 0xC movs r3, 0x94 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized strb r0, [r4, 0xA] add sp, 0x10 pop {r4} diff --git a/asm/main_menu.s b/asm/main_menu.s index ae0a4c69b..f88fea21a 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -113,7 +113,7 @@ sub_800C318: @ 800C318 ldr r0, _0800C4B0 @ =0x810001ff str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl remove_some_task + bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes @@ -639,7 +639,7 @@ _0800C828: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0800C86C @ =gUnknown_8234618 bl sub_800D0B4 movs r0, 0 @@ -670,7 +670,7 @@ _0800C870: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, _0800C8E8 @ =gUnknown_8415A6E @@ -679,7 +679,7 @@ _0800C870: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 bl sub_800CE58 ldr r4, _0800C8EC @ =gUnknown_8234620 adds r0, r4, 0 @@ -725,7 +725,7 @@ _0800C8F0: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, _0800C9B8 @ =gUnknown_8415A6E @@ -734,7 +734,7 @@ _0800C8F0: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 strh r0, [r6, 0x1C] str r5, [sp] @@ -745,7 +745,7 @@ _0800C8F0: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 bl sub_800CE58 ldr r4, _0800C9C0 @ =gUnknown_8234620 adds r0, r4, 0 @@ -983,7 +983,7 @@ _0800CB2E: bl FreeAllWindowBuffers adds r0, r6, 0 bl DestroyTask - bl sub_812EB2C + bl StartNewGameScene b _0800CB84 .align 2, 0 _0800CB44: .4byte gUnknown_2031DE0 @@ -1005,7 +1005,7 @@ _0800CB64: .4byte gPlttBufferUnfaded _0800CB68: .4byte gPlttBufferFaded _0800CB6C: .4byte gUnknown_2031DE0 _0800CB70: - ldr r0, _0800CB8C @ =sub_81422AC + ldr r0, _0800CB8C @ =c2_mystery_gift bl SetMainCallback2 bl sub_812B478 bl FreeAllWindowBuffers @@ -1017,7 +1017,7 @@ _0800CB84: pop {r0} bx r0 .align 2, 0 -_0800CB8C: .4byte sub_81422AC +_0800CB8C: .4byte c2_mystery_gift thumb_func_end sub_800CA94 thumb_func_start sub_800CB90 @@ -1141,7 +1141,7 @@ sub_800CC68: @ 800CC68 ands r0, r1 cmp r0, 0 bne _0800CC86 - ldr r0, _0800CC90 @ =sub_8078914 + ldr r0, _0800CC90 @ =CB2_InitTitleScreen bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask @@ -1151,7 +1151,7 @@ _0800CC86: bx r0 .align 2, 0 _0800CC8C: .4byte gPaletteFade -_0800CC90: .4byte sub_8078914 +_0800CC90: .4byte CB2_InitTitleScreen thumb_func_end sub_800CC68 thumb_func_start sub_800CC94 @@ -1355,7 +1355,7 @@ sub_800CDF8: @ 800CDF8 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x4 bl PutWindowTilemap movs r0, 0x4 @@ -1404,7 +1404,7 @@ sub_800CE70: @ 800CE70 movs r1, 0x2 movs r2, 0x2 movs r3, 0x12 - bl box_print + bl AddTextPrinterParameterized3 add r1, sp, 0xC movs r2, 0 ldr r0, _0800CED0 @ =gSaveBlock2Ptr @@ -1430,7 +1430,7 @@ _0800CE96: movs r1, 0x2 movs r2, 0x3E movs r3, 0x12 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x14 pop {r0} bx r0 @@ -1455,7 +1455,7 @@ sub_800CED4: @ 800CED4 movs r1, 0x2 movs r2, 0x2 movs r3, 0x22 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, _0800CF38 @ =gSaveBlock2Ptr ldr r0, [r4] ldrh r1, [r0, 0xE] @@ -1479,7 +1479,7 @@ sub_800CED4: @ 800CED4 movs r1, 0x2 movs r2, 0x3E movs r3, 0x22 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x2C pop {r4-r6} pop {r0} @@ -1525,7 +1525,7 @@ _0800CF6A: movs r1, 0x2 movs r2, 0x2 movs r3, 0x32 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC adds r1, r6, 0 movs r2, 0 @@ -1541,7 +1541,7 @@ _0800CF6A: movs r1, 0x2 movs r2, 0x3E movs r3, 0x32 - bl box_print + bl AddTextPrinterParameterized3 _0800CFAE: add sp, 0x2C pop {r4-r6} @@ -1586,7 +1586,7 @@ _0800CFE2: movs r1, 0x2 movs r2, 0x2 movs r3, 0x42 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC adds r1, r6, 0 movs r2, 0x2 @@ -1602,7 +1602,7 @@ _0800CFE2: movs r1, 0x2 movs r2, 0x3E movs r3, 0x42 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x2C pop {r4-r6} pop {r0} @@ -1656,7 +1656,7 @@ sub_800D094: @ 800D094 ldr r1, _0800D0AC @ =0x000001b1 movs r0, 0 movs r2, 0x20 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldr r0, _0800D0B0 @ =gUnknown_8234638 bl sub_800D1E8 pop {r0} diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s index b7e20c4bf..8df50601a 100644 --- a/asm/map_name_popup.s +++ b/asm/map_name_popup.s @@ -360,7 +360,7 @@ _080983C6: adds r0, r4, 0 adds r1, r6, 0 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter adds r0, r4, 0 bl PutWindowTilemap adds r0, r5, 0 diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s deleted file mode 100644 index 1b406a74d..000000000 --- a/asm/map_obj_lock.s +++ /dev/null @@ -1,302 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start walkrun_is_standing_still -walkrun_is_standing_still: @ 8069554 - push {lr} - ldr r0, _08069564 @ =gPlayerAvatar - ldrb r0, [r0, 0x3] - cmp r0, 0x1 - beq _08069568 - movs r0, 0x1 - b _0806956A - .align 2, 0 -_08069564: .4byte gPlayerAvatar -_08069568: - movs r0, 0 -_0806956A: - pop {r1} - bx r1 - thumb_func_end walkrun_is_standing_still - - thumb_func_start sub_8069570 -sub_8069570: @ 8069570 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl walkrun_is_standing_still - lsls r0, 24 - cmp r0, 0 - beq _0806958A - bl sub_805C270 - adds r0, r4, 0 - bl DestroyTask -_0806958A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8069570 - - thumb_func_start sub_8069590 -sub_8069590: @ 8069590 - push {lr} - ldr r0, _080695A8 @ =sub_8069570 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _080695AC - bl sub_805C780 - movs r0, 0x1 - b _080695AE - .align 2, 0 -_080695A8: .4byte sub_8069570 -_080695AC: - movs r0, 0 -_080695AE: - pop {r1} - bx r1 - thumb_func_end sub_8069590 - - thumb_func_start ScriptFreezeMapObjects -ScriptFreezeMapObjects: @ 80695B4 - push {lr} - bl player_bitmagic - ldr r0, _080695C8 @ =sub_8069570 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080695C8: .4byte sub_8069570 - thumb_func_end ScriptFreezeMapObjects - - thumb_func_start sub_80695CC -sub_80695CC: @ 80695CC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0806963C @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080695F6 - bl walkrun_is_standing_still - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _080695F6 - bl sub_805C270 - strh r4, [r5, 0x8] -_080695F6: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0806961E - ldr r2, _08069640 @ =gMapObjects - ldr r0, _08069644 @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _0806961E - adds r0, r1, 0 - bl FreezeMapObject - movs r0, 0x1 - strh r0, [r5, 0xA] -_0806961E: - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08069634 - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08069634 - adds r0, r6, 0 - bl DestroyTask -_08069634: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806963C: .4byte gTasks -_08069640: .4byte gMapObjects -_08069644: .4byte gUnknown_3005074 - thumb_func_end sub_80695CC - - thumb_func_start sub_8069648 -sub_8069648: @ 8069648 - push {lr} - ldr r0, _08069660 @ =sub_80695CC - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _08069664 - bl sub_805C780 - movs r0, 0x1 - b _08069666 - .align 2, 0 -_08069660: .4byte sub_80695CC -_08069664: - movs r0, 0 -_08069666: - pop {r1} - bx r1 - thumb_func_end sub_8069648 - - thumb_func_start LockSelectedMapObject -LockSelectedMapObject: @ 806966C - push {r4,r5,lr} - ldr r4, _080696B0 @ =gUnknown_3005074 - ldrb r0, [r4] - bl FreezeMapObjectsExceptOne - ldr r0, _080696B4 @ =sub_80695CC - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080696B8 @ =gMapObjects - ldrb r1, [r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _080696AA - adds r0, r1, 0 - bl FreezeMapObject - ldr r0, _080696BC @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0xA] -_080696AA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080696B0: .4byte gUnknown_3005074 -_080696B4: .4byte sub_80695CC -_080696B8: .4byte gMapObjects -_080696BC: .4byte gTasks - thumb_func_end LockSelectedMapObject - - thumb_func_start sub_80696C0 -sub_80696C0: @ 80696C0 - push {lr} - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080696EC @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80974D8 - bl UnfreezeMapObjects - pop {r0} - bx r0 - .align 2, 0 -_080696EC: .4byte gMapObjects - thumb_func_end sub_80696C0 - - thumb_func_start sub_80696F0 -sub_80696F0: @ 80696F0 - push {r4,lr} - ldr r4, _08069738 @ =gMapObjects - ldr r0, _0806973C @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _0806970E - adds r0, r1, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished -_0806970E: - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80974D8 - bl UnfreezeMapObjects - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08069738: .4byte gMapObjects -_0806973C: .4byte gUnknown_3005074 - thumb_func_end sub_80696F0 - - thumb_func_start sub_8069740 -sub_8069740: @ 8069740 - push {lr} - ldr r0, _0806975C @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08069760 @ =gMapObjects - adds r0, r1 - ldr r1, _08069764 @ =gSpecialVar_Facing - ldrb r1, [r1] - bl FieldObjectFaceOppositeDirection - pop {r0} - bx r0 - .align 2, 0 -_0806975C: .4byte gUnknown_3005074 -_08069760: .4byte gMapObjects -_08069764: .4byte gSpecialVar_Facing - thumb_func_end sub_8069740 - - thumb_func_start sub_8069768 -sub_8069768: @ 8069768 - push {lr} - ldr r0, _08069780 @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08069784 @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimActive - pop {r0} - bx r0 - .align 2, 0 -_08069780: .4byte gUnknown_3005074 -_08069784: .4byte gMapObjects - thumb_func_end sub_8069768 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/map_preview_screen.s b/asm/map_preview_screen.s index c8f063d5a..be9f5e3c5 100644 --- a/asm/map_preview_screen.s +++ b/asm/map_preview_screen.s @@ -345,7 +345,7 @@ sub_80F8318: @ 80F8318 adds r0, r6, 0 movs r1, 0x2 movs r3, 0x2 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 mov r0, r8 add sp, 0x14 pop {r3,r4} diff --git a/asm/menu.s b/asm/menu.s index e593eef1c..2229f41d8 100644 --- a/asm/menu.s +++ b/asm/menu.s @@ -556,8 +556,8 @@ _0810F258: .4byte 0x00000803 _0810F25C: .4byte 0x00000804 thumb_func_end sub_810EE5C - thumb_func_start sub_810F260 -sub_810F260: @ 810F260 + thumb_func_start ClearMenuWindow_BorderThickness2 +ClearMenuWindow_BorderThickness2: @ 810F260 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -583,7 +583,7 @@ _0810F28E: bx r0 .align 2, 0 _0810F294: .4byte sub_810F298 - thumb_func_end sub_810F260 + thumb_func_end ClearMenuWindow_BorderThickness2 thumb_func_start sub_810F298 sub_810F298: @ 810F298 @@ -866,8 +866,8 @@ _0810F4D0: .4byte gUnknown_203ADF0 _0810F4D4: .4byte gUnknown_203ADF2 thumb_func_end DrawWindowBorder - thumb_func_start sub_810F4D8 -sub_810F4D8: @ 810F4D8 + thumb_func_start ClearMenuWindow +ClearMenuWindow: @ 810F4D8 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -893,7 +893,7 @@ _0810F506: bx r0 .align 2, 0 _0810F50C: .4byte sub_810F510 - thumb_func_end sub_810F4D8 + thumb_func_end ClearMenuWindow thumb_func_start sub_810F510 sub_810F510: @ 810F510 @@ -933,8 +933,8 @@ sub_810F510: @ 810F510 bx r0 thumb_func_end sub_810F510 - thumb_func_start sub_810F558 -sub_810F558: @ 810F558 + thumb_func_start CreateWindow_SnapRight_StdPal +CreateWindow_SnapRight_StdPal: @ 810F558 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1005,10 +1005,10 @@ _0810F5C4: bx r1 .align 2, 0 _0810F5E4: .4byte gUnknown_203ADF4 - thumb_func_end sub_810F558 + thumb_func_end CreateWindow_SnapRight_StdPal - thumb_func_start sub_810F5E8 -sub_810F5E8: @ 810F5E8 + thumb_func_start PrintTextOnRightSnappedWindow +PrintTextOnRightSnappedWindow: @ 810F5E8 push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 @@ -1041,7 +1041,7 @@ sub_810F5E8: @ 810F5E8 adds r0, r1, 0 movs r1, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 cmp r6, 0 beq _0810F63E ldrb r0, [r4] @@ -1055,10 +1055,10 @@ _0810F63E: .align 2, 0 _0810F648: .4byte gUnknown_203ADF4 _0810F64C: .4byte gUnknown_8456618 - thumb_func_end sub_810F5E8 + thumb_func_end PrintTextOnRightSnappedWindow - thumb_func_start sub_810F650 -sub_810F650: @ 810F650 + thumb_func_start Menu_PrintHelpSystemUIHeader +Menu_PrintHelpSystemUIHeader: @ 810F650 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1118,7 +1118,7 @@ _0810F684: adds r0, r1, 0 movs r1, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _0810F6CE: ldrb r0, [r6] movs r1, 0 @@ -1132,7 +1132,7 @@ _0810F6CE: movs r1, 0x1 movs r2, 0x4 movs r3, 0x1 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 cmp r7, 0 beq _0810F6F6 ldrb r0, [r6] @@ -1145,7 +1145,7 @@ _0810F6F6: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_810F650 + thumb_func_end Menu_PrintHelpSystemUIHeader thumb_func_start sub_810F704 sub_810F704: @ 810F704 @@ -1264,8 +1264,8 @@ _0810F7BE: _0810F7D4: .4byte gUnknown_203ADE4 thumb_func_end sub_810F774 - thumb_func_start sub_810F7D8 -sub_810F7D8: @ 810F7D8 + thumb_func_start ProgramAndPlaceMenuCursorOnWindow +ProgramAndPlaceMenuCursorOnWindow: @ 810F7D8 push {r4-r6,lr} sub sp, 0x10 ldr r4, [sp, 0x20] @@ -1297,7 +1297,7 @@ sub_810F7D8: @ 810F7D8 pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_810F7D8 + thumb_func_end ProgramAndPlaceMenuCursorOnWindow thumb_func_start sub_810F818 sub_810F818: @ 810F818 @@ -1336,7 +1336,7 @@ sub_810F818: @ 810F818 adds r1, r6, 0 ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow lsls r0, 24 lsrs r0, 24 add sp, 0x14 @@ -1883,7 +1883,7 @@ _0810FC30: adds r0, r7, 0 ldr r1, [sp, 0x14] ldr r3, [sp, 0x18] - bl sub_812E62C + bl AddTextPrinterParameterized5 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -2272,8 +2272,8 @@ sub_810FF04: @ 810FF04 bx r1 thumb_func_end sub_810FF04 - thumb_func_start sub_810FF60 -sub_810FF60: @ 810FF60 + thumb_func_start CreateYesNoMenu +CreateYesNoMenu: @ 810FF60 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -2410,7 +2410,7 @@ sub_810FF60: @ 810FF60 adds r1, r6, 0 mov r2, r8 mov r3, r9 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow add sp, 0x1C pop {r3-r5} mov r8, r3 @@ -2422,7 +2422,7 @@ sub_810FF60: @ 810FF60 .align 2, 0 _0811009C: .4byte gUnknown_203ADF3 _081100A0: .4byte gUnknown_841623D - thumb_func_end sub_810FF60 + thumb_func_end CreateYesNoMenu thumb_func_start sub_81100A4 sub_81100A4: @ 81100A4 @@ -2439,14 +2439,14 @@ sub_81100A4: @ 81100A4 movs r2, 0 str r2, [sp, 0x8] movs r3, 0 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0xC pop {r0} bx r0 thumb_func_end sub_81100A4 - thumb_func_start ProcessMenuInputNoWrap_ -ProcessMenuInputNoWrap_: @ 81100C8 + thumb_func_start Menu_ProcessInputNoWrapClearOnChoose +Menu_ProcessInputNoWrapClearOnChoose: @ 81100C8 push {r4,lr} bl ProcessMenuInputNoWrapAround lsls r0, 24 @@ -2461,7 +2461,7 @@ _081100DE: pop {r4} pop {r1} bx r1 - thumb_func_end ProcessMenuInputNoWrap_ + thumb_func_end Menu_ProcessInputNoWrapClearOnChoose thumb_func_start sub_81100E8 sub_81100E8: @ 81100E8 @@ -2469,7 +2469,7 @@ sub_81100E8: @ 81100E8 ldr r4, _08110100 @ =gUnknown_203ADF3 ldrb r0, [r4] movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl RemoveWindow pop {r4} diff --git a/asm/menu2.s b/asm/menu2.s deleted file mode 100644 index c196f77b4..000000000 --- a/asm/menu2.s +++ /dev/null @@ -1,563 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start box_print -box_print: @ 812E51C - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r1, 0 - ldr r6, [sp, 0x20] - ldr r5, [sp, 0x24] - ldr r1, [sp, 0x28] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - str r1, [sp] - mov r1, sp - strb r0, [r1, 0x4] - mov r0, sp - strb r4, [r0, 0x5] - strb r2, [r0, 0x6] - strb r3, [r0, 0x7] - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x8] - mov r0, sp - ldrb r0, [r0, 0x7] - strb r0, [r1, 0x9] - adds r0, r4, 0 - movs r1, 0x2 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x3 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, 0xB] - mov r3, sp - ldrb r2, [r3, 0xC] - movs r1, 0x10 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - mov r2, sp - ldrb r0, [r6, 0x1] - lsls r0, 4 - movs r4, 0xF - strb r0, [r2, 0xC] - ldrb r2, [r6] - adds r0, r4, 0 - ands r0, r2 - ldrb r2, [r3, 0xD] - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xD] - mov r2, sp - ldrb r0, [r6, 0x2] - lsls r0, 4 - ands r1, r4 - orrs r1, r0 - strb r1, [r2, 0xD] - mov r0, sp - adds r1, r5, 0 - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end box_print - - thumb_func_start AddTextPrinterParametrized2 -AddTextPrinterParametrized2: @ 812E5A4 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - adds r5, r1, 0 - ldr r1, [sp, 0x28] - mov r8, r1 - ldr r1, [sp, 0x2C] - mov r9, r1 - ldr r6, [sp, 0x30] - ldr r1, [sp, 0x34] - ldr r4, [sp, 0x38] - str r4, [sp] - mov r4, sp - strb r0, [r4, 0x4] - mov r0, sp - strb r5, [r0, 0x5] - strb r2, [r0, 0x6] - strb r3, [r0, 0x7] - mov r2, sp - ldrb r0, [r0, 0x6] - strb r0, [r2, 0x8] - mov r0, sp - ldrb r0, [r0, 0x7] - strb r0, [r2, 0x9] - mov r0, sp - mov r2, r8 - strb r2, [r0, 0xA] - mov r2, r9 - strb r2, [r0, 0xB] - ldrb r3, [r4, 0xC] - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r4, 0xC] - mov r3, sp - ldrb r0, [r6, 0x1] - lsls r0, 4 - movs r5, 0xF - strb r0, [r3, 0xC] - ldrb r3, [r6] - adds r0, r5, 0 - ands r0, r3 - ldrb r3, [r4, 0xD] - ands r2, r3 - orrs r2, r0 - strb r2, [r4, 0xD] - mov r3, sp - ldrb r0, [r6, 0x2] - lsls r0, 4 - ands r2, r5 - orrs r2, r0 - strb r2, [r3, 0xD] - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end AddTextPrinterParametrized2 - - thumb_func_start sub_812E62C -sub_812E62C: @ 812E62C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - adds r6, r1, 0 - ldr r4, [sp, 0x2C] - ldr r1, [sp, 0x30] - mov r8, r1 - ldr r7, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r1, [sp, 0x3C] - mov r9, r1 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - str r2, [sp] - mov r1, sp - strb r0, [r1, 0x4] - mov r0, sp - strb r6, [r0, 0x5] - strb r3, [r0, 0x6] - strb r4, [r0, 0x7] - strb r3, [r0, 0x8] - strb r4, [r0, 0x9] - strb r5, [r0, 0xA] - mov r1, r9 - strb r1, [r0, 0xB] - mov r2, sp - ldrb r1, [r2, 0xC] - movs r5, 0x10 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2, 0xC] - adds r0, r6, 0 - movs r1, 0x5 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xC] - movs r4, 0xF - adds r1, r4, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xC] - adds r0, r6, 0 - movs r1, 0x6 - bl GetFontAttribute - mov r2, sp - adds r1, r4, 0 - ands r1, r0 - ldrb r0, [r2, 0xD] - ands r5, r0 - orrs r5, r1 - strb r5, [r2, 0xD] - adds r0, r6, 0 - movs r1, 0x7 - bl GetFontAttribute - mov r2, sp - lsls r0, 4 - ldrb r1, [r2, 0xD] - ands r4, r1 - orrs r4, r0 - strb r4, [r2, 0xD] - mov r0, sp - mov r1, r8 - adds r2, r7, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812E62C - - thumb_func_start sub_812E6DC -sub_812E6DC: @ 812E6DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r2, 16 - lsrs r5, r2, 16 - lsls r3, 16 - lsrs r6, r3, 16 - movs r4, 0 - ldr r0, _0812E734 @ =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r0, [r2] - ldr r7, _0812E738 @ =gStringVar4 - cmp r0, 0xFF - beq _0812E70A -_0812E700: - adds r4, 0x1 - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812E700 -_0812E70A: - adds r0, r7, 0 - bl StringExpandPlaceholders - cmp r4, 0x5 - beq _0812E73C - lsls r3, r5, 24 - lsrs r3, 24 - lsls r0, r6, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - mov r0, r8 - movs r1, 0x2 - adds r2, r7, 0 - bl AddTextPrinterParameterized - b _0812E75C - .align 2, 0 -_0812E734: .4byte gSaveBlock2Ptr -_0812E738: .4byte gStringVar4 -_0812E73C: - lsls r3, r5, 24 - lsrs r3, 24 - lsls r0, r6, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - mov r0, r8 - movs r1, 0x2 - adds r2, r7, 0 - bl sub_812E62C -_0812E75C: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812E6DC - - thumb_func_start sub_812E768 -sub_812E768: @ 812E768 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [sp, 0x48] - ldr r4, [sp, 0x4C] - ldr r1, [sp, 0x50] - ldr r5, [sp, 0x54] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x8] - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - lsls r4, 16 - lsrs r4, 16 - lsls r1, 16 - lsrs r1, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r2, [sp, 0x4] - ldrh r0, [r2, 0x4] - ldr r2, [sp, 0xC] - subs r0, r2 - ldr r2, [sp, 0x8] - adds r2, r1, r2 - str r2, [sp, 0x10] - cmp r0, r1 - bge _0812E7B4 - ldr r1, [sp, 0x8] - adds r0, r1 - str r0, [sp, 0x10] -_0812E7B4: - ldr r2, [sp, 0x4] - ldrh r1, [r2, 0x6] - subs r0, r1, r4 - cmp r0, r5 - bge _0812E7C6 - adds r0, r3, r1 - subs r0, r4 - str r0, [sp, 0x14] - b _0812E7CA -_0812E7C6: - adds r5, r3, r5 - str r5, [sp, 0x14] -_0812E7CA: - ldr r0, [sp] - ldrh r1, [r0, 0x4] - movs r2, 0x7 - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x18] - ldr r0, [sp, 0x4] - ldrh r1, [r0, 0x4] - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x1C] - mov r12, r3 - mov r8, r4 - ldr r1, [sp, 0x14] - cmp r12, r1 - blt _0812E7F4 - b _0812E932 -_0812E7F4: - ldr r5, [sp, 0x8] - ldr r6, [sp, 0xC] - mov r2, r12 - adds r2, 0x1 - str r2, [sp, 0x20] - mov r0, r8 - adds r0, 0x1 - str r0, [sp, 0x24] - ldr r1, [sp, 0x10] - cmp r5, r1 - blt _0812E80C - b _0812E922 -_0812E80C: - movs r7, 0x1 - movs r2, 0xF0 - mov r10, r2 - movs r0, 0xF - mov r9, r0 -_0812E816: - asrs r0, r5, 1 - movs r1, 0x3 - ands r0, r1 - ldr r2, [sp] - ldr r1, [r2] - adds r1, r0 - asrs r0, r5, 3 - lsls r0, 5 - adds r1, r0 - mov r2, r12 - asrs r0, r2, 3 - ldr r2, [sp, 0x18] - muls r0, r2 - lsls r0, 5 - adds r1, r0 - mov r2, r12 - lsls r0, r2, 29 - lsrs r0, 27 - adds r3, r1, r0 - asrs r0, r6, 1 - movs r1, 0x3 - ands r0, r1 - ldr r2, [sp, 0x4] - ldr r1, [r2] - adds r1, r0 - asrs r0, r6, 3 - lsls r0, 5 - adds r1, r0 - mov r2, r8 - asrs r0, r2, 3 - ldr r2, [sp, 0x1C] - muls r0, r2 - lsls r0, 5 - adds r1, r0 - mov r2, r8 - lsls r0, r2, 29 - lsrs r0, 27 - adds r4, r1, r0 - adds r0, r4, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E8C2 - subs r4, 0x1 - adds r0, r6, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E89A - ldrh r0, [r4] - ldr r2, _0812E88C @ =0x00000fff - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E890 - ldrb r1, [r3] - mov r0, r10 - ands r0, r1 - lsls r0, 8 - b _0812E912 - .align 2, 0 -_0812E88C: .4byte 0x00000fff -_0812E890: - ldrb r1, [r3] - mov r0, r9 - ands r0, r1 - lsls r0, 12 - b _0812E912 -_0812E89A: - ldrh r0, [r4] - ldr r2, _0812E8B4 @ =0x0000f0ff - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E8B8 - ldrb r1, [r3] - mov r0, r10 - ands r0, r1 - lsls r0, 4 - b _0812E912 - .align 2, 0 -_0812E8B4: .4byte 0x0000f0ff -_0812E8B8: - ldrb r1, [r3] - mov r0, r9 - ands r0, r1 - lsls r0, 8 - b _0812E912 -_0812E8C2: - adds r0, r6, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E8EE - ldrh r0, [r4] - ldr r2, _0812E8E0 @ =0x0000ff0f - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E8E4 - ldrb r1, [r3] - mov r0, r10 - b _0812E910 - .align 2, 0 -_0812E8E0: .4byte 0x0000ff0f -_0812E8E4: - ldrb r1, [r3] - mov r0, r9 - ands r0, r1 - lsls r0, 4 - b _0812E912 -_0812E8EE: - ldrh r0, [r4] - ldr r2, _0812E908 @ =0x0000fff0 - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E90C - ldrb r1, [r3] - mov r0, r10 - ands r0, r1 - lsrs r0, 4 - b _0812E912 - .align 2, 0 -_0812E908: .4byte 0x0000fff0 -_0812E90C: - ldrb r1, [r3] - mov r0, r9 -_0812E910: - ands r0, r1 -_0812E912: - orrs r2, r0 - strh r2, [r4] - adds r5, 0x1 - adds r6, 0x1 - ldr r0, [sp, 0x10] - cmp r5, r0 - bge _0812E922 - b _0812E816 -_0812E922: - ldr r1, [sp, 0x20] - mov r12, r1 - ldr r2, [sp, 0x24] - mov r8, r2 - ldr r0, [sp, 0x14] - cmp r12, r0 - bge _0812E932 - b _0812E7F4 -_0812E932: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812E768 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s index 3a0f709da..e68c428cd 100644 --- a/asm/menu_helpers.s +++ b/asm/menu_helpers.s @@ -57,7 +57,7 @@ _080BF4B8: adds r1, r7, 0 adds r2, r4, 0 adds r3, r5, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 ldr r1, _080BF50C @ =gUnknown_20399CC ldr r0, [sp, 0x34] str r0, [r1] @@ -129,7 +129,7 @@ sub_80BF560: @ 80BF560 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -182,8 +182,8 @@ _080BF5C8: .4byte gTasks _080BF5CC: .4byte gUnknown_20399C8 thumb_func_end sub_80BF560 - thumb_func_start sub_80BF5D0 -sub_80BF5D0: @ 80BF5D0 + thumb_func_start CreateYesNoMenuWithCallbacks +CreateYesNoMenuWithCallbacks: @ 80BF5D0 push {r4-r7,lr} sub sp, 0xC adds r6, r0, 0 @@ -210,7 +210,7 @@ sub_80BF5D0: @ 80BF5D0 str r5, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, _080BF624 @ =gUnknown_20399C8 str r7, [r0] ldr r1, _080BF628 @ =gTasks @@ -228,7 +228,7 @@ sub_80BF5D0: @ 80BF5D0 _080BF624: .4byte gUnknown_20399C8 _080BF628: .4byte gTasks _080BF62C: .4byte sub_80BF560 - thumb_func_end sub_80BF5D0 + thumb_func_end CreateYesNoMenuWithCallbacks thumb_func_start GetLRKeysState GetLRKeysState: @ 80BF630 @@ -334,7 +334,7 @@ itemid_80BF6D8_mail_related: @ 80BF6D8 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 beq _080BF6EE bl InUnionRoom @@ -357,10 +357,10 @@ _080BF702: bx r1 thumb_func_end itemid_80BF6D8_mail_related - thumb_func_start sub_80BF708 -sub_80BF708: @ 80BF708 + thumb_func_start MenuHelpers_LinkSomething +MenuHelpers_LinkSomething: @ 80BF708 push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 beq _080BF71A ldr r0, _080BF720 @ =gReceivedRemoteLinkPlayers @@ -377,12 +377,12 @@ _080BF724: _080BF726: pop {r1} bx r1 - thumb_func_end sub_80BF708 + thumb_func_end MenuHelpers_LinkSomething thumb_func_start sub_80BF72C sub_80BF72C: @ 80BF72C push {lr} - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 beq _080BF742 @@ -418,8 +418,8 @@ _080BF764: bx r1 thumb_func_end sub_80BF748 - thumb_func_start sub_80BF768 -sub_80BF768: @ 80BF768 + thumb_func_start VblankHblankHandlerSetZero +VblankHblankHandlerSetZero: @ 80BF768 push {lr} movs r0, 0 bl SetVBlankCallback @@ -427,13 +427,13 @@ sub_80BF768: @ 80BF768 bl SetHBlankCallback pop {r0} bx r0 - thumb_func_end sub_80BF768 + thumb_func_end VblankHblankHandlerSetZero thumb_func_start sub_80BF77C sub_80BF77C: @ 80BF77C push {r4,lr} sub sp, 0xC - bl sub_80BF7C8 + bl InitBgReg mov r1, sp movs r0, 0 strh r0, [r1] @@ -465,8 +465,8 @@ _080BF7C0: .4byte 0x05000100 _080BF7C4: .4byte 0x01000200 thumb_func_end sub_80BF77C - thumb_func_start sub_80BF7C8 -sub_80BF7C8: @ 80BF7C8 + thumb_func_start InitBgReg +InitBgReg: @ 80BF7C8 push {lr} movs r0, 0 movs r1, 0 @@ -517,7 +517,7 @@ sub_80BF7C8: @ 80BF7C8 bl ChangeBgY pop {r0} bx r0 - thumb_func_end sub_80BF7C8 + thumb_func_end InitBgReg thumb_func_start sub_80BF848 sub_80BF848: @ 80BF848 diff --git a/asm/menu_indicators.s b/asm/menu_indicators.s index 0dad7d3c1..28e783731 100644 --- a/asm/menu_indicators.s +++ b/asm/menu_indicators.s @@ -38,7 +38,7 @@ _0813392A: _0813393A: movs r0, 0x34 ldrsh r3, [r4, r0] - ldr r1, _0813395C @ =gUnknown_825E074 + ldr r1, _0813395C @ =gSineTable ldrh r2, [r4, 0x38] lsls r0, r2, 24 lsrs r0, 23 @@ -54,11 +54,11 @@ _08133954: strh r0, [r4, 0x24] b _0813397E .align 2, 0 -_0813395C: .4byte gUnknown_825E074 +_0813395C: .4byte gSineTable _08133960: movs r0, 0x34 ldrsh r3, [r4, r0] - ldr r1, _0813398C @ =gUnknown_825E074 + ldr r1, _0813398C @ =gSineTable ldrh r2, [r4, 0x38] lsls r0, r2, 24 lsrs r0, 23 @@ -81,7 +81,7 @@ _08133984: pop {r0} bx r0 .align 2, 0 -_0813398C: .4byte gUnknown_825E074 +_0813398C: .4byte gSineTable thumb_func_end sub_8133904 thumb_func_start AddScrollIndicatorArrowObject @@ -294,8 +294,8 @@ _08133B38: .4byte 0x0000ffff _08133B3C: .4byte gSprites thumb_func_end AddScrollIndicatorArrowPair - thumb_func_start AddScrollIndicatorArrowPairParametrized -AddScrollIndicatorArrowPairParametrized: @ 8133B40 + thumb_func_start AddScrollIndicatorArrowPairParameterized +AddScrollIndicatorArrowPairParameterized: @ 8133B40 push {r4,lr} adds r4, r1, 0 subs r0, 0x2 @@ -345,7 +345,7 @@ _08133B76: bx r1 .align 2, 0 _08133BA0: .4byte gUnknown_203B130 - thumb_func_end AddScrollIndicatorArrowPairParametrized + thumb_func_end AddScrollIndicatorArrowPairParameterized thumb_func_start sub_8133BA4 sub_8133BA4: @ 8133BA4 @@ -959,7 +959,7 @@ _0813403C: .4byte gSprites ObjectCB_RedArrowCursor: @ 8134040 push {lr} adds r2, r0, 0 - ldr r1, _08134068 @ =gUnknown_825E074 + ldr r1, _08134068 @ =gSineTable ldrh r3, [r2, 0x2E] lsls r0, r3, 24 lsrs r0, 23 @@ -978,7 +978,7 @@ _08134058: pop {r0} bx r0 .align 2, 0 -_08134068: .4byte gUnknown_825E074 +_08134068: .4byte gSineTable thumb_func_end ObjectCB_RedArrowCursor thumb_func_start nullsub_95 diff --git a/asm/mystery_gift_menu.s b/asm/mystery_gift_menu.s deleted file mode 100644 index 790c3c0b2..000000000 --- a/asm/mystery_gift_menu.s +++ /dev/null @@ -1,410 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8142078 -sub_8142078: @ 8142078 - push {lr} - bl ProcessSpriteCopyRequests - bl LoadOam - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8142078 - - thumb_func_start sub_814208C -sub_814208C: @ 814208C - push {lr} - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - thumb_func_end sub_814208C - - thumb_func_start sub_81420A4 -sub_81420A4: @ 81420A4 - push {r4-r7,lr} - sub sp, 0xC - adds r7, r0, 0 - ldr r0, _081420C4 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r6, r0, r1 - ldrb r5, [r6] - cmp r5, 0x1 - bne _081420BA - b _081421EC -_081420BA: - cmp r5, 0x1 - bgt _081420C8 - cmp r5, 0 - beq _081420D6 - b _081422A0 - .align 2, 0 -_081420C4: .4byte gMain -_081420C8: - cmp r5, 0x2 - bne _081420CE - b _08142254 -_081420CE: - cmp r5, 0x3 - bne _081420D4 - b _08142274 -_081420D4: - b _081422A0 -_081420D6: - movs r0, 0 - bl SetVBlankCallback - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - bl remove_some_task - movs r0, 0x1 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081421E0 @ =gUnknown_8466D60 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - 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 r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0x3 - bl SetBgTilemapBuffer - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0x2 - bl SetBgTilemapBuffer - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0x1 - bl SetBgTilemapBuffer - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0 - movs r1, 0xA - movs r2, 0xE0 - bl sub_814FE40 - movs r0, 0 - movs r1, 0x1 - movs r2, 0xF0 - bl sub_814FDA0 - ldr r1, _081421E4 @ =gUnknown_8466D30 - movs r2, 0x80 - lsls r2, 1 - str r5, [sp] - movs r0, 0x3 - movs r3, 0 - bl sub_80F696C - ldr r0, _081421E8 @ =gUnknown_8466D70 - bl InitWindows - bl DeactivateAllTextPrinters - movs r1, 0xC0 - lsls r1, 7 - movs r0, 0 - bl ClearGpuRegBits - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - b _0814226C - .align 2, 0 -_081421E0: .4byte gUnknown_8466D60 -_081421E4: .4byte gUnknown_8466D30 -_081421E8: .4byte gUnknown_8466D70 -_081421EC: - ldr r0, _08142250 @ =gUnknown_8466D10 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x2 - bl stdpal_get - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0x20 - str r4, [sp] - str r4, [sp, 0x4] - movs r5, 0x11 - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - bl sub_8142420 - lsls r0, r7, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8142344 - b _0814226C - .align 2, 0 -_08142250: .4byte gUnknown_8466D10 -_08142254: - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0 - bl CopyBgTilemapBufferToVram -_0814226C: - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _081422A0 -_08142274: - movs r0, 0 - bl ShowBg - movs r0, 0x3 - bl ShowBg - ldr r0, _08142298 @ =0x00000149 - bl PlayBGM - ldr r0, _0814229C @ =sub_8142078 - bl SetVBlankCallback - movs r0, 0xC5 - bl EnableInterrupts - movs r0, 0x1 - b _081422A2 - .align 2, 0 -_08142298: .4byte 0x00000149 -_0814229C: .4byte sub_8142078 -_081422A0: - movs r0, 0 -_081422A2: - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81420A4 - - thumb_func_start sub_81422AC -sub_81422AC: @ 81422AC - push {lr} - movs r0, 0 - bl sub_81420A4 - cmp r0, 0 - beq _081422C8 - ldr r0, _081422CC @ =sub_814208C - bl SetMainCallback2 - ldr r1, _081422D0 @ =gUnknown_203F3B8 - movs r0, 0 - strb r0, [r1] - bl task_add_00_mystery_gift -_081422C8: - pop {r0} - bx r0 - .align 2, 0 -_081422CC: .4byte sub_814208C -_081422D0: .4byte gUnknown_203F3B8 - thumb_func_end sub_81422AC - - thumb_func_start sub_81422D4 -sub_81422D4: @ 81422D4 - push {lr} - movs r0, 0x1 - bl sub_81420A4 - cmp r0, 0 - beq _081422F0 - ldr r0, _081422F4 @ =sub_814208C - bl SetMainCallback2 - ldr r1, _081422F8 @ =gUnknown_203F3B8 - movs r0, 0x1 - strb r0, [r1] - bl sub_81438A0 -_081422F0: - pop {r0} - bx r0 - .align 2, 0 -_081422F4: .4byte sub_814208C -_081422F8: .4byte gUnknown_203F3B8 - thumb_func_end sub_81422D4 - - thumb_func_start sub_81422FC -sub_81422FC: @ 81422FC - push {lr} - ldr r1, _0814233C @ =gUnknown_203F3B8 - movs r0, 0 - strb r0, [r1] - bl FreeAllWindowBuffers - movs r0, 0 - bl GetBgTilemapBuffer - bl Free - movs r0, 0x1 - bl GetBgTilemapBuffer - bl Free - movs r0, 0x2 - bl GetBgTilemapBuffer - bl Free - movs r0, 0x3 - bl GetBgTilemapBuffer - bl Free - ldr r0, _08142340 @ =sub_8078914 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0814233C: .4byte gUnknown_203F3B8 -_08142340: .4byte sub_8078914 - thumb_func_end sub_81422FC - - thumb_func_start sub_8142344 -sub_8142344: @ 8142344 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - cmp r5, 0 - bne _081423B4 - ldr r6, _081423A4 @ =gUnknown_841EDCA - cmp r4, 0x1 - bne _08142362 - ldr r6, _081423A8 @ =gUnknown_8415F51 -_08142362: - str r5, [sp] - str r5, [sp, 0x4] - ldr r4, _081423AC @ =gUnknown_8466EE8 - str r4, [sp, 0x8] - str r5, [sp, 0xC] - ldr r0, _081423B0 @ =gUnknown_841EDBD - str r0, [sp, 0x10] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - movs r0, 0 - adds r1, r6, 0 - movs r2, 0 - bl GetStringWidth - movs r2, 0xDE - subs r2, r0 - lsls r2, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r6, [sp, 0x10] - movs r0, 0 - movs r1, 0 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - b _081423E8 - .align 2, 0 -_081423A4: .4byte gUnknown_841EDCA -_081423A8: .4byte gUnknown_8415F51 -_081423AC: .4byte gUnknown_8466EE8 -_081423B0: .4byte gUnknown_841EDBD -_081423B4: - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - ldr r5, _08142400 @ =gUnknown_8466EE8 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - ldr r0, _08142404 @ =gUnknown_841DE50 - str r0, [sp, 0x10] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r4, [sp, 0xC] - ldr r0, _08142408 @ =gUnknown_841DE51 - str r0, [sp, 0x10] - movs r0, 0 - movs r1, 0 - movs r2, 0x78 - movs r3, 0x2 - bl AddTextPrinterParametrized2 -_081423E8: - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl PutWindowTilemap - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08142400: .4byte gUnknown_8466EE8 -_08142404: .4byte gUnknown_841DE50 -_08142408: .4byte gUnknown_841DE51 - thumb_func_end sub_8142344 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/naming_screen.s b/asm/naming_screen.s index b3c9d1f73..ef692b052 100644 --- a/asm/naming_screen.s +++ b/asm/naming_screen.s @@ -401,8 +401,8 @@ _0809DBD6: movs r1, 0 movs r2, 0 bl ChangeBgY - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 _0809DCA4: lsls r0, r4, 3 ldr r1, _0809DD50 @ =gUnknown_83E22A0 @@ -493,7 +493,7 @@ sub_809DD60: @ 809DD60 bl SetMainCallback2 bl sub_812B234 movs r0, 0x3 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 pop {r0} bx r0 .align 2, 0 @@ -959,13 +959,13 @@ _0809E156: bl StringExpandPlaceholders movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _0809E1D0 @ =gTextFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -980,7 +980,7 @@ _0809E156: movs r0, 0 movs r1, 0x2 adds r2, r4, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -2789,7 +2789,7 @@ sub_809EF54: @ 809EF54 str r2, [sp] movs r2, 0x38 movs r3, 0x25 - bl AddPseudoFieldObject + bl AddPseudoEventObject adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -3657,7 +3657,7 @@ _0809F5EE: movs r1, 0x2 movs r2, 0x68 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _0809F614: add sp, 0x10 pop {r4,r5} @@ -4196,7 +4196,7 @@ _0809FA12: adds r0, r6, 0 movs r1, 0x1 movs r2, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -4317,7 +4317,7 @@ sub_809FAE4: @ 809FAE4 str r1, [sp, 0x8] movs r1, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] diff --git a/asm/new_game.s b/asm/new_game.s index cec2b2c9a..234fefcd7 100644 --- a/asm/new_game.s +++ b/asm/new_game.s @@ -183,7 +183,7 @@ sub_8054A28: @ 8054A28 bl ZeroPlayerPartyMons bl ZeroEnemyPartyMons bl sub_81089BC - bl sub_81320AC + bl ResetTMCaseCursorPos bl sub_813D6E4 bl sub_811089C bl Random @@ -257,12 +257,12 @@ sub_8054A60: @ 8054A60 strb r5, [r0] bl ZeroPlayerPartyMons bl sub_808C7E0 - bl sub_8141C54 + bl ClearRoamerData ldr r0, [r6] ldr r1, _08054B68 @ =0x00000296 adds r0, r1 strh r5, [r0] - bl sub_809A2DC + bl ClearItemSlotsInAllBagPockets bl sub_80EB658 bl sub_809C794 bl sub_80BDD34 diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s index b3844a165..9efda4372 100644 --- a/asm/new_menu_helpers.s +++ b/asm/new_menu_helpers.s @@ -272,8 +272,8 @@ _080F695E: bx r1 thumb_func_end sub_80F68F0 - thumb_func_start sub_80F696C -sub_80F696C: @ 80F696C + thumb_func_start DecompressAndLoadBgGfxUsingHeap +DecompressAndLoadBgGfxUsingHeap: @ 80F696C push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -333,7 +333,7 @@ _080F69D2: .align 2, 0 _080F69E0: .4byte task_free_buf_after_copying_tile_data_to_vram _080F69E4: .4byte gTasks - thumb_func_end sub_80F696C + thumb_func_end DecompressAndLoadBgGfxUsingHeap thumb_func_start sub_80F69E8 sub_80F69E8: @ 80F69E8 @@ -486,8 +486,8 @@ _080F6AFC: bx r1 thumb_func_end sub_80F6AD0 - thumb_func_start sub_80F6B08 -sub_80F6B08: @ 80F6B08 + thumb_func_start SetBgRectPal +SetBgRectPal: @ 80F6B08 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -561,7 +561,7 @@ _080F6B80: bx r0 .align 2, 0 _080F6B90: .4byte 0x00000fff - thumb_func_end sub_80F6B08 + thumb_func_end SetBgRectPal thumb_func_start sub_80F6B94 sub_80F6B94: @ 80F6B94 @@ -672,8 +672,8 @@ sub_80F6C14: @ 80F6C14 bx r0 thumb_func_end sub_80F6C14 - thumb_func_start sub_80F6C6C -sub_80F6C6C: @ 80F6C6C + thumb_func_start InitStandardTextBoxWindows +InitStandardTextBoxWindows: @ 80F6C6C push {lr} ldr r0, _080F6C84 @ =gUnknown_841F42C bl InitWindows @@ -686,7 +686,7 @@ sub_80F6C6C: @ 80F6C6C .align 2, 0 _080F6C84: .4byte gUnknown_841F42C _080F6C88: .4byte gUnknown_203ABE0 - thumb_func_end sub_80F6C6C + thumb_func_end InitStandardTextBoxWindows thumb_func_start sub_80F6C8C sub_80F6C8C: @ 80F6C8C @@ -696,8 +696,8 @@ sub_80F6C8C: @ 80F6C8C bx r0 thumb_func_end sub_80F6C8C - thumb_func_start sub_80F6C98 -sub_80F6C98: @ 80F6C98 + thumb_func_start ResetBg0 +ResetBg0: @ 80F6C98 push {lr} movs r0, 0 movs r1, 0 @@ -711,7 +711,7 @@ sub_80F6C98: @ 80F6C98 bl sub_80F6E9C pop {r0} bx r0 - thumb_func_end sub_80F6C98 + thumb_func_end ResetBg0 thumb_func_start sub_80F6CBC sub_80F6CBC: @ 80F6CBC @@ -725,8 +725,8 @@ sub_80F6CBC: @ 80F6CBC bx r1 thumb_func_end sub_80F6CBC - thumb_func_start AddTextPrinterParametrized -AddTextPrinterParametrized: @ 80F6CD0 + thumb_func_start AddTextPrinterParameterized2 +AddTextPrinterParameterized2: @ 80F6CD0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -796,7 +796,7 @@ AddTextPrinterParametrized: @ 80F6CD0 bx r1 .align 2, 0 _080F6D58: .4byte gTextFlags - thumb_func_end AddTextPrinterParametrized + thumb_func_end AddTextPrinterParameterized2 thumb_func_start sub_80F6D5C sub_80F6D5C: @ 80F6D5C @@ -819,7 +819,7 @@ sub_80F6D5C: @ 80F6D5C lsrs r0, 24 cmp r0, 0 bne _080F6DB0 - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -832,7 +832,7 @@ sub_80F6D5C: @ 80F6D5C str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _080F6DFC .align 2, 0 _080F6DA8: .4byte gTextFlags @@ -840,7 +840,7 @@ _080F6DAC: .4byte gStringVar4 _080F6DB0: cmp r0, 0x1 bne _080F6DDC - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -853,12 +853,12 @@ _080F6DB0: str r0, [sp, 0xC] movs r0, 0 movs r1, 0x5 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _080F6DFC .align 2, 0 _080F6DD8: .4byte gStringVar4 _080F6DDC: - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -871,7 +871,7 @@ _080F6DDC: str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 _080F6DFC: add sp, 0x10 pop {r4,r5} @@ -896,7 +896,7 @@ sub_80F6E08: @ 80F6E08 ands r1, r2 orrs r1, r0 strb r1, [r3] - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -910,7 +910,7 @@ sub_80F6E08: @ 80F6E08 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4} pop {r0} @@ -948,7 +948,7 @@ sub_80F6E54: @ 80F6E54 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4,r5} pop {r0} @@ -984,19 +984,19 @@ _080F6EC4: lsls r1, 2 movs r0, 0 movs r2, 0xF0 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 _080F6ED4: movs r1, 0x85 lsls r1, 2 movs r0, 0 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame pop {r0} bx r0 thumb_func_end sub_80F6E9C - thumb_func_start sub_80F6EE4 -sub_80F6EE4: @ 80F6EE4 + thumb_func_start DrawDialogueFrame +DrawDialogueFrame: @ 80F6EE4 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -1022,10 +1022,10 @@ _080F6F12: bx r0 .align 2, 0 _080F6F18: .4byte sub_80F7124 - thumb_func_end sub_80F6EE4 + thumb_func_end DrawDialogueFrame - thumb_func_start sub_80F6F1C -sub_80F6F1C: @ 80F6F1C + thumb_func_start DrawStdWindowFrame +DrawStdWindowFrame: @ 80F6F1C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -1051,10 +1051,10 @@ _080F6F4A: bx r0 .align 2, 0 _080F6F50: .4byte sub_80F6FD4 - thumb_func_end sub_80F6F1C + thumb_func_end DrawStdWindowFrame - thumb_func_start sub_80F6F54 -sub_80F6F54: @ 80F6F54 + thumb_func_start ClearDialogWindowAndFrame +ClearDialogWindowAndFrame: @ 80F6F54 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -1087,10 +1087,10 @@ _080F6F8E: .align 2, 0 _080F6F94: .4byte sub_80F76CC _080F6F98: .4byte gUnknown_203ADFA - thumb_func_end sub_80F6F54 + thumb_func_end ClearDialogWindowAndFrame - thumb_func_start sub_80F6F9C -sub_80F6F9C: @ 80F6F9C + thumb_func_start ClearStdWindowAndFrame +ClearStdWindowAndFrame: @ 80F6F9C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -1116,7 +1116,7 @@ _080F6FCA: bx r0 .align 2, 0 _080F6FD0: .4byte sub_80F7684 - thumb_func_end sub_80F6F9C + thumb_func_end ClearStdWindowAndFrame thumb_func_start sub_80F6FD4 sub_80F6FD4: @ 80F6FD4 @@ -2033,7 +2033,7 @@ _080F7798: lsls r1, 2 adds r0, r4, 0 movs r2, 0xF0 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 _080F77A4: movs r2, 0x80 lsls r2, 2 @@ -2049,37 +2049,37 @@ _080F77A4: thumb_func_start sub_80F77B8 sub_80F77B8: @ 80F77B8 push {lr} - ldr r0, _080F77C8 @ =gUnknown_841F408 + ldr r0, _080F77C8 @ =gTMCaseMainWindowPalette movs r1, 0xE0 movs r2, 0x14 bl LoadPalette pop {r0} bx r0 .align 2, 0 -_080F77C8: .4byte gUnknown_841F408 +_080F77C8: .4byte gTMCaseMainWindowPalette thumb_func_end sub_80F77B8 - thumb_func_start sub_80F77CC -sub_80F77CC: @ 80F77CC + thumb_func_start Menu_LoadStdPalAt +Menu_LoadStdPalAt: @ 80F77CC push {lr} adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r0, _080F77E0 @ =gUnknown_841F408 + ldr r0, _080F77E0 @ =gTMCaseMainWindowPalette movs r2, 0x14 bl LoadPalette pop {r0} bx r0 .align 2, 0 -_080F77E0: .4byte gUnknown_841F408 - thumb_func_end sub_80F77CC +_080F77E0: .4byte gTMCaseMainWindowPalette + thumb_func_end Menu_LoadStdPalAt thumb_func_start sub_80F77E4 sub_80F77E4: @ 80F77E4 - ldr r0, _080F77E8 @ =gUnknown_841F408 + ldr r0, _080F77E8 @ =gTMCaseMainWindowPalette bx lr .align 2, 0 -_080F77E8: .4byte gUnknown_841F408 +_080F77E8: .4byte gTMCaseMainWindowPalette thumb_func_end sub_80F77E4 thumb_func_start sub_80F77EC @@ -2091,14 +2091,14 @@ sub_80F77EC: @ 80F77EC bls _080F77F8 movs r1, 0 _080F77F8: - ldr r0, _080F7804 @ =gUnknown_841F408 + ldr r0, _080F7804 @ =gTMCaseMainWindowPalette lsls r1, 1 adds r1, r0 ldrh r0, [r1] pop {r1} bx r1 .align 2, 0 -_080F7804: .4byte gUnknown_841F408 +_080F7804: .4byte gTMCaseMainWindowPalette thumb_func_end sub_80F77EC thumb_func_start DisplayItemMessageOnField @@ -2116,7 +2116,7 @@ DisplayItemMessageOnField: @ 80F7808 lsls r4, 24 lsrs r4, 24 bl sub_80F6E9C - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 movs r2, 0x80 @@ -2156,7 +2156,7 @@ sub_80F7858: @ 80F7858 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0xC pop {r0} bx r0 @@ -2179,7 +2179,7 @@ sub_80F7880: @ 80F7880 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0xC pop {r0} bx r0 @@ -2187,8 +2187,8 @@ sub_80F7880: @ 80F7880 _080F78A4: .4byte gUnknown_841F43C thumb_func_end sub_80F7880 - thumb_func_start sub_80F78A8 -sub_80F78A8: @ 80F78A8 + thumb_func_start GetTextSpeedSetting +GetTextSpeedSetting: @ 80F78A8 push {lr} ldr r3, _080F78D8 @ =gSaveBlock2Ptr ldr r2, [r3] @@ -2216,7 +2216,7 @@ _080F78C4: .align 2, 0 _080F78D8: .4byte gSaveBlock2Ptr _080F78DC: .4byte gUnknown_841F428 - thumb_func_end sub_80F78A8 + thumb_func_end GetTextSpeedSetting thumb_func_start sub_80F78E0 sub_80F78E0: @ 80F78E0 @@ -2347,7 +2347,7 @@ sub_80F79A4: @ 80F79A4 lsls r1, 2 movs r0, 0 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame pop {r0} bx r0 thumb_func_end sub_80F79A4 diff --git a/asm/normal.s b/asm/normal.s new file mode 100644 index 000000000..165fa150f --- /dev/null +++ b/asm/normal.s @@ -0,0 +1,1978 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B9904 +sub_80B9904: @ 80B9904 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B993C @ =gBattleAnimArgs + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080B9940 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080B9944 + ldrh r0, [r5, 0x6] + negs r0, r0 + strh r0, [r4, 0x30] + movs r0, 0x1 + strh r0, [r4, 0x36] + b _080B9952 + .align 2, 0 +_080B993C: .4byte gBattleAnimArgs +_080B9940: .4byte gBattleAnimAttacker +_080B9944: + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + strh r1, [r4, 0x36] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080B9952: + ldr r0, _080B9968 @ =gBattleAnimArgs + ldrh r0, [r0, 0x8] + strh r0, [r4, 0x34] + ldr r1, _080B996C @ =sub_80B9970 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9968: .4byte gBattleAnimArgs +_080B996C: .4byte sub_80B9970 + thumb_func_end sub_80B9904 + + thumb_func_start sub_80B9970 +sub_80B9970: @ 80B9970 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x1E + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r1, 0xA + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + cmp r0, 0x7F + bhi _080B99A2 + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080B99AA +_080B99A2: + ldrb r0, [r4, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r4, 0x5] +_080B99AA: + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x2E] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080B99CE + adds r0, r4, 0 + bl DestroyAnimSprite +_080B99CE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B9970 + + thumb_func_start sub_80B99D4 +sub_80B99D4: @ 80B99D4 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldr r4, _080B9A0C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r4, r1] + bl sub_80B9A14 + movs r1, 0x2 + ldrsb r1, [r4, r1] + ldrb r2, [r4, 0x4] + ldrb r3, [r4, 0x6] + ldrh r4, [r4, 0x8] + str r4, [sp] + bl BeginNormalPaletteFade + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B9A10 @ =sub_80B9A5C + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9A0C: .4byte gBattleAnimArgs +_080B9A10: .4byte sub_80B9A5C + thumb_func_end sub_80B99D4 + + thumb_func_start sub_80B9A14 +sub_80B9A14: @ 80B9A14 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + lsls r0, 16 + lsrs r0, 16 + movs r4, 0x1 + mov r8, r0 + mov r1, r8 + ands r1, r4 + mov r8, r1 + lsls r0, 16 + asrs r1, r0, 17 + ands r1, r4 + asrs r2, r0, 18 + ands r2, r4 + asrs r3, r0, 19 + ands r3, r4 + asrs r6, r0, 20 + ands r6, r4 + asrs r5, r0, 21 + ands r5, r4 + asrs r0, 22 + ands r0, r4 + str r6, [sp] + str r5, [sp, 0x4] + str r0, [sp, 0x8] + mov r0, r8 + bl sub_8075BE8 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80B9A14 + + thumb_func_start sub_80B9A5C +sub_80B9A5C: @ 80B9A5C + push {lr} + adds r2, r0, 0 + ldr r0, _080B9A78 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9A72 + adds r0, r2, 0 + bl DestroyAnimSprite +_080B9A72: + pop {r0} + bx r0 + .align 2, 0 +_080B9A78: .4byte gPaletteFade + thumb_func_end sub_80B9A5C + + thumb_func_start sub_80B9A7C +sub_80B9A7C: @ 80B9A7C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B9AC8 @ =gBattleAnimArgs + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x2E] + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x34] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0x38] + ldrh r0, [r4, 0xC] + strh r0, [r5, 0x3A] + ldrh r0, [r4] + strh r0, [r5, 0x3C] + movs r1, 0x3C + ldrsh r0, [r5, r1] + bl sub_80B9A14 + ldrb r1, [r4, 0x8] + ldrh r2, [r4, 0x6] + bl BlendPalettes + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B9ACC @ =sub_80B9AD0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9AC8: .4byte gBattleAnimArgs +_080B9ACC: .4byte sub_80B9AD0 + thumb_func_end sub_80B9A7C + + thumb_func_start sub_80B9AD0 +sub_80B9AD0: @ 80B9AD0 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080B9AE4 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080B9B54 +_080B9AE4: + ldr r0, _080B9B00 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9B54 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B9B08 + ldr r0, _080B9B04 @ =sub_80B9B5C + str r0, [r4, 0x1C] + b _080B9B54 + .align 2, 0 +_080B9B00: .4byte gPaletteFade +_080B9B04: .4byte sub_80B9B5C +_080B9B08: + movs r2, 0x3C + ldrsh r0, [r4, r2] + bl sub_80B9A14 + adds r3, r0, 0 + ldrh r1, [r4, 0x30] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080B9B2E + ldrh r1, [r4, 0x36] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x34] + adds r0, r3, 0 + bl BlendPalettes + b _080B9B3C +_080B9B2E: + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x38] + adds r0, r3, 0 + bl BlendPalettes +_080B9B3C: + ldrh r0, [r4, 0x30] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + eors r0, r1 + strh r0, [r4, 0x30] + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + subs r0, 0x1 + strh r0, [r4, 0x32] +_080B9B54: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B9AD0 + + thumb_func_start sub_80B9B5C +sub_80B9B5C: @ 80B9B5C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B9B88 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9B82 + movs r1, 0x3C + ldrsh r0, [r4, r1] + bl sub_80B9A14 + movs r1, 0 + movs r2, 0 + bl BlendPalettes + adds r0, r4, 0 + bl DestroyAnimSprite +_080B9B82: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9B88: .4byte gPaletteFade + thumb_func_end sub_80B9B5C + + thumb_func_start sub_80B9B8C +sub_80B9B8C: @ 80B9B8C + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080B9BD0 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + movs r2, 0 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r2, [r4, 0x2E] + movs r0, 0xA + strh r0, [r4, 0x30] + movs r0, 0x8 + strh r0, [r4, 0x32] + movs r0, 0x28 + strh r0, [r4, 0x34] + movs r0, 0x70 + strh r0, [r4, 0x36] + strh r2, [r4, 0x38] + ldr r1, _080B9BD4 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080B9BD8 @ =sub_8074AE0 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9BD0: .4byte gBattleAnimArgs +_080B9BD4: .4byte move_anim_8074EE0 +_080B9BD8: .4byte sub_8074AE0 + thumb_func_end sub_80B9B8C + + thumb_func_start sub_80B9BDC +sub_80B9BDC: @ 80B9BDC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B9C20 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r3, _080B9C24 @ =gBattleAnimArgs + ldrh r1, [r3] + movs r5, 0 + strh r1, [r4, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r4, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r4, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r4, 0xE] + ldrh r2, [r3, 0x8] + strh r2, [r4, 0x10] + ldrh r1, [r3, 0xA] + strh r1, [r4, 0x12] + strh r5, [r4, 0x18] + lsls r2, 24 + lsrs r2, 24 + movs r1, 0 + bl sub_80B9C2C + ldr r0, _080B9C28 @ =sub_80B9C7C + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9C20: .4byte gTasks +_080B9C24: .4byte gBattleAnimArgs +_080B9C28: .4byte sub_80B9C7C + thumb_func_end sub_80B9BDC + + thumb_func_start sub_80B9C2C +sub_80B9C2C: @ 80B9C2C + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080B9C78 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + bl sub_80B9A14 + movs r1, 0xA + ldrsb r1, [r4, r1] + ldrh r2, [r4, 0x12] + str r2, [sp] + adds r2, r5, 0 + adds r3, r6, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x18] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x18] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9C78: .4byte gTasks + thumb_func_end sub_80B9C2C + + thumb_func_start sub_80B9C7C +sub_80B9C7C: @ 80B9C7C + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + ldr r0, _080B9CB4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9CDE + ldr r1, _080B9CB8 @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0xC + ldrsh r0, [r3, r5] + adds r6, r1, 0 + adds r5, r2, 0 + cmp r0, 0 + ble _080B9CD8 + movs r1, 0x18 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080B9CBC + ldrb r1, [r3, 0xE] + ldrb r2, [r3, 0x10] + b _080B9CC0 + .align 2, 0 +_080B9CB4: .4byte gPaletteFade +_080B9CB8: .4byte gTasks +_080B9CBC: + ldrb r1, [r3, 0x10] + ldrb r2, [r3, 0xE] +_080B9CC0: + adds r0, r5, r4 + lsls r0, 3 + adds r0, r6 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _080B9CD0 + movs r2, 0 +_080B9CD0: + adds r0, r4, 0 + bl sub_80B9C2C + b _080B9CDE +_080B9CD8: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080B9CDE: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B9C7C + + thumb_func_start sub_80B9CE4 +sub_80B9CE4: @ 80B9CE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r3, _080B9D88 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r3 + ldr r2, _080B9D8C @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0x8] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0xA] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0xC] + ldrh r1, [r2, 0x6] + strh r1, [r0, 0xE] + ldrh r1, [r2, 0x8] + strh r1, [r0, 0x10] + ldrh r1, [r2, 0xA] + strh r1, [r0, 0x12] + strh r5, [r0, 0x18] + movs r4, 0 + ldr r0, _080B9D90 @ =gBattlersCount + ldrb r1, [r0] + mov r9, r3 + mov r8, r2 + cmp r5, r1 + bge _080B9D4C + ldr r0, _080B9D94 @ =gBattleAnimAttacker + ldrb r3, [r0] + ldr r7, _080B9D98 @ =gBattleAnimTarget + movs r0, 0x1 + mov r12, r0 + adds r2, r1, 0 +_080B9D32: + cmp r4, r3 + beq _080B9D46 + ldrb r1, [r7] + cmp r4, r1 + beq _080B9D46 + adds r1, r4, 0 + adds r1, 0x10 + mov r0, r12 + lsls r0, r1 + orrs r5, r0 +_080B9D46: + adds r4, 0x1 + cmp r4, r2 + blt _080B9D32 +_080B9D4C: + mov r2, r8 + movs r1, 0 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080B9D5A + movs r0, 0xE + orrs r5, r0 +_080B9D5A: + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 3 + add r4, r9 + lsrs r0, r5, 16 + strh r0, [r4, 0x1A] + movs r0, 0xFF + ands r5, r0 + strh r5, [r4, 0x1C] + ldrb r2, [r4, 0x10] + adds r0, r6, 0 + movs r1, 0 + bl sub_80B9DA0 + ldr r0, _080B9D9C @ =sub_80B9DF0 + str r0, [r4] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9D88: .4byte gTasks +_080B9D8C: .4byte gBattleAnimArgs +_080B9D90: .4byte gBattlersCount +_080B9D94: .4byte gBattleAnimAttacker +_080B9D98: .4byte gBattleAnimTarget +_080B9D9C: .4byte sub_80B9DF0 + thumb_func_end sub_80B9CE4 + + thumb_func_start sub_80B9DA0 +sub_80B9DA0: @ 80B9DA0 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r1, 0 + adds r3, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r1, _080B9DEC @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrh r0, [r4, 0x1A] + lsls r0, 16 + ldrh r1, [r4, 0x1C] + orrs r0, r1 + movs r1, 0xA + ldrsb r1, [r4, r1] + ldrh r2, [r4, 0x12] + str r2, [sp] + adds r2, r5, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x18] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x18] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9DEC: .4byte gTasks + thumb_func_end sub_80B9DA0 + + thumb_func_start sub_80B9DF0 +sub_80B9DF0: @ 80B9DF0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + ldr r0, _080B9E28 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9E52 + ldr r1, _080B9E2C @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0xC + ldrsh r0, [r3, r5] + adds r6, r1, 0 + adds r5, r2, 0 + cmp r0, 0 + ble _080B9E4C + movs r1, 0x18 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080B9E30 + ldrb r1, [r3, 0xE] + ldrb r2, [r3, 0x10] + b _080B9E34 + .align 2, 0 +_080B9E28: .4byte gPaletteFade +_080B9E2C: .4byte gTasks +_080B9E30: + ldrb r1, [r3, 0x10] + ldrb r2, [r3, 0xE] +_080B9E34: + adds r0, r5, r4 + lsls r0, 3 + adds r0, r6 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _080B9E44 + movs r2, 0 +_080B9E44: + adds r0, r4, 0 + bl sub_80B9DA0 + b _080B9E52 +_080B9E4C: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080B9E52: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B9DF0 + + thumb_func_start sub_80B9E58 +sub_80B9E58: @ 80B9E58 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B9E9C @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r3, _080B9EA0 @ =gBattleAnimArgs + ldrh r1, [r3] + movs r5, 0 + strh r1, [r4, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r4, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r4, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r4, 0xE] + ldrh r2, [r3, 0x8] + strh r2, [r4, 0x10] + ldrh r1, [r3, 0xA] + strh r1, [r4, 0x12] + strh r5, [r4, 0x18] + lsls r2, 24 + lsrs r2, 24 + movs r1, 0 + bl sub_80B9EA8 + ldr r0, _080B9EA4 @ =sub_80B9F04 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9E9C: .4byte gTasks +_080B9EA0: .4byte gBattleAnimArgs +_080B9EA4: .4byte sub_80B9F04 + thumb_func_end sub_80B9E58 + + thumb_func_start sub_80B9EA8 +sub_80B9EA8: @ 80B9EA8 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080B9F00 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrh r0, [r4, 0x8] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r2, 0x1 + lsls r2, r0 + movs r1, 0xA + ldrsb r1, [r4, r1] + ldrh r0, [r4, 0x12] + str r0, [sp] + adds r0, r2, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x18] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x18] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9F00: .4byte gTasks + thumb_func_end sub_80B9EA8 + + thumb_func_start sub_80B9F04 +sub_80B9F04: @ 80B9F04 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + ldr r0, _080B9F3C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9F66 + ldr r1, _080B9F40 @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0xC + ldrsh r0, [r3, r5] + adds r6, r1, 0 + adds r5, r2, 0 + cmp r0, 0 + ble _080B9F60 + movs r1, 0x18 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080B9F44 + ldrb r1, [r3, 0xE] + ldrb r2, [r3, 0x10] + b _080B9F48 + .align 2, 0 +_080B9F3C: .4byte gPaletteFade +_080B9F40: .4byte gTasks +_080B9F44: + ldrb r1, [r3, 0x10] + ldrb r2, [r3, 0xE] +_080B9F48: + adds r0, r5, r4 + lsls r0, 3 + adds r0, r6 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _080B9F58 + movs r2, 0 +_080B9F58: + adds r0, r4, 0 + bl sub_80B9EA8 + b _080B9F66 +_080B9F60: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080B9F66: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B9F04 + + thumb_func_start sub_80B9F6C +sub_80B9F6C: @ 80B9F6C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B9FCC @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r5, _080B9FD0 @ =gBattleAnimArgs + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x8] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0xA] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0xC] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0xE] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x10] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x12] + ldrh r0, [r5, 0xC] + strh r0, [r4, 0x14] + ldrh r0, [r5] + strh r0, [r4, 0x16] + ldrh r0, [r5] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + ldrb r3, [r5, 0x8] + ldrh r0, [r5, 0x6] + str r0, [sp] + adds r0, r1, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080B9FD4 @ =sub_80B9FD8 + str r0, [r4] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9FCC: .4byte gTasks +_080B9FD0: .4byte gBattleAnimArgs +_080B9FD4: .4byte sub_80B9FD8 + thumb_func_end sub_80B9F6C + + thumb_func_start sub_80B9FD8 +sub_80B9FD8: @ 80B9FD8 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B9FFC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x8] + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080BA000 + subs r0, r1, 0x1 + strh r0, [r4, 0x8] + b _080BA084 + .align 2, 0 +_080B9FFC: .4byte gTasks +_080BA000: + ldr r0, _080BA01C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BA084 + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080BA024 + ldr r0, _080BA020 @ =sub_80BA090 + str r0, [r4] + b _080BA084 + .align 2, 0 +_080BA01C: .4byte gPaletteFade +_080BA020: .4byte sub_80BA090 +_080BA024: + ldrh r0, [r4, 0x16] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r2, 0x1 + lsls r2, r0 + ldrh r1, [r4, 0xA] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BA052 + ldrb r3, [r4, 0x10] + ldrh r0, [r4, 0xE] + str r0, [sp] + adds r0, r2, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade + b _080BA062 +_080BA052: + ldrb r3, [r4, 0x14] + ldrh r0, [r4, 0x12] + str r0, [sp] + adds r0, r2, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade +_080BA062: + ldr r0, _080BA08C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + movs r3, 0x80 + lsls r3, 1 + adds r2, r3, 0 + eors r0, r2 + strh r0, [r1, 0xA] + movs r2, 0xFF + ands r0, r2 + strh r0, [r1, 0x8] + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] +_080BA084: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA08C: .4byte gTasks + thumb_func_end sub_80B9FD8 + + thumb_func_start sub_80BA090 +sub_80BA090: @ 80BA090 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BA0E0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080BA0D6 + ldr r1, _080BA0E4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x16] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + str r5, [sp] + adds r0, r1, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl BeginNormalPaletteFade + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080BA0D6: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA0E0: .4byte gPaletteFade +_080BA0E4: .4byte gTasks + thumb_func_end sub_80BA090 + + thumb_func_start sub_80BA0E8 +sub_80BA0E8: @ 80BA0E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r2, 0 + ldr r0, _080BA160 @ =gBattleAnimAttacker + ldrb r6, [r0] + ldr r0, _080BA164 @ =gBattleAnimTarget + ldrb r7, [r0] + ldr r4, _080BA168 @ =gBattleAnimArgs + ldrh r1, [r4] + movs r5, 0x80 + lsls r5, 1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA122 + str r2, [sp] + str r2, [sp, 0x4] + str r2, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r3, 0 + bl sub_8075BE8 + adds r2, r0, 0 +_080BA122: + ldrh r1, [r4, 0x2] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA134 + movs r0, 0x80 + lsls r0, 9 + lsls r0, r6 + orrs r2, r0 +_080BA134: + ldrh r1, [r4, 0x4] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA146 + movs r0, 0x80 + lsls r0, 9 + lsls r0, r7 + orrs r2, r0 +_080BA146: + adds r0, r2, 0 + bl InvertPlttBuffer + mov r0, r8 + bl DestroyAnimVisualTask + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA160: .4byte gBattleAnimAttacker +_080BA164: .4byte gBattleAnimTarget +_080BA168: .4byte gBattleAnimArgs + thumb_func_end sub_80BA0E8 + + thumb_func_start sub_80BA16C +sub_80BA16C: @ 80BA16C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r1, _080BA260 @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BA1AE + ldr r1, _080BA264 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0xC] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0xE] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x10] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0xA] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x12] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x14] + ldrh r0, [r1, 0xC] + strh r0, [r4, 0x16] +_080BA1AE: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _080BA268 @ =gBattleAnimAttacker + ldrb r0, [r0] + mov r9, r0 + ldr r0, _080BA26C @ =gBattleAnimTarget + ldrb r0, [r0] + mov r10, r0 + ldrh r1, [r4, 0xC] + movs r7, 0x80 + lsls r7, 1 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA1D0 + ldr r5, _080BA270 @ =0x0000ffff +_080BA1D0: + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA200 + ldr r2, _080BA274 @ =gSprites + ldr r0, _080BA278 @ =gUnknown_3004FF0 + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x14 + adds r0, r2 + ldr r0, [r0] + ldrh r0, [r0, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r1, r6, 0 + lsls r1, r0 + lsls r1, 16 + orrs r5, r1 +_080BA200: + ldrh r1, [r4, 0xE] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA214 + adds r0, r6, 0 + mov r2, r9 + lsls r0, r2 + lsls r0, 16 + orrs r5, r0 +_080BA214: + ldrh r1, [r4, 0x10] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA228 + adds r0, r6, 0 + mov r1, r10 + lsls r0, r1 + lsls r0, 16 + orrs r5, r0 +_080BA228: + movs r1, 0x12 + ldrsb r1, [r4, r1] + movs r2, 0x14 + ldrsb r2, [r4, r2] + movs r3, 0x16 + ldrsb r3, [r4, r3] + adds r0, r5, 0 + bl TintPlttBuffer + movs r2, 0x8 + ldrsh r1, [r4, r2] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080BA252 + adds r0, r5, 0 + bl UnfadePlttBuffer + mov r0, r8 + bl DestroyAnimVisualTask +_080BA252: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA260: .4byte gTasks +_080BA264: .4byte gBattleAnimArgs +_080BA268: .4byte gBattleAnimAttacker +_080BA26C: .4byte gBattleAnimTarget +_080BA270: .4byte 0x0000ffff +_080BA274: .4byte gSprites +_080BA278: .4byte gUnknown_3004FF0 + thumb_func_end sub_80BA16C + + thumb_func_start sub_80BA27C +sub_80BA27C: @ 80BA27C + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080BA2B0 @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x34] + movs r2, 0x6 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080BA2C4 + cmp r0, 0x1 + bgt _080BA2B4 + cmp r0, 0 + beq _080BA2BA + b _080BA2DC + .align 2, 0 +_080BA2B0: .4byte gBattleAnimArgs +_080BA2B4: + cmp r0, 0x2 + beq _080BA2CC + b _080BA2DC +_080BA2BA: + ldr r1, _080BA2C0 @ =gBattle_BG3_X + b _080BA2CE + .align 2, 0 +_080BA2C0: .4byte gBattle_BG3_X +_080BA2C4: + ldr r1, _080BA2C8 @ =gBattle_BG3_Y + b _080BA2CE + .align 2, 0 +_080BA2C8: .4byte gBattle_BG3_Y +_080BA2CC: + ldr r1, _080BA2D8 @ =gSpriteCoordOffsetX +_080BA2CE: + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + b _080BA2E4 + .align 2, 0 +_080BA2D8: .4byte gSpriteCoordOffsetX +_080BA2DC: + ldr r1, _080BA314 @ =gSpriteCoordOffsetY + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 +_080BA2E4: + movs r0, 0x3A + ldrsh r1, [r4, r0] + movs r2, 0x3C + ldrsh r0, [r4, r2] + lsls r0, 16 + orrs r1, r0 + ldrh r0, [r1] + strh r0, [r4, 0x36] + ldr r0, _080BA318 @ =gBattleAnimArgs + ldrh r0, [r0, 0x6] + strh r0, [r4, 0x38] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BA308 + bl sub_80BA3CC +_080BA308: + ldr r0, _080BA31C @ =sub_80BA320 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA314: .4byte gSpriteCoordOffsetY +_080BA318: .4byte gBattleAnimArgs +_080BA31C: .4byte sub_80BA320 + thumb_func_end sub_80BA27C + + thumb_func_start sub_80BA320 +sub_80BA320: @ 80BA320 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x34] + movs r2, 0x34 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080BA362 + subs r0, r1, 0x1 + strh r0, [r3, 0x34] + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080BA342 + subs r0, r1, 0x1 + strh r0, [r3, 0x30] + b _080BA3BA +_080BA342: + ldrh r0, [r3, 0x32] + strh r0, [r3, 0x30] + movs r0, 0x3A + ldrsh r1, [r3, r0] + movs r2, 0x3C + ldrsh r0, [r3, r2] + lsls r0, 16 + orrs r1, r0 + ldrh r0, [r3, 0x2E] + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + ldrh r0, [r3, 0x2E] + negs r0, r0 + strh r0, [r3, 0x2E] + b _080BA3BA +_080BA362: + movs r0, 0x3A + ldrsh r1, [r3, r0] + movs r2, 0x3C + ldrsh r0, [r3, r2] + lsls r0, 16 + orrs r1, r0 + ldrh r0, [r3, 0x36] + strh r0, [r1] + ldrh r0, [r3, 0x38] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BA3B4 + movs r4, 0 + ldr r5, _080BA3C0 @ =gBattlersCount + ldrb r0, [r5] + cmp r4, r0 + bcs _080BA3B4 + ldr r2, _080BA3C4 @ =gSprites + mov r12, r2 + ldr r6, _080BA3C8 @ =gBattlerSpriteIds + movs r7, 0x3 + negs r7, r7 +_080BA392: + adds r0, r4, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r12 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r5] + cmp r4, r0 + bcc _080BA392 +_080BA3B4: + adds r0, r3, 0 + bl DestroyAnimSprite +_080BA3BA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA3C0: .4byte gBattlersCount +_080BA3C4: .4byte gSprites +_080BA3C8: .4byte gBattlerSpriteIds + thumb_func_end sub_80BA320 + + thumb_func_start sub_80BA3CC +sub_80BA3CC: @ 80BA3CC + push {r4-r6,lr} + ldr r6, _080BA440 @ =gSprites + ldr r4, _080BA444 @ =gBattlerSpriteIds + ldr r5, _080BA448 @ =gBattleAnimAttacker + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x3 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + ldr r3, _080BA44C @ =gBattleAnimTarget + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + ldr r0, _080BA450 @ =gBattleAnimArgs + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x2 + bne _080BA454 + ldrb r0, [r5] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + b _080BA470 + .align 2, 0 +_080BA440: .4byte gSprites +_080BA444: .4byte gBattlerSpriteIds +_080BA448: .4byte gBattleAnimAttacker +_080BA44C: .4byte gBattleAnimTarget +_080BA450: .4byte gBattleAnimArgs +_080BA454: + cmp r0, 0 + bne _080BA45C + ldrb r0, [r5] + b _080BA45E +_080BA45C: + ldrb r0, [r3] +_080BA45E: + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 +_080BA470: + orrs r1, r2 + strb r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BA3CC + + thumb_func_start sub_80BA47C +sub_80BA47C: @ 80BA47C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080BA4BC @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r1 + ldr r3, _080BA4C0 @ =gBattleAnimArgs + ldrh r1, [r3] + strh r1, [r2, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r2, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0xE] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0x18] + ldr r4, _080BA4C4 @ =gBattle_BG3_X + ldrh r1, [r3] + strh r1, [r4] + ldr r4, _080BA4C8 @ =gBattle_BG3_Y + ldrh r1, [r3, 0x2] + strh r1, [r4] + ldr r1, _080BA4CC @ =sub_80BA4D0 + str r1, [r2] + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA4BC: .4byte gTasks +_080BA4C0: .4byte gBattleAnimArgs +_080BA4C4: .4byte gBattle_BG3_X +_080BA4C8: .4byte gBattle_BG3_Y +_080BA4CC: .4byte sub_80BA4D0 + thumb_func_end sub_80BA47C + + thumb_func_start sub_80BA4D0 +sub_80BA4D0: @ 80BA4D0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080BA500 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r1 + ldrh r2, [r3, 0xE] + movs r4, 0xE + ldrsh r0, [r3, r4] + mov r12, r1 + cmp r0, 0 + bne _080BA556 + ldr r0, _080BA504 @ =gBattle_BG3_X + ldrh r2, [r0] + movs r7, 0x8 + ldrsh r1, [r3, r7] + adds r6, r0, 0 + cmp r2, r1 + bne _080BA508 + ldrh r0, [r3, 0x8] + negs r0, r0 + b _080BA50A + .align 2, 0 +_080BA500: .4byte gTasks +_080BA504: .4byte gBattle_BG3_X +_080BA508: + ldrh r0, [r3, 0x8] +_080BA50A: + strh r0, [r6] + ldr r2, _080BA528 @ =gBattle_BG3_Y + ldrh r3, [r2] + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + mov r7, r12 + adds r4, r0, r7 + movs r7, 0xA + ldrsh r0, [r4, r7] + cmn r3, r0 + bne _080BA52C + movs r0, 0 + b _080BA530 + .align 2, 0 +_080BA528: .4byte gBattle_BG3_Y +_080BA52C: + ldrh r0, [r4, 0xA] + negs r0, r0 +_080BA530: + strh r0, [r2] + adds r0, r1, r5 + lsls r0, 3 + add r0, r12 + ldrh r1, [r0, 0x18] + strh r1, [r0, 0xE] + ldrh r1, [r0, 0xC] + subs r1, 0x1 + strh r1, [r0, 0xC] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0 + bne _080BA55A + strh r1, [r6] + strh r1, [r2] + adds r0, r5, 0 + bl DestroyAnimVisualTask + b _080BA55A +_080BA556: + subs r0, r2, 0x1 + strh r0, [r3, 0xE] +_080BA55A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BA4D0 + + thumb_func_start sub_80BA560 +sub_80BA560: @ 80BA560 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080BA580 @ =gBattleAnimArgs + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BA584 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + b _080BA58C + .align 2, 0 +_080BA580: .4byte gBattleAnimArgs +_080BA584: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075114 +_080BA58C: + ldr r0, _080BA5A0 @ =sub_8074F50 + str r0, [r5, 0x1C] + ldr r1, _080BA5A4 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA5A0: .4byte sub_8074F50 +_080BA5A4: .4byte DestroyAnimSprite + thumb_func_end sub_80BA560 + + thumb_func_start sub_80BA5A8 +sub_80BA5A8: @ 80BA5A8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080BA5C8 @ =gBattleAnimArgs + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BA5CC + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + b _080BA5D4 + .align 2, 0 +_080BA5C8: .4byte gBattleAnimArgs +_080BA5CC: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075114 +_080BA5D4: + ldr r0, _080BA5EC @ =gBattleAnimArgs + ldrh r0, [r0, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080BA5F0 @ =sub_8074F50 + str r0, [r5, 0x1C] + ldr r1, _080BA5F4 @ =sub_80B1D3C + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA5EC: .4byte gBattleAnimArgs +_080BA5F0: .4byte sub_8074F50 +_080BA5F4: .4byte sub_80B1D3C + thumb_func_end sub_80BA5A8 + + thumb_func_start sub_80BA5F8 +sub_80BA5F8: @ 80BA5F8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080BA628 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080BA61C + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BA61C + ldr r1, _080BA62C @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080BA61C: + adds r0, r4, 0 + bl sub_80BA560 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA628: .4byte gBattleAnimAttacker +_080BA62C: .4byte gBattleAnimArgs + thumb_func_end sub_80BA5F8 + + thumb_func_start sub_80BA630 +sub_80BA630: @ 80BA630 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080BA668 @ =gBattleAnimArgs + movs r0, 0x2 + ldrsh r1, [r5, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080BA64C + bl Random + movs r1, 0x3 + ands r1, r0 + strh r1, [r5, 0x2] +_080BA64C: + ldrb r1, [r5, 0x2] + adds r0, r4, 0 + bl StartSpriteAffineAnim + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080BA66C + adds r0, r4, 0 + movs r1, 0 + bl sub_8075160 + b _080BA674 + .align 2, 0 +_080BA668: .4byte gBattleAnimArgs +_080BA66C: + adds r0, r4, 0 + movs r1, 0 + bl sub_8075114 +_080BA674: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x30 + bl __umodsi3 + ldr r1, _080BA6B8 @ =0x0000ffe8 + adds r0, r1 + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x18 + bl __umodsi3 + ldr r1, _080BA6BC @ =0x0000fff4 + adds r0, r1 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldr r1, _080BA6C0 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080BA6C4 @ =sub_8074F50 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA6B8: .4byte 0x0000ffe8 +_080BA6BC: .4byte 0x0000fff4 +_080BA6C0: .4byte move_anim_8074EE0 +_080BA6C4: .4byte sub_8074F50 + thumb_func_end sub_80BA630 + + thumb_func_start sub_80BA6C8 +sub_80BA6C8: @ 80BA6C8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080BA728 @ =gBattleAnimArgs + ldrb r0, [r5] + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, _080BA72C @ =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + ldrh r0, [r0, 0x20] + adds r1, r0 + strh r1, [r4, 0x20] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + strh r1, [r4, 0x22] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x24] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x26] + ldrb r1, [r5, 0x6] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldr r1, _080BA730 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080BA734 @ =sub_8074F50 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA728: .4byte gBattleAnimArgs +_080BA72C: .4byte gSprites +_080BA730: .4byte move_anim_8074EE0 +_080BA734: .4byte sub_8074F50 + thumb_func_end sub_80BA6C8 + + thumb_func_start sub_80BA738 +sub_80BA738: @ 80BA738 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080BA750 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BA754 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075160 + b _080BA75C + .align 2, 0 +_080BA750: .4byte gBattleAnimArgs +_080BA754: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 +_080BA75C: + ldr r0, _080BA774 @ =gBattleAnimArgs + ldrh r0, [r0, 0x6] + strh r0, [r4, 0x2E] + ldr r1, _080BA778 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080BA77C @ =sub_8074C44 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA774: .4byte gBattleAnimArgs +_080BA778: .4byte DestroyAnimSprite +_080BA77C: .4byte sub_8074C44 + thumb_func_end sub_80BA738 + + thumb_func_start sub_80BA780 +sub_80BA780: @ 80BA780 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080BA7A0 @ =gBattleAnimArgs + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BA7A4 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + b _080BA7AC + .align 2, 0 +_080BA7A0: .4byte gBattleAnimArgs +_080BA7A4: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075114 +_080BA7AC: + ldr r0, _080BA7B8 @ =sub_80BA7BC + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA7B8: .4byte sub_80BA7BC + thumb_func_end sub_80BA780 + + thumb_func_start sub_80BA7BC +sub_80BA7BC: @ 80BA7BC + push {lr} + adds r3, r0, 0 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x2E] + adds r1, r0, 0x1 + strh r1, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080BA7F2 + adds r0, r3, 0 + bl DestroyAnimSprite +_080BA7F2: + pop {r0} + bx r0 + thumb_func_end sub_80BA7BC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/oak_speech.s b/asm/oak_speech.s deleted file mode 100644 index 5f2326487..000000000 --- a/asm/oak_speech.s +++ /dev/null @@ -1,5728 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_812E944 -sub_812E944: @ 812E944 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - adds r0, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r1, [sp, 0x20] - mov r8, r1 - ldr r1, [sp, 0x24] - mov r2, r10 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0812E9DC @ =sub_812E9F8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0812E9E0 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - mov r1, r10 - lsls r0, r1, 8 - strh r0, [r4, 0x8] - lsls r2, r7, 8 - mov r9, r2 - strh r2, [r4, 0xA] - strh r5, [r4, 0xC] - strh r6, [r4, 0xE] - subs r5, r1 - lsls r5, 8 - adds r0, r5, 0 - mov r1, r8 - bl __divsi3 - strh r0, [r4, 0x10] - subs r6, r7 - lsls r6, 8 - adds r0, r6, 0 - mov r1, r8 - bl __divsi3 - strh r0, [r4, 0x12] - mov r0, r8 - strh r0, [r4, 0x18] - mov r1, r9 - mov r2, r10 - orrs r1, r2 - mov r9, r1 - movs r0, 0x52 - bl SetGpuReg - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812E9DC: .4byte sub_812E9F8 -_0812E9E0: .4byte gTasks - thumb_func_end sub_812E944 - - thumb_func_start sub_812E9E4 -sub_812E9E4: @ 812E9E4 - push {lr} - ldr r0, _0812E9F4 @ =sub_812E9F8 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0812E9F4: .4byte sub_812E9F8 - thumb_func_end sub_812E9E4 - - thumb_func_start sub_812E9F8 -sub_812E9F8: @ 812E9F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0812EA28 @ =gTasks+0x8 - adds r4, r0, r1 - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0812EA6E - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0812EA2C - ldrh r0, [r4, 0x8] - ldrh r1, [r4] - adds r0, r1 - strh r0, [r4] - movs r0, 0x1 - b _0812EA4C - .align 2, 0 -_0812EA28: .4byte gTasks+0x8 -_0812EA2C: - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - beq _0812EA3E - ldrh r0, [r4, 0xA] - ldrh r2, [r4, 0x2] - adds r0, r2 - b _0812EA48 -_0812EA3E: - ldrh r0, [r4, 0x4] - lsls r0, 8 - strh r0, [r4] - ldrh r0, [r4, 0x6] - lsls r0, 8 -_0812EA48: - strh r0, [r4, 0x2] - movs r0, 0 -_0812EA4C: - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x2] - ldr r1, _0812EA74 @ =0xffffff00 - ands r1, r0 - ldrh r0, [r4] - lsrs r0, 8 - orrs r1, r0 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0812EA6E - adds r0, r5, 0 - bl DestroyTask -_0812EA6E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812EA74: .4byte 0xffffff00 - thumb_func_end sub_812E9F8 - - thumb_func_start sub_812EA78 -sub_812EA78: @ 812EA78 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r2, 24 - lsrs r5, r2, 24 - cmp r4, 0xC9 - bne _0812EAB8 - adds r0, r1, 0 - bl sub_8082AB8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1A - beq _0812EAA4 - cmp r0, 0x1A - bgt _0812EA9E - cmp r0, 0 - beq _0812EAB8 - b _0812EAB4 -_0812EA9E: - cmp r0, 0x1B - beq _0812EAAA - b _0812EAB4 -_0812EAA4: - movs r4, 0xCE - lsls r4, 1 - b _0812EABC -_0812EAAA: - ldr r4, _0812EAB0 @ =0x0000019d - b _0812EABC - .align 2, 0 -_0812EAB0: .4byte 0x0000019d -_0812EAB4: - adds r4, r0, 0 - adds r4, 0xFB -_0812EAB8: - cmp r4, 0 - beq _0812EAD6 -_0812EABC: - cmp r5, 0x4 - bhi _0812EAD6 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _0812EAE0 @ =gUnknown_845FD54 - lsls r0, r4, 2 - adds r0, r4 - adds r0, r5, r0 - adds r2, r0, r1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _0812EAD8 -_0812EAD6: - movs r0, 0x20 -_0812EAD8: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812EAE0: .4byte gUnknown_845FD54 - thumb_func_end sub_812EA78 - - thumb_func_start sub_812EAE4 -sub_812EAE4: @ 812EAE4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r2, 24 - lsrs r2, 24 - bl sub_812EA78 - subs r0, 0x20 - lsls r0, 24 - asrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_812EAE4 - - thumb_func_start sub_812EAFC -sub_812EAFC: @ 812EAFC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_812EAFC - - thumb_func_start sub_812EB10 -sub_812EB10: @ 812EB10 - push {lr} - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_812EB10 - - thumb_func_start sub_812EB2C -sub_812EB2C: @ 812EB2C - push {lr} - ldr r0, _0812EB48 @ =gPlttBufferUnfaded - movs r1, 0 - strh r1, [r0] - ldr r0, _0812EB4C @ =gPlttBufferFaded - strh r1, [r0] - ldr r0, _0812EB50 @ =sub_812EB58 - bl CreateTask - ldr r0, _0812EB54 @ =sub_812EB10 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0812EB48: .4byte gPlttBufferUnfaded -_0812EB4C: .4byte gPlttBufferFaded -_0812EB50: .4byte sub_812EB58 -_0812EB54: .4byte sub_812EB10 - thumb_func_end sub_812EB2C - - thumb_func_start sub_812EB58 -sub_812EB58: @ 812EB58 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0812EB7C @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xA - bls _0812EB70 - b _0812EE94 -_0812EB70: - lsls r0, 2 - ldr r1, _0812EB80 @ =_0812EB84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812EB7C: .4byte gMain -_0812EB80: .4byte _0812EB84 - .align 2, 0 -_0812EB84: - .4byte _0812EBB0 - .4byte _0812EC28 - .4byte _0812EC44 - .4byte _0812EC8E - .4byte _0812ED00 - .4byte _0812ED3C - .4byte _0812ED6C - .4byte _0812ED9A - .4byte _0812EE94 - .4byte _0812EE94 - .4byte _0812EE30 -_0812EBB0: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - add r1, sp, 0x8 - movs r0, 0 - strh r0, [r1] - ldr r1, _0812EC14 @ =0x040000d4 - add r0, sp, 0x8 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _0812EC18 @ =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - str r2, [sp, 0xC] - add r0, sp, 0xC - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _0812EC1C @ =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0x8 - strh r2, [r0] - str r0, [r1] - ldr r0, _0812EC20 @ =0x05000002 - str r0, [r1, 0x4] - ldr r0, _0812EC24 @ =0x810001ff - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - bl remove_some_task - bl ResetSpriteData - bl FreeAllSpritePalettes - bl reset_temp_tile_data_buffers - movs r0, 0x2 - bl sub_812B1F0 - b _0812EE94 - .align 2, 0 -_0812EC14: .4byte 0x040000d4 -_0812EC18: .4byte 0x8100c000 -_0812EC1C: .4byte 0x85000100 -_0812EC20: .4byte 0x05000002 -_0812EC24: .4byte 0x810001ff -_0812EC28: - ldr r4, _0812EC3C @ =gUnknown_203B108 - ldr r0, _0812EC40 @ =0x00002420 - bl AllocZeroed - str r0, [r4] - movs r0, 0x1 - movs r1, 0x1 - bl sub_8044AF0 - b _0812EE94 - .align 2, 0 -_0812EC3C: .4byte gUnknown_203B108 -_0812EC40: .4byte 0x00002420 -_0812EC44: - 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 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - b _0812EE94 -_0812EC8E: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0812ECF0 @ =gUnknown_8462E58 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, _0812ECF4 @ =gUnknown_203B108 - ldr r1, [r4] - movs r0, 0xE1 - lsls r0, 5 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0xC1 - lsls r0, 5 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - 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 - ldr r0, _0812ECF8 @ =gSpriteCoordOffsetX - movs r1, 0 - strh r1, [r0] - ldr r0, _0812ECFC @ =gSpriteCoordOffsetY - strh r1, [r0] - b _0812EE94 - .align 2, 0 -_0812ECF0: .4byte gUnknown_8462E58 -_0812ECF4: .4byte gUnknown_203B108 -_0812ECF8: .4byte gSpriteCoordOffsetX -_0812ECFC: .4byte gSpriteCoordOffsetY -_0812ED00: - ldr r2, _0812ED34 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - bl sub_80F6C6C - bl sub_80F6C98 - movs r0, 0xD0 - bl sub_80F77CC - ldr r0, _0812ED38 @ =gUnknown_8460568 - movs r1, 0 - movs r2, 0x80 - bl LoadPalette - movs r0, 0x2 - bl stdpal_get - adds r0, 0x1E - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - b _0812EE94 - .align 2, 0 -_0812ED34: .4byte gPaletteFade -_0812ED38: .4byte gUnknown_8460568 -_0812ED3C: - bl sub_80F78A8 - ldr r1, _0812ED60 @ =gUnknown_203B108 - ldr r1, [r1] - movs r3, 0 - strb r0, [r1, 0x1F] - ldr r2, _0812ED64 @ =gTextFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0812ED68 @ =gUnknown_84605E8 - str r3, [sp] - movs r0, 0x1 - movs r2, 0 - bl decompress_and_copy_tile_data_to_vram - b _0812EE94 - .align 2, 0 -_0812ED60: .4byte gUnknown_203B108 -_0812ED64: .4byte gTextFlags -_0812ED68: .4byte gUnknown_84605E8 -_0812ED6C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _0812ED78 - b _0812EEA2 -_0812ED78: - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - b _0812EE94 -_0812ED9A: - movs r0, 0xE2 - lsls r0, 1 - str r0, [sp] - movs r0, 0 - movs r1, 0x1E - movs r2, 0 - movs r3, 0xD - bl sub_810F558 - ldr r1, _0812EE1C @ =0x0000d00f - movs r4, 0x1E - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r1, _0812EE20 @ =0x0000d002 - str r4, [sp] - movs r5, 0x1 - str r5, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - ldr r1, _0812EE24 @ =0x0000d00e - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0x13 - bl FillBgTilemapBufferRect_Palette0 - bl sub_812EEB0 - ldr r2, _0812EE28 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - movs r0, 0 - str r0, [sp] - movs r1, 0xE6 - movs r2, 0x95 - movs r3, 0 - bl sub_8006300 - ldr r2, _0812EE2C @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x12] - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _0812EE94 - .align 2, 0 -_0812EE1C: .4byte 0x0000d00f -_0812EE20: .4byte 0x0000d002 -_0812EE24: .4byte 0x0000d00e -_0812EE28: .4byte gPaletteFade -_0812EE2C: .4byte gTasks -_0812EE30: - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - 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 - ldr r0, _0812EE80 @ =sub_812EAFC - bl SetVBlankCallback - ldr r0, _0812EE84 @ =0x00000143 - bl PlayBGM - ldr r1, _0812EE88 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0812EE8C @ =sub_812F0B0 - str r1, [r0] - ldr r0, _0812EE90 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - strb r4, [r0] - b _0812EEA2 - .align 2, 0 -_0812EE80: .4byte sub_812EAFC -_0812EE84: .4byte 0x00000143 -_0812EE88: .4byte gTasks -_0812EE8C: .4byte sub_812F0B0 -_0812EE90: .4byte gMain -_0812EE94: - ldr r1, _0812EEAC @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0812EEA2: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812EEAC: .4byte gMain - thumb_func_end sub_812EB58 - - thumb_func_start sub_812EEB0 -sub_812EEB0: @ 812EEB0 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _0812EF38 @ =gUnknown_8415D2C - ldr r1, _0812EF3C @ =gUnknown_8415D48 - movs r5, 0x1 - str r5, [sp] - movs r2, 0 - movs r3, 0 - bl sub_810F650 - ldr r1, _0812EF40 @ =gUnknown_8462EB4 - ldr r4, _0812EF44 @ =gUnknown_203B108 - ldr r0, [r4] - ldrh r0, [r0, 0x12] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl AddWindow - ldr r1, [r4] - movs r6, 0 - strh r0, [r1, 0x14] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldr r0, [r4] - ldrb r0, [r0, 0x14] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldrb r0, [r0, 0x14] - str r5, [sp] - str r5, [sp, 0x4] - ldr r1, _0812EF48 @ =gUnknown_8462EE8 - str r1, [sp, 0x8] - str r6, [sp, 0xC] - ldr r1, _0812EF4C @ =gUnknown_81C582D - str r1, [sp, 0x10] - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0 - bl AddTextPrinterParametrized2 - ldr r0, [r4] - ldrb r0, [r0, 0x14] - movs r1, 0x3 - bl CopyWindowToVram - movs r1, 0xC0 - lsls r1, 6 - movs r0, 0x5 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x1 - movs r3, 0x3 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812EF38: .4byte gUnknown_8415D2C -_0812EF3C: .4byte gUnknown_8415D48 -_0812EF40: .4byte gUnknown_8462EB4 -_0812EF44: .4byte gUnknown_203B108 -_0812EF48: .4byte gUnknown_8462EE8 -_0812EF4C: .4byte gUnknown_81C582D - thumb_func_end sub_812EEB0 - - thumb_func_start sub_812EF50 -sub_812EF50: @ 812EF50 - 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 - mov r8, r0 - movs r6, 0 - ldr r4, _0812EF80 @ =gUnknown_203B108 - ldr r0, [r4] - ldrh r1, [r0, 0x12] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r1, 0 - bne _0812EF84 - bl sub_812EEB0 - mov r0, r8 - lsls r0, 2 - mov r10, r0 - b _0812F06A - .align 2, 0 -_0812EF80: .4byte gUnknown_203B108 -_0812EF84: - ldr r0, _0812F038 @ =gUnknown_8415D50 - movs r1, 0 - movs r2, 0x1 - bl sub_810F5E8 - lsls r1, r7, 1 - mov r9, r1 - mov r3, r8 - lsls r3, 2 - mov r10, r3 - adds r5, r4, 0 -_0812EF9A: - ldr r1, _0812F03C @ =gUnknown_8462EB4 - ldr r0, [r5] - ldrh r0, [r0, 0x12] - lsls r0, 2 - adds r0, r1 - lsls r1, r6, 3 - ldr r0, [r0] - adds r0, r1 - bl AddWindow - ldr r1, [r5] - lsls r4, r6, 1 - adds r1, 0x14 - adds r1, r4 - strh r0, [r1] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x1 - str r1, [sp] - str r1, [sp, 0x4] - ldr r1, _0812F040 @ =gUnknown_8462EE8 - str r1, [sp, 0x8] - movs r1, 0 - str r1, [sp, 0xC] - ldr r2, _0812F044 @ =gUnknown_8463074 - mov r3, r9 - adds r1, r3, r7 - adds r1, r6, r1 - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r2, 0x6 - movs r3, 0 - bl AddTextPrinterParametrized2 - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _0812EF9A - ldr r0, _0812F048 @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x12] - cmp r0, 0x1 - bne _0812F050 - ldr r1, _0812F04C @ =gUnknown_8460D94 - movs r0, 0x5 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x1 - movs r3, 0x3 - bl CopyToBgTilemapBufferRect - b _0812F064 - .align 2, 0 -_0812F038: .4byte gUnknown_8415D50 -_0812F03C: .4byte gUnknown_8462EB4 -_0812F040: .4byte gUnknown_8462EE8 -_0812F044: .4byte gUnknown_8463074 -_0812F048: .4byte gUnknown_203B108 -_0812F04C: .4byte gUnknown_8460D94 -_0812F050: - ldr r1, _0812F0A0 @ =gUnknown_8460E34 - movs r0, 0x5 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x1 - movs r3, 0x3 - bl CopyToBgTilemapBufferRect -_0812F064: - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_0812F06A: - movs r0, 0x2 - bl stdpal_get - ldrh r2, [r0, 0x1E] - ldr r0, _0812F0A4 @ =0xffffdfff - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _0812F0A8 @ =gTasks - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, _0812F0AC @ =sub_812F0B0 - str r1, [r0] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F0A0: .4byte gUnknown_8460E34 -_0812F0A4: .4byte 0xffffdfff -_0812F0A8: .4byte gTasks -_0812F0AC: .4byte sub_812F0B0 - thumb_func_end sub_812EF50 - - thumb_func_start sub_812F0B0 -sub_812F0B0: @ 812F0B0 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0812F10C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812F162 - ldr r0, _0812F110 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0812F162 - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0812F120 - ldr r1, _0812F114 @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x26] - ldr r0, _0812F118 @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x12] - adds r4, r2, 0 - cmp r0, 0x1 - bhi _0812F150 - movs r0, 0x2 - bl stdpal_get - ldrh r2, [r0, 0x1E] - ldr r0, _0812F11C @ =0xffffdfff - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0812F150 - .align 2, 0 -_0812F10C: .4byte gPaletteFade -_0812F110: .4byte gMain -_0812F114: .4byte gTasks -_0812F118: .4byte gUnknown_203B108 -_0812F11C: .4byte 0xffffdfff -_0812F120: - ldr r0, _0812F16C @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x12] - cmp r0, 0 - beq _0812F162 - ldr r1, _0812F170 @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0812F174 @ =0x0000ffff - strh r1, [r0, 0x26] - movs r0, 0x2 - bl stdpal_get - ldrh r2, [r0, 0x1E] - ldr r0, _0812F178 @ =0xffffdfff - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0812F150: - movs r0, 0x5 - bl PlaySE - ldr r0, _0812F170 @ =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812F17C @ =sub_812F180 - str r0, [r1] -_0812F162: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812F16C: .4byte gUnknown_203B108 -_0812F170: .4byte gTasks -_0812F174: .4byte 0x0000ffff -_0812F178: .4byte 0xffffdfff -_0812F17C: .4byte sub_812F180 - thumb_func_end sub_812F0B0 - - thumb_func_start sub_812F180 -sub_812F180: @ 812F180 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r8, r0 - ldr r0, _0812F1B0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812F260 - ldr r1, _0812F1B4 @ =gUnknown_203B108 - ldr r0, [r1] - ldrh r0, [r0, 0x12] - adds r5, r1, 0 - cmp r0, 0 - bne _0812F1B8 - movs r1, 0x1 - mov r8, r1 - b _0812F1C4 - .align 2, 0 -_0812F1B0: .4byte gPaletteFade -_0812F1B4: .4byte gUnknown_203B108 -_0812F1B8: - cmp r0, 0 - blt _0812F1C4 - cmp r0, 0x2 - bgt _0812F1C4 - movs r2, 0x3 - mov r8, r2 -_0812F1C4: - ldr r2, [r5] - ldr r1, _0812F244 @ =gTasks - lsls r3, r7, 2 - adds r0, r3, r7 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x26] - ldrh r1, [r2, 0x12] - adds r0, r1 - movs r1, 0 - strh r0, [r2, 0x12] - lsls r0, 16 - lsrs r0, 16 - mov r9, r3 - cmp r0, 0x2 - bhi _0812F24C - movs r6, 0 - cmp r1, r8 - bcs _0812F234 -_0812F1EA: - ldr r0, [r5] - lsls r4, r6, 1 - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - movs r1, 0 - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r8 - bcc _0812F1EA -_0812F234: - ldr r0, _0812F244 @ =gTasks - mov r2, r9 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812F248 @ =sub_812EF50 - str r0, [r1] - b _0812F260 - .align 2, 0 -_0812F244: .4byte gTasks -_0812F248: .4byte sub_812EF50 -_0812F24C: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0812F270 @ =sub_812F274 - str r0, [r4] -_0812F260: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F270: .4byte sub_812F274 - thumb_func_end sub_812F180 - - thumb_func_start sub_812F274 -sub_812F274: @ 812F274 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r6, 0 - ldr r0, _0812F32C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812F320 - ldr r5, _0812F330 @ =gUnknown_203B108 -_0812F292: - ldr r0, [r5] - lsls r4, r6, 1 - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - movs r7, 0 - strh r7, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _0812F292 - movs r0, 0x1E - str r0, [sp] - movs r0, 0x12 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, _0812F334 @ =gTasks - mov r1, r8 - lsls r4, r1, 2 - add r4, r8 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x12] - bl sub_8006398 - ldr r0, _0812F330 @ =gUnknown_203B108 - ldr r0, [r0] - strh r7, [r0, 0x14] - adds r0, 0x14 - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - movs r0, 0x20 - strh r0, [r4, 0xE] - ldr r0, _0812F338 @ =sub_812F33C - str r0, [r4] -_0812F320: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F32C: .4byte gPaletteFade -_0812F330: .4byte gUnknown_203B108 -_0812F334: .4byte gTasks -_0812F338: .4byte sub_812F33C - thumb_func_end sub_812F274 - - thumb_func_start sub_812F33C -sub_812F33C: @ 812F33C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - mov r8, r0 - ldr r0, _0812F370 @ =gTasks+0x8 - mov r9, r0 - mov r5, r8 - add r5, r9 - movs r0, 0 - str r0, [sp, 0x14] - ldrh r0, [r5, 0x6] - movs r1, 0x6 - ldrsh r6, [r5, r1] - cmp r6, 0 - beq _0812F374 - subs r0, 0x1 - strh r0, [r5, 0x6] - b _0812F476 - .align 2, 0 -_0812F370: .4byte gTasks+0x8 -_0812F374: - movs r0, 0xA2 - lsls r0, 1 - bl PlayBGM - bl sub_810F71C - ldr r0, _0812F484 @ =gUnknown_8415D48 - movs r1, 0 - movs r2, 0x1 - bl sub_810F5E8 - ldr r0, _0812F488 @ =gUnknown_8460BA8 - add r1, sp, 0x14 - bl malloc_and_decompress - adds r1, r0, 0 - ldr r4, _0812F48C @ =gUnknown_203B108 - ldr r0, [r4] - str r1, [r0, 0x8] - movs r0, 0x1E - str r0, [sp] - movs r0, 0x13 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0x2 - bl CopyToBgTilemapBufferRect - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, [r4] - ldr r0, [r0, 0x8] - bl Free - ldr r0, [r4] - str r6, [r0, 0x8] - ldr r0, _0812F490 @ =gUnknown_8462EC0 - bl AddWindow - strh r0, [r5, 0x1C] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r0, [r5, 0x1C] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x1C] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, [r4] - movs r1, 0 - strh r6, [r0, 0x12] - ldr r0, _0812F494 @ =gMain - movs r2, 0x87 - lsls r2, 3 - adds r0, r2 - strb r1, [r0] - movs r0, 0x10 - strh r0, [r5, 0x1E] - ldrb r0, [r5, 0x1C] - movs r1, 0x1 - str r1, [sp] - str r6, [sp, 0x4] - ldr r1, _0812F498 @ =gUnknown_8462EEC - str r1, [sp, 0x8] - str r6, [sp, 0xC] - ldr r1, _0812F49C @ =gUnknown_8462EF0 - ldr r1, [r1] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0x5 - bl AddTextPrinterParametrized2 - str r6, [sp] - movs r0, 0 - movs r1, 0xE2 - movs r2, 0x91 - movs r3, 0 - bl sub_8006300 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - ldr r4, _0812F4A0 @ =gSprites - movs r1, 0xA - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x1] - movs r2, 0xA - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - ands r3, r1 - strb r3, [r0, 0x5] - adds r0, r7, 0 - movs r1, 0 - bl sub_8130FD4 - movs r0, 0x1 - negs r0, r0 - str r6, [sp] - movs r1, 0x2 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, _0812F4A4 @ =sub_812F4A8 - str r1, [r0] -_0812F476: - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F484: .4byte gUnknown_8415D48 -_0812F488: .4byte gUnknown_8460BA8 -_0812F48C: .4byte gUnknown_203B108 -_0812F490: .4byte gUnknown_8462EC0 -_0812F494: .4byte gMain -_0812F498: .4byte gUnknown_8462EEC -_0812F49C: .4byte gUnknown_8462EF0 -_0812F4A0: .4byte gSprites -_0812F4A4: .4byte sub_812F4A8 - thumb_func_end sub_812F33C - - thumb_func_start sub_812F4A8 -sub_812F4A8: @ 812F4A8 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r6, r0, 3 - ldr r7, _0812F4D8 @ =gTasks+0x8 - adds r5, r6, r7 - ldr r0, _0812F4DC @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r3, r0, r1 - ldrb r1, [r3] - adds r4, r0, 0 - cmp r1, 0x4 - bls _0812F4CC - b _0812F6C0 -_0812F4CC: - lsls r0, r1, 2 - ldr r1, _0812F4E0 @ =_0812F4E4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812F4D8: .4byte gTasks+0x8 -_0812F4DC: .4byte gMain -_0812F4E0: .4byte _0812F4E4 - .align 2, 0 -_0812F4E4: - .4byte _0812F4F8 - .4byte _0812F538 - .4byte _0812F5B4 - .4byte _0812F644 - .4byte _0812F688 -_0812F4F8: - ldr r0, _0812F534 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0812F506 - b _0812F71C -_0812F506: - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - movs r1, 0x85 - lsls r1, 5 - movs r0, 0x44 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x1F - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - b _0812F676 - .align 2, 0 -_0812F534: .4byte gPaletteFade -_0812F538: - ldrh r1, [r4, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0812F544 - b _0812F71C -_0812F544: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812F55C - ldr r0, _0812F558 @ =gUnknown_203B108 - ldr r1, [r0] - ldrh r0, [r1, 0x12] - adds r0, 0x1 - b _0812F56A - .align 2, 0 -_0812F558: .4byte gUnknown_203B108 -_0812F55C: - ldr r0, _0812F58C @ =gUnknown_203B108 - ldr r1, [r0] - ldrh r0, [r1, 0x12] - cmp r0, 0 - bne _0812F568 - b _0812F71C -_0812F568: - subs r0, 0x1 -_0812F56A: - strh r0, [r1, 0x12] - movs r0, 0x5 - bl PlaySE - ldr r0, _0812F58C @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x12] - cmp r0, 0x3 - bne _0812F594 - ldr r0, _0812F590 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0x4 - strb r1, [r0] - b _0812F71C - .align 2, 0 -_0812F58C: .4byte gUnknown_203B108 -_0812F590: .4byte gMain -_0812F594: - ldr r1, _0812F5B0 @ =0x00000241 - movs r0, 0x50 - bl SetGpuReg - ldrh r0, [r5, 0x1E] - movs r1, 0x10 - subs r1, r0 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - b _0812F6A2 - .align 2, 0 -_0812F5B0: .4byte 0x00000241 -_0812F5B4: - ldrh r1, [r5, 0x1E] - subs r1, 0x2 - strh r1, [r5, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0 - ble _0812F5D6 - b _0812F71C -_0812F5D6: - ldrb r0, [r5, 0x1C] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x1C] - movs r1, 0x1 - str r1, [sp] - movs r2, 0 - str r2, [sp, 0x4] - ldr r1, _0812F620 @ =gUnknown_8462EEC - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r2, _0812F624 @ =gUnknown_8462EF0 - ldr r4, _0812F628 @ =gUnknown_203B108 - ldr r1, [r4] - ldrh r1, [r1, 0x12] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0x5 - bl AddTextPrinterParametrized2 - ldr r0, [r4] - ldrh r0, [r0, 0x12] - cmp r0, 0 - bne _0812F630 - bl sub_810F71C - ldr r0, _0812F62C @ =gUnknown_8415D48 - movs r1, 0 - movs r2, 0x1 - bl sub_810F5E8 - b _0812F6A2 - .align 2, 0 -_0812F620: .4byte gUnknown_8462EEC -_0812F624: .4byte gUnknown_8462EF0 -_0812F628: .4byte gUnknown_203B108 -_0812F62C: .4byte gUnknown_8415D48 -_0812F630: - bl sub_810F71C - ldr r0, _0812F640 @ =gUnknown_8415D50 - movs r1, 0 - movs r2, 0x1 - bl sub_810F5E8 - b _0812F6A2 - .align 2, 0 -_0812F640: .4byte gUnknown_8415D50 -_0812F644: - ldrh r1, [r5, 0x1E] - adds r1, 0x2 - strh r1, [r5, 0x1E] - movs r4, 0x10 - subs r0, r4, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0xF - ble _0812F71C - strh r4, [r5, 0x1E] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg -_0812F676: - ldr r0, _0812F684 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _0812F71C - .align 2, 0 -_0812F684: .4byte gMain -_0812F688: - ldr r1, _0812F6B4 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x12] - bl sub_8006398 - ldr r0, _0812F6B8 @ =0x00000145 - bl PlayBGM - movs r0, 0x18 - strh r0, [r5, 0x1E] -_0812F6A2: - ldr r1, _0812F6BC @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0812F71C - .align 2, 0 -_0812F6B4: .4byte gTasks -_0812F6B8: .4byte 0x00000145 -_0812F6BC: .4byte gMain -_0812F6C0: - ldrh r0, [r5, 0x1E] - movs r1, 0x1E - ldrsh r4, [r5, r1] - cmp r4, 0 - beq _0812F6D0 - subs r0, 0x1 - strh r0, [r5, 0x1E] - b _0812F71C -_0812F6D0: - strb r4, [r3] - ldr r0, _0812F724 @ =gUnknown_203B108 - ldr r0, [r0] - strh r4, [r0, 0x12] - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0812F728 @ =sub_812F72C - str r1, [r0] -_0812F71C: - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F724: .4byte gUnknown_203B108 -_0812F728: .4byte sub_812F72C - thumb_func_end sub_812F4A8 - - thumb_func_start sub_812F72C -sub_812F72C: @ 812F72C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r7, r0, 3 - ldr r0, _0812F7B4 @ =gTasks+0x8 - mov r8, r0 - adds r4, r7, r0 - ldr r0, _0812F7B8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _0812F7A6 - bl sub_810F740 - ldrb r0, [r4, 0x1C] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x1C] - bl ClearWindowTilemap - ldrb r0, [r4, 0x1C] - movs r1, 0x3 - bl CopyWindowToVram - ldrb r0, [r4, 0x1C] - bl RemoveWindow - strh r6, [r4, 0x1C] - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - adds r0, r5, 0 - movs r1, 0 - bl sub_8131168 - movs r0, 0x50 - strh r0, [r4, 0x6] - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _0812F7BC @ =sub_812F7C0 - str r1, [r0] -_0812F7A6: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F7B4: .4byte gTasks+0x8 -_0812F7B8: .4byte gPaletteFade -_0812F7BC: .4byte sub_812F7C0 - thumb_func_end sub_812F72C - - thumb_func_start sub_812F7C0 -sub_812F7C0: @ 812F7C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r7, r0, 3 - ldr r0, _0812F7EC @ =gTasks+0x8 - mov r8, r0 - adds r5, r7, r0 - movs r0, 0 - str r0, [sp, 0x4] - ldrh r0, [r5, 0x6] - movs r1, 0x6 - ldrsh r6, [r5, r1] - cmp r6, 0 - beq _0812F7F0 - subs r0, 0x1 - strh r0, [r5, 0x6] - b _0812F862 - .align 2, 0 -_0812F7EC: .4byte gTasks+0x8 -_0812F7F0: - ldr r0, _0812F870 @ =gUnknown_8460CA4 - add r1, sp, 0x4 - bl malloc_and_decompress - adds r1, r0, 0 - ldr r0, _0812F874 @ =gUnknown_203B108 - ldr r0, [r0] - str r1, [r0] - ldr r2, [sp, 0x4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTiles - ldr r1, _0812F878 @ =gUnknown_8460CE8 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - adds r0, r4, 0 - bl sub_8130F2C - movs r0, 0x3 - movs r1, 0 - bl sub_81311F4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8130FD4 - movs r0, 0x92 - lsls r0, 1 - bl PlayBGM - movs r0, 0x1 - negs r0, r0 - str r6, [sp] - movs r1, 0x5 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x50 - strh r0, [r5, 0x6] - movs r0, 0x2 - bl ShowBg - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _0812F87C @ =sub_812F880 - str r1, [r0] -_0812F862: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F870: .4byte gUnknown_8460CA4 -_0812F874: .4byte gUnknown_203B108 -_0812F878: .4byte gUnknown_8460CE8 -_0812F87C: .4byte sub_812F880 - thumb_func_end sub_812F7C0 - - thumb_func_start sub_812F880 -sub_812F880: @ 812F880 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0812F8B0 @ =gTasks+0x8 - adds r2, r0, r1 - ldr r0, _0812F8B4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812F92E - ldrh r0, [r2, 0x6] - movs r1, 0x6 - ldrsh r4, [r2, r1] - cmp r4, 0 - beq _0812F8B8 - subs r0, 0x1 - strh r0, [r2, 0x6] - b _0812F92E - .align 2, 0 -_0812F8B0: .4byte gTasks+0x8 -_0812F8B4: .4byte gPaletteFade -_0812F8B8: - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812F8F0 @ =gUnknown_81C5C78 - ldr r5, _0812F8F4 @ =gStringVar4 - cmp r2, r5 - beq _0812F8FC - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812F8F8 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _0812F918 - .align 2, 0 -_0812F8F0: .4byte gUnknown_81C5C78 -_0812F8F4: .4byte gStringVar4 -_0812F8F8: .4byte gUnknown_203B108 -_0812F8FC: - ldr r0, _0812F938 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812F918: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0812F93C @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812F940 @ =sub_812F944 - str r0, [r1] -_0812F92E: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812F938: .4byte gUnknown_203B108 -_0812F93C: .4byte gTasks -_0812F940: .4byte sub_812F944 - thumb_func_end sub_812F880 - - thumb_func_start sub_812F944 -sub_812F944: @ 812F944 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _0812F9D6 - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812F994 @ =gUnknown_81C5D06 - ldr r5, _0812F998 @ =gStringVar4 - cmp r2, r5 - beq _0812F9A0 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812F99C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _0812F9BC - .align 2, 0 -_0812F994: .4byte gUnknown_81C5D06 -_0812F998: .4byte gStringVar4 -_0812F99C: .4byte gUnknown_203B108 -_0812F9A0: - ldr r0, _0812F9E0 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812F9BC: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r1, _0812F9E4 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1E - strh r1, [r0, 0xE] - ldr r1, _0812F9E8 @ =sub_812F9EC - str r1, [r0] -_0812F9D6: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812F9E0: .4byte gUnknown_203B108 -_0812F9E4: .4byte gTasks -_0812F9E8: .4byte sub_812F9EC - thumb_func_end sub_812F944 - - thumb_func_start sub_812F9EC -sub_812F9EC: @ 812F9EC - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _0812FA68 @ =gTasks+0x8 - adds r4, r6, r7 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _0812FA5E - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0812FA1A - subs r0, r1, 0x1 - strh r0, [r4, 0x6] -_0812FA1A: - adds r4, r7, 0 - subs r4, 0x8 - adds r4, r6, r4 - ldrb r0, [r4, 0x10] - ldr r1, _0812FA6C @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r3, 0x3E - adds r3, r2 - mov r12, r3 - ldrb r3, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - mov r3, r12 - strb r1, [r3] - strh r5, [r2, 0x2E] - ldrb r1, [r2, 0x5] - lsrs r1, 4 - str r5, [sp] - str r5, [sp, 0x4] - movs r2, 0x20 - str r2, [sp, 0x8] - ldr r2, _0812FA70 @ =0xffff1fff - str r2, [sp, 0xC] - movs r2, 0x64 - movs r3, 0x42 - bl CreatePokeballSpriteToReleaseMon - ldr r0, _0812FA74 @ =sub_812FA78 - str r0, [r4] - strh r5, [r4, 0xE] -_0812FA5E: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812FA68: .4byte gTasks+0x8 -_0812FA6C: .4byte gSprites -_0812FA70: .4byte 0xffff1fff -_0812FA74: .4byte sub_812FA78 - thumb_func_end sub_812F9EC - - thumb_func_start sub_812FA78 -sub_812FA78: @ 812FA78 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - bl IsCryFinished - lsls r0, 24 - cmp r0, 0 - beq _0812FAA0 - ldr r0, _0812FAFC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0x5F - ble _0812FAA0 - ldr r0, _0812FB00 @ =sub_812FB4C - str r0, [r1] -_0812FAA0: - ldr r1, _0812FAFC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r3, [r2, 0xE] - movs r0, 0xE - ldrsh r1, [r2, r0] - ldr r0, _0812FB04 @ =0x00003fff - cmp r1, r0 - bgt _0812FB40 - adds r0, r3, 0x1 - movs r5, 0 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - bne _0812FB40 - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812FB08 @ =gUnknown_81C5D12 - ldr r4, _0812FB0C @ =gStringVar4 - cmp r2, r4 - beq _0812FB14 - adds r0, r4, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812FB10 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r5, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl AddTextPrinterParametrized - b _0812FB30 - .align 2, 0 -_0812FAFC: .4byte gTasks -_0812FB00: .4byte sub_812FB4C -_0812FB04: .4byte 0x00003fff -_0812FB08: .4byte gUnknown_81C5D12 -_0812FB0C: .4byte gStringVar4 -_0812FB10: .4byte gUnknown_203B108 -_0812FB14: - ldr r0, _0812FB48 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r5, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812FB30: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1D - movs r1, 0 - bl PlayCry1 -_0812FB40: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812FB48: .4byte gUnknown_203B108 - thumb_func_end sub_812FA78 - - thumb_func_start sub_812FB4C -sub_812FB4C: @ 812FB4C - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _0812FBDA - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812FB9C @ =gUnknown_81C5D4B - ldr r5, _0812FBA0 @ =gStringVar4 - cmp r2, r5 - beq _0812FBA8 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812FBA4 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _0812FBC4 - .align 2, 0 -_0812FB9C: .4byte gUnknown_81C5D4B -_0812FBA0: .4byte gStringVar4 -_0812FBA4: .4byte gUnknown_203B108 -_0812FBA8: - ldr r0, _0812FBE4 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812FBC4: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0812FBE8 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812FBEC @ =sub_812FBF0 - str r0, [r1] -_0812FBDA: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812FBE4: .4byte gUnknown_203B108 -_0812FBE8: .4byte gTasks -_0812FBEC: .4byte sub_812FBF0 - thumb_func_end sub_812FB4C - - thumb_func_start sub_812FBF0 -sub_812FBF0: @ 812FBF0 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _0812FC4E - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - ldr r0, _0812FC58 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x10] - ldr r2, _0812FC5C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x5] - lsrs r1, 4 - str r5, [sp] - str r5, [sp, 0x4] - movs r2, 0x20 - str r2, [sp, 0x8] - ldr r2, _0812FC60 @ =0xffff1f3f - str r2, [sp, 0xC] - movs r2, 0x64 - movs r3, 0x42 - bl sub_804BB98 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - movs r0, 0x30 - strh r0, [r4, 0xE] - movs r0, 0x40 - strh r0, [r4, 0x8] - ldr r0, _0812FC64 @ =sub_812FC68 - str r0, [r4] -_0812FC4E: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812FC58: .4byte gTasks -_0812FC5C: .4byte gSprites -_0812FC60: .4byte 0xffff1f3f -_0812FC64: .4byte sub_812FC68 - thumb_func_end sub_812FBF0 - - thumb_func_start sub_812FC68 -sub_812FC68: @ 812FC68 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0812FCA4 @ =gTasks+0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0812FCAC - cmp r0, 0x17 - bgt _0812FC9A - ldr r2, _0812FCA8 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_0812FC9A: - ldrh r0, [r5] - subs r0, 0x1 - strh r0, [r5] - b _0812FD62 - .align 2, 0 -_0812FCA4: .4byte gTasks+0x8 -_0812FCA8: .4byte gSprites -_0812FCAC: - movs r1, 0x6 - ldrsh r0, [r5, r1] - cmp r0, 0x30 - bne _0812FCD6 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0812FCE8 @ =gSprites - adds r0, r4 - bl DestroySprite - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_0812FCD6: - ldrh r0, [r5, 0x6] - movs r1, 0x6 - ldrsh r4, [r5, r1] - cmp r4, 0 - beq _0812FCEC - subs r0, 0x1 - strh r0, [r5, 0x6] - b _0812FD62 - .align 2, 0 -_0812FCE8: .4byte gSprites -_0812FCEC: - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812FD24 @ =gUnknown_81C5DBD - ldr r5, _0812FD28 @ =gStringVar4 - cmp r2, r5 - beq _0812FD30 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812FD2C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _0812FD4C - .align 2, 0 -_0812FD24: .4byte gUnknown_81C5DBD -_0812FD28: .4byte gStringVar4 -_0812FD2C: .4byte gUnknown_203B108 -_0812FD30: - ldr r0, _0812FD6C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812FD4C: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0812FD70 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812FD74 @ =sub_812FD78 - str r0, [r1] -_0812FD62: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812FD6C: .4byte gUnknown_203B108 -_0812FD70: .4byte gTasks -_0812FD74: .4byte sub_812FD78 - thumb_func_end sub_812FC68 - - thumb_func_start sub_812FD78 -sub_812FD78: @ 812FD78 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r5, r0, 3 - ldr r7, _0812FDB8 @ =gTasks+0x8 - adds r6, r5, r7 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0812FDB2 - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_813144C - movs r0, 0x30 - strh r0, [r6, 0x6] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, _0812FDBC @ =sub_812FDC0 - str r1, [r0] -_0812FDB2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812FDB8: .4byte gTasks+0x8 -_0812FDBC: .4byte sub_812FDC0 - thumb_func_end sub_812FD78 - - thumb_func_start sub_812FDC0 -sub_812FDC0: @ 812FDC0 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0812FDEC @ =gTasks+0x8 - adds r1, r0, r1 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0812FE72 - ldrh r0, [r1, 0x6] - movs r2, 0x6 - ldrsh r4, [r1, r2] - cmp r4, 0 - beq _0812FDF0 - subs r0, 0x1 - strh r0, [r1, 0x6] - b _0812FE72 - .align 2, 0 -_0812FDEC: .4byte gTasks+0x8 -_0812FDF0: - movs r2, 0x3C - negs r2, r2 - adds r0, r2, 0 - strh r0, [r1, 0x2] - bl sub_8131310 - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812FE34 @ =gUnknown_81C59D5 - ldr r5, _0812FE38 @ =gStringVar4 - cmp r2, r5 - beq _0812FE40 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812FE3C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _0812FE5C - .align 2, 0 -_0812FE34: .4byte gUnknown_81C59D5 -_0812FE38: .4byte gStringVar4 -_0812FE3C: .4byte gUnknown_203B108 -_0812FE40: - ldr r0, _0812FE7C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812FE5C: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0812FE80 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812FE84 @ =sub_812FE88 - str r0, [r1] -_0812FE72: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812FE7C: .4byte gUnknown_203B108 -_0812FE80: .4byte gTasks -_0812FE84: .4byte sub_812FE88 - thumb_func_end sub_812FDC0 - - thumb_func_start sub_812FE88 -sub_812FE88: @ 812FE88 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0 - bne _0812FF7E - ldr r0, _0812FF8C @ =gUnknown_8462EC8 - bl AddWindow - ldr r1, _0812FF90 @ =gTasks - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r5, r1 - strh r0, [r5, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrh r4, [r5, 0x22] - lsls r4, 24 - lsrs r4, 24 - bl sub_80F796C - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r4, 0 - movs r1, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - ldrh r0, [r5, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r4, _0812FF94 @ =gUnknown_203B108 - ldr r0, [r4] - movs r1, 0x1 - mov r9, r1 - mov r1, r9 - strb r1, [r0, 0x1C] - ldr r0, [r4] - movs r6, 0x2 - strb r6, [r0, 0x1D] - ldr r0, [r4] - movs r1, 0x3 - mov r8, r1 - mov r1, r8 - strb r1, [r0, 0x1E] - ldrh r0, [r5, 0x22] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, 0x1C - str r1, [sp] - str r7, [sp, 0x4] - ldr r1, _0812FF98 @ =gUnknown_8415D93 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x8 - movs r3, 0x1 - bl box_print - ldr r0, [r4] - mov r1, r9 - strb r1, [r0, 0x1C] - ldr r0, [r4] - strb r6, [r0, 0x1D] - ldr r0, [r4] - mov r1, r8 - strb r1, [r0, 0x1E] - ldrh r0, [r5, 0x22] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, 0x1C - str r1, [sp] - str r7, [sp, 0x4] - ldr r1, _0812FF9C @ =gUnknown_8415D97 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x8 - movs r3, 0x11 - bl box_print - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x22] - lsls r1, 24 - lsrs r1, 24 - str r0, [sp] - str r6, [sp, 0x4] - str r7, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x1 - bl sub_810F7D8 - ldrh r0, [r5, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0812FFA0 @ =sub_812FFA4 - str r0, [r5] -_0812FF7E: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812FF8C: .4byte gUnknown_8462EC8 -_0812FF90: .4byte gTasks -_0812FF94: .4byte gUnknown_203B108 -_0812FF98: .4byte gUnknown_8415D93 -_0812FF9C: .4byte gUnknown_8415D97 -_0812FFA0: .4byte sub_812FFA4 - thumb_func_end sub_812FE88 - - thumb_func_start sub_812FFA4 -sub_812FFA4: @ 812FFA4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrapAround - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0812FFC8 - cmp r1, 0 - bgt _0812FFC4 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - blt _0812FFCE - b _0812FFDC -_0812FFC4: - cmp r1, 0x1 - bne _0812FFCE -_0812FFC8: - ldr r0, _0812FFE4 @ =gSaveBlock2Ptr - ldr r0, [r0] - strb r1, [r0, 0x8] -_0812FFCE: - ldr r0, _0812FFE8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812FFEC @ =sub_812FFF0 - str r0, [r1] -_0812FFDC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812FFE4: .4byte gSaveBlock2Ptr -_0812FFE8: .4byte gTasks -_0812FFEC: .4byte sub_812FFF0 - thumb_func_end sub_812FFA4 - - thumb_func_start sub_812FFF0 -sub_812FFF0: @ 812FFF0 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r5, r0, 2 - adds r5, r0 - lsls r5, 3 - ldr r6, _08130048 @ =gTasks+0x8 - adds r4, r5, r6 - ldrb r0, [r4, 0x1A] - movs r1, 0x1 - bl sub_810F4D8 - ldrb r0, [r4, 0x1A] - bl RemoveWindow - movs r0, 0 - strh r0, [r4, 0x1A] - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - subs r6, 0x8 - adds r5, r6 - ldr r0, _0813004C @ =sub_8130050 - str r0, [r5] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08130048: .4byte gTasks+0x8 -_0813004C: .4byte sub_8130050 - thumb_func_end sub_812FFF0 - - thumb_func_start sub_8130050 -sub_8130050: @ 8130050 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813006C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08130070 - movs r0, 0 - movs r1, 0 - bl sub_81311F4 - b _08130078 - .align 2, 0 -_0813006C: .4byte gSaveBlock2Ptr -_08130070: - movs r0, 0x1 - movs r1, 0 - bl sub_81311F4 -_08130078: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_81315CC - ldr r1, _08130098 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x20 - strh r1, [r0, 0xE] - ldr r1, _0813009C @ =sub_81300A0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08130098: .4byte gTasks -_0813009C: .4byte sub_81300A0 - thumb_func_end sub_8130050 - - thumb_func_start sub_81300A0 -sub_81300A0: @ 81300A0 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _081300CC @ =gTasks+0x8 - adds r1, r0, r1 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0813014A - ldrh r0, [r1, 0x6] - movs r2, 0x6 - ldrsh r4, [r1, r2] - cmp r4, 0 - beq _081300D0 - subs r0, 0x1 - strh r0, [r1, 0x6] - b _0813014A - .align 2, 0 -_081300CC: .4byte gTasks+0x8 -_081300D0: - strh r4, [r1, 0x2] - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0813010C @ =gUnknown_81C5DEA - ldr r5, _08130110 @ =gStringVar4 - cmp r2, r5 - beq _08130118 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _08130114 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _08130134 - .align 2, 0 -_0813010C: .4byte gUnknown_81C5DEA -_08130110: .4byte gStringVar4 -_08130114: .4byte gUnknown_203B108 -_08130118: - ldr r0, _08130154 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_08130134: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _08130158 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813015C @ =sub_8130160 - str r0, [r1] -_0813014A: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08130154: .4byte gUnknown_203B108 -_08130158: .4byte gTasks -_0813015C: .4byte sub_8130160 - thumb_func_end sub_81300A0 - - thumb_func_start sub_8130160 -sub_8130160: @ 8130160 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _0813019A - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _081301A4 @ =gUnknown_203B108 - ldr r0, [r0] - strh r4, [r0, 0x10] - ldr r1, _081301A8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _081301AC @ =sub_81303B4 - str r1, [r0] -_0813019A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081301A4: .4byte gUnknown_203B108 -_081301A8: .4byte gTasks -_081301AC: .4byte sub_81303B4 - thumb_func_end sub_8130160 - - thumb_func_start sub_81301B0 -sub_81301B0: @ 81301B0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _081301F8 @ =gTasks+0x8 - adds r4, r6, r7 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _08130218 - ldrh r2, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r1, 0x3C - negs r1, r1 - cmp r0, r1 - ble _08130200 - subs r0, r2, 0x2 - strh r0, [r4, 0x2] - ldr r1, _081301FC @ =gSpriteCoordOffsetX - ldrh r0, [r1] - adds r0, 0x2 - strh r0, [r1] - movs r1, 0x80 - lsls r1, 2 - movs r0, 0x2 - movs r2, 0x2 - bl ChangeBgX - b _08130218 - .align 2, 0 -_081301F8: .4byte gTasks+0x8 -_081301FC: .4byte gSpriteCoordOffsetX -_08130200: - strh r1, [r4, 0x2] - ldr r0, _08130220 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r1, [r0, 0x10] - adds r0, r5, 0 - bl sub_8131660 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _08130224 @ =sub_8130324 - str r1, [r0] -_08130218: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08130220: .4byte gUnknown_203B108 -_08130224: .4byte sub_8130324 - thumb_func_end sub_81301B0 - - thumb_func_start sub_8130228 -sub_8130228: @ 8130228 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _08130278 @ =gUnknown_203B108 - ldr r0, [r4] - ldrb r1, [r0, 0x10] - adds r0, r6, 0 - bl sub_8131660 - ldr r0, [r4] - ldrh r4, [r0, 0x10] - cmp r4, 0 - bne _081302A6 - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0813027C @ =gUnknown_81C5DEA - ldr r5, _08130280 @ =gStringVar4 - cmp r2, r5 - beq _08130284 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - movs r3, 0 - bl AddTextPrinterParametrized - b _0813029C - .align 2, 0 -_08130278: .4byte gUnknown_203B108 -_0813027C: .4byte gUnknown_81C5DEA -_08130280: .4byte gStringVar4 -_08130284: - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - movs r3, 0 - bl AddTextPrinterParametrized -_0813029C: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - b _08130306 -_081302A6: - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _081302DC @ =gUnknown_81C5E91 - ldr r4, _081302E0 @ =gStringVar4 - cmp r2, r4 - beq _081302E4 - adds r0, r4, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - movs r3, 0 - bl AddTextPrinterParametrized - b _081302FE - .align 2, 0 -_081302DC: .4byte gUnknown_81C5E91 -_081302E0: .4byte gStringVar4 -_081302E4: - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - movs r3, 0 - bl AddTextPrinterParametrized -_081302FE: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram -_08130306: - ldr r0, _0813031C @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _08130320 @ =sub_8130324 - str r0, [r1] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813031C: .4byte gTasks -_08130320: .4byte sub_8130324 - thumb_func_end sub_8130228 - - thumb_func_start sub_8130324 -sub_8130324: @ 8130324 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _0813037C @ =gTasks+0x8 - adds r5, r6, r7 - bl ProcessMenuInput - lsls r0, 24 - asrs r4, r0, 24 - cmp r4, 0 - beq _08130388 - cmp r4, 0 - ble _081303A8 - cmp r4, 0x4 - bgt _081303A8 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r5, 0x1A] - movs r1, 0x1 - bl sub_810F4D8 - ldrb r0, [r5, 0x1A] - bl RemoveWindow - ldr r0, _08130380 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - subs r1, r4, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl sub_8131754 - movs r0, 0x1 - strh r0, [r5, 0x1E] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _08130384 @ =sub_8130464 - b _081303A6 - .align 2, 0 -_0813037C: .4byte gTasks+0x8 -_08130380: .4byte gUnknown_203B108 -_08130384: .4byte sub_8130464 -_08130388: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _081303B0 @ =sub_81303B4 -_081303A6: - str r1, [r0] -_081303A8: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081303B0: .4byte sub_81303B4 - thumb_func_end sub_8130324 - - thumb_func_start sub_81303B4 -sub_81303B4: @ 81303B4 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _081303F8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0813044C - ldr r4, _081303FC @ =gUnknown_203B108 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - movs r1, 0 - bl sub_8131754 - ldr r0, [r4] - ldrh r0, [r0, 0x10] - cmp r0, 0 - bne _08130408 - ldr r0, _08130400 @ =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r2, [r1, 0x8] - str r5, [sp] - ldr r0, _08130404 @ =sub_8130C64 - str r0, [sp, 0x4] - movs r0, 0 - movs r3, 0 - bl DoNamingScreen - b _08130440 - .align 2, 0 -_081303F8: .4byte gPaletteFade -_081303FC: .4byte gUnknown_203B108 -_08130400: .4byte gSaveBlock2Ptr -_08130404: .4byte sub_8130C64 -_08130408: - ldr r0, _08130454 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_810F4D8 - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl RemoveWindow - ldr r0, _08130458 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, _0813045C @ =0x00003a4c - adds r1, r0 - str r5, [sp] - ldr r0, _08130460 @ =sub_8130C64 - str r0, [sp, 0x4] - movs r0, 0x4 - movs r2, 0 - movs r3, 0 - bl DoNamingScreen -_08130440: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8131168 - bl FreeAllWindowBuffers -_0813044C: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08130454: .4byte gTasks -_08130458: .4byte gSaveBlock1Ptr -_0813045C: .4byte 0x00003a4c -_08130460: .4byte sub_8130C64 - thumb_func_end sub_81303B4 - - thumb_func_start sub_8130464 -sub_8130464: @ 8130464 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _081304A0 @ =gTasks+0x8 - adds r5, r6, r7 - ldr r0, _081304A4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08130544 - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _08130500 - ldr r0, _081304A8 @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x10] - cmp r0, 0 - bne _081304B4 - ldr r0, _081304AC @ =gStringVar4 - ldr r1, _081304B0 @ =gUnknown_81C5E13 - bl StringExpandPlaceholders - b _081304BC - .align 2, 0 -_081304A0: .4byte gTasks+0x8 -_081304A4: .4byte gPaletteFade -_081304A8: .4byte gUnknown_203B108 -_081304AC: .4byte gStringVar4 -_081304B0: .4byte gUnknown_81C5E13 -_081304B4: - ldr r0, _081304F4 @ =gStringVar4 - ldr r1, _081304F8 @ =gUnknown_81C5EB5 - bl StringExpandPlaceholders -_081304BC: - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _081304F4 @ =gStringVar4 - ldr r0, _081304FC @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - movs r4, 0 - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - strh r4, [r5, 0x1E] - movs r0, 0x19 - strh r0, [r5, 0x6] - b _08130544 - .align 2, 0 -_081304F4: .4byte gStringVar4 -_081304F8: .4byte gUnknown_81C5EB5 -_081304FC: .4byte gUnknown_203B108 -_08130500: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _08130544 - ldrh r0, [r5, 0x6] - movs r1, 0x6 - ldrsh r4, [r5, r1] - cmp r4, 0 - beq _0813051C - subs r0, 0x1 - strh r0, [r5, 0x6] - b _08130544 -_0813051C: - bl sub_80F796C - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0813054C @ =gUnknown_8462ED0 - str r0, [sp] - movs r0, 0xE - str r0, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl sub_810FF60 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _08130550 @ =sub_8130554 - str r1, [r0] -_08130544: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813054C: .4byte gUnknown_8462ED0 -_08130550: .4byte sub_8130554 - thumb_func_end sub_8130464 - - thumb_func_start sub_8130554 -sub_8130554: @ 8130554 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r5, r0, 24 - cmp r5, 0 - beq _0813057C - cmp r5, 0 - bgt _08130576 - movs r0, 0x1 - negs r0, r0 - cmp r5, r0 - beq _08130604 - b _0813063E -_08130576: - cmp r5, 0x1 - beq _08130604 - b _0813063E -_0813057C: - movs r0, 0x5 - bl PlaySE - ldr r1, _081305B0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r6, r0, r1 - movs r0, 0x28 - strh r0, [r6, 0xE] - ldr r7, _081305B4 @ =gUnknown_203B108 - ldr r0, [r7] - ldrh r0, [r0, 0x10] - cmp r0, 0 - bne _081305BC - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_813144C - ldr r0, _081305B8 @ =sub_8130650 - str r0, [r6] - b _0813063E - .align 2, 0 -_081305B0: .4byte gTasks -_081305B4: .4byte gUnknown_203B108 -_081305B8: .4byte sub_8130650 -_081305BC: - ldr r4, _081305F8 @ =gStringVar4 - ldr r1, _081305FC @ =gUnknown_81C5EC5 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r0, [r7] - ldrb r3, [r0, 0x1F] - str r5, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl AddTextPrinterParametrized - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _08130600 @ =sub_8130694 - str r0, [r6] - b _0813063E - .align 2, 0 -_081305F8: .4byte gStringVar4 -_081305FC: .4byte gUnknown_81C5EC5 -_08130600: .4byte sub_8130694 -_08130604: - movs r0, 0x5 - bl PlaySE - ldr r0, _08130624 @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x10] - cmp r0, 0 - bne _08130630 - ldr r0, _08130628 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813062C @ =sub_8130160 - b _0813063C - .align 2, 0 -_08130624: .4byte gUnknown_203B108 -_08130628: .4byte gTasks -_0813062C: .4byte sub_8130160 -_08130630: - ldr r0, _08130648 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813064C @ =sub_8130228 -_0813063C: - str r0, [r1] -_0813063E: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08130648: .4byte gTasks -_0813064C: .4byte sub_8130228 - thumb_func_end sub_8130554 - - thumb_func_start sub_8130650 -sub_8130650: @ 8130650 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r5, r1, 3 - ldr r6, _0813067C @ =gTasks+0x8 - adds r4, r5, r6 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813068A - bl sub_8131310 - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08130680 - subs r0, r1, 0x1 - strh r0, [r4, 0x6] - b _0813068A - .align 2, 0 -_0813067C: .4byte gTasks+0x8 -_08130680: - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, _08130690 @ =sub_81306D4 - str r1, [r0] -_0813068A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08130690: .4byte sub_81306D4 - thumb_func_end sub_8130650 - - thumb_func_start sub_8130694 -sub_8130694: @ 8130694 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _081306C4 - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_813144C - ldr r0, _081306CC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _081306D0 @ =sub_81307D0 - str r0, [r1] -_081306C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081306CC: .4byte gTasks -_081306D0: .4byte sub_81307D0 - thumb_func_end sub_8130694 - - thumb_func_start sub_81306D4 -sub_81306D4: @ 81306D4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - ldr r0, _08130710 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r1, 0 - strh r1, [r4, 0xA] - ldr r0, _08130714 @ =gSpriteCoordOffsetX - strh r1, [r0] - movs r0, 0x2 - bl sub_81311F4 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_81315CC - ldr r0, _08130718 @ =sub_813071C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08130710: .4byte gTasks -_08130714: .4byte gSpriteCoordOffsetX -_08130718: .4byte sub_813071C - thumb_func_end sub_81306D4 - - thumb_func_start sub_813071C -sub_813071C: @ 813071C - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08130770 @ =gTasks+0x8 - adds r0, r1 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _081307BC - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _08130774 @ =gUnknown_81C5E2E - ldr r4, _08130778 @ =gStringVar4 - cmp r2, r4 - beq _08130780 - adds r0, r4, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0813077C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl AddTextPrinterParametrized - b _0813079E - .align 2, 0 -_08130770: .4byte gTasks+0x8 -_08130774: .4byte gUnknown_81C5E2E -_08130778: .4byte gStringVar4 -_0813077C: .4byte gUnknown_203B108 -_08130780: - ldr r0, _081307C4 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0813079E: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _081307C4 @ =gUnknown_203B108 - ldr r1, [r0] - movs r0, 0x1 - strh r0, [r1, 0x10] - ldr r1, _081307C8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _081307CC @ =sub_81301B0 - str r1, [r0] -_081307BC: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081307C4: .4byte gUnknown_203B108 -_081307C8: .4byte gTasks -_081307CC: .4byte sub_81301B0 - thumb_func_end sub_813071C - - thumb_func_start sub_81307D0 -sub_81307D0: @ 81307D0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081307FC @ =gTasks+0x8 - adds r4, r0, r1 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08130846 - bl sub_8131310 - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08130800 - subs r0, r1, 0x1 - strh r0, [r4, 0x6] - b _08130846 - .align 2, 0 -_081307FC: .4byte gTasks+0x8 -_08130800: - ldr r0, _08130814 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08130818 - movs r0, 0 - movs r1, 0 - bl sub_81311F4 - b _08130820 - .align 2, 0 -_08130814: .4byte gSaveBlock2Ptr -_08130818: - movs r0, 0x1 - movs r1, 0 - bl sub_81311F4 -_08130820: - ldr r0, _0813084C @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r1, 0 - strh r1, [r4, 0xA] - ldr r0, _08130850 @ =gSpriteCoordOffsetX - strh r1, [r0] - movs r0, 0x2 - movs r2, 0 - bl ChangeBgX - adds r0, r5, 0 - movs r1, 0x2 - bl sub_81315CC - ldr r0, _08130854 @ =sub_8130858 - str r0, [r4] -_08130846: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813084C: .4byte gTasks -_08130850: .4byte gSpriteCoordOffsetX -_08130854: .4byte sub_8130858 - thumb_func_end sub_81307D0 - - thumb_func_start sub_8130858 -sub_8130858: @ 8130858 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081308BC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081308B4 - ldr r4, _081308C0 @ =gStringVar4 - ldr r1, _081308C4 @ =gUnknown_81C5EF4 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r0, _081308C8 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl AddTextPrinterParametrized - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1E - strh r0, [r5, 0xE] - ldr r0, _081308CC @ =sub_81308D0 - str r0, [r5] -_081308B4: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081308BC: .4byte gTasks -_081308C0: .4byte gStringVar4 -_081308C4: .4byte gUnknown_81C5EF4 -_081308C8: .4byte gUnknown_203B108 -_081308CC: .4byte sub_81308D0 - thumb_func_end sub_8130858 - - thumb_func_start sub_81308D0 -sub_81308D0: @ 81308D0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0813090A - ldr r0, _081308FC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r4, r1, r0 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08130900 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _0813090A - .align 2, 0 -_081308FC: .4byte gTasks -_08130900: - movs r0, 0x4 - bl FadeOutBGM - ldr r0, _08130910 @ =sub_8130914 - str r0, [r4] -_0813090A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08130910: .4byte sub_8130914 - thumb_func_end sub_81308D0 - - thumb_func_start sub_8130914 -sub_8130914: @ 8130914 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813093C @ =gUnknown_203B108 - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0x12] - adds r0, r4, 0 - bl sub_8130A38 - adds r0, r4, 0 - bl sub_8130ADC - adds r0, r4, 0 - bl sub_8130940 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813093C: .4byte gUnknown_203B108 - thumb_func_end sub_8130914 - - thumb_func_start sub_8130940 -sub_8130940: @ 8130940 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r6, _08130978 @ =gTasks+0x8 - adds r5, r4, r6 - movs r0, 0x2 - movs r1, 0x6 - movs r2, 0x1 - bl SetBgAttribute - movs r1, 0 - strh r1, [r5] - strh r1, [r5, 0x2] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r5, 0x4] - strh r1, [r5, 0x1E] - subs r6, 0x8 - adds r4, r6 - ldr r0, _0813097C @ =sub_8130980 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08130978: .4byte gTasks+0x8 -_0813097C: .4byte sub_8130980 - thumb_func_end sub_8130940 - - thumb_func_start sub_8130980 -sub_8130980: @ 8130980 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r7, r1, 3 - ldr r0, _08130A2C @ =gTasks+0x8 - mov r8, r0 - adds r5, r7, r0 - ldr r0, _08130A30 @ =gUnknown_203B108 - ldr r1, [r0] - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - ldrh r4, [r1, 0x12] - adds r0, r4, 0 - movs r1, 0x14 - bl __umodsi3 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - bne _08130A1E - cmp r4, 0x28 - bne _081309BE - movs r0, 0x27 - bl PlaySE -_081309BE: - ldrh r0, [r5, 0x4] - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r5, 0x4] - subs r0, 0x8 - lsls r0, 16 - asrs r0, 16 - bl sub_80D8B90 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrh r0, [r5, 0x4] - subs r0, 0x10 - lsls r0, 16 - asrs r0, 16 - bl sub_80D8B90 - movs r1, 0xF0 - lsls r1, 7 - movs r2, 0xA8 - lsls r2, 7 - movs r3, 0x54 - str r3, [sp] - lsls r4, 16 - asrs r4, 16 - str r4, [sp, 0x4] - lsls r0, 16 - asrs r0, 16 - str r0, [sp, 0x8] - str r6, [sp, 0xC] - movs r0, 0x2 - movs r3, 0x78 - bl SetBgAffine - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0x60 - bgt _08130A1E - movs r0, 0x1 - strh r0, [r5, 0x1E] - movs r0, 0x24 - strh r0, [r5] - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _08130A34 @ =sub_8130BA8 - str r1, [r0] -_08130A1E: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08130A2C: .4byte gTasks+0x8 -_08130A30: .4byte gUnknown_203B108 -_08130A34: .4byte sub_8130BA8 - thumb_func_end sub_8130980 - - thumb_func_start sub_8130A38 -sub_8130A38: @ 8130A38 - push {lr} - sub sp, 0x4 - ldr r0, _08130A74 @ =sub_8130A80 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08130A78 @ =gTasks+0x8 - adds r1, r0 - movs r0, 0 - strh r0, [r1] - strh r0, [r1, 0x2] - strh r0, [r1, 0x4] - strh r0, [r1, 0x1E] - ldr r0, _08130A7C @ =0xffff0fcf - movs r1, 0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08130A74: .4byte sub_8130A80 -_08130A78: .4byte gTasks+0x8 -_08130A7C: .4byte 0xffff0fcf - thumb_func_end sub_8130A38 - - thumb_func_start sub_8130A80 -sub_8130A80: @ 8130A80 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08130AB8 @ =gTasks+0x8 - adds r2, r0, r1 - ldr r0, _08130ABC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08130AD4 - ldrh r0, [r2, 0x2] - movs r3, 0x2 - ldrsh r1, [r2, r3] - cmp r1, 0 - beq _08130AC0 - adds r0, r4, 0 - bl DestroyTask - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8131168 - b _08130AD4 - .align 2, 0 -_08130AB8: .4byte gTasks+0x8 -_08130ABC: .4byte gPaletteFade -_08130AC0: - adds r0, 0x1 - strh r0, [r2, 0x2] - movs r0, 0xF0 - lsls r0, 8 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08130AD4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8130A80 - - thumb_func_start sub_8130ADC -sub_8130ADC: @ 8130ADC - push {lr} - ldr r0, _08130B08 @ =sub_8130B10 - movs r1, 0x2 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08130B0C @ =gTasks+0x8 - adds r1, r0 - movs r2, 0x8 - strh r2, [r1] - movs r0, 0 - strh r0, [r1, 0x2] - strh r2, [r1, 0x4] - strh r0, [r1, 0x1C] - strh r0, [r1, 0x1E] - pop {r0} - bx r0 - .align 2, 0 -_08130B08: .4byte sub_8130B10 -_08130B0C: .4byte gTasks+0x8 - thumb_func_end sub_8130ADC - - thumb_func_start sub_8130B10 -sub_8130B10: @ 8130B10 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08130B30 @ =gTasks+0x8 - adds r4, r0, r1 - ldrh r1, [r4] - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08130B34 - subs r0, r1, 0x1 - strh r0, [r4] - b _08130B96 - .align 2, 0 -_08130B30: .4byte gTasks+0x8 -_08130B34: - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - bgt _08130B4A - ldrh r1, [r4, 0x4] - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08130B4A - subs r0, r1, 0x1 - strh r0, [r4, 0x4] -_08130B4A: - ldrb r2, [r4, 0x1C] - ldr r7, _08130B9C @ =0x00007fff - movs r0, 0x40 - movs r1, 0x20 - adds r3, r7, 0 - bl BlendPalette - ldrh r1, [r4, 0x1C] - adds r1, 0x1 - strh r1, [r4, 0x1C] - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - strh r0, [r4] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0xE - ble _08130B96 - movs r2, 0 - ldr r6, _08130BA0 @ =gPlttBufferFaded - adds r3, r7, 0 - ldr r4, _08130BA4 @ =gPlttBufferUnfaded -_08130B78: - adds r0, r2, 0 - adds r0, 0x40 - lsls r0, 1 - adds r1, r0, r6 - strh r3, [r1] - adds r0, r4 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _08130B78 - adds r0, r5, 0 - bl DestroyTask -_08130B96: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08130B9C: .4byte 0x00007fff -_08130BA0: .4byte gPlttBufferFaded -_08130BA4: .4byte gPlttBufferUnfaded - thumb_func_end sub_8130B10 - - thumb_func_start sub_8130BA8 -sub_8130BA8: @ 8130BA8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08130BCC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - movs r2, 0x8 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _08130BD0 - subs r0, 0x1 - strh r0, [r4, 0x8] - b _08130BE2 - .align 2, 0 -_08130BCC: .4byte gTasks -_08130BD0: - str r1, [sp] - movs r0, 0x30 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08130BEC @ =sub_8130BF0 - str r0, [r4] -_08130BE2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08130BEC: .4byte sub_8130BF0 - thumb_func_end sub_8130BA8 - - thumb_func_start sub_8130BF0 -sub_8130BF0: @ 8130BF0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08130C14 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08130C10 - ldr r0, _08130C18 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _08130C1C @ =sub_8130C20 - str r0, [r1] -_08130C10: - pop {r0} - bx r0 - .align 2, 0 -_08130C14: .4byte gPaletteFade -_08130C18: .4byte gTasks -_08130C1C: .4byte sub_8130C20 - thumb_func_end sub_8130BF0 - - thumb_func_start sub_8130C20 -sub_8130C20: @ 8130C20 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl FreeAllWindowBuffers - bl sub_8044D80 - ldr r5, _08130C58 @ =gUnknown_203B108 - ldr r0, [r5] - bl Free - movs r0, 0 - str r0, [r5] - ldr r2, _08130C5C @ =gTextFlags - ldrb r1, [r2] - subs r0, 0x2 - ands r0, r1 - strb r0, [r2] - ldr r0, _08130C60 @ =CB2_NewGame - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08130C58: .4byte gUnknown_203B108 -_08130C5C: .4byte gTextFlags -_08130C60: .4byte CB2_NewGame - thumb_func_end sub_8130C20 - - thumb_func_start sub_8130C64 -sub_8130C64: @ 8130C64 - push {r4,r5,lr} - sub sp, 0x10 - ldr r0, _08130C84 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x7 - bls _08130C78 - b _08130F10 -_08130C78: - lsls r0, 2 - ldr r1, _08130C88 @ =_08130C8C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08130C84: .4byte gMain -_08130C88: .4byte _08130C8C - .align 2, 0 -_08130C8C: - .4byte _08130CAC - .4byte _08130D18 - .4byte _08130D78 - .4byte _08130DB2 - .4byte _08130DD0 - .4byte _08130DE8 - .4byte _08130E38 - .4byte _08130EB8 -_08130CAC: - movs r0, 0 - bl SetVBlankCallback - add r1, sp, 0x8 - movs r0, 0 - strh r0, [r1] - ldr r1, _08130D04 @ =0x040000d4 - add r0, sp, 0x8 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _08130D08 @ =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - str r2, [sp, 0xC] - add r0, sp, 0xC - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _08130D0C @ =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0x8 - strh r2, [r0] - str r0, [r1] - ldr r0, _08130D10 @ =0x05000002 - str r0, [r1, 0x4] - ldr r0, _08130D14 @ =0x810001ff - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - bl remove_some_task - bl ResetSpriteData - bl FreeAllSpritePalettes - bl reset_temp_tile_data_buffers - b _08130F10 - .align 2, 0 -_08130D04: .4byte 0x040000d4 -_08130D08: .4byte 0x8100c000 -_08130D0C: .4byte 0x85000100 -_08130D10: .4byte 0x05000002 -_08130D14: .4byte 0x810001ff -_08130D18: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08130D70 @ =gUnknown_8462E58 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, _08130D74 @ =gUnknown_203B108 - ldr r1, [r4] - movs r0, 0xE1 - lsls r0, 5 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0xC1 - lsls r0, 5 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - 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 - b _08130F10 - .align 2, 0 -_08130D70: .4byte gUnknown_8462E58 -_08130D74: .4byte gUnknown_203B108 -_08130D78: - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - b _08130F10 -_08130DB2: - bl FreeAllWindowBuffers - bl sub_80F6C6C - bl sub_80F6C98 - ldr r0, _08130DCC @ =gUnknown_8460568 - movs r1, 0 - movs r2, 0xE0 - bl LoadPalette - b _08130F10 - .align 2, 0 -_08130DCC: .4byte gUnknown_8460568 -_08130DD0: - ldr r1, _08130DE4 @ =gUnknown_8460CA4 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _08130F10 - .align 2, 0 -_08130DE4: .4byte gUnknown_8460CA4 -_08130DE8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _08130DF4 - b _08130F1E -_08130DF4: - movs r5, 0x1E - str r5, [sp] - movs r4, 0x14 - str r4, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r1, _08130E34 @ =gUnknown_8460CE8 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - b _08130F10 - .align 2, 0 -_08130E34: .4byte gUnknown_8460CE8 -_08130E38: - ldr r0, _08130E5C @ =sub_8130464 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _08130E60 @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x10] - cmp r0, 0 - bne _08130E72 - ldr r0, _08130E64 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08130E68 - movs r0, 0 - b _08130E6A - .align 2, 0 -_08130E5C: .4byte sub_8130464 -_08130E60: .4byte gUnknown_203B108 -_08130E64: .4byte gSaveBlock2Ptr -_08130E68: - movs r0, 0x1 -_08130E6A: - movs r1, 0 - bl sub_81311F4 - b _08130E7A -_08130E72: - movs r0, 0x2 - movs r1, 0 - bl sub_81311F4 -_08130E7A: - ldr r0, _08130EA8 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldr r0, _08130EAC @ =0x0000ffc4 - strh r0, [r4, 0xA] - ldr r1, _08130EB0 @ =gSpriteCoordOffsetX - ldrh r0, [r1] - adds r0, 0x3C - strh r0, [r1] - ldr r1, _08130EB4 @ =0xffffc400 - movs r0, 0x2 - movs r2, 0 - bl ChangeBgX - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8130FD4 - movs r0, 0x1 - strh r0, [r4, 0x26] - b _08130F10 - .align 2, 0 -_08130EA8: .4byte gTasks -_08130EAC: .4byte 0x0000ffc4 -_08130EB0: .4byte gSpriteCoordOffsetX -_08130EB4: .4byte 0xffffc400 -_08130EB8: - 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 - movs r0, 0x1 - bl EnableInterrupts - ldr r0, _08130F04 @ =sub_812EAFC - bl SetVBlankCallback - ldr r2, _08130F08 @ =gTextFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08130F0C @ =sub_812EB10 - bl SetMainCallback2 - b _08130F1E - .align 2, 0 -_08130F04: .4byte sub_812EAFC -_08130F08: .4byte gTextFlags -_08130F0C: .4byte sub_812EB10 -_08130F10: - ldr r1, _08130F28 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08130F1E: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08130F28: .4byte gMain - thumb_func_end sub_8130C64 - - thumb_func_start sub_8130F2C -sub_8130F2C: @ 8130F2C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _08130FA0 @ =gUnknown_8235194 - movs r0, 0 - bl sub_8044E00 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1D - bl DecompressPicFromTable - ldr r0, _08130FA4 @ =gUnknown_82373F4 - bl sub_800F078 - movs r0, 0x1D - movs r1, 0 - bl sub_803F7D4 - ldr r0, _08130FA8 @ =gMultiuseSpriteTemplate - movs r1, 0x60 - movs r2, 0x60 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08130FAC @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r1, r2, r1 - ldr r3, _08130FB0 @ =SpriteCallbackDummy - str r3, [r1] - adds r2, r4 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - orrs r1, r3 - strb r1, [r2] - ldr r2, _08130FB4 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x10] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08130FA0: .4byte gUnknown_8235194 -_08130FA4: .4byte gUnknown_82373F4 -_08130FA8: .4byte gMultiuseSpriteTemplate -_08130FAC: .4byte gSprites -_08130FB0: .4byte SpriteCallbackDummy -_08130FB4: .4byte gTasks - thumb_func_end sub_8130F2C - - thumb_func_start sub_8130FB8 -sub_8130FB8: @ 8130FB8 - ldr r3, _08130FD0 @ =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - adds r1, 0x2B - ldrb r1, [r1] - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_08130FD0: .4byte gSprites - thumb_func_end sub_8130FB8 - - thumb_func_start sub_8130FD4 -sub_8130FD4: @ 8130FD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - movs r4, 0 - cmp r1, 0 - beq _08130FF4 - cmp r1, 0x1 - beq _081310C8 - b _08131146 -_08130FF4: - ldr r4, _081310B0 @ =gUnknown_8462EFC - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r0, r4, 0 - adds r0, 0x8 - bl LoadCompressedObjectPic - adds r4, 0x10 - adds r0, r4, 0 - bl LoadCompressedObjectPic - ldr r0, _081310B4 @ =gUnknown_8462F1C - bl LoadSpritePalette - ldr r0, _081310B8 @ =gUnknown_846302C - mov r8, r0 - movs r1, 0x10 - movs r2, 0x11 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r6, _081310BC @ =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - movs r5, 0xD - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1, 0x5] - ldr r0, _081310C0 @ =gTasks - mov r1, r9 - lsls r4, r1, 2 - add r4, r9 - lsls r4, 3 - adds r4, r0 - strh r7, [r4, 0x16] - mov r0, r8 - adds r0, 0x18 - movs r1, 0x10 - movs r2, 0x9 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r2, r1, r6 - ldrb r3, [r2, 0x5] - adds r0, r5, 0 - ands r0, r3 - strb r0, [r2, 0x5] - ldrh r0, [r4, 0x16] - strh r0, [r2, 0x2E] - movs r2, 0x1C - adds r2, r6 - mov r10, r2 - add r1, r10 - ldr r3, _081310C4 @ =sub_8130FB8 - mov r9, r3 - str r3, [r1] - strh r7, [r4, 0x18] - movs r0, 0x30 - add r8, r0 - mov r0, r8 - movs r1, 0x18 - movs r2, 0xD - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r6, r0, r6 - ldrb r1, [r6, 0x5] - ands r5, r1 - strb r5, [r6, 0x5] - ldrh r1, [r4, 0x16] - strh r1, [r6, 0x2E] - add r0, r10 - mov r1, r9 - str r1, [r0] - strh r7, [r4, 0x1A] - b _08131146 - .align 2, 0 -_081310B0: .4byte gUnknown_8462EFC -_081310B4: .4byte gUnknown_8462F1C -_081310B8: .4byte gUnknown_846302C -_081310BC: .4byte gSprites -_081310C0: .4byte gTasks -_081310C4: .4byte sub_8130FB8 -_081310C8: - ldr r0, _08131154 @ =gUnknown_8462F14 - bl LoadCompressedObjectPic - ldr r0, _08131158 @ =gUnknown_8462F24 - bl LoadSpritePalette - mov r2, r9 - lsls r5, r2, 2 - ldr r3, _0813115C @ =gTasks+0x8 - mov r8, r3 - ldr r6, _08131160 @ =gSprites -_081310DE: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _08131164 @ =gUnknown_8462F50 - adds r0, r1 - lsls r1, r4, 21 - movs r2, 0xB0 - lsls r2, 15 - adds r1, r2 - asrs r1, 16 - movs r2, 0x70 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r2, r7, 4 - adds r2, r7 - lsls r2, 2 - adds r2, r6 - ldrb r1, [r2, 0x5] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x8 - orrs r1, r0 - strb r1, [r2, 0x5] - adds r3, r2, 0 - adds r3, 0x2C - ldrb r0, [r3] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r3] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, 0x7 - lsls r1, 1 - mov r2, r9 - adds r0, r5, r2 - lsls r0, 3 - adds r1, r0 - add r1, r8 - strh r7, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081310DE -_08131146: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131154: .4byte gUnknown_8462F14 -_08131158: .4byte gUnknown_8462F24 -_0813115C: .4byte gTasks+0x8 -_08131160: .4byte gSprites -_08131164: .4byte gUnknown_8462F50 - thumb_func_end sub_8130FD4 - - thumb_func_start sub_8131168 -sub_8131168: @ 8131168 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - movs r4, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r5, r1, 3 - ldr r7, _081311AC @ =gTasks+0x8 -_0813117C: - adds r0, r4, 0x7 - lsls r0, 1 - adds r0, r5 - adds r0, r7 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081311B0 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0813117C - cmp r6, 0 - beq _081311B4 - cmp r6, 0x1 - beq _081311DC - b _081311EC - .align 2, 0 -_081311AC: .4byte gTasks+0x8 -_081311B0: .4byte gSprites -_081311B4: - ldr r0, _081311D0 @ =0x00001003 - bl FreeSpriteTilesByTag - ldr r0, _081311D4 @ =0x00001002 - bl FreeSpriteTilesByTag - ldr r4, _081311D8 @ =0x00001001 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - b _081311EC - .align 2, 0 -_081311D0: .4byte 0x00001003 -_081311D4: .4byte 0x00001002 -_081311D8: .4byte 0x00001001 -_081311DC: - movs r4, 0x80 - lsls r4, 5 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag -_081311EC: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8131168 - - thumb_func_start sub_81311F4 -sub_81311F4: @ 81311F4 - push {r4-r6,lr} - sub sp, 0x24 - lsls r0, 16 - lsrs r0, 16 - adds r2, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - cmp r0, 0x1 - beq _08131230 - cmp r0, 0x1 - bgt _08131210 - cmp r0, 0 - beq _0813121A - b _081312F6 -_08131210: - cmp r2, 0x2 - beq _08131248 - cmp r2, 0x3 - beq _0813126C - b _081312F6 -_0813121A: - ldr r0, _08131228 @ =gUnknown_84615FC - movs r1, 0x40 - movs r2, 0x40 - bl LoadPalette - ldr r0, _0813122C @ =gUnknown_846163C - b _08131254 - .align 2, 0 -_08131228: .4byte gUnknown_84615FC -_0813122C: .4byte gUnknown_846163C -_08131230: - ldr r0, _08131240 @ =gUnknown_8460ED4 - movs r1, 0x40 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08131244 @ =gUnknown_8460F14 - b _08131254 - .align 2, 0 -_08131240: .4byte gUnknown_8460ED4 -_08131244: .4byte gUnknown_8460F14 -_08131248: - ldr r0, _08131260 @ =gUnknown_84623AC - movs r1, 0x60 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08131264 @ =gUnknown_84623EC -_08131254: - ldr r2, _08131268 @ =0x06000600 - adds r1, r4, r2 - bl LZ77UnCompVram - b _08131280 - .align 2, 0 -_08131260: .4byte gUnknown_84623AC -_08131264: .4byte gUnknown_84623EC -_08131268: .4byte 0x06000600 -_0813126C: - ldr r0, _08131300 @ =gUnknown_8461CD4 - movs r1, 0x60 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08131304 @ =gUnknown_8461D14 - ldr r2, _08131308 @ =0x06000600 - adds r1, r4, r2 - bl LZ77UnCompVram -_08131280: - movs r0, 0x60 - bl AllocZeroed - ldr r2, _0813130C @ =gUnknown_203B108 - ldr r1, [r2] - str r0, [r1, 0x4] - movs r1, 0 - lsrs r6, r4, 6 -_08131290: - ldr r0, [r2] - ldr r0, [r0, 0x4] - adds r0, r1 - strb r1, [r0] - adds r1, 0x1 - cmp r1, 0x5F - bls _08131290 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r5, 0x10 - str r5, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - ldr r4, _0813130C @ =gUnknown_203B108 - ldr r0, [r4] - ldr r1, [r0, 0x4] - movs r3, 0x8 - str r3, [sp] - movs r2, 0xC - str r2, [sp, 0x4] - movs r0, 0xB - str r0, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - str r3, [sp, 0x10] - str r2, [sp, 0x14] - str r5, [sp, 0x18] - adds r0, r6, 0 - adds r0, 0x18 - str r0, [sp, 0x1C] - movs r5, 0 - str r5, [sp, 0x20] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyRectToBgTilemapBufferRect - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - ldr r0, [r4] - ldr r0, [r0, 0x4] - bl Free - ldr r0, [r4] - str r5, [r0, 0x4] -_081312F6: - add sp, 0x24 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08131300: .4byte gUnknown_8461CD4 -_08131304: .4byte gUnknown_8461D14 -_08131308: .4byte 0x06000600 -_0813130C: .4byte gUnknown_203B108 - thumb_func_end sub_81311F4 - - thumb_func_start sub_8131310 -sub_8131310: @ 8131310 - push {lr} - sub sp, 0xC - movs r0, 0x8 - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r2, 0xB - movs r3, 0x1 - bl FillBgTilemapBufferRect - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_8131310 - - thumb_func_start sub_8131338 -sub_8131338: @ 8131338 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r1, _081313A8 @ =gTasks - lsls r0, r6, 2 - mov r9, r0 - adds r0, r6 - lsls r5, r0, 3 - adds r2, r5, r1 - ldrh r3, [r2, 0xA] - movs r7, 0xA - ldrsh r0, [r2, r7] - mov r8, r1 - cmp r0, 0 - bne _081313B0 - movs r1, 0x8 - ldrsh r0, [r2, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - add r1, r8 - movs r0, 0x1 - strh r0, [r1, 0xC] - adds r0, r6, 0 - bl DestroyTask - ldr r6, _081313AC @ =gSprites - adds r2, r5, 0 - mov r5, r8 - adds r5, 0x8 - movs r3, 0x4 -_08131380: - adds r0, r4, 0x7 - lsls r0, 1 - adds r0, r2 - adds r0, r5 - movs r7, 0 - ldrsh r1, [r0, r7] - 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] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08131380 - b _0813143A - .align 2, 0 -_081313A8: .4byte gTasks -_081313AC: .4byte gSprites -_081313B0: - ldrh r1, [r2, 0x10] - movs r7, 0x10 - ldrsh r0, [r2, r7] - cmp r0, 0 - beq _081313C0 - subs r0, r1, 0x1 - strh r0, [r2, 0x10] - b _0813143A -_081313C0: - ldrh r0, [r2, 0xE] - strh r0, [r2, 0x10] - subs r1, r3, 0x1 - strh r1, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - lsls r1, 16 - asrs r1, 16 - mov r12, r9 - cmp r1, 0x8 - bne _0813141E - adds r7, r5, 0 - movs r0, 0x8 - add r0, r8 - mov r10, r0 - movs r5, 0x1 - movs r1, 0x5 - negs r1, r1 - mov r9, r1 -_081313E8: - adds r0, r4, 0x7 - lsls r0, 1 - adds r0, r7 - add r0, r10 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _08131448 @ =gSprites - adds r2, r0 - adds r2, 0x3E - ldrb r3, [r2] - lsls r1, r3, 29 - lsrs r1, 31 - eors r1, r5 - ands r1, r5 - lsls r1, 2 - mov r0, r9 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081313E8 -_0813141E: - mov r1, r12 - adds r0, r1, r6 - lsls r0, 3 - add r0, r8 - movs r2, 0xC - ldrsh r1, [r0, r2] - lsls r1, 8 - ldrh r0, [r0, 0xA] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_0813143A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131448: .4byte gSprites - thumb_func_end sub_8131338 - - thumb_func_start sub_813144C -sub_813144C: @ 813144C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - movs r7, 0 - ldr r1, _081314D0 @ =0x00001244 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r0, _081314D4 @ =gTasks - mov r8, r0 - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r0, r5, r0 - strh r7, [r0, 0xC] - ldr r0, _081314D8 @ =sub_8131338 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - mov r1, r8 - adds r0, r2, r1 - strh r4, [r0, 0x8] - movs r1, 0x10 - strh r1, [r0, 0xA] - strh r7, [r0, 0xC] - strh r6, [r0, 0xE] - strh r6, [r0, 0x10] - mov r3, r8 - adds r3, 0x8 -_081314AC: - adds r0, r7, 0x7 - lsls r0, 1 - adds r1, r0, r2 - adds r1, r3 - adds r0, r5 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _081314AC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081314D0: .4byte 0x00001244 -_081314D4: .4byte gTasks -_081314D8: .4byte sub_8131338 - thumb_func_end sub_813144C - - thumb_func_start sub_81314DC -sub_81314DC: @ 81314DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r1, _08131528 @ =gTasks - lsls r5, r6, 2 - adds r0, r5, r6 - lsls r0, 3 - mov r9, r0 - adds r2, r0, r1 - ldrh r3, [r2, 0xA] - movs r7, 0xA - ldrsh r0, [r2, r7] - mov r12, r1 - cmp r0, 0x10 - bne _08131530 - ldr r0, _0813152C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081315BA - movs r1, 0x8 - ldrsh r0, [r2, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - add r1, r12 - movs r0, 0x1 - strh r0, [r1, 0xC] - adds r0, r6, 0 - bl DestroyTask - b _081315BA - .align 2, 0 -_08131528: .4byte gTasks -_0813152C: .4byte gPaletteFade -_08131530: - ldrh r1, [r2, 0x10] - movs r7, 0x10 - ldrsh r0, [r2, r7] - cmp r0, 0 - beq _08131540 - subs r0, r1, 0x1 - strh r0, [r2, 0x10] - b _081315BA -_08131540: - ldrh r0, [r2, 0xE] - strh r0, [r2, 0x10] - adds r1, r3, 0x2 - strh r1, [r2, 0xA] - ldrh r0, [r2, 0xC] - subs r0, 0x2 - strh r0, [r2, 0xC] - lsls r1, 16 - asrs r1, 16 - mov r8, r5 - cmp r1, 0x8 - bne _0813159E - mov r7, r9 - movs r0, 0x8 - add r0, r12 - mov r10, r0 - movs r5, 0x1 - movs r1, 0x5 - negs r1, r1 - mov r9, r1 -_08131568: - adds r0, r4, 0x7 - lsls r0, 1 - adds r0, r7 - add r0, r10 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _081315C8 @ =gSprites - adds r2, r0 - adds r2, 0x3E - ldrb r3, [r2] - lsls r1, r3, 29 - lsrs r1, 31 - eors r1, r5 - ands r1, r5 - lsls r1, 2 - mov r0, r9 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08131568 -_0813159E: - mov r1, r8 - adds r0, r1, r6 - lsls r0, 3 - add r0, r12 - movs r2, 0xC - ldrsh r1, [r0, r2] - lsls r1, 8 - ldrh r0, [r0, 0xA] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_081315BA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081315C8: .4byte gSprites - thumb_func_end sub_81314DC - - thumb_func_start sub_81315CC -sub_81315CC: @ 81315CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - movs r7, 0 - ldr r1, _08131654 @ =0x00001244 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r0, _08131658 @ =gTasks - mov r8, r0 - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r0, r5, r0 - strh r7, [r0, 0xC] - ldr r0, _0813165C @ =sub_81314DC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - mov r1, r8 - adds r0, r2, r1 - strh r4, [r0, 0x8] - strh r7, [r0, 0xA] - movs r1, 0x10 - strh r1, [r0, 0xC] - strh r6, [r0, 0xE] - strh r6, [r0, 0x10] - mov r3, r8 - adds r3, 0x8 -_0813162E: - adds r0, r7, 0x7 - lsls r0, 1 - adds r1, r0, r2 - adds r1, r3 - adds r0, r5 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _0813162E - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131654: .4byte 0x00001244 -_08131658: .4byte gTasks -_0813165C: .4byte sub_81314DC - thumb_func_end sub_81315CC - - thumb_func_start sub_8131660 -sub_8131660: @ 8131660 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - mov r8, r1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, _081316DC @ =gTasks+0x8 - adds r7, r4, r5 - ldr r0, _081316E0 @ =gUnknown_8462ED8 - bl AddWindow - strh r0, [r7, 0x1A] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r6, [r7, 0x1A] - bl sub_80F796C - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - movs r1, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - adds r5, r4 - ldrb r0, [r5, 0x1A] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r7, 0x1A] - ldr r2, _081316E4 @ =gUnknown_81C574F - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x8 - bl AddTextPrinterParameterized - mov r0, r8 - cmp r0, 0 - bne _081316F4 - ldr r0, _081316E8 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - ldr r6, _081316EC @ =gUnknown_84630D8 - cmp r0, 0 - bne _081316F6 - ldr r6, _081316F0 @ =gUnknown_846308C - b _081316F6 - .align 2, 0 -_081316DC: .4byte gTasks+0x8 -_081316E0: .4byte gUnknown_8462ED8 -_081316E4: .4byte gUnknown_81C574F -_081316E8: .4byte gSaveBlock2Ptr -_081316EC: .4byte gUnknown_84630D8 -_081316F0: .4byte gUnknown_846308C -_081316F4: - ldr r6, _08131750 @ =gUnknown_8463124 -_081316F6: - movs r4, 0 - movs r5, 0 -_081316FA: - ldrb r0, [r7, 0x1A] - lsls r1, r4, 2 - adds r1, r6 - ldr r2, [r1] - adds r4, 0x1 - lsls r1, r4, 4 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x8 - bl AddTextPrinterParameterized - lsls r4, 24 - lsrs r4, 24 - cmp r4, 0x3 - bls _081316FA - ldrb r0, [r7, 0x1A] - movs r1, 0x10 - str r1, [sp] - movs r1, 0x5 - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x1 - bl sub_810F7D8 - ldrb r0, [r7, 0x1A] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131750: .4byte gUnknown_8463124 - thumb_func_end sub_8131660 - - thumb_func_start sub_8131754 -sub_8131754: @ 8131754 - push {r4,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - cmp r0, 0 - bne _081317A0 - ldr r0, _08131770 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08131778 - ldr r4, _08131774 @ =gUnknown_846308C - b _0813177A - .align 2, 0 -_08131770: .4byte gSaveBlock2Ptr -_08131774: .4byte gUnknown_846308C -_08131778: - ldr r4, _08131798 @ =gUnknown_84630D8 -_0813177A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x13 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 14 - adds r0, r4 - ldr r3, [r0] - ldr r0, _0813179C @ =gSaveBlock2Ptr - ldr r4, [r0] - b _081317B0 - .align 2, 0 -_08131798: .4byte gUnknown_84630D8 -_0813179C: .4byte gSaveBlock2Ptr -_081317A0: - ldr r1, _081317EC @ =gUnknown_8463124 - lsls r0, r2, 2 - adds r0, r1 - ldr r3, [r0] - ldr r0, _081317F0 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _081317F4 @ =0x00003a4c - adds r4, r0, r1 -_081317B0: - movs r2, 0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _081317D2 -_081317B8: - adds r1, r4, r2 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x6 - bhi _081317D2 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081317B8 -_081317D2: - cmp r2, 0x7 - bhi _081317E6 - movs r1, 0xFF -_081317D8: - adds r0, r4, r2 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _081317D8 -_081317E6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081317EC: .4byte gUnknown_8463124 -_081317F0: .4byte gSaveBlock1Ptr -_081317F4: .4byte 0x00003a4c - thumb_func_end sub_8131754 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/option_menu.s b/asm/option_menu.s index 7ee737053..bf626caba 100644 --- a/asm/option_menu.s +++ b/asm/option_menu.s @@ -93,7 +93,7 @@ _080883FA: cmp r3, 0x5 bls _080883E6 movs r0, 0xD - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r0, _0808842C @ =sub_8088454 bl SetMainCallback2 pop {r4-r6} @@ -409,7 +409,7 @@ sub_8088680: @ 8088680 movs r1, 0 adds r2, r4, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x2 bl PutWindowTilemap movs r0, 0x2 @@ -431,7 +431,7 @@ sub_80886D4: @ 80886D4 bl ResetPaletteFade bl FreeAllSpritePalettes bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop pop {r0} bx r0 thumb_func_end sub_80886D4 @@ -906,7 +906,7 @@ _08088A72: movs r1, 0x2 mov r2, r8 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 b _08088ADE .align 2, 0 _08088A94: .4byte gUnknown_83CC354 @@ -940,7 +940,7 @@ _08088A9C: movs r1, 0x2 mov r2, r8 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 _08088ADE: movs r0, 0x1 bl PutWindowTilemap @@ -967,7 +967,7 @@ sub_8088B00: @ 8088B00 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r1, _08088BBC @ =gUnknown_3005020 + ldr r1, _08088BBC @ =gFieldCallback ldr r0, _08088BC0 @ =sub_807DF64 str r0, [r1] ldr r0, _08088BC4 @ =gMain @@ -1050,7 +1050,7 @@ sub_8088B00: @ 8088B00 pop {r0} bx r0 .align 2, 0 -_08088BBC: .4byte gUnknown_3005020 +_08088BBC: .4byte gFieldCallback _08088BC0: .4byte sub_807DF64 _08088BC4: .4byte gMain _08088BC8: .4byte gSaveBlock2Ptr diff --git a/asm/overworld.s b/asm/overworld.s index 2b3ca139d..ee0e8aa6d 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -72,7 +72,7 @@ sub_8054C48: @ 8054C48 bl sub_8054C04 adds r4, r0, 0 ldr r5, _08054C6C @ =gStringVar1 - bl sub_80CBF04 + bl CountDigits adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -118,7 +118,7 @@ _08054C9C: .4byte gUnknown_826D29E thumb_func_start sub_8054CA0 sub_8054CA0: @ 8054CA0 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -154,10 +154,10 @@ _08054D00: .4byte 0x00000808 _08054D04: .4byte 0x0000404d thumb_func_end sub_8054CA0 - thumb_func_start sub_8054D08 -sub_8054D08: @ 8054D08 + thumb_func_start Overworld_ResetStateAfterTeleport +Overworld_ResetStateAfterTeleport: @ 8054D08 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -191,12 +191,12 @@ _08054D60: .4byte 0x00000805 _08054D64: .4byte 0x00000806 _08054D68: .4byte 0x00000808 _08054D6C: .4byte 0x0000404d - thumb_func_end sub_8054D08 + thumb_func_end Overworld_ResetStateAfterTeleport thumb_func_start sub_8054D70 sub_8054D70: @ 8054D70 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -235,7 +235,7 @@ _08054DD4: .4byte 0x0000404d thumb_func_start sub_8054DD8 sub_8054DD8: @ 8054DD8 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -722,7 +722,7 @@ get_mapdata_header: @ 8055170 .align 2, 0 _08055180: .4byte gSaveBlock1Ptr _08055184: - ldr r0, _08055194 @ =gUnknown_834EB8C + ldr r0, _08055194 @ =gMapLayouts subs r1, 0x1 lsls r1, 2 adds r1, r0 @@ -731,7 +731,7 @@ _0805518E: pop {r1} bx r1 .align 2, 0 -_08055194: .4byte gUnknown_834EB8C +_08055194: .4byte gMapLayouts thumb_func_end get_mapdata_header thumb_func_start warp_shift @@ -825,7 +825,7 @@ _08055232: get_mapheader_by_bank_and_number: @ 8055238 lsls r0, 16 lsls r1, 16 - ldr r2, _0805524C @ =gUnknown_83526A8 + ldr r2, _0805524C @ =gMapGroups lsrs r0, 14 adds r0, r2 ldr r0, [r0] @@ -834,7 +834,7 @@ get_mapheader_by_bank_and_number: @ 8055238 ldr r0, [r1] bx lr .align 2, 0 -_0805524C: .4byte gUnknown_83526A8 +_0805524C: .4byte gMapGroups thumb_func_end get_mapheader_by_bank_and_number thumb_func_start warp1_get_mapheader @@ -1084,8 +1084,8 @@ saved_warp2_set: @ 80553E8 _08055418: .4byte gSaveBlock1Ptr thumb_func_end saved_warp2_set - thumb_func_start saved_warp2_set_2 -saved_warp2_set_2: @ 805541C + thumb_func_start SetDynamicWarpWithCoords +SetDynamicWarpWithCoords: @ 805541C push {r4,r5,lr} sub sp, 0x8 ldr r4, [sp, 0x14] @@ -1112,7 +1112,7 @@ saved_warp2_set_2: @ 805541C bx r0 .align 2, 0 _08055450: .4byte gSaveBlock1Ptr - thumb_func_end saved_warp2_set_2 + thumb_func_end SetDynamicWarpWithCoords thumb_func_start copy_saved_warp2_bank_and_enter_x_to_warp1 copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8055454 @@ -1178,15 +1178,15 @@ _080554B8: .4byte gSaveBlock1Ptr sub_80554BC: @ 80554BC push {lr} ldr r0, _080554C8 @ =gUnknown_2031DBC - bl sub_80BFCD0 + bl SetBlackoutRespawnWarpAndHealerNpc pop {r0} bx r0 .align 2, 0 _080554C8: .4byte gUnknown_2031DBC thumb_func_end sub_80554BC - thumb_func_start sub_80554CC -sub_80554CC: @ 80554CC + thumb_func_start SetLastHealLocationWarp +SetLastHealLocationWarp: @ 80554CC push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 @@ -1218,7 +1218,7 @@ _08055500: bx r0 .align 2, 0 _08055508: .4byte gSaveBlock1Ptr - thumb_func_end sub_80554CC + thumb_func_end SetLastHealLocationWarp thumb_func_start sub_805550C sub_805550C: @ 805550C @@ -1281,7 +1281,7 @@ sub_805550C: @ 805550C lsls r4, 24 asrs r4, 24 str r4, [sp] - bl sub_80555A0 + bl SetEscapeWarp _08055590: add sp, 0x4 pop {r4-r7} @@ -1292,8 +1292,8 @@ _08055598: .4byte gUnknown_2031DBC _0805559C: .4byte gSaveBlock1Ptr thumb_func_end sub_805550C - thumb_func_start sub_80555A0 -sub_80555A0: @ 80555A0 + thumb_func_start SetEscapeWarp +SetEscapeWarp: @ 80555A0 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 @@ -1325,7 +1325,7 @@ sub_80555A0: @ 80555A0 bx r0 .align 2, 0 _080555DC: .4byte gSaveBlock1Ptr - thumb_func_end sub_80555A0 + thumb_func_end SetEscapeWarp thumb_func_start sub_80555E0 sub_80555E0: @ 80555E0 @@ -1342,8 +1342,8 @@ _080555F0: .4byte gUnknown_2031DBC _080555F4: .4byte gSaveBlock1Ptr thumb_func_end sub_80555E0 - thumb_func_start sub_80555F8 -sub_80555F8: @ 80555F8 + thumb_func_start SetFixedDiveWarp +SetFixedDiveWarp: @ 80555F8 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 @@ -1373,7 +1373,7 @@ sub_80555F8: @ 80555F8 bx r0 .align 2, 0 _08055630: .4byte gUnknown_2031DC4 - thumb_func_end sub_80555F8 + thumb_func_end SetFixedDiveWarp thumb_func_start warp1_set_to_warp2 warp1_set_to_warp2: @ 8055634 @@ -1389,8 +1389,8 @@ _08055644: .4byte gUnknown_2031DBC _08055648: .4byte gUnknown_2031DC4 thumb_func_end warp1_set_to_warp2 - thumb_func_start sub_805564C -sub_805564C: @ 805564C + thumb_func_start SetFixedHoleWarp +SetFixedHoleWarp: @ 805564C push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 @@ -1420,10 +1420,10 @@ sub_805564C: @ 805564C bx r0 .align 2, 0 _08055684: .4byte gUnknown_2031DCC - thumb_func_end sub_805564C + thumb_func_end SetFixedHoleWarp - thumb_func_start sub_8055688 -sub_8055688: @ 8055688 + thumb_func_start SetWarpDestinationToFixedHoleWarp +SetWarpDestinationToFixedHoleWarp: @ 8055688 push {r4-r6,lr} sub sp, 0x4 lsls r0, 16 @@ -1464,7 +1464,7 @@ _080556D6: pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_8055688 + thumb_func_end SetWarpDestinationToFixedHoleWarp thumb_func_start warp1_set_to_sav1w warp1_set_to_sav1w: @ 80556E0 @@ -1712,7 +1712,7 @@ sub_8055864: @ 8055864 adds r0, r5, 0 adds r1, r4, 0 bl sub_810C578 - bl sub_807B140 + bl SetSav1WeatherFromCurrMapHeader bl sub_805610C bl sub_8055CB8 bl sav1_reset_battle_music_maybe @@ -1723,7 +1723,7 @@ sub_8055864: @ 8055864 ldr r0, [r4] bl copy_map_tileset2_to_vram_2 ldr r0, [r4] - bl sub_8059AA0 + bl apply_map_tileset2_palette movs r4, 0x7 _080558D4: lsls r0, r4, 24 @@ -1784,7 +1784,7 @@ sub_8055920: @ 8055920 lsls r1, 16 lsrs r1, 16 bl sub_810C578 - bl sub_807B140 + bl SetSav1WeatherFromCurrMapHeader bl sub_805610C cmp r4, 0 beq _08055974 @@ -1817,7 +1817,7 @@ sub_80559A8: @ 80559A8 ldrb r0, [r0, 0x17] bl is_light_level_1_2_3_5_or_6 bl TrySetMapSaveWarpStatus - bl sub_807B140 + bl SetSav1WeatherFromCurrMapHeader bl sub_805610C bl sub_8055CB8 bl sub_8110920 @@ -1830,8 +1830,8 @@ sub_80559A8: @ 80559A8 _080559E0: .4byte gMapHeader thumb_func_end sub_80559A8 - thumb_func_start sub_80559E4 -sub_80559E4: @ 80559E4 + thumb_func_start ResetInitialPlayerAvatarState +ResetInitialPlayerAvatarState: @ 80559E4 ldr r0, _080559F4 @ =gUnknown_2031DD4 movs r2, 0 movs r1, 0x1 @@ -1841,7 +1841,7 @@ sub_80559E4: @ 80559E4 bx lr .align 2, 0 _080559F4: .4byte gUnknown_2031DD4 - thumb_func_end sub_80559E4 + thumb_func_end ResetInitialPlayerAvatarState thumb_func_start sub_80559F8 sub_80559F8: @ 80559F8 @@ -2295,8 +2295,8 @@ sav1_get_flash_used_on_map: @ 8055D30 _08055D3C: .4byte gSaveBlock1Ptr thumb_func_end sav1_get_flash_used_on_map - thumb_func_start sub_8055D40 -sub_8055D40: @ 8055D40 + thumb_func_start SetCurrentMapLayout +SetCurrentMapLayout: @ 8055D40 push {lr} ldr r1, _08055D54 @ =gSaveBlock1Ptr ldr r1, [r1] @@ -2309,7 +2309,7 @@ sub_8055D40: @ 8055D40 .align 2, 0 _08055D54: .4byte gSaveBlock1Ptr _08055D58: .4byte gMapHeader - thumb_func_end sub_8055D40 + thumb_func_end SetCurrentMapLayout thumb_func_start sub_8055D5C sub_8055D5C: @ 8055D5C @@ -2411,7 +2411,7 @@ _08055DDC: bgt _08055E24 ldr r0, _08055E1C @ =gMPlayInfo_BGM ldr r1, [r0] - ldr r0, _08055E20 @ =gUnknown_86E6B0C + ldr r0, _08055E20 @ =gSong_86E6B0C cmp r1, r0 bne _08055E24 movs r0, 0x4 @@ -2421,7 +2421,7 @@ _08055DDC: _08055E14: .4byte gSaveBlock1Ptr _08055E18: .4byte 0x00004f01 _08055E1C: .4byte gMPlayInfo_BGM -_08055E20: .4byte gUnknown_86E6B0C +_08055E20: .4byte gSong_86E6B0C _08055E24: bl sub_8055D8C lsls r0, 16 @@ -2441,7 +2441,7 @@ _08055E40: lsls r0, 24 cmp r0, 0 beq _08055E5A - ldr r5, _08055E74 @ =0x00000131 + ldr r5, _08055E74 @ =0x00000131 @ BGM_FRLG_SURF adds r0, r5, 0 bl sub_8056124 cmp r0, 0 @@ -2464,15 +2464,15 @@ _08055E6C: _08055E74: .4byte 0x00000131 thumb_func_end sub_8055DC4 - thumb_func_start sub_8055E78 -sub_8055E78: @ 8055E78 + thumb_func_start Overworld_SetSavedMusic +Overworld_SetSavedMusic: @ 8055E78 ldr r1, _08055E80 @ =gSaveBlock1Ptr ldr r1, [r1] strh r0, [r1, 0x2C] bx lr .align 2, 0 _08055E80: .4byte gSaveBlock1Ptr - thumb_func_end sub_8055E78 + thumb_func_end Overworld_SetSavedMusic thumb_func_start sav1_reset_battle_music_maybe sav1_reset_battle_music_maybe: @ 8055E84 @@ -2511,7 +2511,7 @@ _08055EA8: bl GetCurrentMapMusic lsls r0, 16 lsrs r6, r0, 16 - ldr r5, _08055F08 @ =0x00000131 + ldr r5, _08055F08 @ =0x00000131 @ BGM_FRLG_SURF cmp r6, r5 beq _08055F14 movs r0, 0x8 @@ -2573,8 +2573,8 @@ _08055F42: bx r0 thumb_func_end Overworld_ChangeMusicToDefault - thumb_func_start sub_8055F48 -sub_8055F48: @ 8055F48 + thumb_func_start Overworld_ChangeMusicTo +Overworld_ChangeMusicTo: @ 8055F48 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -2590,7 +2590,7 @@ _08055F62: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8055F48 + thumb_func_end Overworld_ChangeMusicTo thumb_func_start GetMapMusicFadeoutSpeed GetMapMusicFadeoutSpeed: @ 8055F68 @@ -2958,8 +2958,8 @@ _080561F8: bx r1 thumb_func_end is_light_level_1_2_3_5_or_6 - thumb_func_start is_light_level_1_2_3_or_6 -is_light_level_1_2_3_or_6: @ 80561FC + thumb_func_start Overworld_MapTypeAllowsTeleportAndFly +Overworld_MapTypeAllowsTeleportAndFly: @ 80561FC push {lr} lsls r0, 24 lsrs r0, 24 @@ -2979,7 +2979,7 @@ _08056216: _08056218: pop {r1} bx r1 - thumb_func_end is_light_level_1_2_3_or_6 + thumb_func_end Overworld_MapTypeAllowsTeleportAndFly thumb_func_start is_light_level_8_or_9 is_light_level_8_or_9: @ 805621C @@ -3022,8 +3022,8 @@ sav1_saved_warp2_map_get_name: @ 8056238 _0805625C: .4byte gSaveBlock1Ptr thumb_func_end sav1_saved_warp2_map_get_name - thumb_func_start sav1_map_get_name -sav1_map_get_name: @ 8056260 + thumb_func_start GetCurrentRegionMapSectionId +GetCurrentRegionMapSectionId: @ 8056260 push {lr} ldr r0, _08056284 @ =gSaveBlock1Ptr ldr r1, [r0] @@ -3042,7 +3042,7 @@ sav1_map_get_name: @ 8056260 bx r1 .align 2, 0 _08056284: .4byte gSaveBlock1Ptr - thumb_func_end sav1_map_get_name + thumb_func_end GetCurrentRegionMapSectionId thumb_func_start sav1_map_get_battletype sav1_map_get_battletype: @ 8056288 @@ -3117,8 +3117,8 @@ sub_80562B0: @ 80562B0 ldr r1, [r5] movs r0, 0x3 bl SetBgTilemapBuffer - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 bl sub_8069348 pop {r3} mov r8, r3 @@ -3181,8 +3181,8 @@ sub_8056354: @ 8056354 ldr r1, [r5] movs r0, 0x3 bl SetBgTilemapBuffer - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 bl sub_8069348 pop {r3} mov r8, r3 @@ -3196,8 +3196,8 @@ _080563E8: .4byte gUnknown_3005014 _080563EC: .4byte gUnknown_300501C thumb_func_end sub_8056354 - thumb_func_start sub_80563F0 -sub_80563F0: @ 80563F0 + thumb_func_start CleanupOverworldWindowsAndTilemaps +CleanupOverworldWindowsAndTilemaps: @ 80563F0 push {lr} bl sub_80F6C8C ldr r0, _08056414 @ =gUnknown_300501C @@ -3215,7 +3215,7 @@ sub_80563F0: @ 80563F0 _08056414: .4byte gUnknown_300501C _08056418: .4byte gUnknown_3005014 _0805641C: .4byte gUnknown_3005018 - thumb_func_end sub_80563F0 + thumb_func_end CleanupOverworldWindowsAndTilemaps thumb_func_start sub_8056420 sub_8056420: @ 8056420 @@ -3225,8 +3225,8 @@ sub_8056420: @ 8056420 bx r0 thumb_func_end sub_8056420 - thumb_func_start sub_805642C -sub_805642C: @ 805642C + thumb_func_start is_c1_link_related_active +is_c1_link_related_active: @ 805642C push {lr} ldr r0, _0805643C @ =gMain ldr r1, [r0] @@ -3243,7 +3243,7 @@ _08056444: _08056446: pop {r1} bx r1 - thumb_func_end sub_805642C + thumb_func_end is_c1_link_related_active thumb_func_start sub_805644C sub_805644C: @ 805644C @@ -3442,7 +3442,7 @@ _080565E8: .4byte gMain thumb_func_start map_post_load_hook_exec map_post_load_hook_exec: @ 80565EC push {r4,lr} - ldr r4, _08056604 @ =gUnknown_3005024 + ldr r4, _08056604 @ =gFieldCallback2 ldr r0, [r4] cmp r0, 0 beq _08056618 @@ -3453,28 +3453,28 @@ map_post_load_hook_exec: @ 80565EC movs r0, 0 b _08056638 .align 2, 0 -_08056604: .4byte gUnknown_3005024 +_08056604: .4byte gFieldCallback2 _08056608: movs r1, 0 str r1, [r4] - ldr r0, _08056614 @ =gUnknown_3005020 + ldr r0, _08056614 @ =gFieldCallback str r1, [r0] b _08056636 .align 2, 0 -_08056614: .4byte gUnknown_3005020 +_08056614: .4byte gFieldCallback _08056618: - ldr r0, _08056628 @ =gUnknown_3005020 + ldr r0, _08056628 @ =gFieldCallback ldr r0, [r0] cmp r0, 0 beq _0805662C bl _call_via_r0 b _08056630 .align 2, 0 -_08056628: .4byte gUnknown_3005020 +_08056628: .4byte gFieldCallback _0805662C: bl sub_807DF64 _08056630: - ldr r1, _08056640 @ =gUnknown_3005020 + ldr r1, _08056640 @ =gFieldCallback movs r0, 0 str r0, [r1] _08056636: @@ -3484,7 +3484,7 @@ _08056638: pop {r1} bx r1 .align 2, 0 -_08056640: .4byte gUnknown_3005020 +_08056640: .4byte gFieldCallback thumb_func_end map_post_load_hook_exec thumb_func_start CB2_NewGame @@ -3494,14 +3494,14 @@ CB2_NewGame: @ 8056644 bl StopMapMusic bl sub_8056420 bl sub_8054A60 - bl sub_80559E4 + bl ResetInitialPlayerAvatarState bl PlayTimeCounter_Start bl ScriptContext1_Init bl ScriptContext2_Disable - ldr r1, _0805668C @ =gUnknown_3005020 + ldr r1, _0805668C @ =gFieldCallback ldr r0, _08056690 @ =sub_807DF7C str r0, [r1] - ldr r1, _08056694 @ =gUnknown_3005024 + ldr r1, _08056694 @ =gFieldCallback2 movs r0, 0 str r0, [r1] ldr r0, _08056698 @ =gMain + 0x438 @@ -3514,9 +3514,9 @@ CB2_NewGame: @ 8056644 pop {r0} bx r0 .align 2, 0 -_0805668C: .4byte gUnknown_3005020 +_0805668C: .4byte gFieldCallback _08056690: .4byte sub_807DF7C -_08056694: .4byte gUnknown_3005024 +_08056694: .4byte gFieldCallback2 _08056698: .4byte gMain + 0x438 _0805669C: .4byte sub_8056534 _080566A0: .4byte sub_80565B4 @@ -3545,7 +3545,7 @@ c2_whiteout: @ 80566A4 bl sub_80559F8 bl ScriptContext1_Init bl ScriptContext2_Disable - ldr r1, _0805670C @ =gUnknown_3005020 + ldr r1, _0805670C @ =gFieldCallback ldr r0, _08056710 @ =sub_807F5F0 str r0, [r1] mov r1, sp @@ -3565,7 +3565,7 @@ _08056702: bx r0 .align 2, 0 _08056708: .4byte gMain -_0805670C: .4byte gUnknown_3005020 +_0805670C: .4byte gFieldCallback _08056710: .4byte sub_807F5F0 _08056714: .4byte sub_8056534 _08056718: .4byte sub_80565B4 @@ -3624,7 +3624,7 @@ _08056784: .4byte sub_80565B4 sub_8056788: @ 8056788 push {lr} bl sub_80569BC - ldr r0, _080567A0 @ =gUnknown_3005020 + ldr r0, _080567A0 @ =gFieldCallback ldr r1, _080567A4 @ =sub_807DE58 str r1, [r0] ldr r0, _080567A8 @ =c2_80567AC @@ -3632,7 +3632,7 @@ sub_8056788: @ 8056788 pop {r0} bx r0 .align 2, 0 -_080567A0: .4byte gUnknown_3005020 +_080567A0: .4byte gFieldCallback _080567A4: .4byte sub_807DE58 _080567A8: .4byte c2_80567AC thumb_func_end sub_8056788 @@ -3659,10 +3659,10 @@ _080567D4: .4byte c1_link_related _080567D8: .4byte sub_80565B4 thumb_func_end c2_80567AC - thumb_func_start c2_exit_to_overworld_2_switch -c2_exit_to_overworld_2_switch: @ 80567DC + thumb_func_start CB2_ReturnToField +CB2_ReturnToField: @ 80567DC push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _080567F4 ldr r0, _080567F0 @ =c2_exit_to_overworld_2_link @@ -3679,7 +3679,7 @@ _080567FE: bx r0 .align 2, 0 _08056804: .4byte c2_exit_to_overworld_2_local - thumb_func_end c2_exit_to_overworld_2_switch + thumb_func_end CB2_ReturnToField thumb_func_start c2_exit_to_overworld_2_local c2_exit_to_overworld_2_local: @ 8056808 @@ -3731,26 +3731,26 @@ c2_8056854: @ 8056854 ldrb r0, [r0] cmp r0, 0 beq _08056888 - ldr r1, _08056880 @ =gUnknown_3005020 + ldr r1, _08056880 @ =gFieldCallback ldr r0, _08056884 @ =sub_807DE58 b _0805688C .align 2, 0 _08056878: .4byte c1_link_related _0805687C: .4byte gWirelessCommType -_08056880: .4byte gUnknown_3005020 +_08056880: .4byte gFieldCallback _08056884: .4byte sub_807DE58 _08056888: - ldr r1, _080568A0 @ =gUnknown_3005020 + ldr r1, _080568A0 @ =gFieldCallback ldr r0, _080568A4 @ =sub_807DDD0 _0805688C: str r0, [r1] bl ScriptContext1_Init bl ScriptContext2_Disable - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 -_080568A0: .4byte gUnknown_3005020 +_080568A0: .4byte gFieldCallback _080568A4: .4byte sub_807DDD0 thumb_func_end c2_8056854 @@ -3758,14 +3758,14 @@ _080568A4: .4byte sub_807DDD0 sub_80568A8: @ 80568A8 push {lr} bl sub_80569BC - ldr r1, _080568BC @ =gUnknown_3005024 + ldr r1, _080568BC @ =gFieldCallback2 ldr r0, _080568C0 @ =sub_807E3BC str r0, [r1] - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 -_080568BC: .4byte gUnknown_3005024 +_080568BC: .4byte gFieldCallback2 _080568C0: .4byte sub_807E3BC thumb_func_end sub_80568A8 @@ -3773,14 +3773,14 @@ _080568C0: .4byte sub_807E3BC sub_80568C4: @ 80568C4 push {lr} bl sub_80569BC - ldr r1, _080568D8 @ =gUnknown_3005020 + ldr r1, _080568D8 @ =gFieldCallback ldr r0, _080568DC @ =sub_807DD44 str r0, [r1] - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 -_080568D8: .4byte gUnknown_3005020 +_080568D8: .4byte gFieldCallback _080568DC: .4byte sub_807DD44 thumb_func_end sub_80568C4 @@ -3788,29 +3788,29 @@ _080568DC: .4byte sub_807DD44 c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80568E0 push {lr} bl sub_80569BC - ldr r1, _080568F4 @ =gUnknown_3005020 - ldr r0, _080568F8 @ =sub_807DD24 + ldr r1, _080568F4 @ =gFieldCallback + ldr r0, _080568F8 @ =FieldCallback_ReturnToEventScript2 str r0, [r1] - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 -_080568F4: .4byte gUnknown_3005020 -_080568F8: .4byte sub_807DD24 +_080568F4: .4byte gFieldCallback +_080568F8: .4byte FieldCallback_ReturnToEventScript2 thumb_func_end c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_start sub_80568FC sub_80568FC: @ 80568FC push {lr} bl sub_80569BC - ldr r1, _08056910 @ =gUnknown_3005020 + ldr r1, _08056910 @ =gFieldCallback ldr r0, _08056914 @ =sub_807DF7C str r0, [r1] - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 -_08056910: .4byte gUnknown_3005020 +_08056910: .4byte gFieldCallback _08056914: .4byte sub_807DF7C thumb_func_end sub_80568FC @@ -3847,7 +3847,7 @@ sub_8056938: @ 8056938 bl PlayTimeCounter_Start bl ScriptContext1_Init bl ScriptContext2_Disable - ldr r1, _08056990 @ =gUnknown_3005024 + ldr r1, _08056990 @ =gFieldCallback2 movs r0, 0 str r0, [r1] ldr r1, _08056994 @ =gUnknown_2031DE0 @@ -3863,21 +3863,21 @@ sub_8056938: @ 8056938 bl SetMainCallback2 b _080569AC .align 2, 0 -_08056990: .4byte gUnknown_3005024 +_08056990: .4byte gFieldCallback2 _08056994: .4byte gUnknown_2031DE0 _08056998: .4byte sub_805671C _0805699C: - ldr r0, _080569B0 @ =gUnknown_3005020 + ldr r0, _080569B0 @ =gFieldCallback ldr r1, _080569B4 @ =sub_8056918 str r1, [r0] ldr r0, _080569B8 @ =sub_8056534 bl sub_80565E0 - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField _080569AC: pop {r0} bx r0 .align 2, 0 -_080569B0: .4byte gUnknown_3005020 +_080569B0: .4byte gFieldCallback _080569B4: .4byte sub_8056918 _080569B8: .4byte sub_8056534 thumb_func_end sub_8056938 @@ -3890,7 +3890,7 @@ sub_80569BC: @ 80569BC lsrs r0, 24 cmp r0, 0x1 bne _080569CE - bl sub_80098B8 + bl CloseLink _080569CE: ldr r0, _080569E4 @ =gWirelessCommType ldrb r0, [r0] @@ -3933,7 +3933,7 @@ VBlankCB_Field: @ 8056A14 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer bl FieldUpdateBgTilemapScroll bl TransferPlttBuffer bl TransferTilesetAnimsBuffer @@ -3954,7 +3954,7 @@ sub_8056A34: @ 8056A34 ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams _08056A52: pop {r0} bx r0 @@ -4024,14 +4024,14 @@ _08056AEE: _08056AF4: ldr r0, _08056B00 @ =gMapHeader ldr r0, [r0] - bl sub_8059A54 + bl copy_map_tileset1_to_vram b _08056B62 .align 2, 0 _08056B00: .4byte gMapHeader _08056B04: ldr r0, _08056B10 @ =gMapHeader ldr r0, [r0] - bl sub_8059A68 + bl copy_map_tileset2_to_vram b _08056B62 .align 2, 0 _08056B10: .4byte gMapHeader @@ -4166,14 +4166,14 @@ _08056C2A: _08056C30: ldr r0, _08056C3C @ =gMapHeader ldr r0, [r0] - bl sub_8059A54 + bl copy_map_tileset1_to_vram b _08056CCA .align 2, 0 _08056C3C: .4byte gMapHeader _08056C40: ldr r0, _08056C4C @ =gMapHeader ldr r0, [r0] - bl sub_8059A68 + bl copy_map_tileset2_to_vram b _08056CCA .align 2, 0 _08056C4C: .4byte gMapHeader @@ -4355,14 +4355,14 @@ _08056DCA: _08056DD0: ldr r0, _08056DDC @ =gMapHeader ldr r0, [r0] - bl sub_8059A54 + bl copy_map_tileset1_to_vram b _08056E3E .align 2, 0 _08056DDC: .4byte gMapHeader _08056DE0: ldr r0, _08056DEC @ =gMapHeader ldr r0, [r0] - bl sub_8059A68 + bl copy_map_tileset2_to_vram b _08056E3E .align 2, 0 _08056DEC: .4byte gMapHeader @@ -4451,7 +4451,7 @@ sub_8056E80: @ 8056E80 movs r0, 0 movs r1, 0 bl SetGpuReg - bl remove_some_task + bl ScanlineEffect_Stop ldr r2, _08056EF8 @ =0x05000002 mov r1, sp movs r0, 0 @@ -4630,8 +4630,8 @@ sub_8057024: @ 8057024 bl ResetTasks bl ResetSpriteData bl ResetPaletteFade - bl dp12_8087EA4 - bl dp13_810BB8C + bl ScanlineEffect_Clear + bl ResetAllPicSprites bl ResetCameraUpdateInfo bl InstallCameraPanAheadCallback cmp r4, 0 @@ -4690,7 +4690,7 @@ mli4_mapscripts_and_other: @ 805709C adds r4, 0x2 mov r0, sp adds r1, r4, 0 - bl sav1_camera_get_focus_coords + bl GetCameraFocusCoords bl sub_8055A6C adds r5, r0, 0 mov r0, sp @@ -4705,7 +4705,7 @@ mli4_mapscripts_and_other: @ 805709C bl InitPlayerAvatar ldrb r0, [r5] bl SetPlayerAvatarTransitionFlags - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0 movs r1, 0 bl sub_805EC30 @@ -4792,7 +4792,7 @@ sub_8057178: @ 8057178 adds r4, 0x2 mov r0, sp adds r1, r4, 0 - bl sav1_camera_get_focus_coords + bl GetCameraFocusCoords mov r2, sp ldr r0, _080571A4 @ =gUnknown_300502C ldrb r1, [r0] @@ -4801,7 +4801,7 @@ sub_8057178: @ 8057178 lsls r0, 16 lsrs r0, 16 ldrh r1, [r4] - bl sub_80597EC + bl SetCameraFocusCoords add sp, 0x4 pop {r4} pop {r0} @@ -4820,7 +4820,7 @@ sub_80571A8: @ 80571A8 adds r4, 0x2 mov r0, sp adds r1, r4, 0 - bl sav1_camera_get_focus_coords + bl GetCameraFocusCoords mov r3, sp mov r2, sp ldr r0, _08057224 @ =gUnknown_300502C @@ -5066,14 +5066,14 @@ _080573C2: _080573C8: ldr r0, _080573D4 @ =gMapHeader ldr r0, [r0] - bl sub_8059A54 + bl copy_map_tileset1_to_vram b _08057412 .align 2, 0 _080573D4: .4byte gMapHeader _080573D8: ldr r0, _080573E4 @ =gMapHeader ldr r0, [r0] - bl sub_8059A68 + bl copy_map_tileset2_to_vram b _08057412 .align 2, 0 _080573E4: .4byte gMapHeader @@ -5150,7 +5150,7 @@ _0805748C: .4byte sub_805671C _08057490: ldr r0, _080574A0 @ =sub_8056534 bl sub_80565E0 - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField _0805749A: pop {r0} bx r0 @@ -5314,7 +5314,7 @@ _08057560: bl ScriptContext2_Disable movs r0, 0 bl sub_80565E0 - ldr r1, _08057614 @ =gUnknown_3005024 + ldr r1, _08057614 @ =gFieldCallback2 ldr r0, _08057618 @ =sub_80574EC str r0, [r1] ldr r0, _0805761C @ =gMain @@ -5334,7 +5334,7 @@ _08057604: .4byte 0x0000ffff _08057608: .4byte gUnknown_2031DBC _0805760C: .4byte gUnknown_2031DE8 _08057610: .4byte gPaletteFade -_08057614: .4byte gUnknown_3005024 +_08057614: .4byte gFieldCallback2 _08057618: .4byte sub_80574EC _0805761C: .4byte gMain _08057620: @@ -5395,8 +5395,8 @@ _08057690: bl sub_8055920 b _0805772A _0805769C: - bl dp12_8087EA4 - bl dp13_810BB8C + bl ScanlineEffect_Clear + bl ResetAllPicSprites bl ResetCameraUpdateInfo bl InstallCameraPanAheadCallback bl FieldEffectActiveListClear @@ -5415,14 +5415,14 @@ _080576CC: _080576D2: ldr r0, _080576DC @ =gMapHeader ldr r0, [r0] - bl sub_8059A54 + bl copy_map_tileset1_to_vram b _0805772A .align 2, 0 _080576DC: .4byte gMapHeader _080576E0: ldr r0, _080576EC @ =gMapHeader ldr r0, [r0] - bl sub_8059A68 + bl copy_map_tileset2_to_vram b _0805772A .align 2, 0 _080576EC: .4byte gMapHeader @@ -5619,7 +5619,7 @@ sub_8057854: @ 8057854 ands r0, r1 cmp r0, 0 bne _08057876 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _08057880 @ =sub_805671C bl SetMainCallback2 adds r0, r4, 0 @@ -6144,7 +6144,7 @@ _08057C72: bl sub_805833C cmp r0, 0x1 bls _08057CA8 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _08057CA8 bl sub_800A00C @@ -6748,7 +6748,7 @@ _08058074: ldr r1, [r4, 0x8] str r0, [sp] str r1, [sp, 0x4] - ldr r3, _080580E4 @ =gUnknown_826D2D8 + ldr r3, _080580E4 @ =gDirectionToVectors ldrb r0, [r4, 0x3] lsls r0, 3 adds r0, r3 @@ -6801,7 +6801,7 @@ _080580E0: ldr r0, _080580F8 @ =gUnknown_81BB9A3 b _08058122 .align 2, 0 -_080580E4: .4byte gUnknown_826D2D8 +_080580E4: .4byte gDirectionToVectors _080580E8: .4byte 0xffff0000 _080580EC: .4byte 0x0000ffff _080580F0: .4byte 0xffffff00 @@ -6976,7 +6976,7 @@ _08058240: .4byte gUnknown_81BB9F0 thumb_func_start sub_8058244 sub_8058244: @ 8058244 push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _08058252 movs r0, 0 @@ -7009,7 +7009,7 @@ sub_8058274: @ 8058274 bl sub_800B248 cmp r0, 0x1 bls _080582D8 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _080582D8 bl sub_800A00C @@ -7062,7 +7062,7 @@ sub_80582E0: @ 80582E0 bl sub_805833C cmp r0, 0x1 bls _08058304 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _08058304 bl sub_800A00C @@ -7829,7 +7829,7 @@ _08058854: bls _08058810 asrs r0, r3, 16 asrs r1, r5, 16 - bl sub_8058DC4 + bl MapGridIsImpassableAt lsls r0, 24 lsrs r0, 24 _0805886A: @@ -7888,7 +7888,7 @@ _080588C6: movs r2, 0 str r2, [sp] movs r3, 0 - bl AddPseudoFieldObject + bl AddPseudoEventObject strb r0, [r4, 0x4] ldrb r1, [r4, 0x4] lsls r0, r1, 4 diff --git a/asm/party_menu.s b/asm/party_menu.s index c4980f984..2c3623442 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_811EA44 -sub_811EA44: @ 811EA44 + thumb_func_start PartyMenuInit +PartyMenuInit: @ 811EA44 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -181,7 +181,7 @@ _0811EB90: .4byte gUnknown_203B09C _0811EB94: .4byte gPlayerParty _0811EB98: .4byte gTextFlags _0811EB9C: .4byte sub_811EBD0 - thumb_func_end sub_811EA44 + thumb_func_end PartyMenuInit thumb_func_start sub_811EBA0 sub_811EBA0: @ 811EBA0 @@ -219,7 +219,7 @@ _0811EBD2: lsrs r0, 24 cmp r0, 0x1 beq _0811EBF6 - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -276,12 +276,12 @@ _0811EC24: .4byte _0811EDD0 .4byte _0811EDDE _0811EC80: - bl sub_80BF768 + bl VblankHblankHandlerSetZero bl sub_80BF77C bl clear_scheduled_bg_copies_to_vram b _0811EDFC _0811EC8E: - bl remove_some_task + bl ScanlineEffect_Stop b _0811EDFC _0811EC94: bl ResetPaletteFade @@ -299,7 +299,7 @@ _0811ECAE: bl FreeAllSpritePalettes b _0811EDFC _0811ECB4: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 beq _0811ECC0 @@ -420,7 +420,7 @@ _0811ED96: _0811EDA8: .4byte gUnknown_203B09C _0811EDAC: movs r0, 0x5 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _0811EDFC _0811EDB4: ldr r4, _0811EDCC @ =gUnknown_203B09C @@ -565,7 +565,7 @@ _0811EEC8: .4byte gUnknown_203B0B8 thumb_func_start sub_811EECC sub_811EECC: @ 811EECC push {r4,r5,lr} - bl sub_80BF7C8 + bl InitBgReg ldr r5, _0811EF34 @ =gUnknown_203B0BC movs r4, 0x80 lsls r4, 4 @@ -1274,7 +1274,7 @@ _0811F47C: cmp r0, 0x3 bne _0811F492 adds r0, r4, 0 - bl sub_80A1150 + bl GetItemCompatibilityRule lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1799,7 +1799,7 @@ _0811F884: movs r1, 0x17 movs r2, 0x10 movs r3, 0x7 - bl sub_80F6B08 + bl SetBgRectPal b _0811F8B0 _0811F89E: movs r0, 0x2 @@ -1809,7 +1809,7 @@ _0811F89E: movs r1, 0x17 movs r2, 0x10 movs r3, 0x7 - bl sub_80F6B08 + bl SetBgRectPal _0811F8B0: ldr r0, _0811F8BC @ =gUnknown_203B09C ldr r0, [r0] @@ -1857,7 +1857,7 @@ _0811F8F2: movs r2, 0x12 _0811F904: movs r3, 0x7 - bl sub_80F6B08 + bl SetBgRectPal b _0811F91E _0811F90C: movs r0, 0x2 @@ -1867,7 +1867,7 @@ _0811F90C: movs r1, 0x17 movs r2, 0x12 movs r3, 0x7 - bl sub_80F6B08 + bl SetBgRectPal _0811F91E: ldr r0, _0811F940 @ =gUnknown_203B09C ldr r0, [r0] @@ -2494,7 +2494,7 @@ _0811FDD6: .align 2, 0 _0811FDF0: .4byte gUnknown_203B0A0 _0811FDF4: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0811FE04 @@ -2585,7 +2585,7 @@ sub_811FEA4: @ 811FEA4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -3234,7 +3234,7 @@ sub_8120328: @ 8120328 bne _0812035E movs r0, 0x6 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x6 bl ClearWindowTilemap _0812035E: @@ -3302,10 +3302,10 @@ sub_81203B8: @ 81203B8 beq _08120410 movs r0, 0x6 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x6 bl ClearWindowTilemap - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3366,7 +3366,7 @@ _0812043C: _08120448: adds r1, r5, 0 adds r2, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent b _08120468 .align 2, 0 _08120454: .4byte gUnknown_203B0A0 @@ -3376,14 +3376,14 @@ _0812045C: movs r0, 0x6 adds r1, r5, 0 adds r2, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent _08120468: ldr r1, _0812049C @ =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r1, _081204A0 @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _081204A4 @ =gStringVar4 ldr r1, _081204A8 @ =gUnknown_8416C2A adds r0, r4, 0 @@ -3418,13 +3418,13 @@ sub_81204AC: @ 81204AC movs r0, 0x8 adds r1, r6, 0 adds r2, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent ldr r1, _081204FC @ =gStringVar1 adds r0, r6, 0 bl GetMonNickname ldr r1, _08120500 @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _08120504 @ =gStringVar4 ldr r1, _08120508 @ =gUnknown_8416CAC adds r0, r4, 0 @@ -3458,7 +3458,7 @@ sub_812050C: @ 812050C bl GetMonNickname ldr r1, _0812054C @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _08120550 @ =gStringVar4 ldr r1, _08120554 @ =gUnknown_8416C49 adds r0, r4, 0 @@ -3502,10 +3502,10 @@ sub_8120558: @ 8120558 bl sub_8124B60 ldr r1, _081205B8 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _081205BC @ =gStringVar2 adds r0, r5, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _081205C0 @ =gStringVar4 ldr r1, _081205C4 @ =gUnknown_8416CEA adds r0, r4, 0 @@ -3582,7 +3582,7 @@ sub_8120610: @ 8120610 b _0812064E _0812062C: movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 beq _0812064C @@ -3627,7 +3627,7 @@ _08120678: _0812067E: ldr r0, _08120698 @ =0x0000016d _08120680: - bl ItemId_GetItem + bl ItemId_GetName adds r1, r0, 0 _08120686: ldr r0, _0812069C @ =gStringVar1 @@ -4198,7 +4198,7 @@ sub_8120AC4: @ 8120AC4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4298,7 +4298,7 @@ _08120B86: lsls r0, 16 lsrs r1, r0, 16 adds r0, r5, 0 - bl pokemon_has_move + bl MonKnowsMove lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4709,11 +4709,11 @@ sub_8120E58: @ 8120E58 movs r0, 0 movs r1, 0x4F movs r2, 0xD0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0 movs r1, 0x58 movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldr r0, _08120E94 @ =gUnknown_203B0A0 ldrb r0, [r0, 0xB] cmp r0, 0x3 @@ -4878,13 +4878,13 @@ sub_8120FB0: @ 8120FB0 push {lr} bl FreeRestoreBattleData bl LoadPlayerParty - bl sub_815AC20 - ldr r0, _08120FC8 @ =sub_815ABFC + bl SetTeachyTvControllerModeToResume + ldr r0, _08120FC8 @ =CB2_ReturnToTeachyTV bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 -_08120FC8: .4byte sub_815ABFC +_08120FC8: .4byte CB2_ReturnToTeachyTV thumb_func_end sub_8120FB0 thumb_func_start sub_8120FCC @@ -5016,11 +5016,11 @@ _081210AC: movs r0, 0 movs r1, 0x4F movs r2, 0xD0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0 movs r1, 0x58 movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0x2 bl stdpal_get movs r1, 0xC0 @@ -5084,7 +5084,7 @@ _0812110E: adds r0, r4, 0 movs r1, 0 movs r3, 0x1 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 @@ -5141,7 +5141,7 @@ _08121194: movs r1, 0 adds r2, r5, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 b _08121224 .align 2, 0 _081211E0: .4byte gUnknown_845A108 @@ -5149,7 +5149,7 @@ _081211E4: .4byte gUnknown_203B0A0 _081211E8: .4byte gFameCheckerText_Cancel _081211EC: .4byte gUnknown_8459FFC _081211F0: - ldr r4, _08121240 @ =gUnknown_84161C8 + ldr r4, _08121240 @ =gOtherText_Exit movs r0, 0 adds r1, r4, 0 movs r2, 0 @@ -5172,7 +5172,7 @@ _081211F0: movs r1, 0 adds r2, r5, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _08121224: adds r0, r6, 0 bl PutWindowTilemap @@ -5187,7 +5187,7 @@ _08121238: pop {r0} bx r0 .align 2, 0 -_08121240: .4byte gUnknown_84161C8 +_08121240: .4byte gOtherText_Exit _08121244: .4byte gUnknown_8459FFC thumb_func_end sub_81210F8 @@ -5778,7 +5778,7 @@ sub_8121704: @ 8121704 str r1, [sp, 0x8] movs r1, 0 adds r2, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r4,r5} pop {r0} @@ -5909,7 +5909,7 @@ sub_8121808: @ 8121808 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _0812184C @ =gStringVar1 - ldr r1, _08121850 @ =gUnknown_8416223 + ldr r1, _08121850 @ =gText_Lv adds r0, r4, 0 bl StringCopy adds r0, r4, 0 @@ -5927,7 +5927,7 @@ sub_8121808: @ 8121808 .align 2, 0 _08121848: .4byte gStringVar2 _0812184C: .4byte gStringVar1 -_08121850: .4byte gUnknown_8416223 +_08121850: .4byte gText_Lv thumb_func_end sub_8121808 thumb_func_start sub_8121854 @@ -6486,7 +6486,7 @@ _08121CAA: ldr r1, [r1] str r1, [sp, 0x8] movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _08121CD0: add sp, 0xC pop {r3} @@ -6507,7 +6507,7 @@ sub_8121CE4: @ 8121CE4 cmp r0, 0xFF beq _08121D04 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl RemoveWindow movs r0, 0xFF @@ -6831,7 +6831,7 @@ _08121F3C: str r1, [sp, 0x10] movs r1, 0x2 mov r2, r9 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -6888,7 +6888,7 @@ sub_8121FC0: @ 8121FC0 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -6903,7 +6903,7 @@ sub_8121FC0: @ 8121FC0 movs r0, 0x6 movs r1, 0x2 adds r2, r4, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4} pop {r0} @@ -6926,7 +6926,7 @@ sub_812200C: @ 812200C movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0xC pop {r0} bx r0 @@ -6990,7 +6990,7 @@ sub_8122084: @ 8122084 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -7005,7 +7005,7 @@ sub_8122084: @ 8122084 adds r0, r4, 0 movs r1, 0x4 adds r2, r5, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4,r5} pop {r0} @@ -7026,7 +7026,7 @@ sub_81220D4: @ 81220D4 adds r0, r4, 0 movs r1, 0x4F movs r2, 0xE0 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x4F @@ -7054,7 +7054,7 @@ sub_8122110: @ 8122110 bl ClearWindowTilemap adds r0, r4, 0 movs r1, 0 - bl sub_810F260 + bl ClearMenuWindow_BorderThickness2 adds r0, r4, 0 bl RemoveWindow movs r0, 0x2 @@ -7121,7 +7121,7 @@ _0812217A: movs r1, 0x2 movs r2, 0x3 movs r3, 0x6 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldrb r0, [r4, 0xE] bl PutWindowTilemap movs r0, 0x2 @@ -8717,7 +8717,7 @@ sub_8122DBC: @ 8122DBC str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -9928,7 +9928,7 @@ _081237AE: str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit b _08123814 .align 2, 0 _081237BC: .4byte gUnknown_203B0D8 @@ -9943,7 +9943,7 @@ _081237CC: beq _081237F8 ldrh r0, [r6] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0x9 ldrsb r0, [r5, r0] mov r1, r8 @@ -9967,7 +9967,7 @@ _081237F8: str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit _08123814: add sp, 0xC pop {r3} @@ -10016,7 +10016,7 @@ sub_8123824: @ 8123824 bl sub_81205C8 adds r0, r4, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem ldr r1, _0812389C @ =gTasks lsls r0, r7, 2 adds r0, r7 @@ -10113,7 +10113,7 @@ sub_8123930: @ 8123930 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -10133,17 +10133,17 @@ _08123956: ldr r5, _08123998 @ =gSpecialVar_ItemId ldrh r0, [r5] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem ldr r6, _0812399C @ =gUnknown_203B0D8 ldrh r0, [r6] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _081239AC ldrh r0, [r5] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldrh r0, [r6] bl sub_8120658 ldr r0, _081239A0 @ =gStringVar4 @@ -10330,10 +10330,10 @@ sub_8123ACC: @ 8123ACC bl SetMonData ldrh r0, [r4] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem mov r0, r8 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldrb r0, [r6, 0x8] lsls r0, 28 lsrs r0, 28 @@ -10345,7 +10345,7 @@ sub_8123ACC: @ 8123ACC str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit b _08123B68 .align 2, 0 _08123B38: .4byte gUnknown_203B0A0 @@ -10366,7 +10366,7 @@ _08123B4C: str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit _08123B68: add sp, 0xC pop {r3} @@ -10675,7 +10675,7 @@ sub_8123DCC: @ 8123DCC str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -10752,7 +10752,7 @@ sub_8123E8C: @ 8123E8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -10871,7 +10871,7 @@ sub_8123F80: @ 8123F80 push {r7} lsls r0, 24 lsrs r5, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -10903,7 +10903,7 @@ _08123FAA: lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11627,7 +11627,7 @@ _081245D6: ldr r0, [r5] adds r0, 0xD bl sub_8121CE4 - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11790,7 +11790,7 @@ _08124754: .4byte gUnknown_203B0A0 _08124758: .4byte sub_80C4EF8 _0812475C: ldr r1, _08124780 @ =gUnknown_203B0A0 - ldr r0, _08124784 @ =c2_exit_to_overworld_2_switch + ldr r0, _08124784 @ =CB2_ReturnToField str r0, [r1] bl GetCursorSelectionMonId lsls r0, 24 @@ -11807,7 +11807,7 @@ _08124778: b _081247B4 .align 2, 0 _08124780: .4byte gUnknown_203B0A0 -_08124784: .4byte c2_exit_to_overworld_2_switch +_08124784: .4byte CB2_ReturnToField _08124788: .4byte gPlayerParty _0812478C: cmp r4, 0 @@ -11897,7 +11897,7 @@ sub_8124828: @ 8124828 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -11915,7 +11915,7 @@ _08124848: b _081248A2 _0812484E: ldr r1, _0812487C @ =gUnknown_203B0A0 - ldr r0, _08124880 @ =c2_exit_to_overworld_2_switch + ldr r0, _08124880 @ =CB2_ReturnToField str r0, [r1] bl GetCursorSelectionMonId lsls r0, 24 @@ -11936,17 +11936,17 @@ _0812484E: b _081248A2 .align 2, 0 _0812487C: .4byte gUnknown_203B0A0 -_08124880: .4byte c2_exit_to_overworld_2_switch +_08124880: .4byte CB2_ReturnToField _08124884: .4byte gPlayerParty _08124888: .4byte gUnknown_203B09C _0812488C: movs r0, 0x5 bl PlaySE _08124892: - ldr r0, _081248A8 @ =gUnknown_3005024 + ldr r0, _081248A8 @ =gFieldCallback2 movs r1, 0 str r1, [r0] - ldr r0, _081248AC @ =gUnknown_203B0C4 + ldr r0, _081248AC @ =gPostMenuFieldCallback str r1, [r0] adds r0, r4, 0 bl sub_81203B8 @@ -11955,12 +11955,12 @@ _081248A2: pop {r0} bx r0 .align 2, 0 -_081248A8: .4byte gUnknown_3005024 -_081248AC: .4byte gUnknown_203B0C4 +_081248A8: .4byte gFieldCallback2 +_081248AC: .4byte gPostMenuFieldCallback thumb_func_end sub_8124828 - thumb_func_start hm_add_c3_launch_phase_2 -hm_add_c3_launch_phase_2: @ 81248B0 + thumb_func_start FieldCallback_PrepareFadeInFromMenu +FieldCallback_PrepareFadeInFromMenu: @ 81248B0 push {lr} bl sub_807DC00 ldr r0, _081248C4 @ =task_launch_hm_phase_2 @@ -11971,7 +11971,7 @@ hm_add_c3_launch_phase_2: @ 81248B0 bx r1 .align 2, 0 _081248C4: .4byte task_launch_hm_phase_2 - thumb_func_end hm_add_c3_launch_phase_2 + thumb_func_end FieldCallback_PrepareFadeInFromMenu thumb_func_start task_launch_hm_phase_2 task_launch_hm_phase_2: @ 81248C8 @@ -11988,7 +11988,7 @@ task_launch_hm_phase_2: @ 81248C8 lsls r0, 16 lsrs r0, 16 str r0, [r1] - ldr r0, _08124900 @ =gUnknown_203B0C4 + ldr r0, _08124900 @ =gPostMenuFieldCallback ldr r0, [r0] bl _call_via_r0 adds r0, r4, 0 @@ -11999,7 +11999,7 @@ _081248F4: bx r0 .align 2, 0 _081248FC: .4byte gFieldEffectArguments -_08124900: .4byte gUnknown_203B0C4 +_08124900: .4byte gPostMenuFieldCallback thumb_func_end task_launch_hm_phase_2 thumb_func_start brm_get_selected_species @@ -12118,18 +12118,18 @@ sub_8124998: @ 8124998 lsrs r0, 24 cmp r0, 0x1 bne _08124A00 - ldr r1, _081249F0 @ =gUnknown_3005024 - ldr r0, _081249F4 @ =hm_add_c3_launch_phase_2 + ldr r1, _081249F0 @ =gFieldCallback2 + ldr r0, _081249F4 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _081249F8 @ =gUnknown_203B0C4 + ldr r1, _081249F8 @ =gPostMenuFieldCallback ldr r0, _081249FC @ =hm_surf_run_dp02scr str r0, [r1] movs r0, 0x1 b _08124A02 .align 2, 0 -_081249F0: .4byte gUnknown_3005024 -_081249F4: .4byte hm_add_c3_launch_phase_2 -_081249F8: .4byte gUnknown_203B0C4 +_081249F0: .4byte gFieldCallback2 +_081249F4: .4byte FieldCallback_PrepareFadeInFromMenu +_081249F8: .4byte gPostMenuFieldCallback _081249FC: .4byte hm_surf_run_dp02scr _08124A00: movs r0, 0 @@ -12207,7 +12207,7 @@ sub_8124A8C: @ 8124A8C push {lr} ldr r0, _08124AA4 @ =gMapHeader ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 + bl Overworld_MapTypeAllowsTeleportAndFly lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -12237,7 +12237,7 @@ sub_8124AB0: @ 8124AB0 movs r1, 0 movs r2, 0 movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -12289,18 +12289,18 @@ hm_prepare_waterfall: @ 8124AF8 lsrs r0, 24 cmp r0, 0x1 bne _08124B54 - ldr r1, _08124B44 @ =gUnknown_3005024 - ldr r0, _08124B48 @ =hm_add_c3_launch_phase_2 + ldr r1, _08124B44 @ =gFieldCallback2 + ldr r0, _08124B48 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _08124B4C @ =gUnknown_203B0C4 + ldr r1, _08124B4C @ =gPostMenuFieldCallback ldr r0, _08124B50 @ =hm2_waterfall str r0, [r1] movs r0, 0x1 b _08124B56 .align 2, 0 -_08124B44: .4byte gUnknown_3005024 -_08124B48: .4byte hm_add_c3_launch_phase_2 -_08124B4C: .4byte gUnknown_203B0C4 +_08124B44: .4byte gFieldCallback2 +_08124B48: .4byte FieldCallback_PrepareFadeInFromMenu +_08124B4C: .4byte gPostMenuFieldCallback _08124B50: .4byte hm2_waterfall _08124B54: movs r0, 0 @@ -12577,7 +12577,7 @@ _08124D6A: adds r1, r7, 0 movs r2, 0x3 movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r3} mov r8, r3 @@ -12606,7 +12606,7 @@ sub_8124DA0: @ 8124DA0 movs r0, 0x5 movs r1, 0 movs r2, 0xFF - bl sub_81317F8 + bl InitTMCase pop {r0} bx r0 thumb_func_end sub_8124DA0 @@ -12617,7 +12617,7 @@ sub_8124DB0: @ 8124DB0 movs r0, 0x6 movs r1, 0 movs r2, 0xFF - bl sub_813CD50 + bl InitBerryPouch pop {r0} bx r0 thumb_func_end sub_8124DB0 @@ -12644,7 +12644,7 @@ sub_8124DE0: @ 8124DE0 push {r4,lr} ldr r4, _08124E0C @ =gSpecialVar_ItemId ldrh r0, [r4] - bl sub_80A1150 + bl GetItemCompatibilityRule lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -12735,7 +12735,7 @@ sub_8124E48: @ 8124E48 bhi _08124EB0 adds r0, r1, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08124EB0: mov r1, r8 ldr r0, [r1] @@ -12759,7 +12759,7 @@ _08124EC8: str r1, [sp, 0x8] movs r1, 0xFF movs r2, 0 - bl sub_811EA44 + bl PartyMenuInit _08124EE6: add sp, 0xC pop {r3} @@ -12820,7 +12820,7 @@ sub_8124EFC: @ 8124EFC movs r0, 0x4 adds r1, r5, 0 adds r3, r6, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent ldrh r1, [r7] movs r0, 0xA9 lsls r0, 1 @@ -12828,7 +12828,7 @@ sub_8124EFC: @ 8124EFC bhi _08124F7C adds r0, r1, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08124F7C: mov r1, r8 ldr r0, [r1] @@ -12852,7 +12852,7 @@ _08124F94: ldr r1, [r4] str r1, [sp, 0x8] movs r1, 0xFF - bl sub_811EA44 + bl PartyMenuInit _08124FB2: add sp, 0xC pop {r3} @@ -13312,7 +13312,7 @@ _08125380: movs r0, 0x4 adds r1, r5, 0 adds r2, r6, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent adds r0, r7, 0 bl sub_8124DC0 ldr r1, _081253A8 @ =gUnknown_3005E98 @@ -13418,7 +13418,7 @@ _0812544C: beq _0812547E adds r0, r6, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem b _0812547E .align 2, 0 _08125474: .4byte gUnknown_203B0C0 @@ -13684,7 +13684,7 @@ _08125680: mov r1, r8 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram add sp, 0x10 @@ -13730,8 +13730,8 @@ _081256F2: bx r0 thumb_func_end sub_81256C0 - thumb_func_start sub_81256F8 -sub_81256F8: @ 81256F8 + thumb_func_start ItemUseCB_PpRestore +ItemUseCB_PpRestore: @ 81256F8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -13802,7 +13802,7 @@ _0812577E: _08125784: .4byte gUnknown_203B0A0 _08125788: .4byte gTasks _0812578C: .4byte sub_81256C0 - thumb_func_end sub_81256F8 + thumb_func_end ItemUseCB_PpRestore thumb_func_start sub_8125790 sub_8125790: @ 8125790 @@ -13958,12 +13958,12 @@ sub_8125898: @ 8125898 ldr r3, _08125940 @ =0x0000ffff movs r0, 0x4 adds r1, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent movs r0, 0x1 bl PlaySE ldrh r0, [r6] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem movs r2, 0xE ldrsh r1, [r5, r2] adds r1, 0xD @@ -14060,12 +14060,12 @@ _081259A0: movs r0, 0x4 adds r1, r4, 0 adds r2, r5, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent movs r0, 0x1 bl PlaySE adds r0, r5, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0 ldrsh r1, [r7, r0] adds r1, 0xD @@ -14185,8 +14185,8 @@ _08125ABC: bx r1 thumb_func_end sub_8125A90 - thumb_func_start pokemon_has_move -pokemon_has_move: @ 8125AC0 + thumb_func_start MonKnowsMove +MonKnowsMove: @ 8125AC0 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 @@ -14212,7 +14212,7 @@ _08125AE8: pop {r4-r6} pop {r1} bx r1 - thumb_func_end pokemon_has_move + thumb_func_end MonKnowsMove thumb_func_start sub_8125AF0 sub_8125AF0: @ 8125AF0 @@ -14315,7 +14315,7 @@ sub_8125B40: @ 8125B40 movs r0, 0x4 adds r1, r4, 0 adds r2, r5, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent adds r0, r6, 0 bl sub_8124DC0 ldr r1, _08125BEC @ =gUnknown_3005E98 @@ -14406,7 +14406,7 @@ sub_8125C48: @ 8125C48 bhi _08125C84 adds r0, r4, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08125C84: ldr r1, _08125CD8 @ =gStringVar1 adds r0, r5, 0 @@ -14561,7 +14561,7 @@ sub_8125DBC: @ 8125DBC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -14712,7 +14712,7 @@ _08125EE8: movs r1, 0 movs r2, 0 movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit _08125F02: add sp, 0xC pop {r4,r5} @@ -14799,7 +14799,7 @@ sub_8125F5C: @ 8125F5C movs r0, 0x4 adds r1, r6, 0 adds r3, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent ldr r1, _08125FF0 @ =gStringVar1 adds r0, r6, 0 bl GetMonNickname @@ -15016,7 +15016,7 @@ sub_8126170: @ 8126170 muls r1, r0 ldr r0, _081261A4 @ =gPlayerParty adds r4, r1, r0 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 @@ -15268,7 +15268,7 @@ sub_8126350: @ 8126350 ldr r3, _08126424 @ =0x0000ffff movs r0, 0x4 adds r1, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent movs r0, 0 bl PlayFanfareByFanfareNum ldrb r0, [r6, 0x9] @@ -15276,7 +15276,7 @@ sub_8126350: @ 8126350 bl sub_8126440 ldrh r0, [r5] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem ldr r1, _08126428 @ =gStringVar1 adds r0, r4, 0 bl GetMonNickname @@ -16112,12 +16112,12 @@ _08126A94: ldrh r2, [r0] ldr r3, _08126AE0 @ =0x0000ffff movs r0, 0x4 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent _08126AB4: ldr r0, _08126ADC @ =gSpecialVar_ItemId ldrh r0, [r0] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08126ABE: ldr r1, _08126AE4 @ =gTasks lsls r0, r4, 2 @@ -16266,10 +16266,10 @@ sub_8126BD4: @ 8126BD4 ldrh r2, [r5] ldr r3, _08126C20 @ =0x0000ffff movs r0, 0x4 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent ldrh r0, [r5] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem pop {r4,r5} pop {r0} bx r0 @@ -16640,7 +16640,7 @@ CB2_PartyMenuFromStartMenu: @ 8126EB0 movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -16684,7 +16684,7 @@ _08126F0A: movs r1, 0 movs r2, 0x5 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit ldr r1, _08126F38 @ =gUnknown_203B0A0 ldr r0, _08126F3C @ =gSpecialVar_ItemId ldrh r0, [r0] @@ -16971,7 +16971,7 @@ sub_812713C: @ 812713C bl SetMonData ldrh r0, [r4] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem adds r0, r7, 0 bl sub_81273AC ldr r0, [r6] @@ -16995,7 +16995,7 @@ _0812719C: str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit _081271B8: add sp, 0xC pop {r4-r7} @@ -17093,7 +17093,7 @@ sub_8127268: @ 8127268 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -17117,7 +17117,7 @@ _0812728E: ldr r6, _081272C4 @ =gUnknown_203B0D8 ldrh r0, [r6] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _081272CC @@ -17233,14 +17233,14 @@ sub_8127384: @ 8127384 bne _081273A0 adds r0, r1, 0 movs r1, 0x1 - bl sub_809A460 + bl RemoveItemFromPC b _081273A8 .align 2, 0 _0812739C: .4byte gUnknown_203B0A0 _081273A0: adds r0, r1, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _081273A8: pop {r0} bx r0 @@ -17257,14 +17257,14 @@ sub_81273AC: @ 81273AC beq _081273C8 adds r0, r1, 0 movs r1, 0x1 - bl sub_809A3C8 + bl AddPCItem b _081273D0 .align 2, 0 _081273C4: .4byte gUnknown_203B0A0 _081273C8: adds r0, r1, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem _081273D0: lsls r0, 24 lsrs r0, 24 @@ -17286,7 +17286,7 @@ sub_81273D8: @ 81273D8 movs r1, 0 movs r2, 0x7 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -17387,7 +17387,7 @@ sub_81274A8: @ 81274A8 movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit ldr r1, _081274F4 @ =gUnknown_203B0A0 lsls r4, 6 ldrb r2, [r1, 0x8] @@ -17824,7 +17824,7 @@ sub_81277F4: @ 81277F4 movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -17850,7 +17850,7 @@ sub_812781C: @ 812781C movs r1, 0 movs r2, 0xC movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit b _08127870 .align 2, 0 _08127844: .4byte gSpecialVar_0x8005 @@ -17867,7 +17867,7 @@ _08127850: movs r1, 0 movs r2, 0xC movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit ldr r1, _08127880 @ =gUnknown_203B0A0 ldr r0, _08127884 @ =gSpecialVar_0x8007 ldrh r0, [r0] @@ -17897,7 +17897,7 @@ sub_8127888: @ 8127888 movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -17960,7 +17960,7 @@ sub_81278DC: @ 81278DC movs r0, 0x1 adds r2, r4, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit movs r0, 0x8 bl sub_80EB2F4 b _08127950 @@ -17982,7 +17982,7 @@ _08127930: movs r0, 0x1 adds r2, r4, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit _08127950: bl nullsub_44 bl pokemon_change_order @@ -18012,7 +18012,7 @@ sub_8127968: @ 8127968 movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit bl nullsub_44 bl pokemon_change_order add sp, 0xC @@ -18040,7 +18040,7 @@ sub_81279A4: @ 81279A4 movs r0, 0x1 movs r2, 0xE movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit bl nullsub_44 bl pokemon_change_order add sp, 0xC @@ -18079,7 +18079,7 @@ sub_81279E0: @ 81279E0 movs r0, 0x1 movs r2, 0x3 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit movs r0, 0x8 bl sub_80EB2F4 b _08127A62 @@ -18110,7 +18110,7 @@ _08127A44: movs r0, 0x1 movs r2, 0x3 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit _08127A62: bl nullsub_44 bl pokemon_change_order @@ -19069,7 +19069,7 @@ sub_8128198: @ 8128198 movs r1, 0x3 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -19301,28 +19301,28 @@ _0812836C: .4byte gUnknown_2022B58 sub_8128370: @ 8128370 push {lr} sub sp, 0xC - ldr r1, _08128398 @ =gUnknown_3005024 + ldr r1, _08128398 @ =gFieldCallback2 ldr r0, _0812839C @ =hm_add_c3_without_phase_2 str r0, [r1] movs r0, 0xF str r0, [sp] ldr r0, _081283A0 @ =sub_811FB28 str r0, [sp, 0x4] - ldr r0, _081283A4 @ =c2_exit_to_overworld_2_switch + ldr r0, _081283A4 @ =CB2_ReturnToField str r0, [sp, 0x8] movs r0, 0x6 movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 .align 2, 0 -_08128398: .4byte gUnknown_3005024 +_08128398: .4byte gFieldCallback2 _0812839C: .4byte hm_add_c3_without_phase_2 _081283A0: .4byte sub_811FB28 -_081283A4: .4byte c2_exit_to_overworld_2_switch +_081283A4: .4byte CB2_ReturnToField thumb_func_end sub_8128370 thumb_func_start sub_81283A8 @@ -19331,27 +19331,27 @@ sub_81283A8: @ 81283A8 sub sp, 0xC lsls r0, 24 lsrs r0, 24 - ldr r2, _081283D4 @ =gUnknown_3005024 + ldr r2, _081283D4 @ =gFieldCallback2 ldr r1, _081283D8 @ =hm_add_c3_without_phase_2 str r1, [r2] movs r1, 0 str r1, [sp] ldr r1, _081283DC @ =sub_811FB28 str r1, [sp, 0x4] - ldr r1, _081283E0 @ =c2_exit_to_overworld_2_switch + ldr r1, _081283E0 @ =CB2_ReturnToField str r1, [sp, 0x8] movs r1, 0 movs r2, 0xB movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 .align 2, 0 -_081283D4: .4byte gUnknown_3005024 +_081283D4: .4byte gFieldCallback2 _081283D8: .4byte hm_add_c3_without_phase_2 _081283DC: .4byte sub_811FB28 -_081283E0: .4byte c2_exit_to_overworld_2_switch +_081283E0: .4byte CB2_ReturnToField thumb_func_end sub_81283A8 thumb_func_start hm_add_c3_without_phase_2 diff --git a/asm/player_pc.s b/asm/player_pc.s index c4eab0f30..f9d781513 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -9,7 +9,7 @@ sub_80EB658: @ 80EB658 push {r4-r6,lr} movs r4, 0 - bl sub_809A2A4 + bl ClearPCItemSlots ldr r1, _080EB6A8 @ =gUnknown_8402220 ldrh r0, [r1] cmp r0, 0 @@ -25,7 +25,7 @@ _080EB672: ldrh r0, [r0] adds r1, r6 ldrh r1, [r1] - bl sub_809A3C8 + bl AddPCItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -187,7 +187,7 @@ _080EB77E: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, _080EB814 @ =gTasks @@ -237,7 +237,7 @@ sub_80EB81C: @ 80EB81C bl PlaySE ldrb r0, [r4, 0x14] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4, 0x14] bl ClearWindowTilemap ldrb r0, [r4, 0x14] @@ -256,7 +256,7 @@ _080EB874: .4byte sub_80EB9B8 _080EB878: ldrb r0, [r4, 0x14] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4, 0x14] bl ClearWindowTilemap ldrb r0, [r4, 0x14] @@ -361,11 +361,11 @@ _080EB940: cmp r0, 0 bne _080EB95C movs r0, 0x22 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080EB962 _080EB95C: movs r0, 0x1E - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _080EB962: ldr r0, _080EB990 @ =gUnknown_203AAC4 ldrb r0, [r0, 0x5] @@ -376,7 +376,7 @@ _080EB962: bne _080EB99C movs r0, 0 movs r1, 0 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame adds r0, r5, 0 bl sub_80EBEB0 ldr r0, _080EB994 @ =gTasks @@ -449,14 +449,14 @@ sub_80EB9E8: @ 80EB9E8 cmp r0, 0 bne _080EBA18 movs r0, 0x21 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080EBA1E .align 2, 0 _080EBA10: .4byte gTasks+0x8 _080EBA14: .4byte gUnknown_203AAC4 _080EBA18: movs r0, 0x1D - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _080EBA1E: ldr r0, _080EBA80 @ =gUnknown_8402258 bl AddWindow @@ -488,7 +488,7 @@ _080EBA1E: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, _080EBA88 @ =gUnknown_84021DC @@ -513,7 +513,7 @@ sub_80EBA8C: @ 80EBA8C adds r4, r0, 0 movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -627,12 +627,12 @@ sub_80EBB70: @ 80EBB70 ands r0, r1 cmp r0, 0 bne _080EBB9C - bl sub_80563F0 - ldr r2, _080EBBA8 @ =c2_exit_to_overworld_2_switch + bl CleanupOverworldWindowsAndTilemaps + ldr r2, _080EBBA8 @ =CB2_ReturnToField movs r0, 0x3 movs r1, 0 bl sub_8107DB4 - ldr r1, _080EBBAC @ =gUnknown_3005020 + ldr r1, _080EBBAC @ =gFieldCallback ldr r0, _080EBBB0 @ =sub_80EBC0C str r0, [r1] adds r0, r4, 0 @@ -643,8 +643,8 @@ _080EBB9C: bx r0 .align 2, 0 _080EBBA4: .4byte gPaletteFade -_080EBBA8: .4byte c2_exit_to_overworld_2_switch -_080EBBAC: .4byte gUnknown_3005020 +_080EBBA8: .4byte CB2_ReturnToField +_080EBBAC: .4byte gFieldCallback _080EBBB0: .4byte sub_80EBC0C thumb_func_end sub_80EBB70 @@ -702,7 +702,7 @@ sub_80EBC0C: @ 80EBC0C bl sub_80F6E9C movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r0, _080EBC34 @ =sub_80EBBDC movs r1, 0 bl CreateTask @@ -727,7 +727,7 @@ sub_80EBC38: @ 80EBC38 lsls r6, r0, 3 ldr r7, _080EBC6C @ =gTasks+0x8 adds r4, r6, r7 - bl sub_809A33C + bl CountItemsInPC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x4] @@ -740,19 +740,19 @@ sub_80EBC38: @ 80EBC38 adds r0, r6, r0 ldr r1, _080EBC70 @ =sub_80EBD18 str r1, [r0] - ldr r1, _080EBC74 @ =gUnknown_3005020 + ldr r1, _080EBC74 @ =gFieldCallback ldr r0, _080EBC78 @ =sub_80EBCAC str r0, [r1] b _080EBC9C .align 2, 0 _080EBC6C: .4byte gTasks+0x8 _080EBC70: .4byte sub_80EBD18 -_080EBC74: .4byte gUnknown_3005020 +_080EBC74: .4byte gFieldCallback _080EBC78: .4byte sub_80EBCAC _080EBC7C: ldrb r0, [r4, 0x14] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4, 0x14] bl ClearWindowTilemap ldrb r0, [r4, 0x14] @@ -777,7 +777,7 @@ sub_80EBCAC: @ 80EBCAC bl sub_80F6E9C movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r0, _080EBCD4 @ =sub_80EBBDC movs r1, 0 bl CreateTask @@ -808,10 +808,10 @@ sub_80EBCD8: @ 80EBCD8 ands r0, r1 cmp r0, 0 bne _080EBD06 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldrb r0, [r5, 0xC] - ldr r1, _080EBD14 @ =c2_exit_to_overworld_2_switch - bl sub_810D3F4 + ldr r1, _080EBD14 @ =CB2_ReturnToField + bl ItemPc_Init adds r0, r4, 0 bl DestroyTask _080EBD06: @@ -821,7 +821,7 @@ _080EBD06: .align 2, 0 _080EBD0C: .4byte gTasks+0x8 _080EBD10: .4byte gPaletteFade -_080EBD14: .4byte c2_exit_to_overworld_2_switch +_080EBD14: .4byte CB2_ReturnToField thumb_func_end sub_80EBCD8 thumb_func_start sub_80EBD18 @@ -837,7 +837,7 @@ sub_80EBD18: @ 80EBD18 ldr r0, _080EBD44 @ =sub_80EBCD8 str r0, [r1] movs r0, 0 - bl sub_810DE94 + bl ItemPc_SetInitializedFlag movs r0, 0x1 movs r1, 0 bl fade_screen @@ -861,7 +861,7 @@ sub_80EBD48: @ 80EBD48 adds r4, r0 ldrb r0, [r4, 0x14] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4, 0x14] bl ClearWindowTilemap ldrb r0, [r4, 0x14] @@ -1142,7 +1142,7 @@ sub_80EBF40: @ 80EBF40 mov r8, r1 adds r1, r7, 0 mov r2, r8 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow movs r0, 0x2 negs r0, r0 cmp r6, r0 @@ -1174,7 +1174,7 @@ _080EBFB6: ldrb r0, [r4, 0x16] adds r1, r7, 0 mov r2, r8 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl schedule_bg_copy_tilemap_to_vram mov r1, r8 @@ -1288,7 +1288,7 @@ sub_80EC094: @ 80EC094 ldrb r0, [r4, 0x16] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl sub_810EDB0 @@ -1341,7 +1341,7 @@ sub_80EC0D8: @ 80EC0D8 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, _080EC154 @ =gTasks @@ -1438,7 +1438,7 @@ sub_80EC1D4: @ 80EC1D4 cmp r0, 0 bne _080EC216 bl sub_810EDB0 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r2, _080EC220 @ =gSaveBlock1Ptr ldr r1, _080EC224 @ =gUnknown_203AAC4 ldrh r0, [r1] @@ -1503,13 +1503,13 @@ sub_80EC260: @ 80EC260 cmp r0, 0 bne _080EC278 movs r0, 0x22 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080EC27E .align 2, 0 _080EC274: .4byte gUnknown_203AAC4 _080EC278: movs r0, 0x1E - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _080EC27E: bl sub_80F6E9C ldr r0, _080EC2A8 @ =sub_80EC230 @@ -1543,17 +1543,17 @@ _080EC2B6: thumb_func_start sub_80EC2C0 sub_80EC2C0: @ 80EC2C0 push {lr} - ldr r0, _080EC2D4 @ =gUnknown_3005020 + ldr r0, _080EC2D4 @ =gFieldCallback ldr r1, _080EC2D8 @ =sub_80EC260 str r1, [r0] - ldr r0, _080EC2DC @ =c2_exit_to_overworld_2_switch + ldr r0, _080EC2DC @ =CB2_ReturnToField bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 -_080EC2D4: .4byte gUnknown_3005020 +_080EC2D4: .4byte gFieldCallback _080EC2D8: .4byte sub_80EC260 -_080EC2DC: .4byte c2_exit_to_overworld_2_switch +_080EC2DC: .4byte CB2_ReturnToField thumb_func_end sub_80EC2C0 thumb_func_start sub_80EC2E0 @@ -1599,7 +1599,7 @@ sub_80EC324: @ 80EC324 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r0, 24 movs r1, 0x1 @@ -1649,7 +1649,7 @@ sub_80EC364: @ 80EC364 adds r5, r1, r0 ldrh r0, [r5, 0x20] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _080EC3B4 @@ -1753,7 +1753,7 @@ sub_80EC444: @ 80EC444 cmp r0, 0 bne _080EC468 bl sub_810EDB0 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps bl sub_81273D8 adds r0, r4, 0 bl DestroyTask @@ -1773,13 +1773,13 @@ sub_80EC474: @ 80EC474 cmp r0, 0 bne _080EC48C movs r0, 0x22 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080EC492 .align 2, 0 _080EC488: .4byte gUnknown_203AAC4 _080EC48C: movs r0, 0x1E - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _080EC492: ldr r0, _080EC4E8 @ =sub_80EC230 movs r1, 0 @@ -1834,17 +1834,17 @@ _080EC4F6: thumb_func_start sub_80EC500 sub_80EC500: @ 80EC500 push {lr} - ldr r0, _080EC514 @ =gUnknown_3005020 + ldr r0, _080EC514 @ =gFieldCallback ldr r1, _080EC518 @ =sub_80EC474 str r1, [r0] - ldr r0, _080EC51C @ =c2_exit_to_overworld_2_switch + ldr r0, _080EC51C @ =CB2_ReturnToField bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 -_080EC514: .4byte gUnknown_3005020 +_080EC514: .4byte gFieldCallback _080EC518: .4byte sub_80EC474 -_080EC51C: .4byte c2_exit_to_overworld_2_switch +_080EC51C: .4byte CB2_ReturnToField thumb_func_end sub_80EC500 thumb_func_start sub_80EC520 @@ -1852,14 +1852,14 @@ sub_80EC520: @ 80EC520 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _080EC534 @ =gUnknown_841632A + ldr r2, _080EC534 @ =gText_ThereIsNoPokemon ldr r3, _080EC538 @ =sub_80EC574 movs r1, 0x2 bl DisplayItemMessageOnField pop {r0} bx r0 .align 2, 0 -_080EC534: .4byte gUnknown_841632A +_080EC534: .4byte gText_ThereIsNoPokemon _080EC538: .4byte sub_80EC574 thumb_func_end sub_80EC520 @@ -1871,7 +1871,7 @@ sub_80EC53C: @ 80EC53C lsrs r4, 24 movs r0, 0 movs r1, 0 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame adds r0, r4, 0 bl sub_80EBEB0 movs r0, 0 diff --git a/asm/poison.s b/asm/poison.s new file mode 100644 index 000000000..adaa51dbd --- /dev/null +++ b/asm/poison.s @@ -0,0 +1,326 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B1620 +sub_80B1620: @ 80B1620 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B1674 @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B1636 + adds r0, r5, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080B1636: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x2E] + ldr r4, _080B1678 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080B167C @ =0x0000ffe2 + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_8075068 + ldr r0, _080B1680 @ =sub_80B1684 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1674: .4byte gBattleAnimArgs +_080B1678: .4byte gBattleAnimTarget +_080B167C: .4byte 0x0000ffe2 +_080B1680: .4byte sub_80B1684 + thumb_func_end sub_80B1620 + + thumb_func_start sub_80B1684 +sub_80B1684: @ 80B1684 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B1698 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B1698: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B1684 + + thumb_func_start sub_80B16A0 +sub_80B16A0: @ 80B16A0 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r5, _080B1714 @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B16B8 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080B16B8: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080B1718 @ =gBattleAnimTarget + ldrb r0, [r0] + mov r6, sp + adds r6, 0x2 + movs r1, 0x1 + mov r2, sp + adds r3, r6, 0 + bl sub_8076D9C + ldr r0, _080B171C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B16E6 + ldrh r0, [r5, 0x8] + negs r0, r0 + strh r0, [r5, 0x8] +_080B16E6: + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + mov r1, sp + ldrh r0, [r5, 0x8] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r5, 0xA] + ldrh r6, [r6] + adds r0, r6 + strh r0, [r4, 0x36] + ldr r0, _080B1720 @ =0x0000ffe2 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_8075068 + ldr r0, _080B1724 @ =sub_80B1728 + str r0, [r4, 0x1C] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1714: .4byte gBattleAnimArgs +_080B1718: .4byte gBattleAnimTarget +_080B171C: .4byte gBattleAnimAttacker +_080B1720: .4byte 0x0000ffe2 +_080B1724: .4byte sub_80B1728 + thumb_func_end sub_80B16A0 + + thumb_func_start sub_80B1728 +sub_80B1728: @ 80B1728 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B173C + adds r0, r4, 0 + bl DestroyAnimSprite +_080B173C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B1728 + + thumb_func_start sub_80B1744 +sub_80B1744: @ 80B1744 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B1790 @ =gBattleAnimArgs + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r1, [r5] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80754B8 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, 0x38] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, 0x3A] + ldr r0, _080B1794 @ =sub_80B1798 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1790: .4byte gBattleAnimArgs +_080B1794: .4byte sub_80B1798 + thumb_func_end sub_80B1744 + + thumb_func_start sub_80B1798 +sub_80B1798: @ 80B1798 + push {r4,lr} + adds r4, r0, 0 + bl sub_8074D00 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x38] + subs r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + ldrh r1, [r4, 0x3A] + subs r0, r1 + strh r0, [r4, 0x32] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B17BE + adds r0, r4, 0 + bl DestroyAnimSprite +_080B17BE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B1798 + + thumb_func_start sub_80B17C4 +sub_80B17C4: @ 80B17C4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B1824 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_8076D9C + ldr r0, _080B1828 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B17F0 + ldr r1, _080B182C @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080B17F0: + ldr r0, _080B182C @ =gBattleAnimArgs + ldrh r2, [r0] + ldrh r1, [r4, 0x20] + adds r2, r1 + strh r2, [r4, 0x20] + ldrh r1, [r0, 0x2] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + ldrh r3, [r0, 0x8] + strh r3, [r4, 0x2E] + ldrh r0, [r0, 0x4] + adds r2, r0 + strh r2, [r4, 0x32] + adds r1, r3 + strh r1, [r4, 0x36] + ldr r0, _080B1830 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080B1834 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1824: .4byte gBattleAnimTarget +_080B1828: .4byte gBattleAnimAttacker +_080B182C: .4byte gBattleAnimArgs +_080B1830: .4byte sub_8075590 +_080B1834: .4byte DestroyAnimSprite + thumb_func_end sub_80B17C4 + + thumb_func_start sub_80B1838 +sub_80B1838: @ 80B1838 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B1850 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B1854 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + b _080B188A + .align 2, 0 +_080B1850: .4byte gBattleAnimArgs +_080B1854: + ldr r0, _080B1894 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_8076D9C + ldr r0, _080B1898 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B187A + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080B187A: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080B188A: + ldr r0, _080B189C @ =sub_80B18A0 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1894: .4byte gBattleAnimTarget +_080B1898: .4byte gBattleAnimAttacker +_080B189C: .4byte sub_80B18A0 + thumb_func_end sub_80B1838 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokeball.s b/asm/pokeball.s index 11572c80f..eace88832 100644 --- a/asm/pokeball.s +++ b/asm/pokeball.s @@ -432,7 +432,7 @@ sub_804AC94: @ 804AC94 strh r7, [r6, 0x38] ldr r0, _0804ACF4 @ =sub_804AD00 str r0, [r6, 0x1C] - ldr r5, _0804ACF8 @ =gUnknown_2023D44 + ldr r5, _0804ACF8 @ =gBattlerSpriteIds movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r5 @@ -468,7 +468,7 @@ _0804ACEE: bx r0 .align 2, 0 _0804ACF4: .4byte sub_804AD00 -_0804ACF8: .4byte gUnknown_2023D44 +_0804ACF8: .4byte gBattlerSpriteIds _0804ACFC: .4byte gSprites thumb_func_end sub_804AC94 @@ -487,7 +487,7 @@ sub_804AD00: @ 804AD00 bl PlaySE _0804AD18: ldr r6, _0804AD64 @ =gSprites - ldr r5, _0804AD68 @ =gUnknown_2023D44 + ldr r5, _0804AD68 @ =gBattlerSpriteIds movs r1, 0x3A ldrsh r0, [r4, r1] adds r0, r5 @@ -525,7 +525,7 @@ _0804AD18: b _0804AD90 .align 2, 0 _0804AD64: .4byte gSprites -_0804AD68: .4byte gUnknown_2023D44 +_0804AD68: .4byte gBattlerSpriteIds _0804AD6C: .4byte sub_804AD98 _0804AD70: ldrh r0, [r1, 0x30] @@ -1363,7 +1363,7 @@ _0804B3F2: strh r7, [r1, 0x10] strh r2, [r1, 0x26] _0804B420: - ldr r5, _0804B47C @ =gUnknown_2023D44 + ldr r5, _0804B47C @ =gBattlerSpriteIds movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r5 @@ -1405,7 +1405,7 @@ _0804B420: .align 2, 0 _0804B474: .4byte Task_PlayCryWhenReleasedFromBall _0804B478: .4byte gTasks -_0804B47C: .4byte gUnknown_2023D44 +_0804B47C: .4byte gBattlerSpriteIds _0804B480: .4byte gSprites thumb_func_end sub_804B268 @@ -1437,7 +1437,7 @@ HandleBallAnimEnd: @ 804B4A4 lsls r0, 24 lsrs r6, r0, 24 ldr r4, _0804B508 @ =gSprites - ldr r0, _0804B50C @ =gUnknown_2023D44 + ldr r0, _0804B50C @ =gBattlerSpriteIds adds r3, r6, r0 ldrb r1, [r3] lsls r0, r1, 4 @@ -1482,7 +1482,7 @@ _0804B4E6: b _0804B52C .align 2, 0 _0804B508: .4byte gSprites -_0804B50C: .4byte gUnknown_2023D44 +_0804B50C: .4byte gBattlerSpriteIds _0804B510: ldr r2, _0804B5B4 @ =0xfffffee0 adds r0, r2, 0 @@ -1509,7 +1509,7 @@ _0804B52C: cmp r7, 0 beq _0804B5AE ldr r2, _0804B5B8 @ =gSprites - ldr r0, _0804B5BC @ =gUnknown_2023D44 + ldr r0, _0804B5BC @ =gBattlerSpriteIds adds r0, r6, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1571,7 +1571,7 @@ _0804B5AE: .align 2, 0 _0804B5B4: .4byte 0xfffffee0 _0804B5B8: .4byte gSprites -_0804B5BC: .4byte gUnknown_2023D44 +_0804B5BC: .4byte gBattlerSpriteIds _0804B5C0: .4byte gUnknown_2024005 _0804B5C4: .4byte gUnknown_2024018 thumb_func_end HandleBallAnimEnd @@ -1607,7 +1607,7 @@ _0804B600: cmp r1, r0 bne _0804B666 ldr r5, _0804B670 @ =gSprites - ldr r4, _0804B674 @ =gUnknown_2023D44 + ldr r4, _0804B674 @ =gBattlerSpriteIds movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r4 @@ -1658,7 +1658,7 @@ _0804B666: .align 2, 0 _0804B66C: .4byte 0x0000013b _0804B670: .4byte gSprites -_0804B674: .4byte gUnknown_2023D44 +_0804B674: .4byte gBattlerSpriteIds _0804B678: .4byte gMain _0804B67C: .4byte 0x00000439 _0804B680: .4byte gUnknown_2024018 @@ -2276,7 +2276,7 @@ _0804BB22: ldrsh r0, [r4, r7] cmp r0, 0x7F bgt _0804BB64 - ldr r1, _0804BB60 @ =gUnknown_825E074 + ldr r1, _0804BB60 @ =gSineTable lsls r0, r2, 24 lsrs r0, 23 adds r0, r1 @@ -2297,7 +2297,7 @@ _0804BB48: b _0804BB72 .align 2, 0 _0804BB5C: .4byte gSprites -_0804BB60: .4byte gUnknown_825E074 +_0804BB60: .4byte gSineTable _0804BB64: ldrh r0, [r4, 0x38] strh r0, [r5, 0x20] diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s index 3d3ca02ea..80cc1ab5d 100644 --- a/asm/pokedex_screen.s +++ b/asm/pokedex_screen.s @@ -58,7 +58,7 @@ sub_810250C: @ 810250C bl ResetPaletteFade bl ResetSpriteData bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop movs r0, 0x1 bl ResetBgsAndClearDma3BusyFlags ldr r1, _08102598 @ =gUnknown_8451EBC @@ -95,7 +95,7 @@ sub_810250C: @ 810250C movs r0, 0x3 adds r2, r4, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap b _081025AE .align 2, 0 _08102598: .4byte gUnknown_8451EBC @@ -106,7 +106,7 @@ _081025A0: movs r0, 0x3 adds r2, r4, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap _081025AE: ldr r0, _081026A8 @ =gUnknown_8451ECC bl InitWindows @@ -309,7 +309,7 @@ sub_810275C: @ 810275C ldr r0, _08102794 @ =sub_81024D4 bl SetMainCallback2 movs r0, 0x4 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 pop {r0} bx r0 .align 2, 0 @@ -593,7 +593,7 @@ _081029D0: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow bl sub_806E25C cmp r0, 0 beq _081029F4 @@ -627,7 +627,7 @@ _08102A14: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldr r0, _08102A4C @ =gMain ldrh r1, [r0, 0x2E] movs r3, 0x1 @@ -754,7 +754,7 @@ _08102B24: adds r1, r2, 0 adds r1, 0x12 adds r2, 0x10 - bl sub_810713C + bl DestroyListMenu movs r0, 0x20 str r0, [sp] movs r0, 0x14 @@ -804,7 +804,7 @@ _08102B94: adds r1, r2, 0 adds r1, 0x12 adds r2, 0x10 - bl sub_810713C + bl DestroyListMenu movs r0, 0x1 bl HideBg ldr r0, [r4] @@ -832,7 +832,7 @@ _08102BD8: adds r1, r2, 0 adds r1, 0x12 adds r2, 0x10 - bl sub_810713C + bl DestroyListMenu movs r0, 0x1 bl HideBg ldr r0, [r4] @@ -1367,7 +1367,7 @@ _0810307C: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow bl sub_81039F0 ldr r1, [r4] adds r1, 0x60 @@ -1385,7 +1385,7 @@ _08103098: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldr r0, _081030F0 @ =gMain ldrh r1, [r0, 0x2E] movs r3, 0x1 @@ -1545,7 +1545,7 @@ sub_810317C: @ 810317C movs r0, 0x1 movs r1, 0xFF bl FillWindowPixelBuffer - ldr r0, _08103234 @ =gUnknown_8415F51 + ldr r0, _08103234 @ =gText_PickOKExit bl sub_8104C2C movs r0, 0 movs r1, 0x2 @@ -1562,7 +1562,7 @@ _08103224: .4byte gUnknown_845216C _08103228: .4byte gUnknown_203ACF0 _0810322C: .4byte gUnknown_8452174 _08103230: .4byte gUnknown_8415F3D -_08103234: .4byte gUnknown_8415F51 +_08103234: .4byte gText_PickOKExit thumb_func_end sub_810317C thumb_func_start sub_8103238 @@ -1687,7 +1687,7 @@ _08103344: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow bl sub_81039F0 ldr r1, [r4] adds r1, 0x60 @@ -1706,7 +1706,7 @@ _08103362: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldr r0, _081033C4 @ =gMain ldrh r1, [r0, 0x2E] movs r2, 0x1 @@ -1874,7 +1874,7 @@ sub_810345C: @ 810345C movs r0, 0x1 movs r1, 0xFF bl FillWindowPixelBuffer - ldr r0, _08103514 @ =gUnknown_8415F51 + ldr r0, _08103514 @ =gText_PickOKExit bl sub_8104C2C movs r0, 0 movs r1, 0x2 @@ -1891,7 +1891,7 @@ _08103504: .4byte gUnknown_845216C _08103508: .4byte gUnknown_203ACF0 _0810350C: .4byte gUnknown_8452174 _08103510: .4byte gUnknown_8415F4A -_08103514: .4byte gUnknown_8415F51 +_08103514: .4byte gText_PickOKExit thumb_func_end sub_810345C thumb_func_start sub_8103518 @@ -2467,7 +2467,7 @@ _0810399C: adds r1, r2, 0 adds r1, 0x36 adds r2, 0x34 - bl sub_810713C + bl DestroyListMenu b _081039E8 .align 2, 0 _081039B4: .4byte gUnknown_203ACF0 @@ -2480,7 +2480,7 @@ _081039B8: adds r1, r2, 0 adds r1, 0x3A adds r2, 0x38 - bl sub_810713C + bl DestroyListMenu b _081039E8 .align 2, 0 _081039D0: .4byte gUnknown_203ACF0 @@ -2493,7 +2493,7 @@ _081039D4: adds r1, r2, 0 adds r1, 0x3E adds r2, 0x3C - bl sub_810713C + bl DestroyListMenu _081039E8: pop {r0} bx r0 @@ -2572,7 +2572,7 @@ sub_8103A40: @ 8103A40 movs r1, 0 movs r2, 0x28 adds r3, r6, 0 - bl sub_8107D68 + bl blit_move_info_icon ldr r0, _08103AC4 @ =gBaseStats lsls r4, r5, 3 subs r4, r5 @@ -2587,7 +2587,7 @@ sub_8103A40: @ 8103A40 lsrs r1, 24 movs r2, 0x78 adds r3, r6, 0 - bl sub_8107D68 + bl blit_move_info_icon ldrb r1, [r4, 0x7] cmp r5, r1 beq _08103AB6 @@ -2599,7 +2599,7 @@ sub_8103A40: @ 8103A40 lsrs r1, 24 movs r2, 0x98 adds r3, r6, 0 - bl sub_8107D68 + bl blit_move_info_icon _08103AB6: add sp, 0x4 pop {r4-r7} @@ -4266,7 +4266,7 @@ _08104852: adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x18 pop {r4-r7} pop {r0} @@ -7753,7 +7753,7 @@ _08106478: lsrs r1, 24 movs r2, 0 movs r3, 0x1 - bl sub_8107D68 + bl blit_move_info_icon ldrb r1, [r4, 0x7] cmp r5, r1 beq _08106504 @@ -7765,7 +7765,7 @@ _08106478: lsrs r1, 24 movs r2, 0x20 movs r3, 0x1 - bl sub_8107D68 + bl blit_move_info_icon _08106504: ldr r7, _081066B8 @ =gUnknown_203ACF0 ldr r0, [r7] @@ -7777,7 +7777,7 @@ _08106504: ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram - bl dp13_810BB8C + bl ResetAllPicSprites ldr r0, _081066BC @ =gUnknown_8452368 movs r1, 0x90 lsls r1, 1 @@ -7802,7 +7802,7 @@ _08106534: ldr r0, [sp, 0x1C] movs r1, 0x8 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys ldr r1, [r7] adds r1, 0x58 strb r0, [r1] @@ -7892,7 +7892,7 @@ _08106534: ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 16 lsrs r0, 16 movs r3, 0 @@ -7902,7 +7902,7 @@ _08106534: movs r1, 0x1 movs r2, 0x50 movs r3, 0x68 - bl sub_810C2A4 + bl CreateTrainerPicSprite ldr r1, [r7] adds r1, 0x59 strb r0, [r1] @@ -8114,7 +8114,7 @@ _081067CE: ldrb r0, [r1] cmp r0, 0xFF beq _081067F2 - bl sub_810C2E8 + bl FreeAndDestroyTrainerPicSprite _081067F2: ldr r0, [r4] adds r1, r0, 0 @@ -8122,7 +8122,7 @@ _081067F2: ldrb r0, [r1] cmp r0, 0xFF beq _08106802 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite _08106802: movs r0, 0 pop {r4,r5} diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s index 0d4ee1bcb..416c996bb 100644 --- a/asm/pokemon_3.s +++ b/asm/pokemon_3.s @@ -785,8 +785,8 @@ _08044AE8: .4byte gUnknown_825E05C _08044AEC: .4byte gUnknown_82349BC thumb_func_end sub_8044A40 - thumb_func_start sub_8044AF0 -sub_8044AF0: @ 8044AF0 + thumb_func_start SetUpMonSpriteManagerMaybe +SetUpMonSpriteManagerMaybe: @ 8044AF0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1124,7 +1124,7 @@ _08044D70: bx r1 .align 2, 0 _08044D7C: .4byte gUnknown_20244F4 - thumb_func_end sub_8044AF0 + thumb_func_end SetUpMonSpriteManagerMaybe thumb_func_start sub_8044D80 sub_8044D80: @ 8044D80 diff --git a/asm/unk_8147500.s b/asm/pokemon_jump.s index 53fc6a8a0..c00c08f20 100644 --- a/asm/unk_8147500.s +++ b/asm/pokemon_jump.s @@ -5,118 +5,6 @@ .text - thumb_func_start sub_8147500 -sub_8147500: @ 8147500 - push {lr} - ldr r0, _08147518 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - ldr r0, _0814751C @ =gSpecialVar_0x8006 - ldrh r2, [r0] - cmp r1, 0x8 - beq _08147512 - cmp r2, 0x8 - bne _08147520 -_08147512: - movs r0, 0x1 - b _0814758E - .align 2, 0 -_08147518: .4byte gSpecialVar_0x8004 -_0814751C: .4byte gSpecialVar_0x8006 -_08147520: - cmp r1, 0 - beq _08147528 - cmp r2, 0 - bne _0814752C -_08147528: - movs r0, 0x7 - b _0814758E -_0814752C: - cmp r1, 0x9 - beq _08147534 - cmp r2, 0x9 - bne _08147538 -_08147534: - movs r0, 0xA - b _0814758E -_08147538: - cmp r1, 0xA - beq _08147540 - cmp r2, 0xA - bne _08147544 -_08147540: - movs r0, 0xC - b _0814758E -_08147544: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _0814755C - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _0814755C - movs r0, 0x2 - b _0814758E -_0814755C: - subs r0, r1, 0x4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _08147574 - subs r0, r2, 0x4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _08147574 - movs r0, 0x3 - b _0814758E -_08147574: - subs r0, r1, 0x6 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0814758C - subs r0, r2, 0x6 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0814758C - movs r0, 0x5 - b _0814758E -_0814758C: - movs r0, 0x6 -_0814758E: - pop {r1} - bx r1 - thumb_func_end sub_8147500 - - thumb_func_start sub_8147594 -sub_8147594: @ 8147594 - push {lr} - ldr r0, _081475B0 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldrh r1, [r2, 0x4] - ldr r0, _081475B4 @ =0x00000503 - cmp r1, r0 - bne _081475B8 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x17 - bgt _081475B8 - movs r0, 0x1 - b _081475BA - .align 2, 0 -_081475B0: .4byte gSaveBlock1Ptr -_081475B4: .4byte 0x00000503 -_081475B8: - movs r0, 0 -_081475BA: - pop {r1} - bx r1 - thumb_func_end sub_8147594 - thumb_func_start sub_81475C0 sub_81475C0: @ 81475C0 push {r4,r5,lr} @@ -708,7 +596,7 @@ sub_8147A34: @ 8147A34 ldrb r0, [r0] cmp r0, 0 beq _08147A98 - ldr r1, _08147A90 @ =gUnknown_3003ED0 + ldr r1, _08147A90 @ =gRecvCmds ldrh r0, [r1, 0x2] ldr r5, _08147A94 @ =0x00007fff cmp r0, r5 @@ -738,7 +626,7 @@ _08147A5C: .align 2, 0 _08147A88: .4byte gTasks+0x8 _08147A8C: .4byte gReceivedRemoteLinkPlayers -_08147A90: .4byte gUnknown_3003ED0 +_08147A90: .4byte gRecvCmds _08147A94: .4byte 0x00007fff _08147A98: ldrh r0, [r4, 0x16] diff --git a/asm/unk_8147AA8.s b/asm/pokemon_jump_2.s index a7761148d..a8595db7f 100644 --- a/asm/unk_8147AA8.s +++ b/asm/pokemon_jump_2.s @@ -2300,14 +2300,14 @@ _08148BFC: beq _08148C54 ldrh r0, [r1, 0x3E] ldrh r1, [r2] - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 beq _08148C54 ldr r0, [r4] ldrh r0, [r0, 0x3E] movs r1, 0x1 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _08148C4C @@ -4162,7 +4162,7 @@ _0814998A: beq _0814999C adds r0, r5, 0 adds r1, r4, 0 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 beq _08149984 @@ -4313,7 +4313,7 @@ sub_8149A90: @ 8149A90 push {r4,lr} sub sp, 0xC adds r4, r1, 0 - ldr r3, _08149AC4 @ =gUnknown_3003ED0 + ldr r3, _08149AC4 @ =gRecvCmds lsls r2, r0, 4 adds r0, r2, r3 ldrh r1, [r0] @@ -4337,7 +4337,7 @@ _08149AC0: movs r0, 0 b _08149AD8 .align 2, 0 -_08149AC4: .4byte gUnknown_3003ED0 +_08149AC4: .4byte gRecvCmds _08149AC8: mov r0, sp ldrh r0, [r0, 0x2] @@ -4443,7 +4443,7 @@ sub_8149B7C: @ 8149B7C sub sp, 0xC adds r5, r0, 0 adds r4, r1, 0 - ldr r2, _08149BE4 @ =gUnknown_3003ED0 + ldr r2, _08149BE4 @ =gRecvCmds ldrh r0, [r2] movs r1, 0xFF lsls r1, 8 @@ -4491,7 +4491,7 @@ sub_8149B7C: @ 8149B7C movs r0, 0x1 b _08149BEA .align 2, 0 -_08149BE4: .4byte gUnknown_3003ED0 +_08149BE4: .4byte gRecvCmds _08149BE8: movs r0, 0 _08149BEA: @@ -4534,7 +4534,7 @@ sub_8149C24: @ 8149C24 adds r4, r0, 0 adds r5, r2, 0 adds r6, r3, 0 - ldr r3, _08149C80 @ =gUnknown_3003ED0 + ldr r3, _08149C80 @ =gRecvCmds lsls r2, r1, 4 adds r0, r2, r3 ldrh r1, [r0] @@ -4575,7 +4575,7 @@ sub_8149C24: @ 8149C24 movs r0, 0x1 b _08149C86 .align 2, 0 -_08149C80: .4byte gUnknown_3003ED0 +_08149C80: .4byte gRecvCmds _08149C84: movs r0, 0 _08149C86: @@ -4590,7 +4590,7 @@ sub_8149C90: @ 8149C90 push {r4,lr} sub sp, 0xC adds r4, r0, 0 - ldr r3, _08149CDC @ =gUnknown_3003ED0 + ldr r3, _08149CDC @ =gRecvCmds lsls r2, r1, 4 adds r0, r2, r3 ldrh r1, [r0] @@ -4625,7 +4625,7 @@ sub_8149C90: @ 8149C90 movs r0, 0x1 b _08149CE2 .align 2, 0 -_08149CDC: .4byte gUnknown_3003ED0 +_08149CDC: .4byte gRecvCmds _08149CE0: movs r0, 0 _08149CE2: @@ -4875,7 +4875,7 @@ _08149DF0: movs r0, 0 movs r1, 0xA movs r2, 0xD0 - bl sub_814FE40 + bl LoadUserWindowBorderGfx movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x2 @@ -5179,7 +5179,7 @@ _0814A124: ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0x17 movs r1, 0x7 movs r2, 0 @@ -5265,7 +5265,7 @@ _0814A1D0: ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl CopyBgTilemapBufferToVram _0814A1F4: @@ -5386,7 +5386,7 @@ _0814A2C0: ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl CopyBgTilemapBufferToVram _0814A2E4: @@ -5468,7 +5468,7 @@ _0814A364: ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl CopyBgTilemapBufferToVram _0814A388: @@ -5613,7 +5613,7 @@ sub_814A468: @ 814A468 ldr r1, [r5] adds r1, 0x26 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r0, [r5] adds r0, 0x66 adds r1, r6, 0 @@ -5705,7 +5705,7 @@ sub_814A53C: @ 814A53C ldr r4, _0814A5AC @ =gUnknown_203F3D8 ldr r1, [r4] adds r1, 0x26 - bl sub_8099E90 + bl CopyItemName bl UnkTextUtil_Reset ldr r1, [r4] adds r1, 0x26 @@ -5760,7 +5760,7 @@ sub_814A5B4: @ 814A5B4 ldr r4, _0814A624 @ =gUnknown_203F3D8 ldr r1, [r4] adds r1, 0x26 - bl sub_8099E90 + bl CopyItemName bl UnkTextUtil_Reset ldr r1, [r4] adds r1, 0x26 @@ -5839,7 +5839,7 @@ _0814A652: ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r4] @@ -5961,7 +5961,7 @@ _0814A73C: thumb_func_start sub_814A744 sub_814A744: @ 814A744 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r0, 24 pop {r1} @@ -6075,7 +6075,7 @@ sub_814A7D0: @ 814A7D0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0x14 pop {r4,r5} pop {r0} @@ -6116,7 +6116,7 @@ sub_814A84C: @ 814A84C movs r1, 0 movs r2, 0 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC str r0, [sp] str r4, [sp, 0x4] @@ -6126,7 +6126,7 @@ sub_814A84C: @ 814A84C movs r1, 0 movs r2, 0 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x10 pop {r4} pop {r0} @@ -6582,7 +6582,7 @@ sub_814AB98: @ 814AB98 movs r1, 0 adds r2, r4, 0 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r6] adds r0, 0x1C add r0, r8 @@ -6877,7 +6877,7 @@ _0814AE2A: beq _0814AEEC ldrh r2, [r7] lsls r0, r2, 3 - ldr r1, _0814AED8 @ =gUnknown_82350AC + ldr r1, _0814AED8 @ =gMonFrontPicTable adds r0, r1 ldr r3, [r7, 0x8] mov r1, r8 @@ -6948,7 +6948,7 @@ _0814AE2A: strb r1, [r0] b _0814AEF8 .align 2, 0 -_0814AED8: .4byte gUnknown_82350AC +_0814AED8: .4byte gMonFrontPicTable _0814AEDC: .4byte 0xffff0000 _0814AEE0: .4byte 0x000081a8 _0814AEE4: .4byte gSprites @@ -7393,7 +7393,7 @@ _0814B1EC: movs r0, 0 strh r0, [r5, 0x30] _0814B1FE: - ldr r1, _0814B22C @ =gUnknown_825E074 + ldr r1, _0814B22C @ =gSineTable movs r2, 0x30 ldrsh r0, [r5, r2] lsls r0, 1 @@ -7417,7 +7417,7 @@ _0814B1FE: strh r1, [r5, 0x2E] b _0814B234 .align 2, 0 -_0814B22C: .4byte gUnknown_825E074 +_0814B22C: .4byte gSineTable _0814B230: ldr r0, _0814B23C @ =SpriteCallbackDummy str r0, [r5, 0x1C] @@ -7930,11 +7930,11 @@ sub_814B5C4: @ 814B5C4 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter adds r0, r4, 0 movs r1, 0x11 bl FillWindowPixelBuffer @@ -7950,7 +7950,7 @@ sub_814B5C4: @ 814B5C4 adds r0, r4, 0 movs r1, 0x2 movs r3, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 movs r7, 0 mov r8, r4 movs r1, 0xFF @@ -7980,7 +7980,7 @@ _0814B63E: mov r0, r8 movs r1, 0x2 movs r3, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 ldr r0, [sp, 0x2C] ldm r0!, {r1} str r0, [sp, 0x2C] @@ -8007,7 +8007,7 @@ _0814B63E: mov r0, r8 movs r1, 0x2 adds r2, r5, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 movs r0, 0xE0 lsls r0, 20 add r9, r0 diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s index fa72d3c8e..94d451a73 100644 --- a/asm/pokemon_special_anim.s +++ b/asm/pokemon_special_anim.s @@ -558,7 +558,7 @@ _0811C9AA: adds r0, r4, 0 adds r0, 0x96 ldrh r0, [r0] - bl sub_80A1150 + bl GetItemCompatibilityRule lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -1617,7 +1617,7 @@ sub_811D184: @ 811D184 movs r0, 0 movs r1, 0 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -1688,7 +1688,7 @@ sub_811D2A8: @ 811D2A8 movs r0, 0 movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -1703,7 +1703,7 @@ sub_811D2D0: @ 811D2D0 bl ClearWindowTilemap movs r0, 0 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0 movs r1, 0x1 bl CopyWindowToVram @@ -1727,7 +1727,7 @@ sub_811D2EC: @ 811D2EC lsrs r7, r0, 16 movs r0, 0 mov r8, r0 - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 mov r9, r0 @@ -1759,7 +1759,7 @@ _0811D330: _0811D358: adds r4, 0x14 adds r0, r7, 0 - bl ItemId_GetItem + bl ItemId_GetName adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -1918,7 +1918,7 @@ _0811D4A2: movs r0, 0 movs r1, 0x2 adds r2, r4, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 _0811D4C2: add sp, 0x14 pop {r3,r4} @@ -2285,7 +2285,7 @@ sub_811D764: @ 811D764 movs r0, 0x1 movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0x2 str r0, [sp] movs r0, 0x3 @@ -2441,7 +2441,7 @@ _0811D884: cmp r4, 0 beq _0811D916 lsls r0, r7, 3 - ldr r1, _0811D900 @ =gUnknown_82350AC + ldr r1, _0811D900 @ =gMonFrontPicTable adds r0, r1 adds r1, r6, 0 adds r2, r7, 0 @@ -2474,7 +2474,7 @@ _0811D884: bl sub_811DB14 b _0811D910 .align 2, 0 -_0811D900: .4byte gUnknown_82350AC +_0811D900: .4byte gMonFrontPicTable _0811D904: .4byte gUnknown_8459A30 _0811D908: .4byte gSprites _0811D90C: @@ -3400,7 +3400,7 @@ sub_811DFC0: @ 811DFC0 strh r0, [r3, 0x4] movs r5, 0x4 ldrsh r1, [r3, r5] - ldr r2, _0811E018 @ =gUnknown_825E074 + ldr r2, _0811E018 @ =gSineTable movs r5, 0x2 ldrsh r0, [r3, r5] adds r0, 0x40 @@ -3424,7 +3424,7 @@ sub_811DFC0: @ 811DFC0 strh r0, [r4, 0x26] b _0811E036 .align 2, 0 -_0811E018: .4byte gUnknown_825E074 +_0811E018: .4byte gSineTable _0811E01C: ldr r2, _0811E03C @ =gTasks movs r5, 0xE @@ -3958,7 +3958,7 @@ _0811E3E0: lsls r0, 16 lsrs r0, 16 adds r0, 0x46 - ldr r3, _0811E4BC @ =gUnknown_825E074 + ldr r3, _0811E4BC @ =gSineTable movs r4, 0xA ldrsh r2, [r5, r4] adds r1, r2, 0 @@ -4035,7 +4035,7 @@ _0811E4A4: strh r0, [r5] b _0811E4DC .align 2, 0 -_0811E4BC: .4byte gUnknown_825E074 +_0811E4BC: .4byte gSineTable _0811E4C0: .4byte gUnknown_8459B30 _0811E4C4: .4byte gSprites _0811E4C8: @@ -4548,7 +4548,7 @@ _0811E880: movs r1, 0x2 movs r2, 0 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 lsls r0, r7, 1 mov r4, sp adds r4, r0 @@ -4571,7 +4571,7 @@ _0811E8BA: movs r1, 0x2 movs r2, 0x38 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 strb r0, [r6] movs r0, 0 @@ -4604,7 +4604,7 @@ _0811E8F4: mov r0, r8 movs r1, 0x2 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 @@ -4725,7 +4725,7 @@ _0811E9C0: movs r1, 0x2 movs r2, 0 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r4, 0x38 lsls r4, 24 lsrs r4, 24 @@ -4739,7 +4739,7 @@ _0811E9C0: movs r1, 0x2 adds r2, r4, 0 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 37f9e9762..4c851f4cb 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -807,7 +807,7 @@ _0808BF3C: str r1, [sp, 0x10] movs r1, 0x1 movs r3, 0x2 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r0, [sp, 0x50] mov r10, r4 cmp r0, 0x6 @@ -960,7 +960,7 @@ sub_808BFE0: @ 808BFE0 movs r1, 0x1 movs r2, 0 movs r3, 0x2 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 lsrs r5, 1 adds r0, r7, 0 ldr r1, [sp, 0x24] @@ -1412,7 +1412,7 @@ _0808C3CC: .4byte _0808C680 _0808C3E0: movs r0, 0x1C - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldrb r0, [r5, 0xA] adds r1, r5, 0 adds r1, 0x26 @@ -1420,7 +1420,7 @@ _0808C3E0: bl sub_80F6E9C movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer @@ -1442,7 +1442,7 @@ _0808C3E0: movs r0, 0 movs r1, 0x2 movs r3, 0xFF - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -1549,7 +1549,7 @@ _0808C4CE: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _0808C69C .align 2, 0 _0808C504: .4byte gMain @@ -1557,12 +1557,12 @@ _0808C508: .4byte gUnknown_83CDA20 _0808C50C: movs r0, 0 movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrh r0, [r5, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame bl ScriptContext2_Disable bl EnableBothScriptContexts adds r0, r4, 0 @@ -1725,7 +1725,7 @@ _0808C66E: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 strh r4, [r5, 0x8] b _0808C69C .align 2, 0 @@ -1737,7 +1737,7 @@ _0808C680: ands r0, r1 cmp r0, 0 bne _0808C69C - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldrb r0, [r5, 0xC] bl sub_808CDE4 adds r0, r4, 0 @@ -1833,7 +1833,7 @@ sub_808C72C: @ 808C72C lsrs r4, 24 adds r0, r4, 0 movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame movs r0, 0x2 movs r1, 0 bl GetMenuCursorDimensionByFont @@ -1861,7 +1861,7 @@ sub_808C72C: @ 808C72C movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow mov r0, r10 strh r5, [r0] add sp, 0xC @@ -1883,18 +1883,18 @@ sub_808C7B4: @ 808C7B4 bl sub_808FDF0 ldr r1, _0808C7D0 @ =gUnknown_20397A8 strb r0, [r1] - ldr r1, _0808C7D4 @ =gUnknown_3005020 + ldr r1, _0808C7D4 @ =gFieldCallback ldr r0, _0808C7D8 @ =mapldr_0808C6D8 str r0, [r1] - ldr r0, _0808C7DC @ =c2_exit_to_overworld_2_switch + ldr r0, _0808C7DC @ =CB2_ReturnToField bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0808C7D0: .4byte gUnknown_20397A8 -_0808C7D4: .4byte gUnknown_3005020 +_0808C7D4: .4byte gFieldCallback _0808C7D8: .4byte mapldr_0808C6D8 -_0808C7DC: .4byte c2_exit_to_overworld_2_switch +_0808C7DC: .4byte CB2_ReturnToField thumb_func_end sub_808C7B4 thumb_func_start sub_808C7E0 @@ -2716,7 +2716,7 @@ _0808CE18: ldr r1, [r4] strb r0, [r1, 0x4] movs r0, 0x1C - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 bl StorageGetCurrentBox ldr r1, _0808CE58 @ =gUnknown_20397B8 strb r0, [r1] @@ -2767,7 +2767,7 @@ _0808CE8C: ldr r1, [r4] strb r0, [r1, 0x4] movs r0, 0x1C - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r0, _0808CEC4 @ =c2_Box bl SetMainCallback2 _0808CEB6: @@ -3035,7 +3035,7 @@ _0808D0D6: movs r0, 0x1 movs r1, 0xB movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame b _0808D20C .align 2, 0 _0808D100: .4byte 0x05000080 @@ -4700,7 +4700,7 @@ _0808DF24: adds r0, 0x1 strb r0, [r1] _0808DF3A: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -5151,7 +5151,7 @@ _0808E2E8: adds r0, r1 ldrh r0, [r0] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _0808E314 @@ -5479,7 +5479,7 @@ _0808E59C: .align 2, 0 _0808E5B8: .4byte gUnknown_20397B0 _0808E5BC: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -5504,7 +5504,7 @@ _0808E5E0: adds r0, r1 ldrh r0, [r0] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6284,7 +6284,7 @@ _0808EC40: .align 2, 0 _0808EC50: .4byte gMain _0808EC54: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -6426,7 +6426,7 @@ _0808ED74: .align 2, 0 _0808ED84: .4byte gMain _0808ED88: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -6643,7 +6643,7 @@ _0808EF56: mov r0, sp ldrh r0, [r0] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _0808EF60: add sp, 0x4 pop {r0} @@ -6681,7 +6681,7 @@ sub_808EF8C: @ 808EF8C movs r0, 0x3 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, _0808EFC0 @ =gUnknown_83CE4D0 ldr r1, _0808EFC4 @ =0x0600f800 bl LZ77UnCompVram @@ -6724,7 +6724,7 @@ sub_808EFE4: @ 808EFE4 movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, _0808F038 @ =gUnknown_83CE5FC ldr r5, _0808F03C @ =gUnknown_20397B0 ldr r1, [r5] @@ -7229,7 +7229,7 @@ sub_808F3F8: @ 808F3F8 cmp r2, 0 beq _0808F48C lsls r0, r2, 3 - ldr r1, _0808F470 @ =gUnknown_82350AC + ldr r1, _0808F470 @ =gMonFrontPicTable adds r0, r1 ldr r5, _0808F474 @ =0x000022bc adds r1, r4, r5 @@ -7270,7 +7270,7 @@ sub_808F3F8: @ 808F3F8 .align 2, 0 _0808F468: .4byte gUnknown_20397B0 _0808F46C: .4byte 0x00002238 -_0808F470: .4byte gUnknown_82350AC +_0808F470: .4byte gMonFrontPicTable _0808F474: .4byte 0x000022bc _0808F478: .4byte 0x00000cd8 _0808F47C: .4byte 0x0000223c @@ -8165,7 +8165,7 @@ sub_808FB68: @ 808FB68 movs r0, 0x1 movs r1, 0x2 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0x20 str r0, [sp] movs r0, 0x14 @@ -8311,7 +8311,7 @@ _0808FC7C: movs r0, 0x1 movs r1, 0x2 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 @@ -8345,7 +8345,7 @@ sub_808FCE8: @ 808FCE8 str r1, [sp, 0x8] movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu lsls r4, 24 asrs r4, 24 adds r0, r4, 0 @@ -8363,7 +8363,7 @@ sub_808FD20: @ 808FD20 push {lr} movs r0, 0x1 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0 bl schedule_bg_copy_tilemap_to_vram pop {r0} @@ -10686,7 +10686,7 @@ _08090EC6: ldr r0, [r4] ldr r0, [r0] mov r8, r0 - ldr r5, _08090FB8 @ =gUnknown_825E074 + ldr r5, _08090FB8 @ =gSineTable mov r0, r9 adds r1, r3, r0 ldrb r0, [r1] @@ -10803,7 +10803,7 @@ _08090FA0: _08090FAC: .4byte 0x00000c59 _08090FB0: .4byte 0x00000afc _08090FB4: .4byte 0x00000a68 -_08090FB8: .4byte gUnknown_825E074 +_08090FB8: .4byte gSineTable _08090FBC: .4byte sub_80911B0 _08090FC0: .4byte SpriteCallbackDummy thumb_func_end sub_8090E74 @@ -12046,7 +12046,7 @@ _08091938: str r0, [sp] movs r0, 0x2 movs r2, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap movs r0, 0x2 bl CopyBgTilemapBufferToVram add sp, 0x4 @@ -16876,7 +16876,7 @@ _08093EF2: beq _08093F78 ldr r3, _08093F74 @ =0x00000d61 adds r4, r3 - bl ItemId_GetItem + bl ItemId_GetName adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 @@ -18961,7 +18961,7 @@ sub_8094E88: @ 8094E88 movs r1, 0x1 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r0, [r5] @@ -19077,7 +19077,7 @@ sub_8095024: @ 8095024 adds r0, r4 ldrb r0, [r0] movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldr r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -21364,7 +21364,7 @@ sub_80961A8: @ 80961A8 ldr r1, _080961C0 @ =0x00002224 adds r0, r1 ldrh r0, [r0] - bl ItemId_GetItem + bl ItemId_GetName pop {r1} bx r1 .align 2, 0 @@ -22054,7 +22054,7 @@ _080966BA: movs r1, 0x2 adds r2, r4, 0 movs r3, 0x2 - bl sub_812E62C + bl AddTextPrinterParameterized5 add sp, 0x14 pop {r4} pop {r0} @@ -22569,7 +22569,7 @@ _08096AA2: lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x22] - ldr r1, _08096B08 @ =gUnknown_825E074 + ldr r1, _08096B08 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 4 @@ -22605,7 +22605,7 @@ _08096B00: pop {r0} bx r0 .align 2, 0 -_08096B08: .4byte gUnknown_825E074 +_08096B08: .4byte gSineTable _08096B0C: .4byte sub_80969BC thumb_func_end sub_8096A74 @@ -22650,7 +22650,7 @@ _08096B3E: lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x22] - ldr r1, _08096BA4 @ =gUnknown_825E074 + ldr r1, _08096BA4 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 4 @@ -22687,7 +22687,7 @@ _08096B9E: pop {r0} bx r0 .align 2, 0 -_08096BA4: .4byte gUnknown_825E074 +_08096BA4: .4byte gSineTable _08096BA8: .4byte SpriteCallbackDummy thumb_func_end sub_8096B10 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 8db247b2b..60062910c 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -107,7 +107,7 @@ _081345D0: beq _08134604 _081345D4: movs r0, 0x6 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r2, _081345F8 @ =gUnknown_203B140 ldr r0, [r2] ldr r3, _081345FC @ =0x00003214 @@ -128,7 +128,7 @@ _081345FC: .4byte 0x00003214 _08134600: .4byte 0x00003234 _08134604: movs r0, 0x6 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r0, [r4] ldr r3, _08134628 @ =0x00003214 adds r0, r3 @@ -149,7 +149,7 @@ _0813462C: .4byte 0x0000321c _08134630: .4byte 0x00003234 _08134634: movs r0, 0x8 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r0, [r4] ldr r3, _08134710 @ =0x00003214 adds r0, r3 @@ -3549,7 +3549,7 @@ _08136264: ldr r0, [r6] ldr r4, _08136328 @ =0x00003088 adds r0, r4 - ldr r1, _0813632C @ =gUnknown_8416223 + ldr r1, _0813632C @ =gText_Lv bl StringCopy ldr r0, [r6] adds r0, r4 @@ -3580,14 +3580,14 @@ _0813631C: .4byte 0x00003290 _08136320: .4byte 0x0000ffff _08136324: .4byte 0x0000306c _08136328: .4byte 0x00003088 -_0813632C: .4byte gUnknown_8416223 +_0813632C: .4byte gText_Lv _08136330: .4byte 0x00003074 _08136334: .4byte gUnknown_84161EF _08136338: ldr r1, [r6] ldr r2, _0813634C @ =0x00003074 adds r1, r2 - bl sub_8099E90 + bl CopyItemName _08136342: add sp, 0x14 pop {r4-r7} @@ -4180,7 +4180,7 @@ _08136812: adds r1, r4, r3 ldr r0, [r6] adds r0, r1 - ldr r5, _081368A4 @ =gUnknown_8416213 + ldr r5, _081368A4 @ =gText_ThreeHyphens adds r1, r5, 0 bl StringCopy ldr r0, _081368A8 @ =0x00003188 @@ -4209,7 +4209,7 @@ _08136894: .4byte gUnknown_841620E _08136898: .4byte 0x000030b8 _0813689C: .4byte gUnknown_8416210 _081368A0: .4byte 0x0000316c -_081368A4: .4byte gUnknown_8416213 +_081368A4: .4byte gText_ThreeHyphens _081368A8: .4byte 0x00003188 _081368AC: .4byte gUnknown_203B144 _081368B0: @@ -4399,7 +4399,7 @@ _081369D0: ldr r1, _08136A68 @ =0x0000316c adds r0, r1 adds r0, r6, r0 - ldr r1, _08136A6C @ =gUnknown_8416213 + ldr r1, _08136A6C @ =gText_ThreeHyphens bl StringCopy b _08136A84 .align 2, 0 @@ -4411,7 +4411,7 @@ _08136A5C: .4byte 0x00003258 _08136A60: .4byte gUnknown_203B144 _08136A64: .4byte gBattleMoves _08136A68: .4byte 0x0000316c -_08136A6C: .4byte gUnknown_8416213 +_08136A6C: .4byte gText_ThreeHyphens _08136A70: lsls r4, r7, 2 adds r0, r4, r7 @@ -4441,7 +4441,7 @@ _08136A84: ldr r2, _08136AC0 @ =0x00003188 adds r0, r2 adds r0, r3, r0 - ldr r1, _08136AC4 @ =gUnknown_8416213 + ldr r1, _08136AC4 @ =gText_ThreeHyphens bl StringCopy b _08136ADA .align 2, 0 @@ -4450,7 +4450,7 @@ _08136AB4: .4byte gBattleMoves _08136AB8: .4byte gUnknown_203B140 _08136ABC: .4byte 0x00003258 _08136AC0: .4byte 0x00003188 -_08136AC4: .4byte gUnknown_8416213 +_08136AC4: .4byte gText_ThreeHyphens _08136AC8: adds r0, r4, r7 ldr r4, _08136AE8 @ =0x00003188 @@ -4567,7 +4567,7 @@ sub_8136BAC: @ 8136BAC bl ResetSpriteData bl ResetPaletteFade bl FreeAllSpritePalettes - bl remove_some_task + bl ScanlineEffect_Stop pop {r0} bx r0 thumb_func_end sub_8136BAC @@ -4808,7 +4808,7 @@ sub_8136DA4: @ 8136DA4 movs r1, 0x2 movs r2, 0x4 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -4853,7 +4853,7 @@ sub_8136DF0: @ 8136DF0 adds r0, r1, 0 movs r1, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -4904,7 +4904,7 @@ sub_8136E50: @ 8136E50 movs r1, 0x2 movs r2, 0x4 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 _08136E9A: ldr r2, [r6] adds r0, r2, r7 @@ -4920,7 +4920,7 @@ _08136E9A: movs r1, 0x2 movs r2, 0x28 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r6] ldr r3, _08136F04 @ =0x00003290 adds r0, r3 @@ -4941,7 +4941,7 @@ _08136E9A: movs r1, 0x2 movs r2, 0x69 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 b _08136F28 .align 2, 0 _08136EEC: .4byte gUnknown_203B140 @@ -4965,7 +4965,7 @@ _08136F0C: movs r1, 0x2 movs r2, 0x69 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 _08136F28: ldr r0, _08136F44 @ =gUnknown_203B140 ldr r0, [r0] @@ -5053,7 +5053,7 @@ sub_8136FB0: @ 8136FB0 movs r1, 0x2 movs r2, 0x2F movs r3, 0x13 - bl box_print + bl AddTextPrinterParameterized3 ldr r3, [r6] movs r1, 0xC8 lsls r1, 6 @@ -5077,7 +5077,7 @@ sub_8136FB0: @ 8136FB0 str r1, [sp, 0x8] movs r1, 0x2 movs r3, 0x5 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r6] ldr r2, _08137064 @ =0x00003003 adds r0, r1, r2 @@ -5090,7 +5090,7 @@ sub_8136FB0: @ 8136FB0 movs r1, 0x2 movs r2, 0x2F movs r3, 0x31 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r6] ldr r2, _08137064 @ =0x00003003 adds r0, r1, r2 @@ -5103,7 +5103,7 @@ sub_8136FB0: @ 8136FB0 movs r1, 0x2 movs r2, 0x2F movs r3, 0x40 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r6] ldr r2, _08137064 @ =0x00003003 adds r0, r1, r2 @@ -5116,7 +5116,7 @@ sub_8136FB0: @ 8136FB0 movs r1, 0x2 movs r2, 0x2F movs r3, 0x4F - bl box_print + bl AddTextPrinterParameterized3 b _081370CA .align 2, 0 _08137060: .4byte gUnknown_203B140 @@ -5167,7 +5167,7 @@ _081370A6: movs r1, 0x2 movs r2, 0x7 movs r3, 0x2D - bl box_print + bl AddTextPrinterParameterized3 _081370CA: add sp, 0xC pop {r4-r7} @@ -5212,7 +5212,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x4 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5230,7 +5230,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x16 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5248,7 +5248,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x23 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5266,7 +5266,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x30 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5284,7 +5284,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x3D - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5302,7 +5302,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x4A - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5320,7 +5320,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x57 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r4, r3, r4 @@ -5338,7 +5338,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x64 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3,r4} mov r8, r3 @@ -5406,7 +5406,7 @@ _081372B0: movs r1, 0x2 movs r2, 0x3 movs r3, 0x75 - bl box_print + bl AddTextPrinterParameterized3 _081372CE: add sp, 0xC pop {r4} @@ -5490,7 +5490,7 @@ _0813733E: movs r1, 0x2 movs r2, 0x3 mov r3, r12 - bl box_print + bl AddTextPrinterParameterized3 mov r1, r10 ldr r0, [r1] ldr r2, _081373A4 @ =0x00003258 @@ -5577,7 +5577,7 @@ _081373EA: movs r1, 0x2 movs r2, 0x24 mov r3, r8 - bl box_print + bl AddTextPrinterParameterized3 mov r0, r10 ldr r3, [r0] adds r4, r3, r4 @@ -5603,7 +5603,7 @@ _081373EA: str r3, [sp, 0x8] movs r1, 0x2 mov r3, r8 - bl box_print + bl AddTextPrinterParameterized3 mov r0, r10 ldr r1, [r0] ldr r2, _081374DC @ =0x00003258 @@ -5623,7 +5623,7 @@ _081373EA: movs r1, 0x2 movs r2, 0x3A mov r3, r8 - bl box_print + bl AddTextPrinterParameterized3 mov r0, r10 ldr r3, [r0] ldr r1, _081374C8 @ =0x00003003 @@ -5645,7 +5645,7 @@ _081373EA: str r3, [sp, 0x8] movs r1, 0x2 mov r3, r8 - bl box_print + bl AddTextPrinterParameterized3 _081374B4: add sp, 0x10 pop {r3-r5} @@ -5928,7 +5928,7 @@ _081376E6: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0xD4 pop {r4-r7} pop {r0} @@ -6052,7 +6052,7 @@ _081377F6: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 b _0813792C .align 2, 0 _08137820: .4byte gUnknown_8419782 @@ -6176,7 +6176,7 @@ _08137906: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 _0813792C: add sp, 0xD4 pop {r4-r6} @@ -6341,7 +6341,7 @@ _08137A46: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r4-r7} pop {r0} @@ -6377,7 +6377,7 @@ sub_8137A90: @ 8137A90 movs r1, 0x2 movs r2, 0x1A movs r3, 0x7 - bl box_print + bl AddTextPrinterParameterized3 mov r1, r8 ldr r0, [r1] adds r0, r6 @@ -6389,7 +6389,7 @@ sub_8137A90: @ 8137A90 movs r1, 0x2 movs r2, 0x1A movs r3, 0x14 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3} mov r8, r3 @@ -6444,7 +6444,7 @@ _08137B1C: movs r1, 0x2 movs r2, 0x39 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r3, [r7] adds r0, r3, r4 ldrb r0, [r0] @@ -6461,7 +6461,7 @@ _08137B1C: movs r1, 0x2 movs r2, 0x39 movs r3, 0xF - bl box_print + bl AddTextPrinterParameterized3 ldr r2, [r7] adds r4, r2, r4 ldrb r0, [r4] @@ -6486,7 +6486,7 @@ _08137B1C: movs r1, 0x2 movs r2, 0x7 movs r3, 0x2A - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 _08137B9E: add sp, 0x14 pop {r3} @@ -6569,7 +6569,7 @@ sub_8137C18: @ 8137C18 movs r1, 0x2 movs r2, 0x42 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r5] adds r4, r1, r4 ldrb r0, [r4] @@ -6582,7 +6582,7 @@ sub_8137C18: @ 8137C18 movs r1, 0x2 movs r2, 0x2 movs r3, 0xF - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3} mov r8, r3 @@ -6636,7 +6636,7 @@ _08137CA4: adds r3, r2 lsrs r3, 16 movs r2, 0x3 - bl sub_8107D68 + bl blit_move_info_icon _08137CDE: adds r0, r4, 0x1 lsls r0, 24 @@ -6660,7 +6660,7 @@ _08137CDE: lsrs r1, 24 movs r2, 0x3 movs r3, 0x75 - bl sub_8107D68 + bl blit_move_info_icon _08137D0E: pop {r4,r5} pop {r0} @@ -7608,7 +7608,7 @@ _0813846C: _08138470: movs r0, 0x7 _08138472: - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _08138476: pop {r0} bx r0 @@ -8325,7 +8325,7 @@ _08138A62: lsrs r1, 24 movs r2, 0x2F movs r3, 0x23 - bl sub_8107D68 + bl blit_move_info_icon ldr r1, [r6] adds r4, r1, r4 ldr r3, _08138AB8 @ =0x00003221 @@ -8342,7 +8342,7 @@ _08138A62: lsrs r1, 24 movs r2, 0x53 movs r3, 0x23 - bl sub_8107D68 + bl blit_move_info_icon b _08138B0E .align 2, 0 _08138AB0: .4byte 0x00003003 @@ -8365,7 +8365,7 @@ _08138ABC: lsrs r1, 24 movs r2, 0 movs r3, 0x3 - bl sub_8107D68 + bl blit_move_info_icon ldr r2, [r6] adds r4, r2, r4 ldr r1, _08138B1C @ =0x00003221 @@ -8381,7 +8381,7 @@ _08138ABC: lsrs r1, 24 movs r2, 0x24 movs r3, 0x3 - bl sub_8107D68 + bl blit_move_info_icon _08138B04: ldr r0, [r6] adds r0, r5 @@ -8431,7 +8431,7 @@ _08138B48: .4byte 0x00003208 thumb_func_start sub_8138B4C sub_8138B4C: @ 8138B4C push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _08138B84 bl sub_811FA20 @@ -9875,7 +9875,7 @@ _081396A8: movs r1, 0x2 movs r2, 0x7 movs r3, 0x2A - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -10258,7 +10258,7 @@ sub_813995C: @ 813995C adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x1 - bl sub_810C16C + bl CreateMonPicSprite b _08139A40 .align 2, 0 _081399CC: .4byte gUnknown_203B170 @@ -10290,7 +10290,7 @@ _081399E8: adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x1 - bl sub_810C16C + bl CreateMonPicSprite b _08139A40 .align 2, 0 _08139A1C: .4byte gUnknown_203B16C @@ -10308,7 +10308,7 @@ _08139A24: adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys _08139A40: lsls r0, 16 lsrs r5, r0, 16 @@ -10593,7 +10593,7 @@ sub_8139C80: @ 8139C80 ldr r1, _08139CA8 @ =0x00003010 adds r0, r1 ldrb r0, [r0] - bl sub_810C214 + bl FreeAndDestroyMonPicSprite ldr r4, _08139CAC @ =gUnknown_203B170 ldr r0, [r4] bl Free @@ -13239,7 +13239,7 @@ _0813B16C: _0813B190: .4byte 0x000032f4 _0813B194: .4byte 0x00003210 _0813B198: - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _0813B1C4 ldr r0, _0813B1C0 @ =gReceivedRemoteLinkPlayers @@ -14088,7 +14088,7 @@ _0813B84E: sub_813B854: @ 813B854 push {lr} sub sp, 0x4 - ldr r3, _0813B86C @ =c2_exit_to_overworld_2_switch + ldr r3, _0813B86C @ =CB2_ReturnToField movs r0, 0 str r0, [sp] movs r1, 0 @@ -14098,7 +14098,7 @@ sub_813B854: @ 813B854 pop {r0} bx r0 .align 2, 0 -_0813B86C: .4byte c2_exit_to_overworld_2_switch +_0813B86C: .4byte CB2_ReturnToField thumb_func_end sub_813B854 .align 2, 0 @ Don't pad with nop. diff --git a/asm/prof_pc.s b/asm/prof_pc.s deleted file mode 100644 index 9c9dfa79c..000000000 --- a/asm/prof_pc.s +++ /dev/null @@ -1,204 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80CA3D8 -sub_80CA3D8: @ 80CA3D8 - push {lr} - ldr r0, _080CA3F4 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _080CA3FC - movs r0, 0 - bl sub_8088EDC - ldr r1, _080CA3F8 @ =gSpecialVar_0x8005 - strh r0, [r1] - movs r0, 0x1 - bl sub_8088EDC - b _080CA40C - .align 2, 0 -_080CA3F4: .4byte gSpecialVar_0x8004 -_080CA3F8: .4byte gSpecialVar_0x8005 -_080CA3FC: - movs r0, 0 - bl pokedex_count - ldr r1, _080CA41C @ =gSpecialVar_0x8005 - strh r0, [r1] - movs r0, 0x1 - bl pokedex_count -_080CA40C: - ldr r1, _080CA420 @ =gSpecialVar_0x8006 - strh r0, [r1] - bl sub_806E25C - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_080CA41C: .4byte gSpecialVar_0x8005 -_080CA420: .4byte gSpecialVar_0x8006 - thumb_func_end sub_80CA3D8 - - thumb_func_start sub_80CA424 -sub_80CA424: @ 80CA424 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _080CA440 @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] - cmp r2, 0x9 - bhi _080CA436 - b _080CA50C -_080CA436: - cmp r2, 0x13 - bhi _080CA448 - ldr r0, _080CA444 @ =gUnknown_81A6D6D - b _080CA51A - .align 2, 0 -_080CA440: .4byte gSpecialVar_Result -_080CA444: .4byte gUnknown_81A6D6D -_080CA448: - cmp r2, 0x1D - bhi _080CA454 - ldr r0, _080CA450 @ =gUnknown_81A6DDF - b _080CA51A - .align 2, 0 -_080CA450: .4byte gUnknown_81A6DDF -_080CA454: - cmp r2, 0x27 - bhi _080CA460 - ldr r0, _080CA45C @ =gUnknown_81A6E36 - b _080CA51A - .align 2, 0 -_080CA45C: .4byte gUnknown_81A6E36 -_080CA460: - cmp r2, 0x31 - bhi _080CA46C - ldr r0, _080CA468 @ =gUnknown_81A6EA4 - b _080CA51A - .align 2, 0 -_080CA468: .4byte gUnknown_81A6EA4 -_080CA46C: - cmp r2, 0x3B - bhi _080CA478 - ldr r0, _080CA474 @ =gUnknown_81A6F0B - b _080CA51A - .align 2, 0 -_080CA474: .4byte gUnknown_81A6F0B -_080CA478: - cmp r2, 0x45 - bhi _080CA484 - ldr r0, _080CA480 @ =gUnknown_81A6F71 - b _080CA51A - .align 2, 0 -_080CA480: .4byte gUnknown_81A6F71 -_080CA484: - cmp r2, 0x4F - bhi _080CA490 - ldr r0, _080CA48C @ =gUnknown_81A6FAB - b _080CA51A - .align 2, 0 -_080CA48C: .4byte gUnknown_81A6FAB -_080CA490: - cmp r2, 0x59 - bhi _080CA49C - ldr r0, _080CA498 @ =gUnknown_81A6FF1 - b _080CA51A - .align 2, 0 -_080CA498: .4byte gUnknown_81A6FF1 -_080CA49C: - cmp r2, 0x63 - bhi _080CA4A8 - ldr r0, _080CA4A4 @ =gUnknown_81A7031 - b _080CA51A - .align 2, 0 -_080CA4A4: .4byte gUnknown_81A7031 -_080CA4A8: - cmp r2, 0x6D - bhi _080CA4B4 - ldr r0, _080CA4B0 @ =gUnknown_81A7063 - b _080CA51A - .align 2, 0 -_080CA4B0: .4byte gUnknown_81A7063 -_080CA4B4: - cmp r2, 0x77 - bhi _080CA4C0 - ldr r0, _080CA4BC @ =gUnknown_81A70A5 - b _080CA51A - .align 2, 0 -_080CA4BC: .4byte gUnknown_81A70A5 -_080CA4C0: - cmp r2, 0x81 - bhi _080CA4CC - ldr r0, _080CA4C8 @ =gUnknown_81A70D8 - b _080CA51A - .align 2, 0 -_080CA4C8: .4byte gUnknown_81A70D8 -_080CA4CC: - cmp r2, 0x8B - bhi _080CA4D8 - ldr r0, _080CA4D4 @ =gUnknown_81A7108 - b _080CA51A - .align 2, 0 -_080CA4D4: .4byte gUnknown_81A7108 -_080CA4D8: - cmp r2, 0x95 - bls _080CA4F6 - cmp r2, 0x96 - bne _080CA508 - movs r0, 0x97 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl GetSetPokedexFlag - lsls r0, 24 - cmp r0, 0 - beq _080CA500 -_080CA4F6: - ldr r0, _080CA4FC @ =gUnknown_81A7137 - b _080CA51A - .align 2, 0 -_080CA4FC: .4byte gUnknown_81A7137 -_080CA500: - ldr r1, _080CA504 @ =gSpecialVar_Result - b _080CA514 - .align 2, 0 -_080CA504: .4byte gSpecialVar_Result -_080CA508: - cmp r2, 0x97 - beq _080CA514 -_080CA50C: - ldr r0, _080CA510 @ =gUnknown_81A6D17 - b _080CA51A - .align 2, 0 -_080CA510: .4byte gUnknown_81A6D17 -_080CA514: - movs r0, 0x1 - strh r0, [r1] - ldr r0, _080CA520 @ =gUnknown_81A7175 -_080CA51A: - pop {r1} - bx r1 - .align 2, 0 -_080CA520: .4byte gUnknown_81A7175 - thumb_func_end sub_80CA424 - - thumb_func_start sub_80CA524 -sub_80CA524: @ 80CA524 - push {lr} - ldr r0, _080CA538 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - bl sub_80CA424 - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_080CA538: .4byte gSpecialVar_0x8004 - thumb_func_end sub_80CA524 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/psychic.s b/asm/psychic.s new file mode 100644 index 000000000..ef0fc1385 --- /dev/null +++ b/asm/psychic.s @@ -0,0 +1,2180 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B2ECC +sub_80B2ECC: @ 80B2ECC + push {r4-r7,lr} + adds r6, r0, 0 + ldr r0, _080B2F84 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B2EE8 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B2EFE +_080B2EE8: + ldrb r1, [r6, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r6, 0x5] + adds r1, r6, 0 + adds r1, 0x43 + movs r0, 0xC8 + strb r0, [r1] +_080B2EFE: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B2F5A + movs r0, 0x1 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + adds r0, r4, 0 + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B2F3C + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8072E48 +_080B2F3C: + movs r0, 0x2 + adds r4, r0, 0 + eors r4, r7 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B2F5A + movs r0, 0x1 + eors r5, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8072E48 +_080B2F5A: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B2F90 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080B2F90 + ldr r0, _080B2F84 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B2F88 + movs r0, 0x48 + strh r0, [r6, 0x20] + movs r0, 0x50 + b _080B2FCA + .align 2, 0 +_080B2F84: .4byte gBattleAnimAttacker +_080B2F88: + movs r0, 0xB0 + strh r0, [r6, 0x20] + movs r0, 0x28 + b _080B2FCA +_080B2F90: + ldr r5, _080B3000 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B2FA6 + ldr r1, _080B3004 @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080B2FA6: + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080B3004 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 +_080B2FCA: + strh r0, [r6, 0x22] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B2FDC + ldrh r0, [r6, 0x22] + adds r0, 0x9 + strh r0, [r6, 0x22] +_080B2FDC: + ldr r0, _080B3004 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r6, 0x2E] + ldr r1, _080B3008 @ =sub_80B300C + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B3000: .4byte gBattleAnimAttacker +_080B3004: .4byte gBattleAnimArgs +_080B3008: .4byte sub_80B300C + thumb_func_end sub_80B2ECC + + thumb_func_start sub_80B300C +sub_80B300C: @ 80B300C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldrh r1, [r4, 0x34] + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0xD + bne _080B3038 + ldr r0, _080B3034 @ =sub_80B3044 + str r0, [r4, 0x1C] + b _080B303C + .align 2, 0 +_080B3034: .4byte sub_80B3044 +_080B3038: + adds r0, r1, 0x1 + strh r0, [r4, 0x34] +_080B303C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B300C + + thumb_func_start sub_80B3044 +sub_80B3044: @ 80B3044 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080B30A2 + movs r0, 0 + strh r0, [r3, 0x30] + ldrh r4, [r3, 0x2E] + ldr r1, _080B30A8 @ =gPlttBufferFaded + adds r0, r4, 0 + adds r0, 0x8 + lsls r0, 1 + adds r0, r1 + ldrh r7, [r0] + movs r5, 0x8 + adds r6, r1, 0 + adds r1, r4, 0x7 + lsls r0, r4, 1 + adds r0, r6 + adds r2, r0, 0 + adds r2, 0x10 + lsls r1, 1 + adds r1, r6 +_080B307A: + ldrh r0, [r1] + strh r0, [r2] + subs r1, 0x2 + subs r2, 0x2 + subs r5, 0x1 + cmp r5, 0 + bgt _080B307A + adds r0, r4, 0x1 + lsls r0, 1 + adds r0, r6 + strh r7, [r0] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080B30A2 + ldr r0, _080B30AC @ =sub_80B30B0 + str r0, [r3, 0x1C] +_080B30A2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B30A8: .4byte gPlttBufferFaded +_080B30AC: .4byte sub_80B30B0 + thumb_func_end sub_80B3044 + + thumb_func_start sub_80B30B0 +sub_80B30B0: @ 80B30B0 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x34] + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldrh r0, [r5, 0x34] + subs r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B3156 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B3146 + movs r0, 0x1 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B3118 + ldr r2, _080B315C @ =gSprites + ldr r0, _080B3160 @ =gBattlerSpriteIds + adds r0, r4, r0 + ldrb r1, [r0] + 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] +_080B3118: + movs r0, 0x2 + adds r4, r0, 0 + eors r4, r6 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B3146 + ldr r2, _080B315C @ =gSprites + ldr r0, _080B3160 @ =gBattlerSpriteIds + adds r0, r4, r0 + ldrb r1, [r0] + 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] +_080B3146: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B3164 @ =sub_80B3168 + str r0, [r5, 0x1C] +_080B3156: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B315C: .4byte gSprites +_080B3160: .4byte gBattlerSpriteIds +_080B3164: .4byte sub_80B3168 + thumb_func_end sub_80B30B0 + + thumb_func_start sub_80B3168 +sub_80B3168: @ 80B3168 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B31C0 + movs r0, 0x1 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B31A6 + adds r0, r5, 0 + bl sub_8073128 +_080B31A6: + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B31C0 + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_8073128 +_080B31C0: + ldr r0, _080B31CC @ =DestroyAnimSprite + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B31CC: .4byte DestroyAnimSprite + thumb_func_end sub_80B3168 + + thumb_func_start sub_80B31D0 +sub_80B31D0: @ 80B31D0 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B325C + ldr r5, _080B321C @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r5, r1] + movs r6, 0 + cmp r0, 0 + bne _080B31EA + movs r6, 0x1 +_080B31EA: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B3232 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080B3232 + ldr r0, _080B3220 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B3224 + ldrh r0, [r5] + movs r1, 0x48 + subs r1, r0 + strh r1, [r4, 0x20] + ldrh r0, [r5, 0x2] + adds r0, 0x50 + strh r0, [r4, 0x22] + b _080B3254 + .align 2, 0 +_080B321C: .4byte gBattleAnimArgs +_080B3220: .4byte gBattleAnimAttacker +_080B3224: + ldrh r0, [r5] + adds r0, 0xB0 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + adds r0, 0x28 + strh r0, [r4, 0x22] + b _080B3254 +_080B3232: + ldr r0, _080B3248 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B324C + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8075160 + b _080B3254 + .align 2, 0 +_080B3248: .4byte gBattleAnimArgs +_080B324C: + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8075114 +_080B3254: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B3270 +_080B325C: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0 + beq _080B3270 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080B3270: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B31D0 + + thumb_func_start sub_80B3278 +sub_80B3278: @ 80B3278 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B32C0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B32C8 + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrh r0, [r5, 0x20] + subs r0, 0x28 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r0, 0xA + strh r0, [r5, 0x22] + ldr r0, _080B32C4 @ =0x0000ffff + b _080B32D6 + .align 2, 0 +_080B32C0: .4byte gBattleAnimAttacker +_080B32C4: .4byte 0x0000ffff +_080B32C8: + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + subs r0, 0xA + strh r0, [r5, 0x22] + movs r0, 0x1 +_080B32D6: + strh r0, [r5, 0x30] + ldr r1, _080B32EC @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B32F0 @ =sub_8074F6C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B32EC: .4byte DestroyAnimSprite +_080B32F0: .4byte sub_8074F6C + thumb_func_end sub_80B3278 + + thumb_func_start sub_80B32F4 +sub_80B32F4: @ 80B32F4 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r6, _080B3378 @ =gBattleAnimAttacker + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + lsls r1, 15 + lsrs r4, r1, 16 + ldrb r0, [r6] + movs r1, 0 + bl sub_8076B2C + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + asrs r1, 1 + negs r1, r1 + lsls r1, 16 + lsrs r7, r1, 16 + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B333A + lsls r0, r4, 16 + negs r0, r0 + lsrs r4, r0, 16 +_080B333A: + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + strh r0, [r5, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bgt _080B3366 + movs r0, 0x10 + strh r0, [r5, 0x22] +_080B3366: + ldr r1, _080B337C @ =sub_80B3384 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B3380 @ =sub_8074F6C + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B3378: .4byte gBattleAnimAttacker +_080B337C: .4byte sub_80B3384 +_080B3380: .4byte sub_8074F6C + thumb_func_end sub_80B32F4 + + thumb_func_start sub_80B3384 +sub_80B3384: @ 80B3384 + push {r4,lr} + adds r4, r0, 0 + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080B33B0 @ =gUnknown_83E6FF0 + str r0, [r4, 0x10] + movs r0, 0 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl InitSpriteAffineAnim + ldr r0, _080B33B4 @ =sub_80B33B8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B33B0: .4byte gUnknown_83E6FF0 +_080B33B4: .4byte sub_80B33B8 + thumb_func_end sub_80B3384 + + thumb_func_start sub_80B33B8 +sub_80B33B8: @ 80B33B8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B33CA + cmp r0, 0x1 + beq _080B33F8 + b _080B3410 +_080B33CA: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B3410 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + movs r0, 0x12 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B3410 +_080B33F8: + ldrh r0, [r4, 0x30] + subs r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B3410 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B3410: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B33B8 + + thumb_func_start sub_80B3418 +sub_80B3418: @ 80B3418 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080B3448 @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + strh r1, [r4, 0x8] + ldr r2, _080B344C @ =gUnknown_83E700C + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080B3450 @ =sub_80B3454 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B3448: .4byte gTasks +_080B344C: .4byte gUnknown_83E700C +_080B3450: .4byte sub_80B3454 + thumb_func_end sub_80B3418 + + thumb_func_start sub_80B3454 +sub_80B3454: @ 80B3454 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080B347C @ =gTasks + adds r0, r1 + bl sub_8076308 + lsls r0, 24 + cmp r0, 0 + bne _080B3474 + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080B3474: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B347C: .4byte gTasks + thumb_func_end sub_80B3454 + + thumb_func_start sub_80B3480 +sub_80B3480: @ 80B3480 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B34CC @ =gTasks + adds r4, r1, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xA] + strh r1, [r4, 0xC] + ldr r0, _080B34D0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + movs r1, 0x8 + cmp r0, 0 + beq _080B34B4 + movs r1, 0x4 +_080B34B4: + strh r1, [r4, 0xE] + ldrb r1, [r4, 0x8] + ldr r2, _080B34D4 @ =gUnknown_83E702C + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080B34D8 @ =sub_80B34DC + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B34CC: .4byte gTasks +_080B34D0: .4byte gBattleAnimAttacker +_080B34D4: .4byte gUnknown_83E702C +_080B34D8: .4byte sub_80B34DC + thumb_func_end sub_80B3480 + + thumb_func_start sub_80B34DC +sub_80B34DC: @ 80B34DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B34FC @ =gTasks + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B3500 + cmp r0, 0x1 + beq _080B351C + b _080B357A + .align 2, 0 +_080B34FC: .4byte gTasks +_080B3500: + adds r0, r4, 0 + bl sub_8076308 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080B357A + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080B357A +_080B351C: + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B3544 + ldr r2, _080B3540 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x8 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080B357A + .align 2, 0 +_080B3540: .4byte gSprites +_080B3544: + ldr r3, _080B3580 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + ldrb r0, [r4, 0x8] + bl sub_8075980 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B357A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3580: .4byte gSprites + thumb_func_end sub_80B34DC + + thumb_func_start sub_80B3584 +sub_80B3584: @ 80B3584 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B360C @ =gTasks + adds r5, r1, r0 + movs r1, 0 + movs r0, 0x10 + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] + ldr r4, _080B3610 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldrb r0, [r4] + movs r1, 0 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + adds r1, r0, 0 + cmp r0, r6 + bcs _080B35EE + adds r1, r6, 0 +_080B35EE: + strh r1, [r5, 0x20] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + ldr r0, _080B3614 @ =sub_80B3618 + str r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B360C: .4byte gTasks +_080B3610: .4byte gBattleAnimAttacker +_080B3614: .4byte sub_80B3618 + thumb_func_end sub_80B3584 + + thumb_func_start sub_80B3618 +sub_80B3618: @ 80B3618 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B363C @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080B3718 + cmp r1, 0x1 + bgt _080B3640 + cmp r1, 0 + beq _080B364E + b _080B379E + .align 2, 0 +_080B363C: .4byte gTasks +_080B3640: + cmp r1, 0x2 + bne _080B3646 + b _080B377A +_080B3646: + cmp r1, 0x3 + bne _080B364C + b _080B3788 +_080B364C: + b _080B379E +_080B364E: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bgt _080B365E + b _080B379E +_080B365E: + strh r1, [r4, 0xA] + ldr r0, _080B369C @ =gUnknown_83E7044 + movs r2, 0x22 + ldrsh r1, [r4, r2] + movs r3, 0x24 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + movs r0, 0xC + ldrsh r1, [r4, r0] + adds r1, 0x8 + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0x8 + adds r0, r1 + strh r2, [r0] + cmp r2, 0x40 + beq _080B3702 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B36BC + cmp r0, 0x1 + bgt _080B36A0 + cmp r0, 0 + beq _080B36AA + b _080B3702 + .align 2, 0 +_080B369C: .4byte gUnknown_83E7044 +_080B36A0: + cmp r0, 0x2 + beq _080B36D4 + cmp r0, 0x3 + beq _080B36EC + b _080B3702 +_080B36AA: + ldr r0, _080B36B8 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + b _080B36FA + .align 2, 0 +_080B36B8: .4byte gSprites +_080B36BC: + ldr r0, _080B36D0 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + negs r0, r0 + strh r0, [r1, 0x24] + ldrh r0, [r4, 0x20] + b _080B3700 + .align 2, 0 +_080B36D0: .4byte gSprites +_080B36D4: + ldr r1, _080B36E8 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r4, 0x20] + strh r1, [r0, 0x24] + ldrh r1, [r4, 0x20] + strh r1, [r0, 0x26] + b _080B3702 + .align 2, 0 +_080B36E8: .4byte gSprites +_080B36EC: + ldr r0, _080B3714 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + negs r0, r0 +_080B36FA: + strh r0, [r1, 0x24] + ldrh r0, [r4, 0x20] + negs r0, r0 +_080B3700: + strh r0, [r1, 0x26] +_080B3702: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080B379E + b _080B377A + .align 2, 0 +_080B3714: .4byte gSprites +_080B3718: + ldrh r0, [r4, 0xA] + ands r1, r0 + cmp r1, 0 + beq _080B3728 + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080B372E +_080B3728: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] +_080B372E: + ldrh r1, [r4, 0x10] + lsls r1, 8 + ldrh r0, [r4, 0xE] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + bne _080B379E + movs r5, 0x8 + adds r6, r4, 0 + adds r6, 0x8 +_080B3754: + lsls r0, r5, 1 + adds r1, r6, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x40 + beq _080B3770 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B3784 @ =gSprites + adds r0, r1 + bl DestroySprite +_080B3770: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xC + bls _080B3754 +_080B377A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B379E + .align 2, 0 +_080B3784: .4byte gSprites +_080B3788: + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B379E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B3618 + + thumb_func_start sub_80B37A4 +sub_80B37A4: @ 80B37A4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + subs r0, 0xA + cmp r1, r0 + ble _080B37CE + ldrh r0, [r4, 0x30] + movs r1, 0x1 + ands r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080B37CE: + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080B37E0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B37E0: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B37A4 + + thumb_func_start sub_80B37EC +sub_80B37EC: @ 80B37EC + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080B3828 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080B3818 + ldr r4, _080B382C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] +_080B3818: + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x2E] + ldr r0, _080B3830 @ =sub_80B37A4 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B3828: .4byte gBattleAnimArgs +_080B382C: .4byte gBattleAnimAttacker +_080B3830: .4byte sub_80B37A4 + thumb_func_end sub_80B37EC + + thumb_func_start sub_80B3834 +sub_80B3834: @ 80B3834 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B3890 @ =gTasks + adds r5, r1, r0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B38D8 + ldr r0, _080B3894 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080B38A4 + ldr r0, _080B3898 @ =0x0000fff6 + strh r0, [r5, 0x1C] + ldr r4, _080B389C @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080B38A0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + b _080B3962 + .align 2, 0 +_080B3890: .4byte gTasks +_080B3894: .4byte gBattleAnimArgs +_080B3898: .4byte 0x0000fff6 +_080B389C: .4byte gBattleAnimTarget +_080B38A0: .4byte gBattleAnimAttacker +_080B38A4: + movs r0, 0xA + strh r0, [r5, 0x1C] + ldr r4, _080B38D0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080B38D4 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0x8 + b _080B3956 + .align 2, 0 +_080B38D0: .4byte gBattleAnimAttacker +_080B38D4: .4byte gBattleAnimTarget +_080B38D8: + ldr r0, _080B391C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080B392C + ldr r0, _080B3920 @ =0x0000fff6 + strh r0, [r5, 0x1C] + ldr r4, _080B3924 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080B3928 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + b _080B3962 + .align 2, 0 +_080B391C: .4byte gBattleAnimArgs +_080B3920: .4byte 0x0000fff6 +_080B3924: .4byte gBattleAnimTarget +_080B3928: .4byte gBattleAnimAttacker +_080B392C: + movs r0, 0xA + strh r0, [r5, 0x1C] + ldr r4, _080B3974 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080B3978 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0x8 +_080B3956: + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8076B2C + subs r0, 0x8 +_080B3962: + strh r0, [r5, 0x24] + movs r0, 0x6 + strh r0, [r5, 0xA] + ldr r0, _080B397C @ =sub_80B3980 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3974: .4byte gBattleAnimAttacker +_080B3978: .4byte gBattleAnimTarget +_080B397C: .4byte sub_80B3980 + thumb_func_end sub_80B3834 + + thumb_func_start sub_80B3980 +sub_80B3980: @ 80B3980 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B39A0 @ =gTasks + adds r5, r0, r1 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0 + beq _080B39A4 + cmp r1, 0x1 + beq _080B3A18 + b _080B3A2C + .align 2, 0 +_080B39A0: .4byte gTasks +_080B39A4: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080B3A2C + strh r1, [r5, 0xA] + ldr r0, _080B3A10 @ =gUnknown_83E7114 + movs r2, 0x1E + ldrsh r1, [r5, r2] + movs r3, 0x20 + ldrsh r2, [r5, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080B39F8 + ldr r0, _080B3A14 @ =gSprites + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r0 + movs r0, 0x10 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x22] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x24] + strh r0, [r4, 0x36] + ldrh r0, [r5, 0x1C] + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_8075068 + ldrb r0, [r5, 0xC] + movs r1, 0x3 + ands r1, r0 + adds r0, r4, 0 + bl StartSpriteAffineAnim +_080B39F8: + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _080B3A2C + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080B3A2C + .align 2, 0 +_080B3A10: .4byte gUnknown_83E7114 +_080B3A14: .4byte gSprites +_080B3A18: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x11 + ble _080B3A2C + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B3A2C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B3980 + + thumb_func_start sub_80B3A34 +sub_80B3A34: @ 80B3A34 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B3A52 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080B3A52: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B3A34 + + thumb_func_start sub_80B3A58 +sub_80B3A58: @ 80B3A58 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B3A90 @ =gTasks + adds r4, r1, r0 + ldr r0, _080B3A94 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807492C + lsls r0, 24 + lsrs r1, r0, 24 + adds r0, r1, 0 + subs r0, 0x20 + strh r0, [r4, 0x24] + ldr r0, _080B3A98 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0x1 + beq _080B3AAE + cmp r0, 0x1 + bgt _080B3A9C + cmp r0, 0 + beq _080B3AA2 + b _080B3ACA + .align 2, 0 +_080B3A90: .4byte gTasks +_080B3A94: .4byte gBattleAnimTarget +_080B3A98: .4byte gBattleAnimArgs +_080B3A9C: + cmp r0, 0x2 + beq _080B3ABA + b _080B3ACA +_080B3AA2: + movs r0, 0x2 + strh r0, [r4, 0x1E] + movs r0, 0x5 + strh r0, [r4, 0x20] + movs r0, 0x40 + b _080B3AC2 +_080B3AAE: + movs r0, 0x2 + strh r0, [r4, 0x1E] + movs r0, 0x5 + strh r0, [r4, 0x20] + movs r0, 0xC0 + b _080B3AC2 +_080B3ABA: + movs r0, 0x4 + strh r0, [r4, 0x1E] + strh r0, [r4, 0x20] + movs r0, 0 +_080B3AC2: + strh r0, [r4, 0x22] + adds r0, r1, 0 + adds r0, 0x20 + strh r0, [r4, 0x26] +_080B3ACA: + movs r1, 0x24 + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080B3AD6 + movs r0, 0 + strh r0, [r4, 0x24] +_080B3AD6: + ldr r0, _080B3AF0 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B3AFC + ldr r0, _080B3AF4 @ =gBattle_BG1_X + ldrh r0, [r0] + strh r0, [r4, 0x1C] + ldr r0, _080B3AF8 @ =0x04000014 + b _080B3B04 + .align 2, 0 +_080B3AF0: .4byte gBattleAnimTarget +_080B3AF4: .4byte gBattle_BG1_X +_080B3AF8: .4byte 0x04000014 +_080B3AFC: + ldr r0, _080B3B64 @ =gBattle_BG2_X + ldrh r0, [r0] + strh r0, [r4, 0x1C] + ldr r0, _080B3B68 @ =0x04000018 +_080B3B04: + str r0, [sp] + ldrh r1, [r4, 0x24] + lsls r3, r1, 16 + asrs r1, r3, 16 + movs r2, 0x24 + ldrsh r0, [r4, r2] + adds r0, 0x40 + cmp r1, r0 + bgt _080B3B3E + ldr r5, _080B3B6C @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080B3B1E: + asrs r3, 16 + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r4, 0x1C] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r4, 0x1C] + strh r0, [r1] + adds r3, 0x1 + lsls r3, 16 + asrs r1, r3, 16 + movs r2, 0x24 + ldrsh r0, [r4, r2] + adds r0, 0x40 + cmp r1, r0 + ble _080B3B1E +_080B3B3E: + ldr r0, _080B3B70 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + ldr r0, _080B3B74 @ =sub_80B3B78 + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B3B64: .4byte gBattle_BG2_X +_080B3B68: .4byte 0x04000018 +_080B3B6C: .4byte gScanlineEffectRegBuffers +_080B3B70: .4byte 0xa2600001 +_080B3B74: .4byte sub_80B3B78 + thumb_func_end sub_80B3A58 + + thumb_func_start sub_80B3B78 +sub_80B3B78: @ 80B3B78 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B3BA0 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080B3C52 + cmp r0, 0x1 + bgt _080B3BA4 + cmp r0, 0 + beq _080B3BAA + b _080B3C6A + .align 2, 0 +_080B3BA0: .4byte gTasks +_080B3BA4: + cmp r0, 0x2 + beq _080B3C64 + b _080B3C6A +_080B3BAA: + ldrh r3, [r5, 0x22] + ldrh r4, [r5, 0x24] + movs r2, 0x24 + ldrsh r1, [r5, r2] + movs r2, 0x26 + ldrsh r0, [r5, r2] + cmp r1, r0 + bgt _080B3C42 + ldr r0, _080B3BF4 @ =gSineTable + mov r9, r0 + movs r7, 0x3 + ldr r1, _080B3BF8 @ =gScanlineEffectRegBuffers + mov r12, r1 + movs r2, 0xF0 + lsls r2, 3 + add r2, r12 + mov r8, r2 +_080B3BCC: + lsls r2, r3, 16 + asrs r0, r2, 15 + add r0, r9 + movs r3, 0 + ldrsh r0, [r0, r3] + movs r3, 0x20 + ldrsh r1, [r5, r3] + asrs r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r3, r0, 16 + adds r6, r2, 0 + cmp r3, 0 + ble _080B3BFC + ldrh r1, [r5, 0xA] + adds r0, r7, 0 + ands r0, r1 + adds r0, r3, r0 + b _080B3C08 + .align 2, 0 +_080B3BF4: .4byte gSineTable +_080B3BF8: .4byte gScanlineEffectRegBuffers +_080B3BFC: + cmp r3, 0 + bge _080B3C0C + ldrh r1, [r5, 0xA] + adds r0, r7, 0 + ands r0, r1 + subs r0, r3, r0 +_080B3C08: + lsls r0, 16 + lsrs r1, r0, 16 +_080B3C0C: + lsls r2, r4, 16 + asrs r2, 16 + lsls r3, r2, 1 + mov r0, r12 + adds r4, r3, r0 + ldrh r0, [r5, 0x1C] + lsls r1, 16 + asrs r1, 16 + adds r0, r1, r0 + strh r0, [r4] + add r3, r8 + ldrh r0, [r5, 0x1C] + adds r1, r0 + strh r1, [r3] + asrs r0, r6, 16 + ldrh r1, [r5, 0x1E] + adds r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r2, 0x1 + lsls r2, 16 + lsrs r4, r2, 16 + asrs r2, 16 + movs r1, 0x26 + ldrsh r0, [r5, r1] + cmp r2, r0 + ble _080B3BCC +_080B3C42: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x17 + ble _080B3C6A + b _080B3C58 +_080B3C52: + ldr r1, _080B3C60 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_080B3C58: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080B3C6A + .align 2, 0 +_080B3C60: .4byte gScanlineEffect +_080B3C64: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B3C6A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B3B78 + + thumb_func_start sub_80B3C78 +sub_80B3C78: @ 80B3C78 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r4, r0, 24 + mov r8, r4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080B3CAC @ =gTasks + adds r7, r0, r1 + bl AllocOamMatrix + lsls r0, 24 + lsrs r5, r0, 24 + mov r10, r5 + adds r6, r5, 0 + cmp r6, 0xFF + bne _080B3CB0 + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080B3D5A + .align 2, 0 +_080B3CAC: .4byte gTasks +_080B3CB0: + ldr r1, _080B3CD4 @ =gBattleAnimArgs + ldrb r0, [r1] + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + lsrs r1, r0, 16 + mov r9, r1 + asrs r0, 16 + cmp r0, 0 + bge _080B3CD8 + adds r0, r5, 0 + bl FreeOamMatrix + mov r0, r8 + bl DestroyAnimVisualTask + b _080B3D5A + .align 2, 0 +_080B3CD4: .4byte gBattleAnimArgs +_080B3CD8: + ldr r2, _080B3D68 @ =gSprites + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r2, 0 + adds r0, 0x1C + adds r0, r4, r0 + ldr r1, _080B3D6C @ =SpriteCallbackDummy + str r1, [r0] + adds r4, r2 + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + movs r0, 0x1F + ands r6, r0 + lsls r2, r6, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec + ldr r1, _080B3D70 @ =gBattleAnimArgs + ldrb r0, [r1] + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x22] + mov r0, r10 + strh r0, [r7, 0x24] + mov r1, r9 + strh r1, [r7, 0x26] + ldr r0, _080B3D74 @ =sub_80B3D78 + str r0, [r7] +_080B3D5A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B3D68: .4byte gSprites +_080B3D6C: .4byte SpriteCallbackDummy +_080B3D70: .4byte gBattleAnimArgs +_080B3D74: .4byte sub_80B3D78 + thumb_func_end sub_80B3C78 + + thumb_func_start sub_80B3D78 +sub_80B3D78: @ 80B3D78 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B3D9C @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B3DFC + cmp r0, 0x1 + bgt _080B3DA0 + cmp r0, 0 + beq _080B3DAA + b _080B3E7C + .align 2, 0 +_080B3D9C: .4byte gTasks +_080B3DA0: + cmp r0, 0x2 + beq _080B3E4C + cmp r0, 0x3 + beq _080B3E6C + b _080B3E7C +_080B3DAA: + ldrh r0, [r4, 0xA] + adds r0, 0x4 + strh r0, [r4, 0xA] + ldr r1, _080B3DF8 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + lsls r1, 24 + lsrs r1, 24 + bl sub_8076494 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x30 + bne _080B3E7C + b _080B3E5E + .align 2, 0 +_080B3DF8: .4byte gSineTable +_080B3DFC: + ldrh r0, [r4, 0xA] + subs r0, 0x4 + strh r0, [r4, 0xA] + ldr r1, _080B3E48 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + lsls r1, 24 + lsrs r1, 24 + bl sub_8076494 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B3E7C + b _080B3E5E + .align 2, 0 +_080B3E48: .4byte gSineTable +_080B3E4C: + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B3E68 @ =gSprites + adds r0, r1 + bl obj_delete_but_dont_free_vram +_080B3E5E: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B3E7C + .align 2, 0 +_080B3E68: .4byte gSprites +_080B3E6C: + ldrh r0, [r4, 0x24] + lsls r0, 24 + lsrs r0, 24 + bl FreeOamMatrix + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B3E7C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B3D78 + + thumb_func_start sub_80B3E84 +sub_80B3E84: @ 80B3E84 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080B3EFC + cmp r0, 0x1 + bgt _080B3E9A + cmp r0, 0 + beq _080B3EA4 + b _080B3FA4 +_080B3E9A: + cmp r0, 0x2 + beq _080B3F2E + cmp r0, 0x3 + beq _080B3F8E + b _080B3FA4 +_080B3EA4: + ldr r4, _080B3EF8 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B3ED2 + ldrh r0, [r5, 0x22] + adds r0, 0xC + strh r0, [r5, 0x22] +_080B3ED2: + movs r0, 0x8 + strh r0, [r5, 0x30] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r0, [r5, 0x30] + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + b _080B3F26 + .align 2, 0 +_080B3EF8: .4byte gBattleAnimAttacker +_080B3EFC: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B3FA4 + movs r0, 0x40 + negs r0, r0 + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xC4 + bl PlaySE12WithPanning + adds r0, r5, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim +_080B3F26: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080B3FA4 +_080B3F2E: + ldrh r0, [r5, 0x32] + adds r1, r0, 0x1 + strh r1, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B3F72 + movs r0, 0 + strh r0, [r5, 0x32] + ldrh r1, [r5, 0x30] + subs r1, 0x1 + strh r1, [r5, 0x30] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B3F72 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080B3F72: + movs r0, 0xE0 + lsls r0, 2 + adds r2, r0, 0 + ldrh r1, [r5, 0x34] + adds r2, r1 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r5, 0x26] + subs r0, r1 + strh r0, [r5, 0x26] + movs r0, 0xFF + ands r2, r0 + strh r2, [r5, 0x34] + b _080B3FA4 +_080B3F8E: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimSprite +_080B3FA4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B3E84 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/region_map.s b/asm/region_map.s index 168ca47c3..519b766c1 100644 --- a/asm/region_map.s +++ b/asm/region_map.s @@ -118,13 +118,13 @@ sub_80BFEDC: @ 80BFEDC str r2, [r4] cmp r2, 0 bne _080BFF08 - ldr r0, _080BFF04 @ =c2_exit_to_overworld_2_switch + ldr r0, _080BFF04 @ =CB2_ReturnToField bl SetMainCallback2 b _080BFF38 .align 2, 0 _080BFEFC: .4byte gUnknown_20399D4 _080BFF00: .4byte 0x000047c0 -_080BFF04: .4byte c2_exit_to_overworld_2_switch +_080BFF04: .4byte CB2_ReturnToField _080BFF08: ldr r1, _080BFF40 @ =gUnknown_2031DE0 movs r0, 0x1 @@ -172,13 +172,13 @@ sub_80BFF50: @ 80BFF50 str r2, [r4] cmp r2, 0 bne _080BFF7C - ldr r0, _080BFF78 @ =c2_exit_to_overworld_2_switch + ldr r0, _080BFF78 @ =CB2_ReturnToField bl SetMainCallback2 b _080BFFB4 .align 2, 0 _080BFF70: .4byte gUnknown_20399D4 _080BFF74: .4byte 0x000047c0 -_080BFF78: .4byte c2_exit_to_overworld_2_switch +_080BFF78: .4byte CB2_ReturnToField _080BFF7C: ldr r1, _080BFFBC @ =gUnknown_2031DE0 movs r0, 0x1 @@ -1487,7 +1487,7 @@ sub_80C0A6C: @ 80C0A6C bl ResetPaletteFade bl FreeAllSpritePalettes bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop pop {r0} bx r0 thumb_func_end sub_80C0A6C @@ -1600,7 +1600,7 @@ _080C0B44: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 bl PutWindowTilemap movs r0, 0 @@ -1718,7 +1718,7 @@ sub_80C0BB0: @ 80C0BB0 movs r1, 0x2 movs r2, 0xC movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 @@ -3737,7 +3737,7 @@ _080C1CA8: movs r1, 0x2 movs r2, 0x4 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 bl sub_80C3580 lsls r0, 16 lsrs r0, 16 @@ -3750,7 +3750,7 @@ _080C1CA8: movs r1, 0x2 movs r2, 0x2 movs r3, 0xE - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram @@ -6451,7 +6451,7 @@ _080C3300: ldr r1, _080C3338 @ =0x000047bc adds r0, r1 ldr r1, [r0] - ldr r0, _080C333C @ =c2_exit_to_overworld_2_switch + ldr r0, _080C333C @ =CB2_ReturnToField cmp r1, r0 bne _080C331A _080C3318: @@ -6474,7 +6474,7 @@ _080C332C: .align 2, 0 _080C3334: .4byte gUnknown_20399D4 _080C3338: .4byte 0x000047bc -_080C333C: .4byte c2_exit_to_overworld_2_switch +_080C333C: .4byte CB2_ReturnToField _080C3340: .4byte gUnknown_20399E4 _080C3344: .4byte sub_80C3348 thumb_func_end sub_80C31C0 @@ -9815,7 +9815,7 @@ _080C4E48: movs r1, 0 movs r2, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x3 movs r1, 0x2 bl CopyWindowToVram @@ -9860,7 +9860,7 @@ _080C4EA4: movs r1, 0 movs r2, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x4 movs r1, 0x3 bl CopyWindowToVram @@ -10276,12 +10276,12 @@ _080C5220: ldrb r0, [r0, 0x2] cmp r0, 0x1 bne _080C5258 - ldr r0, _080C5254 @ =c2_exit_to_overworld_2_switch + ldr r0, _080C5254 @ =CB2_ReturnToField bl SetMainCallback2 b _080C525E .align 2, 0 _080C5250: .4byte gUnknown_20399FC -_080C5254: .4byte c2_exit_to_overworld_2_switch +_080C5254: .4byte CB2_ReturnToField _080C5258: ldr r0, _080C5274 @ =sub_8124AB0 bl SetMainCallback2 diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s index 6fb09f439..9ec3e3580 100644 --- a/asm/reshow_battle_screen.s +++ b/asm/reshow_battle_screen.s @@ -45,7 +45,7 @@ sub_8077764: @ 8077764 cmp r1, 0 beq _080777BC movs r0, 0x19 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080777DA .align 2, 0 _080777B0: .4byte gPaletteFade @@ -53,7 +53,7 @@ _080777B4: .4byte gBattleScripting _080777B8: .4byte gBattleTypeFlags _080777BC: movs r0, 0x18 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080777DA _080777C4: movs r0, 0x80 @@ -61,11 +61,11 @@ _080777C4: cmp r1, 0 beq _080777D4 movs r0, 0x1A - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080777DA _080777D4: movs r0, 0x17 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _080777DA: ldr r0, _080777E4 @ =sub_80777E8 bl SetMainCallback2 @@ -123,7 +123,7 @@ _08077860: _08077866: movs r0, 0 bl SetVBlankCallback - bl dp12_8087EA4 + bl ScanlineEffect_Clear bl sub_800F324 movs r0, 0x1 movs r1, 0x1 @@ -142,33 +142,33 @@ _08077866: movs r0, 0x3 bl ShowBg bl ResetPaletteFade - ldr r0, _080778C8 @ =gUnknown_2022974 + ldr r0, _080778C8 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080778CC @ =gUnknown_2022976 + ldr r0, _080778CC @ =gBattle_BG0_Y strh r1, [r0] - ldr r0, _080778D0 @ =gUnknown_2022978 + ldr r0, _080778D0 @ =gBattle_BG1_X strh r1, [r0] - ldr r0, _080778D4 @ =gUnknown_202297A + ldr r0, _080778D4 @ =gBattle_BG1_Y strh r1, [r0] - ldr r0, _080778D8 @ =gUnknown_202297C + ldr r0, _080778D8 @ =gBattle_BG2_X strh r1, [r0] - ldr r0, _080778DC @ =gUnknown_202297E + ldr r0, _080778DC @ =gBattle_BG2_Y strh r1, [r0] - ldr r0, _080778E0 @ =gUnknown_2022980 + ldr r0, _080778E0 @ =gBattle_BG3_X strh r1, [r0] - ldr r0, _080778E4 @ =gUnknown_2022982 + ldr r0, _080778E4 @ =gBattle_BG3_Y strh r1, [r0] b _08077A8A .align 2, 0 -_080778C8: .4byte gUnknown_2022974 -_080778CC: .4byte gUnknown_2022976 -_080778D0: .4byte gUnknown_2022978 -_080778D4: .4byte gUnknown_202297A -_080778D8: .4byte gUnknown_202297C -_080778DC: .4byte gUnknown_202297E -_080778E0: .4byte gUnknown_2022980 -_080778E4: .4byte gUnknown_2022982 +_080778C8: .4byte gBattle_BG0_X +_080778CC: .4byte gBattle_BG0_Y +_080778D0: .4byte gBattle_BG1_X +_080778D4: .4byte gBattle_BG1_Y +_080778D8: .4byte gBattle_BG2_X +_080778DC: .4byte gBattle_BG2_Y +_080778E0: .4byte gBattle_BG3_X +_080778E4: .4byte gBattle_BG3_Y _080778E8: movs r0, 0 str r0, [sp, 0x4] @@ -661,7 +661,7 @@ _08077CD2: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r5, _08077D98 @ =gMultiuseSpriteTemplate adds r0, r7, 0 movs r1, 0x2 @@ -678,7 +678,7 @@ _08077CD2: adds r1, r4, 0 mov r2, r8 bl CreateSprite - ldr r4, _08077D9C @ =gUnknown_2023D44 + ldr r4, _08077D9C @ =gBattlerSpriteIds adds r4, r7, r4 strb r0, [r4] ldr r5, _08077DA0 @ =gSprites @@ -735,7 +735,7 @@ _08077CD2: _08077D90: .4byte gBattlerPartyIndexes _08077D94: .4byte gEnemyParty _08077D98: .4byte gMultiuseSpriteTemplate -_08077D9C: .4byte gUnknown_2023D44 +_08077D9C: .4byte gBattlerSpriteIds _08077DA0: .4byte gSprites _08077DA4: .4byte SpriteCallbackDummy _08077DA8: .4byte gBattleMonForms @@ -820,7 +820,7 @@ _08077E54: movs r1, 0x50 adds r2, r4, 0 bl CreateSprite - ldr r3, _08077E9C @ =gUnknown_2023D44 + ldr r3, _08077E9C @ =gBattlerSpriteIds strb r0, [r3] ldr r4, _08077EA0 @ =gSprites ldrb r0, [r3] @@ -851,7 +851,7 @@ _08077E54: .align 2, 0 _08077E94: .4byte gMultiuseSpriteTemplate _08077E98: .4byte gUnknown_8239F8C -_08077E9C: .4byte gUnknown_2023D44 +_08077E9C: .4byte gBattlerSpriteIds _08077EA0: .4byte gSprites _08077EA4: .4byte SpriteCallbackDummy _08077EA8: @@ -887,7 +887,7 @@ _08077EA8: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r5, _08077FCC @ =gMultiuseSpriteTemplate adds r0, r7, 0 movs r1, 0x2 @@ -904,7 +904,7 @@ _08077EA8: adds r1, r4, 0 mov r2, r8 bl CreateSprite - ldr r4, _08077FD0 @ =gUnknown_2023D44 + ldr r4, _08077FD0 @ =gBattlerSpriteIds adds r4, r7, r4 strb r0, [r4] ldr r5, _08077FD4 @ =gSprites @@ -958,7 +958,7 @@ _08077EA8: bl StartSpriteAnim _08077F84: ldr r1, _08077FD4 @ =gSprites - ldr r0, _08077FD0 @ =gUnknown_2023D44 + ldr r0, _08077FD0 @ =gBattlerSpriteIds adds r0, r7, r0 ldrb r0, [r0] lsls r2, r0, 4 @@ -993,7 +993,7 @@ _08077FB4: _08077FC4: .4byte gBattlerPartyIndexes _08077FC8: .4byte gPlayerParty _08077FCC: .4byte gMultiuseSpriteTemplate -_08077FD0: .4byte gUnknown_2023D44 +_08077FD0: .4byte gBattlerSpriteIds _08077FD4: .4byte gSprites _08077FD8: .4byte SpriteCallbackDummy _08077FDC: .4byte gBattleMonForms diff --git a/asm/roamer.s b/asm/roamer.s deleted file mode 100644 index d42b34293..000000000 --- a/asm/roamer.s +++ /dev/null @@ -1,531 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8141C54 -sub_8141C54: @ 8141C54 - push {lr} - ldr r0, _08141C84 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08141C88 @ =0x000030d0 - adds r0, r1 - movs r1, 0 - movs r2, 0x1C - bl memset - ldr r1, _08141C8C @ =gUnknown_203F3AE - movs r0, 0 - strb r0, [r1] - strb r0, [r1, 0x1] - movs r1, 0 - movs r2, 0 - ldr r0, _08141C90 @ =gUnknown_203F3A8 -_08141C74: - strb r2, [r0] - strb r2, [r0, 0x1] - adds r0, 0x2 - adds r1, 0x1 - cmp r1, 0x2 - bls _08141C74 - pop {r0} - bx r0 - .align 2, 0 -_08141C84: .4byte gSaveBlock1Ptr -_08141C88: .4byte 0x000030d0 -_08141C8C: .4byte gUnknown_203F3AE -_08141C90: .4byte gUnknown_203F3A8 - thumb_func_end sub_8141C54 - - thumb_func_start sub_8141C94 -sub_8141C94: @ 8141C94 - push {r4-r7,lr} - sub sp, 0x10 - ldr r7, _08141CB0 @ =gEnemyParty - bl sub_80CBDB0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _08141CB4 - cmp r0, 0x4 - beq _08141CB8 - movs r6, 0xF3 - b _08141CBA - .align 2, 0 -_08141CB0: .4byte gEnemyParty -_08141CB4: - movs r6, 0xF4 - b _08141CBA -_08141CB8: - movs r6, 0xF5 -_08141CBA: - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0x32 - movs r3, 0x20 - bl CreateMon - ldr r5, _08141D8C @ =gSaveBlock1Ptr - ldr r1, [r5] - ldr r4, _08141D90 @ =0x000030d0 - adds r1, r4 - movs r2, 0 - strh r6, [r1, 0x8] - movs r0, 0x32 - strb r0, [r1, 0xC] - ldr r0, [r5] - adds r0, r4 - strb r2, [r0, 0xD] - ldr r0, [r5] - adds r0, r4 - movs r1, 0x1 - strb r1, [r0, 0x13] - adds r0, r7, 0 - movs r1, 0x42 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - str r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - str r0, [r1, 0x4] - adds r0, r7, 0 - movs r1, 0x3A - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strh r0, [r1, 0xA] - adds r0, r7, 0 - movs r1, 0x16 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0xE] - adds r0, r7, 0 - movs r1, 0x17 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0xF] - adds r0, r7, 0 - movs r1, 0x18 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0x10] - adds r0, r7, 0 - movs r1, 0x21 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0x11] - adds r0, r7, 0 - movs r1, 0x2F - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0x12] - ldr r5, _08141D94 @ =gUnknown_203F3AE - movs r0, 0x3 - strb r0, [r5] - bl Random - ldr r4, _08141D98 @ =gUnknown_8466C58 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 3 - subs r1, r0 - adds r1, r4 - ldrb r0, [r1] - strb r0, [r5, 0x1] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08141D8C: .4byte gSaveBlock1Ptr -_08141D90: .4byte 0x000030d0 -_08141D94: .4byte gUnknown_203F3AE -_08141D98: .4byte gUnknown_8466C58 - thumb_func_end sub_8141C94 - - thumb_func_start sub_8141D9C -sub_8141D9C: @ 8141D9C - push {lr} - bl sub_8141C54 - bl sub_8141C94 - pop {r0} - bx r0 - thumb_func_end sub_8141D9C - - thumb_func_start UpdateLocationHistoryForRoamer -UpdateLocationHistoryForRoamer: @ 8141DAC - ldr r0, _08141DCC @ =gUnknown_203F3A8 - ldrb r1, [r0, 0x2] - strb r1, [r0, 0x4] - ldrb r1, [r0, 0x3] - strb r1, [r0, 0x5] - ldrb r1, [r0] - strb r1, [r0, 0x2] - ldrb r1, [r0, 0x1] - strb r1, [r0, 0x3] - ldr r1, _08141DD0 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x4] - strb r1, [r0] - ldrb r1, [r2, 0x5] - strb r1, [r0, 0x1] - bx lr - .align 2, 0 -_08141DCC: .4byte gUnknown_203F3A8 -_08141DD0: .4byte gSaveBlock1Ptr - thumb_func_end UpdateLocationHistoryForRoamer - - thumb_func_start RoamerMoveToOtherLocationSet -RoamerMoveToOtherLocationSet: @ 8141DD4 - push {r4,r5,lr} - ldr r0, _08141E18 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08141E1C @ =0x000030d0 - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08141E10 - ldr r1, _08141E20 @ =gUnknown_203F3AE - movs r0, 0x3 - strb r0, [r1] - ldr r5, _08141E24 @ =gUnknown_8466C58 - adds r4, r1, 0 -_08141DEE: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 3 - subs r1, r0 - adds r1, r5 - ldrb r1, [r1] - ldrb r0, [r4, 0x1] - cmp r0, r1 - beq _08141DEE - strb r1, [r4, 0x1] -_08141E10: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141E18: .4byte gSaveBlock1Ptr -_08141E1C: .4byte 0x000030d0 -_08141E20: .4byte gUnknown_203F3AE -_08141E24: .4byte gUnknown_8466C58 - thumb_func_end RoamerMoveToOtherLocationSet - - thumb_func_start RoamerMove -RoamerMove: @ 8141E28 - push {r4-r7,lr} - movs r4, 0 - bl Random - lsls r0, 16 - movs r1, 0xF0 - lsls r1, 12 - ands r1, r0 - cmp r1, 0 - bne _08141E42 - bl RoamerMoveToOtherLocationSet - b _08141EB2 -_08141E42: - ldr r0, _08141E94 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08141E98 @ =0x000030d0 - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08141EB2 - ldr r7, _08141E9C @ =gUnknown_203F3AE -_08141E52: - ldr r3, _08141EA0 @ =gUnknown_8466C58 - lsls r0, r4, 3 - subs r2, r0, r4 - adds r1, r2, r3 - ldrb r0, [r7, 0x1] - ldrb r1, [r1] - cmp r0, r1 - bne _08141EA8 - adds r6, r3, 0 - adds r5, r2, 0x1 - ldr r4, _08141EA4 @ =gUnknown_203F3A8 -_08141E68: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, r5 - adds r0, r6 - ldrb r1, [r0] - ldrb r0, [r4, 0x4] - cmp r0, 0x3 - bne _08141E8C - ldrb r0, [r4, 0x5] - cmp r0, r1 - beq _08141E68 -_08141E8C: - cmp r1, 0xFF - beq _08141E68 - strb r1, [r7, 0x1] - b _08141EB2 - .align 2, 0 -_08141E94: .4byte gSaveBlock1Ptr -_08141E98: .4byte 0x000030d0 -_08141E9C: .4byte gUnknown_203F3AE -_08141EA0: .4byte gUnknown_8466C58 -_08141EA4: .4byte gUnknown_203F3A8 -_08141EA8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x18 - bls _08141E52 -_08141EB2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end RoamerMove - - thumb_func_start IsRoamerAt -IsRoamerAt: @ 8141EB8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08141EE4 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, _08141EE8 @ =0x000030d0 - adds r0, r3 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08141EF0 - ldr r0, _08141EEC @ =gUnknown_203F3AE - ldrb r3, [r0] - cmp r2, r3 - bne _08141EF0 - ldrb r0, [r0, 0x1] - cmp r1, r0 - bne _08141EF0 - movs r0, 0x1 - b _08141EF2 - .align 2, 0 -_08141EE4: .4byte gSaveBlock1Ptr -_08141EE8: .4byte 0x000030d0 -_08141EEC: .4byte gUnknown_203F3AE -_08141EF0: - movs r0, 0 -_08141EF2: - pop {r1} - bx r1 - thumb_func_end IsRoamerAt - - thumb_func_start CreateRoamerMonInstance -CreateRoamerMonInstance: @ 8141EF8 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _08141F84 @ =gEnemyParty - bl ZeroEnemyPartyMons - ldr r4, _08141F88 @ =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, _08141F8C @ =0x000030d0 - adds r0, r1 - ldrh r1, [r0, 0x8] - ldrb r2, [r0, 0xC] - ldr r3, [r0] - ldr r0, [r0, 0x4] - str r0, [sp] - adds r0, r5, 0 - bl CreateMonWithIVsPersonality - ldr r2, [r4] - ldr r0, _08141F90 @ =0x000030dd - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x37 - bl SetMonData - ldr r2, [r4] - ldr r1, _08141F94 @ =0x000030da - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x39 - bl SetMonData - ldr r2, [r4] - ldr r0, _08141F98 @ =0x000030de - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x16 - bl SetMonData - ldr r2, [r4] - ldr r1, _08141F9C @ =0x000030df - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x17 - bl SetMonData - ldr r2, [r4] - ldr r0, _08141FA0 @ =0x000030e0 - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x18 - bl SetMonData - ldr r2, [r4] - ldr r1, _08141FA4 @ =0x000030e1 - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x21 - bl SetMonData - ldr r2, [r4] - ldr r0, _08141FA8 @ =0x000030e2 - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x2F - bl SetMonData - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141F84: .4byte gEnemyParty -_08141F88: .4byte gSaveBlock1Ptr -_08141F8C: .4byte 0x000030d0 -_08141F90: .4byte 0x000030dd -_08141F94: .4byte 0x000030da -_08141F98: .4byte 0x000030de -_08141F9C: .4byte 0x000030df -_08141FA0: .4byte 0x000030e0 -_08141FA4: .4byte 0x000030e1 -_08141FA8: .4byte 0x000030e2 - thumb_func_end CreateRoamerMonInstance - - thumb_func_start TryStartRoamerEncounter -TryStartRoamerEncounter: @ 8141FAC - push {lr} - ldr r0, _08141FDC @ =gSaveBlock1Ptr - ldr r1, [r0] - ldrb r0, [r1, 0x4] - ldrb r1, [r1, 0x5] - bl IsRoamerAt - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08141FE0 - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - cmp r1, 0 - bne _08141FE0 - bl CreateRoamerMonInstance - movs r0, 0x1 - b _08141FE2 - .align 2, 0 -_08141FDC: .4byte gSaveBlock1Ptr -_08141FE0: - movs r0, 0 -_08141FE2: - pop {r1} - bx r1 - thumb_func_end TryStartRoamerEncounter - - thumb_func_start UpdateRoamerHPStatus -UpdateRoamerHPStatus: @ 8141FE8 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x39 - bl GetMonData - ldr r5, _08142014 @ =gSaveBlock1Ptr - ldr r1, [r5] - ldr r4, _08142018 @ =0x000030d0 - adds r1, r4 - strh r0, [r1, 0xA] - adds r0, r6, 0 - movs r1, 0x37 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0xD] - bl RoamerMoveToOtherLocationSet - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08142014: .4byte gSaveBlock1Ptr -_08142018: .4byte 0x000030d0 - thumb_func_end UpdateRoamerHPStatus - - thumb_func_start SetRoamerInactive -SetRoamerInactive: @ 814201C - ldr r0, _0814202C @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08142030 @ =0x000030d0 - adds r0, r1 - movs r1, 0 - strb r1, [r0, 0x13] - bx lr - .align 2, 0 -_0814202C: .4byte gSaveBlock1Ptr -_08142030: .4byte 0x000030d0 - thumb_func_end SetRoamerInactive - - thumb_func_start GetRoamerLocation -GetRoamerLocation: @ 8142034 - ldr r3, _08142040 @ =gUnknown_203F3AE - ldrb r2, [r3] - strb r2, [r0] - ldrb r0, [r3, 0x1] - strb r0, [r1] - bx lr - .align 2, 0 -_08142040: .4byte gUnknown_203F3AE - thumb_func_end GetRoamerLocation - - thumb_func_start sub_8142044 -sub_8142044: @ 8142044 - push {lr} - ldr r0, _08142064 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08142068 @ =0x000030d0 - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08142070 - ldr r1, _0814206C @ =gUnknown_203F3AE - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - bl get_mapheader_by_bank_and_number - ldrb r0, [r0, 0x14] - b _08142072 - .align 2, 0 -_08142064: .4byte gSaveBlock1Ptr -_08142068: .4byte 0x000030d0 -_0814206C: .4byte gUnknown_203F3AE -_08142070: - movs r0, 0xC5 -_08142072: - pop {r1} - bx r1 - thumb_func_end sub_8142044 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rock.s b/asm/rock.s new file mode 100644 index 000000000..50687a86e --- /dev/null +++ b/asm/rock.s @@ -0,0 +1,1558 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B4634 +sub_80B4634: @ 80B4634 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080B46A0 @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080B4654 + ldr r0, _080B46A4 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C +_080B4654: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r4, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r0, 0xE + strh r0, [r5, 0x22] + ldrb r1, [r6, 0x2] + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl AnimateSprite + strh r4, [r5, 0x2E] + strh r4, [r5, 0x30] + movs r0, 0x4 + strh r0, [r5, 0x32] + movs r0, 0x10 + strh r0, [r5, 0x34] + ldr r0, _080B46A8 @ =0x0000ffba + strh r0, [r5, 0x36] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x38] + ldr r1, _080B46AC @ =sub_80B46B4 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080B46B0 @ =sub_8074BE4 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B46A0: .4byte gBattleAnimArgs +_080B46A4: .4byte gBattleAnimTarget +_080B46A8: .4byte 0x0000ffba +_080B46AC: .4byte sub_80B46B4 +_080B46B0: .4byte sub_8074BE4 + thumb_func_end sub_80B4634 + + thumb_func_start sub_80B46B4 +sub_80B46B4: @ 80B46B4 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x38] + ldrh r2, [r4, 0x20] + adds r0, r1, r2 + strh r0, [r4, 0x20] + movs r0, 0xC0 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r0, 0x4 + strh r0, [r4, 0x32] + movs r0, 0x20 + strh r0, [r4, 0x34] + ldr r0, _080B46EC @ =0x0000ffe8 + strh r0, [r4, 0x36] + ldr r1, _080B46F0 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080B46F4 @ =sub_8074BE4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B46EC: .4byte 0x0000ffe8 +_080B46F0: .4byte move_anim_8074EE0 +_080B46F4: .4byte sub_8074BE4 + thumb_func_end sub_80B46B4 + + thumb_func_start sub_80B46F8 +sub_80B46F8: @ 80B46F8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B4720 @ =gBattleAnimArgs + ldrb r1, [r4, 0xA] + bl StartSpriteAnim + adds r0, r5, 0 + bl AnimateSprite + ldr r0, _080B4724 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B4728 + ldrh r0, [r5, 0x20] + ldrh r1, [r4] + subs r0, r1 + b _080B472E + .align 2, 0 +_080B4720: .4byte gBattleAnimArgs +_080B4724: .4byte gBattleAnimAttacker +_080B4728: + ldrh r0, [r4] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080B472E: + strh r0, [r5, 0x20] + ldr r3, _080B4770 @ =gBattleAnimArgs + ldrh r2, [r3, 0x2] + ldrh r0, [r5, 0x22] + adds r2, r0 + movs r4, 0 + strh r2, [r5, 0x22] + ldrh r0, [r3, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r1, [r3, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + strh r2, [r5, 0x34] + ldrh r0, [r3, 0x6] + adds r2, r0 + strh r2, [r5, 0x36] + adds r0, r5, 0 + bl sub_80754B8 + strh r4, [r5, 0x34] + strh r4, [r5, 0x36] + ldr r0, _080B4774 @ =sub_8074D00 + str r0, [r5, 0x1C] + ldr r1, _080B4778 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4770: .4byte gBattleAnimArgs +_080B4774: .4byte sub_8074D00 +_080B4778: .4byte move_anim_8074EE0 + thumb_func_end sub_80B46F8 + + thumb_func_start sub_80B477C +sub_80B477C: @ 80B477C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B4794 @ =gBattleAnimArgs + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B4798 + adds r0, r4, 0 + movs r1, 0 + bl sub_8075160 + b _080B47A0 + .align 2, 0 +_080B4794: .4byte gBattleAnimArgs +_080B4798: + adds r0, r4, 0 + movs r1, 0 + bl sub_8075114 +_080B47A0: + ldr r1, _080B47BC @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080B47C0 @ =sub_80B47C4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B47BC: .4byte gBattleAnimArgs +_080B47C0: .4byte sub_80B47C4 + thumb_func_end sub_80B477C + + thumb_func_start sub_80B47C4 +sub_80B47C4: @ 80B47C4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + ldrh r1, [r4, 0x38] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B480A + adds r0, r4, 0 + bl DestroyAnimSprite +_080B480A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B47C4 + + thumb_func_start do_boulder_dust +do_boulder_dust: @ 80B4810 + push {r4-r6,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r1, _080B48E4 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B4854 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080B4854: + ldr r0, _080B48E8 @ =gBattle_BG1_X + strh r5, [r0] + ldr r4, _080B48EC @ =gBattle_BG1_Y + strh r5, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080B48F0 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap + bl sub_807543C + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080B48F4 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080B48F8 @ =gFile_graphics_battle_anims_sprites_261_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B48B0 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080B48B0: + ldr r0, _080B48FC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080B48CA + ldr r0, _080B4900 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B48CA + movs r5, 0x1 +_080B48CA: + ldr r0, _080B4904 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + strh r5, [r1, 0x8] + ldr r0, _080B4908 @ =sub_80B490C + str r0, [r1] + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B48E4: .4byte 0x00003f42 +_080B48E8: .4byte gBattle_BG1_X +_080B48EC: .4byte gBattle_BG1_Y +_080B48F0: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap +_080B48F4: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet +_080B48F8: .4byte gFile_graphics_battle_anims_sprites_261_palette +_080B48FC: .4byte gBattleAnimArgs +_080B4900: .4byte gBattleAnimAttacker +_080B4904: .4byte gTasks +_080B4908: .4byte sub_80B490C + thumb_func_end do_boulder_dust + + thumb_func_start sub_80B490C +sub_80B490C: @ 80B490C + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B4934 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0 + bne _080B4940 + ldr r1, _080B4938 @ =gBattle_BG1_X + ldr r3, _080B493C @ =0x0000fffa + adds r0, r3, 0 + ldrh r3, [r1] + adds r0, r3 + b _080B4946 + .align 2, 0 +_080B4934: .4byte gTasks +_080B4938: .4byte gBattle_BG1_X +_080B493C: .4byte 0x0000fffa +_080B4940: + ldr r1, _080B4974 @ =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x6 +_080B4946: + strh r0, [r1] + ldr r1, _080B4978 @ =gBattle_BG1_Y + ldr r3, _080B497C @ =0x0000ffff + adds r0, r3, 0 + ldrh r3, [r1] + adds r0, r3 + strh r0, [r1] + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r0, r2 + movs r3, 0x20 + ldrsh r0, [r0, r3] + adds r4, r1, 0 + cmp r0, 0x4 + bls _080B4968 + b _080B4A96 +_080B4968: + lsls r0, 2 + ldr r1, _080B4980 @ =_080B4984 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B4974: .4byte gBattle_BG1_X +_080B4978: .4byte gBattle_BG1_Y +_080B497C: .4byte 0x0000ffff +_080B4980: .4byte _080B4984 + .align 2, 0 +_080B4984: + .4byte _080B4998 + .4byte _080B49DA + .4byte _080B49F4 + .4byte _080B4A36 + .4byte _080B4A58 +_080B4998: + adds r0, r4, r5 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080B4A96 + strh r5, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + adds r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bne _080B4A96 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x1E] + b _080B4A96 +_080B49DA: + adds r0, r4, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x65 + bne _080B4A96 + movs r0, 0x7 + strh r0, [r1, 0x1E] + b _080B4A4C +_080B49F4: + adds r0, r4, r5 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080B4A96 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080B4A96 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080B4A96 +_080B4A36: + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + bl sub_8075358 + ldr r0, _080B4A54 @ =gTasks + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 +_080B4A4C: + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080B4A96 + .align 2, 0 +_080B4A54: .4byte gTasks +_080B4A58: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B4A6C + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080B4A6C: + ldr r0, _080B4AA0 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080B4AA4 @ =gBattle_BG1_Y + strh r1, [r0] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B4A96: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4AA0: .4byte gBattle_BG1_X +_080B4AA4: .4byte gBattle_BG1_Y + thumb_func_end sub_80B490C + + thumb_func_start sub_80B4AA8 +sub_80B4AA8: @ 80B4AA8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B4B24 + ldr r4, _080B4AEC @ =gBattleAnimArgs + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B4AF4 + ldr r0, _080B4AF0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B4AF4 + movs r0, 0x98 + lsls r0, 1 + strh r0, [r5, 0x20] + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r5, 0x38] + ldrb r1, [r5, 0x3] + subs r0, 0x40 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x3] + b _080B4AF8 + .align 2, 0 +_080B4AEC: .4byte gBattleAnimArgs +_080B4AF0: .4byte gBattleAnimAttacker +_080B4AF4: + ldr r0, _080B4B18 @ =0x0000ffc0 + strh r0, [r5, 0x20] +_080B4AF8: + ldr r4, _080B4B1C @ =gBattleAnimArgs + ldrh r0, [r4] + strh r0, [r5, 0x22] + ldr r1, _080B4B20 @ =gUnknown_83E7470 + adds r0, r5, 0 + bl SetSubspriteTables + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080B4B80 + .align 2, 0 +_080B4B18: .4byte 0x0000ffc0 +_080B4B1C: .4byte gBattleAnimArgs +_080B4B20: .4byte gUnknown_83E7470 +_080B4B24: + ldrh r1, [r5, 0x30] + ldrh r3, [r5, 0x34] + adds r1, r3 + ldrh r2, [r5, 0x32] + ldrh r0, [r5, 0x36] + adds r2, r0 + lsls r0, r1, 16 + asrs r0, 24 + ldrh r3, [r5, 0x24] + adds r0, r3 + strh r0, [r5, 0x24] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r3, [r5, 0x26] + adds r0, r3 + strh r0, [r5, 0x26] + movs r0, 0xFF + ands r1, r0 + strh r1, [r5, 0x34] + ands r2, r0 + strh r2, [r5, 0x36] + movs r1, 0x38 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B4B6A + movs r2, 0x20 + ldrsh r0, [r5, r2] + movs r3, 0x24 + ldrsh r1, [r5, r3] + adds r0, r1 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + ble _080B4B80 + b _080B4B7C +_080B4B6A: + movs r1, 0x20 + ldrsh r0, [r5, r1] + movs r2, 0x24 + ldrsh r1, [r5, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080B4B80 +_080B4B7C: + ldr r0, _080B4B88 @ =DestroyAnimSprite + str r0, [r5, 0x1C] +_080B4B80: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4B88: .4byte DestroyAnimSprite + thumb_func_end sub_80B4AA8 + + thumb_func_start sub_80B4B8C +sub_80B4B8C: @ 80B4B8C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B4BC4 @ =gBattleAnimArgs + ldrb r1, [r5, 0x8] + bl StartSpriteAnim + adds r0, r4, 0 + movs r1, 0 + bl sub_8075160 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x4] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x36] + ldr r0, _080B4BC8 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080B4BCC @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4BC4: .4byte gBattleAnimArgs +_080B4BC8: .4byte sub_8075590 +_080B4BCC: .4byte DestroyAnimSprite + thumb_func_end sub_80B4B8C + + thumb_func_start sub_80B4BD0 +sub_80B4BD0: @ 80B4BD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B4C50 @ =gTasks + adds r6, r1, r0 + ldr r5, _080B4C54 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + movs r1, 0xC0 + lsls r1, 13 + adds r0, r1 + lsrs r7, r0, 16 + ldr r4, _080B4C58 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xC0 + lsls r2, 13 + adds r0, r2 + lsrs r0, 16 + mov r8, r0 + ldrb r1, [r5] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080B4C40 + mov r8, r7 +_080B4C40: + bl sub_80B4FB8 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _080B4C5C + movs r0, 0x20 + b _080B4C62 + .align 2, 0 +_080B4C50: .4byte gTasks +_080B4C54: .4byte gBattleAnimAttacker +_080B4C58: .4byte gBattleAnimTarget +_080B4C5C: + lsls r1, r5, 3 + movs r0, 0x30 + subs r0, r1 +_080B4C62: + strh r0, [r6, 0x18] + movs r4, 0 + strh r4, [r6, 0x8] + strh r4, [r6, 0x1E] + strh r4, [r6, 0x1A] + movs r0, 0x1 + strh r0, [r6, 0x20] + movs r1, 0x18 + ldrsh r0, [r6, r1] + cmp r0, 0 + bge _080B4C7A + adds r0, 0x7 +_080B4C7A: + asrs r0, 3 + subs r0, 0x1 + strh r0, [r6, 0x1C] + mov r2, r9 + lsls r0, r2, 3 + strh r0, [r6, 0xC] + lsls r0, r7, 3 + strh r0, [r6, 0xE] + mov r1, r10 + subs r0, r1, r2 + lsls r0, 3 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x10] + mov r1, r8 + subs r0, r1, r7 + lsls r0, 3 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x12] + strh r4, [r6, 0x14] + strh r4, [r6, 0x16] + movs r0, 0x40 + negs r0, r0 + bl sub_8073A44 + adds r4, r0, 0 + lsls r4, 24 + asrs r4, 8 + lsrs r4, 16 + movs r0, 0x3F + bl sub_8073A44 + lsls r0, 24 + strh r4, [r6, 0x22] + asrs r0, 24 + lsls r4, 16 + asrs r4, 16 + subs r0, r4 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x24] + strh r5, [r6, 0xA] + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x26] + ldr r0, _080B4CFC @ =sub_80B4D00 + str r0, [r6] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B4CFC: .4byte sub_80B4D00 + thumb_func_end sub_80B4BD0 + + thumb_func_start sub_80B4D00 +sub_80B4D00: @ 80B4D00 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B4D24 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080B4D1A + b _080B4E68 +_080B4D1A: + lsls r0, 2 + ldr r1, _080B4D28 @ =_080B4D2C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B4D24: .4byte gTasks +_080B4D28: .4byte _080B4D2C + .align 2, 0 +_080B4D2C: + .4byte _080B4D40 + .4byte _080B4DA4 + .4byte _080B4DAC + .4byte _080B4E08 + .4byte _080B4E5A +_080B4D40: + ldrh r2, [r4, 0x14] + ldrh r0, [r4, 0x10] + subs r2, r0 + strh r2, [r4, 0x14] + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x16] + ldr r3, _080B4DA0 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + lsls r2, 16 + asrs r2, 19 + strh r2, [r0, 0x24] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080B4D90 + movs r0, 0x14 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B4D90: + ldrh r1, [r4, 0x22] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x9B + bl PlaySE12WithPanning + b _080B4E68 + .align 2, 0 +_080B4DA0: .4byte gSprites +_080B4DA4: + ldrh r0, [r4, 0x1E] + subs r0, 0x1 + strh r0, [r4, 0x1E] + b _080B4E4C +_080B4DAC: + ldrh r0, [r4, 0x1A] + subs r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _080B4DCC + ldrh r0, [r4, 0x10] + ldrh r2, [r4, 0x14] + adds r0, r2 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x16] + adds r0, r1 + strh r0, [r4, 0x16] + b _080B4DD6 +_080B4DCC: + strh r0, [r4, 0x14] + strh r0, [r4, 0x16] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B4DD6: + ldr r2, _080B4E04 @ =gSprites + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x24] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x26] + b _080B4E68 + .align 2, 0 +_080B4E04: .4byte gSprites +_080B4E08: + ldrh r0, [r4, 0x10] + ldrh r2, [r4, 0xC] + adds r0, r2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0xE] + adds r0, r1 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1C + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080B4E46 + movs r0, 0 + strh r0, [r4, 0x1A] + adds r0, r4, 0 + bl sub_80B4E70 + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x22] + adds r1, r0 + strh r1, [r4, 0x22] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xA8 + bl PlaySE12WithPanning +_080B4E46: + ldrh r0, [r4, 0x18] + subs r0, 0x1 + strh r0, [r4, 0x18] +_080B4E4C: + lsls r0, 16 + cmp r0, 0 + bne _080B4E68 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B4E68 +_080B4E5A: + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B4E68 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B4E68: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B4D00 + + thumb_func_start sub_80B4E70 +sub_80B4E70: @ 80B4E70 + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bhi _080B4F60 + lsls r0, 2 + ldr r1, _080B4E8C @ =_080B4E90 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B4E8C: .4byte _080B4E90 + .align 2, 0 +_080B4E90: + .4byte _080B4EA4 + .4byte _080B4EB0 + .4byte _080B4EB0 + .4byte _080B4EBC + .4byte _080B4EC8 +_080B4EA4: + ldr r3, _080B4EAC @ =gUnknown_83E74D8 + movs r5, 0 + b _080B4ECC + .align 2, 0 +_080B4EAC: .4byte gUnknown_83E74D8 +_080B4EB0: + ldr r3, _080B4EB8 @ =gUnknown_83E74F0 + movs r5, 0x50 + b _080B4ECC + .align 2, 0 +_080B4EB8: .4byte gUnknown_83E74F0 +_080B4EBC: + ldr r3, _080B4EC4 @ =gUnknown_83E74F0 + movs r5, 0x40 + b _080B4ECC + .align 2, 0 +_080B4EC4: .4byte gUnknown_83E74F0 +_080B4EC8: + ldr r3, _080B4F68 @ =gUnknown_83E74F0 + movs r5, 0x30 +_080B4ECC: + ldrh r1, [r4, 0xC] + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r1, 16 + ldrh r2, [r4, 0xE] + lsls r2, 16 + asrs r2, 19 + lsls r2, 16 + movs r6, 0x20 + ldrsh r0, [r4, r6] + lsls r0, 2 + adds r1, r0 + lsls r1, 16 + lsrs r6, r1, 16 + asrs r1, 16 + lsrs r7, r2, 16 + asrs r2, 16 + adds r0, r3, 0 + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080B4F58 + ldr r1, _080B4F6C @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x12 + strh r1, [r0, 0x2E] + movs r2, 0x20 + ldrsh r1, [r4, r2] + lsls r2, r1, 2 + adds r2, r1 + lsls r2, 2 + adds r2, r6, r2 + movs r6, 0xA + ldrsh r3, [r4, r6] + lsls r1, r3, 1 + adds r1, r3 + adds r2, r1 + strh r2, [r0, 0x32] + strh r7, [r0, 0x36] + movs r1, 0xA + ldrsh r2, [r4, r1] + lsls r2, 1 + movs r3, 0x10 + negs r3, r3 + adds r1, r3, 0 + subs r1, r2 + strh r1, [r0, 0x38] + ldrh r3, [r0, 0x4] + lsls r2, r3, 22 + lsrs r2, 22 + adds r2, r5 + ldr r5, _080B4F70 @ =0x000003ff + adds r1, r5, 0 + ands r2, r1 + ldr r1, _080B4F74 @ =0xfffffc00 + ands r1, r3 + orrs r1, r2 + strh r1, [r0, 0x4] + bl sub_8075068 + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] +_080B4F58: + movs r6, 0x20 + ldrsh r0, [r4, r6] + negs r0, r0 + strh r0, [r4, 0x20] +_080B4F60: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B4F68: .4byte gUnknown_83E74F0 +_080B4F6C: .4byte gSprites +_080B4F70: .4byte 0x000003ff +_080B4F74: .4byte 0xfffffc00 + thumb_func_end sub_80B4E70 + + thumb_func_start sub_80B4F78 +sub_80B4F78: @ 80B4F78 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B4FAA + ldr r0, _080B4FB0 @ =sub_80B4D00 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080B4FA4 + ldr r0, _080B4FB4 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1E] + subs r0, 0x1 + strh r0, [r1, 0x1E] +_080B4FA4: + adds r0, r4, 0 + bl DestroySprite +_080B4FAA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4FB0: .4byte sub_80B4D00 +_080B4FB4: .4byte gTasks + thumb_func_end sub_80B4F78 + + thumb_func_start sub_80B4FB8 +sub_80B4FB8: @ 80B4FB8 + push {lr} + ldr r0, _080B4FE0 @ =gAnimDisableStructPtr + ldr r0, [r0] + ldrb r1, [r0, 0x11] + lsrs r0, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B4FDA + movs r1, 0x1 +_080B4FDA: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080B4FE0: .4byte gAnimDisableStructPtr + thumb_func_end sub_80B4FB8 + + thumb_func_start sub_80B4FE4 +sub_80B4FE4: @ 80B4FE4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B501C @ =gBattleAnimArgs + ldrb r1, [r5, 0x8] + bl StartSpriteAnim + ldrh r0, [r5] + strh r0, [r4, 0x24] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + ldrh r1, [r5, 0x4] + subs r0, r1 + strh r0, [r4, 0x34] + movs r0, 0x3 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080B5020 @ =sub_80B5024 + str r0, [r4, 0x1C] + adds r4, 0x3E + ldrb r0, [r4] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B501C: .4byte gBattleAnimArgs +_080B5020: .4byte sub_80B5024 + thumb_func_end sub_80B4FE4 + + thumb_func_start sub_80B5024 +sub_80B5024: @ 80B5024 + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldrh r1, [r2, 0x34] + movs r3, 0x34 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080B505C + ldrh r3, [r2, 0x32] + adds r0, r1, r3 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r1, r0 + strh r1, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r1, 16 + cmp r1, 0 + ble _080B506E + movs r0, 0 + strh r0, [r2, 0x34] + b _080B506E +_080B505C: + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080B506E + adds r0, r2, 0 + bl DestroyAnimSprite +_080B506E: + pop {r0} + bx r0 + thumb_func_end sub_80B5024 + + thumb_func_start sub_80B5074 +sub_80B5074: @ 80B5074 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B509C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B5090 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080B5090: + adds r0, r4, 0 + bl sub_8075DF4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B509C: .4byte gBattleAnimAttacker + thumb_func_end sub_80B5074 + + thumb_func_start sub_80B50A0 +sub_80B50A0: @ 80B50A0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B50EC @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B50F0 @ =gBattleAnimArgs + ldrh r3, [r2] + ldrh r5, [r4, 0x20] + adds r1, r3, r5 + strh r1, [r4, 0x20] + ldrh r1, [r2, 0x2] + adds r0, r1 + strh r0, [r4, 0x22] + strh r3, [r4, 0x30] + strh r1, [r4, 0x32] + ldrh r0, [r2, 0x4] + strh r0, [r4, 0x38] + ldrb r1, [r2, 0x6] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080B50F4 @ =sub_80B50F8 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B50EC: .4byte gBattleAnimTarget +_080B50F0: .4byte gBattleAnimArgs +_080B50F4: .4byte sub_80B50F8 + thumb_func_end sub_80B50A0 + + thumb_func_start sub_80B50F8 +sub_80B50F8: @ 80B50F8 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x8 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl __divsi3 + ldrh r1, [r4, 0x24] + adds r1, r0 + strh r1, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + subs r1, r0 + strh r1, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x8C + ble _080B5142 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B5142: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B50F8 + + thumb_func_start sub_80B5148 +sub_80B5148: @ 80B5148 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080B5180 @ =gUnknown_2037EE8 + ldr r0, [r2] + cmp r0, 0x20 + bgt _080B515C + ldr r1, _080B5184 @ =gBattleAnimArgs + movs r0, 0 + strh r0, [r1, 0xE] +_080B515C: + ldr r2, [r2] + adds r0, r2, 0 + subs r0, 0x21 + cmp r0, 0x20 + bhi _080B516C + ldr r1, _080B5184 @ =gBattleAnimArgs + movs r0, 0x1 + strh r0, [r1, 0xE] +_080B516C: + cmp r2, 0x41 + ble _080B5176 + ldr r1, _080B5184 @ =gBattleAnimArgs + movs r0, 0x2 + strh r0, [r1, 0xE] +_080B5176: + adds r0, r3, 0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080B5180: .4byte gUnknown_2037EE8 +_080B5184: .4byte gBattleAnimArgs + thumb_func_end sub_80B5148 + + thumb_func_start sub_80B5188 +sub_80B5188: @ 80B5188 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080B51E4 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B51AA + movs r0, 0 + bl sub_8075458 + movs r0, 0xC8 + strh r0, [r5, 0xA] +_080B51AA: + ldr r4, _080B51E8 @ =gBattle_BG3_Y + movs r1, 0xA + ldrsh r0, [r5, r1] + movs r1, 0xA + bl __divsi3 + ldrh r1, [r4] + adds r1, r0 + strh r1, [r4] + ldrh r0, [r5, 0xA] + subs r0, 0x3 + strh r0, [r5, 0xA] + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x78 + bne _080B51D6 + movs r0, 0x1 + bl sub_8075458 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080B51D6: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B51E4: .4byte gTasks +_080B51E8: .4byte gBattle_BG3_Y + thumb_func_end sub_80B5188 + + thumb_func_start sub_80B51EC +sub_80B51EC: @ 80B51EC + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080B5258 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B5218 + movs r0, 0 + bl sub_8075458 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _080B525C @ =gBattle_BG3_Y + ldrh r0, [r0] + strh r0, [r4, 0xC] +_080B5218: + ldrh r0, [r4, 0xA] + adds r0, 0x50 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0xA] + ldr r6, _080B525C @ =gBattle_BG3_Y + movs r2, 0xA + ldrsh r1, [r4, r2] + movs r0, 0x4 + bl Cos + ldrh r4, [r4, 0xC] + adds r0, r4 + strh r0, [r6] + ldr r0, _080B5260 @ =gBattleAnimArgs + movs r2, 0xE + ldrsh r1, [r0, r2] + ldr r0, _080B5264 @ =0x00000fff + cmp r1, r0 + bne _080B5250 + movs r0, 0 + strh r0, [r6] + movs r0, 0x1 + bl sub_8075458 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B5250: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B5258: .4byte gTasks +_080B525C: .4byte gBattle_BG3_Y +_080B5260: .4byte gBattleAnimArgs +_080B5264: .4byte 0x00000fff + thumb_func_end sub_80B51EC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom6.s b/asm/rom6.s index 06c2d30a2..2ac2cc0a4 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -291,10 +291,10 @@ SetUpFieldMove_RockSmash: @ 80C99D8 movs r0, 0 b _080C99FA _080C99EC: - ldr r1, _080C9A00 @ =gUnknown_3005024 - ldr r0, _080C9A04 @ =hm_add_c3_launch_phase_2 + ldr r1, _080C9A00 @ =gFieldCallback2 + ldr r0, _080C9A04 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080C9A08 @ =gUnknown_203B0C4 + ldr r1, _080C9A08 @ =gPostMenuFieldCallback ldr r0, _080C9A0C @ =sub_80C9A10 str r0, [r1] movs r0, 0x1 @@ -302,9 +302,9 @@ _080C99FA: pop {r1} bx r1 .align 2, 0 -_080C9A00: .4byte gUnknown_3005024 -_080C9A04: .4byte hm_add_c3_launch_phase_2 -_080C9A08: .4byte gUnknown_203B0C4 +_080C9A00: .4byte gFieldCallback2 +_080C9A04: .4byte FieldCallback_PrepareFadeInFromMenu +_080C9A08: .4byte gPostMenuFieldCallback _080C9A0C: .4byte sub_80C9A10 thumb_func_end SetUpFieldMove_RockSmash @@ -373,10 +373,10 @@ SetUpFieldMove_Dig: @ 80C9A78 movs r0, 0 b _080C9A98 _080C9A8A: - ldr r1, _080C9A9C @ =gUnknown_3005024 - ldr r0, _080C9AA0 @ =hm_add_c3_launch_phase_2 + ldr r1, _080C9A9C @ =gFieldCallback2 + ldr r0, _080C9AA0 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080C9AA4 @ =gUnknown_203B0C4 + ldr r1, _080C9AA4 @ =gPostMenuFieldCallback ldr r0, _080C9AA8 @ =hm2_dig str r0, [r1] movs r0, 0x1 @@ -384,9 +384,9 @@ _080C9A98: pop {r1} bx r1 .align 2, 0 -_080C9A9C: .4byte gUnknown_3005024 -_080C9AA0: .4byte hm_add_c3_launch_phase_2 -_080C9AA4: .4byte gUnknown_203B0C4 +_080C9A9C: .4byte gFieldCallback2 +_080C9AA0: .4byte FieldCallback_PrepareFadeInFromMenu +_080C9AA4: .4byte gPostMenuFieldCallback _080C9AA8: .4byte hm2_dig thumb_func_end SetUpFieldMove_Dig diff --git a/asm/roulette_util.s b/asm/roulette_util.s deleted file mode 100644 index 532bf4684..000000000 --- a/asm/roulette_util.s +++ /dev/null @@ -1,1447 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80D8BE4 -sub_80D8BE4: @ 80D8BE4 - push {lr} - movs r1, 0 - strb r1, [r0] - strh r1, [r0, 0x2] - adds r0, 0x4 - movs r2, 0xC0 - bl memset - pop {r0} - bx r0 - thumb_func_end sub_80D8BE4 - - thumb_func_start sub_80D8BF8 -sub_80D8BF8: @ 80D8BF8 - push {r4-r7,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r6, 0xF - bhi _080D8C14 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r5, r3, r0 - ldrb r7, [r5, 0x4] - lsrs r0, r7, 7 - cmp r0, 0 - beq _080D8C18 -_080D8C14: - movs r0, 0xFF - b _080D8C76 -_080D8C18: - ldrh r0, [r2] - movs r4, 0 - strh r0, [r5, 0x8] - ldrh r0, [r2, 0x2] - strh r0, [r5, 0xA] - ldrb r0, [r2, 0x4] - strb r0, [r5, 0xC] - ldrb r0, [r2, 0x5] - strb r0, [r5, 0xD] - ldrb r0, [r2, 0x6] - strb r0, [r5, 0xE] - ldrb r3, [r2, 0x7] - lsls r0, r3, 27 - lsrs r0, 27 - ldrb r2, [r5, 0xF] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - movs r0, 0x60 - ands r0, r3 - movs r2, 0x61 - negs r2, r2 - ands r1, r2 - orrs r1, r0 - lsls r3, 24 - asrs r3, 31 - lsls r3, 7 - movs r0, 0x7F - ands r1, r0 - orrs r1, r3 - strb r1, [r5, 0xF] - subs r0, 0xFF - ands r0, r7 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r5, 0x4] - strb r4, [r5, 0x6] - strb r4, [r5, 0x5] - lsls r1, 24 - cmp r1, 0 - bge _080D8C70 - movs r0, 0xFF - b _080D8C72 -_080D8C70: - movs r0, 0x1 -_080D8C72: - strb r0, [r5, 0x7] - adds r0, r6, 0 -_080D8C76: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80D8BF8 - - thumb_func_start sub_80D8C7C -sub_80D8C7C: @ 80D8C7C - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r4, r1, 0 - cmp r4, 0xF - bhi _080D8CA8 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r1, r2, r0 - ldrb r0, [r1, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _080D8CA8 - adds r0, r1, 0x4 - movs r1, 0 - movs r2, 0xC - bl memset - adds r0, r4, 0 - b _080D8CAA -_080D8CA8: - movs r0, 0xFF -_080D8CAA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80D8C7C - - thumb_func_start sub_80D8CB0 -sub_80D8CB0: @ 80D8CB0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - movs r0, 0 - mov r12, r0 - ldrb r1, [r5, 0x8] - cmp r12, r1 - bcc _080D8CC8 - b _080D8E60 -_080D8CC8: - movs r7, 0x1F - ldr r0, _080D8CF8 @ =0xfffffc1f - mov r10, r0 - movs r1, 0x7D - negs r1, r1 - mov r9, r1 - movs r0, 0x1F - mov r8, r0 -_080D8CD8: - ldrh r0, [r5, 0x6] - add r0, r12 - lsls r0, 1 - ldr r1, _080D8CFC @ =gPlttBufferFaded - adds r3, r0, r1 - ldr r1, _080D8D00 @ =gPlttBufferUnfaded - adds r6, r0, r1 - ldrb r0, [r5] - lsls r0, 25 - lsrs r0, 25 - cmp r0, 0x1 - beq _080D8D04 - cmp r0, 0x2 - beq _080D8D62 - b _080D8E4E - .align 2, 0 -_080D8CF8: .4byte 0xfffffc1f -_080D8CFC: .4byte gPlttBufferFaded -_080D8D00: .4byte gPlttBufferUnfaded -_080D8D04: - ldr r0, [r3] - lsls r2, r0, 27 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bhi _080D8D26 - lsrs r0, r2, 27 - adds r0, r1 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_080D8D26: - ldr r0, [r3] - lsls r2, r0, 22 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bhi _080D8D4A - lsrs r0, r2, 27 - adds r0, r1 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_080D8D4A: - ldr r0, [r3] - lsls r2, r0, 17 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bls _080D8D5C - b _080D8E4E -_080D8D5C: - lsrs r0, r2, 27 - adds r0, r1 - b _080D8E40 -_080D8D62: - movs r0, 0x3 - ldrsb r0, [r5, r0] - cmp r0, 0 - bge _080D8DD4 - ldr r0, [r3] - lsls r4, r0, 27 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 27 - lsrs r0, 27 - cmp r1, r0 - blt _080D8D92 - lsrs r0, r4, 27 - adds r0, r2 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_080D8D92: - ldr r0, [r3] - lsls r4, r0, 22 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 22 - lsrs r0, 27 - cmp r1, r0 - blt _080D8DBC - lsrs r0, r4, 27 - adds r0, r2 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_080D8DBC: - ldr r0, [r3] - lsls r4, r0, 17 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 17 - lsrs r0, 27 - cmp r1, r0 - blt _080D8E4E - b _080D8E3C -_080D8DD4: - ldr r0, [r3] - lsls r4, r0, 27 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 27 - lsrs r0, 27 - cmp r1, r0 - bgt _080D8DFC - lsrs r0, r4, 27 - adds r0, r2 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_080D8DFC: - ldr r0, [r3] - lsls r4, r0, 22 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 22 - lsrs r0, 27 - cmp r1, r0 - bgt _080D8E26 - lsrs r0, r4, 27 - adds r0, r2 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_080D8E26: - ldr r0, [r3] - lsls r4, r0, 17 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 17 - lsrs r0, 27 - cmp r1, r0 - bgt _080D8E4E -_080D8E3C: - lsrs r0, r4, 27 - adds r0, r2 -_080D8E40: - ands r0, r7 - lsls r0, 2 - ldrb r2, [r3, 0x1] - mov r1, r9 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] -_080D8E4E: - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - ldrb r0, [r5, 0x8] - cmp r12, r0 - bcs _080D8E60 - b _080D8CD8 -_080D8E60: - ldrb r1, [r5, 0x2] - adds r0, r1, 0x1 - strb r0, [r5, 0x2] - ldrb r0, [r5, 0xB] - lsls r0, 27 - lsls r1, 24 - asrs r0, 3 - cmp r1, r0 - beq _080D8E76 - movs r0, 0 - b _080D8EAA -_080D8E76: - movs r0, 0 - strb r0, [r5, 0x2] - movs r0, 0x3 - ldrsb r0, [r5, r0] - negs r0, r0 - strb r0, [r5, 0x3] - ldrb r2, [r5] - movs r1, 0x7F - movs r0, 0x7F - ands r0, r2 - cmp r0, 0x1 - bne _080D8E96 - lsls r0, r2, 25 - lsrs r0, 25 - adds r0, 0x1 - b _080D8E9C -_080D8E96: - lsls r0, r2, 25 - lsrs r0, 25 - subs r0, 0x1 -_080D8E9C: - ands r0, r1 - movs r1, 0x80 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - movs r0, 0x1 -_080D8EAA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80D8CB0 - - thumb_func_start sub_80D8EB8 -sub_80D8EB8: @ 80D8EB8 - push {r4,r5,lr} - adds r3, r0, 0 - movs r2, 0 - ldrb r0, [r3] - lsls r0, 25 - lsrs r0, 25 - cmp r0, 0x1 - beq _080D8ECE - cmp r0, 0x2 - beq _080D8EFC - b _080D8F36 -_080D8ECE: - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcs _080D8EEE - ldr r4, _080D8EF8 @ =gPlttBufferFaded -_080D8ED6: - ldrh r0, [r3, 0x6] - adds r0, r2 - lsls r0, 1 - adds r0, r4 - ldrh r1, [r3, 0x4] - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcc _080D8ED6 -_080D8EEE: - ldrb r2, [r3] - lsls r1, r2, 25 - lsrs r1, 25 - adds r1, 0x1 - b _080D8F28 - .align 2, 0 -_080D8EF8: .4byte gPlttBufferFaded -_080D8EFC: - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcs _080D8F20 - ldr r5, _080D8F40 @ =gPlttBufferFaded - ldr r4, _080D8F44 @ =gPlttBufferUnfaded -_080D8F06: - ldrh r0, [r3, 0x6] - adds r0, r2 - lsls r0, 1 - adds r1, r0, r5 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcc _080D8F06 -_080D8F20: - ldrb r2, [r3] - lsls r1, r2, 25 - lsrs r1, 25 - subs r1, 0x1 -_080D8F28: - movs r0, 0x7F - ands r1, r0 - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D8F36: - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080D8F40: .4byte gPlttBufferFaded -_080D8F44: .4byte gPlttBufferUnfaded - thumb_func_end sub_80D8EB8 - - thumb_func_start task_tutorial_controls_fadein -task_tutorial_controls_fadein: @ 80D8F48 - push {r4-r6,lr} - adds r4, r0, 0 - movs r5, 0 - ldrb r0, [r4] - cmp r0, 0 - beq _080D8FAC -_080D8F54: - ldrh r0, [r4, 0x2] - asrs r0, r5 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8FA2 - lsls r1, r5, 1 - adds r0, r1, r5 - lsls r3, r0, 2 - adds r2, r4, r3 - ldrb r0, [r2, 0x5] - subs r0, 0x1 - strb r0, [r2, 0x5] - lsls r0, 24 - lsrs r0, 24 - adds r6, r1, 0 - cmp r0, 0xFF - bne _080D8FA2 - ldrh r0, [r2, 0x8] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080D8F90 - adds r0, r3, 0x4 - adds r0, r4, r0 - bl sub_80D8CB0 - b _080D8F98 -_080D8F90: - adds r0, r3, 0x4 - adds r0, r4, r0 - bl sub_80D8EB8 -_080D8F98: - adds r0, r6, r5 - lsls r0, 2 - adds r0, r4, r0 - ldrb r1, [r0, 0xD] - strb r1, [r0, 0x5] -_080D8FA2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _080D8F54 -_080D8FAC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end task_tutorial_controls_fadein - - thumb_func_start sub_80D8FB4 -sub_80D8FB4: @ 80D8FB4 - push {r4-r7,lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - movs r4, 0 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r5, 0x1 - movs r7, 0x80 - negs r7, r7 -_080D8FCA: - adds r0, r6, 0 - asrs r0, r4 - ands r0, r5 - cmp r0, 0 - beq _080D8FF8 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r2, r3, r0 - ldrb r0, [r2, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _080D8FF8 - adds r0, r5, 0 - lsls r0, r4 - ldrh r1, [r3, 0x2] - orrs r0, r1 - strh r0, [r3, 0x2] - ldrb r1, [r2, 0x4] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r5 - strb r0, [r2, 0x4] -_080D8FF8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080D8FCA - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D8FB4 - - thumb_func_start sub_80D9008 -sub_80D9008: @ 80D9008 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - movs r5, 0 - movs r3, 0x1 -_080D9016: - ldrh r0, [r6, 0x2] - asrs r0, r5 - ands r0, r3 - cmp r0, 0 - beq _080D907E - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r4, r6, r0 - ldrb r0, [r4, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _080D907E - adds r0, r7, 0 - asrs r0, r5 - ands r0, r3 - cmp r0, 0 - beq _080D907E - ldrh r1, [r4, 0xA] - lsls r1, 1 - ldr r0, _080D9074 @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _080D9078 @ =gPlttBufferUnfaded - adds r1, r2 - ldrb r2, [r4, 0xC] - lsls r2, 1 - str r3, [sp] - bl memcpy - ldrb r0, [r4, 0x4] - movs r2, 0x80 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - strb r0, [r4, 0x4] - movs r0, 0 - strb r0, [r4, 0x6] - strb r0, [r4, 0x5] - ldrb r0, [r4, 0xF] - lsls r0, 24 - ldr r3, [sp] - cmp r0, 0 - bge _080D907C - movs r0, 0xFF - strb r0, [r4, 0x7] - b _080D907E - .align 2, 0 -_080D9074: .4byte gPlttBufferFaded -_080D9078: .4byte gPlttBufferUnfaded -_080D907C: - strb r3, [r4, 0x7] -_080D907E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _080D9016 - ldr r0, _080D9094 @ =0x0000ffff - cmp r7, r0 - bne _080D9098 - movs r0, 0 - strb r0, [r6] - b _080D909C - .align 2, 0 -_080D9094: .4byte 0x0000ffff -_080D9098: - ldrh r0, [r6, 0x2] - bics r0, r7 -_080D909C: - strh r0, [r6, 0x2] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D9008 - - thumb_func_start sub_80D90A8 -sub_80D90A8: @ 80D90A8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 - strh r4, [r5] - adds r0, r5, 0x4 - movs r1, 0 - movs r2, 0xC0 - bl memset -_080D90BA: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r5, r0 - strb r4, [r0, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080D90BA - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D90A8 - - thumb_func_start sub_80D90D4 -sub_80D90D4: @ 80D90D4 - push {r4,r5,lr} - adds r2, r0, 0 - adds r5, r1, 0 - movs r3, 0 - movs r4, 0 - ldrb r0, [r2, 0x5] - lsrs r0, 7 - cmp r0, 0 - bne _080D90EA - adds r4, r2, 0x4 - b _080D9108 -_080D90EA: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bhi _080D9108 - lsls r0, r3, 1 - adds r0, r3 - lsls r1, r0, 2 - adds r0, r2, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 7 - cmp r0, 0 - bne _080D90EA - adds r0, r1, 0x4 - adds r4, r2, r0 -_080D9108: - cmp r4, 0 - beq _080D9136 - ldrb r1, [r4, 0x1] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0 - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - adds r1, r4, 0x4 - adds r0, r5, 0 - ldm r0!, {r2,r4} - stm r1!, {r2,r4} - adds r0, r3, 0 - b _080D9138 -_080D9136: - movs r0, 0xFF -_080D9138: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80D90D4 - - thumb_func_start sub_80D9140 -sub_80D9140: @ 80D9140 - push {r4,r5,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0x1] - movs r2, 0x40 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080D9182 - ldrb r1, [r4, 0xB] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080D9182 - ldrh r2, [r4, 0x6] - ldrb r0, [r4, 0x8] - adds r0, r2, r0 - cmp r2, r0 - bge _080D9182 - ldr r5, _080D91B4 @ =gPlttBufferFaded - ldr r3, _080D91B8 @ =gPlttBufferUnfaded -_080D9168: - lsls r0, r2, 1 - adds r1, r0, r5 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r4, 0x6] - ldrb r1, [r4, 0x8] - adds r0, r1 - cmp r2, r0 - blt _080D9168 -_080D9182: - adds r0, r4, 0x4 - movs r1, 0 - movs r2, 0x8 - bl memset - ldrb r1, [r4, 0x1] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - subs r1, 0x10 - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - movs r1, 0x7F - ands r0, r1 - strb r0, [r4, 0x1] - movs r0, 0 - strb r0, [r4, 0x3] - strb r0, [r4, 0x2] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D91B4: .4byte gPlttBufferFaded -_080D91B8: .4byte gPlttBufferUnfaded - thumb_func_end sub_80D9140 - - thumb_func_start sub_80D91BC -sub_80D91BC: @ 80D91BC - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - movs r5, 0 - cmp r2, 0 - bne _080D91E0 - movs r1, 0xF - ands r1, r4 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, 0x4 - adds r0, r6, r0 - bl sub_80D9140 - b _080D920C -_080D91E0: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080D9200 - lsls r0, r5, 1 - adds r0, r5 - lsls r1, r0, 2 - adds r0, r6, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 7 - cmp r0, 0 - beq _080D9200 - adds r0, r1, 0x4 - adds r0, r6, r0 - bl sub_80D9140 -_080D9200: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _080D91E0 -_080D920C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D91BC - - thumb_func_start sub_80D9214 -sub_80D9214: @ 80D9214 - push {r4-r7,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - movs r3, 0 - cmp r2, 0 - bne _080D9248 - movs r0, 0xF - adds r3, r0, 0 - ands r3, r4 - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r1, r5, r1 - ldrb r2, [r1, 0x5] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x1 - lsls r0, r3 - ldrh r1, [r5] - orrs r0, r1 - strh r0, [r5] - b _080D928C -_080D9248: - movs r6, 0x1 - movs r7, 0x41 - negs r7, r7 -_080D924E: - adds r0, r4, 0 - ands r0, r6 - cmp r0, 0 - beq _080D926C - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r2, r5, r0 - ldrb r1, [r2, 0x5] - lsrs r0, r1, 7 - cmp r0, 0 - beq _080D926C - lsls r0, r1, 25 - cmp r0, 0 - blt _080D9272 -_080D926C: - lsls r0, r4, 17 - lsrs r4, r0, 16 - b _080D9282 -_080D9272: - adds r0, r7, 0 - ands r0, r1 - strb r0, [r2, 0x5] - adds r0, r6, 0 - lsls r0, r3 - ldrh r1, [r5] - orrs r0, r1 - strh r0, [r5] -_080D9282: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _080D924E -_080D928C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D9214 - - thumb_func_start sub_80D9294 -sub_80D9294: @ 80D9294 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 24 - movs r0, 0 - mov r12, r0 - cmp r2, 0 - bne _080D931C - movs r1, 0xF - ands r1, r7 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, 0x4 - mov r1, r8 - adds r3, r1, r0 - ldrb r1, [r3, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - bne _080D93A6 - ldrb r1, [r3, 0xB] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080D92FA - ldrh r2, [r3, 0x6] - ldrb r0, [r3, 0x8] - adds r0, r2, r0 - cmp r2, r0 - bge _080D92FA - ldr r5, _080D9314 @ =gPlttBufferFaded - ldr r4, _080D9318 @ =gPlttBufferUnfaded -_080D92E0: - lsls r0, r2, 1 - adds r1, r0, r5 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r3, 0x6] - ldrb r1, [r3, 0x8] - adds r0, r1 - cmp r2, r0 - blt _080D92E0 -_080D92FA: - ldrb r0, [r3, 0x1] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r3, 0x1] - movs r1, 0x1 - mov r2, r12 - lsls r1, r2 - mov r2, r8 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] - b _080D93A6 - .align 2, 0 -_080D9314: .4byte gPlttBufferFaded -_080D9318: .4byte gPlttBufferUnfaded -_080D931C: - movs r0, 0x1 - mov r9, r0 - movs r1, 0x40 - mov r10, r1 -_080D9324: - mov r2, r12 - lsls r0, r2, 1 - add r0, r12 - lsls r0, 2 - adds r0, 0x4 - mov r1, r8 - adds r3, r1, r0 - adds r0, r7, 0 - mov r2, r9 - ands r0, r2 - cmp r0, 0 - beq _080D9346 - ldrb r1, [r3, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - beq _080D9350 -_080D9346: - lsls r0, r7, 17 - lsrs r7, r0, 16 - mov r5, r12 - adds r5, 0x1 - b _080D939C -_080D9350: - ldrb r1, [r3, 0xB] - mov r0, r10 - ands r0, r1 - mov r5, r12 - adds r5, 0x1 - cmp r0, 0 - beq _080D9386 - ldrh r2, [r3, 0x6] - ldrb r0, [r3, 0x8] - adds r0, r2, r0 - cmp r2, r0 - bge _080D9386 - ldr r6, _080D93B4 @ =gPlttBufferFaded - ldr r4, _080D93B8 @ =gPlttBufferUnfaded -_080D936C: - lsls r0, r2, 1 - adds r1, r0, r6 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r3, 0x6] - ldrb r1, [r3, 0x8] - adds r0, r1 - cmp r2, r0 - blt _080D936C -_080D9386: - ldrb r1, [r3, 0x1] - mov r0, r10 - orrs r0, r1 - strb r0, [r3, 0x1] - mov r1, r9 - mov r0, r12 - lsls r1, r0 - mov r2, r8 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] -_080D939C: - lsls r0, r5, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0xF - bls _080D9324 -_080D93A6: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D93B4: .4byte gPlttBufferFaded -_080D93B8: .4byte gPlttBufferUnfaded - thumb_func_end sub_80D9294 - - thumb_func_start sub_80D93BC -sub_80D93BC: @ 80D93BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - str r0, [sp] - movs r0, 0 - mov r10, r0 - ldr r1, [sp] - ldrh r0, [r1] - cmp r0, 0 - bne _080D93D8 - b _080D9562 -_080D93D8: - movs r2, 0xF - mov r9, r2 - movs r3, 0x10 - negs r3, r3 - mov r8, r3 - movs r7, 0x1 -_080D93E4: - mov r5, r10 - lsls r0, r5, 1 - add r0, r10 - lsls r0, 2 - adds r0, 0x4 - ldr r1, [sp] - adds r4, r1, r0 - ldrb r2, [r4, 0x1] - movs r3, 0xC0 - ands r3, r2 - cmp r3, 0x80 - beq _080D93FE - b _080D9552 -_080D93FE: - ldr r0, _080D944C @ =gPaletteFade - ldrb r1, [r0, 0x7] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080D9414 - ldrb r0, [r4, 0xB] - ands r3, r0 - cmp r3, 0 - beq _080D9414 - b _080D9552 -_080D9414: - ldrb r0, [r4, 0x2] - subs r0, 0x1 - strb r0, [r4, 0x2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080D9424 - b _080D9552 -_080D9424: - ldrb r0, [r4, 0x9] - strb r0, [r4, 0x2] - ldrh r0, [r4, 0x6] - ldrb r1, [r4, 0x8] - lsls r2, 28 - lsrs r2, 28 - ldrh r3, [r4, 0x4] - bl BlendPalette - ldrb r5, [r4, 0xB] - lsls r0, r5, 26 - asrs r0, 30 - cmp r0, 0x1 - beq _080D9482 - cmp r0, 0x1 - bgt _080D9450 - cmp r0, 0 - beq _080D9456 - b _080D953C - .align 2, 0 -_080D944C: .4byte gPaletteFade -_080D9450: - cmp r0, 0x2 - beq _080D94FE - b _080D953C -_080D9456: - ldrb r2, [r4, 0x1] - lsls r1, r2, 28 - lsrs r0, r1, 28 - adds r0, 0x1 - mov r3, r9 - ands r0, r3 - mov r6, r8 - adds r3, r6, 0 - ands r3, r2 - orrs r3, r0 - strb r3, [r4, 0x1] - lsrs r1, 28 - lsls r0, r5, 28 - asrs r0, 28 - cmp r1, r0 - bne _080D953C - ldrb r0, [r4, 0x3] - adds r0, 0x1 - strb r0, [r4, 0x3] - ands r3, r6 - strb r3, [r4, 0x1] - b _080D953C -_080D9482: - ldrb r3, [r4, 0x1] - movs r0, 0x10 - ands r0, r3 - cmp r0, 0 - beq _080D94C0 - lsls r0, r3, 28 - lsrs r0, 28 - subs r0, 0x1 - mov r5, r9 - ands r0, r5 - mov r2, r8 - ands r2, r3 - orrs r2, r0 - strb r2, [r4, 0x1] - cmp r0, 0 - bne _080D953C - ldrb r0, [r4, 0x3] - adds r0, 0x1 - strb r0, [r4, 0x3] - lsls r0, r2, 27 - lsrs r0, 31 - eors r0, r7 - ands r0, r7 - lsls r0, 4 - movs r3, 0x11 - negs r3, r3 - adds r1, r3, 0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, 0x1] - b _080D953C -_080D94C0: - lsls r0, r5, 28 - asrs r0, 28 - subs r0, 0x1 - mov r5, r9 - ands r0, r5 - lsls r2, r3, 28 - lsrs r1, r2, 28 - adds r1, 0x1 - ands r1, r5 - mov r5, r8 - ands r3, r5 - orrs r3, r1 - strb r3, [r4, 0x1] - lsrs r2, 28 - cmp r2, r0 - bne _080D953C - ldrb r0, [r4, 0x3] - adds r0, 0x1 - strb r0, [r4, 0x3] - lsls r0, r3, 27 - lsrs r0, 31 - eors r0, r7 - ands r0, r7 - lsls r0, 4 - movs r2, 0x11 - negs r2, r2 - adds r1, r2, 0 - ands r3, r1 - orrs r3, r0 - strb r3, [r4, 0x1] - b _080D953C -_080D94FE: - ldrb r2, [r4, 0x1] - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080D950E - mov r0, r8 - ands r0, r2 - b _080D951C -_080D950E: - lsls r1, r5, 28 - asrs r1, 28 - mov r3, r9 - ands r1, r3 - mov r0, r8 - ands r0, r2 - orrs r0, r1 -_080D951C: - strb r0, [r4, 0x1] - ldrb r2, [r4, 0x1] - lsls r0, r2, 27 - lsrs r0, 31 - eors r0, r7 - ands r0, r7 - lsls r0, 4 - movs r5, 0x11 - negs r5, r5 - adds r1, r5, 0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, 0x1] - ldrb r0, [r4, 0x3] - adds r0, 0x1 - strb r0, [r4, 0x3] -_080D953C: - ldrb r1, [r4, 0xA] - cmp r1, 0xFF - beq _080D9552 - ldrb r0, [r4, 0x3] - cmp r0, r1 - bne _080D9552 - ldrb r1, [r4] - ldr r0, [sp] - movs r2, 0 - bl sub_80D9294 -_080D9552: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0xF - bhi _080D9562 - b _080D93E4 -_080D9562: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D93BC - - thumb_func_start sub_80D9574 -sub_80D9574: @ 80D9574 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, [sp, 0x14] - ldr r4, [sp, 0x18] - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - lsrs r3, 19 - adds r3, r2 - lsls r3, 1 - adds r6, r3 - cmp r1, r4 - bcs _080D95BE -_080D959C: - lsls r0, r1, 6 - adds r2, r6, r0 - movs r0, 0 - adds r3, r1, 0x1 - cmp r0, r5 - bcs _080D95B6 -_080D95A8: - strh r7, [r2] - adds r2, 0x2 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - bcc _080D95A8 -_080D95B6: - lsls r0, r3, 24 - lsrs r1, r0, 24 - cmp r1, r4 - bcc _080D959C -_080D95BE: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D9574 - - thumb_func_start sub_80D95C4 -sub_80D95C4: @ 80D95C4 - push {r4-r7,lr} - adds r7, r0, 0 - ldr r0, [sp, 0x14] - ldr r4, [sp, 0x18] - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r6, r4, 24 - movs r4, 0 - lsrs r3, 19 - adds r3, r2 - lsls r3, 1 - adds r7, r3 - cmp r4, r6 - bcs _080D960E -_080D95E8: - lsls r0, r4, 6 - adds r2, r7, r0 - movs r3, 0 - adds r4, 0x1 - cmp r3, r5 - bcs _080D9606 -_080D95F4: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r5 - bcc _080D95F4 -_080D9606: - lsls r0, r4, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _080D95E8 -_080D960E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D95C4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/safari_zone.s b/asm/safari_zone.s index b29c36739..4bc9d6eb7 100644 --- a/asm/safari_zone.s +++ b/asm/safari_zone.s @@ -122,30 +122,30 @@ sub_80A0F4C: @ 80A0F4C ldrb r0, [r0] cmp r0, 0 beq _080A0F68 - ldr r0, _080A0F64 @ =c2_exit_to_overworld_2_switch + ldr r0, _080A0F64 @ =CB2_ReturnToField bl SetMainCallback2 b _080A0FB0 .align 2, 0 _080A0F60: .4byte gUnknown_2039994 -_080A0F64: .4byte c2_exit_to_overworld_2_switch +_080A0F64: .4byte CB2_ReturnToField _080A0F68: - ldr r0, _080A0F88 @ =gUnknown_2023E8A + ldr r0, _080A0F88 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x8 bne _080A0F9C ldr r0, _080A0F8C @ =gUnknown_81BFB87 bl ScriptContext2_RunNewScript bl warp_in - ldr r1, _080A0F90 @ =gUnknown_3005020 + ldr r1, _080A0F90 @ =gFieldCallback ldr r0, _080A0F94 @ =sub_807E3EC str r0, [r1] ldr r0, _080A0F98 @ =sub_805671C bl SetMainCallback2 b _080A0FB0 .align 2, 0 -_080A0F88: .4byte gUnknown_2023E8A +_080A0F88: .4byte gBattleOutcome _080A0F8C: .4byte gUnknown_81BFB87 -_080A0F90: .4byte gUnknown_3005020 +_080A0F90: .4byte gFieldCallback _080A0F94: .4byte sub_807E3EC _080A0F98: .4byte sub_805671C _080A0F9C: diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s index cbb07e4c7..09503af6a 100644 --- a/asm/save_failed_screen.s +++ b/asm/save_failed_screen.s @@ -73,7 +73,7 @@ _080F516C: ldr r1, _080F5188 @ =0x0000ffff movs r2, 0x80 bl m4aMPlayVolumeControl - bl sub_813BB38 + bl SaveCallbacks ldr r1, _080F518C @ =gUnknown_203AB50 movs r0, 0x1 strb r0, [r1] @@ -83,9 +83,9 @@ _080F5184: .4byte gMPlayInfo_BGM _080F5188: .4byte 0x0000ffff _080F518C: .4byte gUnknown_203AB50 _080F5190: - bl sub_813BBAC - bl sub_813BB74 - bl sub_813BBC8 + bl SaveMapTiles + bl SaveMapGPURegs + bl SaveMapTextColors bl sub_80F52EC movs r0, 0 movs r1, 0 @@ -197,7 +197,7 @@ _080F5298: movs r0, 0 movs r1, 0 bl SetGpuReg - bl sub_813BC2C + bl RestoreMapTiles bl sub_80F52EC ldr r1, _080F52B0 @ =gUnknown_203AB50 movs r0, 0x8 @@ -211,9 +211,9 @@ _080F52B4: movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl - bl sub_813BC48 - bl sub_813BBF4 - bl sub_813BBDC + bl RestoreMapTextColors + bl RestoreGPURegs + bl RestoreCallbacks ldr r0, _080F52E4 @ =gUnknown_3005430 movs r1, 0 str r1, [r0] @@ -259,7 +259,7 @@ _080F5314: .4byte 0x05000200 thumb_func_start sub_80F5318 sub_80F5318: @ 80F5318 push {lr} - ldr r0, _080F532C @ =gUnknown_201F800 + ldr r0, _080F532C @ =gDecompressionBuffer + 0x3800 ldr r1, _080F5330 @ =0x0600f800 movs r2, 0xA0 lsls r2, 3 @@ -268,14 +268,14 @@ sub_80F5318: @ 80F5318 pop {r0} bx r0 .align 2, 0 -_080F532C: .4byte gUnknown_201F800 +_080F532C: .4byte gDecompressionBuffer + 0x3800 _080F5330: .4byte 0x0600f800 thumb_func_end sub_80F5318 thumb_func_start sub_80F5334 sub_80F5334: @ 80F5334 push {lr} - ldr r0, _080F5348 @ =gUnknown_201C020 + ldr r0, _080F5348 @ =gDecompressionBuffer + 0x020 ldr r1, _080F534C @ =0x0600c020 movs r2, 0x8C lsls r2, 6 @@ -284,7 +284,7 @@ sub_80F5334: @ 80F5334 pop {r0} bx r0 .align 2, 0 -_080F5348: .4byte gUnknown_201C020 +_080F5348: .4byte gDecompressionBuffer + 0x020 _080F534C: .4byte 0x0600c020 thumb_func_end sub_80F5334 @@ -315,7 +315,7 @@ sub_80F5350: @ 80F5350 cmp r0, r2 bge _080F53B6 mov r12, r2 - ldr r1, _080F53C8 @ =gUnknown_201F800 + ldr r1, _080F53C8 @ =gDecompressionBuffer + 0x3800 mov r10, r1 _080F5386: mov r4, r9 @@ -354,7 +354,7 @@ _080F53B6: pop {r0} bx r0 .align 2, 0 -_080F53C8: .4byte gUnknown_201F800 +_080F53C8: .4byte gDecompressionBuffer + 0x3800 thumb_func_end sub_80F5350 thumb_func_start sub_80F53CC @@ -404,7 +404,7 @@ sub_80F5404: @ 80F5404 ldr r2, _080F544C @ =0x00001111 adds r0, r2, 0 strh r0, [r1] - ldr r4, _080F5450 @ =gUnknown_201C020 + ldr r4, _080F5450 @ =gDecompressionBuffer + 0x020 ldr r2, _080F5454 @ =0x01001180 adds r0, r1, 0 adds r1, r4, 0 @@ -419,7 +419,7 @@ sub_80F5404: @ 80F5404 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x2 - bl sub_813C078 + bl HelpSystemRenderText bl sub_80F5334 add sp, 0x10 pop {r4,r5} @@ -427,7 +427,7 @@ sub_80F5404: @ 80F5404 bx r0 .align 2, 0 _080F544C: .4byte 0x00001111 -_080F5450: .4byte gUnknown_201C020 +_080F5450: .4byte gDecompressionBuffer + 0x020 _080F5454: .4byte 0x01001180 thumb_func_end sub_80F5404 diff --git a/asm/scrcmd.s b/asm/scrcmd.s deleted file mode 100644 index e8ffcf3ab..000000000 --- a/asm/scrcmd.s +++ /dev/null @@ -1,5612 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8069ED0 -sub_8069ED0: @ 8069ED0 - movs r0, 0 - bx lr - thumb_func_end sub_8069ED0 - - thumb_func_start sub_8069ED4 -sub_8069ED4: @ 8069ED4 - movs r0, 0 - bx lr - thumb_func_end sub_8069ED4 - - thumb_func_start ScrCmd_end -ScrCmd_end: @ 8069ED8 - push {lr} - bl StopScript - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_end - - thumb_func_start ScrCmd_gotonative -ScrCmd_gotonative: @ 8069EE4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_gotonative - - thumb_func_start sub_8069EFC -sub_8069EFC: @ 8069EFC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 14 - ldr r1, _08069F18 @ =gSpecials - adds r1, r0, r1 - ldr r0, _08069F1C @ =gStdScripts - cmp r1, r0 - bcs _08069F20 - ldr r0, [r1] - bl _call_via_r0 - b _08069F2C - .align 2, 0 -_08069F18: .4byte gSpecials -_08069F1C: .4byte gStdScripts -_08069F20: - ldr r0, _08069F34 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c" - ldr r2, _08069F38 @ =gUnknown_83A7290 "0" - movs r1, 0xF1 - movs r3, 0x1 - bl AGBAssert -_08069F2C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08069F34: .4byte gUnknown_83A725C -_08069F38: .4byte gUnknown_83A7290 - thumb_func_end sub_8069EFC - - thumb_func_start sub_8069F3C -sub_8069F3C: @ 8069F3C - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 14 - ldr r1, _08069F6C @ =gSpecials - adds r1, r0, r1 - ldr r0, _08069F70 @ =gStdScripts - cmp r1, r0 - bcs _08069F74 - ldr r0, [r1] - bl _call_via_r0 - strh r0, [r5] - b _08069F80 - .align 2, 0 -_08069F6C: .4byte gSpecials -_08069F70: .4byte gStdScripts -_08069F74: - ldr r0, _08069F88 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c" - ldr r1, _08069F8C @ =0x00000107 - ldr r2, _08069F90 @ =gUnknown_83A7290 "0" - movs r3, 0x1 - bl AGBAssert -_08069F80: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08069F88: .4byte gUnknown_83A725C -_08069F8C: .4byte 0x00000107 -_08069F90: .4byte gUnknown_83A7290 - thumb_func_end sub_8069F3C - - thumb_func_start ScrCmd_callnative -ScrCmd_callnative: @ 8069F94 - push {lr} - bl ScriptReadWord - bl _call_via_r0 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_callnative - - thumb_func_start sub_8069FA4 -sub_8069FA4: @ 8069FA4 - push {lr} - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8069FA4 - - thumb_func_start ScrCmd_goto -ScrCmd_goto: @ 8069FB0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl ScriptJump - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_goto - - thumb_func_start ScrCmd_return -ScrCmd_return: @ 8069FC8 - push {lr} - bl ScriptReturn - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_return - - thumb_func_start ScrCmd_call -ScrCmd_call: @ 8069FD4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl ScriptCall - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_call - - thumb_func_start ScrCmd_goto_if -ScrCmd_goto_if: @ 8069FEC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r1, _0806A024 @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A01A - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptJump -_0806A01A: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A024: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_goto_if - - thumb_func_start ScrCmd_call_if -ScrCmd_call_if: @ 806A028 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r1, _0806A060 @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A056 - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptCall -_0806A056: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A060: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_call_if - - thumb_func_start ScrCmd_setvaddress -ScrCmd_setvaddress: @ 806A064 - push {r4,lr} - ldr r4, [r0, 0x8] - subs r4, 0x1 - bl ScriptReadWord - ldr r1, _0806A07C @ =gUnknown_20370A8 - subs r0, r4 - str r0, [r1] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A07C: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_setvaddress - - thumb_func_start ScrCmd_vgoto -ScrCmd_vgoto: @ 806A080 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806A0A0 @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - adds r0, r4, 0 - bl ScriptJump - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A0A0: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_vgoto - - thumb_func_start ScrCmd_vcall -ScrCmd_vcall: @ 806A0A4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806A0C4 @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - adds r0, r4, 0 - bl ScriptCall - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A0C4: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_vcall - - thumb_func_start ScrCmd_vgoto_if -ScrCmd_vgoto_if: @ 806A0C8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - ldr r1, _0806A104 @ =gUnknown_20370A8 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, _0806A108 @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A0FA - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptJump -_0806A0FA: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A104: .4byte gUnknown_20370A8 -_0806A108: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_vgoto_if - - thumb_func_start ScrCmd_vcall_if -ScrCmd_vcall_if: @ 806A10C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - ldr r1, _0806A148 @ =gUnknown_20370A8 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, _0806A14C @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A13E - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptCall -_0806A13E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A148: .4byte gUnknown_20370A8 -_0806A14C: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_vcall_if - - thumb_func_start ScrCmd_gotostd -ScrCmd_gotostd: @ 806A150 - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r2, 0x8] - lsls r1, 2 - ldr r0, _0806A178 @ =gStdScripts - adds r1, r0 - ldr r0, _0806A17C @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A170 - ldr r1, [r1] - adds r0, r2, 0 - bl ScriptJump -_0806A170: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806A178: .4byte gStdScripts -_0806A17C: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_gotostd - - thumb_func_start ScrCmd_callstd -ScrCmd_callstd: @ 806A180 - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r2, 0x8] - lsls r1, 2 - ldr r0, _0806A1A8 @ =gStdScripts - adds r1, r0 - ldr r0, _0806A1AC @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A1A0 - ldr r1, [r1] - adds r0, r2, 0 - bl ScriptCall -_0806A1A0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806A1A8: .4byte gStdScripts -_0806A1AC: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_callstd - - thumb_func_start ScrCmd_gotostd_if -ScrCmd_gotostd_if: @ 806A1B0 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldr r1, _0806A1F0 @ =gUnknown_83A7248 - lsls r0, r2, 1 - adds r0, r2 - ldrb r2, [r3, 0x2] - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A1E8 - lsls r0, r4, 2 - ldr r1, _0806A1F4 @ =gStdScripts - adds r1, r0, r1 - ldr r0, _0806A1F8 @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A1E8 - ldr r1, [r1] - adds r0, r3, 0 - bl ScriptJump -_0806A1E8: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A1F0: .4byte gUnknown_83A7248 -_0806A1F4: .4byte gStdScripts -_0806A1F8: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_gotostd_if - - thumb_func_start ScrCmd_callstd_if -ScrCmd_callstd_if: @ 806A1FC - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldr r1, _0806A23C @ =gUnknown_83A7248 - lsls r0, r2, 1 - adds r0, r2 - ldrb r2, [r3, 0x2] - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A234 - lsls r0, r4, 2 - ldr r1, _0806A240 @ =gStdScripts - adds r1, r0, r1 - ldr r0, _0806A244 @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A234 - ldr r1, [r1] - adds r0, r3, 0 - bl ScriptCall -_0806A234: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A23C: .4byte gUnknown_83A7248 -_0806A240: .4byte gStdScripts -_0806A244: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_callstd_if - - thumb_func_start ScrCmd_gotoram -ScrCmd_gotoram: @ 806A248 - push {lr} - ldr r1, _0806A258 @ =gUnknown_20370A4 - ldr r1, [r1] - bl ScriptJump - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806A258: .4byte gUnknown_20370A4 - thumb_func_end ScrCmd_gotoram - - thumb_func_start ScrCmd_killscript -ScrCmd_killscript: @ 806A25C - push {r4,lr} - adds r4, r0, 0 - bl ClearRamScript - adds r0, r4, 0 - bl StopScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_killscript - - thumb_func_start ScrCmd_setmysteryeventstatus -ScrCmd_setmysteryeventstatus: @ 806A274 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl SetMysteryEventScriptStatus - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmysteryeventstatus - - thumb_func_start sub_806A28C -sub_806A28C: @ 806A28C - push {r4,lr} - adds r4, r0, 0 - bl sub_8069E48 - adds r2, r0, 0 - cmp r2, 0 - beq _0806A2A8 - ldr r1, _0806A2B0 @ =gUnknown_20370A4 - ldr r0, [r4, 0x8] - str r0, [r1] - adds r0, r4, 0 - adds r1, r2, 0 - bl ScriptJump -_0806A2A8: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A2B0: .4byte gUnknown_20370A4 - thumb_func_end sub_806A28C - - thumb_func_start ScrCmd_loadword -ScrCmd_loadword: @ 806A2B4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_loadword - - thumb_func_start ScrCmd_loadbytefromaddr -ScrCmd_loadbytefromaddr: @ 806A2D8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - ldrb r0, [r0] - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_loadbytefromaddr - - thumb_func_start ScrCmd_writebytetoaddr -ScrCmd_writebytetoaddr: @ 806A2FC - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - strb r4, [r0] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_writebytetoaddr - - thumb_func_start ScrCmd_loadbyte -ScrCmd_loadbyte: @ 806A314 - ldr r1, [r0, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - lsls r3, 2 - adds r2, r0, 0 - adds r2, 0x64 - adds r2, r3 - ldrb r3, [r1] - str r3, [r2] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end ScrCmd_loadbyte - - thumb_func_start ScrCmd_setptrbyte -ScrCmd_setptrbyte: @ 806A330 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - ldr r1, [r4] - strb r1, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setptrbyte - - thumb_func_start ScrCmd_copylocal -ScrCmd_copylocal: @ 806A354 - ldr r1, [r0, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - lsls r3, 2 - adds r0, 0x64 - adds r3, r0, r3 - lsls r2, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - movs r0, 0 - bx lr - thumb_func_end ScrCmd_copylocal - - thumb_func_start ScrCmd_copybyte -ScrCmd_copybyte: @ 806A374 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadWord - ldrb r0, [r0] - strb r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_copybyte - - thumb_func_start ScrCmd_setvar -ScrCmd_setvar: @ 806A390 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - adds r0, r5, 0 - bl ScriptReadHalfword - strh r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setvar - - thumb_func_start ScrCmd_copyvar -ScrCmd_copyvar: @ 806A3B4 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r0, [r0] - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_copyvar - - thumb_func_start ScrCmd_setorcopyvar -ScrCmd_setorcopyvar: @ 806A3E0 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setorcopyvar - - thumb_func_start compare_012 -compare_012: @ 806A40C - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r0, r1 - bcs _0806A41E - movs r0, 0 - b _0806A428 -_0806A41E: - cmp r0, r1 - beq _0806A426 - movs r0, 0x2 - b _0806A428 -_0806A426: - movs r0, 0x1 -_0806A428: - pop {r1} - bx r1 - thumb_func_end compare_012 - - thumb_func_start ScrCmd_compare_local_to_local -ScrCmd_compare_local_to_local: @ 806A42C - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r0, [r2] - lsls r0, 2 - adds r3, r4, 0 - adds r3, 0x64 - adds r0, r3, r0 - ldrb r0, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r3, r1 - ldrb r1, [r3] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_local - - thumb_func_start ScrCmd_compare_local_to_value -ScrCmd_compare_local_to_value: @ 806A45C - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r0, 0x64 - adds r0, r1 - ldrb r0, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_value - - thumb_func_start ScrCmd_compare_local_to_addr -ScrCmd_compare_local_to_addr: @ 806A484 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r0, 0x64 - adds r0, r1 - ldrb r5, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - ldrb r1, [r0] - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_addr - - thumb_func_start ScrCmd_compare_addr_to_local -ScrCmd_compare_addr_to_local: @ 806A4B0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r0, [r0] - ldr r3, [r4, 0x8] - ldrb r2, [r3] - lsls r2, 2 - adds r1, r4, 0 - adds r1, 0x64 - adds r1, r2 - ldrb r1, [r1] - adds r3, 0x1 - str r3, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_addr_to_local - - thumb_func_start ScrCmd_compare_addr_to_value -ScrCmd_compare_addr_to_value: @ 806A4DC - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r0, [r0] - ldr r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_addr_to_value - - thumb_func_start ScrCmd_compare_addr_to_addr -ScrCmd_compare_addr_to_addr: @ 806A4FC - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r5, [r0] - adds r0, r4, 0 - bl ScriptReadWord - ldrb r1, [r0] - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_addr_to_addr - - thumb_func_start ScrCmd_compare_var_to_value -ScrCmd_compare_var_to_value: @ 806A520 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r5, [r0] - adds r0, r4, 0 - bl ScriptReadHalfword - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_var_to_value - - thumb_func_start ScrCmd_compare_var_to_var -ScrCmd_compare_var_to_var: @ 806A550 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r2, [r5] - ldrh r1, [r0] - adds r0, r2, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_var_to_var - - thumb_func_start ScrCmd_addvar -ScrCmd_addvar: @ 806A584 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - adds r0, r5, 0 - bl ScriptReadHalfword - ldrh r1, [r4] - adds r0, r1 - strh r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_addvar - - thumb_func_start ScrCmd_subvar -ScrCmd_subvar: @ 806A5AC - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldrh r1, [r5] - subs r1, r0 - strh r1, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_subvar - - thumb_func_start ScrCmd_random -ScrCmd_random: @ 806A5DC - push {r4,r5,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r5, _0806A60C @ =gSpecialVar_Result - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __umodsi3 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A60C: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_random - - thumb_func_start sub_806A610 -sub_806A610: @ 806A610 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A658 @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809A084 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - adds r0, r4, 0 - bl sub_809A824 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A658: .4byte gSpecialVar_Result - thumb_func_end sub_806A610 - - thumb_func_start ScrCmd_takeitem -ScrCmd_takeitem: @ 806A65C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A69C @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809A1D8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A69C: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_takeitem - - thumb_func_start sub_806A6A0 -sub_806A6A0: @ 806A6A0 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A6E0 @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809A000 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A6E0: .4byte gSpecialVar_Result - thumb_func_end sub_806A6A0 - - thumb_func_start sub_806A6E4 -sub_806A6E4: @ 806A6E4 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A724 @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8099F40 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A724: .4byte gSpecialVar_Result - thumb_func_end sub_806A6E4 - - thumb_func_start ScrCmd_checkitemtype -ScrCmd_checkitemtype: @ 806A728 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0806A750 @ =gSpecialVar_Result - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A750: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_checkitemtype - - thumb_func_start ScrCmd_givepcitem -ScrCmd_givepcitem: @ 806A754 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r5, _0806A794 @ =gSpecialVar_Result - adds r0, r4, 0 - bl sub_809A3C8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A794: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_givepcitem - - thumb_func_start ScrCmd_checkpcitem -ScrCmd_checkpcitem: @ 806A798 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r5, _0806A7D8 @ =gSpecialVar_Result - adds r0, r4, 0 - bl sub_809A374 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A7D8: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_checkpcitem - - thumb_func_start sub_806A7DC -sub_806A7DC: @ 806A7DC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A7DC - - thumb_func_start sub_806A7F0 -sub_806A7F0: @ 806A7F0 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A7F0 - - thumb_func_start sub_806A804 -sub_806A804: @ 806A804 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A804 - - thumb_func_start sub_806A818 -sub_806A818: @ 806A818 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A818 - - thumb_func_start ScrCmd_setflag -ScrCmd_setflag: @ 806A82C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagSet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setflag - - thumb_func_start ScrCmd_clearflag -ScrCmd_clearflag: @ 806A840 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagClear - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_clearflag - - thumb_func_start ScrCmd_checkflag -ScrCmd_checkflag: @ 806A854 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_checkflag - - thumb_func_start ScrCmd_incrementgamestat -ScrCmd_incrementgamestat: @ 806A870 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl IncrementGameStat - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_incrementgamestat - - thumb_func_start sub_806A888 -sub_806A888: @ 806A888 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r6, r0, 0 - adds r0, r4, 0 - bl GetGameStat - cmp r0, r6 - bcs _0806A8AA - movs r0, 0 - b _0806A8B4 -_0806A8AA: - cmp r0, r6 - bne _0806A8B2 - movs r0, 0x1 - b _0806A8B4 -_0806A8B2: - movs r0, 0x2 -_0806A8B4: - strb r0, [r5, 0x2] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806A888 - - thumb_func_start sub_806A8C0 -sub_806A8C0: @ 806A8C0 - push {r4,lr} - bl ScriptReadHalfword - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_8115748 - adds r0, r4, 0 - bl sub_80F85BC - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806A8C0 - - thumb_func_start ScrCmd_animateflash -ScrCmd_animateflash: @ 806A8E0 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl sub_807F028 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end ScrCmd_animateflash - - thumb_func_start ScrCmd_setflashradius -ScrCmd_setflashradius: @ 806A8FC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl Overworld_SetFlashLevel - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setflashradius - - thumb_func_start sub_806A918 -sub_806A918: @ 806A918 - push {lr} - ldr r0, _0806A92C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806A930 - movs r0, 0 - b _0806A932 - .align 2, 0 -_0806A92C: .4byte gPaletteFade -_0806A930: - movs r0, 0x1 -_0806A932: - pop {r1} - bx r1 - thumb_func_end sub_806A918 - - thumb_func_start ScrCmd_fadescreen -ScrCmd_fadescreen: @ 806A938 - push {r4,lr} - adds r4, r0, 0 - ldr r1, [r4, 0x8] - ldrb r0, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - movs r1, 0 - bl fade_screen - ldr r1, _0806A95C @ =sub_806A918 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A95C: .4byte sub_806A918 - thumb_func_end ScrCmd_fadescreen - - thumb_func_start ScrCmd_fadescreenspeed -ScrCmd_fadescreenspeed: @ 806A960 - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r0, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - lsls r1, 24 - asrs r1, 24 - bl fade_screen - ldr r1, _0806A98C @ =sub_806A918 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A98C: .4byte sub_806A918 - thumb_func_end ScrCmd_fadescreenspeed - - thumb_func_start RunPauseTimer -RunPauseTimer: @ 806A990 - push {lr} - ldr r1, _0806A9A4 @ =gUnknown_20370AE - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0806A9A8 - movs r0, 0 - b _0806A9AA - .align 2, 0 -_0806A9A4: .4byte gUnknown_20370AE -_0806A9A8: - movs r0, 0x1 -_0806A9AA: - pop {r1} - bx r1 - thumb_func_end RunPauseTimer - - thumb_func_start ScrCmd_delay -ScrCmd_delay: @ 806A9B0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - ldr r1, _0806A9CC @ =gUnknown_20370AE - strh r0, [r1] - ldr r1, _0806A9D0 @ =RunPauseTimer - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A9CC: .4byte gUnknown_20370AE -_0806A9D0: .4byte RunPauseTimer - thumb_func_end ScrCmd_delay - - thumb_func_start sub_806A9D4 -sub_806A9D4: @ 806A9D4 - movs r0, 0 - bx lr - thumb_func_end sub_806A9D4 - - thumb_func_start sub_806A9D8 -sub_806A9D8: @ 806A9D8 - movs r0, 0 - bx lr - thumb_func_end sub_806A9D8 - - thumb_func_start sub_806A9DC -sub_806A9DC: @ 806A9DC - ldr r0, _0806A9F0 @ =gSpecialVar_0x8000 - movs r1, 0 - strh r1, [r0] - ldr r0, _0806A9F4 @ =gSpecialVar_0x8001 - strh r1, [r0] - ldr r0, _0806A9F8 @ =gSpecialVar_0x8002 - strh r1, [r0] - movs r0, 0 - bx lr - .align 2, 0 -_0806A9F0: .4byte gSpecialVar_0x8000 -_0806A9F4: .4byte gSpecialVar_0x8001 -_0806A9F8: .4byte gSpecialVar_0x8002 - thumb_func_end sub_806A9DC - - thumb_func_start ScrCmd_setweather -ScrCmd_setweather: @ 806A9FC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl SetSav1Weather - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setweather - - thumb_func_start ScrCmd_resetweather -ScrCmd_resetweather: @ 806AA18 - push {lr} - bl sub_807B140 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_resetweather - - thumb_func_start ScrCmd_doweather -ScrCmd_doweather: @ 806AA24 - push {lr} - bl DoCurrentWeather - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_doweather - - thumb_func_start ScrCmd_setstepcallback -ScrCmd_setstepcallback: @ 806AA30 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl ActivatePerStepCallback - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setstepcallback - - thumb_func_start ScrCmd_setmaplayoutindex -ScrCmd_setmaplayoutindex: @ 806AA48 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl sub_8055D40 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmaplayoutindex - - thumb_func_start ScrCmd_warp -ScrCmd_warp: @ 806AA64 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sub_807E438 - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warp - - thumb_func_start ScrCmd_warpsilent -ScrCmd_warpsilent: @ 806AAEC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sp13E_warp_to_last_warp - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warpsilent - - thumb_func_start ScrCmd_warpdoor -ScrCmd_warpdoor: @ 806AB74 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sub_807E4DC - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warpdoor - - thumb_func_start ScrCmd_warphole -ScrCmd_warphole: @ 806ABFC - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, [r0, 0x8] - ldrb r6, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - mov r4, sp - adds r4, 0x6 - add r0, sp, 0x4 - adds r1, r4, 0 - bl PlayerGetDestCoords - cmp r6, 0xFF - bne _0806AC3A - cmp r5, 0xFF - bne _0806AC3A - add r0, sp, 0x4 - ldrh r0, [r0] - subs r0, 0x7 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4] - subs r1, 0x7 - lsls r1, 16 - asrs r1, 16 - bl sub_8055688 - b _0806AC5E -_0806AC3A: - lsls r0, r6, 24 - asrs r0, 24 - lsls r1, r5, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - add r3, sp, 0x4 - ldrb r3, [r3] - subs r3, 0x7 - lsls r3, 24 - asrs r3, 24 - ldrb r4, [r4] - subs r4, 0x7 - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - bl Overworld_SetWarpDestination -_0806AC5E: - bl sp13F_fall_to_last_warp - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warphole - - thumb_func_start sub_806AC70 -sub_806AC70: @ 806AC70 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sub_807E59C - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806AC70 - - thumb_func_start sub_806ACF8 -sub_806ACF8: @ 806ACF8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_805DAE4 - bl sub_807E500 - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806ACF8 - - thumb_func_start ScrCmd_setwarp -ScrCmd_setwarp: @ 806AD8C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setwarp - - thumb_func_start ScrCmd_setdynamicwarp -ScrCmd_setdynamicwarp: @ 806AE0C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - lsls r0, 24 - asrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - mov r1, r9 - mov r2, r8 - adds r3, r6, 0 - bl saved_warp2_set_2 - movs r0, 0 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setdynamicwarp - - thumb_func_start sub_806AE90 -sub_806AE90: @ 806AE90 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_80555F8 - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806AE90 - - thumb_func_start sub_806AF10 -sub_806AF10: @ 806AF10 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_805564C - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806AF10 - - thumb_func_start ScrCmd_setescapewarp -ScrCmd_setescapewarp: @ 806AF90 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_80555A0 - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setescapewarp - - thumb_func_start ScrCmd_getplayerxy -ScrCmd_getplayerxy: @ 806B010 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldr r2, _0806B048 @ =gSaveBlock1Ptr - ldr r1, [r2] - ldrh r1, [r1] - strh r1, [r5] - ldr r1, [r2] - ldrh r1, [r1, 0x2] - strh r1, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B048: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_getplayerxy - - thumb_func_start ScrCmd_getpartysize -ScrCmd_getpartysize: @ 806B04C - push {r4,lr} - ldr r4, _0806B064 @ =gSpecialVar_Result - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B064: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_getpartysize - - thumb_func_start ScrCmd_playse -ScrCmd_playse: @ 806B068 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl PlaySE - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_playse - - thumb_func_start WaitForSoundEffectFinish -WaitForSoundEffectFinish: @ 806B07C - push {lr} - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _0806B08C - movs r0, 0 - b _0806B08E -_0806B08C: - movs r0, 0x1 -_0806B08E: - pop {r1} - bx r1 - thumb_func_end WaitForSoundEffectFinish - - thumb_func_start sub_806B094 -sub_806B094: @ 806B094 - push {lr} - ldr r1, _0806B0A4 @ =WaitForSoundEffectFinish - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806B0A4: .4byte WaitForSoundEffectFinish - thumb_func_end sub_806B094 - - thumb_func_start ScrCmd_playfanfare -ScrCmd_playfanfare: @ 806B0A8 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl PlayFanfare - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_playfanfare - - thumb_func_start WaitForFanfareFinish -WaitForFanfareFinish: @ 806B0BC - push {lr} - bl IsFanfareTaskInactive - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end WaitForFanfareFinish - - thumb_func_start sub_806B0CC -sub_806B0CC: @ 806B0CC - push {lr} - ldr r1, _0806B0DC @ =WaitForFanfareFinish - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806B0DC: .4byte WaitForFanfareFinish - thumb_func_end sub_806B0CC - - thumb_func_start sub_806B0E0 -sub_806B0E0: @ 806B0E0 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r1, r0, 16 - adds r5, r1, 0 - ldr r0, [r4, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldr r0, _0806B11C @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B114 - cmp r2, 0x1 - bne _0806B10E - adds r0, r1, 0 - bl sub_8055E78 -_0806B10E: - adds r0, r5, 0 - bl PlayNewMapMusic -_0806B114: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B11C: .4byte gUnknown_203ADFA - thumb_func_end sub_806B0E0 - - thumb_func_start sub_806B120 -sub_806B120: @ 806B120 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl sub_8055E78 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B120 - - thumb_func_start sub_806B134 -sub_806B134: @ 806B134 - push {lr} - ldr r0, _0806B150 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B148 - bl Overworld_ChangeMusicToDefault -_0806B148: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B150: .4byte gUnknown_203ADFA - thumb_func_end sub_806B134 - - thumb_func_start sub_806B154 -sub_806B154: @ 806B154 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _0806B178 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B172 - adds r0, r1, 0 - bl sub_8055F48 -_0806B172: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B178: .4byte gUnknown_203ADFA - thumb_func_end sub_806B154 - - thumb_func_start sub_806B17C -sub_806B17C: @ 806B17C - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldr r0, _0806B19C @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0806B1A0 - movs r0, 0 - b _0806B1BE - .align 2, 0 -_0806B19C: .4byte gUnknown_203ADFA -_0806B1A0: - cmp r1, 0 - beq _0806B1AE - lsls r0, r1, 26 - lsrs r0, 24 - bl FadeOutBGMTemporarily - b _0806B1B4 -_0806B1AE: - movs r0, 0x4 - bl FadeOutBGMTemporarily -_0806B1B4: - ldr r1, _0806B1C4 @ =IsBGMPausedOrStopped - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 -_0806B1BE: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B1C4: .4byte IsBGMPausedOrStopped - thumb_func_end sub_806B17C - - thumb_func_start sub_806B1C8 -sub_806B1C8: @ 806B1C8 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, _0806B1F0 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B1FA - cmp r2, 0 - beq _0806B1F4 - lsls r0, r2, 26 - lsrs r0, 24 - bl FadeInBGM - b _0806B1FA - .align 2, 0 -_0806B1F0: .4byte gUnknown_203ADFA -_0806B1F4: - movs r0, 0x4 - bl FadeInBGM -_0806B1FA: - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B1C8 - - thumb_func_start ScrCmd_applymovement -ScrCmd_applymovement: @ 806B200 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadWord - adds r3, r0, 0 - lsls r0, r4, 24 - lsrs r0, 24 - ldr r1, _0806B23C @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl ScriptMovement_StartObjectMovementScript - ldr r0, _0806B240 @ =gUnknown_20370B0 - strh r4, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B23C: .4byte gSaveBlock1Ptr -_0806B240: .4byte gUnknown_20370B0 - thumb_func_end ScrCmd_applymovement - - thumb_func_start ScrCmd_applymovement_at -ScrCmd_applymovement_at: @ 806B244 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadWord - adds r3, r0, 0 - ldr r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - lsls r0, r4, 24 - lsrs r0, 24 - bl ScriptMovement_StartObjectMovementScript - ldr r0, _0806B284 @ =gUnknown_20370B0 - strh r4, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B284: .4byte gUnknown_20370B0 - thumb_func_end ScrCmd_applymovement_at - - thumb_func_start WaitForMovementFinish -WaitForMovementFinish: @ 806B288 - push {lr} - ldr r0, _0806B2A4 @ =gUnknown_20370B0 - ldrb r0, [r0] - ldr r1, _0806B2A8 @ =gUnknown_20370B4 - ldrb r1, [r1] - ldr r2, _0806B2AC @ =gUnknown_20370B2 - ldrb r2, [r2] - bl ScriptMovement_IsObjectMovementFinished - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0806B2A4: .4byte gUnknown_20370B0 -_0806B2A8: .4byte gUnknown_20370B4 -_0806B2AC: .4byte gUnknown_20370B2 - thumb_func_end WaitForMovementFinish - - thumb_func_start ScrCmd_waitmovement -ScrCmd_waitmovement: @ 806B2B0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0806B2CC - ldr r0, _0806B2F0 @ =gUnknown_20370B0 - strh r1, [r0] -_0806B2CC: - ldr r1, _0806B2F4 @ =gUnknown_20370B2 - ldr r0, _0806B2F8 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x4 - ldrsb r0, [r2, r0] - strh r0, [r1] - ldr r1, _0806B2FC @ =gUnknown_20370B4 - movs r0, 0x5 - ldrsb r0, [r2, r0] - strh r0, [r1] - ldr r1, _0806B300 @ =WaitForMovementFinish - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B2F0: .4byte gUnknown_20370B0 -_0806B2F4: .4byte gUnknown_20370B2 -_0806B2F8: .4byte gSaveBlock1Ptr -_0806B2FC: .4byte gUnknown_20370B4 -_0806B300: .4byte WaitForMovementFinish - thumb_func_end ScrCmd_waitmovement - - thumb_func_start ScrCmd_waitmovement_at -ScrCmd_waitmovement_at: @ 806B304 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0806B320 - ldr r0, _0806B348 @ =gUnknown_20370B0 - strh r1, [r0] -_0806B320: - ldr r0, [r4, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldr r0, _0806B34C @ =gUnknown_20370B2 - strh r2, [r0] - ldr r0, _0806B350 @ =gUnknown_20370B4 - strh r1, [r0] - ldr r1, _0806B354 @ =WaitForMovementFinish - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B348: .4byte gUnknown_20370B0 -_0806B34C: .4byte gUnknown_20370B2 -_0806B350: .4byte gUnknown_20370B4 -_0806B354: .4byte WaitForMovementFinish - thumb_func_end ScrCmd_waitmovement_at - - thumb_func_start ScrCmd_removeobject -ScrCmd_removeobject: @ 806B358 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B37C @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl RemoveFieldObjectByLocalIdAndMap - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B37C: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_removeobject - - thumb_func_start ScrCmd_removeobject_at -ScrCmd_removeobject_at: @ 806B380 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl RemoveFieldObjectByLocalIdAndMap - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_removeobject_at - - thumb_func_start ScrCmd_addobject -ScrCmd_addobject: @ 806B3B0 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B3D4 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl show_sprite - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B3D4: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_addobject - - thumb_func_start ScrCmd_addobject_at -ScrCmd_addobject_at: @ 806B3D8 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl show_sprite - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_addobject_at - - thumb_func_start ScrCmd_setobjectxy -ScrCmd_setobjectxy: @ 806B408 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r5, 24 - lsrs r5, 24 - ldr r1, _0806B46C @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - lsls r4, 16 - asrs r4, 16 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - adds r0, r5, 0 - adds r3, r4, 0 - bl sub_805F7C4 - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0806B46C: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_setobjectxy - - thumb_func_start ScrCmd_setobjectxyperm -ScrCmd_setobjectxyperm: @ 806B470 - push {r4-r6,lr} - adds r6, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r2, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 16 - asrs r4, 16 - lsls r2, 16 - asrs r2, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl Overworld_SetMapObjTemplateCoords - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setobjectxyperm - - thumb_func_start ScrCmd_moveobjectoffscreen -ScrCmd_moveobjectoffscreen: @ 806B4C8 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B4EC @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl sub_805FE94 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B4EC: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_moveobjectoffscreen - - thumb_func_start ScrCmd_showobject_at -ScrCmd_showobject_at: @ 806B4F0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - bl npc_by_local_id_and_map_set_field_1_bit_x20 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_showobject_at - - thumb_func_start ScrCmd_hideobject_at -ScrCmd_hideobject_at: @ 806B520 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x1 - bl npc_by_local_id_and_map_set_field_1_bit_x20 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_hideobject_at - - thumb_func_start ScrCmd_setobjectpriority -ScrCmd_setobjectpriority: @ 806B550 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r5, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r5, 0x8] - ldrb r1, [r3] - adds r4, r3, 0x1 - str r4, [r5, 0x8] - ldrb r3, [r3, 0x1] - adds r4, 0x1 - str r4, [r5, 0x8] - lsls r0, 24 - lsrs r0, 24 - adds r3, 0x53 - lsls r3, 24 - lsrs r3, 24 - bl sub_805F3A8 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setobjectpriority - - thumb_func_start ScrCmd_resetobjectpriority -ScrCmd_resetobjectpriority: @ 806B58C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl sub_805F400 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_resetobjectpriority - - thumb_func_start ScrCmd_faceplayer -ScrCmd_faceplayer: @ 806B5BC - push {r4,lr} - ldr r2, _0806B5EC @ =gMapObjects - ldr r0, _0806B5F0 @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - ldrb r0, [r4] - lsls r0, 31 - cmp r0, 0 - beq _0806B5E4 - bl player_get_direction_lower_nybble - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectFaceOppositeDirection -_0806B5E4: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B5EC: .4byte gMapObjects -_0806B5F0: .4byte gUnknown_3005074 - thumb_func_end ScrCmd_faceplayer - - thumb_func_start ScrCmd_turnobject -ScrCmd_turnobject: @ 806B5F4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, [r4, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B624 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl FieldObjectTurnByLocalIdAndMap - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B624: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_turnobject - - thumb_func_start ScrCmd_setobjectmovementtype -ScrCmd_setobjectmovementtype: @ 806B628 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl Overworld_SetMapObjTemplateMovementType - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setobjectmovementtype - - thumb_func_start ScrCmd_createvobject -ScrCmd_createvobject: @ 806B650 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r6, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r3, r0, 0 - ldr r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - lsls r4, 16 - asrs r4, 16 - lsls r3, 16 - asrs r3, 16 - str r2, [sp] - str r1, [sp, 0x4] - mov r0, r8 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_805E9F8 - movs r0, 0 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_createvobject - - thumb_func_start ScrCmd_turnvobject -ScrCmd_turnvobject: @ 806B6C0 - push {lr} - ldr r2, [r0, 0x8] - ldrb r3, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - adds r0, r3, 0 - bl sub_8069058 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_turnvobject - - thumb_func_start ScrCmd_lockall -ScrCmd_lockall: @ 806B6DC - push {r4,lr} - adds r4, r0, 0 - bl sub_805642C - cmp r0, 0 - bne _0806B6FC - bl ScriptFreezeMapObjects - ldr r1, _0806B6F8 @ =sub_8069590 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - b _0806B6FE - .align 2, 0 -_0806B6F8: .4byte sub_8069590 -_0806B6FC: - movs r0, 0 -_0806B6FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_lockall - - thumb_func_start ScrCmd_lock -ScrCmd_lock: @ 806B704 - push {r4,lr} - adds r4, r0, 0 - bl sub_805642C - cmp r0, 0 - beq _0806B714 - movs r0, 0 - b _0806B752 -_0806B714: - ldr r2, _0806B738 @ =gMapObjects - ldr r0, _0806B73C @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0806B744 - bl LockSelectedMapObject - ldr r1, _0806B740 @ =sub_8069648 - adds r0, r4, 0 - bl SetupNativeScript - b _0806B750 - .align 2, 0 -_0806B738: .4byte gMapObjects -_0806B73C: .4byte gUnknown_3005074 -_0806B740: .4byte sub_8069648 -_0806B744: - bl ScriptFreezeMapObjects - ldr r1, _0806B758 @ =sub_8069590 - adds r0, r4, 0 - bl SetupNativeScript -_0806B750: - movs r0, 0x1 -_0806B752: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B758: .4byte sub_8069590 - thumb_func_end ScrCmd_lock - - thumb_func_start ScrCmd_releaseall -ScrCmd_releaseall: @ 806B75C - push {lr} - bl HideFieldMessageBox - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0806B790 @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80974D8 - bl UnfreezeMapObjects - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B790: .4byte gMapObjects - thumb_func_end ScrCmd_releaseall - - thumb_func_start ScrCmd_release -ScrCmd_release: @ 806B794 - push {r4,lr} - bl HideFieldMessageBox - ldr r4, _0806B7E4 @ =gMapObjects - ldr r0, _0806B7E8 @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _0806B7B6 - adds r0, r1, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished -_0806B7B6: - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80974D8 - bl UnfreezeMapObjects - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B7E4: .4byte gMapObjects -_0806B7E8: .4byte gUnknown_3005074 - thumb_func_end ScrCmd_release - - thumb_func_start sub_806B7EC -sub_806B7EC: @ 806B7EC - ldr r2, _0806B804 @ =gUnknown_20370DC - ldr r3, _0806B808 @ =gUnknown_20370DA - ldrh r1, [r3] - strh r1, [r2] - ldr r1, [r0, 0x8] - ldrb r2, [r1] - strh r2, [r3] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - .align 2, 0 -_0806B804: .4byte gUnknown_20370DC -_0806B808: .4byte gUnknown_20370DA - thumb_func_end sub_806B7EC - - thumb_func_start sub_806B80C -sub_806B80C: @ 806B80C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0806B81A - ldr r0, [r4, 0x64] -_0806B81A: - bl ShowFieldMessage - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B80C - - thumb_func_start sub_806B828 -sub_806B828: @ 806B828 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0806B836 - ldr r0, [r4, 0x64] -_0806B836: - bl sub_80F7974 - bl GetStartMenuWindowId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B828 - - thumb_func_start sub_806B850 -sub_806B850: @ 806B850 - push {lr} - bl sub_80F7998 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B850 - - thumb_func_start sub_806B85C -sub_806B85C: @ 806B85C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0806B86A - ldr r0, [r4, 0x64] -_0806B86A: - bl ShowFieldAutoScrollMessage - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B85C - - thumb_func_start sub_806B878 -sub_806B878: @ 806B878 - push {lr} - ldr r1, _0806B888 @ =IsFieldMessageBoxHidden - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806B888: .4byte IsFieldMessageBoxHidden - thumb_func_end sub_806B878 - - thumb_func_start sub_806B88C -sub_806B88C: @ 806B88C - push {lr} - bl HideFieldMessageBox - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B88C - - thumb_func_start sub_806B898 -sub_806B898: @ 806B898 - push {r4,lr} - ldr r0, _0806B8F0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0806B922 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0806B922 - ldr r4, _0806B8F4 @ =gUnknown_3005070 - ldr r0, [r4] - bl sub_806B93C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806B906 - ldr r0, [r4] - bl sub_806B96C - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8069998 - cmp r4, 0 - beq _0806B906 - ldr r0, _0806B8F8 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - beq _0806B906 - bl sub_80699F8 - adds r0, r4, 0 - subs r0, 0x9 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B8FC - bl sub_8069964 - b _0806B922 - .align 2, 0 -_0806B8F0: .4byte gMain -_0806B8F4: .4byte gUnknown_3005070 -_0806B8F8: .4byte gUnknown_203ADFA -_0806B8FC: - bl sub_80699A4 - bl sub_8069970 - b _0806B922 -_0806B906: - bl sub_8112CAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806B91A - ldr r0, _0806B928 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _0806B934 -_0806B91A: - ldr r1, _0806B92C @ =gUnknown_20370AC - ldrb r0, [r1] - cmp r0, 0x78 - bne _0806B930 -_0806B922: - movs r0, 0x1 - b _0806B936 - .align 2, 0 -_0806B928: .4byte gUnknown_203ADFA -_0806B92C: .4byte gUnknown_20370AC -_0806B930: - adds r0, 0x1 - strb r0, [r1] -_0806B934: - movs r0, 0 -_0806B936: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B898 - - thumb_func_start sub_806B93C -sub_806B93C: @ 806B93C - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r0, [r0] - cmp r0, 0x3 - bne _0806B958 - ldrb r1, [r2] - subs r1, 0x1 - lsls r1, 2 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1 - ldr r0, [r0] - ldrb r0, [r0] -_0806B958: - subs r0, 0x6B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0806B966 - movs r0, 0x1 - b _0806B968 -_0806B966: - movs r0, 0 -_0806B968: - pop {r1} - bx r1 - thumb_func_end sub_806B93C - - thumb_func_start sub_806B96C -sub_806B96C: @ 806B96C - push {lr} - ldr r2, _0806B988 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0806B990 - ldr r0, _0806B98C @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x2 - beq _0806B990 - movs r0, 0x1 - b _0806BA36 - .align 2, 0 -_0806B988: .4byte gMain -_0806B98C: .4byte gSpecialVar_Facing -_0806B990: - ldrh r1, [r2, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806B9AC - ldr r0, _0806B9A8 @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x1 - beq _0806B9AC - movs r0, 0x2 - b _0806BA36 - .align 2, 0 -_0806B9A8: .4byte gSpecialVar_Facing -_0806B9AC: - ldrh r1, [r2, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0806B9C8 - ldr r0, _0806B9C4 @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x3 - beq _0806B9C8 - movs r0, 0x3 - b _0806BA36 - .align 2, 0 -_0806B9C4: .4byte gSpecialVar_Facing -_0806B9C8: - ldrh r1, [r2, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0806B9E4 - ldr r0, _0806B9E0 @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x4 - beq _0806B9E4 - movs r0, 0x4 - b _0806BA36 - .align 2, 0 -_0806B9E0: .4byte gSpecialVar_Facing -_0806B9E4: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0806B9F4 - movs r0, 0x5 - b _0806BA36 -_0806B9F4: - ldrh r2, [r2, 0x2C] - movs r0, 0x80 - lsls r0, 1 - ands r0, r2 - cmp r0, 0 - beq _0806BA04 - movs r0, 0x6 - b _0806BA36 -_0806BA04: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _0806BA10 - movs r0, 0x7 - b _0806BA36 -_0806BA10: - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _0806BA1C - movs r0, 0x8 - b _0806BA36 -_0806BA1C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806BA28 - movs r0, 0x9 - b _0806BA36 -_0806BA28: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0806BA34 - movs r0, 0 - b _0806BA36 -_0806BA34: - movs r0, 0xA -_0806BA36: - pop {r1} - bx r1 - thumb_func_end sub_806B96C - - thumb_func_start sub_806BA3C -sub_806BA3C: @ 806BA3C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0806BA70 @ =gUnknown_3005070 - str r4, [r0] - bl sub_8112CAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BA58 - ldr r0, _0806BA74 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _0806BA5E -_0806BA58: - ldr r1, _0806BA78 @ =gUnknown_20370AC - movs r0, 0 - strb r0, [r1] -_0806BA5E: - ldr r1, _0806BA7C @ =sub_806B898 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BA70: .4byte gUnknown_3005070 -_0806BA74: .4byte gUnknown_203ADFA -_0806BA78: .4byte gUnknown_20370AC -_0806BA7C: .4byte sub_806B898 - thumb_func_end sub_806BA3C - - thumb_func_start ScrCmd_yesnobox -ScrCmd_yesnobox: @ 806BA80 - push {lr} - ldr r2, [r0, 0x8] - ldrb r3, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - adds r0, r3, 0 - bl sub_809CDEC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BAA2 - movs r0, 0 - b _0806BAA8 -_0806BAA2: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BAA8: - pop {r1} - bx r1 - thumb_func_end ScrCmd_yesnobox - - thumb_func_start ScrCmd_multichoice -ScrCmd_multichoice: @ 806BAAC - push {r4,r5,lr} - ldr r2, [r0, 0x8] - ldrb r5, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r4, r3, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r3, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - adds r0, r5, 0 - bl ScriptMenu_Multichoice - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BADA - movs r0, 0 - b _0806BAE0 -_0806BADA: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BAE0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_multichoice - - thumb_func_start ScrCmd_multichoicedefault -ScrCmd_multichoicedefault: @ 806BAE8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r2, [r0, 0x8] - ldrb r1, [r2] - mov r8, r1 - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r5, r3, 0x1 - str r5, [r0, 0x8] - ldrb r6, [r3, 0x1] - adds r4, r5, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r5, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - str r6, [sp] - mov r0, r8 - bl ScriptMenu_MultichoiceWithDefault - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BB26 - movs r0, 0 - b _0806BB2C -_0806BB26: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BB2C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_multichoicedefault - - thumb_func_start sub_806BB38 -sub_806BB38: @ 806BB38 - movs r0, 0 - bx lr - thumb_func_end sub_806BB38 - - thumb_func_start ScrCmd_multichoicegrid -ScrCmd_multichoicegrid: @ 806BB3C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r2, [r0, 0x8] - ldrb r1, [r2] - mov r8, r1 - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r5, r3, 0x1 - str r5, [r0, 0x8] - ldrb r6, [r3, 0x1] - adds r4, r5, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r5, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - str r6, [sp] - mov r0, r8 - bl sub_809CEC8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BB7A - movs r0, 0 - b _0806BB80 -_0806BB7A: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BB80: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_multichoicegrid - - thumb_func_start sub_806BB8C -sub_806BB8C: @ 806BB8C - ldr r1, [r0, 0x8] - adds r1, 0x4 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end sub_806BB8C - - thumb_func_start sub_806BB98 -sub_806BB98: @ 806BB98 - movs r0, 0 - bx lr - thumb_func_end sub_806BB98 - - thumb_func_start sub_806BB9C -sub_806BB9C: @ 806BB9C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r4, 0 - bl sub_809D2F0 - adds r0, r4, 0 - movs r1, 0 - bl PlayCry7 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806BB9C - - thumb_func_start sub_806BBD8 -sub_806BBD8: @ 806BBD8 - push {r4,lr} - adds r4, r0, 0 - bl sub_809D3CC - adds r1, r0, 0 - cmp r1, 0 - beq _0806BBF0 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - b _0806BBF2 -_0806BBF0: - movs r0, 0 -_0806BBF2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806BBD8 - - thumb_func_start sub_806BBF8 -sub_806BBF8: @ 806BBF8 - ldr r1, [r0, 0x8] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end sub_806BBF8 - - thumb_func_start sub_806BC04 -sub_806BC04: @ 806BC04 - push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - bl ScriptReadWord - adds r4, r0, 0 - cmp r4, 0 - bne _0806BC16 - ldr r4, [r5, 0x64] -_0806BC16: - bl sub_80F6E9C - movs r0, 0 - movs r1, 0x1 - bl sub_80F6EE4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x6 - adds r2, r4, 0 - movs r3, 0 - bl AddTextPrinterParameterized - movs r0, 0 - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806BC04 - - thumb_func_start sub_806BC40 -sub_806BC40: @ 806BC40 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - cmp r1, 0 - bne _0806BC50 - ldr r1, [r4, 0x64] -_0806BC50: - ldr r4, _0806BC68 @ =gSpecialVar_0x8004 - movs r2, 0x1 - negs r2, r2 - movs r0, 0x6 - bl GetStringWidth - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BC68: .4byte gSpecialVar_0x8004 - thumb_func_end sub_806BC40 - - thumb_func_start ScrCmd_vmessage -ScrCmd_vmessage: @ 806BC6C - push {lr} - bl ScriptReadWord - ldr r1, _0806BC84 @ =gUnknown_20370A8 - ldr r1, [r1] - subs r0, r1 - bl ShowFieldMessage - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806BC84: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_vmessage - - thumb_func_start ScrCmd_bufferspeciesname -ScrCmd_bufferspeciesname: @ 806BC88 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BCC0 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - movs r1, 0xB - muls r1, r0 - ldr r0, _0806BCC4 @ =gSpeciesNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BCC0: .4byte gUnknown_83A7294 -_0806BCC4: .4byte gSpeciesNames - thumb_func_end ScrCmd_bufferspeciesname - - thumb_func_start ScrCmd_bufferleadmonspeciesname -ScrCmd_bufferleadmonspeciesname: @ 806BCC8 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, _0806BD08 @ =gUnknown_83A7294 - lsls r2, 2 - adds r2, r0 - ldr r4, [r2] - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806BD0C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, _0806BD10 @ =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD08: .4byte gUnknown_83A7294 -_0806BD0C: .4byte gPlayerParty -_0806BD10: .4byte gSpeciesNames - thumb_func_end ScrCmd_bufferleadmonspeciesname - - thumb_func_start ScrCmd_bufferpartymonnick -ScrCmd_bufferpartymonnick: @ 806BD14 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806BD54 @ =gPlayerParty - adds r0, r1 - ldr r1, _0806BD58 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD54: .4byte gPlayerParty -_0806BD58: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferpartymonnick - - thumb_func_start ScrCmd_bufferitemname -ScrCmd_bufferitemname: @ 806BD5C - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BD8C @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r1, [r4] - bl sub_8099E90 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD8C: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferitemname - - thumb_func_start sub_806BD90 -sub_806BD90: @ 806BD90 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r7, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _0806BDE4 @ =gUnknown_83A7294 - lsls r0, r7, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8099E90 - cmp r5, 0x4 - bne _0806BDEC - cmp r6, 0x1 - bls _0806BDEC - ldr r1, _0806BDE8 @ =gUnknown_83A72A0 - adds r0, r4, 0 - bl StringAppend - b _0806BE22 - .align 2, 0 -_0806BDE4: .4byte gUnknown_83A7294 -_0806BDE8: .4byte gUnknown_83A72A0 -_0806BDEC: - adds r0, r5, 0 - subs r0, 0x85 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x29 - bhi _0806BE22 - cmp r6, 0x1 - bls _0806BE22 - ldr r0, _0806BE2C @ =gUnknown_83A7294 - lsls r1, r7, 2 - adds r1, r0 - ldr r4, [r1] - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _0806BE22 - adds r0, r4, r0 - subs r0, 0x1 - movs r1, 0xFF - strb r1, [r0] - ldr r1, _0806BE30 @ =gUnknown_83A72A2 - adds r0, r4, 0 - bl StringAppend -_0806BE22: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806BE2C: .4byte gUnknown_83A7294 -_0806BE30: .4byte gUnknown_83A72A2 - thumb_func_end sub_806BD90 - - thumb_func_start sub_806BE34 -sub_806BE34: @ 806BE34 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806BE34 - - thumb_func_start ScrCmd_buffermovename -ScrCmd_buffermovename: @ 806BE50 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BE88 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - movs r1, 0xD - muls r1, r0 - ldr r0, _0806BE8C @ =gMoveNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BE88: .4byte gUnknown_83A7294 -_0806BE8C: .4byte gMoveNames - thumb_func_end ScrCmd_buffermovename - - thumb_func_start ScrCmd_buffernumberstring -ScrCmd_buffernumberstring: @ 806BE90 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80CBF04 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _0806BED0 @ =gUnknown_83A7294 - lsls r5, 2 - adds r5, r0 - ldr r0, [r5] - adds r1, r4, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806BED0: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_buffernumberstring - - thumb_func_start ScrCmd_bufferstdstring -ScrCmd_bufferstdstring: @ 806BED4 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - ldr r1, _0806BF0C @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - ldr r1, _0806BF10 @ =gUnknown_83E06B8 - lsrs r0, 14 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF0C: .4byte gUnknown_83A7294 -_0806BF10: .4byte gUnknown_83E06B8 - thumb_func_end ScrCmd_bufferstdstring - - thumb_func_start ScrCmd_bufferstring -ScrCmd_bufferstring: @ 806BF14 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806BF38 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF38: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferstring - - thumb_func_start ScrCmd_vloadword -ScrCmd_vloadword: @ 806BF3C - push {lr} - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806BF58 @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - ldr r0, _0806BF5C @ =gStringVar4 - bl StringExpandPlaceholders - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806BF58: .4byte gUnknown_20370A8 -_0806BF5C: .4byte gStringVar4 - thumb_func_end ScrCmd_vloadword - - thumb_func_start ScrCmd_vbufferstring -ScrCmd_vbufferstring: @ 806BF60 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806BF8C @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - ldr r0, _0806BF90 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF8C: .4byte gUnknown_20370A8 -_0806BF90: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_vbufferstring - - thumb_func_start ScrCmd_bufferboxname -ScrCmd_bufferboxname: @ 806BF94 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, _0806BFCC @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - lsls r0, 24 - lsrs r0, 24 - bl GetBoxNamePtr - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BFCC: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferboxname - - thumb_func_start ScrCmd_givemon -ScrCmd_givemon: @ 806BFD0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl ScriptReadWord - mov r8, r0 - adds r0, r4, 0 - bl ScriptReadWord - ldr r1, [r4, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - ldr r4, _0806C04C @ =gSpecialVar_Result - str r0, [sp] - str r2, [sp, 0x4] - adds r0, r6, 0 - mov r1, r9 - adds r2, r5, 0 - mov r3, r8 - bl ScriptGiveMon - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0806C04C: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_givemon - - thumb_func_start ScrCmd_giveegg -ScrCmd_giveegg: @ 806C050 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0806C078 @ =gSpecialVar_Result - bl sub_80A01AC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C078: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_giveegg - - thumb_func_start ScrCmd_setmonmove -ScrCmd_setmonmove: @ 806C07C - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - adds r2, r4, 0 - bl ScriptSetMonMoveSlot - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmonmove - - thumb_func_start ScrCmd_checkpartymove -ScrCmd_checkpartymove: @ 806C0A8 - push {r4-r7,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r7, r0, 16 - ldr r1, _0806C0BC @ =gSpecialVar_Result - movs r0, 0x6 - strh r0, [r1] - movs r6, 0 - b _0806C0F6 - .align 2, 0 -_0806C0BC: .4byte gSpecialVar_Result -_0806C0C0: - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0806C0F0 - adds r0, r4, 0 - adds r1, r7, 0 - bl pokemon_has_move - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806C0F0 - ldr r0, _0806C0E8 @ =gSpecialVar_Result - strh r6, [r0] - ldr r0, _0806C0EC @ =gSpecialVar_0x8004 - strh r5, [r0] - b _0806C116 - .align 2, 0 -_0806C0E8: .4byte gSpecialVar_Result -_0806C0EC: .4byte gSpecialVar_0x8004 -_0806C0F0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0806C0F6: - cmp r6, 0x5 - bhi _0806C116 - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _0806C120 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _0806C0C0 -_0806C116: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806C120: .4byte gPlayerParty - thumb_func_end ScrCmd_checkpartymove - - thumb_func_start ScrCmd_givemoney -ScrCmd_givemoney: @ 806C124 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0806C14A - ldr r0, _0806C154 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - adds r1, r2, 0 - bl AddMoney -_0806C14A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C154: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_givemoney - - thumb_func_start ScrCmd_takemoney -ScrCmd_takemoney: @ 806C158 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0806C17E - ldr r0, _0806C188 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - adds r1, r2, 0 - bl RemoveMoney -_0806C17E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C188: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_takemoney - - thumb_func_start ScrCmd_checkmoney -ScrCmd_checkmoney: @ 806C18C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0806C1BA - ldr r4, _0806C1C4 @ =gSpecialVar_Result - ldr r0, _0806C1C8 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - adds r1, r2, 0 - bl IsEnoughMoney - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_0806C1BA: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C1C4: .4byte gSpecialVar_Result -_0806C1C8: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_checkmoney - - thumb_func_start sub_806C1CC -sub_806C1CC: @ 806C1CC - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r2, r1, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r1, 0x1] - adds r2, 0x1 - str r2, [r0, 0x8] - cmp r1, 0 - bne _0806C20A - ldr r0, _0806C214 @ =sub_809D6D4 - bl sub_81119D4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806C20A - ldr r0, _0806C218 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - adds r1, r5, 0 - adds r2, r4, 0 - bl DrawMoneyBox -_0806C20A: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806C214: .4byte sub_809D6D4 -_0806C218: .4byte gSaveBlock1Ptr - thumb_func_end sub_806C1CC - - thumb_func_start sub_806C21C -sub_806C21C: @ 806C21C - push {lr} - bl HideMoneyBox - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806C21C - - thumb_func_start sub_806C228 -sub_806C228: @ 806C228 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x1 - adds r2, r1, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r1, 0x1] - adds r2, 0x1 - str r2, [r0, 0x8] - cmp r1, 0 - bne _0806C24E - ldr r0, _0806C254 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - bl ChangeAmountInMoneyBox -_0806C24E: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C254: .4byte gSaveBlock1Ptr - thumb_func_end sub_806C228 - - thumb_func_start sub_806C258 -sub_806C258: @ 806C258 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, _0806C290 @ =sub_809D6D4 - bl sub_81119D4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806C286 - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - adds r2, r4, 0 - bl ShowCoinsWindow -_0806C286: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806C290: .4byte sub_809D6D4 - thumb_func_end sub_806C258 - - thumb_func_start ScrCmd_hidecoinsbox -ScrCmd_hidecoinsbox: @ 806C294 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x2 - str r1, [r0, 0x8] - bl HideCoinsWindow - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_hidecoinsbox - - thumb_func_start ScrCmd_updatecoinsbox -ScrCmd_updatecoinsbox: @ 806C2A8 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x2 - str r1, [r0, 0x8] - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - bl PrintCoinsString - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_updatecoinsbox - - thumb_func_start ScrCmd_trainerbattle -ScrCmd_trainerbattle: @ 806C2C4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - bl sub_8080228 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_trainerbattle - - thumb_func_start sub_806C2D8 -sub_806C2D8: @ 806C2D8 - push {lr} - bl sub_8080464 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C2D8 - - thumb_func_start ScrCmd_ontrainerbattleend -ScrCmd_ontrainerbattleend: @ 806C2E4 - push {r4,lr} - adds r4, r0, 0 - bl sub_80805E8 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_ontrainerbattleend - - thumb_func_start ScrCmd_ontrainerbattleendgoto -ScrCmd_ontrainerbattleendgoto: @ 806C2F8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8080600 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_ontrainerbattleendgoto - - thumb_func_start ScrCmd_checktrainerflag -ScrCmd_checktrainerflag: @ 806C30C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl HasTrainerAlreadyBeenFought - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_checktrainerflag - - thumb_func_start ScrCmd_settrainerflag -ScrCmd_settrainerflag: @ 806C330 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl trainer_flag_set - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_settrainerflag - - thumb_func_start ScrCmd_cleartrainerflag -ScrCmd_cleartrainerflag: @ 806C34C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl trainer_flag_clear - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_cleartrainerflag - - thumb_func_start ScrCmd_setwildbattle -ScrCmd_setwildbattle: @ 806C368 - push {r4-r6,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r0, [r4, 0x8] - ldrb r6, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r5, 0 - adds r1, r6, 0 - bl CreateScriptedWildMon - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setwildbattle - - thumb_func_start sub_806C39C -sub_806C39C: @ 806C39C - push {lr} - bl sub_807F8C4 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C39C - - thumb_func_start sub_806C3AC -sub_806C3AC: @ 806C3AC - push {lr} - bl ScriptReadWord - bl sub_809C164 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C3AC - - thumb_func_start sub_806C3C0 -sub_806C3C0: @ 806C3C0 - push {lr} - bl ScriptReadWord - bl sub_809C1A0 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C3C0 - - thumb_func_start sub_806C3D4 -sub_806C3D4: @ 806C3D4 - push {lr} - bl ScriptReadWord - bl sub_809C1BC - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C3D4 - - thumb_func_start ScrCmd_playslotmachine -ScrCmd_playslotmachine: @ 806C3E8 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806C40C @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl sub_813F804 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806C40C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end ScrCmd_playslotmachine - - thumb_func_start sub_806C410 -sub_806C410: @ 806C410 - movs r0, 0 - bx lr - thumb_func_end sub_806C410 - - thumb_func_start sub_806C414 -sub_806C414: @ 806C414 - movs r0, 0 - bx lr - thumb_func_end sub_806C414 - - thumb_func_start sub_806C418 -sub_806C418: @ 806C418 - push {lr} - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C418 - - thumb_func_start sub_806C424 -sub_806C424: @ 806C424 - movs r0, 0 - bx lr - thumb_func_end sub_806C424 - - thumb_func_start sub_806C428 -sub_806C428: @ 806C428 - movs r0, 0 - bx lr - thumb_func_end sub_806C428 - - thumb_func_start sub_806C42C -sub_806C42C: @ 806C42C - movs r0, 0 - bx lr - thumb_func_end sub_806C42C - - thumb_func_start ScrCmd_dofieldeffect -ScrCmd_dofieldeffect: @ 806C430 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806C454 @ =gUnknown_20370B6 - strh r0, [r1] - lsls r0, 24 - lsrs r0, 24 - bl FieldEffectStart - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C454: .4byte gUnknown_20370B6 - thumb_func_end ScrCmd_dofieldeffect - - thumb_func_start ScrCmd_setfieldeffectarg -ScrCmd_setfieldeffectarg: @ 806C458 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, _0806C484 @ =gFieldEffectArguments - lsls r4, 2 - adds r4, r1 - lsls r0, 16 - asrs r0, 16 - str r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C484: .4byte gFieldEffectArguments - thumb_func_end ScrCmd_setfieldeffectarg - - thumb_func_start WaitForFieldEffectFinish -WaitForFieldEffectFinish: @ 806C488 - push {lr} - ldr r0, _0806C49C @ =gUnknown_20370B6 - ldrb r0, [r0] - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - beq _0806C4A0 - movs r0, 0 - b _0806C4A2 - .align 2, 0 -_0806C49C: .4byte gUnknown_20370B6 -_0806C4A0: - movs r0, 0x1 -_0806C4A2: - pop {r1} - bx r1 - thumb_func_end WaitForFieldEffectFinish - - thumb_func_start ScrCmd_waitfieldeffect -ScrCmd_waitfieldeffect: @ 806C4A8 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, _0806C4CC @ =gUnknown_20370B6 - strh r0, [r1] - ldr r1, _0806C4D0 @ =WaitForFieldEffectFinish - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C4CC: .4byte gUnknown_20370B6 -_0806C4D0: .4byte WaitForFieldEffectFinish - thumb_func_end ScrCmd_waitfieldeffect - - thumb_func_start ScrCmd_setrespawn -ScrCmd_setrespawn: @ 806C4D4 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sub_80554CC - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setrespawn - - thumb_func_start ScrCmd_checkplayergender -ScrCmd_checkplayergender: @ 806C4F0 - ldr r1, _0806C500 @ =gSpecialVar_Result - ldr r0, _0806C504 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - strh r0, [r1] - movs r0, 0 - bx lr - .align 2, 0 -_0806C500: .4byte gSpecialVar_Result -_0806C504: .4byte gSaveBlock2Ptr - thumb_func_end ScrCmd_checkplayergender - - thumb_func_start ScrCmd_playmoncry -ScrCmd_playmoncry: @ 806C508 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl PlayCry7 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_playmoncry - - thumb_func_start sub_806C540 -sub_806C540: @ 806C540 - push {lr} - ldr r1, _0806C550 @ =IsCryFinished - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806C550: .4byte IsCryFinished - thumb_func_end sub_806C540 - - thumb_func_start ScrCmd_setmetatile -ScrCmd_setmetatile: @ 806C554 - push {r4-r7,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - adds r1, r6, 0x7 - lsls r1, 16 - lsrs r6, r1, 16 - adds r1, r5, 0x7 - lsls r1, 16 - lsrs r5, r1, 16 - cmp r0, 0 - bne _0806C5B8 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r7, 0 - bl MapGridSetMetatileIdAt - b _0806C5CA -_0806C5B8: - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - adds r2, r7, 0 - orrs r2, r0 - adds r0, r6, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_0806C5CA: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmetatile - - thumb_func_start ScrCmd_opendoor -ScrCmd_opendoor: @ 806C5D4 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - adds r5, 0x7 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r4, r0 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_805B364 - lsls r0, 16 - lsrs r0, 16 - bl PlaySE - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_805B310 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_opendoor - - thumb_func_start ScrCmd_closedoor -ScrCmd_closedoor: @ 806C62C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805B2D0 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_closedoor - - thumb_func_start sub_806C670 -sub_806C670: @ 806C670 - push {lr} - bl sub_805B350 - lsls r0, 24 - cmp r0, 0 - beq _0806C680 - movs r0, 0 - b _0806C682 -_0806C680: - movs r0, 0x1 -_0806C682: - pop {r1} - bx r1 - thumb_func_end sub_806C670 - - thumb_func_start sub_806C688 -sub_806C688: @ 806C688 - push {lr} - ldr r1, _0806C698 @ =sub_806C670 - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806C698: .4byte sub_806C670 - thumb_func_end sub_806C688 - - thumb_func_start ScrCmd_setdooropen -ScrCmd_setdooropen: @ 806C69C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805B268 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setdooropen - - thumb_func_start ScrCmd_setdoorclosed -ScrCmd_setdoorclosed: @ 806C6E0 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805B29C - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setdoorclosed - - thumb_func_start sub_806C724 -sub_806C724: @ 806C724 - movs r0, 0 - bx lr - thumb_func_end sub_806C724 - - thumb_func_start sub_806C728 -sub_806C728: @ 806C728 - movs r0, 0 - bx lr - thumb_func_end sub_806C728 - - thumb_func_start ScrCmd_checkcoins -ScrCmd_checkcoins: @ 806C72C - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - bl GetCoins - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_checkcoins - - thumb_func_start ScrCmd_givecoins -ScrCmd_givecoins: @ 806C74C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GiveCoins - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806C774 - ldr r1, _0806C770 @ =gSpecialVar_Result - movs r0, 0 - b _0806C778 - .align 2, 0 -_0806C770: .4byte gSpecialVar_Result -_0806C774: - ldr r1, _0806C780 @ =gSpecialVar_Result - movs r0, 0x1 -_0806C778: - strh r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C780: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_givecoins - - thumb_func_start ScrCmd_takecoins -ScrCmd_takecoins: @ 806C784 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl TakeCoins - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806C7AC - ldr r1, _0806C7A8 @ =gSpecialVar_Result - movs r0, 0 - b _0806C7B0 - .align 2, 0 -_0806C7A8: .4byte gSpecialVar_Result -_0806C7AC: - ldr r1, _0806C7B8 @ =gSpecialVar_Result - movs r0, 0x1 -_0806C7B0: - strh r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C7B8: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_takecoins - - thumb_func_start sub_806C7BC -sub_806C7BC: @ 806C7BC - push {lr} - bl sub_8069A20 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806C7BC - - thumb_func_start sub_806C7C8 -sub_806C7C8: @ 806C7C8 - push {lr} - bl sub_8069A2C - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806C7C8 - - thumb_func_start ScrCmd_setmonobedient -ScrCmd_setmonobedient: @ 806C7D4 - push {lr} - sub sp, 0x4 - movs r2, 0x1 - mov r1, sp - strb r2, [r1] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806C808 @ =gPlayerParty - adds r0, r1 - movs r1, 0x50 - mov r2, sp - bl SetMonData - movs r0, 0 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_0806C808: .4byte gPlayerParty - thumb_func_end ScrCmd_setmonobedient - - thumb_func_start ScrCmd_checkmonobedience -ScrCmd_checkmonobedience: @ 806C80C - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0806C83C @ =gSpecialVar_Result - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806C840 @ =gPlayerParty - adds r0, r1 - movs r1, 0x50 - movs r2, 0 - bl GetMonData - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C83C: .4byte gSpecialVar_Result -_0806C840: .4byte gPlayerParty - thumb_func_end ScrCmd_checkmonobedience - - thumb_func_start sub_806C844 -sub_806C844: @ 806C844 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, [r4, 0x8] - ldrb r2, [r0] - mov r1, sp - strb r2, [r1] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r3, 0x5 - bhi _0806C87A - movs r0, 0x64 - muls r0, r3 - ldr r1, _0806C884 @ =gPlayerParty - adds r0, r1 - movs r1, 0x23 - mov r2, sp - bl SetMonData -_0806C87A: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C884: .4byte gPlayerParty - thumb_func_end sub_806C844 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_menu.s b/asm/script_menu.s index f1127591d..69e487bcc 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -301,7 +301,7 @@ _0809CB7A: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow ldr r0, [sp, 0x18] adds r1, r7, 0 adds r2, r5, 0 @@ -578,7 +578,7 @@ _0809CD82: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _0809CDE0 .align 2, 0 _0809CDAC: .4byte gUnknown_83E0738 @@ -603,7 +603,7 @@ _0809CDB0: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 _0809CDE0: add sp, 0x10 pop {r4} @@ -613,8 +613,8 @@ _0809CDE0: _0809CDE8: .4byte gUnknown_83E0748 thumb_func_end sub_809CD48 - thumb_func_start sub_809CDEC -sub_809CDEC: @ 809CDEC + thumb_func_start ScriptMenu_YesNo +ScriptMenu_YesNo: @ 809CDEC push {r4,lr} ldr r4, _0809CE04 @ =task_yes_no_maybe adds r0, r4, 0 @@ -649,7 +649,7 @@ _0809CE28: .align 2, 0 _0809CE30: .4byte gSpecialVar_Result _0809CE34: .4byte sub_809D6D4 - thumb_func_end sub_809CDEC + thumb_func_end ScriptMenu_YesNo thumb_func_start sub_809CE38 sub_809CE38: @ 809CE38 @@ -690,7 +690,7 @@ task_yes_no_maybe: @ 809CE54 .align 2, 0 _0809CE74: .4byte gTasks _0809CE78: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 @@ -733,8 +733,8 @@ _0809CEBC: _0809CEC4: .4byte gSpecialVar_Result thumb_func_end task_yes_no_maybe - thumb_func_start sub_809CEC8 -sub_809CEC8: @ 809CEC8 + thumb_func_start ScriptMenu_MultichoiceGrid +ScriptMenu_MultichoiceGrid: @ 809CEC8 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -862,7 +862,7 @@ _0809CFCC: .4byte gSpecialVar_Result _0809CFD0: .4byte sub_809D6D4 _0809CFD4: .4byte gUnknown_83E04B0 _0809CFD8: .4byte gTasks - thumb_func_end sub_809CEC8 + thumb_func_end ScriptMenu_MultichoiceGrid thumb_func_start sub_809CFDC sub_809CFDC: @ 809CFDC @@ -1138,7 +1138,7 @@ _0809D1FA: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 mov r1, r9 adds r2, r6, 0 @@ -1178,7 +1178,7 @@ sub_809D254: @ 809D254 movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r0} bx r0 @@ -1241,8 +1241,8 @@ _0809D2E8: bx r0 thumb_func_end sub_809D288 - thumb_func_start sub_809D2F0 -sub_809D2F0: @ 809D2F0 + thumb_func_start ScriptMenu_ShowPokemonPic +ScriptMenu_ShowPokemonPic: @ 809D2F0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1344,10 +1344,10 @@ _0809D3C2: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_809D2F0 + thumb_func_end ScriptMenu_ShowPokemonPic - thumb_func_start sub_809D3CC -sub_809D3CC: @ 809D3CC + thumb_func_start ScriptMenu_GetPicboxWaitFunc +ScriptMenu_GetPicboxWaitFunc: @ 809D3CC push {lr} ldr r0, _0809D3F0 @ =sub_809D288 bl FindTaskIdByFunc @@ -1374,7 +1374,7 @@ _0809D3FC: _0809D3FE: pop {r1} bx r1 - thumb_func_end sub_809D3CC + thumb_func_end ScriptMenu_GetPicboxWaitFunc thumb_func_start sub_809D404 sub_809D404: @ 809D404 @@ -1721,7 +1721,7 @@ sub_809D6B0: @ 809D6B0 bl ClearWindowTilemap adds r0, r4, 0 movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow adds r0, r4, 0 bl RemoveWindow pop {r4} @@ -1732,7 +1732,7 @@ sub_809D6B0: @ 809D6B0 thumb_func_start sub_809D6D4 sub_809D6D4: @ 809D6D4 push {lr} - ldr r0, _0809D74C @ =gUnknown_81A7AE0 + ldr r0, _0809D74C @ =EventScript_1A7AE0 bl ScriptContext1_SetupScript ldr r0, _0809D750 @ =sub_809D288 bl FindTaskIdByFunc @@ -1788,7 +1788,7 @@ _0809D748: pop {r0} bx r0 .align 2, 0 -_0809D74C: .4byte gUnknown_81A7AE0 +_0809D74C: .4byte EventScript_1A7AE0 _0809D750: .4byte sub_809D288 _0809D754: .4byte gTasks+0x8 _0809D758: .4byte gSprites @@ -1925,7 +1925,7 @@ _0809D844: bl AddTextPrinterParameterized adds r0, r6, 0x1 lsls r0, 24 - ldr r2, _0809D8BC @ =gUnknown_84161C8 + ldr r2, _0809D8BC @ =gOtherText_Exit lsrs r0, 20 adds r0, 0x2 lsls r0, 24 @@ -1946,7 +1946,7 @@ _0809D844: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 mov r1, r9 adds r2, r7, 0 @@ -1964,7 +1964,7 @@ _0809D8A8: bx r0 .align 2, 0 _0809D8B8: .4byte gUnknown_8417DED -_0809D8BC: .4byte gUnknown_84161C8 +_0809D8BC: .4byte gOtherText_Exit thumb_func_end sub_809D764 thumb_func_start sub_809D8C0 diff --git a/asm/script_pokemon_util_80A0058.s b/asm/script_pokemon_util_80A0058.s index 191457abe..60f416b48 100644 --- a/asm/script_pokemon_util_80A0058.s +++ b/asm/script_pokemon_util_80A0058.s @@ -170,8 +170,8 @@ _080A0196: bx r1 thumb_func_end ScriptGiveMon - thumb_func_start sub_80A01AC -sub_80A01AC: @ 80A01AC + thumb_func_start ScriptGiveEgg +ScriptGiveEgg: @ 80A01AC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 @@ -202,7 +202,7 @@ sub_80A01AC: @ 80A01AC pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80A01AC + thumb_func_end ScriptGiveEgg thumb_func_start CheckForAlivePartyMons CheckForAlivePartyMons: @ 80A01F4 diff --git a/asm/script_pokemon_util_80BF8FC.s b/asm/script_pokemon_util_80BF8FC.s index eec41cf11..26c113dfd 100644 --- a/asm/script_pokemon_util_80BF8FC.s +++ b/asm/script_pokemon_util_80BF8FC.s @@ -112,14 +112,14 @@ sub_80BF9BC: @ 80BF9BC subs r2, 0x1 lsls r2, 24 lsrs r2, 24 - ldr r3, _080BF9FC @ =c2_exit_to_overworld_2_switch + ldr r3, _080BF9FC @ =CB2_ReturnToField movs r4, 0 str r4, [sp] bl sub_8134738 movs r0, 0x3 bl sub_8138B38 - ldr r1, _080BFA00 @ =gUnknown_3005020 - ldr r0, _080BFA04 @ =sub_807DD24 + ldr r1, _080BFA00 @ =gFieldCallback + ldr r0, _080BFA04 @ =FieldCallback_ReturnToEventScript2 str r0, [r1] add sp, 0x4 pop {r4} @@ -129,9 +129,9 @@ sub_80BF9BC: @ 80BF9BC _080BF9F0: .4byte gPlayerParty _080BF9F4: .4byte gSpecialVar_0x8004 _080BF9F8: .4byte gPlayerPartyCount -_080BF9FC: .4byte c2_exit_to_overworld_2_switch -_080BFA00: .4byte gUnknown_3005020 -_080BFA04: .4byte sub_807DD24 +_080BF9FC: .4byte CB2_ReturnToField +_080BFA00: .4byte gFieldCallback +_080BFA04: .4byte FieldCallback_ReturnToEventScript2 thumb_func_end sub_80BF9BC thumb_func_start ScrSpecial_CountPokemonMoves diff --git a/asm/seagallop.s b/asm/seagallop.s deleted file mode 100644 index 89f8c2867..000000000 --- a/asm/seagallop.s +++ /dev/null @@ -1,795 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8146E78 -sub_8146E78: @ 8146E78 - push {lr} - movs r0, 0 - bl SetVBlankCallback - bl sub_812B478 - ldr r0, _08146E90 @ =sub_8146E94 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08146E90: .4byte sub_8146E94 - thumb_func_end sub_8146E78 - - thumb_func_start sub_8146E94 -sub_8146E94: @ 8146E94 - push {r4,lr} - sub sp, 0x8 - ldr r0, _08146EB4 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x7 - bls _08146EA8 - b _0814703C -_08146EA8: - lsls r0, 2 - ldr r1, _08146EB8 @ =_08146EBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08146EB4: .4byte gMain -_08146EB8: .4byte _08146EBC - .align 2, 0 -_08146EBC: - .4byte _08146EDC - .4byte _08146EE8 - .4byte _08146EEE - .4byte _08146F20 - .4byte _08146F8C - .4byte _08146FAC - .4byte _08146FBE - .4byte _08146FE4 -_08146EDC: - movs r0, 0 - bl SetVBlankCallback - bl sub_81471C4 - b _08146FCE -_08146EE8: - bl sub_81472FC - b _08146FCE -_08146EEE: - ldr r4, _08146F18 @ =gUnknown_203F3D0 - movs r0, 0x80 - lsls r0, 4 - bl AllocZeroed - str r0, [r4] - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08146F1C @ =gUnknown_846AEF8 - movs r0, 0 - movs r2, 0x1 - bl InitBgsFromTemplates - ldr r1, [r4] - movs r0, 0x3 - bl SetBgTilemapBuffer - bl sub_814732C - b _08146FCE - .align 2, 0 -_08146F18: .4byte gUnknown_203F3D0 -_08146F1C: .4byte gUnknown_846AEF8 -_08146F20: - ldr r1, _08146F50 @ =gUnknown_8468C98 - movs r2, 0xA4 - lsls r2, 3 - movs r0, 0x3 - movs r3, 0 - bl LoadBgTiles - bl sub_81474CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08146F58 - ldr r1, _08146F54 @ =gUnknown_84699D8 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect - b _08146F6A - .align 2, 0 -_08146F50: .4byte gUnknown_8468C98 -_08146F54: .4byte gUnknown_84699D8 -_08146F58: - ldr r1, _08146F84 @ =gUnknown_84691D8 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect -_08146F6A: - ldr r0, _08146F88 @ =gUnknown_84691B8 - movs r1, 0x40 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x2 - bl stdpal_get - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - b _08146FCE - .align 2, 0 -_08146F84: .4byte gUnknown_84691D8 -_08146F88: .4byte gUnknown_84691B8 -_08146F8C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0814703C - movs r0, 0 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _08146FCE -_08146FAC: - bl sub_8147384 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _08146FCE -_08146FBE: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_08146FCE: - ldr r1, _08146FE0 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0814703C - .align 2, 0 -_08146FE0: .4byte gMain -_08146FE4: - bl sub_814731C - ldr r0, _08147044 @ =sub_8147058 - bl SetVBlankCallback - movs r0, 0x13 - bl PlaySE - bl sub_81473C4 - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - ldr r1, _08147048 @ =0x00001888 - movs r0, 0x44 - bl SetGpuReg - ldr r0, _0814704C @ =sub_8147084 - movs r1, 0x8 - bl CreateTask - ldr r0, _08147050 @ =sub_814706C - bl SetMainCallback2 - ldr r0, _08147054 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_0814703C: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147044: .4byte sub_8147058 -_08147048: .4byte 0x00001888 -_0814704C: .4byte sub_8147084 -_08147050: .4byte sub_814706C -_08147054: .4byte gMain - thumb_func_end sub_8146E94 - - thumb_func_start sub_8147058 -sub_8147058: @ 8147058 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8147058 - - thumb_func_start sub_814706C -sub_814706C: @ 814706C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_814706C - - thumb_func_start sub_8147084 -sub_8147084: @ 8147084 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08147098 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0814709C @ =sub_81470CC - str r0, [r1] - bx lr - .align 2, 0 -_08147098: .4byte gTasks -_0814709C: .4byte sub_81470CC - thumb_func_end sub_8147084 - - thumb_func_start sub_81470A0 -sub_81470A0: @ 81470A0 - push {lr} - bl sub_81474CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081470BC - movs r1, 0xC0 - lsls r1, 3 - movs r0, 0x3 - movs r2, 0x1 - bl ChangeBgX - b _081470C8 -_081470BC: - movs r1, 0xC0 - lsls r1, 3 - movs r0, 0x3 - movs r2, 0x2 - bl ChangeBgX -_081470C8: - pop {r0} - bx r0 - thumb_func_end sub_81470A0 - - thumb_func_start sub_81470CC -sub_81470CC: @ 81470CC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08147100 @ =gTasks - adds r4, r1, r0 - bl sub_81470A0 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8C - bne _081470FA - bl Overworld_FadeOutMapMusic - bl sub_807DC18 - ldr r0, _08147104 @ =sub_8147108 - str r0, [r4] -_081470FA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147100: .4byte gTasks -_08147104: .4byte sub_8147108 - thumb_func_end sub_81470CC - - thumb_func_start sub_8147108 -sub_8147108: @ 8147108 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81470A0 - bl sub_8055FC4 - lsls r0, 24 - cmp r0, 0 - beq _08147136 - ldr r0, _0814713C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08147136 - bl sub_8147140 - bl sub_812B484 - adds r0, r4, 0 - bl DestroyTask -_08147136: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814713C: .4byte gPaletteFade - thumb_func_end sub_8147108 - - thumb_func_start sub_8147140 -sub_8147140: @ 8147140 - push {r4,lr} - sub sp, 0x4 - ldr r1, _081471AC @ =gSpecialVar_0x8006 - ldrh r0, [r1] - cmp r0, 0xA - bls _08147150 - movs r0, 0 - strh r0, [r1] -_08147150: - ldrh r4, [r1] - lsls r4, 2 - ldr r0, _081471B0 @ =gUnknown_846AEFC - adds r4, r0 - movs r0, 0 - ldrsb r0, [r4, r0] - movs r1, 0x1 - ldrsb r1, [r4, r1] - movs r2, 0x1 - negs r2, r2 - movs r3, 0x2 - ldrsb r3, [r4, r3] - ldrb r4, [r4, 0x3] - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - bl Overworld_SetWarpDestination - bl play_some_sound - movs r0, 0x9 - bl PlaySE - ldr r1, _081471B4 @ =gUnknown_3005020 - ldr r0, _081471B8 @ =sub_807DF64 - str r0, [r1] - bl warp_in - ldr r0, _081471BC @ =sub_805671C - bl SetMainCallback2 - bl sub_80559E4 - bl sub_81473A0 - ldr r0, _081471C0 @ =gUnknown_203F3D0 - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081471AC: .4byte gSpecialVar_0x8006 -_081471B0: .4byte gUnknown_846AEFC -_081471B4: .4byte gUnknown_3005020 -_081471B8: .4byte sub_807DF64 -_081471BC: .4byte sub_805671C -_081471C0: .4byte gUnknown_203F3D0 - thumb_func_end sub_8147140 - - thumb_func_start sub_81471C4 -sub_81471C4: @ 81471C4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - mov r2, sp - movs r6, 0 - ldr r1, _081472F4 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _081472F8 @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_081471EA: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _081471EA - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0x4] - ldr r2, _081472F4 @ =0x040000d4 - mov r1, r8 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0x8 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0xA - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0xC - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0xE - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081472F4: .4byte 0x040000d4 -_081472F8: .4byte 0x81000800 - thumb_func_end sub_81471C4 - - thumb_func_start sub_81472FC -sub_81472FC: @ 81472FC - push {lr} - bl remove_some_task - bl ResetTasks - bl ResetSpriteData - bl dp13_810BB8C - bl ResetPaletteFade - bl FreeAllSpritePalettes - pop {r0} - bx r0 - thumb_func_end sub_81472FC - - thumb_func_start sub_814731C -sub_814731C: @ 814731C - push {lr} - movs r1, 0xCA - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_814731C - - thumb_func_start sub_814732C -sub_814732C: @ 814732C - push {lr} - 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 - pop {r0} - bx r0 - thumb_func_end sub_814732C - - thumb_func_start sub_8147384 -sub_8147384: @ 8147384 - push {lr} - ldr r0, _08147398 @ =gUnknown_846AF78 - bl LoadSpriteSheets - ldr r0, _0814739C @ =gUnknown_846AF90 - bl LoadSpritePalettes - pop {r0} - bx r0 - .align 2, 0 -_08147398: .4byte gUnknown_846AF78 -_0814739C: .4byte gUnknown_846AF90 - thumb_func_end sub_8147384 - - thumb_func_start sub_81473A0 -sub_81473A0: @ 81473A0 - push {r4,lr} - ldr r4, _081473C0 @ =0x00000bb8 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - movs r0, 0xFA - lsls r0, 4 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081473C0: .4byte 0x00000bb8 - thumb_func_end sub_81473A0 - - thumb_func_start sub_81473C4 -sub_81473C4: @ 81473C4 - push {r4,lr} - ldr r0, _081473FC @ =gUnknown_846AF60 - movs r1, 0 - movs r2, 0x5C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08147400 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r4, r1, r2 - movs r0, 0x30 - strh r0, [r4, 0x2E] - bl sub_81474CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08147404 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - b _08147410 - .align 2, 0 -_081473FC: .4byte gUnknown_846AF60 -_08147400: .4byte gSprites -_08147404: - movs r0, 0xF0 - strh r0, [r4, 0x20] - movs r1, 0x2E - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x2E] -_08147410: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81473C4 - - thumb_func_start sub_8147418 -sub_8147418: @ 8147418 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r5, r0, 20 - strh r5, [r4, 0x24] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _08147446 - ldrh r0, [r4, 0x20] - adds r0, r5 - lsls r0, 16 - asrs r0, 16 - bl sub_814746C -_08147446: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - movs r1, 0x96 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r4, 0x24] - adds r0, r1 - lsls r0, 16 - movs r1, 0x96 - lsls r1, 18 - cmp r0, r1 - bls _08147466 - adds r0, r4, 0 - bl DestroySprite -_08147466: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8147418 - - thumb_func_start sub_814746C -sub_814746C: @ 814746C - push {r4,lr} - adds r1, r0, 0 - ldr r0, _081474A8 @ =gUnknown_846AFD0 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x5C - movs r3, 0x8 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _081474A2 - bl sub_81474CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081474A2 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _081474AC @ =gSprites - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim -_081474A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081474A8: .4byte gUnknown_846AFD0 -_081474AC: .4byte gSprites - thumb_func_end sub_814746C - - thumb_func_start sub_81474B0 -sub_81474B0: @ 81474B0 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081474C6 - adds r0, r2, 0 - bl DestroySprite -_081474C6: - pop {r0} - bx r0 - thumb_func_end sub_81474B0 - - thumb_func_start sub_81474CC -sub_81474CC: @ 81474CC - push {lr} - ldr r2, _081474EC @ =gSpecialVar_0x8004 - ldrh r0, [r2] - cmp r0, 0xA - bhi _081474F8 - ldr r1, _081474F0 @ =gUnknown_846AF28 - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - ldr r1, _081474F4 @ =gSpecialVar_0x8006 - ldrh r1, [r1] - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - b _081474FA - .align 2, 0 -_081474EC: .4byte gSpecialVar_0x8004 -_081474F0: .4byte gUnknown_846AF28 -_081474F4: .4byte gSpecialVar_0x8006 -_081474F8: - movs r0, 0x1 -_081474FA: - pop {r1} - bx r1 - thumb_func_end sub_81474CC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/shop.s b/asm/shop.s index 60b92410d..c59fb15df 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -74,7 +74,7 @@ _0809AAF8: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] @@ -288,18 +288,18 @@ _0809ACD0: .4byte sub_809AD40 thumb_func_start sub_809ACD4 sub_809ACD4: @ 809ACD4 push {lr} - ldr r2, _0809ACEC @ =c2_exit_to_overworld_2_switch + ldr r2, _0809ACEC @ =CB2_ReturnToField movs r0, 0x2 movs r1, 0x3 bl sub_8107DB4 - ldr r1, _0809ACF0 @ =gUnknown_3005020 + ldr r1, _0809ACF0 @ =gFieldCallback ldr r0, _0809ACF4 @ =sub_809AD74 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_0809ACEC: .4byte c2_exit_to_overworld_2_switch -_0809ACF0: .4byte gUnknown_3005020 +_0809ACEC: .4byte CB2_ReturnToField +_0809ACF0: .4byte gFieldCallback _0809ACF4: .4byte sub_809AD74 thumb_func_end sub_809ACD4 @@ -332,7 +332,7 @@ sub_809AD24: @ 809AD24 ldr r4, _0809AD3C @ =gUnknown_2039950 ldrb r0, [r4] movs r1, 0x2 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl RemoveWindow pop {r4} @@ -477,7 +477,7 @@ _0809AE2C: adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _0809AE9C @ =gUnknown_3005E70 + ldr r0, _0809AE9C @ =gMultiuseListMenuTemplate movs r1, 0 movs r2, 0 bl ListMenuInit @@ -510,26 +510,26 @@ _0809AE2C: _0809AE90: .4byte gMain _0809AE94: .4byte gUnknown_2039934 _0809AE98: .4byte sub_809BBC0 -_0809AE9C: .4byte gUnknown_3005E70 +_0809AE9C: .4byte gMultiuseListMenuTemplate _0809AEA0: .4byte gTasks _0809AEA4: .4byte sub_809AE00 _0809AEA8: .4byte sub_809ADE4 _0809AEAC: - bl sub_80BF768 + bl VblankHblankHandlerSetZero str r4, [sp, 0x8] movs r1, 0xE0 lsls r1, 19 ldr r2, _0809AF4C @ =0x01000100 add r0, sp, 0x8 bl CpuFastSet - bl remove_some_task + bl ScanlineEffect_Stop bl reset_temp_tile_data_buffers bl FreeAllSpritePalettes bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl clear_scheduled_bg_copies_to_vram - bl sub_80984D8 + bl ResetItemMenuIconState bl sub_809AF6C lsls r0, 24 cmp r0, 0 @@ -793,7 +793,7 @@ _0809B118: movs r1, 0 movs r2, 0xE movs r3, 0x1E - bl sub_80F6B08 + bl SetBgRectPal b _0809B14E .align 2, 0 _0809B138: .4byte gUnknown_2039934 @@ -805,7 +805,7 @@ _0809B13C: movs r1, 0 movs r2, 0xC movs r3, 0x1E - bl sub_80F6B08 + bl SetBgRectPal _0809B14E: movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram @@ -904,7 +904,7 @@ _0809B1F2: movs r0, 0x2 negs r0, r0 str r0, [r1, 0x4] - ldr r5, _0809B2D4 @ =gUnknown_3005E70 + ldr r5, _0809B2D4 @ =gMultiuseListMenuTemplate str r2, [r5] ldr r6, _0809B2D8 @ =gUnknown_2039934 ldrh r0, [r6, 0x10] @@ -992,7 +992,7 @@ _0809B2BC: _0809B2C8: .4byte gUnknown_2039968 _0809B2CC: .4byte gFameCheckerText_Cancel _0809B2D0: .4byte gUnknown_2039964 -_0809B2D4: .4byte gUnknown_3005E70 +_0809B2D4: .4byte gMultiuseListMenuTemplate _0809B2D8: .4byte gUnknown_2039934 _0809B2DC: .4byte sub_809B320 _0809B2E0: .4byte sub_809B408 @@ -1000,7 +1000,7 @@ _0809B2E4: strh r0, [r5, 0xE] _0809B2E6: ldr r0, _0809B2F8 @ =gUnknown_2039934 - ldr r1, _0809B2FC @ =gUnknown_3005E70 + ldr r1, _0809B2FC @ =gMultiuseListMenuTemplate ldrh r1, [r1, 0xE] strh r1, [r0, 0x12] movs r0, 0x1 @@ -1010,7 +1010,7 @@ _0809B2F0: bx r1 .align 2, 0 _0809B2F8: .4byte gUnknown_2039934 -_0809B2FC: .4byte gUnknown_3005E70 +_0809B2FC: .4byte gMultiuseListMenuTemplate thumb_func_end sub_809B188 thumb_func_start sub_809B300 @@ -1023,7 +1023,7 @@ sub_809B300: @ 809B300 lsrs r5, 16 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName str r6, [r4] str r5, [r4, 0x4] pop {r4-r6} @@ -1069,7 +1069,7 @@ _0809B34A: lsrs r1, 30 movs r0, 0x1 eors r0, r1 - bl sub_8098940 + bl DestroyItemMenuIcon movs r0, 0x2 negs r0, r0 cmp r5, r0 @@ -1079,7 +1079,7 @@ _0809B34A: ldrb r1, [r6, 0x17] lsls r1, 29 lsrs r1, 30 - bl sub_80988E8 + bl CreateItemMenuIcon b _0809B398 .align 2, 0 _0809B384: .4byte gUnknown_8416757 @@ -1089,7 +1089,7 @@ _0809B38C: ldrb r1, [r6, 0x17] lsls r1, 29 lsrs r1, 30 - bl sub_80988E8 + bl CreateItemMenuIcon _0809B398: ldr r3, _0809B3D4 @ =gUnknown_2039934 ldrb r2, [r3, 0x17] @@ -1233,7 +1233,7 @@ sub_809B494: @ 809B494 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r5, _0809B51C @ =gStringVar4 - ldr r1, _0809B520 @ =gUnknown_8416226 + ldr r1, _0809B520 @ =gOtherText_UnkF9_08_Clear_01 adds r0, r5, 0 bl StringCopy adds r0, r5, 0 @@ -1279,10 +1279,10 @@ sub_809B494: @ 809B494 _0809B514: .4byte gStringVar1 _0809B518: .4byte 0xfffffee0 _0809B51C: .4byte gStringVar4 -_0809B520: .4byte gUnknown_8416226 +_0809B520: .4byte gOtherText_UnkF9_08_Clear_01 _0809B524: .4byte gMoveNames _0809B528: - ldr r2, _0809B564 @ =gUnknown_8416213 + ldr r2, _0809B564 @ =gText_ThreeHyphens movs r4, 0 str r4, [sp] str r4, [sp, 0x4] @@ -1312,7 +1312,7 @@ _0809B55C: pop {r0} bx r0 .align 2, 0 -_0809B564: .4byte gUnknown_8416213 +_0809B564: .4byte gText_ThreeHyphens _0809B568: .4byte gUnknown_8416217 thumb_func_end sub_809B494 @@ -1452,17 +1452,17 @@ _0809B66C: .4byte gUnknown_2039968 thumb_func_start sub_809B670 sub_809B670: @ 809B670 push {lr} - ldr r0, _0809B684 @ =gUnknown_3005020 + ldr r0, _0809B684 @ =gFieldCallback ldr r1, _0809B688 @ =sub_809AD74 str r1, [r0] - ldr r0, _0809B68C @ =c2_exit_to_overworld_2_switch + ldr r0, _0809B68C @ =CB2_ReturnToField bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 -_0809B684: .4byte gUnknown_3005020 +_0809B684: .4byte gFieldCallback _0809B688: .4byte sub_809AD74 -_0809B68C: .4byte c2_exit_to_overworld_2_switch +_0809B68C: .4byte CB2_ReturnToField thumb_func_end sub_809B670 thumb_func_start sub_809B690 @@ -1510,7 +1510,7 @@ _0809B6C4: movs r2, 0x8 movs r3, 0x58 _0809B6E2: - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized lsls r0, 3 ldrb r2, [r4, 0x17] movs r1, 0x7 @@ -1542,7 +1542,7 @@ sub_809B6FC: @ 809B6FC movs r1, 0x98 movs r2, 0x48 movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized lsls r0, 3 ldrb r2, [r4, 0x17] movs r1, 0x7 @@ -1632,7 +1632,7 @@ _0809B7B2: movs r3, 0 ldrsh r1, [r2, r3] adds r1, r7 - bl sub_8058E48 + bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r5, r0, 16 mov r0, sp @@ -1645,7 +1645,7 @@ _0809B7B2: adds r1, r7, r1 lsls r1, 16 asrs r1, 16 - bl sub_8058F8C + bl MapGridGetMetatileLayerTypeAt lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0809B808 @ =0x0000027f @@ -2017,7 +2017,7 @@ _0809BA56: str r0, [sp] adds r0, r4, 0 ldr r1, _0809BAF4 @ =SpriteCallbackDummy - bl AddPseudoFieldObject + bl AddPseudoEventObject lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 @@ -2119,7 +2119,7 @@ sub_809BB44: @ 809BB44 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r4, _0809BBB8 @ =gStringVar4 - ldr r1, _0809BBBC @ =gUnknown_84162B9 + ldr r1, _0809BBBC @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0xA @@ -2144,7 +2144,7 @@ _0809BBAC: .4byte gTasks+0x8 _0809BBB0: .4byte gUnknown_2039934 _0809BBB4: .4byte gStringVar1 _0809BBB8: .4byte gStringVar4 -_0809BBBC: .4byte gUnknown_84162B9 +_0809BBBC: .4byte gText_TimesStrVar1 thumb_func_end sub_809BB44 thumb_func_start sub_809BBC0 @@ -2170,7 +2170,7 @@ sub_809BBC0: @ 809BBC0 ldr r7, _0809BC08 @ =gUnknown_2039942 subs r2, r7, 0x2 adds r1, r7, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow movs r0, 0x2 negs r0, r0 cmp r4, r0 @@ -2232,7 +2232,7 @@ _0809BC78: .4byte sub_809BF98 _0809BC7C: ldr r1, _0809BC94 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _0809BC98 @ =gUnknown_8416766 ldr r2, _0809BC9C @ =sub_809BCA0 adds r0, r6, 0 @@ -2259,7 +2259,7 @@ sub_809BCA0: @ 809BCA0 ldr r0, _0809BD40 @ =gTasks+0x8 adds r5, r0 ldrh r0, [r5, 0xA] - bl sub_809A7DC + bl BagGetQuantityByItemId adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 @@ -2396,10 +2396,10 @@ _0809BDD4: bl sub_809B73C movs r0, 0x3 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x1 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x3 bl ClearWindowTilemap movs r0, 0x1 @@ -2408,7 +2408,7 @@ _0809BDD4: bl PutWindowTilemap ldrh r0, [r4, 0xA] ldr r1, _0809BE40 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _0809BE44 @ =gStringVar2 movs r2, 0x2 ldrsh r1, [r4, r2] @@ -2442,10 +2442,10 @@ _0809BE54: bl sub_809B73C movs r0, 0x3 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x1 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x3 bl ClearWindowTilemap movs r0, 0x1 @@ -2485,7 +2485,7 @@ sub_809BEA4: @ 809BEA4 bl PutWindowTilemap ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x2] - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2601,7 +2601,7 @@ sub_809BF98: @ 809BF98 adds r4, r5, r6 movs r0, 0x2 movs r1, 0 - bl sub_810F260 + bl ClearMenuWindow_BorderThickness2 ldrb r0, [r4, 0xE] movs r1, 0x1 bl sub_809B57C @@ -2644,7 +2644,7 @@ sub_809C004: @ 809C004 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, _0809C03C @ =gUnknown_3005020 + ldr r1, _0809C03C @ =gFieldCallback ldr r0, _0809C040 @ =sub_809AD74 str r0, [r1] movs r0, 0x1 @@ -2666,7 +2666,7 @@ sub_809C004: @ 809C004 pop {r0} bx r0 .align 2, 0 -_0809C03C: .4byte gUnknown_3005020 +_0809C03C: .4byte gFieldCallback _0809C040: .4byte sub_809AD74 _0809C044: .4byte gTasks _0809C048: .4byte sub_809C04C @@ -2691,9 +2691,9 @@ sub_809C04C: @ 809C04C ldrb r0, [r2, 0xE] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_809B604 - ldr r0, _0809C090 @ =c2_exit_to_overworld_2_switch + ldr r0, _0809C090 @ =CB2_ReturnToField bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask @@ -2704,7 +2704,7 @@ _0809C082: .align 2, 0 _0809C088: .4byte gTasks+0x8 _0809C08C: .4byte gPaletteFade -_0809C090: .4byte c2_exit_to_overworld_2_switch +_0809C090: .4byte CB2_ReturnToField thumb_func_end sub_809C04C thumb_func_start nullsub_52 @@ -2826,8 +2826,8 @@ _0809C15A: _0809C160: .4byte gUnknown_203996C thumb_func_end sub_809C138 - thumb_func_start sub_809C164 -sub_809C164: @ 809C164 + thumb_func_start CreatePokemartMenu +CreatePokemartMenu: @ 809C164 push {r4,lr} bl sub_809ABD8 movs r0, 0 @@ -2851,10 +2851,10 @@ sub_809C164: @ 809C164 _0809C194: .4byte EnableBothScriptContexts _0809C198: .4byte gUnknown_203996C _0809C19C: .4byte gMapHeader - thumb_func_end sub_809C164 + thumb_func_end CreatePokemartMenu - thumb_func_start sub_809C1A0 -sub_809C1A0: @ 809C1A0 + thumb_func_start CreateDecorationShop1Menu +CreateDecorationShop1Menu: @ 809C1A0 push {lr} bl sub_809ABD8 movs r0, 0x2 @@ -2865,10 +2865,10 @@ sub_809C1A0: @ 809C1A0 bx r0 .align 2, 0 _0809C1B8: .4byte EnableBothScriptContexts - thumb_func_end sub_809C1A0 + thumb_func_end CreateDecorationShop1Menu - thumb_func_start sub_809C1BC -sub_809C1BC: @ 809C1BC + thumb_func_start CreateDecorationShop2Menu +CreateDecorationShop2Menu: @ 809C1BC push {lr} bl sub_809ABD8 movs r0, 0x3 @@ -2879,7 +2879,7 @@ sub_809C1BC: @ 809C1BC bx r0 .align 2, 0 _0809C1D4: .4byte EnableBothScriptContexts - thumb_func_end sub_809C1BC + thumb_func_end CreateDecorationShop2Menu thumb_func_start sub_809C1D8 sub_809C1D8: @ 809C1D8 @@ -2940,7 +2940,7 @@ _0809C238: adds r5, r1, r0 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt movs r2, 0 ldrsh r1, [r7, r2] lsls r0, 16 @@ -3006,7 +3006,7 @@ _0809C2B8: adds r5, r1, r0 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt movs r1, 0x2 subs r1, r7 lsls r1, 1 diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 2d1be0535..680004d4a 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_813F804 -sub_813F804: @ 813F804 + thumb_func_start PlaySlotMachine +PlaySlotMachine: @ 813F804 push {r4-r6,lr} adds r6, r1, 0 lsls r0, 16 @@ -39,7 +39,7 @@ _0813F840: bx r0 .align 2, 0 _0813F848: .4byte sub_813F898 - thumb_func_end sub_813F804 + thumb_func_end PlaySlotMachine thumb_func_start sub_813F84C sub_813F84C: @ 813F84C @@ -629,7 +629,7 @@ _0813FD00: strh r0, [r4] b _0813FD78 _0813FD08: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -3541,7 +3541,7 @@ _081411D0: movs r0, 0 movs r1, 0xA movs r2, 0xD0 - bl sub_814FE40 + bl LoadUserWindowBorderGfx movs r0, 0 movs r1, 0x1 movs r2, 0xF0 @@ -3603,7 +3603,7 @@ _081411D0: movs r0, 0x1 movs r1, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 bl CopyBgTilemapBufferToVram movs r1, 0x83 @@ -4215,7 +4215,7 @@ sub_81417E4: @ 81417E4 movs r0, 0 movs r1, 0x1 movs r2, 0xF - bl sub_8150048 + bl DrawTextBorderOuter movs r1, 0x2 str r1, [sp] movs r0, 0xFF @@ -4228,7 +4228,7 @@ sub_81417E4: @ 81417E4 movs r0, 0 adds r2, r4, 0 movs r3, 0x1 - bl sub_812E62C + bl AddTextPrinterParameterized5 add sp, 0x14 pop {r4} pop {r0} @@ -4424,7 +4424,7 @@ _08141984: ldrsh r0, [r5, r2] cmp r0, 0 bne _081419C4 - ldr r1, _081419BC @ =gUnknown_825E074 + ldr r1, _081419BC @ =gSineTable movs r2, 0x4 ldrsh r0, [r5, r2] lsls r0, 1 @@ -4447,7 +4447,7 @@ _08141984: movs r0, 0x8 b _081419C6 .align 2, 0 -_081419BC: .4byte gUnknown_825E074 +_081419BC: .4byte gSineTable _081419C0: .4byte gUnknown_84664DC _081419C4: subs r0, r1, 0x1 @@ -4462,7 +4462,7 @@ _081419C6: movs r1, 0x7F ands r0, r1 strh r0, [r5, 0x8] - ldr r1, _081419FC @ =gUnknown_825E074 + ldr r1, _081419FC @ =gSineTable movs r2, 0x8 ldrsh r0, [r5, r2] lsls r0, 1 @@ -4478,7 +4478,7 @@ _081419C6: bl BlendPalettes b _08141A2C .align 2, 0 -_081419FC: .4byte gUnknown_825E074 +_081419FC: .4byte gSineTable _08141A00: ldrh r0, [r5, 0x8] adds r0, 0x1 @@ -4603,7 +4603,7 @@ sub_8141AD8: @ 8141AD8 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu lsls r4, 24 asrs r4, 24 adds r0, r4, 0 diff --git a/asm/ss_anne.s b/asm/ss_anne.s deleted file mode 100644 index 429645f3e..000000000 --- a/asm/ss_anne.s +++ /dev/null @@ -1,408 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815D334 -sub_815D334: @ 815D334 - push {lr} - movs r0, 0xF9 - bl PlaySE - ldr r0, _0815D35C @ =sub_815D364 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0815D360 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x32 - strh r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_0815D35C: .4byte sub_815D364 -_0815D360: .4byte gTasks - thumb_func_end sub_815D334 - - thumb_func_start sub_815D364 -sub_815D364: @ 815D364 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r5, _0815D39C @ =gTasks+0x8 - adds r1, r4, r5 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _0815D394 - ldr r0, _0815D3A0 @ =gUnknown_8479C58 - bl LoadSpriteSheets - bl sub_815D498 - adds r0, r5, 0 - subs r0, 0x8 - adds r0, r4, r0 - ldr r1, _0815D3A4 @ =sub_815D3A8 - str r1, [r0] -_0815D394: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815D39C: .4byte gTasks+0x8 -_0815D3A0: .4byte gUnknown_8479C58 -_0815D3A4: .4byte sub_815D3A8 - thumb_func_end sub_815D364 - - thumb_func_start sub_815D3A8 -sub_815D3A8: @ 815D3A8 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _0815D424 @ =gTasks+0x8 - adds r5, r6, r7 - ldrh r1, [r5, 0x2] - adds r1, 0x1 - strh r1, [r5, 0x2] - ldrh r0, [r5, 0x4] - adds r0, 0x1 - strh r0, [r5, 0x4] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x46 - bne _0815D3D6 - movs r0, 0 - strh r0, [r5, 0x2] - bl sub_815D5A4 -_0815D3D6: - ldr r0, _0815D428 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815D42C @ =gMapObjects - adds r0, r1 - ldr r2, _0815D430 @ =gSprites - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x78 - negs r1, r1 - cmp r0, r1 - bge _0815D438 - movs r0, 0xF9 - bl PlaySE - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0815D434 @ =sub_815D454 - str r1, [r0] - b _0815D44A - .align 2, 0 -_0815D424: .4byte gTasks+0x8 -_0815D428: .4byte gSaveBlock1Ptr -_0815D42C: .4byte gMapObjects -_0815D430: .4byte gSprites -_0815D434: .4byte sub_815D454 -_0815D438: - movs r1, 0x4 - ldrsh r0, [r5, r1] - movs r1, 0x5 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r4, 0x24] -_0815D44A: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815D3A8 - - thumb_func_start sub_815D454 -sub_815D454: @ 815D454 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - ldr r0, _0815D490 @ =gTasks+0x8 - adds r1, r0 - ldrh r0, [r1, 0x6] - adds r0, 0x1 - strh r0, [r1, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - bne _0815D48A - movs r0, 0xFA - lsls r0, 4 - bl FreeSpriteTilesByTag - ldr r0, _0815D494 @ =0x00000fa1 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts -_0815D48A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D490: .4byte gTasks+0x8 -_0815D494: .4byte 0x00000fa1 - thumb_func_end sub_815D454 - - thumb_func_start sub_815D498 -sub_815D498: @ 815D498 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0815D508 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815D50C @ =gMapObjects - adds r0, r1 - ldr r4, _0815D510 @ =gSprites - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r1, r0 - adds r1, 0x50 - ldr r0, _0815D514 @ =gUnknown_8479C88 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x6D - movs r3, 0xFF - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x8 - orrs r0, r2 - movs r2, 0xF - ands r0, r2 - movs r2, 0xA0 - orrs r0, r2 - strb r0, [r1, 0x5] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D508: .4byte gSaveBlock1Ptr -_0815D50C: .4byte gMapObjects -_0815D510: .4byte gSprites -_0815D514: .4byte gUnknown_8479C88 - thumb_func_end sub_815D498 - - thumb_func_start sub_815D518 -sub_815D518: @ 815D518 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, _0815D598 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815D59C @ =gMapObjects - adds r0, r1 - ldr r2, _0815D5A0 @ =gSprites - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r1, r0 - adds r1, 0x50 - strh r1, [r4, 0x20] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x6 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bgt _0815D56A - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0815D56A: - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r1, 0x6 - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x12 - negs r1, r1 - cmp r0, r1 - bge _0815D58E - adds r0, r4, 0 - bl DestroySprite -_0815D58E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D598: .4byte gSaveBlock1Ptr -_0815D59C: .4byte gMapObjects -_0815D5A0: .4byte gSprites - thumb_func_end sub_815D518 - - thumb_func_start sub_815D5A4 -sub_815D5A4: @ 815D5A4 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0815D614 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815D618 @ =gMapObjects - adds r0, r1 - ldr r4, _0815D61C @ =gSprites - ldrb r0, [r0, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x24] - ldrh r1, [r1, 0x20] - adds r0, r1 - adds r0, 0x31 - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - blt _0815D60C - ldr r0, _0815D620 @ =gUnknown_8479CC0 - movs r2, 0x4E - movs r3, 0x8 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0815D60C - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x5] - movs r1, 0xF - ands r1, r2 - movs r2, 0xA0 - orrs r1, r2 - strb r1, [r0, 0x5] -_0815D60C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D614: .4byte gSaveBlock1Ptr -_0815D618: .4byte gMapObjects -_0815D61C: .4byte gSprites -_0815D620: .4byte gUnknown_8479CC0 - thumb_func_end sub_815D5A4 - - thumb_func_start sub_815D624 -sub_815D624: @ 815D624 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bge _0815D638 - adds r0, 0x3 -_0815D638: - asrs r0, 2 - strh r0, [r2, 0x24] - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0815D650 - adds r0, r2, 0 - bl DestroySprite -_0815D650: - pop {r0} - bx r0 - thumb_func_end sub_815D624 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/start_menu.s b/asm/start_menu.s index 1d81d0392..9dc9fbab6 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -11,7 +11,7 @@ sub_806ED54: @ 806ED54 ldr r0, _0806ED6C @ =gUnknown_20370F5 movs r1, 0 strb r1, [r0] - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _0806ED70 bl sub_806EE34 @@ -158,7 +158,7 @@ sub_806EE7C: @ 806EE7C bl PutWindowTilemap ldrb r0, [r4] movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame ldr r0, _0806EEFC @ =gStringVar1 ldr r1, _0806EF00 @ =gUnknown_2039996 ldrh r1, [r1] @@ -220,7 +220,7 @@ sub_806EF18: @ 806EF18 ldr r4, _0806EF40 @ =gUnknown_2037101 ldrb r0, [r4] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] movs r1, 0x2 bl CopyWindowToVram @@ -390,7 +390,7 @@ _0806F06C: lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame ldr r1, _0806F08C @ =gUnknown_20370FF b _0806F0B8 .align 2, 0 @@ -438,9 +438,9 @@ _0806F0C4: movs r1, 0x2 movs r2, 0 movs r3, 0 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow strb r0, [r4] - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0806F118 @@ -568,13 +568,13 @@ sub_806F1D4: @ 806F1D4 movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] - ldr r1, _0806F1E8 @ =gUnknown_3005024 + ldr r1, _0806F1E8 @ =gFieldCallback2 ldr r0, _0806F1EC @ =sub_806F1B8 str r0, [r1] bx lr .align 2, 0 _0806F1E4: .4byte gUnknown_20370FF -_0806F1E8: .4byte gUnknown_3005024 +_0806F1E8: .4byte gFieldCallback2 _0806F1EC: .4byte sub_806F1B8 thumb_func_end sub_806F1D4 @@ -634,7 +634,7 @@ _0806F254: .4byte gUnknown_20370F0 thumb_func_start ShowStartMenu ShowStartMenu: @ 806F258 push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _0806F26E bl player_bitmagic @@ -666,7 +666,7 @@ sub_806F280: @ 806F280 bl MoveMenuCursor ldr r4, _0806F360 @ =gUnknown_20370F4 strb r0, [r4] - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0806F2D2 @@ -701,7 +701,7 @@ _0806F2D2: bl MoveMenuCursor ldr r4, _0806F360 @ =gUnknown_20370F4 strb r0, [r4] - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0806F320 @@ -854,9 +854,9 @@ _0806F424: .4byte gPaletteFade _0806F428: movs r0, 0x29 bl IncrementGameStat - bl play_some_sound + bl PlayRainStoppingSoundEffect bl sub_806EF18 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F448 @ =sub_810275C bl SetMainCallback2 movs r0, 0x1 @@ -881,9 +881,9 @@ sub_806F44C: @ 806F44C .align 2, 0 _0806F460: .4byte gPaletteFade _0806F464: - bl play_some_sound + bl PlayRainStoppingSoundEffect bl sub_806EF18 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F47C @ =CB2_PartyMenuFromStartMenu bl SetMainCallback2 movs r0, 0x1 @@ -908,17 +908,17 @@ sub_806F480: @ 806F480 .align 2, 0 _0806F494: .4byte gPaletteFade _0806F498: - bl play_some_sound + bl PlayRainStoppingSoundEffect bl sub_806EF18 - bl sub_80563F0 - ldr r0, _0806F4B0 @ =UseFameCheckerFromMenu + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0806F4B0 @ =ReturnToBagFromKeyItem bl SetMainCallback2 movs r0, 0x1 _0806F4AC: pop {r1} bx r1 .align 2, 0 -_0806F4B0: .4byte UseFameCheckerFromMenu +_0806F4B0: .4byte ReturnToBagFromKeyItem thumb_func_end sub_806F480 thumb_func_start sub_806F4B4 @@ -935,9 +935,9 @@ sub_806F4B4: @ 806F4B4 .align 2, 0 _0806F4C8: .4byte gPaletteFade _0806F4CC: - bl play_some_sound + bl PlayRainStoppingSoundEffect bl sub_806EF18 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F4E4 @ =sub_80568A8 bl sub_808B698 movs r0, 0x1 @@ -974,9 +974,9 @@ sub_806F4FC: @ 806F4FC .align 2, 0 _0806F510: .4byte gPaletteFade _0806F514: - bl play_some_sound + bl PlayRainStoppingSoundEffect bl sub_806EF18 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F534 @ =sub_8088388 bl SetMainCallback2 ldr r1, _0806F538 @ =gMain @@ -1029,8 +1029,8 @@ sub_806F56C: @ 806F56C .align 2, 0 _0806F580: .4byte gPaletteFade _0806F584: - bl play_some_sound - bl sub_80563F0 + bl PlayRainStoppingSoundEffect + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F59C @ =gUnknown_300502C ldrb r0, [r0] ldr r1, _0806F5A0 @ =sub_80568A8 @@ -1049,7 +1049,7 @@ sub_806F5A4: @ 806F5A4 push {lr} bl sub_812B234 movs r0, 0xC - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 bl sub_806F624 ldr r1, _0806F5C0 @ =gUnknown_20370F0 ldr r0, _0806F5C4 @ =sub_806F5C8 @@ -1080,7 +1080,7 @@ sub_806F5C8: @ 806F5C8 _0806F5E4: movs r0, 0 movs r1, 0 - bl sub_810F260 + bl ClearMenuWindow_BorderThickness2 bl sub_806F14C bl sub_812B248 ldr r1, _0806F5FC @ =gUnknown_20370F0 @@ -1093,7 +1093,7 @@ _0806F600: .4byte sub_806F280 _0806F604: movs r0, 0 movs r1, 0x1 - bl sub_810F260 + bl ClearMenuWindow_BorderThickness2 bl sub_80696C0 bl ScriptContext2_Disable bl sub_812B248 @@ -1109,7 +1109,7 @@ _0806F61E: thumb_func_start sub_806F624 sub_806F624: @ 806F624 push {lr} - bl sub_80590D8 + bl save_serialize_map ldr r1, _0806F63C @ =gUnknown_3000FA4 ldr r0, _0806F640 @ =sub_806F7A8 str r0, [r1] @@ -1156,7 +1156,7 @@ sub_806F67C: @ 806F67C push {lr} bl sub_812B234 movs r0, 0xC - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 bl sub_806F624 ldr r0, _0806F698 @ =task50_save_game movs r1, 0x50 @@ -1239,7 +1239,7 @@ sub_806F71C: @ 806F71C push {lr} movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame pop {r0} bx r0 thumb_func_end sub_806F71C @@ -1328,7 +1328,7 @@ sub_806F7A8: @ 806F7A8 lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame bl remove_start_menu_window_maybe movs r0, 0 bl sub_8112EDC @@ -1362,7 +1362,7 @@ _0806F7F4: .4byte sub_806F7F8 thumb_func_start sub_806F7F8 sub_806F7F8: @ 806F7F8 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1481,7 +1481,7 @@ _0806F8D8: .4byte sub_806F8DC thumb_func_start sub_806F8DC sub_806F8DC: @ 806F8DC push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1713,7 +1713,7 @@ _0806FA88: bl SetGpuReg movs r0, 0 bl SetVBlankCallback - bl remove_some_task + bl ScanlineEffect_Stop movs r2, 0xA0 lsls r2, 19 mov r1, sp @@ -1767,7 +1767,7 @@ _0806FB00: bl ResetSpriteData bl ResetTasks bl ResetPaletteFade - bl dp12_8087EA4 + bl ScanlineEffect_Clear b _0806FB64 _0806FB12: movs r0, 0 @@ -1781,7 +1781,7 @@ _0806FB12: movs r0, 0 movs r1, 0x8 movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal b _0806FB64 .align 2, 0 _0806FB34: .4byte gUnknown_83A73B8 @@ -1908,11 +1908,11 @@ _0806FC14: movs r0, 0 movs r1, 0x2 movs r3, 0xFF - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x8 movs r2, 0xF - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl PutWindowTilemap movs r0, 0 @@ -2014,7 +2014,7 @@ sub_806FCF4: @ 806FCF4 ldr r4, _0806FE5C @ =0x0000021d adds r1, r4, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldrb r0, [r5] movs r1, 0 adds r2, r4, 0 @@ -2043,7 +2043,7 @@ sub_806FCF4: @ 806FCF4 str r4, [sp, 0x8] movs r1, 0x2 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x2 adds r1, r4, 0 adds r2, r6, 0 @@ -2058,7 +2058,7 @@ sub_806FCF4: @ 806FCF4 movs r1, 0 movs r2, 0x2 movs r3, 0xE - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 adds r1, r4, 0 movs r2, 0x2 @@ -2077,7 +2077,7 @@ sub_806FCF4: @ 806FCF4 movs r1, 0 movs r2, 0x2 movs r3, 0x1C - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x4 adds r1, r4, 0 movs r2, 0x2 @@ -2091,7 +2091,7 @@ sub_806FCF4: @ 806FCF4 movs r1, 0 movs r2, 0x3C movs r3, 0x1C - bl box_print + bl AddTextPrinterParameterized3 movs r7, 0x2A ldr r0, _0806FE78 @ =0x00000829 bl FlagGet @@ -2108,7 +2108,7 @@ sub_806FCF4: @ 806FCF4 movs r1, 0 movs r2, 0x2 movs r3, 0x2A - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x2 @@ -2121,7 +2121,7 @@ sub_806FCF4: @ 806FCF4 movs r1, 0 movs r2, 0x3C movs r3, 0x2A - bl box_print + bl AddTextPrinterParameterized3 movs r7, 0x38 _0806FE0A: ldrb r0, [r5] @@ -2133,7 +2133,7 @@ _0806FE0A: movs r1, 0 movs r2, 0x2 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x2 adds r1, r4, 0 movs r2, 0x2 @@ -2146,7 +2146,7 @@ _0806FE0A: movs r1, 0 movs r2, 0x3C adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldrb r0, [r5] movs r1, 0x2 bl CopyWindowToVram @@ -2178,7 +2178,7 @@ sub_806FE84: @ 806FE84 ldr r4, _0806FE9C @ =gUnknown_2037104 ldrb r0, [r4] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r4] bl RemoveWindow pop {r4} @@ -2197,7 +2197,7 @@ sub_806FEA0: @ 806FEA0 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame bl remove_start_menu_window_maybe bl sub_80696C0 bl ScriptContext2_Disable diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s deleted file mode 100644 index bdd06dfff..000000000 --- a/asm/teachy_tv.s +++ /dev/null @@ -1,2912 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815AB94 -sub_815AB94: @ 815AB94 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_815AB94 - - thumb_func_start sub_815ABB0 -sub_815ABB0: @ 815ABB0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_815ABB0 - - thumb_func_start sub_815ABC4 -sub_815ABC4: @ 815ABC4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - ldr r3, _0815ABF4 @ =gUnknown_203F444 - movs r4, 0 - strb r2, [r3, 0x4] - str r1, [r3] - cmp r2, 0 - bne _0815ABE0 - movs r0, 0 - strh r4, [r3, 0x6] - strh r4, [r3, 0x8] - strb r0, [r3, 0x5] -_0815ABE0: - cmp r2, 0x1 - bne _0815ABE6 - strb r4, [r3, 0x4] -_0815ABE6: - ldr r0, _0815ABF8 @ =sub_815AC2C - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815ABF4: .4byte gUnknown_203F444 -_0815ABF8: .4byte sub_815AC2C - thumb_func_end sub_815ABC4 - - thumb_func_start sub_815ABFC -sub_815ABFC: @ 815ABFC - push {lr} - ldr r1, _0815AC10 @ =gUnknown_203F444 - ldrb r0, [r1, 0x4] - cmp r0, 0x1 - bne _0815AC14 - ldr r1, [r1] - movs r0, 0x1 - bl sub_815ABC4 - b _0815AC1C - .align 2, 0 -_0815AC10: .4byte gUnknown_203F444 -_0815AC14: - ldr r1, [r1] - movs r0, 0x2 - bl sub_815ABC4 -_0815AC1C: - pop {r0} - bx r0 - thumb_func_end sub_815ABFC - - thumb_func_start sub_815AC20 -sub_815AC20: @ 815AC20 - ldr r1, _0815AC28 @ =gUnknown_203F444 - movs r0, 0x1 - strb r0, [r1, 0x4] - bx lr - .align 2, 0 -_0815AC28: .4byte gUnknown_203F444 - thumb_func_end sub_815AC20 - - thumb_func_start sub_815AC2C -sub_815AC2C: @ 815AC2C - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, _0815AC44 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r6, r0, r1 - ldrb r5, [r6] - cmp r5, 0 - beq _0815AC48 - cmp r5, 0x1 - beq _0815AC9C - b _0815AD6E - .align 2, 0 -_0815AC44: .4byte gMain -_0815AC48: - ldr r4, _0815AC90 @ =gUnknown_203F450 - ldr r0, _0815AC94 @ =0x00004008 - bl AllocZeroed - str r0, [r4] - str r5, [r0] - ldr r1, _0815AC98 @ =0x00004006 - adds r0, r1 - strb r5, [r0] - ldr r0, [r4] - adds r1, 0x1 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - bl sub_80BF768 - bl clear_scheduled_bg_copies_to_vram - bl remove_some_task - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl sub_815AD88 - bl sub_815AE38 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _0815AD6E - .align 2, 0 -_0815AC90: .4byte gUnknown_203F450 -_0815AC94: .4byte 0x00004008 -_0815AC98: .4byte 0x00004006 -_0815AC9C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0815AD6E - bl sub_815AEB8 - bl sub_815AFEC - ldr r0, _0815ACE0 @ =gUnknown_203F444 - ldrb r0, [r0, 0x4] - cmp r0, 0x2 - bne _0815ACEC - ldr r0, _0815ACE4 @ =sub_815BA54 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_815B014 - ldr r2, _0815ACE8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xA] - adds r0, r5, 0 - bl sub_815B118 - b _0815AD26 - .align 2, 0 -_0815ACE0: .4byte gUnknown_203F444 -_0815ACE4: .4byte sub_815BA54 -_0815ACE8: .4byte gTasks -_0815ACEC: - ldr r0, _0815AD78 @ =sub_815B2C0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_815AEE8 - ldr r1, _0815AD7C @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - bl sub_815B014 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - bl sub_815AF5C - movs r0, 0xAD - lsls r0, 1 - bl PlayNewMapMusic - bl sub_815B094 -_0815AD26: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x9 - bl sub_812B1E0 - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _0815AD80 @ =sub_815ABB0 - bl SetVBlankCallback - ldr r0, _0815AD84 @ =sub_815AB94 - bl SetMainCallback2 -_0815AD6E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815AD78: .4byte sub_815B2C0 -_0815AD7C: .4byte gTasks -_0815AD80: .4byte sub_815ABB0 -_0815AD84: .4byte sub_815AB94 - thumb_func_end sub_815AC2C - - thumb_func_start sub_815AD88 -sub_815AD88: @ 815AD88 - push {r4,lr} - bl sub_80BF7C8 - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0815AE20 @ =gUnknown_84792E0 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, _0815AE24 @ =gUnknown_203F450 - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _0815AE28 @ =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _0815AE2C @ =0x00002004 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - movs r1, 0xC1 - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x3 - movs r2, 0x2 - bl ChangeBgX - movs r1, 0xA0 - lsls r1, 6 - movs r0, 0x3 - movs r2, 0x1 - bl ChangeBgY - ldr r0, [r4] - ldr r1, _0815AE30 @ =0x00004004 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - ldr r1, _0815AE34 @ =0x00004005 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815AE20: .4byte gUnknown_84792E0 -_0815AE24: .4byte gUnknown_203F450 -_0815AE28: .4byte 0x00001004 -_0815AE2C: .4byte 0x00002004 -_0815AE30: .4byte 0x00004004 -_0815AE34: .4byte 0x00004005 - thumb_func_end sub_815AD88 - - thumb_func_start sub_815AE38 -sub_815AE38: @ 815AE38 - push {r4,lr} - sub sp, 0x8 - movs r4, 0 - add r0, sp, 0x4 - strh r4, [r0] - bl reset_temp_tile_data_buffers - ldr r1, _0815AE98 @ =gUnknown_8E86240 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _0815AE9C @ =gUnknown_8E86BE8 - ldr r4, _0815AEA0 @ =gUnknown_203F450 - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, _0815AEA4 @ =gUnknown_8E86D6C - ldr r1, [r4] - ldr r2, _0815AEA8 @ =0x00003004 - adds r1, r2 - bl LZDecompressWram - ldr r0, _0815AEAC @ =gUnknown_8E86F98 - movs r1, 0 - movs r2, 0x80 - bl LoadCompressedPalette - add r0, sp, 0x4 - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - ldr r0, _0815AEB0 @ =gUnknown_83A5348 - bl LoadSpritePalette - ldr r0, [r4] - ldr r1, _0815AEB4 @ =0x00002004 - adds r0, r1 - bl sub_815BD80 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815AE98: .4byte gUnknown_8E86240 -_0815AE9C: .4byte gUnknown_8E86BE8 -_0815AEA0: .4byte gUnknown_203F450 -_0815AEA4: .4byte gUnknown_8E86D6C -_0815AEA8: .4byte 0x00003004 -_0815AEAC: .4byte gUnknown_8E86F98 -_0815AEB0: .4byte gUnknown_83A5348 -_0815AEB4: .4byte 0x00002004 - thumb_func_end sub_815AE38 - - thumb_func_start sub_815AEB8 -sub_815AEB8: @ 815AEB8 - push {lr} - ldr r0, _0815AEE4 @ =gUnknown_84792F0 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0xCC - bl FillWindowPixelBuffer - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - .align 2, 0 -_0815AEE4: .4byte gUnknown_84792F0 - thumb_func_end sub_815AEB8 - - thumb_func_start sub_815AEE8 -sub_815AEE8: @ 815AEE8 - push {r4,r5,lr} - ldr r4, _0815AF48 @ =gUnknown_3005E70 - adds r1, r4, 0 - ldr r0, _0815AF4C @ =gUnknown_8479368 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - movs r0, 0x1 - strb r0, [r4, 0x10] - ldr r0, _0815AF50 @ =sub_815AFD8 - str r0, [r4, 0x4] - movs r0, 0xB6 - lsls r0, 1 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - cmp r0, 0 - bne _0815AF30 - ldr r0, _0815AF54 @ =gUnknown_8479340 - str r0, [r4] - movs r0, 0x5 - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - ldrb r2, [r4, 0x14] - lsls r1, r2, 28 - lsrs r1, 28 - adds r1, 0x8 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x14] -_0815AF30: - ldr r0, _0815AF58 @ =gUnknown_203F444 - ldrh r1, [r0, 0x6] - ldrh r2, [r0, 0x8] - adds r0, r4, 0 - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0815AF48: .4byte gUnknown_3005E70 -_0815AF4C: .4byte gUnknown_8479368 -_0815AF50: .4byte sub_815AFD8 -_0815AF54: .4byte gUnknown_8479340 -_0815AF58: .4byte gUnknown_203F444 - thumb_func_end sub_815AEE8 - - thumb_func_start sub_815AF5C -sub_815AF5C: @ 815AF5C - push {lr} - movs r0, 0xB6 - lsls r0, 1 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - cmp r0, 0 - bne _0815AF84 - ldr r0, _0815AF7C @ =gUnknown_203F450 - ldr r0, [r0] - ldr r1, _0815AF80 @ =0x00004007 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - b _0815AF96 - .align 2, 0 -_0815AF7C: .4byte gUnknown_203F450 -_0815AF80: .4byte 0x00004007 -_0815AF84: - ldr r0, _0815AF9C @ =gUnknown_8479380 - ldr r1, _0815AFA0 @ =gUnknown_203F44A - bl AddScrollIndicatorArrowPair - ldr r1, _0815AFA4 @ =gUnknown_203F450 - ldr r1, [r1] - ldr r2, _0815AFA8 @ =0x00004007 - adds r1, r2 - strb r0, [r1] -_0815AF96: - pop {r0} - bx r0 - .align 2, 0 -_0815AF9C: .4byte gUnknown_8479380 -_0815AFA0: .4byte gUnknown_203F44A -_0815AFA4: .4byte gUnknown_203F450 -_0815AFA8: .4byte 0x00004007 - thumb_func_end sub_815AF5C - - thumb_func_start sub_815AFAC -sub_815AFAC: @ 815AFAC - push {r4,lr} - ldr r4, _0815AFD0 @ =gUnknown_203F450 - ldr r0, [r4] - ldr r2, _0815AFD4 @ =0x00004007 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0815AFCA - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, _0815AFD4 @ =0x00004007 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] -_0815AFCA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815AFD0: .4byte gUnknown_203F450 -_0815AFD4: .4byte 0x00004007 - thumb_func_end sub_815AFAC - - thumb_func_start sub_815AFD8 -sub_815AFD8: @ 815AFD8 - push {lr} - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _0815AFE8 - movs r0, 0x5 - bl PlaySE -_0815AFE8: - pop {r0} - bx r0 - thumb_func_end sub_815AFD8 - - thumb_func_start sub_815AFEC -sub_815AFEC: @ 815AFEC - push {lr} - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x1F - bl SetGpuReg - movs r0, 0x50 - movs r1, 0xCC - bl SetGpuReg - movs r0, 0x54 - movs r1, 0x5 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_815AFEC - - thumb_func_start sub_815B014 -sub_815B014: @ 815B014 - push {lr} - sub sp, 0x4 - ldr r1, _0815B054 @ =SpriteCallbackDummy - movs r0, 0x8 - str r0, [sp] - movs r0, 0x5A - movs r2, 0 - movs r3, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0815B058 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - movs r3, 0x8 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2] - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_0815B054: .4byte SpriteCallbackDummy -_0815B058: .4byte gSprites - thumb_func_end sub_815B014 - - thumb_func_start sub_815B05C -sub_815B05C: @ 815B05C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r5, _0815B090 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - strh r1, [r0, 0x24] - strh r2, [r0, 0x26] - adds r4, r0, 0 - adds r4, 0x3E - ldrb r2, [r4] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r4] - adds r1, r3, 0 - bl StartSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815B090: .4byte gSprites - thumb_func_end sub_815B05C - - thumb_func_start sub_815B094 -sub_815B094: @ 815B094 - push {lr} - ldr r1, _0815B0AC @ =0x00000c64 - movs r0, 0x44 - bl SetGpuReg - ldr r1, _0815B0B0 @ =0x00001cd4 - movs r0, 0x40 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_0815B0AC: .4byte 0x00000c64 -_0815B0B0: .4byte 0x00001cd4 - thumb_func_end sub_815B094 - - thumb_func_start sub_815B0B4 -sub_815B0B4: @ 815B0B4 - push {lr} - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_815B0B4 - - thumb_func_start sub_815B0CC -sub_815B0CC: @ 815B0CC - push {r4-r7,lr} - movs r0, 0x2 - bl GetBgTilemapBuffer - adds r7, r0, 0 - movs r0, 0x1 -_0815B0D8: - movs r4, 0x2 - lsls r5, r0, 5 - adds r6, r0, 0x1 -_0815B0DE: - bl Random - adds r2, r5, r4 - lsls r2, 1 - adds r2, r7 - movs r1, 0x3 - ands r1, r0 - lsls r1, 10 - ldr r3, _0815B114 @ =0x0000301f - adds r0, r3, 0 - adds r1, r0 - strh r1, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1B - bls _0815B0DE - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, 0xC - bls _0815B0D8 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815B114: .4byte 0x0000301f - thumb_func_end sub_815B0CC - - thumb_func_start sub_815B118 -sub_815B118: @ 815B118 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0815B190 @ =gTasks+0x8 - adds r5, r0, r1 - movs r0, 0x2 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B194 @ =gSprites - adds r7, r0, r1 - movs r0, 0x1 - bl ClearWindowTilemap - bl sub_815B0B4 - ldr r0, _0815B198 @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - cmp r0, 0 - blt _0815B1B8 - cmp r0, 0x3 - bgt _0815B1A8 - ldrb r0, [r5, 0x2] - movs r1, 0x78 - movs r2, 0x38 - movs r3, 0 - bl sub_815B05C - movs r4, 0xC0 - lsls r4, 6 - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0x1 - bl ChangeBgX - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0x2 - bl ChangeBgY - ldr r2, _0815B19C @ =gUnknown_203F450 - ldr r1, [r2] - ldr r0, _0815B1A0 @ =0x00004004 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x3 - strb r0, [r1] - ldr r1, [r2] - ldr r0, _0815B1A4 @ =0x00004005 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x3 - strb r0, [r1] - b _0815B1B8 - .align 2, 0 -_0815B190: .4byte gTasks+0x8 -_0815B194: .4byte gSprites -_0815B198: .4byte gUnknown_203F444 -_0815B19C: .4byte gUnknown_203F450 -_0815B1A0: .4byte 0x00004004 -_0815B1A4: .4byte 0x00004005 -_0815B1A8: - cmp r0, 0x5 - bgt _0815B1B8 - ldrb r0, [r5, 0x2] - movs r1, 0x78 - movs r2, 0x38 - movs r3, 0 - bl sub_815B05C -_0815B1B8: - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - movs r0, 0x24 - ldrsh r1, [r7, r0] - movs r0, 0x26 - ldrsh r2, [r7, r0] - movs r0, 0x1 - str r0, [sp] - adds r0, r6, 0 - movs r3, 0 - bl sub_815BAA0 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815B118 - - thumb_func_start sub_815B1DC -sub_815B1DC: @ 815B1DC - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r2, _0815B21C @ =gTextFlags - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl sub_80F78A8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0xC - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl AddTextPrinterParametrized - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B21C: .4byte gTextFlags - thumb_func_end sub_815B1DC - - thumb_func_start sub_815B220 -sub_815B220: @ 815B220 - push {r4,lr} - ldr r4, _0815B238 @ =gUnknown_203F450 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - bl FreeAllWindowBuffers - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B238: .4byte gUnknown_203F450 - thumb_func_end sub_815B220 - - thumb_func_start sub_815B23C -sub_815B23C: @ 815B23C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0815B26C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0815B270 @ =sub_815B274 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B26C: .4byte gTasks -_0815B270: .4byte sub_815B274 - thumb_func_end sub_815B23C - - thumb_func_start sub_815B274 -sub_815B274: @ 815B274 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0815B298 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0815B2B6 - ldr r0, _0815B29C @ =gUnknown_203F450 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _0815B2A0 - bl SetMainCallback2 - b _0815B2AC - .align 2, 0 -_0815B298: .4byte gPaletteFade -_0815B29C: .4byte gUnknown_203F450 -_0815B2A0: - bl sub_8055DC4 - ldr r0, _0815B2BC @ =gUnknown_203F444 - ldr r0, [r0] - bl SetMainCallback2 -_0815B2AC: - bl sub_815B220 - adds r0, r4, 0 - bl DestroyTask -_0815B2B6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B2BC: .4byte gUnknown_203F444 - thumb_func_end sub_815B274 - - thumb_func_start sub_815B2C0 -sub_815B2C0: @ 815B2C0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _0815B31C @ =gTasks+0x8 - adds r6, r0, r1 - bl sub_815B0CC - ldr r0, _0815B320 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0815B37A - ldrb r0, [r6] - bl ListMenuHandleInput - adds r5, r0, 0 - ldrb r0, [r6] - ldr r4, _0815B324 @ =gUnknown_203F44A - adds r2, r4, 0x2 - adds r1, r4, 0 - bl get_coro_args_x18_x1A - ldr r0, _0815B328 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0815B30A - subs r0, r4, 0x6 - ldr r1, [r0] - ldr r0, _0815B32C @ =UseFameCheckerFromMenu - cmp r1, r0 - bne _0815B330 -_0815B30A: - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _0815B330 - adds r0, 0x1 - cmp r5, r0 - bne _0815B33E - b _0815B37A - .align 2, 0 -_0815B31C: .4byte gTasks+0x8 -_0815B320: .4byte gPaletteFade -_0815B324: .4byte gUnknown_203F44A -_0815B328: .4byte gMain -_0815B32C: .4byte UseFameCheckerFromMenu -_0815B330: - movs r0, 0x5 - bl PlaySE - adds r0, r7, 0 - bl sub_815B23C - b _0815B37A -_0815B33E: - movs r0, 0x5 - bl PlaySE - ldr r2, _0815B380 @ =gUnknown_203F444 - movs r4, 0 - strb r5, [r2, 0x5] - ldrb r0, [r6] - adds r1, r2, 0x6 - adds r2, 0x8 - bl sub_810713C - bl sub_815B0B4 - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - bl sub_815AFAC - strh r4, [r6, 0x6] - strh r4, [r6, 0x4] - ldr r1, _0815B384 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _0815B388 @ =sub_815B4EC - str r1, [r0] -_0815B37A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815B380: .4byte gUnknown_203F444 -_0815B384: .4byte gTasks -_0815B388: .4byte sub_815B4EC - thumb_func_end sub_815B2C0 - - thumb_func_start sub_815B38C -sub_815B38C: @ 815B38C - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B3F8 @ =gTasks+0x8 - adds r4, r1, r0 - bl sub_815B0CC - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _0815B3F0 - ldr r0, _0815B3FC @ =gUnknown_203F450 - ldr r1, [r0] - ldr r0, _0815B400 @ =0x00003004 - adds r1, r0 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - ldrb r0, [r4, 0x2] - movs r1, 0x8 - movs r2, 0x38 - movs r3, 0x7 - bl sub_815B05C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - movs r0, 0x88 - lsls r0, 1 - bl PlayNewMapMusic -_0815B3F0: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B3F8: .4byte gTasks+0x8 -_0815B3FC: .4byte gUnknown_203F450 -_0815B400: .4byte 0x00003004 - thumb_func_end sub_815B38C - - thumb_func_start sub_815B404 -sub_815B404: @ 815B404 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B450 @ =gTasks+0x8 - adds r4, r1, r0 - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x86 - bne _0815B448 - movs r0, 0x1A - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B448: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B450: .4byte gTasks+0x8 - thumb_func_end sub_815B404 - - thumb_func_start sub_815B454 -sub_815B454: @ 815B454 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B484 @ =gTasks+0x8 - adds r4, r1, r0 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B488 @ =gSprites - adds r1, r0, r1 - ldrh r2, [r4, 0x4] - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r0, 0x23 - beq _0815B48C - adds r0, r2, 0x1 - strh r0, [r4, 0x4] - b _0815B4B8 - .align 2, 0 -_0815B484: .4byte gTasks+0x8 -_0815B488: .4byte gSprites -_0815B48C: - ldrh r2, [r1, 0x24] - movs r3, 0x24 - ldrsh r0, [r1, r3] - cmp r0, 0x78 - bne _0815B4B4 - adds r0, r1, 0 - movs r1, 0 - bl StartSpriteAnim - ldr r0, _0815B4B0 @ =gUnknown_841B83D - bl sub_815B1DC - movs r0, 0 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - b _0815B4B8 - .align 2, 0 -_0815B4B0: .4byte gUnknown_841B83D -_0815B4B4: - adds r0, r2, 0x1 - strh r0, [r1, 0x24] -_0815B4B8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_815B454 - - thumb_func_start sub_815B4C0 -sub_815B4C0: @ 815B4C0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B4E8 @ =gTasks+0x8 - adds r4, r1, r0 - movs r0, 0 - bl sub_80BF518 - lsls r0, 16 - cmp r0, 0 - bne _0815B4E2 - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B4E2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B4E8: .4byte gTasks+0x8 - thumb_func_end sub_815B4C0 - - thumb_func_start sub_815B4EC -sub_815B4EC: @ 815B4EC - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r6, r0, 3 - ldr r7, _0815B548 @ =gTasks+0x8 - adds r5, r6, r7 - ldr r0, _0815B54C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0815B55C - ldr r0, _0815B550 @ =gUnknown_203F450 - ldr r0, [r0] - ldr r1, _0815B554 @ =0x00004006 - adds r0, r1 - movs r4, 0 - movs r1, 0x1 - strb r1, [r0] - ldrb r0, [r5, 0x2] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_815B05C - movs r0, 0 - movs r1, 0xCC - bl FillWindowPixelBuffer - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - bl sub_815B908 - strh r4, [r5, 0x4] - strh r4, [r5, 0x6] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0815B558 @ =sub_815B92C - str r1, [r0] - b _0815B578 - .align 2, 0 -_0815B548: .4byte gTasks+0x8 -_0815B54C: .4byte gMain -_0815B550: .4byte gUnknown_203F450 -_0815B554: .4byte 0x00004006 -_0815B558: .4byte sub_815B92C -_0815B55C: - ldr r1, _0815B580 @ =gUnknown_8479548 - ldr r0, _0815B584 @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - movs r3, 0x6 - ldrsh r0, [r5, r3] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 -_0815B578: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815B580: .4byte gUnknown_8479548 -_0815B584: .4byte gUnknown_203F444 - thumb_func_end sub_815B4EC - - thumb_func_start sub_815B588 -sub_815B588: @ 815B588 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0815B5B4 @ =gTasks+0x8 - adds r4, r0 - ldr r1, _0815B5B8 @ =gUnknown_8479560 - ldr r0, _0815B5BC @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl sub_815B1DC - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B5B4: .4byte gTasks+0x8 -_0815B5B8: .4byte gUnknown_8479560 -_0815B5BC: .4byte gUnknown_203F444 - thumb_func_end sub_815B588 - - thumb_func_start sub_815B5C0 -sub_815B5C0: @ 815B5C0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0815B5EC @ =gTasks+0x8 - adds r4, r0 - ldr r1, _0815B5F0 @ =gUnknown_8479578 - ldr r0, _0815B5F4 @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl sub_815B1DC - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B5EC: .4byte gTasks+0x8 -_0815B5F0: .4byte gUnknown_8479578 -_0815B5F4: .4byte gUnknown_203F444 - thumb_func_end sub_815B5C0 - - thumb_func_start sub_815B5F8 -sub_815B5F8: @ 815B5F8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B620 @ =gTasks+0x8 - adds r4, r1, r0 - movs r0, 0 - bl sub_80BF518 - lsls r0, 16 - cmp r0, 0 - bne _0815B61A - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B61A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B620: .4byte gTasks+0x8 - thumb_func_end sub_815B5F8 - - thumb_func_start sub_815B624 -sub_815B624: @ 815B624 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B65C @ =gTasks+0x8 - adds r4, r1, r0 - ldr r0, _0815B660 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0815B656 - movs r0, 0 - movs r1, 0xCC - bl FillWindowPixelBuffer - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B656: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B65C: .4byte gTasks+0x8 -_0815B660: .4byte gMain - thumb_func_end sub_815B624 - - thumb_func_start sub_815B664 -sub_815B664: @ 815B664 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0815B6A0 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B6A4 @ =gSprites - adds r0, r1 - movs r1, 0x5 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r4, 0x4] - strh r0, [r4, 0x8] - movs r0, 0x1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B6A0: .4byte gTasks+0x8 -_0815B6A4: .4byte gSprites - thumb_func_end sub_815B664 - - thumb_func_start sub_815B6A8 -sub_815B6A8: @ 815B6A8 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0815B730 @ =gTasks+0x8 - adds r4, r0, r1 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B734 @ =gSprites - adds r6, r0, r1 - movs r1, 0x80 - lsls r1, 1 - movs r0, 0x3 - movs r2, 0x2 - bl ChangeBgY - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - movs r3, 0xF - ands r3, r0 - cmp r3, 0 - bne _0815B702 - ldr r0, _0815B738 @ =gUnknown_203F450 - ldr r1, [r0] - ldr r2, _0815B73C @ =0x00004005 - adds r1, r2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - movs r0, 0x24 - ldrsh r1, [r6, r0] - movs r0, 0x26 - ldrsh r2, [r6, r0] - str r3, [sp] - adds r0, r5, 0 - movs r3, 0 - bl sub_815BAA0 -_0815B702: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x30 - bne _0815B726 - movs r1, 0 - strh r1, [r4, 0x4] - movs r2, 0x1 - negs r2, r2 - adds r0, r2, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - adds r0, r6, 0 - movs r1, 0x7 - bl StartSpriteAnim - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B726: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815B730: .4byte gTasks+0x8 -_0815B734: .4byte gSprites -_0815B738: .4byte gUnknown_203F450 -_0815B73C: .4byte 0x00004005 - thumb_func_end sub_815B6A8 - - thumb_func_start sub_815B740 -sub_815B740: @ 815B740 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0815B7D4 @ =gTasks+0x8 - adds r4, r0, r1 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B7D8 @ =gSprites - adds r6, r0, r1 - movs r1, 0x80 - lsls r1, 1 - movs r0, 0x3 - movs r2, 0x1 - bl ChangeBgX - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - movs r2, 0xF - ands r0, r2 - cmp r0, 0 - bne _0815B78A - ldr r0, _0815B7DC @ =gUnknown_203F450 - ldr r1, [r0] - ldr r3, _0815B7E0 @ =0x00004004 - adds r1, r3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0815B78A: - movs r1, 0x4 - ldrsh r0, [r4, r1] - adds r0, 0x8 - ands r0, r2 - cmp r0, 0 - bne _0815B7AC - ldrh r1, [r6, 0x24] - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - movs r3, 0x26 - ldrsh r2, [r6, r3] - str r0, [sp] - adds r0, r5, 0 - movs r3, 0 - bl sub_815BAA0 -_0815B7AC: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x30 - bne _0815B7CA - movs r0, 0 - strh r0, [r4, 0x4] - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - adds r0, r6, 0 - movs r1, 0x3 - bl StartSpriteAnim - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B7CA: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815B7D4: .4byte gTasks+0x8 -_0815B7D8: .4byte gSprites -_0815B7DC: .4byte gUnknown_203F450 -_0815B7E0: .4byte 0x00004004 - thumb_func_end sub_815B740 - - thumb_func_start sub_815B7E4 -sub_815B7E4: @ 815B7E4 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - ldr r0, _0815B838 @ =gTasks+0x8 - adds r5, r0 - movs r1, 0x2 - ldrsh r0, [r5, r1] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0815B83C @ =gSprites - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x6 - bl StartSpriteAnim - ldrh r0, [r5, 0x6] - adds r0, 0x1 - strh r0, [r5, 0x6] - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - movs r0, 0x24 - ldrsh r1, [r4, r0] - movs r0, 0x26 - ldrsh r2, [r4, r0] - movs r0, 0 - str r0, [sp] - adds r0, r6, 0 - movs r3, 0 - bl sub_815BAA0 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815B838: .4byte gTasks+0x8 -_0815B83C: .4byte gSprites - thumb_func_end sub_815B7E4 - - thumb_func_start sub_815B840 -sub_815B840: @ 815B840 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _0815B890 @ =gTasks+0x8 - adds r5, r0, r1 - movs r0, 0x2 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B894 @ =gSprites - adds r4, r0, r1 - ldrh r1, [r4, 0x24] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _0815B87E - subs r1, 0x8 - lsls r1, 16 - asrs r1, 16 - movs r6, 0x26 - ldrsh r2, [r4, r6] - str r0, [sp] - adds r0, r3, 0 - movs r3, 0 - bl sub_815BAA0 -_0815B87E: - ldrh r1, [r4, 0x24] - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _0815B898 - ldrh r0, [r5, 0x6] - adds r0, 0x1 - strh r0, [r5, 0x6] - b _0815B89C - .align 2, 0 -_0815B890: .4byte gTasks+0x8 -_0815B894: .4byte gSprites -_0815B898: - subs r0, r1, 0x1 - strh r0, [r4, 0x24] -_0815B89C: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_815B840 - - thumb_func_start sub_815B8A4 -sub_815B8A4: @ 815B8A4 - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B900 @ =gTasks+0x8 - adds r4, r1, r0 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0815B8DC - ldr r1, _0815B904 @ =gUnknown_8479590 - movs r0, 0x8 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x14 - movs r3, 0xA - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram -_0815B8DC: - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _0815B8F8 - bl sub_815B908 - movs r0, 0 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B8F8: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B900: .4byte gTasks+0x8 -_0815B904: .4byte gUnknown_8479590 - thumb_func_end sub_815B8A4 - - thumb_func_start sub_815B908 -sub_815B908: @ 815B908 - push {lr} - sub sp, 0x8 - movs r0, 0x8 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x14 - movs r3, 0xA - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_815B908 - - thumb_func_start sub_815B92C -sub_815B92C: @ 815B92C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _0815B9DC @ =gTasks+0x8 - adds r5, r6, r7 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0815B94C - movs r0, 0xAD - lsls r0, 1 - bl PlayNewMapMusic -_0815B94C: - bl sub_815B0CC - ldrh r0, [r5, 0x4] - adds r0, 0x1 - strh r0, [r5, 0x4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _0815B9D4 - movs r4, 0 - strh r4, [r5, 0x4] - strh r4, [r5, 0x6] - bl sub_815AEE8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0815B9E0 @ =sub_815B2C0 - str r1, [r0] - movs r0, 0 - bl PutWindowTilemap - bl sub_815AF5C - bl sub_815B094 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x3 - movs r2, 0x2 - bl ChangeBgX - movs r1, 0xA0 - lsls r1, 6 - movs r0, 0x3 - movs r2, 0x1 - bl ChangeBgY - ldr r2, _0815B9E4 @ =gUnknown_203F450 - ldr r0, [r2] - ldr r1, _0815B9E8 @ =0x00004004 - adds r0, r1 - strb r4, [r0] - ldr r0, [r2] - adds r1, 0x1 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _0815B9EC @ =0x00004006 - adds r0, r1 - strb r4, [r0] -_0815B9D4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815B9DC: .4byte gTasks+0x8 -_0815B9E0: .4byte sub_815B2C0 -_0815B9E4: .4byte gUnknown_203F450 -_0815B9E8: .4byte 0x00004004 -_0815B9EC: .4byte 0x00004006 - thumb_func_end sub_815B92C - - thumb_func_start sub_815B9F0 -sub_815B9F0: @ 815B9F0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - ldr r0, _0815BA0C @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - cmp r0, 0 - blt _0815BA22 - cmp r0, 0x3 - bgt _0815BA10 - adds r0, r1, 0 - bl sub_815BC90 - b _0815BA22 - .align 2, 0 -_0815BA0C: .4byte gUnknown_203F444 -_0815BA10: - cmp r0, 0x5 - bgt _0815BA22 - ldr r0, _0815BA28 @ =gUnknown_203F450 - ldr r1, [r0] - ldr r0, _0815BA2C @ =sub_815BA30 - str r0, [r1] - adds r0, r2, 0 - bl sub_815B23C -_0815BA22: - pop {r0} - bx r0 - .align 2, 0 -_0815BA28: .4byte gUnknown_203F450 -_0815BA2C: .4byte sub_815BA30 - thumb_func_end sub_815B9F0 - - thumb_func_start sub_815BA30 -sub_815BA30: @ 815BA30 - push {lr} - ldr r0, _0815BA44 @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - cmp r0, 0x4 - bne _0815BA48 - movs r0, 0xA - bl sub_810B108 - b _0815BA4E - .align 2, 0 -_0815BA44: .4byte gUnknown_203F444 -_0815BA48: - movs r0, 0x9 - bl sub_810B108 -_0815BA4E: - pop {r0} - bx r0 - thumb_func_end sub_815BA30 - - thumb_func_start sub_815BA54 -sub_815BA54: @ 815BA54 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r2, r1, 3 - ldr r4, _0815BA8C @ =gTasks+0x8 - adds r3, r2, r4 - ldr r0, _0815BA90 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0815BA86 - ldr r1, _0815BA94 @ =gUnknown_8479390 - ldr r0, _0815BA98 @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r3, 0x6] - adds r0, r4, 0 - subs r0, 0x8 - adds r0, r2, r0 - ldr r1, _0815BA9C @ =sub_815B4EC - str r1, [r0] -_0815BA86: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815BA8C: .4byte gTasks+0x8 -_0815BA90: .4byte gPaletteFade -_0815BA94: .4byte gUnknown_8479390 -_0815BA98: .4byte gUnknown_203F444 -_0815BA9C: .4byte sub_815B4EC - thumb_func_end sub_815BA54 - - thumb_func_start sub_815BAA0 -sub_815BAA0: @ 815BAA0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r1, r2, 16 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - ldr r0, _0815BB34 @ =gUnknown_203F450 - ldr r0, [r0] - ldr r2, _0815BB38 @ =0x00004006 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0815BB5C - lsls r0, r6, 16 - ldr r2, _0815BB3C @ =0xfff00000 - adds r0, r2 - asrs r0, 16 - lsls r1, 16 - asrs r5, r1, 16 - adds r1, r5, 0 - bl sub_815BC40 - lsls r0, 24 - cmp r0, 0 - beq _0815BB5C - ldr r0, _0815BB40 @ =gUnknown_83A0010 - ldr r0, [r0, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r7, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0815BB44 @ =gSprites - adds r4, r1, r0 - strh r6, [r4, 0x24] - adds r0, r5, 0 - adds r0, 0x8 - strh r0, [r4, 0x26] - ldr r0, _0815BB48 @ =sub_815BB6C - str r0, [r4, 0x1C] - mov r0, r9 - strh r0, [r4, 0x2E] - mov r2, r8 - cmp r2, 0x1 - bne _0815BB4C - adds r0, r4, 0 - movs r1, 0x4 - bl SeekSpriteAnim - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x8 - orrs r1, r0 - strb r1, [r4, 0x5] - b _0815BB5C - .align 2, 0 -_0815BB34: .4byte gUnknown_203F450 -_0815BB38: .4byte 0x00004006 -_0815BB3C: .4byte 0xfff00000 -_0815BB40: .4byte gUnknown_83A0010 -_0815BB44: .4byte gSprites -_0815BB48: .4byte sub_815BB6C -_0815BB4C: - ldr r1, _0815BB68 @ =gUnknown_84795B8 - adds r0, r4, 0 - bl SetSubspriteTables - adds r1, r4, 0 - adds r1, 0x42 - movs r0, 0x40 - strb r0, [r1] -_0815BB5C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815BB68: .4byte gUnknown_84795B8 - thumb_func_end sub_815BAA0 - - thumb_func_start sub_815BB6C -sub_815BB6C: @ 815BB6C - push {r4,r5,lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _0815BBA4 @ =gTasks+0x8 - adds r4, r0, r1 - movs r2, 0x2 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815BBA8 @ =gSprites - adds r5, r0, r1 - ldr r0, _0815BBAC @ =gUnknown_203F450 - ldr r0, [r0] - ldr r1, _0815BBB0 @ =0x00004006 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0815BBB4 - adds r0, r3, 0 - bl DestroySprite - b _0815BC3A - .align 2, 0 -_0815BBA4: .4byte gTasks+0x8 -_0815BBA8: .4byte gSprites -_0815BBAC: .4byte gUnknown_203F450 -_0815BBB0: .4byte 0x00004006 -_0815BBB4: - adds r0, r3, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0 - bne _0815BBD2 - adds r2, r3, 0 - adds r2, 0x42 - ldrb r0, [r2] - movs r1, 0x40 - negs r1, r1 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strb r1, [r2] - b _0815BBE0 -_0815BBD2: - adds r2, r3, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x40 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0815BBE0: - ldrh r0, [r4, 0x8] - ldrh r2, [r3, 0x24] - adds r0, r2 - strh r0, [r3, 0x24] - ldrh r0, [r4, 0xA] - ldrh r1, [r3, 0x26] - adds r0, r1 - strh r0, [r3, 0x26] - adds r0, r3, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0815BC3A - adds r1, r3, 0 - adds r1, 0x43 - movs r0, 0 - strb r0, [r1] - ldrh r1, [r3, 0x24] - ldrh r0, [r5, 0x24] - subs r1, r0 - ldrh r0, [r3, 0x26] - ldrh r2, [r5, 0x26] - subs r0, r2 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - movs r2, 0xF0 - lsls r2, 12 - adds r1, r2 - lsrs r1, 16 - cmp r1, 0x1E - bhi _0815BC34 - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - ble _0815BC34 - cmp r1, 0x17 - ble _0815BC3A -_0815BC34: - adds r0, r3, 0 - bl DestroySprite -_0815BC3A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_815BB6C - - thumb_func_start sub_815BC40 -sub_815BC40: @ 815BC40 - push {r4,r5,lr} - lsls r1, 16 - lsrs r1, 16 - lsls r4, r0, 16 - cmp r4, 0 - blt _0815BC52 - lsls r1, 16 - cmp r1, 0 - bge _0815BC56 -_0815BC52: - movs r0, 0 - b _0815BC78 -_0815BC56: - ldr r3, _0815BC80 @ =gUnknown_84795C8 - ldr r0, _0815BC84 @ =gUnknown_203F450 - ldr r2, [r0] - ldr r5, _0815BC88 @ =0x00004005 - adds r0, r2, r5 - asrs r1, 20 - ldrb r0, [r0] - adds r1, r0 - lsls r1, 4 - ldr r0, _0815BC8C @ =0x00004004 - adds r2, r0 - asrs r0, r4, 20 - ldrb r2, [r2] - adds r0, r2 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] -_0815BC78: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0815BC80: .4byte gUnknown_84795C8 -_0815BC84: .4byte gUnknown_203F450 -_0815BC88: .4byte 0x00004005 -_0815BC8C: .4byte 0x00004004 - thumb_func_end sub_815BC40 - - thumb_func_start sub_815BC90 -sub_815BC90: @ 815BC90 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0815BCCC @ =gTasks+0x8 - adds r5, r0, r1 - bl sub_815B220 - ldr r1, _0815BCD0 @ =gSpecialVar_0x8004 - ldr r4, _0815BCD4 @ =gUnknown_203F444 - ldrb r0, [r4, 0x5] - strh r0, [r1] - ldr r1, _0815BCD8 @ =gMain - ldr r0, _0815BCDC @ =sub_815BD58 - str r0, [r1, 0x8] - bl SavePlayerParty - bl sub_8159F40 - movs r0, 0 - bl PlayMapChosenOrBattleBGM - ldrb r0, [r4, 0x5] - cmp r0, 0 - bne _0815BCE0 - movs r0, 0x9 - b _0815BCE2 - .align 2, 0 -_0815BCCC: .4byte gTasks+0x8 -_0815BCD0: .4byte gSpecialVar_0x8004 -_0815BCD4: .4byte gUnknown_203F444 -_0815BCD8: .4byte gMain -_0815BCDC: .4byte sub_815BD58 -_0815BCE0: - movs r0, 0x8 -_0815BCE2: - strh r0, [r5, 0xC] - movs r0, 0 - strh r0, [r5, 0xE] - ldr r1, _0815BCFC @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0815BD00 @ =sub_815BD04 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815BCFC: .4byte gTasks -_0815BD00: .4byte sub_815BD04 - thumb_func_end sub_815BC90 - - thumb_func_start sub_815BD04 -sub_815BD04: @ 815BD04 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0815BD24 @ =gTasks+0x8 - adds r4, r0, r1 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0815BD28 - cmp r0, 0x1 - beq _0815BD36 - b _0815BD4C - .align 2, 0 -_0815BD24: .4byte gTasks+0x8 -_0815BD28: - ldrb r0, [r4, 0xC] - bl sub_80D08B8 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - b _0815BD4C -_0815BD36: - bl sub_80D08F8 - lsls r0, 24 - cmp r0, 0 - beq _0815BD4C - ldr r0, _0815BD54 @ =sub_800FD9C - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_0815BD4C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815BD54: .4byte sub_800FD9C - thumb_func_end sub_815BD04 - - thumb_func_start sub_815BD58 -sub_815BD58: @ 815BD58 - push {lr} - bl LoadPlayerParty - ldr r0, _0815BD6C @ =gUnknown_2023E8A - ldrb r0, [r0] - cmp r0, 0x3 - bne _0815BD70 - bl sub_815AC20 - b _0815BD78 - .align 2, 0 -_0815BD6C: .4byte gUnknown_2023E8A -_0815BD70: - movs r0, 0x88 - lsls r0, 1 - bl PlayNewMapMusic -_0815BD78: - bl sub_815ABFC - pop {r0} - bx r0 - thumb_func_end sub_815BD58 - - thumb_func_start sub_815BD80 -sub_815BD80: @ 815BD80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x10] - ldr r1, _0815BE1C @ =gUnknown_82E55CC - mov r8, r1 - movs r0, 0x80 - lsls r0, 4 - bl AllocZeroed - adds r6, r0, 0 - movs r0, 0x80 - lsls r0, 8 - bl AllocZeroed - str r0, [sp, 0x8] - movs r0, 0x10 - bl Alloc - str r0, [sp, 0xC] - movs r1, 0xFF - movs r2, 0x10 - bl memset - mov r2, r8 - ldr r0, [r2, 0x10] - movs r2, 0xA0 - lsls r2, 2 - ldr r1, [sp, 0x8] - bl sub_815BF48 - mov r3, r8 - ldr r0, [r3, 0x14] - ldr r2, [sp, 0x8] - movs r3, 0xA0 - lsls r3, 7 - adds r1, r2, r3 - movs r2, 0xC0 - lsls r2, 1 - bl sub_815BF48 - movs r4, 0 -_0815BDDE: - movs r2, 0 - adds r0, r4, 0x6 - str r0, [sp, 0x18] - lsls r1, r4, 4 - mov r10, r1 - lsls r3, r4, 6 - mov r9, r3 - adds r4, 0x1 - str r4, [sp, 0x14] -_0815BDF0: - mov r1, r8 - ldr r0, [r1] - ldr r3, [sp, 0x18] - muls r0, r3 - ldr r1, [r1, 0xC] - adds r0, r2, r0 - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0, 0x10] - ldr r3, _0815BE20 @ =0x000003ff - adds r0, r3, 0 - adds r4, r0, 0 - ands r4, r1 - movs r3, 0 - mov r0, r10 - adds r1, r0, r2 - lsls r5, r2, 1 - adds r7, r2, 0x1 - cmp r3, r1 - bge _0815BE3C - ldrh r0, [r6] - b _0815BE34 - .align 2, 0 -_0815BE1C: .4byte gUnknown_82E55CC -_0815BE20: .4byte 0x000003ff -_0815BE24: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bge _0815BE3C - lsls r0, r3, 1 - adds r0, r6 - ldrh r0, [r0] -_0815BE34: - cmp r0, 0 - beq _0815BE46 - cmp r0, r4 - bne _0815BE24 -_0815BE3C: - lsls r0, r3, 1 - adds r0, r6 - ldrh r0, [r0] - cmp r0, 0 - bne _0815BE56 -_0815BE46: - lsls r0, r3, 1 - adds r0, r6 - strh r4, [r0] - ldr r0, [sp, 0x10] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] -_0815BE56: - mov r2, r9 - adds r1, r2, r5 - lsls r1, 1 - ldr r0, [sp, 0x4] - adds r1, r0, r1 - str r3, [sp] - mov r0, r8 - ldr r2, [sp, 0xC] - adds r3, r4, 0 - bl sub_815BF70 - lsls r0, r7, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _0815BDF0 - ldr r1, [sp, 0x14] - lsls r0, r1, 16 - lsrs r4, r0, 16 - cmp r4, 0x8 - bls _0815BDDE - ldr r2, [sp, 0x10] - lsls r0, r2, 7 - bl Alloc - adds r7, r0, 0 - movs r0, 0x80 - bl Alloc - adds r5, r0, 0 - movs r4, 0 - ldr r3, [sp, 0x10] - lsls r3, 23 - mov r9, r3 - ldr r0, [sp, 0x10] - cmp r4, r0 - bcs _0815BF00 - ldr r1, _0815BECC @ =0x0000027f - mov r10, r1 -_0815BEA2: - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x80 - bl memset - lsls r0, r4, 1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, r10 - bhi _0815BED0 - mov r2, r8 - ldr r0, [r2, 0x10] - ldrh r1, [r1] - lsls r1, 4 - ldr r0, [r0, 0xC] - adds r0, r1 - adds r1, r5, 0 - ldr r2, [sp, 0x8] - bl sub_815BFF0 - b _0815BEE8 - .align 2, 0 -_0815BECC: .4byte 0x0000027f -_0815BED0: - mov r3, r8 - ldr r0, [r3, 0x14] - ldrh r1, [r1] - ldr r2, _0815BF44 @ =0xfffffd80 - adds r1, r2 - lsls r1, 4 - ldr r0, [r0, 0xC] - adds r0, r1 - adds r1, r5, 0 - ldr r2, [sp, 0x8] - bl sub_815BFF0 -_0815BEE8: - lsls r1, r4, 7 - adds r1, r7, r1 - adds r0, r5, 0 - movs r2, 0x20 - bl CpuFastSet - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r3, [sp, 0x10] - cmp r4, r3 - bcc _0815BEA2 -_0815BF00: - mov r0, r9 - lsrs r2, r0, 16 - movs r0, 0x3 - adds r1, r7, 0 - movs r3, 0 - bl LoadBgTiles - mov r0, r8 - ldr r1, [sp, 0xC] - bl sub_815C230 - adds r0, r5, 0 - bl Free - adds r0, r7, 0 - bl Free - ldr r0, [sp, 0xC] - bl Free - ldr r0, [sp, 0x8] - bl Free - adds r0, r6, 0 - bl Free - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815BF44: .4byte 0xfffffd80 - thumb_func_end sub_815BD80 - - thumb_func_start sub_815BF48 -sub_815BF48: @ 815BF48 - push {lr} - adds r3, r0, 0 - lsls r2, 16 - lsrs r2, 16 - cmp r3, 0 - beq _0815BF6A - ldrb r0, [r3] - cmp r0, 0 - bne _0815BF64 - ldr r0, [r3, 0x4] - lsls r2, 3 - bl CpuFastSet - b _0815BF6A -_0815BF64: - ldr r0, [r3, 0x4] - bl LZDecompressWram -_0815BF6A: - pop {r0} - bx r0 - thumb_func_end sub_815BF48 - - thumb_func_start sub_815BF70 -sub_815BF70: @ 815BF70 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - adds r6, r2, 0 - ldr r0, [sp, 0x14] - lsls r3, 16 - lsrs r1, r3, 16 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _0815BF8C @ =0x0000027f - cmp r1, r0 - bhi _0815BF90 - ldr r0, [r5, 0x10] - b _0815BF96 - .align 2, 0 -_0815BF8C: .4byte 0x0000027f -_0815BF90: - ldr r0, [r5, 0x14] - ldr r2, _0815BFEC @ =0xfffffd80 - adds r1, r2 -_0815BF96: - lsls r1, 4 - ldr r0, [r0, 0xC] - adds r5, r0, r1 - ldrh r1, [r5] - adds r0, r6, 0 - bl sub_815C1F0 - lsls r0, 12 - lsls r4, 2 - adds r0, r4 - strh r0, [r7] - ldrh r1, [r5, 0x2] - adds r0, r6, 0 - bl sub_815C1F0 - lsls r0, 12 - adds r0, r4 - adds r0, 0x1 - strh r0, [r7, 0x2] - ldrh r1, [r5, 0x4] - adds r0, r6, 0 - bl sub_815C1F0 - adds r1, r7, 0 - adds r1, 0x40 - lsls r0, 12 - adds r0, r4 - adds r0, 0x2 - strh r0, [r1] - ldrh r1, [r5, 0x6] - adds r0, r6, 0 - bl sub_815C1F0 - adds r1, r7, 0 - adds r1, 0x42 - lsls r0, 12 - adds r0, r4 - adds r0, 0x3 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815BFEC: .4byte 0xfffffd80 - thumb_func_end sub_815BF70 - - thumb_func_start sub_815BFF0 -sub_815BFF0: @ 815BFF0 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - mov r8, r0 - mov r9, r1 - adds r5, r2, 0 - ldrh r2, [r0] - ldr r4, _0815C0D0 @ =0x000003ff - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - movs r6, 0x3 - ands r2, r6 - mov r0, r9 - bl sub_815C0D4 - mov r0, r8 - ldrh r2, [r0, 0x8] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r9 - bl sub_815C0D4 - movs r0, 0x20 - add r0, r9 - mov r10, r0 - mov r0, r8 - ldrh r2, [r0, 0x2] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r10 - bl sub_815C0D4 - mov r0, r8 - ldrh r2, [r0, 0xA] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r10 - bl sub_815C0D4 - movs r0, 0x40 - add r0, r9 - mov r10, r0 - mov r0, r8 - ldrh r2, [r0, 0x4] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r10 - bl sub_815C0D4 - mov r0, r8 - ldrh r2, [r0, 0xC] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r10 - bl sub_815C0D4 - movs r0, 0x60 - add r9, r0 - mov r0, r8 - ldrh r2, [r0, 0x6] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r9 - bl sub_815C0D4 - mov r0, r8 - ldrh r2, [r0, 0xE] - ands r4, r2 - lsls r4, 5 - adds r5, r4 - lsrs r2, 10 - ands r2, r6 - mov r0, r9 - adds r1, r5, 0 - bl sub_815C0D4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815C0D0: .4byte 0x000003ff - thumb_func_end sub_815BFF0 - - thumb_func_start sub_815C0D4 -sub_815C0D4: @ 815C0D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r0 - adds r4, r1, 0 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - movs r0, 0x20 - bl AllocZeroed - adds r6, r0, 0 - movs r0, 0x20 - bl AllocZeroed - str r0, [sp] - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x8 - bl CpuFastSet - movs r0, 0x1 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - beq _0815C15A - movs r5, 0 - movs r7, 0xF - mov r12, r7 - movs r0, 0xF0 - mov r8, r0 -_0815C118: - movs r3, 0 - lsls r4, r5, 2 -_0815C11C: - subs r0, r3, 0x3 - subs r0, r4, r0 - adds r0, r6, r0 - ldrb r1, [r0] - adds r2, r4, r3 - ldr r7, [sp] - adds r2, r7, r2 - adds r0, r1, 0 - mov r7, r12 - ands r0, r7 - lsls r0, 4 - mov r7, r8 - ands r1, r7 - lsrs r1, 4 - adds r0, r1 - strb r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0815C11C - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0815C118 - ldr r0, [sp] - adds r1, r6, 0 - movs r2, 0x8 - bl CpuFastSet -_0815C15A: - movs r0, 0x2 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - beq _0815C18E - movs r5, 0 -_0815C166: - lsls r0, r5, 2 - ldr r7, [sp] - adds r0, r7 - movs r1, 0x7 - subs r1, r5 - lsls r1, 2 - adds r1, r6 - movs r2, 0x4 - bl memcpy - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0815C166 - ldr r0, [sp] - adds r1, r6, 0 - movs r2, 0x8 - bl CpuFastSet -_0815C18E: - movs r5, 0 - movs r0, 0xF0 - mov r8, r0 - movs r1, 0xF - mov r12, r1 -_0815C198: - adds r4, r6, r5 - ldrb r0, [r4] - mov r3, r8 - ands r3, r0 - cmp r3, 0 - beq _0815C1B2 - mov r7, r9 - adds r2, r7, r5 - ldrb r1, [r2] - mov r0, r12 - ands r0, r1 - adds r0, r3 - strb r0, [r2] -_0815C1B2: - ldrb r0, [r4] - mov r3, r12 - ands r3, r0 - cmp r3, 0 - beq _0815C1CA - mov r0, r9 - adds r2, r0, r5 - ldrb r1, [r2] - mov r0, r8 - ands r0, r1 - adds r0, r3 - strb r0, [r2] -_0815C1CA: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1F - bls _0815C198 - ldr r0, [sp] - bl Free - adds r0, r6, 0 - bl Free - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815C0D4 - - thumb_func_start sub_815C1F0 -sub_815C1F0: @ 815C1F0 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 28 - movs r3, 0 - ldrb r0, [r4] - cmp r0, r1 - beq _0815C220 - cmp r0, 0xFF - bne _0815C208 - strb r1, [r4] - b _0815C220 -_0815C208: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bhi _0815C220 - adds r2, r4, r3 - ldrb r0, [r2] - cmp r0, r1 - beq _0815C220 - cmp r0, 0xFF - bne _0815C208 - strb r1, [r2] -_0815C220: - movs r0, 0xF - subs r0, r3 - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_815C1F0 - - thumb_func_start sub_815C230 -sub_815C230: @ 815C230 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 - ldrb r0, [r5] - cmp r0, 0xFF - beq _0815C274 -_0815C23E: - adds r1, r5, r4 - ldrb r0, [r1] - cmp r0, 0x6 - bls _0815C24A - ldr r0, [r6, 0x14] - b _0815C24C -_0815C24A: - ldr r0, [r6, 0x10] -_0815C24C: - ldrb r1, [r1] - lsls r1, 5 - ldr r0, [r0, 0x8] - adds r0, r1 - movs r1, 0xF - subs r1, r4 - lsls r1, 20 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bhi _0815C274 - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0815C23E -_0815C274: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_815C230 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/text_window.s b/asm/text_window.s deleted file mode 100644 index df5c80739..000000000 --- a/asm/text_window.s +++ /dev/null @@ -1,948 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_814FD04 -sub_814FD04: @ 814FD04 - push {r4,lr} - adds r3, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0814FD34 @ =gUnknown_84566A8 - movs r2, 0xA0 - lsls r2, 2 - bl LoadBgTiles - movs r0, 0x2 - bl stdpal_get - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FD34: .4byte gUnknown_84566A8 - thumb_func_end sub_814FD04 - - thumb_func_start sub_814FD38 -sub_814FD38: @ 814FD38 - push {r4,lr} - adds r3, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0814FD68 @ =gUnknown_841F1C8 - movs r2, 0xA0 - lsls r2, 2 - bl LoadBgTiles - movs r0, 0 - bl stdpal_get - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FD68: .4byte gUnknown_841F1C8 - thumb_func_end sub_814FD38 - - thumb_func_start sub_814FD6C -sub_814FD6C: @ 814FD6C - push {r4,lr} - adds r3, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0814FD9C @ =gUnknown_8470B0C - movs r2, 0x98 - lsls r2, 2 - bl LoadBgTiles - movs r0, 0x1 - bl stdpal_get - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FD9C: .4byte gUnknown_8470B0C - thumb_func_end sub_814FD6C - - thumb_func_start sub_814FDA0 -sub_814FDA0: @ 814FDA0 - push {r4,lr} - adds r3, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0814FDD0 @ =gUnknown_8471A4C - movs r2, 0x90 - lsls r2, 1 - bl LoadBgTiles - movs r0, 0x3 - bl stdpal_get - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FDD0: .4byte gUnknown_8471A4C - thumb_func_end sub_814FDA0 - - thumb_func_start sub_814FDD4 -sub_814FDD4: @ 814FDD4 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - ldr r1, _0814FDF0 @ =gUnknown_8471B6C - movs r2, 0xA0 - lsls r2, 2 - bl LoadBgTiles - pop {r0} - bx r0 - .align 2, 0 -_0814FDF0: .4byte gUnknown_8471B6C - thumb_func_end sub_814FDD4 - - thumb_func_start sub_814FDF4 -sub_814FDF4: @ 814FDF4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsls r6, 16 - lsrs r6, 16 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r5, _0814FE3C @ =gUnknown_8471E8C - lsrs r4, 21 - adds r1, r4, r5 - ldr r1, [r1] - movs r2, 0x90 - lsls r2, 1 - adds r3, r6, 0 - bl LoadBgTiles - adds r5, 0x4 - adds r4, r5 - ldr r0, [r4] - mov r1, r8 - movs r2, 0x20 - bl LoadPalette - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0814FE3C: .4byte gUnknown_8471E8C - thumb_func_end sub_814FDF4 - - thumb_func_start sub_814FE40 -sub_814FE40: @ 814FE40 - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _0814FE68 @ =gSaveBlock2Ptr - ldr r1, [r1] - ldrb r1, [r1, 0x14] - lsrs r1, 3 - adds r2, r4, 0 - bl sub_814FFC4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FE68: .4byte gSaveBlock2Ptr - thumb_func_end sub_814FE40 - - thumb_func_start sub_814FE6C -sub_814FE6C: @ 814FE6C - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FEA8 @ =gUnknown_84566A8 - movs r2, 0xA0 - lsls r2, 2 - adds r3, r4, 0 - bl LoadBgTiles - movs r0, 0x2 - bl stdpal_get - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FEA8: .4byte gUnknown_84566A8 - thumb_func_end sub_814FE6C - - thumb_func_start sub_814FEAC -sub_814FEAC: @ 814FEAC - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FEE8 @ =gUnknown_841F1C8 - movs r2, 0xA0 - lsls r2, 2 - adds r3, r4, 0 - bl LoadBgTiles - movs r0, 0 - bl stdpal_get - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FEE8: .4byte gUnknown_841F1C8 - thumb_func_end sub_814FEAC - - thumb_func_start sub_814FEEC -sub_814FEEC: @ 814FEEC - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FF28 @ =gUnknown_8470B0C - movs r2, 0x98 - lsls r2, 2 - adds r3, r4, 0 - bl LoadBgTiles - movs r0, 0x1 - bl stdpal_get - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FF28: .4byte gUnknown_8470B0C - thumb_func_end sub_814FEEC - - thumb_func_start sub_814FF2C -sub_814FF2C: @ 814FF2C - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FF68 @ =gUnknown_8471A4C - movs r2, 0x90 - lsls r2, 1 - adds r3, r4, 0 - bl LoadBgTiles - movs r0, 0x3 - bl stdpal_get - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FF68: .4byte gUnknown_8471A4C - thumb_func_end sub_814FF2C - - thumb_func_start sub_814FF6C -sub_814FF6C: @ 814FF6C - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FF94 @ =gUnknown_8471A4C - movs r2, 0x90 - lsls r2, 1 - adds r3, r4, 0 - bl LoadBgTiles - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FF94: .4byte gUnknown_8471A4C - thumb_func_end sub_814FF6C - - thumb_func_start sub_814FF98 -sub_814FF98: @ 814FF98 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FFC0 @ =gUnknown_8471B6C - movs r2, 0xA0 - lsls r2, 2 - adds r3, r4, 0 - bl LoadBgTiles - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FFC0: .4byte gUnknown_8471B6C - thumb_func_end sub_814FF98 - - thumb_func_start sub_814FFC4 -sub_814FFC4: @ 814FFC4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 16 - lsrs r6, 16 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08150018 @ =gUnknown_8471E8C - lsls r4, 3 - adds r1, r4, r5 - ldr r1, [r1] - movs r2, 0x90 - lsls r2, 1 - adds r3, r6, 0 - bl LoadBgTiles - adds r5, 0x4 - adds r4, r5 - ldr r0, [r4] - mov r1, r8 - movs r2, 0x20 - bl LoadPalette - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08150018: .4byte gUnknown_8471E8C - thumb_func_end sub_814FFC4 - - thumb_func_start sub_815001C -sub_815001C: @ 815001C - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _08150044 @ =gSaveBlock2Ptr - ldr r1, [r1] - ldrb r1, [r1, 0x14] - lsrs r1, 3 - adds r2, r4, 0 - bl sub_814FFC4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08150044: .4byte gSaveBlock2Ptr - thumb_func_end sub_815001C - - thumb_func_start sub_8150048 -sub_8150048: @ 8150048 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r5, 16 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl GetWindowAttribute - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x2 - bl GetWindowAttribute - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - adds r0, r4, 0 - movs r1, 0x3 - bl GetWindowAttribute - mov r9, r0 - mov r2, r9 - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - adds r0, r4, 0 - movs r1, 0x4 - bl GetWindowAttribute - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - mov r0, r8 - subs r0, 0x1 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - subs r4, r6, 0x1 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - mov r10, r0 - str r0, [sp] - str r0, [sp, 0x4] - ldr r2, [sp, 0xC] - str r2, [sp, 0x8] - adds r0, r7, 0 - adds r1, r5, 0 - ldr r2, [sp, 0x14] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x1 - lsls r1, 16 - lsrs r1, 16 - mov r0, r8 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x18] - mov r2, r9 - lsls r0, r2, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - str r0, [sp] - mov r0, r10 - str r0, [sp, 0x4] - ldr r2, [sp, 0xC] - str r2, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x2 - lsls r1, 16 - lsrs r1, 16 - add r8, r9 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r2, r10 - str r2, [sp] - str r2, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x3 - lsls r1, 16 - lsrs r1, 16 - lsls r2, r6, 24 - lsrs r2, 24 - mov r9, r2 - mov r0, r10 - str r0, [sp] - ldr r2, [sp, 0x10] - lsls r4, r2, 24 - lsrs r4, 24 - str r4, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x14] - mov r3, r9 - bl FillBgTilemapBufferRect - adds r1, r5, 0x5 - lsls r1, 16 - lsrs r1, 16 - mov r2, r10 - str r2, [sp] - str r4, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - mov r3, r9 - bl FillBgTilemapBufferRect - adds r1, r5, 0x6 - lsls r1, 16 - lsrs r1, 16 - ldr r2, [sp, 0x10] - adds r6, r2 - lsls r6, 24 - lsrs r6, 24 - mov r0, r10 - str r0, [sp] - str r0, [sp, 0x4] - ldr r2, [sp, 0xC] - str r2, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x14] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x1C] - str r0, [sp] - mov r2, r10 - str r2, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - adds r5, 0x8 - lsls r5, 16 - lsrs r5, 16 - mov r2, r10 - str r2, [sp] - str r2, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - adds r1, r5, 0 - mov r2, r8 - adds r3, r6, 0 - bl FillBgTilemapBufferRect - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8150048 - - thumb_func_start sub_81501D0 -sub_81501D0: @ 81501D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r4, r0, 0 - mov r9, r1 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - adds r0, r4, 0 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl GetWindowAttribute - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x2 - bl GetWindowAttribute - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - adds r0, r4, 0 - movs r1, 0x3 - bl GetWindowAttribute - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0x4 - bl GetWindowAttribute - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - mov r0, r8 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - lsls r4, r6, 24 - lsrs r4, 24 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r1, r9 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - mov r0, r8 - adds r0, 0x1 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - subs r0, r5, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x2 - lsls r1, 16 - lsrs r1, 16 - add r8, r5 - movs r0, 0x1 - negs r0, r0 - add r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x3 - lsls r1, 16 - lsrs r1, 16 - adds r5, r6, 0x1 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - str r0, [sp] - ldr r4, [sp, 0xC] - subs r4, 0x2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x10] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x5 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1 - str r0, [sp] - str r4, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x6 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0xC] - adds r6, r0 - subs r6, 0x1 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x10] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x14] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - movs r0, 0x8 - add r9, r0 - mov r0, r9 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r1, r9 - mov r2, r8 - adds r3, r6, 0 - bl FillBgTilemapBufferRect - 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_81501D0 - - thumb_func_start rbox_fill_rectangle -rbox_fill_rectangle: @ 815036C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r0, r6, 0 - movs r1, 0 - bl GetWindowAttribute - mov r9, r0 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - adds r0, r6, 0 - movs r1, 0x1 - bl GetWindowAttribute - mov r8, r0 - mov r1, r8 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - adds r0, r6, 0 - movs r1, 0x2 - bl GetWindowAttribute - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x3 - bl GetWindowAttribute - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0x4 - bl GetWindowAttribute - movs r1, 0x1 - negs r1, r1 - add r8, r1 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - subs r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - adds r4, 0x2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - lsls r0, 24 - movs r1, 0x80 - lsls r1, 18 - adds r0, r1 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - mov r0, r9 - movs r1, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end rbox_fill_rectangle - - thumb_func_start stdpal_get -stdpal_get: @ 8150408 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _08150444 - lsls r0, 2 - ldr r1, _0815041C @ =_08150420 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815041C: .4byte _08150420 - .align 2, 0 -_08150420: - .4byte _08150434 - .4byte _08150438 - .4byte _0815043C - .4byte _08150440 - .4byte _08150444 -_08150434: - movs r0, 0 - b _08150446 -_08150438: - movs r0, 0x10 - b _08150446 -_0815043C: - movs r0, 0x20 - b _08150446 -_08150440: - movs r0, 0x30 - b _08150446 -_08150444: - movs r0, 0x40 -_08150446: - lsls r0, 1 - ldr r1, _08150450 @ =gUnknown_8471DEC - adds r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_08150450: .4byte gUnknown_8471DEC - thumb_func_end stdpal_get - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/text_window_graphics.s b/asm/text_window_graphics.s deleted file mode 100644 index 6c725a553..000000000 --- a/asm/text_window_graphics.s +++ /dev/null @@ -1,30 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8069788 -sub_8069788: @ 8069788 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _080697A0 - lsls r0, 3 - ldr r1, _0806979C @ =gUnknown_8471E8C - adds r0, r1 - b _080697A2 - .align 2, 0 -_0806979C: .4byte gUnknown_8471E8C -_080697A0: - ldr r0, _080697A8 @ =gUnknown_8471E8C -_080697A2: - pop {r1} - bx r1 - .align 2, 0 -_080697A8: .4byte gUnknown_8471E8C - thumb_func_end sub_8069788 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/tileset_anims.s b/asm/tileset_anims.s index 37280ab70..693962d39 100644 --- a/asm/tileset_anims.s +++ b/asm/tileset_anims.s @@ -132,11 +132,11 @@ sub_806FFB0: @ 806FFB0 sub_806FFBC: @ 806FFBC push {r4,lr} bl ResetTilesetAnimBuffer - ldr r2, _08070014 @ =gUnknown_3000FAE + ldr r2, _08070014 @ =sPrimaryTilesetCBCounter ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] - ldr r1, _08070018 @ =gUnknown_3000FB0 + ldr r1, _08070018 @ =sPrimaryTilesetCBBufferSize lsls r0, 16 lsrs r0, 16 ldrh r1, [r1] @@ -145,11 +145,11 @@ sub_806FFBC: @ 806FFBC movs r0, 0 strh r0, [r2] _0806FFDA: - ldr r4, _0807001C @ =gUnknown_3000FB2 + ldr r4, _0807001C @ =sSecondaryTilesetCBCounter ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] - ldr r1, _08070020 @ =gUnknown_3000FB4 + ldr r1, _08070020 @ =sSecondaryTilesetCBBufferSize lsls r0, 16 lsrs r0, 16 ldrh r1, [r1] @@ -158,14 +158,14 @@ _0806FFDA: movs r0, 0 strh r0, [r4] _0806FFF2: - ldr r0, _08070024 @ =gUnknown_3000FB8 + ldr r0, _08070024 @ =sPrimaryTilesetCB ldr r1, [r0] cmp r1, 0 beq _08070000 ldrh r0, [r2] bl _call_via_r1 _08070000: - ldr r0, _08070028 @ =gUnknown_3000FBC + ldr r0, _08070028 @ =sSecondaryTilesetCB ldr r1, [r0] cmp r1, 0 beq _0807000E @@ -176,23 +176,23 @@ _0807000E: pop {r0} bx r0 .align 2, 0 -_08070014: .4byte gUnknown_3000FAE -_08070018: .4byte gUnknown_3000FB0 -_0807001C: .4byte gUnknown_3000FB2 -_08070020: .4byte gUnknown_3000FB4 -_08070024: .4byte gUnknown_3000FB8 -_08070028: .4byte gUnknown_3000FBC +_08070014: .4byte sPrimaryTilesetCBCounter +_08070018: .4byte sPrimaryTilesetCBBufferSize +_0807001C: .4byte sSecondaryTilesetCBCounter +_08070020: .4byte sSecondaryTilesetCBBufferSize +_08070024: .4byte sPrimaryTilesetCB +_08070028: .4byte sSecondaryTilesetCB thumb_func_end sub_806FFBC thumb_func_start cur_mapheader_run_tileset1_func cur_mapheader_run_tileset1_func: @ 807002C push {lr} - ldr r0, _08070058 @ =gUnknown_3000FAE + ldr r0, _08070058 @ =sPrimaryTilesetCBCounter movs r1, 0 strh r1, [r0] - ldr r0, _0807005C @ =gUnknown_3000FB0 + ldr r0, _0807005C @ =sPrimaryTilesetCBBufferSize strh r1, [r0] - ldr r1, _08070060 @ =gUnknown_3000FB8 + ldr r1, _08070060 @ =sPrimaryTilesetCB movs r0, 0 str r0, [r1] ldr r0, _08070064 @ =gMapHeader @@ -208,21 +208,21 @@ _08070052: pop {r0} bx r0 .align 2, 0 -_08070058: .4byte gUnknown_3000FAE -_0807005C: .4byte gUnknown_3000FB0 -_08070060: .4byte gUnknown_3000FB8 +_08070058: .4byte sPrimaryTilesetCBCounter +_0807005C: .4byte sPrimaryTilesetCBBufferSize +_08070060: .4byte sPrimaryTilesetCB _08070064: .4byte gMapHeader thumb_func_end cur_mapheader_run_tileset1_func thumb_func_start cur_mapheader_run_tileset2_func cur_mapheader_run_tileset2_func: @ 8070068 push {lr} - ldr r0, _08070094 @ =gUnknown_3000FB2 + ldr r0, _08070094 @ =sSecondaryTilesetCBCounter movs r1, 0 strh r1, [r0] - ldr r0, _08070098 @ =gUnknown_3000FB4 + ldr r0, _08070098 @ =sSecondaryTilesetCBBufferSize strh r1, [r0] - ldr r1, _0807009C @ =gUnknown_3000FBC + ldr r1, _0807009C @ =sSecondaryTilesetCB movs r0, 0 str r0, [r1] ldr r0, _080700A0 @ =gMapHeader @@ -238,9 +238,9 @@ _0807008E: pop {r0} bx r0 .align 2, 0 -_08070094: .4byte gUnknown_3000FB2 -_08070098: .4byte gUnknown_3000FB4 -_0807009C: .4byte gUnknown_3000FBC +_08070094: .4byte sSecondaryTilesetCBCounter +_08070098: .4byte sSecondaryTilesetCBBufferSize +_0807009C: .4byte sSecondaryTilesetCB _080700A0: .4byte gMapHeader thumb_func_end cur_mapheader_run_tileset2_func @@ -342,22 +342,22 @@ _0807014C: thumb_func_start sub_8070154 sub_8070154: @ 8070154 - ldr r1, _0807016C @ =gUnknown_3000FAE + ldr r1, _0807016C @ =sPrimaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _08070170 @ =gUnknown_3000FB0 + ldr r1, _08070170 @ =sPrimaryTilesetCBBufferSize movs r2, 0xA0 lsls r2, 2 adds r0, r2, 0 strh r0, [r1] - ldr r1, _08070174 @ =gUnknown_3000FB8 + ldr r1, _08070174 @ =sPrimaryTilesetCB ldr r0, _08070178 @ =sub_8070120 str r0, [r1] bx lr .align 2, 0 -_0807016C: .4byte gUnknown_3000FAE -_08070170: .4byte gUnknown_3000FB0 -_08070174: .4byte gUnknown_3000FB8 +_0807016C: .4byte sPrimaryTilesetCBCounter +_08070170: .4byte sPrimaryTilesetCBBufferSize +_08070174: .4byte sPrimaryTilesetCB _08070178: .4byte sub_8070120 thumb_func_end sub_8070154 @@ -410,20 +410,20 @@ _080701D0: thumb_func_start sub_80701D8 sub_80701D8: @ 80701D8 - ldr r1, _080701EC @ =gUnknown_3000FB2 + ldr r1, _080701EC @ =sSecondaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _080701F0 @ =gUnknown_3000FB4 + ldr r1, _080701F0 @ =sSecondaryTilesetCBBufferSize movs r0, 0x78 strh r0, [r1] - ldr r1, _080701F4 @ =gUnknown_3000FBC + ldr r1, _080701F4 @ =sSecondaryTilesetCB ldr r0, _080701F8 @ =sub_80701AC str r0, [r1] bx lr .align 2, 0 -_080701EC: .4byte gUnknown_3000FB2 -_080701F0: .4byte gUnknown_3000FB4 -_080701F4: .4byte gUnknown_3000FBC +_080701EC: .4byte sSecondaryTilesetCBCounter +_080701F0: .4byte sSecondaryTilesetCBBufferSize +_080701F4: .4byte sSecondaryTilesetCB _080701F8: .4byte sub_80701AC thumb_func_end sub_80701D8 @@ -474,20 +474,20 @@ _08070248: thumb_func_start sub_8070250 sub_8070250: @ 8070250 - ldr r1, _08070264 @ =gUnknown_3000FB2 + ldr r1, _08070264 @ =sSecondaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _08070268 @ =gUnknown_3000FB4 + ldr r1, _08070268 @ =sSecondaryTilesetCBBufferSize movs r0, 0xA0 strh r0, [r1] - ldr r1, _0807026C @ =gUnknown_3000FBC + ldr r1, _0807026C @ =sSecondaryTilesetCB ldr r0, _08070270 @ =sub_8070224 str r0, [r1] bx lr .align 2, 0 -_08070264: .4byte gUnknown_3000FB2 -_08070268: .4byte gUnknown_3000FB4 -_0807026C: .4byte gUnknown_3000FBC +_08070264: .4byte sSecondaryTilesetCBCounter +_08070268: .4byte sSecondaryTilesetCBBufferSize +_0807026C: .4byte sSecondaryTilesetCB _08070270: .4byte sub_8070224 thumb_func_end sub_8070250 @@ -531,22 +531,22 @@ _080702B0: thumb_func_start sub_80702B4 sub_80702B4: @ 80702B4 - ldr r1, _080702CC @ =gUnknown_3000FB2 + ldr r1, _080702CC @ =sSecondaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _080702D0 @ =gUnknown_3000FB4 + ldr r1, _080702D0 @ =sSecondaryTilesetCBBufferSize movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] - ldr r1, _080702D4 @ =gUnknown_3000FBC + ldr r1, _080702D4 @ =sSecondaryTilesetCB ldr r0, _080702D8 @ =sub_807029C str r0, [r1] bx lr .align 2, 0 -_080702CC: .4byte gUnknown_3000FB2 -_080702D0: .4byte gUnknown_3000FB4 -_080702D4: .4byte gUnknown_3000FBC +_080702CC: .4byte sSecondaryTilesetCBCounter +_080702D0: .4byte sSecondaryTilesetCBBufferSize +_080702D4: .4byte sSecondaryTilesetCB _080702D8: .4byte sub_807029C thumb_func_end sub_80702B4 @@ -589,20 +589,20 @@ _08070318: thumb_func_start sub_807031C sub_807031C: @ 807031C - ldr r1, _08070330 @ =gUnknown_3000FB2 + ldr r1, _08070330 @ =sSecondaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _08070334 @ =gUnknown_3000FB4 + ldr r1, _08070334 @ =sSecondaryTilesetCBBufferSize movs r0, 0xF0 strh r0, [r1] - ldr r1, _08070338 @ =gUnknown_3000FBC + ldr r1, _08070338 @ =sSecondaryTilesetCB ldr r0, _0807033C @ =sub_8070304 str r0, [r1] bx lr .align 2, 0 -_08070330: .4byte gUnknown_3000FB2 -_08070334: .4byte gUnknown_3000FB4 -_08070338: .4byte gUnknown_3000FBC +_08070330: .4byte sSecondaryTilesetCBCounter +_08070334: .4byte sSecondaryTilesetCBBufferSize +_08070338: .4byte sSecondaryTilesetCB _0807033C: .4byte sub_8070304 thumb_func_end sub_807031C @@ -645,22 +645,22 @@ _0807037C: thumb_func_start sub_8070380 sub_8070380: @ 8070380 - ldr r1, _08070398 @ =gUnknown_3000FB2 + ldr r1, _08070398 @ =sSecondaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _0807039C @ =gUnknown_3000FB4 + ldr r1, _0807039C @ =sSecondaryTilesetCBBufferSize movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] - ldr r1, _080703A0 @ =gUnknown_3000FBC + ldr r1, _080703A0 @ =sSecondaryTilesetCB ldr r0, _080703A4 @ =sub_8070368 str r0, [r1] bx lr .align 2, 0 -_08070398: .4byte gUnknown_3000FB2 -_0807039C: .4byte gUnknown_3000FB4 -_080703A0: .4byte gUnknown_3000FBC +_08070398: .4byte sSecondaryTilesetCBCounter +_0807039C: .4byte sSecondaryTilesetCBBufferSize +_080703A0: .4byte sSecondaryTilesetCB _080703A4: .4byte sub_8070368 thumb_func_end sub_8070380 diff --git a/asm/title_screen.s b/asm/title_screen.s index c07978623..07a861c86 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_8078914 -sub_8078914: @ 8078914 + thumb_func_start CB2_InitTitleScreen +CB2_InitTitleScreen: @ 8078914 push {r4-r6,lr} sub sp, 0xC ldr r0, _08078930 @ =gMain @@ -230,7 +230,7 @@ _08078B26: bx r0 .align 2, 0 _08078B30: .4byte gMain - thumb_func_end sub_8078914 + thumb_func_end CB2_InitTitleScreen thumb_func_start sub_8078B34 sub_8078B34: @ 8078B34 @@ -292,7 +292,7 @@ sub_8078BB4: @ 8078BB4 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer ldr r1, _08078BE4 @ =gUnknown_2037F30 ldrb r0, [r1] cmp r0, 0xFF @@ -433,7 +433,7 @@ sub_8078C9C: @ 8078C9C strb r5, [r0, 0x9] add r0, sp, 0xC strh r5, [r0] - ldr r4, _08078D1C @ =gUnknown_2038700 + ldr r4, _08078D1C @ =gScanlineEffectRegBuffers ldr r6, _08078D20 @ =0x010000a0 adds r1, r4, 0 adds r2, r6, 0 @@ -450,7 +450,7 @@ sub_8078C9C: @ 8078C9C ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams mov r0, r8 movs r1, 0x1 bl sub_8078C90 @@ -463,7 +463,7 @@ sub_8078C9C: @ 8078C9C .align 2, 0 _08078D14: .4byte 0x04000054 _08078D18: .4byte 0xa2600001 -_08078D1C: .4byte gUnknown_2038700 +_08078D1C: .4byte gScanlineEffectRegBuffers _08078D20: .4byte 0x010000a0 thumb_func_end sub_8078C9C @@ -507,7 +507,7 @@ _08078D5C: ldrsh r0, [r4, r1] cmp r0, 0 bge _08078D9C - ldr r1, _08078D80 @ =gUnknown_2039600 + ldr r1, _08078D80 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _08078D78: @@ -516,7 +516,7 @@ _08078D78: strh r0, [r4, 0x2] b _08078D9C .align 2, 0 -_08078D80: .4byte gUnknown_2039600 +_08078D80: .4byte gScanlineEffect _08078D84: movs r0, 0x50 movs r1, 0 @@ -809,7 +809,7 @@ sub_8078FC4: @ 8078FC4 b _08079094 _08078FD6: movs r0, 0x1 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r0, _0807902C @ =sub_807941C movs r1, 0 bl CreateTask @@ -1481,9 +1481,9 @@ sub_8079550: @ 8079550 asrs r4, r5, 16 cmp r4, 0 blt _08079574 - ldr r3, _08079618 @ =gUnknown_2038700 + ldr r3, _08079618 @ =gScanlineEffectRegBuffers lsls r2, r4, 1 - ldr r0, _0807961C @ =gUnknown_2039600 + ldr r0, _0807961C @ =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 @@ -1496,9 +1496,9 @@ _08079574: movs r3, 0 mov r8, r5 adds r6, r4, 0 - ldr r0, _08079618 @ =gUnknown_2038700 + ldr r0, _08079618 @ =gScanlineEffectRegBuffers mov r12, r0 - ldr r7, _0807961C @ =gUnknown_2039600 + ldr r7, _0807961C @ =gScanlineEffect movs r5, 0xF lsls r2, r6, 1 adds r4, r2, 0 @@ -1537,8 +1537,8 @@ _080795AE: adds r3, 0x10 cmp r3, 0x9F bgt _080795E6 - ldr r6, _08079618 @ =gUnknown_2038700 - ldr r5, _0807961C @ =gUnknown_2039600 + ldr r6, _08079618 @ =gScanlineEffectRegBuffers + ldr r5, _0807961C @ =gScanlineEffect movs r4, 0 _080795CC: cmp r3, 0 @@ -1562,8 +1562,8 @@ _080795E6: subs r3, 0x10 cmp r3, 0 blt _0807960E - ldr r6, _08079618 @ =gUnknown_2038700 - ldr r5, _0807961C @ =gUnknown_2039600 + ldr r6, _08079618 @ =gScanlineEffectRegBuffers + ldr r5, _0807961C @ =gScanlineEffect movs r4, 0 _080795F8: lsls r2, r3, 1 @@ -1584,14 +1584,14 @@ _0807960E: pop {r0} bx r0 .align 2, 0 -_08079618: .4byte gUnknown_2038700 -_0807961C: .4byte gUnknown_2039600 +_08079618: .4byte gScanlineEffectRegBuffers +_0807961C: .4byte gScanlineEffect thumb_func_end sub_8079550 thumb_func_start sub_8079620 sub_8079620: @ 8079620 push {lr} - ldr r1, _08079644 @ =gUnknown_2039600 + ldr r1, _08079644 @ =gScanlineEffect ldrb r0, [r1, 0x15] cmp r0, 0 beq _0807962E @@ -1607,7 +1607,7 @@ _0807962E: pop {r0} bx r0 .align 2, 0 -_08079644: .4byte gUnknown_2039600 +_08079644: .4byte gScanlineEffect thumb_func_end sub_8079620 thumb_func_start sub_8079648 @@ -1688,13 +1688,13 @@ sub_80796E8: @ 80796E8 cmp r0, 0 bne _080796FE bl m4aMPlayAllStop - ldr r0, _08079704 @ =sub_815F74C + ldr r0, _08079704 @ =mb_berry_fix_serve bl SetMainCallback2 _080796FE: pop {r0} bx r0 .align 2, 0 -_08079704: .4byte sub_815F74C +_08079704: .4byte mb_berry_fix_serve thumb_func_end sub_80796E8 thumb_func_start sub_8079708 diff --git a/asm/tm_case.s b/asm/tm_case.s deleted file mode 100644 index 1539343e8..000000000 --- a/asm/tm_case.s +++ /dev/null @@ -1,3999 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81317F8 -sub_81317F8: @ 81317F8 - push {r4-r7,lr} - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r2, 24 - lsrs r6, r2, 24 - bl sub_8131A8C - ldr r4, _08131854 @ =gUnknown_203B118 - movs r0, 0x1C - bl Alloc - str r0, [r4] - movs r1, 0 - str r1, [r0] - movs r1, 0xFF - strb r1, [r0, 0x8] - ldr r1, [r4] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x7] - cmp r5, 0x5 - beq _0813182A - ldr r0, _08131858 @ =gUnknown_203B10C - strb r5, [r0, 0x4] -_0813182A: - cmp r7, 0 - beq _08131832 - ldr r0, _08131858 @ =gUnknown_203B10C - str r7, [r0] -_08131832: - cmp r6, 0xFF - beq _0813183A - ldr r0, _08131858 @ =gUnknown_203B10C - strb r6, [r0, 0x5] -_0813183A: - ldr r2, _0813185C @ =gTextFlags - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08131860 @ =sub_8131894 - bl SetMainCallback2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131854: .4byte gUnknown_203B118 -_08131858: .4byte gUnknown_203B10C -_0813185C: .4byte gTextFlags -_08131860: .4byte sub_8131894 - thumb_func_end sub_81317F8 - - thumb_func_start sub_8131864 -sub_8131864: @ 8131864 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8131864 - - thumb_func_start sub_8131880 -sub_8131880: @ 8131880 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8131880 - - thumb_func_start sub_8131894 -sub_8131894: @ 8131894 - push {lr} -_08131896: - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081318BA - bl sub_81318C0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081318BA - bl sub_80BF708 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08131896 -_081318BA: - pop {r0} - bx r0 - thumb_func_end sub_8131894 - - thumb_func_start sub_81318C0 -sub_81318C0: @ 81318C0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _081318E0 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x12 - bls _081318D4 - b _08131A68 -_081318D4: - lsls r0, 2 - ldr r1, _081318E4 @ =_081318E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081318E0: .4byte gMain -_081318E4: .4byte _081318E8 - .align 2, 0 -_081318E8: - .4byte _08131934 - .4byte _0813193E - .4byte _08131944 - .4byte _0813194A - .4byte _08131950 - .4byte _08131956 - .4byte _0813195C - .4byte _08131970 - .4byte _08131976 - .4byte _08131984 - .4byte _08131990 - .4byte _0813199E - .4byte _081319A4 - .4byte _081319AE - .4byte _081319B4 - .4byte _08131A04 - .4byte _08131A0A - .4byte _08131A34 - .4byte _08131A42 -_08131934: - bl sub_80BF768 - bl clear_scheduled_bg_copies_to_vram - b _08131A52 -_0813193E: - bl remove_some_task - b _08131A52 -_08131944: - bl FreeAllSpritePalettes - b _08131A52 -_0813194A: - bl ResetPaletteFade - b _08131A52 -_08131950: - bl ResetSpriteData - b _08131A52 -_08131956: - bl ResetTasks - b _08131A52 -_0813195C: - bl sub_8131AB8 - ldr r0, _0813196C @ =gUnknown_203B118 - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0x12] - b _08131A52 - .align 2, 0 -_0813196C: .4byte gUnknown_203B118 -_08131970: - bl sub_8133244 - b _08131A52 -_08131976: - bl sub_8131B20 - lsls r0, 24 - cmp r0, 0 - bne _08131982 - b _08131A80 -_08131982: - b _08131A52 -_08131984: - ldr r0, _0813198C @ =gUnknown_20398A4 - bl sub_809A5E4 - b _08131A52 - .align 2, 0 -_0813198C: .4byte gUnknown_20398A4 -_08131990: - bl sub_81320BC - bl sub_8132120 - bl sub_8132170 - b _08131A52 -_0813199E: - bl sub_8133404 - b _08131A52 -_081319A4: - bl sub_8131C10 - bl sub_8131C50 - b _08131A52 -_081319AE: - bl sub_81333C4 - b _08131A52 -_081319B4: - ldr r0, _081319C0 @ =gUnknown_203B10C - ldrb r0, [r0, 0x4] - cmp r0, 0x4 - bne _081319C8 - ldr r0, _081319C4 @ =sub_8132F20 - b _081319CA - .align 2, 0 -_081319C0: .4byte gUnknown_203B10C -_081319C4: .4byte sub_8132F20 -_081319C8: - ldr r0, _081319F4 @ =sub_81322D4 -_081319CA: - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _081319F8 @ =gUnknown_3005E70 - ldr r2, _081319FC @ =gUnknown_203B10C - ldrh r1, [r2, 0xA] - ldrh r2, [r2, 0x8] - bl ListMenuInit - ldr r2, _08131A00 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x8] - b _08131A52 - .align 2, 0 -_081319F4: .4byte sub_81322D4 -_081319F8: .4byte gUnknown_3005E70 -_081319FC: .4byte gUnknown_203B10C -_08131A00: .4byte gTasks -_08131A04: - bl sub_8132018 - b _08131A52 -_08131A0A: - ldr r0, _08131A2C @ =gUnknown_203B10C - ldrh r1, [r0, 0x8] - ldrh r0, [r0, 0xA] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl sub_813368C - ldr r1, _08131A30 @ =gUnknown_203B118 - ldr r1, [r1] - strb r0, [r1, 0x4] - b _08131A52 - .align 2, 0 -_08131A2C: .4byte gUnknown_203B10C -_08131A30: .4byte gUnknown_203B118 -_08131A34: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _08131A52 -_08131A42: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_08131A52: - ldr r1, _08131A64 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08131A80 - .align 2, 0 -_08131A64: .4byte gMain -_08131A68: - ldr r0, _08131A78 @ =sub_8131880 - bl SetVBlankCallback - ldr r0, _08131A7C @ =sub_8131864 - bl SetMainCallback2 - movs r0, 0x1 - b _08131A82 - .align 2, 0 -_08131A78: .4byte sub_8131880 -_08131A7C: .4byte sub_8131864 -_08131A80: - movs r0, 0 -_08131A82: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81318C0 - - thumb_func_start sub_8131A8C -sub_8131A8C: @ 8131A8C - ldr r0, _08131AA4 @ =gUnknown_203B118 - movs r1, 0 - str r1, [r0] - ldr r0, _08131AA8 @ =gUnknown_203B120 - str r1, [r0] - ldr r0, _08131AAC @ =gUnknown_203B124 - str r1, [r0] - ldr r0, _08131AB0 @ =gUnknown_203B128 - str r1, [r0] - ldr r0, _08131AB4 @ =gUnknown_203B12C - str r1, [r0] - bx lr - .align 2, 0 -_08131AA4: .4byte gUnknown_203B118 -_08131AA8: .4byte gUnknown_203B120 -_08131AAC: .4byte gUnknown_203B124 -_08131AB0: .4byte gUnknown_203B128 -_08131AB4: .4byte gUnknown_203B12C - thumb_func_end sub_8131A8C - - thumb_func_start sub_8131AB8 -sub_8131AB8: @ 8131AB8 - push {r4,lr} - bl sub_80BF7C8 - ldr r4, _08131B18 @ =gUnknown_203B120 - movs r0, 0x80 - lsls r0, 4 - bl AllocZeroed - str r0, [r4] - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08131B1C @ =gUnknown_8463134 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r1, [r4] - movs r0, 0x2 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08131B18: .4byte gUnknown_203B120 -_08131B1C: .4byte gUnknown_8463134 - thumb_func_end sub_8131AB8 - - thumb_func_start sub_8131B20 -sub_8131B20: @ 8131B20 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08131B3C @ =gUnknown_203B118 - ldr r0, [r4] - movs r1, 0x12 - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bhi _08131BF8 - lsls r0, 2 - ldr r1, _08131B40 @ =_08131B44 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08131B3C: .4byte gUnknown_203B118 -_08131B40: .4byte _08131B44 - .align 2, 0 -_08131B44: - .4byte _08131B58 - .4byte _08131B74 - .4byte _08131B94 - .4byte _08131BAC - .4byte _08131BDC -_08131B58: - bl reset_temp_tile_data_buffers - ldr r1, _08131B70 @ =gUnknown_8E845D8 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _08131BE2 - .align 2, 0 -_08131B70: .4byte gUnknown_8E845D8 -_08131B74: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08131C06 - ldr r0, _08131B8C @ =gUnknown_8E84A24 - ldr r1, _08131B90 @ =gUnknown_203B120 - ldr r1, [r1] - bl LZDecompressWram - b _08131BE2 - .align 2, 0 -_08131B8C: .4byte gUnknown_8E84A24 -_08131B90: .4byte gUnknown_203B120 -_08131B94: - ldr r4, _08131BA8 @ =gUnknown_8E84B70 - movs r0, 0x1 - bl GetBgTilemapBuffer - adds r1, r0, 0 - adds r0, r4, 0 - bl LZDecompressWram - b _08131BE2 - .align 2, 0 -_08131BA8: .4byte gUnknown_8E84B70 -_08131BAC: - ldr r0, _08131BC4 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08131BCC - ldr r0, _08131BC8 @ =gUnknown_8E84CB0 - movs r1, 0 - movs r2, 0x80 - bl LoadCompressedPalette - b _08131BE2 - .align 2, 0 -_08131BC4: .4byte gSaveBlock2Ptr -_08131BC8: .4byte gUnknown_8E84CB0 -_08131BCC: - ldr r0, _08131BD8 @ =gUnknown_8E84D20 - movs r1, 0 - movs r2, 0x80 - bl LoadCompressedPalette - b _08131BE2 - .align 2, 0 -_08131BD8: .4byte gUnknown_8E84D20 -_08131BDC: - ldr r0, _08131BF0 @ =gUnknown_8463218 - bl LoadCompressedObjectPic -_08131BE2: - ldr r0, _08131BF4 @ =gUnknown_203B118 - ldr r1, [r0] - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - b _08131C06 - .align 2, 0 -_08131BF0: .4byte gUnknown_8463218 -_08131BF4: .4byte gUnknown_203B118 -_08131BF8: - bl sub_81338A8 - ldr r1, [r4] - movs r0, 0 - strh r0, [r1, 0x12] - movs r0, 0x1 - b _08131C08 -_08131C06: - movs r0, 0 -_08131C08: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8131B20 - - thumb_func_start sub_8131C10 -sub_8131C10: @ 8131C10 - push {r4,lr} - ldr r0, _08131C40 @ =gUnknown_20398A4 - ldr r4, _08131C44 @ =gUnknown_203B124 - ldrb r0, [r0, 0x4] - adds r0, 0x1 - lsls r0, 3 - bl Alloc - str r0, [r4] - ldr r4, _08131C48 @ =gUnknown_203B128 - ldr r0, _08131C4C @ =gUnknown_203B118 - ldr r0, [r0] - ldrb r1, [r0, 0x6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r1 - bl Alloc - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08131C40: .4byte gUnknown_20398A4 -_08131C44: .4byte gUnknown_203B124 -_08131C48: .4byte gUnknown_203B128 -_08131C4C: .4byte gUnknown_203B118 - thumb_func_end sub_8131C10 - - thumb_func_start sub_8131C50 -sub_8131C50: @ 8131C50 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08131D28 @ =gUnknown_20398A4 - mov r8, r0 - movs r6, 0 - ldr r0, _08131D2C @ =gUnknown_203B118 - ldr r0, [r0] - ldrb r0, [r0, 0x6] - cmp r6, r0 - bcs _08131CA0 - ldr r7, _08131D30 @ =gUnknown_203B128 -_08131C68: - lsls r5, r6, 3 - subs r4, r5, r6 - lsls r4, 2 - adds r4, r6 - ldr r0, [r7] - adds r0, r4 - mov r1, r8 - ldr r2, [r1] - lsls r1, r6, 2 - adds r1, r2 - ldrh r1, [r1] - bl sub_8131D48 - ldr r0, _08131D34 @ =gUnknown_203B124 - ldr r0, [r0] - adds r5, r0 - ldr r0, [r7] - adds r0, r4 - str r0, [r5] - str r6, [r5, 0x4] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _08131D2C @ =gUnknown_203B118 - ldr r0, [r0] - ldrb r0, [r0, 0x6] - cmp r6, r0 - bcc _08131C68 -_08131CA0: - ldr r0, _08131D34 @ =gUnknown_203B124 - ldr r3, [r0] - lsls r0, r6, 3 - adds r0, r3 - ldr r1, _08131D38 @ =gUnknown_84166DB - str r1, [r0] - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - ldr r2, _08131D3C @ =gUnknown_3005E70 - str r3, [r2] - ldr r0, _08131D2C @ =gUnknown_203B118 - ldr r3, [r0] - ldrb r0, [r3, 0x6] - adds r0, 0x1 - movs r1, 0 - strh r0, [r2, 0xC] - strb r1, [r2, 0x10] - strb r1, [r2, 0x11] - movs r0, 0x8 - strb r0, [r2, 0x12] - strb r1, [r2, 0x13] - ldrb r0, [r2, 0x16] - movs r4, 0x8 - negs r4, r4 - ands r4, r0 - movs r0, 0x39 - negs r0, r0 - ands r4, r0 - movs r0, 0x10 - orrs r4, r0 - strb r4, [r2, 0x16] - ldrb r1, [r2, 0x14] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r5, 0x2 - orrs r0, r5 - strb r0, [r2, 0x14] - ldrb r1, [r3, 0x5] - strh r1, [r2, 0xE] - ldrb r1, [r2, 0x17] - movs r3, 0x40 - negs r3, r3 - ands r3, r1 - orrs r3, r5 - movs r1, 0xF - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x14] - movs r0, 0x30 - strb r0, [r2, 0x15] - ldr r0, _08131D40 @ =sub_8131E18 - str r0, [r2, 0x4] - ldr r0, _08131D44 @ =sub_8131E68 - str r0, [r2, 0x8] - movs r0, 0x3F - ands r3, r0 - strb r3, [r2, 0x17] - ands r4, r0 - strb r4, [r2, 0x16] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131D28: .4byte gUnknown_20398A4 -_08131D2C: .4byte gUnknown_203B118 -_08131D30: .4byte gUnknown_203B128 -_08131D34: .4byte gUnknown_203B124 -_08131D38: .4byte gUnknown_84166DB -_08131D3C: .4byte gUnknown_3005E70 -_08131D40: .4byte sub_8131E18 -_08131D44: .4byte sub_8131E68 - thumb_func_end sub_8131C50 - - thumb_func_start sub_8131D48 -sub_8131D48: @ 8131D48 - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r5, _08131D8C @ =gStringVar4 - ldr r1, _08131D90 @ =gUnknown_84166FF - adds r0, r5, 0 - bl StringCopy - movs r0, 0xA9 - lsls r0, 1 - cmp r6, r0 - bls _08131DA4 - ldr r1, _08131D94 @ =gUnknown_8463178 - adds r0, r5, 0 - bl StringAppend - ldr r1, _08131D98 @ =gUnknown_8416226 - adds r0, r5, 0 - bl StringAppend - ldr r4, _08131D9C @ =gStringVar1 - ldr r0, _08131DA0 @ =0xfffffeae - adds r1, r6, r0 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - adds r0, r5, 0 - adds r1, r4, 0 - bl StringAppend - b _08131DC4 - .align 2, 0 -_08131D8C: .4byte gStringVar4 -_08131D90: .4byte gUnknown_84166FF -_08131D94: .4byte gUnknown_8463178 -_08131D98: .4byte gUnknown_8416226 -_08131D9C: .4byte gStringVar1 -_08131DA0: .4byte 0xfffffeae -_08131DA4: - ldr r1, _08131DFC @ =gUnknown_8416226 - adds r0, r5, 0 - bl StringAppend - ldr r4, _08131E00 @ =gStringVar1 - ldr r0, _08131E04 @ =0xfffffee0 - adds r1, r6, r0 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r0, r5, 0 - adds r1, r4, 0 - bl StringAppend -_08131DC4: - ldr r4, _08131E08 @ =gStringVar4 - ldr r1, _08131E0C @ =gUnknown_846317C - adds r0, r4, 0 - bl StringAppend - ldr r1, _08131E10 @ =gUnknown_8416703 - adds r0, r4, 0 - bl StringAppend - adds r0, r6, 0 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, _08131E14 @ =gMoveNames - adds r1, r0 - adds r0, r4, 0 - bl StringAppend - adds r0, r7, 0 - adds r1, r4, 0 - bl StringCopy - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131DFC: .4byte gUnknown_8416226 -_08131E00: .4byte gStringVar1 -_08131E04: .4byte 0xfffffee0 -_08131E08: .4byte gStringVar4 -_08131E0C: .4byte gUnknown_846317C -_08131E10: .4byte gUnknown_8416703 -_08131E14: .4byte gMoveNames - thumb_func_end sub_8131D48 - - thumb_func_start sub_8131E18 -sub_8131E18: @ 8131E18 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - bne _08131E2C - movs r5, 0 - b _08131E3A -_08131E2C: - lsls r1, r4, 16 - lsrs r1, 16 - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r5, r0, 16 -_08131E3A: - cmp r6, 0x1 - beq _08131E50 - movs r0, 0x5 - bl PlaySE - ldr r0, _08131E64 @ =gUnknown_203B118 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - adds r1, r5, 0 - bl sub_81337E4 -_08131E50: - adds r0, r4, 0 - bl sub_8131F0C - adds r0, r5, 0 - bl sub_8133444 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08131E64: .4byte gUnknown_203B118 - thumb_func_end sub_8131E18 - - thumb_func_start sub_8131E68 -sub_8131E68: @ 8131E68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r7, r9 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - mov r4, r8 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08131EFE - lsls r0, r1, 16 - lsrs r6, r0, 16 - movs r0, 0x4 - adds r1, r6, 0 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_unique - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08131EF4 - ldr r4, _08131EE8 @ =gStringVar1 - movs r0, 0x4 - adds r1, r6, 0 - bl sub_809A7B4 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _08131EEC @ =gStringVar4 - ldr r1, _08131EF0 @ =gUnknown_84162B9 - adds r0, r4, 0 - bl StringExpandPlaceholders - mov r0, r8 - str r0, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - mov r0, r9 - movs r1, 0 - adds r2, r4, 0 - movs r3, 0x7E - bl sub_81332EC - b _08131EFE - .align 2, 0 -_08131EE8: .4byte gStringVar1 -_08131EEC: .4byte gStringVar4 -_08131EF0: .4byte gUnknown_84162B9 -_08131EF4: - adds r0, r7, 0 - movs r1, 0x8 - adds r2, r4, 0 - bl sub_81335B0 -_08131EFE: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8131E68 - - thumb_func_start sub_8131F0C -sub_8131F0C: @ 8131F0C - push {r4,lr} - sub sp, 0x14 - adds r1, r0, 0 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08131F30 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetDescription - adds r4, r0, 0 - b _08131F32 -_08131F30: - ldr r4, _08131F60 @ =gUnknown_84166E1 -_08131F32: - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0x2 - bl sub_81332EC - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08131F60: .4byte gUnknown_84166E1 - thumb_func_end sub_8131F0C - - thumb_func_start sub_8131F64 -sub_8131F64: @ 8131F64 - push {lr} - sub sp, 0x8 - movs r1, 0x8 - str r1, [sp] - lsls r0, 1 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0xC - movs r3, 0x1E - bl sub_80F6B08 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_8131F64 - - thumb_func_start sub_8131F90 -sub_8131F90: @ 8131F90 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_8131FB0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8131F90 - - thumb_func_start sub_8131FB0 -sub_8131FB0: @ 8131FB0 - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0xFF - bne _08131FF4 - movs r0, 0x2 - movs r1, 0 - bl GetFontAttribute - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl FillWindowPixelRect - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - b _0813200A -_08131FF4: - ldr r2, _08132014 @ =gFameCheckerText_ListMenuCursor - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0 - bl sub_81332EC -_0813200A: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132014: .4byte gFameCheckerText_ListMenuCursor - thumb_func_end sub_8131FB0 - - thumb_func_start sub_8132018 -sub_8132018: @ 8132018 - push {r4,lr} - sub sp, 0x10 - ldr r4, _0813204C @ =gUnknown_203B118 - ldr r1, [r4] - ldrb r0, [r1, 0x6] - ldrb r1, [r1, 0x5] - subs r0, r1 - adds r0, 0x1 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldr r0, _08132050 @ =gUnknown_203B116 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xA0 - movs r2, 0x8 - movs r3, 0x58 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813204C: .4byte gUnknown_203B118 -_08132050: .4byte gUnknown_203B116 - thumb_func_end sub_8132018 - - thumb_func_start sub_8132054 -sub_8132054: @ 8132054 - push {r4,lr} - sub sp, 0x10 - ldr r4, _08132088 @ =gUnknown_203B118 - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0xA] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0xA - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x98 - movs r2, 0x48 - movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132088: .4byte gUnknown_203B118 - thumb_func_end sub_8132054 - - thumb_func_start sub_813208C -sub_813208C: @ 813208C - push {r4,lr} - ldr r4, _081320A8 @ =gUnknown_203B118 - ldr r1, [r4] - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _081320A2 - bl RemoveScrollIndicatorArrowPair - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x8] -_081320A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081320A8: .4byte gUnknown_203B118 - thumb_func_end sub_813208C - - thumb_func_start sub_81320AC -sub_81320AC: @ 81320AC - ldr r1, _081320B8 @ =gUnknown_203B10C - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - bx lr - .align 2, 0 -_081320B8: .4byte gUnknown_203B10C - thumb_func_end sub_81320AC - - thumb_func_start sub_81320BC -sub_81320BC: @ 81320BC - push {r4,lr} - ldr r4, _08132118 @ =gUnknown_20398A4 - ldr r0, [r4] - ldrb r1, [r4, 0x4] - bl sub_809A584 - ldr r3, _0813211C @ =gUnknown_203B118 - ldr r1, [r3] - movs r0, 0 - strb r0, [r1, 0x6] - movs r2, 0 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _08132100 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _08132100 -_081320E0: - ldr r0, [r3] - ldrb r1, [r0, 0x6] - adds r1, 0x1 - strb r1, [r0, 0x6] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _08132100 - ldr r0, [r4] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _081320E0 -_08132100: - ldr r0, _0813211C @ =gUnknown_203B118 - ldr r1, [r0] - ldrb r0, [r1, 0x6] - adds r0, 0x1 - cmp r0, 0x5 - ble _0813210E - movs r0, 0x5 -_0813210E: - strb r0, [r1, 0x5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132118: .4byte gUnknown_20398A4 -_0813211C: .4byte gUnknown_203B118 - thumb_func_end sub_81320BC - - thumb_func_start sub_8132120 -sub_8132120: @ 8132120 - push {r4,r5,lr} - ldr r0, _08132160 @ =gUnknown_203B10C - ldrh r1, [r0, 0xA] - adds r4, r0, 0 - ldr r5, _08132164 @ =gUnknown_203B118 - cmp r1, 0 - beq _08132144 - ldrh r0, [r4, 0xA] - ldr r1, [r5] - ldrb r3, [r1, 0x5] - adds r0, r3 - ldrb r2, [r1, 0x6] - adds r1, r2, 0x1 - cmp r0, r1 - ble _08132144 - subs r0, r3, 0x1 - subs r0, r2, r0 - strh r0, [r4, 0xA] -_08132144: - adds r3, r4, 0 - ldrh r0, [r3, 0xA] - ldrh r1, [r3, 0x8] - adds r0, r1 - ldr r1, [r5] - ldrb r1, [r1, 0x6] - adds r2, r1, 0x1 - cmp r0, r2 - blt _0813216A - cmp r2, 0x1 - bgt _08132168 - movs r0, 0 - strh r0, [r3, 0x8] - b _0813216A - .align 2, 0 -_08132160: .4byte gUnknown_203B10C -_08132164: .4byte gUnknown_203B118 -_08132168: - strh r1, [r4, 0x8] -_0813216A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8132120 - - thumb_func_start sub_8132170 -sub_8132170: @ 8132170 - push {r4-r6,lr} - ldr r0, _081321CC @ =gUnknown_203B10C - ldrh r1, [r0, 0x8] - adds r6, r0, 0 - cmp r1, 0x3 - bls _081321C4 - movs r4, 0 - ldrh r0, [r6, 0x8] - subs r0, 0x3 - cmp r4, r0 - bgt _081321C4 - ldrh r1, [r6, 0xA] - ldr r5, _081321D0 @ =gUnknown_203B118 - ldr r2, [r5] - ldrb r0, [r2, 0x5] - adds r1, r0 - ldrb r0, [r2, 0x6] - adds r0, 0x1 - cmp r1, r0 - beq _081321C4 - adds r3, r6, 0 -_0813219A: - ldrh r0, [r3, 0x8] - subs r0, 0x1 - strh r0, [r3, 0x8] - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r0, [r3, 0x8] - subs r0, 0x3 - cmp r4, r0 - bgt _081321C4 - ldrh r1, [r6, 0xA] - ldr r2, [r5] - ldrb r0, [r2, 0x5] - adds r1, r0 - ldrb r0, [r2, 0x6] - adds r0, 0x1 - cmp r1, r0 - bne _0813219A -_081321C4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081321CC: .4byte gUnknown_203B10C -_081321D0: .4byte gUnknown_203B118 - thumb_func_end sub_8132170 - - thumb_func_start sub_81321D4 -sub_81321D4: @ 81321D4 - push {lr} - ldr r0, _0813221C @ =gUnknown_203B118 - ldr r0, [r0] - cmp r0, 0 - beq _081321E2 - bl Free -_081321E2: - ldr r0, _08132220 @ =gUnknown_203B120 - ldr r0, [r0] - cmp r0, 0 - beq _081321EE - bl Free -_081321EE: - ldr r0, _08132224 @ =gUnknown_203B124 - ldr r0, [r0] - cmp r0, 0 - beq _081321FA - bl Free -_081321FA: - ldr r0, _08132228 @ =gUnknown_203B128 - ldr r0, [r0] - cmp r0, 0 - beq _08132206 - bl Free -_08132206: - ldr r0, _0813222C @ =gUnknown_203B12C - ldr r0, [r0] - cmp r0, 0 - beq _08132212 - bl Free -_08132212: - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .align 2, 0 -_0813221C: .4byte gUnknown_203B118 -_08132220: .4byte gUnknown_203B120 -_08132224: .4byte gUnknown_203B124 -_08132228: .4byte gUnknown_203B128 -_0813222C: .4byte gUnknown_203B12C - thumb_func_end sub_81321D4 - - thumb_func_start sub_8132230 -sub_8132230: @ 8132230 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08132264 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08132268 @ =sub_813226C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132264: .4byte gTasks -_08132268: .4byte sub_813226C - thumb_func_end sub_8132230 - - thumb_func_start sub_813226C -sub_813226C: @ 813226C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081322A4 @ =gTasks+0x8 - adds r2, r0, r1 - ldr r0, _081322A8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081322CC - ldrb r0, [r2] - ldr r4, _081322AC @ =gUnknown_203B116 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - ldr r0, _081322B0 @ =gUnknown_203B118 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _081322B4 - bl SetMainCallback2 - b _081322BE - .align 2, 0 -_081322A4: .4byte gTasks+0x8 -_081322A8: .4byte gPaletteFade -_081322AC: .4byte gUnknown_203B116 -_081322B0: .4byte gUnknown_203B118 -_081322B4: - adds r0, r4, 0 - subs r0, 0xA - ldr r0, [r0] - bl SetMainCallback2 -_081322BE: - bl sub_813208C - bl sub_81321D4 - adds r0, r5, 0 - bl DestroyTask -_081322CC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_813226C - - thumb_func_start sub_81322D4 -sub_81322D4: @ 81322D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08132340 @ =gTasks+0x8 - adds r6, r0, r1 - ldr r0, _08132344 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0 - bne _081323C8 - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081323C8 - ldrb r0, [r6] - bl ListMenuHandleInput - adds r5, r0, 0 - ldrb r0, [r6] - ldr r4, _08132348 @ =gUnknown_203B116 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl get_coro_args_x18_x1A - ldr r0, _0813234C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08132354 - adds r0, r4, 0 - subs r0, 0xA - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _08132354 - movs r0, 0x5 - bl PlaySE - ldr r0, _08132350 @ =gSpecialVar_ItemId - mov r1, r8 - strh r1, [r0] - b _08132370 - .align 2, 0 -_08132340: .4byte gTasks+0x8 -_08132344: .4byte gPaletteFade -_08132348: .4byte gUnknown_203B116 -_0813234C: .4byte gMain -_08132350: .4byte gSpecialVar_ItemId -_08132354: - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _08132364 - adds r0, 0x1 - cmp r5, r0 - bne _0813237C - b _081323C8 -_08132364: - movs r0, 0x5 - bl PlaySE - ldr r1, _08132378 @ =gSpecialVar_ItemId - movs r0, 0 - strh r0, [r1] -_08132370: - adds r0, r7, 0 - bl sub_8132230 - b _081323C8 - .align 2, 0 -_08132378: .4byte gSpecialVar_ItemId -_0813237C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_8131F64 - bl sub_813208C - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8131F90 - strh r5, [r6, 0x2] - lsls r4, r5, 16 - lsrs r4, 16 - movs r0, 0x4 - adds r1, r4, 0 - bl sub_809A7B4 - strh r0, [r6, 0x4] - movs r0, 0x4 - adds r1, r4, 0 - bl sub_809A798 - ldr r1, _081323D4 @ =gSpecialVar_ItemId - strh r0, [r1] - ldr r0, _081323D8 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r2, _081323DC @ =gUnknown_8463140 - ldr r0, _081323E0 @ =gUnknown_203B10C - ldrb r0, [r0, 0x4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] -_081323C8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081323D4: .4byte gSpecialVar_ItemId -_081323D8: .4byte gTasks -_081323DC: .4byte gUnknown_8463140 -_081323E0: .4byte gUnknown_203B10C - thumb_func_end sub_81322D4 - - thumb_func_start sub_81323E4 -sub_81323E4: @ 81323E4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_8131F64 - bl sub_8132018 - ldr r1, _0813240C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08132410 @ =sub_81322D4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813240C: .4byte gTasks -_08132410: .4byte sub_81322D4 - thumb_func_end sub_81323E4 - - thumb_func_start sub_8132414 -sub_8132414: @ 8132414 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x2 - bl sub_8133368 - bl sub_80BF708 - lsls r0, 24 - cmp r0, 0 - bne _08132454 - bl InUnionRoom - cmp r0, 0x1 - beq _08132454 - ldr r4, _0813244C @ =gUnknown_203B118 - ldr r0, [r4] - adds r0, 0x7 - movs r1, 0 - bl sub_8133630 - ldr r1, [r4] - ldr r0, _08132450 @ =gUnknown_8463168 - str r0, [r1, 0xC] - movs r0, 0x3 - b _08132468 - .align 2, 0 -_0813244C: .4byte gUnknown_203B118 -_08132450: .4byte gUnknown_8463168 -_08132454: - ldr r4, _0813254C @ =gUnknown_203B118 - ldr r0, [r4] - adds r0, 0x7 - movs r1, 0x1 - bl sub_8133630 - ldr r1, [r4] - ldr r0, _08132550 @ =gUnknown_846316B - str r0, [r1, 0xC] - movs r0, 0x2 -_08132468: - strb r0, [r1, 0x10] - movs r0, 0x2 - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldr r6, _0813254C @ =gUnknown_203B118 - ldr r1, [r6] - ldrb r2, [r1, 0x7] - movs r5, 0 - str r5, [sp] - str r0, [sp, 0x4] - ldrb r0, [r1, 0x10] - str r0, [sp, 0x8] - ldr r0, _08132554 @ =gUnknown_8463150 - str r0, [sp, 0xC] - ldr r0, [r1, 0xC] - str r0, [sp, 0x10] - adds r0, r2, 0 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0x2 - bl AddItemMenuActionTextPrinters - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r6] - ldrb r2, [r1, 0x7] - str r0, [sp] - ldrb r0, [r1, 0x10] - str r0, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r2, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl sub_810F7D8 - movs r0, 0x80 - lsls r0, 1 - bl Alloc - adds r4, r0, 0 - ldr r6, _08132558 @ =gSpecialVar_ItemId - ldrh r1, [r6] - bl sub_8131D48 - ldr r1, _0813255C @ =gUnknown_8416301 - adds r0, r4, 0 - bl StringAppend - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r5, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x2 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl sub_81332EC - adds r0, r4, 0 - bl Free - ldrh r0, [r6] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - beq _08132528 - movs r0, 0x2 - movs r1, 0 - movs r2, 0x2 - bl sub_81335B0 - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram -_08132528: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _08132560 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _08132564 @ =sub_8132568 - str r0, [r1] - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813254C: .4byte gUnknown_203B118 -_08132550: .4byte gUnknown_846316B -_08132554: .4byte gUnknown_8463150 -_08132558: .4byte gSpecialVar_ItemId -_0813255C: .4byte gUnknown_8416301 -_08132560: .4byte gTasks -_08132564: .4byte sub_8132568 - thumb_func_end sub_8132414 - - thumb_func_start sub_8132568 -sub_8132568: @ 8132568 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081325E0 - bl ProcessMenuInputNoWrapAround - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081325E0 - adds r0, 0x1 - cmp r4, r0 - bne _081325C0 - movs r0, 0x5 - bl PlaySE - ldr r2, _081325B8 @ =gUnknown_8463150 - ldr r0, _081325BC @ =gUnknown_203B118 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - ldr r1, [r1, 0xC] - adds r0, r1 - subs r0, 0x1 - ldrb r0, [r0] - lsls r0, 3 - adds r2, 0x4 - adds r0, r2 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _081325E0 - .align 2, 0 -_081325B8: .4byte gUnknown_8463150 -_081325BC: .4byte gUnknown_203B118 -_081325C0: - movs r0, 0x5 - bl PlaySE - ldr r1, _081325E8 @ =gUnknown_8463150 - ldr r0, _081325EC @ =gUnknown_203B118 - ldr r0, [r0] - ldr r0, [r0, 0xC] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 -_081325E0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081325E8: .4byte gUnknown_8463150 -_081325EC: .4byte gUnknown_203B118 - thumb_func_end sub_8132568 - - thumb_func_start sub_81325F0 -sub_81325F0: @ 81325F0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _08132634 @ =gUnknown_203B118 - ldr r0, [r5] - adds r0, 0x7 - bl sub_8133664 - movs r0, 0x2 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _08132638 - adds r0, r4, 0 - bl sub_81326F8 - b _0813264A - .align 2, 0 -_08132634: .4byte gUnknown_203B118 -_08132638: - ldr r1, _08132650 @ =gUnknown_3005E98 - ldr r0, _08132654 @ =sub_8125B40 - str r0, [r1] - ldr r1, [r5] - ldr r0, _08132658 @ =sub_8124C8C - str r0, [r1] - adds r0, r4, 0 - bl sub_8132230 -_0813264A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132650: .4byte gUnknown_3005E98 -_08132654: .4byte sub_8125B40 -_08132658: .4byte sub_8124C8C - thumb_func_end sub_81325F0 - - thumb_func_start sub_813265C -sub_813265C: @ 813265C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081326D0 @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0, 0x2] - movs r0, 0x4 - bl sub_809A798 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r6, _081326D4 @ =gUnknown_203B118 - ldr r0, [r6] - adds r0, 0x7 - bl sub_8133664 - movs r0, 0x2 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r4, 0 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081326EC - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _081326D8 - adds r0, r5, 0 - bl sub_81326F8 - b _081326F2 - .align 2, 0 -_081326D0: .4byte gTasks+0x8 -_081326D4: .4byte gUnknown_203B118 -_081326D8: - ldr r1, [r6] - ldr r0, _081326E8 @ =sub_8126EDC - str r0, [r1] - adds r0, r5, 0 - bl sub_8132230 - b _081326F2 - .align 2, 0 -_081326E8: .4byte sub_8126EDC -_081326EC: - adds r0, r5, 0 - bl sub_8132714 -_081326F2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813265C - - thumb_func_start sub_81326F8 -sub_81326F8: @ 81326F8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813270C @ =gUnknown_841632A - ldr r3, _08132710 @ =sub_8132758 - movs r1, 0x2 - bl sub_813337C - pop {r0} - bx r0 - .align 2, 0 -_0813270C: .4byte gUnknown_841632A -_08132710: .4byte sub_8132758 - thumb_func_end sub_81326F8 - - thumb_func_start sub_8132714 -sub_8132714: @ 8132714 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08132744 @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, _08132748 @ =gStringVar1 - bl sub_8099E90 - ldr r5, _0813274C @ =gStringVar4 - ldr r1, _08132750 @ =gUnknown_841635E - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r3, _08132754 @ =sub_8132758 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl sub_813337C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132744: .4byte gSpecialVar_ItemId -_08132748: .4byte gStringVar1 -_0813274C: .4byte gStringVar4 -_08132750: .4byte gUnknown_841635E -_08132754: .4byte sub_8132758 - thumb_func_end sub_8132714 - - thumb_func_start sub_8132758 -sub_8132758: @ 8132758 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813277C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08132776 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_8132780 -_08132776: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813277C: .4byte gMain - thumb_func_end sub_8132758 - - thumb_func_start sub_8132780 -sub_8132780: @ 8132780 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - ldr r0, _081327F0 @ =gTasks+0x8 - adds r5, r0 - ldrb r0, [r5] - ldr r4, _081327F4 @ =gUnknown_203B116 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - ldr r0, _081327F8 @ =gUnknown_3005E70 - subs r4, 0xA - ldrh r1, [r4, 0xA] - ldrh r2, [r4, 0x8] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r1, 0x1 - bl sub_8131F90 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x6 - bl ClearWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl sub_81323E4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081327F0: .4byte gTasks+0x8 -_081327F4: .4byte gUnknown_203B116 -_081327F8: .4byte gUnknown_3005E70 - thumb_func_end sub_8132780 - - thumb_func_start sub_81327FC -sub_81327FC: @ 81327FC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _08132860 @ =gTasks+0x8 - adds r4, r0 - ldr r0, _08132864 @ =gUnknown_203B118 - ldr r0, [r0] - adds r0, 0x7 - bl sub_8133664 - movs r0, 0x2 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8131F90 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_81323E4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132860: .4byte gTasks+0x8 -_08132864: .4byte gUnknown_203B118 - thumb_func_end sub_81327FC - - thumb_func_start sub_8132868 -sub_8132868: @ 8132868 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _081328A0 @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081328AC - ldr r0, _081328A4 @ =gUnknown_203B118 - ldr r1, [r0] - ldr r0, _081328A8 @ =c2_8123744 - str r0, [r1] - adds r0, r4, 0 - bl sub_8132230 - b _081328B2 - .align 2, 0 -_081328A0: .4byte gTasks+0x8 -_081328A4: .4byte gUnknown_203B118 -_081328A8: .4byte c2_8123744 -_081328AC: - adds r0, r4, 0 - bl sub_8132714 -_081328B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8132868 - - thumb_func_start sub_81328B8 -sub_81328B8: @ 81328B8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _081328F0 @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081328FC - ldr r0, _081328F4 @ =gUnknown_203B118 - ldr r1, [r0] - ldr r0, _081328F8 @ =sub_808CE60 - str r0, [r1] - adds r0, r4, 0 - bl sub_8132230 - b _08132902 - .align 2, 0 -_081328F0: .4byte gTasks+0x8 -_081328F4: .4byte gUnknown_203B118 -_081328F8: .4byte sub_808CE60 -_081328FC: - adds r0, r4, 0 - bl sub_8132714 -_08132902: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81328B8 - - thumb_func_start sub_8132908 -sub_8132908: @ 8132908 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08132950 @ =gTasks+0x8 - adds r4, r0, r1 - ldr r6, _08132954 @ =gSpecialVar_ItemId - ldrh r0, [r6] - bl itemid_get_market_price - lsls r0, 16 - cmp r0, 0 - bne _08132968 - ldrh r0, [r6] - ldr r1, _08132958 @ =gStringVar1 - bl sub_8099E90 - ldr r4, _0813295C @ =gStringVar4 - ldr r1, _08132960 @ =gUnknown_84168F1 - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08132964 @ =sub_8132780 - adds r0, r5, 0 - adds r2, r4, 0 - bl sub_813337C - b _081329AE - .align 2, 0 -_08132950: .4byte gTasks+0x8 -_08132954: .4byte gSpecialVar_ItemId -_08132958: .4byte gStringVar1 -_0813295C: .4byte gStringVar4 -_08132960: .4byte gUnknown_84168F1 -_08132964: .4byte sub_8132780 -_08132968: - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08132980 - bl sub_81335E0 - adds r0, r5, 0 - bl sub_81329C4 - b _081329AE -_08132980: - cmp r0, 0x63 - ble _08132988 - movs r0, 0x63 - strh r0, [r4, 0x4] -_08132988: - ldrh r0, [r6] - ldr r1, _081329B4 @ =gStringVar1 - bl sub_8099E90 - ldr r4, _081329B8 @ =gStringVar4 - ldr r1, _081329BC @ =gUnknown_8416911 - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _081329C0 @ =sub_8132AAC - adds r0, r7, 0 - adds r2, r4, 0 - bl sub_813337C -_081329AE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081329B4: .4byte gStringVar1 -_081329B8: .4byte gStringVar4 -_081329BC: .4byte gUnknown_8416911 -_081329C0: .4byte sub_8132AAC - thumb_func_end sub_8132908 - - thumb_func_start sub_81329C4 -sub_81329C4: @ 81329C4 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _08132A20 @ =gTasks+0x8 - adds r4, r0 - ldr r6, _08132A24 @ =gStringVar3 - ldrh r1, [r4, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r4, r2] - muls r1, r0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, _08132A28 @ =gStringVar4 - ldr r1, _08132A2C @ =gUnknown_8416936 - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08132A30 @ =sub_8132A34 - adds r0, r5, 0 - adds r2, r4, 0 - bl sub_813337C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132A20: .4byte gTasks+0x8 -_08132A24: .4byte gStringVar3 -_08132A28: .4byte gStringVar4 -_08132A2C: .4byte gUnknown_8416936 -_08132A30: .4byte sub_8132A34 - thumb_func_end sub_81329C4 - - thumb_func_start sub_8132A34 -sub_8132A34: @ 8132A34 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08132A44 @ =gUnknown_8463170 - bl sub_8133604 - pop {r0} - bx r0 - .align 2, 0 -_08132A44: .4byte gUnknown_8463170 - thumb_func_end sub_8132A34 - - thumb_func_start sub_8132A48 -sub_8132A48: @ 8132A48 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _08132AA8 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x8 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8131F90 - adds r0, r5, 0 - bl sub_81323E4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132AA8: .4byte gTasks+0x8 - thumb_func_end sub_8132A48 - - thumb_func_start sub_8132AAC -sub_8132AAC: @ 8132AAC - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r6, _08132B48 @ =gTasks+0x8 - adds r0, r4, r6 - mov r8, r0 - movs r0, 0x7 - bl sub_8133354 - ldr r0, _08132B4C @ =gStringVar1 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, _08132B50 @ =gStringVar4 - ldr r1, _08132B54 @ =gUnknown_84162B9 - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r0, 0x7 - movs r1, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl sub_81332EC - mov r2, r8 - ldrh r1, [r2, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - mov r3, r8 - movs r2, 0x10 - ldrsh r1, [r3, r2] - muls r1, r0 - movs r0, 0x1 - bl sub_8132B5C - bl sub_81335E0 - bl sub_8132054 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - subs r6, 0x8 - adds r4, r6 - ldr r0, _08132B58 @ =sub_8132BC8 - str r0, [r4] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132B48: .4byte gTasks+0x8 -_08132B4C: .4byte gStringVar1 -_08132B50: .4byte gStringVar4 -_08132B54: .4byte gUnknown_84162B9 -_08132B58: .4byte sub_8132BC8 - thumb_func_end sub_8132AAC - - thumb_func_start sub_8132B5C -sub_8132B5C: @ 8132B5C - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x7 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, _08132BBC @ =gStringVar1 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, _08132BC0 @ =gStringVar4 - ldr r1, _08132BC4 @ =gUnknown_84162B9 - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x7 - movs r1, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl sub_81332EC - str r4, [sp] - movs r0, 0x7 - movs r1, 0x38 - movs r2, 0xA - adds r3, r6, 0 - bl PrintMoneyAmount - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132BBC: .4byte gStringVar1 -_08132BC0: .4byte gStringVar4 -_08132BC4: .4byte gUnknown_84162B9 - thumb_func_end sub_8132B5C - - thumb_func_start sub_8132BC8 -sub_8132BC8: @ 8132BC8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08132C14 @ =gTasks+0x8 - adds r5, r0, r1 - adds r0, r5, 0 - adds r0, 0x10 - ldrh r1, [r5, 0x4] - bl sub_80BF848 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08132C18 - movs r0, 0x10 - ldrsh r4, [r5, r0] - ldrh r1, [r5, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r5, r2] - muls r1, r0 - adds r0, r4, 0 - bl sub_8132B5C - b _08132CA6 - .align 2, 0 -_08132C14: .4byte gTasks+0x8 -_08132C18: - ldr r0, _08132C4C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08132C50 - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - bl sub_813208C - adds r0, r4, 0 - bl sub_81329C4 - b _08132CA6 - .align 2, 0 -_08132C4C: .4byte gMain -_08132C50: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08132CA6 - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x8 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - bl sub_813208C - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8131F90 - adds r0, r6, 0 - bl sub_81323E4 -_08132CA6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8132BC8 - - thumb_func_start sub_8132CAC -sub_8132CAC: @ 8132CAC - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _08132D18 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _08132D1C @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, _08132D20 @ =gStringVar1 - bl sub_8099E90 - ldr r6, _08132D24 @ =gStringVar3 - ldrh r1, [r4, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r4, r2] - muls r1, r0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, _08132D28 @ =gStringVar4 - ldr r1, _08132D2C @ =gUnknown_8416959 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, _08132D30 @ =sub_8132D34 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_813337C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132D18: .4byte gTasks+0x8 -_08132D1C: .4byte gSpecialVar_ItemId -_08132D20: .4byte gStringVar1 -_08132D24: .4byte gStringVar3 -_08132D28: .4byte gStringVar4 -_08132D2C: .4byte gUnknown_8416959 -_08132D30: .4byte sub_8132D34 - thumb_func_end sub_8132CAC - - thumb_func_start sub_8132D34 -sub_8132D34: @ 8132D34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r6, r0, 2 - adds r6, r0 - lsls r6, 3 - ldr r0, _08132DF4 @ =gTasks+0x8 - mov r9, r0 - adds r1, r6, 0 - add r1, r9 - mov r8, r1 - movs r0, 0xF8 - bl PlaySE - ldr r5, _08132DF8 @ =gSpecialVar_ItemId - ldrh r0, [r5] - mov r2, r8 - ldrh r1, [r2, 0x10] - bl sub_809A1D8 - ldr r7, _08132DFC @ =gSaveBlock1Ptr - ldr r4, [r7] - movs r3, 0xA4 - lsls r3, 2 - mov r10, r3 - add r4, r10 - ldrh r0, [r5] - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - mov r2, r8 - movs r3, 0x10 - ldrsh r1, [r2, r3] - muls r1, r0 - adds r0, r4, 0 - bl AddMoney - ldrh r0, [r5] - mov r2, r8 - ldrh r1, [r2, 0x10] - movs r2, 0x2 - bl sub_809C09C - mov r3, r8 - ldrb r0, [r3] - ldr r4, _08132E00 @ =gUnknown_203B116 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - bl sub_81320BC - bl sub_8132120 - bl sub_8131C50 - ldr r0, _08132E04 @ =gUnknown_3005E70 - subs r4, 0xA - ldrh r1, [r4, 0xA] - ldrh r2, [r4, 0x8] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1] - movs r1, 0x2 - bl sub_8131F90 - ldr r0, [r7] - add r0, r10 - bl GetMoney - adds r1, r0, 0 - movs r0, 0x8 - movs r2, 0 - bl PrintMoneyAmountInMoneyBox - movs r2, 0x8 - negs r2, r2 - add r9, r2 - add r6, r9 - ldr r0, _08132E08 @ =sub_8132E0C - str r0, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08132DF4: .4byte gTasks+0x8 -_08132DF8: .4byte gSpecialVar_ItemId -_08132DFC: .4byte gSaveBlock1Ptr -_08132E00: .4byte gUnknown_203B116 -_08132E04: .4byte gUnknown_3005E70 -_08132E08: .4byte sub_8132E0C - thumb_func_end sub_8132D34 - - thumb_func_start sub_8132E0C -sub_8132E0C: @ 8132E0C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08132E60 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08132E26 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08132E5A -_08132E26: - movs r0, 0x5 - bl PlaySE - movs r0, 0x8 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - adds r0, r4, 0 - bl sub_8132780 -_08132E5A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132E60: .4byte gMain - thumb_func_end sub_8132E0C - - thumb_func_start sub_8132E64 -sub_8132E64: @ 8132E64 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, _08132EFC @ =gUnknown_203B11C - movs r0, 0xB2 - lsls r0, 1 - bl AllocZeroed - str r0, [r4] - ldr r5, _08132F00 @ =gSaveBlock1Ptr - ldr r1, [r5] - ldr r2, _08132F04 @ =0x00000464 - mov r8, r2 - add r1, r8 - movs r2, 0xE8 - bl memcpy - ldr r0, [r4] - adds r0, 0xE8 - ldr r1, [r5] - movs r6, 0xEE - lsls r6, 2 - adds r1, r6 - movs r2, 0x78 - bl memcpy - ldr r3, [r4] - ldr r2, _08132F08 @ =gUnknown_203B10C - ldrh r1, [r2, 0x8] - movs r4, 0xB0 - lsls r4, 1 - adds r0, r3, r4 - strh r1, [r0] - ldrh r0, [r2, 0xA] - movs r2, 0xB1 - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - ldr r0, [r5] - add r0, r8 - movs r1, 0x3A - bl ClearItemSlots - ldr r0, [r5] - adds r0, r6 - movs r1, 0x1E - bl ClearItemSlots - bl sub_81320AC - ldr r0, _08132F0C @ =0x00000121 - movs r1, 0x1 - bl sub_809A084 - ldr r0, _08132F10 @ =0x00000123 - movs r1, 0x1 - bl sub_809A084 - ldr r0, _08132F14 @ =0x00000129 - movs r1, 0x1 - bl sub_809A084 - ldr r0, _08132F18 @ =0x00000143 - movs r1, 0x1 - bl sub_809A084 - ldr r1, _08132F1C @ =sub_815ABFC - movs r0, 0x4 - movs r2, 0 - bl sub_81317F8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132EFC: .4byte gUnknown_203B11C -_08132F00: .4byte gSaveBlock1Ptr -_08132F04: .4byte 0x00000464 -_08132F08: .4byte gUnknown_203B10C -_08132F0C: .4byte 0x00000121 -_08132F10: .4byte 0x00000123 -_08132F14: .4byte 0x00000129 -_08132F18: .4byte 0x00000143 -_08132F1C: .4byte sub_815ABFC - thumb_func_end sub_8132E64 - - thumb_func_start sub_8132F20 -sub_8132F20: @ 8132F20 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r3, r1, 3 - ldr r4, _08132F54 @ =gTasks+0x8 - adds r2, r3, r4 - ldr r0, _08132F58 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08132F4E - strh r0, [r2, 0x10] - strh r0, [r2, 0x12] - adds r0, r4, 0 - subs r0, 0x8 - adds r0, r3, r0 - ldr r1, _08132F5C @ =sub_8132F60 - str r1, [r0] -_08132F4E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132F54: .4byte gTasks+0x8 -_08132F58: .4byte gPaletteFade -_08132F5C: .4byte sub_8132F60 - thumb_func_end sub_8132F20 - - thumb_func_start sub_8132F60 -sub_8132F60: @ 8132F60 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08132FA4 @ =gTasks+0x8 - adds r6, r0, r1 - ldr r0, _08132FA8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08132F8E - movs r1, 0x10 - ldrsh r0, [r6, r1] - cmp r0, 0x14 - bgt _08132F8E - movs r0, 0x15 - strh r0, [r6, 0x10] - bl sub_815AC20 -_08132F8E: - movs r3, 0x10 - ldrsh r0, [r6, r3] - cmp r0, 0x15 - bls _08132F98 - b _08133210 -_08132F98: - lsls r0, 2 - ldr r1, _08132FAC @ =_08132FB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08132FA4: .4byte gTasks+0x8 -_08132FA8: .4byte gMain -_08132FAC: .4byte _08132FB0 - .align 2, 0 -_08132FB0: - .4byte _08133008 - .4byte _08133024 - .4byte _08133050 - .4byte _08133050 - .4byte _08133050 - .4byte _08133080 - .4byte _08133080 - .4byte _08133080 - .4byte _081330B0 - .4byte _081330E0 - .4byte _081330F4 - .4byte _08133024 - .4byte _08133050 - .4byte _08133050 - .4byte _08133050 - .4byte _08133080 - .4byte _08133080 - .4byte _08133080 - .4byte _0813312C - .4byte _081330E0 - .4byte _0813315C - .4byte _08133170 -_08133008: - ldr r0, _08133020 @ =0xffff8405 - movs r1, 0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x6 - bl BeginNormalPaletteFade - movs r0, 0x1 - bl sub_8131F64 - b _081331EA - .align 2, 0 -_08133020: .4byte 0xffff8405 -_08133024: - ldr r0, _0813304C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08133036 - b _08133232 -_08133036: - ldrh r0, [r6, 0x12] - adds r0, 0x1 - strh r0, [r6, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bgt _08133046 - b _08133232 -_08133046: - strh r1, [r6, 0x12] - b _081331EA - .align 2, 0 -_0813304C: .4byte gPaletteFade -_08133050: - movs r0, 0x12 - ldrsh r1, [r6, r0] - cmp r1, 0 - bne _08133066 - ldr r0, _0813307C @ =gMain - strh r1, [r0, 0x2E] - movs r1, 0x80 - strh r1, [r0, 0x30] - ldrb r0, [r6] - bl ListMenuHandleInput -_08133066: - ldrh r0, [r6, 0x12] - adds r0, 0x1 - strh r0, [r6, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bgt _08133076 - b _08133232 -_08133076: - movs r0, 0 - strh r0, [r6, 0x12] - b _081331EA - .align 2, 0 -_0813307C: .4byte gMain -_08133080: - movs r3, 0x12 - ldrsh r1, [r6, r3] - cmp r1, 0 - bne _08133096 - ldr r0, _081330AC @ =gMain - strh r1, [r0, 0x2E] - movs r1, 0x40 - strh r1, [r0, 0x30] - ldrb r0, [r6] - bl ListMenuHandleInput -_08133096: - ldrh r0, [r6, 0x12] - adds r0, 0x1 - strh r0, [r6, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bgt _081330A6 - b _08133232 -_081330A6: - movs r0, 0 - strh r0, [r6, 0x12] - b _081331EA - .align 2, 0 -_081330AC: .4byte gMain -_081330B0: - movs r0, 0x1 - bl sub_8131F64 - ldr r2, _081330D4 @ =gUnknown_841C587 - adds r0, r4, 0 - movs r1, 0x4 - movs r3, 0 - bl sub_813337C - ldr r1, _081330D8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081330DC @ =sub_8132F60 - str r1, [r0] - b _081331EA - .align 2, 0 -_081330D4: .4byte gUnknown_841C587 -_081330D8: .4byte gTasks -_081330DC: .4byte sub_8132F60 -_081330E0: - bl RunTextPrinters - movs r0, 0x6 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - beq _081330F2 - b _08133232 -_081330F2: - b _081331EA -_081330F4: - ldr r0, _08133128 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08133102 - b _08133232 -_08133102: - movs r0, 0 - bl sub_8131F64 - movs r0, 0x80 - lsls r0, 3 - movs r1, 0 - str r1, [sp] - movs r2, 0x6 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - b _081331EA - .align 2, 0 -_08133128: .4byte gMain -_0813312C: - movs r0, 0x1 - bl sub_8131F64 - ldr r2, _08133150 @ =gUnknown_841C693 - adds r0, r4, 0 - movs r1, 0x4 - movs r3, 0 - bl sub_813337C - ldr r1, _08133154 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08133158 @ =sub_8132F60 - str r1, [r0] - b _081331EA - .align 2, 0 -_08133150: .4byte gUnknown_841C693 -_08133154: .4byte gTasks -_08133158: .4byte sub_8132F60 -_0813315C: - ldr r0, _0813316C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08133232 - b _081331EA - .align 2, 0 -_0813316C: .4byte gMain -_08133170: - ldr r0, _081331F4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _08133232 - ldr r5, _081331F8 @ =gSaveBlock1Ptr - ldr r0, [r5] - ldr r1, _081331FC @ =0x00000464 - adds r0, r1 - ldr r4, _08133200 @ =gUnknown_203B11C - ldr r1, [r4] - movs r2, 0xE8 - bl memcpy - ldr r0, [r5] - movs r3, 0xEE - lsls r3, 2 - adds r0, r3 - ldr r1, [r4] - adds r1, 0xE8 - movs r2, 0x78 - bl memcpy - ldrb r0, [r6] - movs r1, 0 - movs r2, 0 - bl sub_810713C - ldr r2, _08133204 @ =gUnknown_203B10C - ldr r0, [r4] - movs r3, 0xB0 - lsls r3, 1 - adds r1, r0, r3 - ldrh r1, [r1] - strh r1, [r2, 0x8] - adds r3, 0x2 - adds r1, r0, r3 - ldrh r1, [r1] - strh r1, [r2, 0xA] - bl Free - ldr r0, _08133208 @ =gPlttBufferFaded - ldr r1, _0813320C @ =gPlttBufferUnfaded - movs r2, 0x80 - lsls r2, 1 - bl CpuFastSet - bl sub_8108CF0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - str r7, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_081331EA: - ldrh r0, [r6, 0x10] - adds r0, 0x1 - strh r0, [r6, 0x10] - b _08133232 - .align 2, 0 -_081331F4: .4byte gPaletteFade -_081331F8: .4byte gSaveBlock1Ptr -_081331FC: .4byte 0x00000464 -_08133200: .4byte gUnknown_203B11C -_08133204: .4byte gUnknown_203B10C -_08133208: .4byte gPlttBufferFaded -_0813320C: .4byte gPlttBufferUnfaded -_08133210: - ldr r0, _0813323C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08133232 - ldr r0, _08133240 @ =gUnknown_203B10C - ldr r0, [r0] - bl SetMainCallback2 - bl sub_813208C - bl sub_81321D4 - adds r0, r4, 0 - bl DestroyTask -_08133232: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813323C: .4byte gPaletteFade -_08133240: .4byte gUnknown_203B10C - thumb_func_end sub_8132F60 - - thumb_func_start sub_8133244 -sub_8133244: @ 8133244 - push {r4,lr} - ldr r0, _081332E0 @ =gUnknown_8463190 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x5B - movs r2, 0xE0 - bl sub_815001C - movs r0, 0 - movs r1, 0x64 - movs r2, 0xB0 - bl sub_814FEAC - movs r0, 0 - movs r1, 0x78 - movs r2, 0xD0 - bl sub_814FF2C - ldr r4, _081332E4 @ =gUnknown_841F408 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xA0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _081332E8 @ =gUnknown_8463180 - adds r0, r4, 0 - movs r1, 0xF6 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xD6 - movs r2, 0x4 - bl LoadPalette - movs r0, 0xC0 - movs r1, 0x1 - bl sub_8107D38 - movs r4, 0 -_081332A4: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x8 - bls _081332A4 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081332E0: .4byte gUnknown_8463190 -_081332E4: .4byte gUnknown_841F408 -_081332E8: .4byte gUnknown_8463180 - thumb_func_end sub_8133244 - - thumb_func_start sub_81332EC -sub_81332EC: @ 81332EC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r3 - ldr r3, [sp, 0x30] - ldr r4, [sp, 0x34] - ldr r6, [sp, 0x38] - ldr r5, [sp, 0x3C] - mov r8, r5 - ldr r5, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - mov r9, r7 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, _08133350 @ =gUnknown_8463184 - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r2, [sp, 0x10] - mov r2, r9 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08133350: .4byte gUnknown_8463184 - thumb_func_end sub_81332EC - - thumb_func_start sub_8133354 -sub_8133354: @ 8133354 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - movs r2, 0x5B - movs r3, 0xE - bl SetWindowBorderStyle - pop {r0} - bx r0 - thumb_func_end sub_8133354 - - thumb_func_start sub_8133368 -sub_8133368: @ 8133368 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - movs r2, 0x78 - movs r3, 0xD - bl SetWindowBorderStyle - pop {r0} - bx r0 - thumb_func_end sub_8133368 - - thumb_func_start sub_813337C -sub_813337C: @ 813337C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - bl sub_80F78A8 - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - mov r0, r8 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0x6 - movs r2, 0x64 - movs r3, 0xB - bl DisplayMessageAndContinueTask - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813337C - - thumb_func_start sub_81333C4 -sub_81333C4: @ 81333C4 - push {r4,lr} - sub sp, 0xC - ldr r4, _081333FC @ =gUnknown_84166D3 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r2, 0x48 - subs r2, r0 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _08133400 @ =gUnknown_8463184 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r3, 0x1 - bl box_print - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081333FC: .4byte gUnknown_84166D3 -_08133400: .4byte gUnknown_8463184 - thumb_func_end sub_81333C4 - - thumb_func_start sub_8133404 -sub_8133404: @ 8133404 - push {lr} - movs r0, 0x4 - movs r1, 0x13 - movs r2, 0 - movs r3, 0 - bl sub_8107D68 - movs r0, 0x4 - movs r1, 0x14 - movs r2, 0 - movs r3, 0xC - bl sub_8107D68 - movs r0, 0x4 - movs r1, 0x15 - movs r2, 0 - movs r3, 0x18 - bl sub_8107D68 - movs r0, 0x4 - movs r1, 0x16 - movs r2, 0 - movs r3, 0x24 - bl sub_8107D68 - movs r0, 0x4 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_8133404 - - thumb_func_start sub_8133444 -sub_8133444: @ 8133444 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x28 - str r0, [sp] - movs r0, 0x30 - str r0, [sp, 0x4] - movs r0, 0x5 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - cmp r4, 0 - bne _081334A8 - movs r4, 0 - movs r5, 0 -_0813346E: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 26 - lsrs r0, 24 - str r0, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x3 - str r0, [sp, 0x10] - movs r0, 0x5 - movs r1, 0x3 - ldr r2, _081334A4 @ =gUnknown_8416213 - movs r3, 0x7 - bl sub_81332EC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0813346E - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - b _0813359A - .align 2, 0 -_081334A4: .4byte gUnknown_8416213 -_081334A8: - adds r0, r4, 0 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r7, r0, 16 - ldr r1, _081334D8 @ =gBattleMoves - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 2 - adds r5, r0, r1 - ldrb r1, [r5, 0x2] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x5 - movs r2, 0 - movs r3, 0 - bl sub_8107D68 - ldrb r0, [r5, 0x1] - cmp r0, 0x1 - bhi _081334E0 - ldr r2, _081334DC @ =gUnknown_8416213 - b _081334F0 - .align 2, 0 -_081334D8: .4byte gBattleMoves -_081334DC: .4byte gUnknown_8416213 -_081334E0: - ldr r4, _08133524 @ =gStringVar1 - ldrb r1, [r5, 0x1] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r2, r4, 0 -_081334F0: - movs r0, 0xC - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x3 - str r0, [sp, 0x10] - movs r0, 0x5 - movs r1, 0x3 - movs r3, 0x7 - bl sub_81332EC - ldr r2, _08133528 @ =gBattleMoves - lsls r1, r7, 1 - adds r0, r1, r7 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x3] - adds r6, r1, 0 - cmp r0, 0 - bne _08133530 - ldr r2, _0813352C @ =gUnknown_8416213 - b _08133540 - .align 2, 0 -_08133524: .4byte gStringVar1 -_08133528: .4byte gBattleMoves -_0813352C: .4byte gUnknown_8416213 -_08133530: - ldr r4, _081335A8 @ =gStringVar1 - ldrb r1, [r2, 0x3] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r2, r4, 0 -_08133540: - movs r0, 0x18 - str r0, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0xFF - mov r8, r0 - str r0, [sp, 0xC] - movs r0, 0x3 - mov r9, r0 - str r0, [sp, 0x10] - movs r0, 0x5 - movs r1, 0x3 - movs r3, 0x7 - bl sub_81332EC - ldr r5, _081335A8 @ =gStringVar1 - ldr r1, _081335AC @ =gBattleMoves - adds r0, r6, r7 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x4] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x24 - str r0, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r0, r8 - str r0, [sp, 0xC] - mov r0, r9 - str r0, [sp, 0x10] - movs r0, 0x5 - movs r1, 0x3 - adds r2, r5, 0 - movs r3, 0x7 - bl sub_81332EC - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram -_0813359A: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081335A8: .4byte gStringVar1 -_081335AC: .4byte gBattleMoves - thumb_func_end sub_8133444 - - thumb_func_start sub_81335B0 -sub_81335B0: @ 81335B0 - push {r4,lr} - sub sp, 0x8 - adds r4, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _081335DC @ =gUnknown_8E99118 - movs r2, 0x10 - str r2, [sp] - movs r2, 0xC - str r2, [sp, 0x4] - adds r2, r4, 0 - bl BlitBitmapToWindow - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081335DC: .4byte gUnknown_8E99118 - thumb_func_end sub_81335B0 - - thumb_func_start sub_81335E0 -sub_81335E0: @ 81335E0 - push {lr} - ldr r0, _08133600 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - adds r3, r0, 0 - movs r0, 0x8 - movs r1, 0x78 - movs r2, 0xD - bl PrintMoneyAmountInMoneyBoxWithBorder - pop {r0} - bx r0 - .align 2, 0 -_08133600: .4byte gSaveBlock1Ptr - thumb_func_end sub_81335E0 - - thumb_func_start sub_8133604 -sub_8133604: @ 8133604 - push {lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0813362C @ =gUnknown_84631E0 - movs r2, 0x2 - str r2, [sp] - movs r2, 0x5B - str r2, [sp, 0x4] - movs r2, 0xE - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r2, 0x2 - movs r3, 0 - bl sub_80BF5D0 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_0813362C: .4byte gUnknown_84631E0 - thumb_func_end sub_8133604 - - thumb_func_start sub_8133630 -sub_8133630: @ 8133630 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - cmp r0, 0xFF - bne _08133656 - lsls r0, r1, 3 - ldr r1, _08133660 @ =gUnknown_84631E8 - adds r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - bl sub_8133354 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram -_08133656: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08133660: .4byte gUnknown_84631E8 - thumb_func_end sub_8133630 - - thumb_func_start sub_8133664 -sub_8133664: @ 8133664 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - movs r1, 0 - bl sub_810F4D8 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0xFF - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8133664 - - thumb_func_start sub_813368C -sub_813368C: @ 813368C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _081336E8 @ =gUnknown_8463220 - movs r1, 0x29 - movs r2, 0x2E - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - cmp r6, 0 - beq _081336F4 - adds r5, r6, 0 - subs r5, 0x21 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - ldr r0, _081336EC @ =gSprites - adds r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8133714 - ldr r0, _081336F0 @ =gBattleMoves - mov r8, r0 - adds r0, r6, 0 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r0, [r1, 0x2] - bl sub_8133730 - adds r0, r4, 0 - adds r1, r5, 0 - b _08133700 - .align 2, 0 -_081336E8: .4byte gUnknown_8463220 -_081336EC: .4byte gSprites -_081336F0: .4byte gBattleMoves -_081336F4: - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _08133710 @ =gSprites - adds r0, r1 - movs r1, 0xFF -_08133700: - bl sub_8133790 - adds r0, r7, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08133710: .4byte gSprites - thumb_func_end sub_813368C - - thumb_func_start sub_8133714 -sub_8133714: @ 8133714 - push {lr} - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x31 - bls _08133726 - movs r1, 0x1 - bl StartSpriteAnim - b _0813372C -_08133726: - movs r1, 0 - bl StartSpriteAnim -_0813372C: - pop {r0} - bx r0 - thumb_func_end sub_8133714 - - thumb_func_start sub_8133730 -sub_8133730: @ 8133730 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xC8 - lsls r0, 1 - bl IndexOfSpritePaletteTag - lsls r0, 28 - lsrs r5, r0, 24 - ldr r2, _08133784 @ =gUnknown_203B12C - ldr r0, _08133788 @ =gUnknown_8463238 - lsls r4, 1 - adds r4, r0 - ldrh r1, [r4] - lsls r1, 1 - ldr r0, [r2] - adds r0, r1 - movs r1, 0x80 - lsls r1, 1 - adds r2, r1, 0 - adds r1, r5, 0 - orrs r1, r2 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0813378C @ =gUnknown_203B10C - ldrb r0, [r0, 0x4] - cmp r0, 0x4 - bne _0813377C - adds r1, r5, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - movs r1, 0x4 - movs r2, 0 - bl BlendPalettes -_0813377C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08133784: .4byte gUnknown_203B12C -_08133788: .4byte gUnknown_8463238 -_0813378C: .4byte gUnknown_203B10C - thumb_func_end sub_8133730 - - thumb_func_start sub_8133790 -sub_8133790: @ 8133790 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r4, 0xFF - bne _081337A6 - movs r6, 0x1B - movs r1, 0x36 - movs r0, 0x14 - strh r0, [r5, 0x26] - b _081337D8 -_081337A6: - cmp r4, 0x31 - bls _081337B0 - adds r0, r4, 0 - subs r0, 0x32 - b _081337B4 -_081337B0: - adds r0, r4, 0 - adds r0, 0x8 -_081337B4: - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 9 - movs r1, 0x3A - bl __divsi3 - asrs r0, 8 - movs r1, 0x29 - subs r6, r1, r0 - lsls r0, r4, 11 - movs r1, 0x3A - bl __divsi3 - asrs r0, 8 - adds r1, r0, 0 - adds r1, 0x2E -_081337D8: - strh r6, [r5, 0x20] - strh r1, [r5, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8133790 - - thumb_func_start sub_81337E4 -sub_81337E4: @ 81337E4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08133808 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r0, r2, r3 - movs r4, 0 - strh r1, [r0, 0x2E] - strh r4, [r0, 0x30] - adds r3, 0x1C - adds r2, r3 - ldr r0, _0813380C @ =sub_8133810 - str r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08133808: .4byte gSprites -_0813380C: .4byte sub_8133810 - thumb_func_end sub_81337E4 - - thumb_func_start sub_8133810 -sub_8133810: @ 8133810 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08133822 - cmp r0, 0x1 - beq _08133886 - b _081338A2 -_08133822: - ldrh r1, [r5, 0x26] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r0, 0x13 - ble _08133880 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08133890 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - ldr r4, _08133878 @ =gBattleMoves - ldrh r0, [r5, 0x2E] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1, 0x2] - bl sub_8133730 - ldr r2, _0813387C @ =0xfffffedf - adds r1, r2, 0 - ldrh r0, [r5, 0x2E] - adds r1, r0 - strh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_8133714 - ldrh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_8133790 - b _081338A2 - .align 2, 0 -_08133878: .4byte gBattleMoves -_0813387C: .4byte 0xfffffedf -_08133880: - adds r0, r1, 0 - adds r0, 0xA - b _081338A0 -_08133886: - ldrh r1, [r5, 0x26] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r0, 0 - bgt _0813389C -_08133890: - ldr r0, _08133898 @ =SpriteCallbackDummy - str r0, [r5, 0x1C] - b _081338A2 - .align 2, 0 -_08133898: .4byte SpriteCallbackDummy -_0813389C: - adds r0, r1, 0 - subs r0, 0xA -_081338A0: - strh r0, [r5, 0x26] -_081338A2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8133810 - - thumb_func_start sub_81338A8 -sub_81338A8: @ 81338A8 - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, _081338F4 @ =gUnknown_203B12C - movs r5, 0x88 - lsls r5, 2 - adds r0, r5, 0 - bl Alloc - adds r1, r0, 0 - str r1, [r4] - ldr r0, _081338F8 @ =gUnknown_8E84F20 - bl LZDecompressWram - ldr r0, _081338FC @ =gUnknown_8E85068 - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 2 - adds r1, r2 - bl LZDecompressWram - ldr r0, [r4] - adds r0, r5 - str r0, [sp] - ldr r1, _08133900 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC8 - lsls r1, 1 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081338F4: .4byte gUnknown_203B12C -_081338F8: .4byte gUnknown_8E84F20 -_081338FC: .4byte gUnknown_8E85068 -_08133900: .4byte 0xffff0000 - thumb_func_end sub_81338A8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/trade.s b/asm/trade.s index e9fcddf2d..eac1fdea5 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -20,7 +20,7 @@ sub_804C600: @ 804C600 strb r0, [r2, 0x8] ldr r0, _0804C6FC @ =sub_804D4F8 bl SetVBlankCallback - ldr r4, _0804C700 @ =gUnknown_841F408 + ldr r4, _0804C700 @ =gTMCaseMainWindowPalette adds r0, r4, 0 movs r1, 0xF0 movs r2, 0x14 @@ -78,11 +78,11 @@ _0804C674: movs r0, 0 movs r1, 0x14 movs r2, 0xC0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0x2 movs r1, 0x1 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame bl sub_809707C ldr r2, _0804C708 @ =gUnknown_2031DA8 ldr r0, [r2] @@ -118,7 +118,7 @@ _0804C6F0: .align 2, 0 _0804C6F8: .4byte gPaletteFade _0804C6FC: .4byte sub_804D4F8 -_0804C700: .4byte gUnknown_841F408 +_0804C700: .4byte gTMCaseMainWindowPalette _0804C704: .4byte gUnknown_8261F1C _0804C708: .4byte gUnknown_2031DA8 _0804C70C: .4byte gUnknown_8261F2C @@ -422,7 +422,7 @@ _0804C9B0: ldrb r0, [r0] cmp r0, 0 beq _0804C9E8 - bl sub_80FA4F8 + bl IsNoOneConnected lsls r0, 24 cmp r0, 0 bne _0804C9C4 @@ -1832,7 +1832,7 @@ sub_804D5A4: @ 804D5A4 ldrb r0, [r0] cmp r0, 0 beq _0804D5FC - bl sub_80FA4F8 + bl IsNoOneConnected lsls r0, 24 cmp r0, 0 beq _0804D620 @@ -1845,7 +1845,7 @@ sub_804D5A4: @ 804D5A4 bl Free movs r0, 0 str r0, [r5] - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite ldr r0, _0804D5F8 @ =sub_8050138 bl SetMainCallback2 b _0804D620 @@ -2487,7 +2487,7 @@ _0804DB1A: bne _0804DB5A adds r0, r4, 0 movs r1, 0x2 - ldr r2, _0804DB74 @ =gUnknown_8246BE5 + ldr r2, _0804DB74 @ = gSpeciesNames + 0xD05 bl SetMonData _0804DB5A: adds r4, 0x64 @@ -2500,7 +2500,7 @@ _0804DB5A: _0804DB68: .4byte gEnemyParty _0804DB6C: .4byte 0x0000012f _0804DB70: .4byte gUnknown_8262034 -_0804DB74: .4byte gUnknown_8246BE5 +_0804DB74: .4byte gSpeciesNames+0xD05 _0804DB78: ldr r2, _0804DBA8 @ =gUnknown_2031DA8 ldr r1, [r2] @@ -3369,7 +3369,7 @@ _0804E208: movs r0, 0x1 movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer @@ -3390,7 +3390,7 @@ _0804E208: movs r1, 0x3 movs r2, 0 movs r3, 0 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 @@ -3432,7 +3432,7 @@ _0804E2A6: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, [r4] adds r0, 0x6F movs r1, 0x4 @@ -3912,7 +3912,7 @@ _0804E670: .4byte 0x0000bbcc thumb_func_start sub_804E674 sub_804E674: @ 804E674 push {r4,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4019,7 +4019,7 @@ _0804E740: .4byte gUnknown_2031DA8 thumb_func_start sub_804E744 sub_804E744: @ 804E744 push {r4,r5,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 @@ -4162,7 +4162,7 @@ sub_804E830: @ 804E830 movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, [r4] adds r0, 0xA8 strb r5, [r0] @@ -4296,7 +4296,7 @@ sub_804E944: @ 804E944 ldr r0, [r0] bl Free bl FreeAllWindowBuffers - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite ldr r0, _0804E984 @ =c2_8056854 bl SetMainCallback2 b _0804E9AA @@ -4827,7 +4827,7 @@ _0804ECEC: 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] @@ -4847,7 +4847,7 @@ _0804ECEC: movs r1, 0x1 movs r2, 0 movs r3, 0 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0 bl PutWindowTilemap adds r0, r5, 0 @@ -5110,7 +5110,7 @@ sub_804EFB4: @ 804EFB4 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 @@ -5876,7 +5876,7 @@ sub_804F5BC: @ 804F5BC movs r0, 0 movs r1, 0x14 movs r2, 0xC - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl PutWindowTilemap movs r0, 0 @@ -7178,7 +7178,7 @@ _0804FF7A: lsls r0, 1 cmp r1, r0 bls _0804FFAC - bl sub_80098B8 + bl CloseLink ldr r0, _0804FFC0 @ =c2_800ACD4 bl SetMainCallback2 ldr r1, [r4] @@ -7285,7 +7285,7 @@ _08050040: cmp r6, 0 bne _0805007C lsls r0, r5, 3 - ldr r1, _08050074 @ =gUnknown_82350AC + ldr r1, _08050074 @ =gMonFrontPicTable adds r0, r1 ldr r1, _08050078 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -7296,11 +7296,11 @@ _08050040: movs r4, 0 b _0805009A .align 2, 0 -_08050074: .4byte gUnknown_82350AC +_08050074: .4byte gMonFrontPicTable _08050078: .4byte gMonSpritesGfxPtr _0805007C: lsls r0, r5, 3 - ldr r1, _080500BC @ =gUnknown_82350AC + ldr r1, _080500BC @ =gMonFrontPicTable adds r0, r1 ldr r1, _080500C0 @ =gMonSpritesGfxPtr ldr r2, [r1] @@ -7329,7 +7329,7 @@ _0805009A: str r7, [r1] b _0805011E .align 2, 0 -_080500BC: .4byte gUnknown_82350AC +_080500BC: .4byte gMonFrontPicTable _080500C0: .4byte gMonSpritesGfxPtr _080500C4: .4byte gUnknown_2031DAC _080500C8: @@ -7337,7 +7337,7 @@ _080500C8: bl GetMonSpritePalStruct ldrh r0, [r0, 0x4] adds r1, r4, 0 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _08050128 @ =gMultiuseSpriteTemplate movs r1, 0x78 movs r2, 0x3C @@ -7432,7 +7432,7 @@ _08050194: ldr r2, _08050230 @ =0x00001144 adds r0, r2, 0 strh r0, [r1] - bl sub_80098B8 + bl CloseLink _080501A8: ldr r4, _08050234 @ =gUnknown_2031DAC movs r0, 0x88 @@ -7841,7 +7841,7 @@ sub_80504CC: @ 80504CC movs r0, 0x3 bl SetBgTilemapBuffer bl DeactivateAllTextPrinters - ldr r0, _080505B8 @ =gUnknown_8D00000 + ldr r0, _080505B8 @ =gBattleTextboxTiles mov r10, r0 movs r0, 0 mov r9, r0 @@ -7849,7 +7849,7 @@ sub_80504CC: @ 80504CC mov r1, r10 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, _080505BC @ =gFile_graphics_interface_menu_map_tilemap mov r8, r0 ldr r4, _080505C0 @ =gDecompressionBuffer @@ -7860,7 +7860,7 @@ sub_80504CC: @ 80504CC adds r2, r5, 0 movs r3, 0 bl CopyToBgTilemapBuffer - ldr r6, _080505C4 @ =gUnknown_8D004D8 + ldr r6, _080505C4 @ =gBattleTextboxPalette adds r0, r6, 0 movs r1, 0 movs r2, 0x20 @@ -7873,7 +7873,7 @@ sub_80504CC: @ 80504CC mov r1, r10 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap mov r0, r8 adds r1, r4, 0 bl LZDecompressWram @@ -7896,10 +7896,10 @@ sub_80504CC: @ 80504CC bx r0 .align 2, 0 _080505B4: .4byte gUnknown_826D1D4 -_080505B8: .4byte gUnknown_8D00000 +_080505B8: .4byte gBattleTextboxTiles _080505BC: .4byte gFile_graphics_interface_menu_map_tilemap _080505C0: .4byte gDecompressionBuffer -_080505C4: .4byte gUnknown_8D004D8 +_080505C4: .4byte gBattleTextboxPalette _080505C8: .4byte gUnknown_826D1BC thumb_func_end sub_80504CC @@ -8360,11 +8360,11 @@ _080509A4: ldr r1, _08050A00 @ =0x00005206 movs r0, 0xC bl SetGpuReg - ldr r0, _08050A04 @ =gUnknown_8EAEA20 + ldr r0, _08050A04 @ =gTradeGba2_Pal movs r1, 0x10 movs r2, 0x60 bl LoadPalette - ldr r3, _08050A08 @ =gUnknown_8EAEA80 + ldr r3, _08050A08 @ =gTradeGba_Gfx ldr r4, _08050A0C @ =0x06004000 movs r5, 0xA1 lsls r5, 5 @@ -8388,8 +8388,8 @@ _080509E6: .align 2, 0 _080509FC: .4byte gUnknown_2031DAC _08050A00: .4byte 0x00005206 -_08050A04: .4byte gUnknown_8EAEA20 -_08050A08: .4byte gUnknown_8EAEA80 +_08050A04: .4byte gTradeGba2_Pal +_08050A08: .4byte gTradeGba_Gfx _08050A0C: .4byte 0x06004000 _08050A10: .4byte 0x040000d4 _08050A14: .4byte 0x80000800 @@ -8436,7 +8436,7 @@ _08050A66: ldr r1, _08050ABC @ =0x80000800 str r1, [r0, 0x8] ldr r0, [r0, 0x8] - ldr r3, _08050AC0 @ =gUnknown_8EAEA80 + ldr r3, _08050AC0 @ =gTradeGba_Gfx movs r4, 0xC0 lsls r4, 19 movs r5, 0xA1 @@ -8471,7 +8471,7 @@ _08050AB0: .4byte gUnknown_8269A5C _08050AB4: .4byte 0x06002800 _08050AB8: .4byte 0x040000d4 _08050ABC: .4byte 0x80000800 -_08050AC0: .4byte gUnknown_8EAEA80 +_08050AC0: .4byte gTradeGba_Gfx _08050AC4: ldr r0, _08050AF4 @ =gUnknown_2031DAC ldr r2, [r0] @@ -8769,11 +8769,11 @@ _08050D48: ldr r1, _08050DC0 @ =0x00005206 movs r0, 0xC bl SetGpuReg - ldr r0, _08050DC4 @ =gUnknown_8EAEA20 + ldr r0, _08050DC4 @ =gTradeGba2_Pal movs r1, 0x10 movs r2, 0x60 bl LoadPalette - ldr r3, _08050DC8 @ =gUnknown_8EAEA80 + ldr r3, _08050DC8 @ =gTradeGba_Gfx ldr r4, _08050DCC @ =0x06004000 movs r5, 0xA1 lsls r5, 5 @@ -8800,7 +8800,7 @@ _08050D98: orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] - ldr r1, _08050DD8 @ =gUnknown_826601C + ldr r1, _08050DD8 @ =gUnknown_08331F60 ldr r2, _08050DDC @ =0x06009000 ldr r0, _08050DD0 @ =0x040000d4 str r1, [r0] @@ -8816,12 +8816,12 @@ _08050DB4: .align 2, 0 _08050DBC: .4byte gUnknown_2031DAC _08050DC0: .4byte 0x00005206 -_08050DC4: .4byte gUnknown_8EAEA20 -_08050DC8: .4byte gUnknown_8EAEA80 +_08050DC4: .4byte gTradeGba2_Pal +_08050DC8: .4byte gTradeGba_Gfx _08050DCC: .4byte 0x06004000 _08050DD0: .4byte 0x040000d4 _08050DD4: .4byte 0x80000800 -_08050DD8: .4byte gUnknown_826601C +_08050DD8: .4byte gUnknown_08331F60 _08050DDC: .4byte 0x06009000 thumb_func_end sub_8050968 @@ -10807,7 +10807,7 @@ _08052042: adds r0, 0xF2 ldrh r2, [r0] lsls r0, r2, 3 - ldr r1, _08052068 @ =gUnknown_82350AC + ldr r1, _08052068 @ =gMonFrontPicTable adds r0, r1 ldr r1, _0805206C @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -10819,7 +10819,7 @@ _08052042: .align 2, 0 _08052060: .4byte gSprites _08052064: .4byte SpriteCallbackDummy -_08052068: .4byte gUnknown_82350AC +_08052068: .4byte gMonFrontPicTable _0805206C: .4byte gMonSpritesGfxPtr _08052070: ldr r4, _0805211C @ =gSprites @@ -11137,7 +11137,7 @@ _080522BC: bl Free str r4, [r7] _0805230A: - ldr r0, _08052328 @ =c2_exit_to_overworld_2_switch + ldr r0, _08052328 @ =CB2_ReturnToField bl SetMainCallback2 bl sub_8053AE4 bl sub_812B484 @@ -11150,7 +11150,7 @@ _0805231A: bx r1 .align 2, 0 _08052324: .4byte gPaletteFade -_08052328: .4byte c2_exit_to_overworld_2_switch +_08052328: .4byte CB2_ReturnToField thumb_func_end sub_8050F3C thumb_func_start sub_805232C @@ -13032,7 +13032,7 @@ _0805349E: adds r0, 0xF2 ldrh r2, [r0] lsls r0, r2, 3 - ldr r1, _080534C4 @ =gUnknown_82350AC + ldr r1, _080534C4 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080534C8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -13044,7 +13044,7 @@ _0805349E: .align 2, 0 _080534BC: .4byte gSprites _080534C0: .4byte SpriteCallbackDummy -_080534C4: .4byte gUnknown_82350AC +_080534C4: .4byte gMonFrontPicTable _080534C8: .4byte gMonSpritesGfxPtr _080534CC: ldr r4, _08053578 @ =gSprites @@ -13362,7 +13362,7 @@ _08053718: bl Free str r4, [r7] _08053766: - ldr r0, _08053784 @ =c2_exit_to_overworld_2_switch + ldr r0, _08053784 @ =CB2_ReturnToField bl SetMainCallback2 bl sub_8053AE4 bl sub_812B484 @@ -13375,7 +13375,7 @@ _08053776: bx r1 .align 2, 0 _08053780: .4byte gPaletteFade -_08053784: .4byte c2_exit_to_overworld_2_switch +_08053784: .4byte CB2_ReturnToField thumb_func_end sub_805232C thumb_func_start sub_8053788 @@ -14745,7 +14745,7 @@ _0805434C: ldr r0, _08054378 @ =sub_804C718 cmp r1, r0 bne _08054384 - bl sub_80FA4F8 + bl IsNoOneConnected lsls r0, 24 cmp r0, 0 beq _08054396 @@ -14819,7 +14819,7 @@ sub_80543C4: @ 80543C4 ldrb r0, [r0] cmp r0, 0 beq _08054412 - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite _08054412: ldr r0, _0805443C @ =gMain ldr r0, [r0, 0x8] @@ -14875,8 +14875,8 @@ sub_8054470: @ 8054470 bne _08054494 ldr r0, _080544A0 @ =sub_80505CC bl SetMainCallback2 - ldr r1, _080544A4 @ =gUnknown_3005020 - ldr r0, _080544A8 @ =sub_807DD24 + ldr r1, _080544A4 @ =gFieldCallback + ldr r0, _080544A8 @ =FieldCallback_ReturnToEventScript2 str r0, [r1] adds r0, r4, 0 bl DestroyTask @@ -14887,8 +14887,8 @@ _08054494: .align 2, 0 _0805449C: .4byte gPaletteFade _080544A0: .4byte sub_80505CC -_080544A4: .4byte gUnknown_3005020 -_080544A8: .4byte sub_807DD24 +_080544A4: .4byte gFieldCallback +_080544A8: .4byte FieldCallback_ReturnToEventScript2 thumb_func_end sub_8054470 thumb_func_start sub_80544AC @@ -14989,7 +14989,7 @@ sub_8054508: @ 8054508 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram diff --git a/asm/trainer_card.s b/asm/trainer_card.s index e44503915..502d47c89 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -18,7 +18,7 @@ sub_8088FF0: @ 8088FF0 cmp r0, 0 beq _08089020 ldr r1, _08089028 @ =0x040000d4 - ldr r0, _0808902C @ =gUnknown_2038700 + ldr r0, _0808902C @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -33,7 +33,7 @@ _08089020: .align 2, 0 _08089024: .4byte gUnknown_20397A4 _08089028: .4byte 0x040000d4 -_0808902C: .4byte gUnknown_2038700 +_0808902C: .4byte gScanlineEffectRegBuffers _08089030: .4byte 0x800000a0 thumb_func_end sub_8088FF0 @@ -44,7 +44,7 @@ sub_8089034: @ 8089034 ldrh r3, [r4] movs r0, 0 strh r0, [r4] - ldr r1, _08089064 @ =gUnknown_2038700 + ldr r1, _08089064 @ =gScanlineEffectRegBuffers ldr r0, _08089068 @ =0x04000006 ldrh r2, [r0] movs r0, 0xFF @@ -63,7 +63,7 @@ sub_8089034: @ 8089034 bx r0 .align 2, 0 _08089060: .4byte 0x04000208 -_08089064: .4byte gUnknown_2038700 +_08089064: .4byte gScanlineEffectRegBuffers _08089068: .4byte 0x04000006 _0808906C: .4byte 0x04000012 thumb_func_end sub_8089034 @@ -291,7 +291,7 @@ _0808924A: cmp r0, 0 beq _08089280 movs r0, 0xB - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 bl sub_808B1D4 movs r0, 0xF2 bl PlaySE @@ -387,7 +387,7 @@ _0808931C: .4byte gMain _08089320: .4byte gReceivedRemoteLinkPlayers _08089324: movs r0, 0xA - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 bl sub_808B1D4 ldr r0, _08089340 @ =gUnknown_20397A4 ldr r1, [r0] @@ -431,7 +431,7 @@ _0808937A: bl sub_800AAC0 movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _080893B0 @ =gUnknown_8419D89 movs r0, 0x1 str r0, [sp] @@ -1647,7 +1647,7 @@ sub_8089D8C: @ 8089D8C ldr r0, _08089DA0 @ =sub_8089070 bl SetMainCallback2 movs r0, 0xA - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 pop {r0} bx r0 .align 2, 0 @@ -1658,7 +1658,7 @@ _08089DA0: .4byte sub_8089070 sub_8089DA4: @ 8089DA4 push {lr} bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop ldr r0, _08089DC4 @ =sub_80890C0 movs r1, 0 bl CreateTask @@ -1856,7 +1856,7 @@ sub_8089EEC: @ 8089EEC add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x4C pop {r4,r5} pop {r0} @@ -1908,7 +1908,7 @@ sub_8089F78: @ 8089F78 add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x2C pop {r4} pop {r0} @@ -1972,7 +1972,7 @@ sub_8089FEC: @ 8089FEC adds r1, r6, 0 movs r2, 0x14 movs r3, 0x38 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC @@ -1981,7 +1981,7 @@ sub_8089FEC: @ 8089FEC adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x38 - bl box_print + bl AddTextPrinterParameterized3 b _0808A0CA .align 2, 0 _0808A068: .4byte gUnknown_8419CED @@ -2015,7 +2015,7 @@ _0808A080: adds r1, r6, 0 movs r2, 0x10 movs r3, 0x39 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] add r1, sp, 0xC @@ -2024,7 +2024,7 @@ _0808A080: adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x39 - bl box_print + bl AddTextPrinterParameterized3 _0808A0CA: add sp, 0x18 pop {r4-r7} @@ -2108,7 +2108,7 @@ _0808A112: adds r1, r6, 0 movs r2, 0x14 movs r3, 0x48 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC @@ -2117,7 +2117,7 @@ _0808A112: adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x48 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, _0808A1B0 @ =gUnknown_8419CF7 @@ -2126,7 +2126,7 @@ _0808A112: adds r1, r6, 0 movs r2, 0x8A movs r3, 0x48 - bl box_print + bl AddTextPrinterParameterized3 b _0808A212 .align 2, 0 _0808A198: .4byte 0x00000829 @@ -2161,7 +2161,7 @@ _0808A1B4: adds r1, r6, 0 movs r2, 0x10 movs r3, 0x49 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] add r1, sp, 0xC @@ -2170,7 +2170,7 @@ _0808A1B4: adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x49 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, _0808A228 @ =gUnknown_8419CF7 @@ -2179,7 +2179,7 @@ _0808A1B4: adds r1, r6, 0 movs r2, 0x8A movs r3, 0x49 - bl box_print + bl AddTextPrinterParameterized3 _0808A212: add sp, 0x18 pop {r4-r7} @@ -2258,7 +2258,7 @@ _0808A264: movs r0, 0x1 movs r2, 0x14 movs r3, 0x58 - bl box_print + bl AddTextPrinterParameterized3 b _0808A2F4 .align 2, 0 _0808A2B0: .4byte gSaveBlock2Ptr @@ -2284,7 +2284,7 @@ _0808A2D8: movs r0, 0x1 movs r2, 0x10 movs r3, 0x59 - bl box_print + bl AddTextPrinterParameterized3 _0808A2F4: add r0, sp, 0xC adds r1, r5, 0 @@ -2316,7 +2316,7 @@ _0808A2F4: str r1, [sp, 0x8] movs r0, 0x1 mov r1, r10 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, _0808A3C0 @ =gUnknown_83CD932 mov r2, r9 ldr r4, [r2] @@ -2338,7 +2338,7 @@ _0808A2F4: str r0, [sp, 0x8] movs r0, 0x1 mov r1, r10 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC adds r1, r7, 0 movs r2, 0x2 @@ -2360,7 +2360,7 @@ _0808A2F4: str r1, [sp, 0x8] movs r0, 0x1 mov r1, r10 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x14 pop {r3-r5} mov r8, r3 @@ -2412,7 +2412,7 @@ sub_808A3D0: @ 808A3D0 movs r0, 0x1 movs r1, 0x2 movs r2, 0xA - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r7] adds r1, 0x19 movs r0, 0x2 @@ -2433,7 +2433,7 @@ sub_808A3D0: @ 808A3D0 str r1, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0808A4A4 @ =gUnknown_83CD93A mov r8, r0 ldr r1, [r7] @@ -2448,7 +2448,7 @@ sub_808A3D0: @ 808A3D0 movs r0, 0x1 movs r1, 0x2 movs r2, 0xA - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r7] adds r1, 0x33 movs r0, 0x2 @@ -2469,7 +2469,7 @@ sub_808A3D0: @ 808A3D0 str r1, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 - bl box_print + bl AddTextPrinterParameterized3 _0808A486: add sp, 0xC pop {r3} @@ -2553,7 +2553,7 @@ sub_808A4FC: @ 808A4FC adds r0, 0x4D str r0, [sp, 0x8] movs r0, 0x1 - bl box_print + bl AddTextPrinterParameterized3 b _0808A59C .align 2, 0 _0808A538: .4byte gUnknown_20397A4 @@ -2597,7 +2597,7 @@ _0808A550: str r4, [sp, 0x8] movs r0, 0x1 adds r1, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 _0808A59C: add sp, 0xC pop {r4-r6} @@ -2708,7 +2708,7 @@ sub_808A654: @ 808A654 movs r0, 0x1 adds r1, r5, 0 movs r3, 0x23 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0808A6C4 @ =gUnknown_83CD8E3 str r0, [sp] str r4, [sp, 0x4] @@ -2719,7 +2719,7 @@ sub_808A654: @ 808A654 adds r1, r5, 0 movs r2, 0xA4 movs r3, 0x23 - bl box_print + bl AddTextPrinterParameterized3 _0808A6A2: add sp, 0xC pop {r4-r6} @@ -2830,7 +2830,7 @@ sub_808A760: @ 808A760 movs r0, 0x1 adds r1, r6, 0 movs r3, 0x33 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, [r7] @@ -2841,7 +2841,7 @@ sub_808A760: @ 808A760 adds r1, r6, 0 movs r2, 0x82 movs r3, 0x33 - bl box_print + bl AddTextPrinterParameterized3 ldr r5, _0808A804 @ =gUnknown_83CD8E3 str r5, [sp] str r4, [sp, 0x4] @@ -2853,7 +2853,7 @@ sub_808A760: @ 808A760 adds r1, r6, 0 movs r2, 0x90 movs r3, 0x33 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, [r7] @@ -2864,7 +2864,7 @@ sub_808A760: @ 808A760 adds r1, r6, 0 movs r2, 0xC0 movs r3, 0x33 - bl box_print + bl AddTextPrinterParameterized3 _0808A7E2: add sp, 0xC pop {r4-r7} @@ -2943,7 +2943,7 @@ sub_808A854: @ 808A854 movs r0, 0x1 adds r1, r5, 0 movs r3, 0x43 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0808A8C8 @ =gUnknown_83CD8E3 str r0, [sp] str r4, [sp, 0x4] @@ -2955,7 +2955,7 @@ sub_808A854: @ 808A854 adds r1, r5, 0 movs r2, 0xBA movs r3, 0x43 - bl box_print + bl AddTextPrinterParameterized3 _0808A8A6: add sp, 0xC pop {r4-r6} @@ -3042,7 +3042,7 @@ sub_808A91C: @ 808A91C movs r0, 0x1 adds r1, r5, 0 movs r3, 0x63 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0808A99C @ =gUnknown_83CD8E3 str r0, [sp] str r4, [sp, 0x4] @@ -3054,7 +3054,7 @@ sub_808A91C: @ 808A91C adds r1, r5, 0 movs r2, 0xBA movs r3, 0x63 - bl box_print + bl AddTextPrinterParameterized3 _0808A97A: add sp, 0xC pop {r4-r6} @@ -3140,7 +3140,7 @@ sub_808A9F0: @ 808A9F0 movs r0, 0x1 adds r1, r5, 0 movs r3, 0x53 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0808AA70 @ =gUnknown_83CD8E3 str r0, [sp] str r4, [sp, 0x4] @@ -3152,7 +3152,7 @@ sub_808A9F0: @ 808A9F0 adds r1, r5, 0 movs r2, 0xBA movs r3, 0x53 - bl box_print + bl AddTextPrinterParameterized3 _0808AA4C: add sp, 0xC pop {r4-r6} @@ -4179,10 +4179,10 @@ sub_808B254: @ 808B254 bl HideBg movs r0, 0x3 bl HideBg - bl remove_some_task - bl dp12_8087EA4 + bl ScanlineEffect_Stop + bl ScanlineEffect_Clear movs r1, 0 - ldr r0, _0808B290 @ =gUnknown_2038700 + ldr r0, _0808B290 @ =gScanlineEffectRegBuffers movs r2, 0 movs r3, 0xF0 lsls r3, 3 @@ -4201,7 +4201,7 @@ _0808B278: pop {r1} bx r1 .align 2, 0 -_0808B290: .4byte gUnknown_2038700 +_0808B290: .4byte gScanlineEffectRegBuffers thumb_func_end sub_808B254 thumb_func_start sub_808B294 @@ -4271,7 +4271,7 @@ _0808B2CA: movs r2, 0 cmp r2, r7 bcs _0808B334 - ldr r3, _0808B3C0 @ =gUnknown_2038700 + ldr r3, _0808B3C0 @ =gScanlineEffectRegBuffers _0808B31C: lsls r0, r2, 16 asrs r0, 16 @@ -4296,7 +4296,7 @@ _0808B334: lsrs r7, r4, 16 cmp r1, r0 bge _0808B36C - ldr r0, _0808B3C0 @ =gUnknown_2038700 + ldr r0, _0808B3C0 @ =gScanlineEffectRegBuffers mov r12, r0 adds r4, r3, 0 _0808B34E: @@ -4321,7 +4321,7 @@ _0808B36C: asrs r0, r1, 16 cmp r0, 0x9F bgt _0808B38A - ldr r2, _0808B3C0 @ =gUnknown_2038700 + ldr r2, _0808B3C0 @ =gScanlineEffectRegBuffers _0808B378: asrs r0, r1, 16 lsls r1, r0, 1 @@ -4359,7 +4359,7 @@ _0808B3A2: _0808B3B4: .4byte gUnknown_20397A4 _0808B3B8: .4byte 0x00007bcc _0808B3BC: .4byte 0xffff0000 -_0808B3C0: .4byte gUnknown_2038700 +_0808B3C0: .4byte gScanlineEffectRegBuffers thumb_func_end sub_808B294 thumb_func_start sub_808B3C4 @@ -4612,7 +4612,7 @@ _0808B572: movs r2, 0 cmp r2, r7 bcs _0808B5DC - ldr r3, _0808B668 @ =gUnknown_2038700 + ldr r3, _0808B668 @ =gScanlineEffectRegBuffers _0808B5C4: lsls r0, r2, 16 asrs r0, 16 @@ -4637,7 +4637,7 @@ _0808B5DC: lsrs r7, r4, 16 cmp r1, r0 bge _0808B612 - ldr r0, _0808B668 @ =gUnknown_2038700 + ldr r0, _0808B668 @ =gScanlineEffectRegBuffers mov r12, r0 adds r4, r3, 0 _0808B5F6: @@ -4661,7 +4661,7 @@ _0808B612: asrs r0, r1, 16 cmp r0, 0x9F bgt _0808B630 - ldr r2, _0808B668 @ =gUnknown_2038700 + ldr r2, _0808B668 @ =gScanlineEffectRegBuffers _0808B61E: asrs r0, r1, 16 lsls r1, r0, 1 @@ -4699,7 +4699,7 @@ _0808B648: _0808B65C: .4byte gUnknown_20397A4 _0808B660: .4byte 0x00007bcc _0808B664: .4byte 0xffff0000 -_0808B668: .4byte gUnknown_2038700 +_0808B668: .4byte gScanlineEffectRegBuffers thumb_func_end sub_808B540 thumb_func_start sub_808B66C @@ -5019,7 +5019,7 @@ _0808B8FC: adds r0, r1, r4 ldrb r0, [r0] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 16 lsrs r0, 16 ldr r5, _0808B944 @ =gUnknown_83CD8EC diff --git a/asm/trainer_see.s b/asm/trainer_see.s index 6cc322609..a07c918f8 100644 --- a/asm/trainer_see.s +++ b/asm/trainer_see.s @@ -1024,7 +1024,7 @@ sub_808226C: @ 808226C movs r0, 0x12 movs r1, 0x7 movs r2, 0x7F - bl SpawnSpecialFieldObjectParametrized + bl SpawnSpecialFieldObjectParameterized ldr r2, _080822C8 @ =gMapObjects lsls r1, r0, 3 adds r1, r0 diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s deleted file mode 100644 index c1da74a98..000000000 --- a/asm/trainer_tower.s +++ /dev/null @@ -1,1679 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815E068 -sub_815E068: @ 815E068 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - movs r5, 0 - cmp r0, 0x1 - beq _0815E0B4 - cmp r0, 0x1 - bgt _0815E084 - cmp r0, 0 - beq _0815E088 - b _0815E0F8 -_0815E084: - cmp r3, 0x2 - bne _0815E0F8 -_0815E088: - movs r4, 0 - ldr r0, _0815E0B0 @ =gUnknown_8479ED8 - ldrb r1, [r0, 0x1] - adds r3, r0, 0 - cmp r1, r2 - beq _0815E0A4 - adds r1, r3, 0 -_0815E096: - adds r1, 0x4 - adds r4, 0x1 - cmp r4, 0x52 - bhi _0815E0A4 - ldrb r0, [r1, 0x1] - cmp r0, r2 - bne _0815E096 -_0815E0A4: - cmp r4, 0x53 - beq _0815E0F8 - lsls r0, r4, 2 - adds r0, r3 - ldrb r5, [r0, 0x2] - b _0815E0F8 - .align 2, 0 -_0815E0B0: .4byte gUnknown_8479ED8 -_0815E0B4: - movs r4, 0 - ldr r1, _0815E0BC @ =gUnknown_847A024 - b _0815E0C8 - .align 2, 0 -_0815E0BC: .4byte gUnknown_847A024 -_0815E0C0: - adds r1, 0x8 - adds r4, 0x1 - cmp r4, 0x9 - bhi _0815E0CE -_0815E0C8: - ldrb r0, [r1, 0x2] - cmp r0, r2 - bne _0815E0C0 -_0815E0CE: - cmp r4, 0xA - beq _0815E0F8 - ldr r0, _0815E0E8 @ =0x00004003 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _0815E0F0 - ldr r1, _0815E0EC @ =gUnknown_847A024 - lsls r0, r4, 3 - adds r0, r1 - ldrb r5, [r0, 0x4] - b _0815E0F8 - .align 2, 0 -_0815E0E8: .4byte 0x00004003 -_0815E0EC: .4byte gUnknown_847A024 -_0815E0F0: - ldr r1, _0815E108 @ =gUnknown_847A024 - lsls r0, r4, 3 - adds r0, r1 - ldrb r5, [r0, 0x3] -_0815E0F8: - ldr r2, _0815E10C @ =gUnknown_20370DC - ldr r1, _0815E110 @ =gUnknown_20370DA - ldrh r0, [r1] - strh r0, [r2] - strh r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815E108: .4byte gUnknown_847A024 -_0815E10C: .4byte gUnknown_20370DC -_0815E110: .4byte gUnknown_20370DA - thumb_func_end sub_815E068 - - thumb_func_start sub_815E114 -sub_815E114: @ 815E114 - push {lr} - ldr r0, _0815E120 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0815E120: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_815E114 - - thumb_func_start sub_815E124 -sub_815E124: @ 815E124 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80D08F8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0815E14C - ldr r0, _0815E154 @ =gMain - ldr r1, _0815E158 @ =sub_815E114 - str r1, [r0, 0x8] - bl sub_80563F0 - ldr r0, _0815E15C @ =sub_800FD9C - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0815E14C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E154: .4byte gMain -_0815E158: .4byte sub_815E114 -_0815E15C: .4byte sub_800FD9C - thumb_func_end sub_815E124 - - thumb_func_start sub_815E160 -sub_815E160: @ 815E160 - push {r4,lr} - ldr r4, _0815E1AC @ =gBattleTypeFlags - ldr r3, _0815E1B0 @ =0x00080008 - str r3, [r4] - ldr r0, _0815E1B4 @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r0, [r1, 0xE] - cmp r0, 0x1 - bne _0815E180 - orrs r0, r3 - str r0, [r4] -_0815E180: - ldr r1, _0815E1B8 @ =gTrainerBattleOpponent_A - movs r0, 0 - strh r0, [r1] - bl sub_815E9FC - ldr r0, _0815E1BC @ =sub_815E124 - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayMapChosenOrBattleBGM - bl sub_8080060 - lsls r0, 24 - lsrs r0, 24 - bl sub_80D08B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E1AC: .4byte gBattleTypeFlags -_0815E1B0: .4byte 0x00080008 -_0815E1B4: .4byte gUnknown_203F458 -_0815E1B8: .4byte gTrainerBattleOpponent_A -_0815E1BC: .4byte sub_815E124 - thumb_func_end sub_815E160 - - thumb_func_start sub_815E1C0 -sub_815E1C0: @ 815E1C0 - push {lr} - ldr r0, _0815E1E4 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - bne _0815E1DE - ldr r3, _0815E1E8 @ =gSpecialVar_Result - ldr r0, _0815E1EC @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r0, [r1, 0xE] - strh r0, [r3] -_0815E1DE: - pop {r0} - bx r0 - .align 2, 0 -_0815E1E4: .4byte gSpecialVar_0x8005 -_0815E1E8: .4byte gSpecialVar_Result -_0815E1EC: .4byte gUnknown_203F458 - thumb_func_end sub_815E1C0 - - thumb_func_start sub_815E1F0 -sub_815E1F0: @ 815E1F0 - ldr r0, _0815E210 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E214 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_0815E210: .4byte gSaveBlock1Ptr -_0815E214: .4byte 0x00003d34 - thumb_func_end sub_815E1F0 - - thumb_func_start sub_815E218 -sub_815E218: @ 815E218 - push {lr} - ldr r0, _0815E260 @ =gMapHeader - ldrh r0, [r0, 0x12] - mov r12, r0 - ldr r3, _0815E264 @ =0xfffffed6 - add r3, r12 - ldr r0, _0815E268 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E26C @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r1, r0 - ldrb r1, [r1] - cmp r3, r1 - bne _0815E27C - ldr r3, _0815E270 @ =0xfffffed7 - add r3, r12 - ldr r0, _0815E274 @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r1, [r1, 0xD] - cmp r3, r1 - bgt _0815E27C - ldr r1, _0815E278 @ =gSpecialVar_Result - movs r0, 0 - b _0815E280 - .align 2, 0 -_0815E260: .4byte gMapHeader -_0815E264: .4byte 0xfffffed6 -_0815E268: .4byte gSaveBlock1Ptr -_0815E26C: .4byte 0x00003d34 -_0815E270: .4byte 0xfffffed7 -_0815E274: .4byte gUnknown_203F458 -_0815E278: .4byte gSpecialVar_Result -_0815E27C: - ldr r1, _0815E288 @ =gSpecialVar_Result - movs r0, 0x1 -_0815E280: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E288: .4byte gSpecialVar_Result - thumb_func_end sub_815E218 - - thumb_func_start sub_815E28C -sub_815E28C: @ 815E28C - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, _0815E2D0 @ =gSaveBlock1Ptr - ldr r0, [r4] - ldr r5, _0815E2D4 @ =0x00003d34 - adds r1, r0, r5 - ldr r0, _0815E2D8 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - str r0, [r1] - cmp r0, 0x3 - bls _0815E2A8 - movs r0, 0 - str r0, [r1] -_0815E2A8: - bl sub_815EC0C - bl sub_815D834 - cmp r0, 0 - bne _0815E2E0 - ldr r1, [r4] - adds r0, r1, r5 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E2DC @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x20 - orrs r0, r2 - b _0815E2FA - .align 2, 0 -_0815E2D0: .4byte gSaveBlock1Ptr -_0815E2D4: .4byte 0x00003d34 -_0815E2D8: .4byte gSpecialVar_0x8005 -_0815E2DC: .4byte 0x00003d42 -_0815E2E0: - ldr r1, [r4] - adds r0, r1, r5 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E384 @ =0x00003d42 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 -_0815E2FA: - strb r0, [r1] - ldr r6, _0815E388 @ =gSaveBlock1Ptr - ldr r2, [r6] - ldr r5, _0815E38C @ =0x00003d34 - adds r0, r2, r5 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r2, r0 - movs r0, 0 - mov r8, r0 - mov r0, r8 - strb r0, [r2] - ldr r0, [r6] - adds r1, r0, r5 - ldr r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - ldr r4, _0815E390 @ =0x00003d38 - adds r1, r4 - adds r0, r1 - bl SetVBlankCounter1Ptr - ldr r2, [r6] - adds r3, r2, r5 - ldr r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r4, r2, r4 - adds r4, r0 - mov r0, r8 - str r0, [r4] - ldr r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r3, _0815E384 @ =0x00003d42 - adds r2, r3 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r6] - adds r5, r1, r5 - ldr r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E384: .4byte 0x00003d42 -_0815E388: .4byte gSaveBlock1Ptr -_0815E38C: .4byte 0x00003d34 -_0815E390: .4byte 0x00003d38 - thumb_func_end sub_815E28C - - thumb_func_start sub_815E394 -sub_815E394: @ 815E394 - push {lr} - bl DisableVBlankCounter1 - ldr r3, _0815E3F8 @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r3] - ldr r0, _0815E3FC @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, _0815E400 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, _0815E404 @ =0x00003d42 - adds r2, r0 - ldrb r0, [r2] - lsls r0, 29 - cmp r0, 0 - bge _0815E3C2 - movs r0, 0x1 - strh r0, [r3] -_0815E3C2: - ldrb r2, [r2] - lsls r0, r2, 31 - cmp r0, 0 - beq _0815E3D6 - lsls r0, r2, 30 - cmp r0, 0 - bge _0815E3D6 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_0815E3D6: - ldr r0, _0815E3FC @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E400 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E404 @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E3F8: .4byte gSpecialVar_Result -_0815E3FC: .4byte gSaveBlock1Ptr -_0815E400: .4byte 0x00003d34 -_0815E404: .4byte 0x00003d42 - thumb_func_end sub_815E394 - - thumb_func_start sub_815E408 -sub_815E408: @ 815E408 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _0815E444 @ =gUnknown_847A2B4 - ldr r0, _0815E448 @ =gUnknown_203F458 - ldr r0, [r0] - ldrb r0, [r0, 0xF] - lsls r0, 1 - adds r0, r1 - ldrh r4, [r0] - ldr r0, _0815E44C @ =gSaveBlock1Ptr - mov r8, r0 - ldr r2, [r0] - ldr r7, _0815E450 @ =0x00003d34 - adds r0, r2, r7 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r6, _0815E454 @ =0x00003d42 - adds r2, r6 - ldrb r0, [r2] - lsls r0, 31 - lsrs r5, r0, 31 - cmp r5, 0 - beq _0815E45C - ldr r1, _0815E458 @ =gSpecialVar_Result - movs r0, 0x2 - b _0815E4A0 - .align 2, 0 -_0815E444: .4byte gUnknown_847A2B4 -_0815E448: .4byte gUnknown_203F458 -_0815E44C: .4byte gSaveBlock1Ptr -_0815E450: .4byte 0x00003d34 -_0815E454: .4byte 0x00003d42 -_0815E458: .4byte gSpecialVar_Result -_0815E45C: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809A084 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0815E49C - ldr r1, _0815E494 @ =gStringVar2 - adds r0, r4, 0 - bl sub_8099E90 - mov r0, r8 - ldr r1, [r0] - adds r0, r1, r7 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, r6 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r0, _0815E498 @ =gSpecialVar_Result - strh r5, [r0] - b _0815E4A2 - .align 2, 0 -_0815E494: .4byte gStringVar2 -_0815E498: .4byte gSpecialVar_Result -_0815E49C: - ldr r1, _0815E4AC @ =gSpecialVar_Result - movs r0, 0x1 -_0815E4A0: - strh r0, [r1] -_0815E4A2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815E4AC: .4byte gSpecialVar_Result - thumb_func_end sub_815E408 - - thumb_func_start sub_815E4B0 -sub_815E4B0: @ 815E4B0 - push {r4-r6,lr} - ldr r6, _0815E4D8 @ =gSaveBlock1Ptr - ldr r2, [r6] - ldr r1, _0815E4DC @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, r1 - ldr r3, _0815E4E0 @ =0x00003d42 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 31 - cmp r5, 0 - beq _0815E4E8 - ldr r1, _0815E4E4 @ =gSpecialVar_Result - movs r0, 0x2 - b _0815E534 - .align 2, 0 -_0815E4D8: .4byte gSaveBlock1Ptr -_0815E4DC: .4byte 0x00003d34 -_0815E4E0: .4byte 0x00003d42 -_0815E4E4: .4byte gSpecialVar_Result -_0815E4E8: - ldr r4, _0815E520 @ =0x00003d38 - adds r0, r1, r4 - adds r0, r2, r0 - adds r0, 0x4 - bl sub_815EDDC - ldr r3, [r6] - ldr r2, _0815E524 @ =0x00003d34 - adds r1, r3, r2 - ldr r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r4, r3, r4 - adds r4, r1 - ldr r4, [r4] - cmp r0, r4 - bls _0815E530 - adds r0, r1, r3 - ldr r3, _0815E528 @ =0x00003d3c - adds r0, r3 - adds r1, r4, 0 - bl sub_815EDF4 - ldr r0, _0815E52C @ =gSpecialVar_Result - strh r5, [r0] - b _0815E536 - .align 2, 0 -_0815E520: .4byte 0x00003d38 -_0815E524: .4byte 0x00003d34 -_0815E528: .4byte 0x00003d3c -_0815E52C: .4byte gSpecialVar_Result -_0815E530: - ldr r1, _0815E55C @ =gSpecialVar_Result - movs r0, 0x1 -_0815E534: - strh r0, [r1] -_0815E536: - ldr r0, _0815E560 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E564 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r3, _0815E568 @ =0x00003d42 - adds r1, r3 - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E55C: .4byte gSpecialVar_Result -_0815E560: .4byte gSaveBlock1Ptr -_0815E564: .4byte 0x00003d34 -_0815E568: .4byte 0x00003d42 - thumb_func_end sub_815E4B0 - - thumb_func_start sub_815E56C -sub_815E56C: @ 815E56C - push {r4,lr} - ldr r0, _0815E5A0 @ =gSaveBlock1Ptr - ldr r4, [r0] - ldr r1, _0815E5A4 @ =0x00003d34 - adds r0, r4, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, r3 - ldr r1, _0815E5A8 @ =0x00003d42 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _0815E5BA - subs r1, 0xA - adds r0, r4, r1 - adds r2, r0, r3 - ldr r1, [r2] - ldr r0, _0815E5AC @ =0x00034bbe - cmp r1, r0 - bls _0815E5B0 - adds r0, 0x1 - str r0, [r2] - b _0815E5BA - .align 2, 0 -_0815E5A0: .4byte gSaveBlock1Ptr -_0815E5A4: .4byte 0x00003d34 -_0815E5A8: .4byte 0x00003d42 -_0815E5AC: .4byte 0x00034bbe -_0815E5B0: - ldr r1, _0815E5C0 @ =0x00003d38 - adds r0, r3, r1 - adds r0, r4, r0 - bl SetVBlankCounter1Ptr -_0815E5BA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E5C0: .4byte 0x00003d38 - thumb_func_end sub_815E56C - - thumb_func_start sub_815E5C4 -sub_815E5C4: @ 815E5C4 - ldr r0, _0815E5E4 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E5E8 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E5EC @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0815E5E4: .4byte gSaveBlock1Ptr -_0815E5E8: .4byte 0x00003d34 -_0815E5EC: .4byte 0x00003d42 - thumb_func_end sub_815E5C4 - - thumb_func_start sub_815E5F0 -sub_815E5F0: @ 815E5F0 - push {lr} - ldr r0, _0815E620 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, _0815E624 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, _0815E628 @ =0x00003d42 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 28 - cmp r0, 0 - bge _0815E630 - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, _0815E62C @ =gSpecialVar_Result - movs r0, 0 - b _0815E64C - .align 2, 0 -_0815E620: .4byte gSaveBlock1Ptr -_0815E624: .4byte 0x00003d34 -_0815E628: .4byte 0x00003d42 -_0815E62C: .4byte gSpecialVar_Result -_0815E630: - lsls r0, r1, 27 - cmp r0, 0 - bge _0815E648 - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, _0815E644 @ =gSpecialVar_Result - movs r0, 0x1 - b _0815E64C - .align 2, 0 -_0815E644: .4byte gSpecialVar_Result -_0815E648: - ldr r1, _0815E654 @ =gSpecialVar_Result - movs r0, 0x2 -_0815E64C: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E654: .4byte gSpecialVar_Result - thumb_func_end sub_815E5F0 - - thumb_func_start sub_815E658 -sub_815E658: @ 815E658 - push {r4-r6,lr} - ldr r4, _0815E700 @ =gSaveBlock1Ptr - ldr r2, [r4] - ldr r6, _0815E704 @ =0x00003d34 - adds r0, r2, r6 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r5, _0815E708 @ =0x00003d38 - adds r2, r5 - adds r2, r0 - ldr r1, [r2] - ldr r0, _0815E70C @ =0x00034bbe - cmp r1, r0 - bls _0815E690 - bl DisableVBlankCounter1 - ldr r1, [r4] - adds r0, r1, r6 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r5 - adds r1, r0 - ldr r0, _0815E710 @ =0x00034bbf - str r0, [r1] -_0815E690: - ldr r1, [r4] - adds r0, r1, r6 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r5 - adds r1, r0 - ldr r4, [r1] - movs r5, 0xE1 - lsls r5, 4 - adds r0, r4, 0 - adds r1, r5, 0 - bl __divsi3 - adds r6, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - movs r1, 0x3C - bl __divsi3 - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0x3C - bl __modsi3 - movs r1, 0xA8 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - ldr r0, _0815E714 @ =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815E718 @ =gStringVar2 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815E71C @ =gStringVar3 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E700: .4byte gSaveBlock1Ptr -_0815E704: .4byte 0x00003d34 -_0815E708: .4byte 0x00003d38 -_0815E70C: .4byte 0x00034bbe -_0815E710: .4byte 0x00034bbf -_0815E714: .4byte gStringVar1 -_0815E718: .4byte gStringVar2 -_0815E71C: .4byte gStringVar3 - thumb_func_end sub_815E658 - - thumb_func_start sub_815E720 -sub_815E720: @ 815E720 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - bl sub_815EC0C - ldr r0, _0815E85C @ =gUnknown_847A218 - bl AddWindow - lsls r0, 24 - lsrs r7, r0, 24 - bl sub_80F6E9C - adds r0, r7, 0 - movs r1, 0 - bl sub_80F6F1C - ldr r2, _0815E860 @ =gUnknown_83FE982 - movs r1, 0 - str r1, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - str r1, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x2 - movs r3, 0x4A - bl AddTextPrinterParameterized - movs r0, 0 - mov r8, r0 - movs r1, 0xB8 - lsls r1, 22 - mov r10, r1 - movs r0, 0x90 - lsls r0, 22 - mov r9, r0 -_0815E76C: - ldr r0, _0815E864 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, _0815E868 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _0815E86C @ =0x00003d3c - adds r0, r1 - bl sub_815EDDC - adds r4, r0, 0 - movs r5, 0xE1 - lsls r5, 4 - adds r1, r5, 0 - bl __divsi3 - adds r6, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - movs r1, 0x3C - bl __divsi3 - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0x3C - bl __modsi3 - movs r1, 0xA8 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - ldr r0, _0815E870 @ =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815E874 @ =gStringVar2 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815E878 @ =gStringVar3 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815E87C @ =gStringVar4 - ldr r1, _0815E880 @ =gUnknown_83FE998 - bl StringExpandPlaceholders - ldr r1, _0815E884 @ =gUnknown_83FE9C4 - mov r0, r8 - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - mov r1, r9 - lsrs r0, r1, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x2 - movs r3, 0x18 - bl AddTextPrinterParameterized - mov r1, r10 - lsrs r0, r1, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x2 - ldr r2, _0815E87C @ =gStringVar4 - movs r3, 0x60 - bl AddTextPrinterParameterized - movs r0, 0xA0 - lsls r0, 21 - add r10, r0 - add r9, r0 - movs r1, 0x1 - add r8, r1 - mov r0, r8 - cmp r0, 0x3 - ble _0815E76C - adds r0, r7, 0 - bl PutWindowTilemap - adds r0, r7, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0815E888 @ =0x00004001 - adds r1, r7, 0 - bl VarSet - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815E85C: .4byte gUnknown_847A218 -_0815E860: .4byte gUnknown_83FE982 -_0815E864: .4byte gSaveBlock1Ptr -_0815E868: .4byte 0x00003d34 -_0815E86C: .4byte 0x00003d3c -_0815E870: .4byte gStringVar1 -_0815E874: .4byte gStringVar2 -_0815E878: .4byte gStringVar3 -_0815E87C: .4byte gStringVar4 -_0815E880: .4byte gUnknown_83FE998 -_0815E884: .4byte gUnknown_83FE9C4 -_0815E888: .4byte 0x00004001 - thumb_func_end sub_815E720 - - thumb_func_start sub_815E88C -sub_815E88C: @ 815E88C - push {r4,lr} - ldr r0, _0815E8B0 @ =0x00004001 - bl VarGet - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_810F4D8 - adds r0, r4, 0 - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E8B0: .4byte 0x00004001 - thumb_func_end sub_815E88C - - thumb_func_start sub_815E8B4 -sub_815E8B4: @ 815E8B4 - push {r4,lr} - ldr r4, _0815E8C8 @ =gSpecialVar_Result - bl GetMonsStateToDoubles - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E8C8: .4byte gSpecialVar_Result - thumb_func_end sub_815E8B4 - - thumb_func_start sub_815E8CC -sub_815E8CC: @ 815E8CC - push {lr} - ldr r0, _0815E8EC @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r0, [r1, 0x4] - ldrb r2, [r1, 0xD] - cmp r0, r2 - beq _0815E8F8 - ldr r0, _0815E8F0 @ =gStringVar1 - ldrb r1, [r1, 0x4] - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r1, _0815E8F4 @ =gSpecialVar_Result - movs r0, 0x1 - b _0815E8FC - .align 2, 0 -_0815E8EC: .4byte gUnknown_203F458 -_0815E8F0: .4byte gStringVar1 -_0815E8F4: .4byte gSpecialVar_Result -_0815E8F8: - ldr r1, _0815E904 @ =gSpecialVar_Result - movs r0, 0 -_0815E8FC: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E904: .4byte gSpecialVar_Result - thumb_func_end sub_815E8CC - - thumb_func_start sub_815E908 -sub_815E908: @ 815E908 - push {lr} - ldr r0, _0815E928 @ =gMapHeader - ldrh r1, [r0, 0x12] - ldr r0, _0815E92C @ =0x00000129 - cmp r1, r0 - bne _0815E938 - ldr r0, _0815E930 @ =0x00004082 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _0815E938 - ldr r0, _0815E934 @ =gSpecialVar_Result - strh r1, [r0] - b _0815E93E - .align 2, 0 -_0815E928: .4byte gMapHeader -_0815E92C: .4byte 0x00000129 -_0815E930: .4byte 0x00004082 -_0815E934: .4byte gSpecialVar_Result -_0815E938: - ldr r1, _0815E944 @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] -_0815E93E: - pop {r0} - bx r0 - .align 2, 0 -_0815E944: .4byte gSpecialVar_Result - thumb_func_end sub_815E908 - - thumb_func_start sub_815E948 -sub_815E948: @ 815E948 - push {r4,lr} - ldr r0, _0815E97C @ =0x00004001 - bl VarGet - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _0815E980 @ =gUnknown_203F458 - ldr r3, [r0] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r2 - lsls r1, 3 - ldrb r2, [r3] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - adds r3, r1 - ldrb r1, [r3, 0x1B] - movs r3, 0 - ldr r2, _0815E984 @ =gUnknown_847A074 - ldr r0, _0815E988 @ =gFacilityClassToTrainerClass - adds r1, r0 - b _0815E994 - .align 2, 0 -_0815E97C: .4byte 0x00004001 -_0815E980: .4byte gUnknown_203F458 -_0815E984: .4byte gUnknown_847A074 -_0815E988: .4byte gFacilityClassToTrainerClass -_0815E98C: - adds r2, 0x4 - adds r3, 0x1 - cmp r3, 0x68 - bhi _0815E99C -_0815E994: - ldrb r0, [r2] - ldrb r4, [r1] - cmp r0, r4 - bne _0815E98C -_0815E99C: - cmp r3, 0x69 - beq _0815E9B0 - ldr r1, _0815E9AC @ =gUnknown_847A074 - lsls r0, r3, 2 - adds r0, r1 - ldrb r2, [r0, 0x1] - b _0815E9B2 - .align 2, 0 -_0815E9AC: .4byte gUnknown_847A074 -_0815E9B0: - movs r2, 0 -_0815E9B2: - ldr r0, _0815E9C4 @ =gUnknown_847A2D2 - lsls r1, r2, 1 - adds r1, r0 - ldrh r0, [r1] - bl PlayNewMapMusic - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E9C4: .4byte gUnknown_847A2D2 - thumb_func_end sub_815E948 - - thumb_func_start sub_815E9C8 -sub_815E9C8: @ 815E9C8 - ldr r3, _0815E9EC @ =gSpecialVar_Result - ldr r0, _0815E9F0 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E9F4 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E9F8 @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - lsrs r0, 31 - strh r0, [r3] - bx lr - .align 2, 0 -_0815E9EC: .4byte gSpecialVar_Result -_0815E9F0: .4byte gSaveBlock1Ptr -_0815E9F4: .4byte 0x00003d34 -_0815E9F8: .4byte 0x00003d42 - thumb_func_end sub_815E9C8 - - thumb_func_start sub_815E9FC -sub_815E9FC: @ 815E9FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _0815EABC @ =0x00004001 - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - bl sub_815EBB8 - mov r9, r0 - ldr r0, _0815EAC0 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815EAC4 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r1, r0 - ldrb r5, [r1] - bl ZeroEnemyPartyMons - ldr r1, _0815EAC8 @ =gUnknown_203F458 - mov r10, r1 - ldr r6, [r1] - ldrb r1, [r6] - lsls r0, r1, 5 - subs r0, r1 - lsls r7, r0, 5 - adds r0, r6, r7 - ldrb r0, [r0, 0xE] - cmp r0, 0x1 - beq _0815EAD4 - cmp r0, 0x1 - ble _0815EA56 - cmp r0, 0x2 - bne _0815EA56 - b _0815EB58 -_0815EA56: - movs r6, 0 - lsls r5, 1 - str r5, [sp] - lsls r0, r4, 2 - mov r5, r10 - adds r0, r4 - lsls r0, 3 - adds r0, r4 - lsls r7, r0, 3 - adds r2, r7, 0x4 - mov r8, r2 -_0815EA6C: - ldr r1, _0815EACC @ =gUnknown_847A2EE - ldr r2, [sp] - adds r0, r6, r2 - adds r0, r1 - ldrb r2, [r0] - ldr r3, [r5] - movs r0, 0x2C - adds r4, r2, 0 - muls r4, r0 - adds r2, r4, r7 - ldrb r1, [r3] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 5 - adds r2, r0 - adds r3, r2 - adds r3, 0x5C - mov r0, r9 - strb r0, [r3] - movs r0, 0x64 - muls r0, r6 - ldr r1, _0815EAD0 @ =gEnemyParty - adds r0, r1 - ldr r1, [r5] - ldrb r3, [r1] - lsls r2, r3, 5 - subs r2, r3 - lsls r2, 5 - adds r2, 0xC - adds r1, r2 - add r1, r8 - adds r4, 0x40 - adds r1, r4 - bl sub_803E0A4 - adds r6, 0x1 - cmp r6, 0x1 - ble _0815EA6C - b _0815EB9E - .align 2, 0 -_0815EABC: .4byte 0x00004001 -_0815EAC0: .4byte gSaveBlock1Ptr -_0815EAC4: .4byte 0x00003d34 -_0815EAC8: .4byte gUnknown_203F458 -_0815EACC: .4byte gUnknown_847A2EE -_0815EAD0: .4byte gEnemyParty -_0815EAD4: - ldr r4, _0815EB50 @ =gUnknown_847A2FE - lsls r5, 1 - adds r0, r5, r4 - ldrb r2, [r0] - movs r1, 0x2C - mov r8, r1 - mov r3, r8 - muls r3, r2 - adds r0, r3, r7 - adds r0, r6, r0 - adds r0, 0x5C - mov r2, r9 - strb r2, [r0] - ldr r6, _0815EB54 @ =gEnemyParty - mov r0, r10 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r0, 0xC - adds r1, r0 - adds r3, 0x44 - adds r1, r3 - adds r0, r6, 0 - bl sub_803E0A4 - adds r4, 0x1 - adds r5, r4 - ldrb r2, [r5] - mov r0, r10 - ldr r1, [r0] - mov r3, r8 - muls r3, r2 - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r0, r3, r0 - adds r1, r0 - movs r2, 0xD2 - lsls r2, 1 - adds r1, r2 - mov r0, r9 - strb r0, [r1] - adds r6, 0x64 - mov r2, r10 - ldr r1, [r2] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r0, 0xC - adds r1, r0 - movs r0, 0xC6 - lsls r0, 1 - adds r3, r0 - adds r1, r3 - adds r0, r6, 0 - bl sub_803E0A4 - b _0815EB9E - .align 2, 0 -_0815EB50: .4byte gUnknown_847A2FE -_0815EB54: .4byte gEnemyParty -_0815EB58: - ldr r1, _0815EBB0 @ =gUnknown_847A30E - lsls r0, r5, 1 - adds r0, r5 - adds r0, r4, r0 - adds r0, r1 - ldrb r2, [r0] - movs r0, 0x2C - adds r5, r2, 0 - muls r5, r0 - lsls r3, r4, 2 - adds r3, r4 - lsls r3, 3 - adds r3, r4 - lsls r3, 3 - adds r0, r5, r3 - adds r0, r7 - adds r0, r6, r0 - adds r0, 0x5C - mov r1, r9 - strb r1, [r0] - ldr r0, _0815EBB4 @ =gEnemyParty - mov r2, r10 - ldr r1, [r2] - ldrb r4, [r1] - lsls r2, r4, 5 - subs r2, r4 - lsls r2, 5 - adds r2, 0xC - adds r1, r2 - adds r3, 0x4 - adds r1, r3 - adds r5, 0x40 - adds r1, r5 - bl sub_803E0A4 -_0815EB9E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815EBB0: .4byte gUnknown_847A30E -_0815EBB4: .4byte gEnemyParty - thumb_func_end sub_815E9FC - - thumb_func_start sub_815EBB8 -sub_815EBB8: @ 815EBB8 - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 -_0815EBBE: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0815EC08 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _0815EBF8 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _0815EBF8 - adds r0, r4, 0 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - cmp r0, r6 - ble _0815EBF8 - adds r6, r0, 0 -_0815EBF8: - adds r5, 0x1 - cmp r5, 0x5 - ble _0815EBBE - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0815EC08: .4byte gPlayerParty - thumb_func_end sub_815EBB8 - - thumb_func_start sub_815EC0C -sub_815EC0C: @ 815EC0C - push {r4,lr} - ldr r4, _0815EC70 @ =gSaveBlock1Ptr - ldr r2, [r4] - ldr r1, _0815EC74 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, _0815EC78 @ =0x00003d41 - adds r2, r0 - ldr r0, _0815EC7C @ =gUnknown_203F458 - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r0, [r2] - cmp r0, r1 - beq _0815EC6A - strb r1, [r2] - ldr r2, [r4] - ldr r1, _0815EC74 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r2, _0815EC80 @ =0x00003d3c - adds r0, r2 - ldr r1, _0815EC84 @ =0x00034bbf - bl sub_815EDF4 - ldr r1, [r4] - ldr r2, _0815EC74 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815EC88 @ =0x00003d42 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_0815EC6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815EC70: .4byte gSaveBlock1Ptr -_0815EC74: .4byte 0x00003d34 -_0815EC78: .4byte 0x00003d41 -_0815EC7C: .4byte gUnknown_203F458 -_0815EC80: .4byte 0x00003d3c -_0815EC84: .4byte 0x00034bbf -_0815EC88: .4byte 0x00003d42 - thumb_func_end sub_815EC0C - - thumb_func_start sub_815EC8C -sub_815EC8C: @ 815EC8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r8, r0 - bl sub_815DC8C - movs r0, 0xD8 - str r0, [sp] - movs r0, 0x90 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - bl sub_815EC0C - ldr r4, _0815EDB4 @ =gUnknown_847A22C - str r4, [sp] - mov r0, r8 - str r0, [sp, 0x4] - ldr r0, _0815EDB8 @ =gUnknown_83FE982 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x4A - movs r3, 0 - bl box_print - movs r7, 0 - movs r0, 0x90 - lsls r0, 22 - mov r10, r0 - ldr r0, _0815EDBC @ =0x00003d38 - mov r9, r0 -_0815ECDC: - ldr r0, _0815EDC0 @ =gSaveBlock1Ptr - ldr r0, [r0] - add r0, r9 - adds r0, 0x4 - bl sub_815EDDC - adds r4, r0, 0 - movs r5, 0xE1 - lsls r5, 4 - adds r1, r5, 0 - bl __divsi3 - adds r6, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - movs r1, 0x3C - bl __divsi3 - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0x3C - bl __modsi3 - movs r1, 0xA8 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - ldr r0, _0815EDC4 @ =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815EDC8 @ =gStringVar2 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815EDCC @ =gStringVar3 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815EDD0 @ =gStringVar4 - ldr r1, _0815EDD4 @ =gUnknown_83FE998 - bl StringExpandPlaceholders - lsls r1, r7, 2 - mov r0, r10 - lsrs r4, r0, 24 - ldr r0, _0815EDB4 @ =gUnknown_847A22C - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldr r0, _0815EDD8 @ =gUnknown_83FE9C4 - adds r1, r0 - ldr r0, [r1] - str r0, [sp, 0x8] - mov r0, r8 - movs r1, 0x2 - movs r2, 0x18 - adds r3, r4, 0 - bl box_print - ldr r0, _0815EDB4 @ =gUnknown_847A22C - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldr r0, _0815EDD0 @ =gStringVar4 - str r0, [sp, 0x8] - mov r0, r8 - movs r1, 0x2 - movs r2, 0x60 - adds r3, r4, 0 - bl box_print - movs r0, 0xA0 - lsls r0, 21 - add r10, r0 - movs r0, 0xC - add r9, r0 - adds r7, 0x1 - cmp r7, 0x3 - ble _0815ECDC - mov r0, r8 - bl PutWindowTilemap - mov r0, r8 - movs r1, 0x3 - bl CopyWindowToVram - bl sub_815DD2C - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815EDB4: .4byte gUnknown_847A22C -_0815EDB8: .4byte gUnknown_83FE982 -_0815EDBC: .4byte 0x00003d38 -_0815EDC0: .4byte gSaveBlock1Ptr -_0815EDC4: .4byte gStringVar1 -_0815EDC8: .4byte gStringVar2 -_0815EDCC: .4byte gStringVar3 -_0815EDD0: .4byte gStringVar4 -_0815EDD4: .4byte gUnknown_83FE998 -_0815EDD8: .4byte gUnknown_83FE9C4 - thumb_func_end sub_815EC8C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/trig.s b/asm/trig.s deleted file mode 100644 index ca1993b60..000000000 --- a/asm/trig.s +++ /dev/null @@ -1,97 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Sin -Sin: @ 8044E30 - lsls r1, 16 - asrs r1, 16 - ldr r2, _08044E48 @ =gUnknown_825E074 - lsls r0, 16 - asrs r0, 15 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - lsls r0, 8 - asrs r0, 16 - bx lr - .align 2, 0 -_08044E48: .4byte gUnknown_825E074 - thumb_func_end Sin - - thumb_func_start Cos -Cos: @ 8044E4C - lsls r1, 16 - asrs r1, 16 - ldr r2, _08044E68 @ =gUnknown_825E074 - lsls r0, 16 - asrs r0, 15 - adds r0, 0x80 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - lsls r0, 8 - asrs r0, 16 - bx lr - .align 2, 0 -_08044E68: .4byte gUnknown_825E074 - thumb_func_end Cos - - thumb_func_start Sin2 -Sin2: @ 8044E6C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r5, 0 - movs r1, 0xB4 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0xB4 - bl __udivsi3 - movs r1, 0x1 - ands r0, r1 - ldr r1, _08044EA0 @ =gUnknown_825E2F4 - lsls r4, 1 - adds r4, r1 - ldrh r1, [r4] - cmp r0, 0 - bne _08044EA4 - lsls r0, r1, 16 - b _08044EA8 - .align 2, 0 -_08044EA0: .4byte gUnknown_825E2F4 -_08044EA4: - lsls r0, r1, 16 - negs r0, r0 -_08044EA8: - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end Sin2 - - thumb_func_start Cos2 -Cos2: @ 8044EB0 - push {lr} - lsls r0, 16 - movs r1, 0xB4 - lsls r1, 15 - adds r0, r1 - lsrs r0, 16 - bl Sin2 - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end Cos2 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s index c61c9a3d8..6c917be27 100644 --- a/asm/union_room_chat.s +++ b/asm/union_room_chat.s @@ -200,7 +200,7 @@ sub_81285B4: @ 81285B4 bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 thumb_func_end sub_81285B4 @@ -1720,7 +1720,7 @@ _081291E8: bl sub_812B4B8 bl sub_8129B88 bl sub_81284BC - ldr r0, _08129214 @ =c2_exit_to_overworld_2_switch + ldr r0, _08129214 @ =CB2_ReturnToField bl SetMainCallback2 _08129206: add sp, 0x4 @@ -1729,7 +1729,7 @@ _08129206: bx r0 .align 2, 0 _08129210: .4byte gPaletteFade -_08129214: .4byte c2_exit_to_overworld_2_switch +_08129214: .4byte CB2_ReturnToField thumb_func_end sub_8128FB8 thumb_func_start sub_8129218 @@ -3046,7 +3046,7 @@ sub_8129B88: @ 8129B88 str r0, [r4] _08129B9E: bl FreeAllWindowBuffers - ldr r1, _08129BB4 @ =gUnknown_2039600 + ldr r1, _08129BB4 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] pop {r4} @@ -3054,7 +3054,7 @@ _08129B9E: bx r0 .align 2, 0 _08129BB0: .4byte gUnknown_203B0E4 -_08129BB4: .4byte gUnknown_2039600 +_08129BB4: .4byte gScanlineEffect thumb_func_end sub_8129B88 thumb_func_start sub_8129BB8 @@ -4288,7 +4288,7 @@ sub_812A424: @ 812A424 ldrb r0, [r0, 0x18] movs r1, 0x1 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter ldr r0, [r6] ldrb r0, [r0, 0x18] movs r1, 0xE @@ -4299,7 +4299,7 @@ sub_812A424: @ 812A424 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow _0812A4F0: add sp, 0x14 pop {r3} @@ -4329,7 +4329,7 @@ sub_812A51C: @ 812A51C lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldr r0, [r4] ldrb r0, [r0, 0x18] bl ClearWindowTilemap @@ -4495,7 +4495,7 @@ _0812A642: adds r0, r5, 0 movs r1, 0xA movs r2, 0x2 - bl sub_81501D0 + bl DrawTextBorderInner ldrb r3, [r4, 0x5] adds r3, 0x8 lsls r3, 24 @@ -4516,7 +4516,7 @@ _0812A642: adds r0, r5, 0 movs r1, 0x2 adds r2, r6, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 b _0812A6DA .align 2, 0 _0812A6AC: .4byte gUnknown_845AB64 @@ -4524,7 +4524,7 @@ _0812A6B0: adds r0, r5, 0 movs r1, 0xA movs r2, 0x2 - bl sub_8150048 + bl DrawTextBorderOuter ldrb r3, [r4, 0x5] ldrb r0, [r4, 0x6] str r0, [sp] @@ -4539,7 +4539,7 @@ _0812A6B0: adds r0, r5, 0 movs r1, 0x2 adds r2, r6, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 _0812A6DA: ldr r0, _0812A6F0 @ =gUnknown_203B0E4 ldr r0, [r0] @@ -4568,7 +4568,7 @@ sub_812A6F4: @ 812A6F4 lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldr r0, [r4] ldrb r0, [r0, 0x1E] bl ClearWindowTilemap @@ -4689,7 +4689,7 @@ _0812A7B4: movs r0, 0x1 movs r1, 0x2 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x34 pop {r3-r5} mov r8, r3 @@ -4767,7 +4767,7 @@ _0812A866: 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 @@ -4807,7 +4807,7 @@ _0812A8A8: 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 @@ -4858,7 +4858,7 @@ _0812A90C: 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] @@ -4870,7 +4870,7 @@ _0812A90C: movs r0, 0x2 movs r1, 0 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 _0812A960: ldr r7, [sp, 0x48] mov r4, r10 @@ -4980,7 +4980,7 @@ sub_812AA10: @ 812AA10 movs r0, 0x3 movs r1, 0x1 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter ldr r0, _0812AA60 @ =gUnknown_845ABEC str r0, [sp] movs r0, 0x3 @@ -5000,7 +5000,7 @@ sub_812AA10: @ 812AA10 movs r1, 0x2 movs r2, 0 movs r3, 0 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x3 bl PutWindowTilemap add sp, 0xC @@ -5015,7 +5015,7 @@ sub_812AA64: @ 812AA64 push {lr} movs r0, 0x3 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x3 bl ClearWindowTilemap pop {r0} @@ -5063,7 +5063,7 @@ sub_812AA78: @ 812AA78 movs r1, 0x2 movs r2, 0 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x10 pop {r4,r5} pop {r0} @@ -5350,19 +5350,19 @@ sub_812AD20: @ 812AD20 movs r0, 0x3 movs r1, 0x1 movs r2, 0xD0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0x3 movs r1, 0xA movs r2, 0x20 - bl sub_814FF2C - ldr r0, _0812AD4C @ =gUnknown_841F408 + bl TextWindow_SetStdFrame0_WithPal + ldr r0, _0812AD4C @ =gTMCaseMainWindowPalette movs r1, 0xE0 movs r2, 0x20 bl LoadPalette pop {r0} bx r0 .align 2, 0 -_0812AD4C: .4byte gUnknown_841F408 +_0812AD4C: .4byte gTMCaseMainWindowPalette thumb_func_end sub_812AD20 thumb_func_start sub_812AD50 @@ -5384,13 +5384,13 @@ sub_812AD50: @ 812AD50 strh r1, [r0, 0x20] str r1, [sp, 0xC] add r0, sp, 0xC - ldr r1, _0812AD98 @ =gUnknown_2038700 + ldr r1, _0812AD98 @ =gScanlineEffectRegBuffers ldr r2, _0812AD9C @ =0x010003c0 bl CpuFastSet ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams add sp, 0x10 pop {r0} bx r0 @@ -5398,7 +5398,7 @@ sub_812AD50: @ 812AD50 _0812AD8C: .4byte 0xa2600001 _0812AD90: .4byte 0x04000014 _0812AD94: .4byte gUnknown_203B0E4 -_0812AD98: .4byte gUnknown_2038700 +_0812AD98: .4byte gScanlineEffectRegBuffers _0812AD9C: .4byte 0x010003c0 thumb_func_end sub_812AD50 @@ -5410,12 +5410,12 @@ sub_812ADA0: @ 812ADA0 lsrs r0, 16 mov r1, sp strh r0, [r1] - ldr r5, _0812ADE8 @ =gUnknown_2039600 + ldr r5, _0812ADE8 @ =gScanlineEffect ldrb r0, [r5, 0x14] lsls r1, r0, 4 subs r1, r0 lsls r1, 7 - ldr r4, _0812ADEC @ =gUnknown_2038700 + ldr r4, _0812ADEC @ =gScanlineEffectRegBuffers adds r1, r4 ldr r2, _0812ADF0 @ =0x01000090 mov r0, sp @@ -5439,8 +5439,8 @@ sub_812ADA0: @ 812ADA0 pop {r0} bx r0 .align 2, 0 -_0812ADE8: .4byte gUnknown_2039600 -_0812ADEC: .4byte gUnknown_2038700 +_0812ADE8: .4byte gScanlineEffect +_0812ADEC: .4byte gScanlineEffectRegBuffers _0812ADF0: .4byte 0x01000090 _0812ADF4: .4byte 0x01000010 thumb_func_end sub_812ADA0 @@ -5457,7 +5457,7 @@ sub_812ADF8: @ 812ADF8 lsrs r4, 16 mov r0, sp strh r4, [r0] - ldr r5, _0812AE64 @ =gUnknown_2038700 + ldr r5, _0812AE64 @ =gScanlineEffectRegBuffers ldr r0, _0812AE68 @ =0x01000090 mov r9, r0 mov r0, sp @@ -5498,7 +5498,7 @@ sub_812ADF8: @ 812ADF8 pop {r0} bx r0 .align 2, 0 -_0812AE64: .4byte gUnknown_2038700 +_0812AE64: .4byte gScanlineEffectRegBuffers _0812AE68: .4byte 0x01000090 _0812AE6C: .4byte 0x01000010 thumb_func_end sub_812ADF8 diff --git a/asm/unk_810C3A4.s b/asm/unk_810C3A4.s deleted file mode 100644 index e7e825483..000000000 --- a/asm/unk_810C3A4.s +++ /dev/null @@ -1,389 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_810C3A4 -sub_810C3A4: @ 810C3A4 - push {lr} - ldr r0, _0810C3B4 @ =sub_810C3B8 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0810C3B4: .4byte sub_810C3B8 - thumb_func_end sub_810C3A4 - - thumb_func_start sub_810C3B8 -sub_810C3B8: @ 810C3B8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0810C43C @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0810C3E2 - bl walkrun_is_standing_still - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0810C3E2 - bl sub_805C270 - strh r4, [r5, 0x8] -_0810C3E2: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0810C41C - movs r4, 0 - ldr r7, _0810C440 @ =gMapObjects -_0810C3EE: - adds r0, r4, 0 - bl sub_810CF04 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810C412 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0, r7 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _0810C436 - adds r0, r1, 0 - bl FreezeMapObject -_0810C412: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _0810C3EE -_0810C41C: - movs r0, 0x1 - strh r0, [r5, 0xA] - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0810C436 - adds r0, r6, 0 - bl DestroyTask - bl sub_805C780 - bl EnableBothScriptContexts -_0810C436: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C43C: .4byte gTasks -_0810C440: .4byte gMapObjects - thumb_func_end sub_810C3B8 - - thumb_func_start sub_810C444 -sub_810C444: @ 810C444 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r0, _0810C4E0 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 4 - adds r1, r0 - mov r8, r1 - movs r7, 0 - ldr r0, _0810C4E4 @ =gMapHeader - ldr r1, [r0, 0x4] - adds r2, r0, 0 - ldrb r1, [r1] - cmp r7, r1 - bcs _0810C4D2 -_0810C466: - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 3 - mov r1, r8 - adds r5, r0, r1 - ldrh r0, [r5, 0xC] - cmp r0, 0x1 - beq _0810C47A - cmp r0, 0x3 - bne _0810C4C4 -_0810C47A: - ldrb r0, [r5, 0x9] - subs r0, 0x4D - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _0810C4C4 - bl sub_810CF54 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r5] - ldr r1, _0810C4E0 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r2, _0810C4E8 @ =gMapObjects - adds r4, r1, r2 - bl sub_810CF04 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810C4C0 - adds r0, r4, 0 - adds r1, r6, 0 - bl npc_set_running_behaviour_etc -_0810C4C0: - strb r6, [r5, 0x9] - ldr r2, _0810C4E4 @ =gMapHeader -_0810C4C4: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, [r2, 0x4] - ldrb r0, [r0] - cmp r7, r0 - bcc _0810C466 -_0810C4D2: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C4E0: .4byte gSaveBlock1Ptr -_0810C4E4: .4byte gMapHeader -_0810C4E8: .4byte gMapObjects - thumb_func_end sub_810C444 - - thumb_func_start sub_810C4EC -sub_810C4EC: @ 810C4EC - push {r4-r7,lr} - movs r0, 0xB5 - lsls r0, 1 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810C516 - ldr r0, _0810C568 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r2, 0xC7 - lsls r2, 3 - adds r1, r0, r2 - ldrh r2, [r1] - ldrb r0, [r1] - cmp r0, 0x63 - bhi _0810C516 - adds r0, r2, 0x1 - strh r0, [r1] -_0810C516: - ldr r7, _0810C56C @ =0x00000801 - adds r0, r7, 0 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810C570 - ldr r6, _0810C568 @ =gSaveBlock1Ptr - ldr r0, [r6] - movs r5, 0xC7 - lsls r5, 3 - adds r3, r0, r5 - ldrh r2, [r3] - lsrs r1, r2, 8 - movs r4, 0xFF - cmp r1, 0x63 - bhi _0810C548 - adds r1, 0x1 - lsls r1, 24 - movs r0, 0xFF - ands r0, r2 - lsrs r1, 16 - orrs r0, r1 - strh r0, [r3] -_0810C548: - ldr r0, [r6] - adds r0, r5 - ldrh r0, [r0] - lsrs r0, 8 - ands r0, r4 - cmp r0, 0x64 - bne _0810C570 - adds r0, r7, 0 - bl FlagClear - bl sub_810C640 - bl sub_810D0D0 - movs r0, 0x1 - b _0810C572 - .align 2, 0 -_0810C568: .4byte gSaveBlock1Ptr -_0810C56C: .4byte 0x00000801 -_0810C570: - movs r0, 0 -_0810C572: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C4EC - - thumb_func_start sub_810C578 -sub_810C578: @ 810C578 - push {lr} - ldr r0, _0810C590 @ =0x00000801 - bl FlagClear - bl sub_810C640 - bl sub_810D0D0 - bl sub_810C594 - pop {r0} - bx r0 - .align 2, 0 -_0810C590: .4byte 0x00000801 - thumb_func_end sub_810C578 - - thumb_func_start sub_810C594 -sub_810C594: @ 810C594 - push {r4-r7,lr} - movs r5, 0 - movs r6, 0 -_0810C59A: - lsls r0, r5, 3 - adds r0, r5 - lsls r0, 2 - ldr r1, _0810C5FC @ =gMapObjects - adds r4, r0, r1 - ldrb r0, [r4, 0x6] - subs r0, 0x4D - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _0810C5EA - bl sub_810CF54 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r4] - lsls r0, 31 - cmp r0, 0 - beq _0810C5EA - ldr r2, _0810C600 @ =gSprites - ldrb r0, [r4, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r7, 0x2E - ldrsh r0, [r1, r7] - cmp r0, r5 - bne _0810C5EA - strh r6, [r1, 0x24] - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x26] - adds r0, r4, 0 - adds r1, r3, 0 - bl npc_set_running_behaviour_etc -_0810C5EA: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _0810C59A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C5FC: .4byte gMapObjects -_0810C600: .4byte gSprites - thumb_func_end sub_810C594 - - thumb_func_start sub_810C604 -sub_810C604: @ 810C604 - ldr r0, _0810C61C @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0xC7 - lsls r0, 3 - adds r1, r0 - ldrh r2, [r1] - movs r0, 0xFF - lsls r0, 8 - ands r0, r2 - strh r0, [r1] - bx lr - .align 2, 0 -_0810C61C: .4byte gSaveBlock1Ptr - thumb_func_end sub_810C604 - - thumb_func_start sub_810C620 -sub_810C620: @ 810C620 - ldr r0, _0810C63C @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0xC7 - lsls r0, 3 - adds r2, r0 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - movs r1, 0x64 - orrs r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_0810C63C: .4byte gSaveBlock1Ptr - thumb_func_end sub_810C620 - - thumb_func_start sub_810C640 -sub_810C640: @ 810C640 - ldr r0, _0810C650 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xC7 - lsls r1, 3 - adds r0, r1 - ldrb r1, [r0] - strh r1, [r0] - bx lr - .align 2, 0 -_0810C650: .4byte gSaveBlock1Ptr - thumb_func_end sub_810C640 - - thumb_func_start sub_810C654 -sub_810C654: @ 810C654 - ldr r0, _0810C66C @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0xC7 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - movs r3, 0xC8 - lsls r3, 7 - adds r2, r3, 0 - orrs r0, r2 - strh r0, [r1] - bx lr - .align 2, 0 -_0810C66C: .4byte gSaveBlock1Ptr - thumb_func_end sub_810C654 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_8159F40.s b/asm/unk_8159F40.s deleted file mode 100644 index aefa4ecff..000000000 --- a/asm/unk_8159F40.s +++ /dev/null @@ -1,1623 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8159F40 -sub_8159F40: @ 8159F40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r10, r0 - mov r9, r0 - ldr r1, _08159F90 @ =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 9 - str r0, [r1] - bl ZeroPlayerPartyMons - bl ZeroEnemyPartyMons - ldr r1, _08159F94 @ =gUnknown_84792D0 - ldr r0, _08159F98 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - mov r8, r0 - movs r7, 0 -_08159F72: - lsls r0, r7, 4 - mov r2, r8 - adds r1, r0, r2 - ldrb r1, [r1] - adds r4, r0, 0 - cmp r1, 0 - bne _08159FA0 - movs r0, 0x64 - mov r1, r10 - muls r1, r0 - ldr r0, _08159F9C @ =gPlayerParty - adds r6, r1, r0 - movs r0, 0x1 - add r10, r0 - b _08159FAE - .align 2, 0 -_08159F90: .4byte gBattleTypeFlags -_08159F94: .4byte gUnknown_84792D0 -_08159F98: .4byte gSpecialVar_0x8004 -_08159F9C: .4byte gPlayerParty -_08159FA0: - movs r0, 0x64 - mov r1, r9 - muls r1, r0 - ldr r0, _0815A004 @ =gEnemyParty - adds r6, r1, r0 - movs r2, 0x1 - add r9, r2 -_08159FAE: - mov r0, r8 - adds r3, r4, r0 - ldrh r1, [r3, 0x2] - ldrb r2, [r3, 0x1] - ldrb r0, [r3, 0xD] - str r0, [sp] - ldrb r0, [r3, 0xC] - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r6, 0 - movs r3, 0 - bl CreateMonWithGenderNatureLetter - movs r5, 0 - adds r7, 0x1 - mov r0, r8 - adds r0, 0x4 - adds r4, r0 -_08159FD4: - ldrh r1, [r4] - lsls r2, r5, 24 - lsrs r2, 24 - adds r0, r6, 0 - bl SetMonMoveSlot - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _08159FD4 - lsls r0, r7, 4 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08159F72 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815A004: .4byte gEnemyParty - thumb_func_end sub_8159F40 - - thumb_func_start sub_815A008 -sub_815A008: @ 815A008 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r1, 0 - mov r8, r1 - movs r6, 0x1 - movs r2, 0x2 - negs r2, r2 - mov r12, r2 - adds r5, r0, 0 - adds r5, 0x8 - movs r7, 0 - movs r0, 0x41 - negs r0, r0 - mov r10, r0 - movs r1, 0x7F - mov r9, r1 -_0815A02E: - ldr r2, _0815A1F4 @ =gMapObjects - adds r3, r7, r2 - ldrb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - ands r0, r6 - ldrb r2, [r5] - mov r1, r12 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3] - lsls r0, 28 - lsrs r0, 31 - ands r0, r6 - lsls r0, 1 - movs r2, 0x3 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5] - ldrb r0, [r3] - lsls r0, 27 - lsrs r0, 31 - ands r0, r6 - lsls r0, 2 - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3] - lsls r0, 26 - lsrs r0, 31 - ands r0, r6 - lsls r0, 3 - movs r2, 0x9 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5] - ldrb r0, [r3, 0x1] - lsls r0, 31 - lsrs r0, 31 - ands r0, r6 - lsls r0, 4 - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3, 0x1] - lsls r0, 30 - lsrs r0, 31 - ands r0, r6 - lsls r0, 5 - movs r2, 0x21 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5] - ldrb r0, [r3, 0x1] - lsls r0, 29 - lsrs r0, 31 - ands r0, r6 - lsls r0, 6 - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3, 0x1] - lsls r0, 28 - lsrs r0, 31 - lsls r0, 7 - mov r2, r9 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3, 0x1] - lsls r0, 27 - lsrs r0, 31 - ands r0, r6 - ldrb r2, [r5, 0x1] - mov r1, r12 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 26 - lsrs r0, 31 - ands r0, r6 - lsls r0, 1 - movs r2, 0x3 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 25 - lsrs r0, 31 - ands r0, r6 - lsls r0, 2 - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r3, 0x1] - lsrs r0, 7 - ands r0, r6 - lsls r0, 3 - movs r2, 0x9 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 31 - lsrs r0, 31 - ands r0, r6 - lsls r0, 4 - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r3, 0x2] - lsrs r0, 7 - ands r0, r6 - lsls r0, 5 - movs r2, 0x21 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x1] - ldrb r0, [r3, 0x3] - lsls r0, 31 - lsrs r0, 31 - ands r0, r6 - lsls r0, 6 - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r3, 0x3] - lsls r0, 30 - lsrs r0, 31 - lsls r0, 7 - mov r2, r9 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r3, 0x3] - lsls r0, 29 - lsrs r0, 31 - ands r0, r6 - ldrb r2, [r5, 0x2] - mov r1, r12 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x2] - ldrb r2, [r3, 0x18] - lsls r2, 28 - lsrs r2, 27 - movs r0, 0x1F - negs r0, r0 - ands r1, r0 - orrs r1, r2 - strb r1, [r5, 0x2] - ldrb r1, [r3, 0xB] - lsls r1, 28 - movs r4, 0xF - lsrs r1, 28 - ldrb r2, [r5, 0x3] - adds r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] - ldrb r1, [r3, 0xB] - lsrs r1, 4 - lsls r1, 4 - ands r0, r4 - orrs r0, r1 - strb r0, [r5, 0x3] - ldrb r0, [r3, 0x5] - strb r0, [r5, 0x4] - ldrb r0, [r3, 0x6] - strb r0, [r5, 0x5] - ldrb r0, [r3, 0x7] - strb r0, [r5, 0x6] - ldrb r0, [r3, 0x8] - strb r0, [r5, 0x7] - ldrb r0, [r3, 0x9] - strb r0, [r5, 0x8] - ldrb r0, [r3, 0xA] - strb r0, [r5, 0x9] - ldrh r0, [r3, 0x10] - strh r0, [r5, 0xA] - ldrh r0, [r3, 0x12] - strh r0, [r5, 0xC] - ldrb r0, [r3, 0x1D] - strb r0, [r5, 0xE] - ldrb r0, [r3, 0x1F] - strb r0, [r5, 0xF] - adds r0, r3, 0 - adds r0, 0x21 - ldrb r0, [r0] - strb r0, [r5, 0x10] - adds r3, 0x22 - ldrb r0, [r3] - strb r0, [r5, 0x11] - adds r5, 0x14 - adds r7, 0x24 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0xF - bhi _0815A1E4 - b _0815A02E -_0815A1E4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815A1F4: .4byte gMapObjects - thumb_func_end sub_815A008 - - thumb_func_start sub_815A1F8 -sub_815A1F8: @ 815A1F8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - str r1, [sp, 0x4] - adds r0, 0x8 - str r0, [sp, 0x8] - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r4, _0815A480 @ =gMapObjects - ldr r2, _0815A484 @ =0x01000120 - mov r0, sp - adds r1, r4, 0 - bl CpuSet - movs r0, 0 - mov r12, r0 - movs r1, 0x1 - mov r10, r1 -_0815A224: - mov r2, r12 - lsls r7, r2, 3 - adds r5, r7, r2 - lsls r5, 2 - ldr r0, _0815A480 @ =gMapObjects - adds r5, r0 - lsls r6, r2, 2 - add r6, r12 - lsls r6, 2 - ldr r1, [sp, 0x8] - adds r6, r1 - ldrb r0, [r6] - lsls r0, 31 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - ldrb r2, [r5] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r6] - lsls r0, 30 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - lsls r0, 3 - movs r2, 0x9 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5] - ldrb r0, [r6] - lsls r0, 29 - lsrs r0, 31 - mov r1, r10 - ands r0, r1 - lsls r0, 4 - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r6] - lsls r0, 28 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - lsls r0, 5 - movs r4, 0x21 - negs r4, r4 - ands r1, r4 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r6] - lsls r0, 27 - lsrs r0, 31 - ands r0, r2 - ldrb r1, [r5, 0x1] - movs r2, 0x2 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x1] - ldrb r0, [r6] - lsls r0, 26 - lsrs r0, 31 - mov r1, r10 - ands r0, r1 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - mov r8, r1 - mov r3, r8 - ands r3, r2 - orrs r3, r0 - strb r3, [r5, 0x1] - ldrb r0, [r6] - lsls r0, 25 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - lsls r0, 2 - subs r1, 0x2 - mov r9, r1 - ands r1, r3 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r6] - lsrs r0, 7 - ands r0, r2 - lsls r0, 3 - movs r2, 0x9 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x1] - ldrb r0, [r6, 0x1] - lsls r0, 31 - lsrs r0, 31 - mov r1, r10 - ands r0, r1 - lsls r0, 4 - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r6, 0x1] - lsls r0, 30 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - lsls r0, 5 - ands r4, r1 - orrs r4, r0 - strb r4, [r5, 0x1] - ldrb r0, [r6, 0x1] - lsls r0, 29 - lsrs r0, 31 - ands r0, r2 - lsls r0, 6 - movs r2, 0x41 - negs r2, r2 - adds r1, r2, 0 - ands r4, r1 - orrs r4, r0 - strb r4, [r5, 0x1] - ldrb r0, [r6, 0x1] - lsls r0, 28 - lsrs r0, 31 - lsls r0, 7 - movs r3, 0x7F - ands r4, r3 - orrs r4, r0 - strb r4, [r5, 0x1] - ldrb r0, [r6, 0x1] - lsls r0, 27 - lsrs r0, 31 - mov r1, r10 - ands r0, r1 - ldrb r2, [r5, 0x2] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x2] - ldrb r0, [r6, 0x1] - lsls r0, 26 - lsrs r0, 31 - lsls r0, 7 - ands r1, r3 - orrs r1, r0 - strb r1, [r5, 0x2] - ldrb r0, [r6, 0x1] - lsls r0, 25 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - ldrb r2, [r5, 0x3] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x3] - ldrb r0, [r6, 0x1] - lsrs r0, 7 - mov r2, r10 - ands r0, r2 - lsls r0, 1 - mov r2, r8 - ands r2, r1 - orrs r2, r0 - mov r8, r2 - strb r2, [r5, 0x3] - ldrb r0, [r6, 0x2] - lsls r0, 31 - lsrs r0, 31 - mov r1, r10 - ands r0, r1 - lsls r0, 2 - mov r1, r9 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x3] - ldrb r1, [r6, 0x2] - lsls r1, 27 - lsrs r1, 28 - ldrb r2, [r5, 0x18] - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x18] - ldrb r1, [r6, 0x3] - lsls r1, 28 - movs r3, 0xF - lsrs r1, 28 - ldrb r2, [r5, 0xB] - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0xB] - ldrb r1, [r6, 0x3] - lsrs r1, 4 - lsls r1, 4 - ands r0, r3 - orrs r0, r1 - strb r0, [r5, 0xB] - ldrb r0, [r6, 0x4] - strb r0, [r5, 0x5] - ldrb r0, [r6, 0x5] - strb r0, [r5, 0x6] - ldrb r0, [r6, 0x6] - strb r0, [r5, 0x7] - ldrb r0, [r6, 0x7] - strb r0, [r5, 0x8] - ldrb r0, [r6, 0x8] - strb r0, [r5, 0x9] - ldrb r0, [r6, 0x9] - strb r0, [r5, 0xA] - ldrh r0, [r6, 0xA] - strh r0, [r5, 0x10] - ldrh r0, [r6, 0xC] - strh r0, [r5, 0x12] - ldrb r0, [r6, 0xE] - strb r0, [r5, 0x1D] - ldrb r0, [r6, 0xF] - strb r0, [r5, 0x1F] - ldrb r0, [r6, 0x10] - adds r1, r5, 0 - adds r1, 0x21 - strb r0, [r1] - ldrb r0, [r6, 0x11] - adds r1, 0x1 - strb r0, [r1] - movs r6, 0 - mov r8, r7 - mov r2, r12 - adds r2, 0x1 - str r2, [sp, 0xC] - ldrb r7, [r5, 0x8] - ldr r3, [sp, 0x4] - movs r0, 0xF - mov r9, r0 -_0815A412: - ldrb r1, [r3] - cmp r7, r1 - bne _0815A444 - ldrh r0, [r3, 0x4] - adds r0, 0x7 - strh r0, [r5, 0xC] - ldrh r0, [r3, 0x6] - adds r0, 0x7 - strh r0, [r5, 0xE] - ldrb r1, [r3, 0xA] - lsls r1, 28 - lsrs r1, 28 - mov r2, r9 - ands r1, r2 - ldrb r0, [r5, 0x19] - ands r0, r4 - orrs r0, r1 - strb r0, [r5, 0x19] - ldrb r1, [r3, 0xA] - lsrs r1, 4 - lsls r1, 4 - movs r2, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x19] -_0815A444: - adds r3, 0x18 - adds r6, 0x1 - cmp r6, 0x3F - bls _0815A412 - mov r0, r8 - add r0, r12 - lsls r0, 2 - ldr r1, _0815A480 @ =gMapObjects - adds r6, r0, r1 - movs r2, 0x10 - ldrsh r0, [r6, r2] - movs r2, 0x12 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - strb r0, [r6, 0x1E] - ldrb r4, [r6, 0x1F] - movs r1, 0x10 - ldrsh r0, [r6, r1] - movs r2, 0x12 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - cmp r4, r0 - bne _0815A488 - ldrh r0, [r6, 0x10] - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x12] - b _0815A506 - .align 2, 0 -_0815A480: .4byte gMapObjects -_0815A484: .4byte 0x01000120 -_0815A488: - ldrb r4, [r6, 0x1F] - ldrh r0, [r6, 0x10] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - cmp r4, r0 - bne _0815A4A8 - ldrh r0, [r6, 0x10] - subs r0, 0x1 - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x12] - b _0815A506 -_0815A4A8: - ldrb r4, [r6, 0x1F] - ldrh r0, [r6, 0x10] - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - cmp r4, r0 - bne _0815A4C8 - ldrh r0, [r6, 0x10] - adds r0, 0x1 - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x12] - b _0815A506 -_0815A4C8: - ldrb r4, [r6, 0x1F] - movs r1, 0x10 - ldrsh r0, [r6, r1] - ldrh r1, [r6, 0x12] - subs r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - cmp r4, r0 - bne _0815A4E8 - ldrh r0, [r6, 0x10] - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x12] - subs r0, 0x1 - b _0815A506 -_0815A4E8: - ldrb r4, [r6, 0x1F] - movs r2, 0x10 - ldrsh r0, [r6, r2] - ldrh r1, [r6, 0x12] - adds r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - cmp r4, r0 - bne _0815A508 - ldrh r0, [r6, 0x10] - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x12] - adds r0, 0x1 -_0815A506: - strh r0, [r6, 0x16] -_0815A508: - ldr r0, [sp, 0xC] - mov r12, r0 - cmp r0, 0xF - bhi _0815A512 - b _0815A224 -_0815A512: - ldr r0, _0815A538 @ =gMapObjects - ldr r1, _0815A53C @ =gSaveBlock1Ptr - ldr r1, [r1] - movs r2, 0xD4 - lsls r2, 3 - adds r1, r2 - movs r2, 0x90 - lsls r2, 1 - bl CpuSet - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815A538: .4byte gMapObjects -_0815A53C: .4byte gSaveBlock1Ptr - thumb_func_end sub_815A1F8 - - thumb_func_start sub_815A540 -sub_815A540: @ 815A540 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0815A5AC @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _0815A5A4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsSurfable - lsls r0, 24 - cmp r0, 0 - bne _0815A5A4 - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0815A5A4 - ldr r0, _0815A5B0 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _0815A5B4 @ =gMapObjects - adds r4, r0 - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - ldrb r1, [r4, 0x1A] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815A5B8 @ =gSprites - adds r0, r1 - bl DestroySprite -_0815A5A4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A5AC: .4byte gUnknown_203ADFA -_0815A5B0: .4byte gPlayerAvatar -_0815A5B4: .4byte gMapObjects -_0815A5B8: .4byte gSprites - thumb_func_end sub_815A540 - - thumb_func_start sub_815A5BC -sub_815A5BC: @ 815A5BC - push {lr} - sub sp, 0x8 - ldr r3, _0815A5E4 @ =0xffffff00 - ldr r1, [sp] - ands r1, r3 - movs r2, 0x1 - orrs r1, r2 - str r1, [sp] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp, 0x4] - ands r1, r3 - orrs r1, r0 - str r1, [sp, 0x4] - mov r0, sp - bl sub_80F9E2C - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0815A5E4: .4byte 0xffffff00 - thumb_func_end sub_815A5BC - - thumb_func_start sub_815A5E8 -sub_815A5E8: @ 815A5E8 - push {lr} - adds r2, r0, 0 - ldr r3, _0815A610 @ =gUnknown_3003ED0 - ldrh r0, [r3] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0815A60A - lsls r0, r2, 4 - adds r1, r3, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0x1 - beq _0815A614 -_0815A60A: - movs r0, 0 - b _0815A616 - .align 2, 0 -_0815A610: .4byte gUnknown_3003ED0 -_0815A614: - ldrb r0, [r1, 0x4] -_0815A616: - pop {r1} - bx r1 - thumb_func_end sub_815A5E8 - - thumb_func_start sub_815A61C -sub_815A61C: @ 815A61C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r4, [sp, 0x48] - lsls r4, 24 - str r4, [sp, 0x1C] - movs r4, 0x14 - adds r4, r0 - mov r9, r4 - mov r5, sp - movs r4, 0x2 - strb r4, [r5] - mov r10, sp - mov r5, r9 - ldrb r4, [r5, 0xB] - movs r7, 0xF - adds r5, r7, 0 - ands r5, r4 - mov r6, r10 - ldrb r6, [r6, 0x1] - mov r8, r6 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x1] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0xC] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x1] - ldrb r5, [r6, 0xD] - movs r6, 0xF - ands r5, r6 - mov r4, r10 - ldrb r4, [r4, 0x2] - mov r8, r4 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x2] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0xE] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x2] - ldrb r5, [r6, 0xF] - movs r6, 0xF - ands r5, r6 - mov r4, r10 - ldrb r4, [r4, 0x3] - mov r8, r4 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x3] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0x10] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x3] - ldrb r5, [r6, 0x11] - movs r6, 0xF - ands r5, r6 - mov r4, r10 - ldrb r4, [r4, 0x4] - mov r8, r4 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x4] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0x12] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x4] - ldrb r4, [r6, 0x13] - movs r6, 0xF - ands r4, r6 - mov r6, r8 - ldrb r5, [r6, 0x5] - movs r6, 0x10 - negs r6, r6 - ands r6, r5 - orrs r6, r4 - str r6, [sp, 0xC] - mov r4, r8 - strb r6, [r4, 0x5] - mov r5, sp - mov r6, r9 - ldrb r4, [r6, 0x14] - lsls r4, 4 - ldr r6, [sp, 0xC] - ands r6, r7 - orrs r6, r4 - strb r6, [r5, 0x5] - mov r7, sp - movs r4, 0x3 - mov r8, r4 - ldrb r0, [r0, 0x14] - mov r5, r8 - ands r0, r5 - ldrb r5, [r7, 0x6] - movs r6, 0x4 - negs r6, r6 - mov r10, r6 - mov r4, r10 - ands r4, r5 - orrs r4, r0 - strb r4, [r7, 0x6] - mov r5, r9 - ldrb r0, [r5, 0x1] - mov r6, r8 - ands r0, r6 - lsls r0, 2 - movs r5, 0xD - negs r5, r5 - ands r5, r4 - orrs r5, r0 - strb r5, [r7, 0x6] - mov r0, r9 - ldrb r4, [r0, 0x2] - ands r4, r6 - lsls r4, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r5 - orrs r0, r4 - strb r0, [r7, 0x6] - mov r5, sp - mov r6, r9 - ldrb r4, [r6, 0x3] - lsls r4, 6 - movs r6, 0x3F - ands r0, r6 - orrs r0, r4 - strb r0, [r5, 0x6] - mov r4, r9 - ldrb r0, [r4, 0x4] - mov r5, r8 - ands r0, r5 - ldrb r5, [r7, 0x7] - mov r4, r10 - ands r4, r5 - orrs r4, r0 - strb r4, [r7, 0x7] - mov r6, r9 - ldrb r0, [r6, 0x5] - mov r5, r8 - ands r0, r5 - lsls r0, 2 - movs r5, 0xD - negs r5, r5 - ands r5, r4 - orrs r5, r0 - strb r5, [r7, 0x7] - ldrb r4, [r6, 0x6] - mov r6, r8 - ands r4, r6 - lsls r4, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r5 - orrs r0, r4 - strb r0, [r7, 0x7] - mov r5, sp - mov r6, r9 - ldrb r4, [r6, 0x7] - lsls r4, 6 - movs r6, 0x3F - ands r0, r6 - orrs r0, r4 - strb r0, [r5, 0x7] - mov r8, sp - mov r0, r9 - ldrb r4, [r0, 0x8] - movs r7, 0x3 - adds r0, r7, 0 - ands r0, r4 - mov r4, r8 - ldrb r5, [r4, 0x8] - mov r4, r10 - ands r4, r5 - orrs r4, r0 - mov r5, r8 - strb r4, [r5, 0x8] - mov r6, r9 - ldrb r5, [r6, 0x9] - adds r0, r7, 0 - ands r0, r5 - lsls r0, 2 - movs r5, 0xD - negs r5, r5 - ands r5, r4 - orrs r5, r0 - mov r0, r8 - strb r5, [r0, 0x8] - ldrb r0, [r1] - adds r4, r7, 0 - ands r4, r0 - lsls r4, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r5 - orrs r0, r4 - mov r4, r8 - strb r0, [r4, 0x8] - mov r5, sp - ldrb r4, [r2] - lsls r4, 6 - movs r6, 0x3F - ands r0, r6 - orrs r0, r4 - strb r0, [r5, 0x8] - ldrb r4, [r3] - adds r0, r7, 0 - ands r0, r4 - ldrb r4, [r5, 0x9] - mov r6, r10 - ands r6, r4 - orrs r6, r0 - mov r10, r6 - strb r6, [r5, 0x9] - ldr r0, [sp, 0x40] - ldrb r4, [r0] - adds r0, r7, 0 - ands r0, r4 - lsls r0, 2 - movs r4, 0xD - negs r4, r4 - ands r6, r4 - orrs r6, r0 - str r6, [sp, 0x10] - strb r6, [r5, 0x9] - mov r4, sp - ldr r5, [sp, 0x44] - ldrb r0, [r5] - adds r6, r7, 0 - ands r6, r0 - lsls r0, r6, 4 - subs r7, 0x34 - ldr r5, [sp, 0x10] - ands r7, r5 - orrs r7, r0 - strb r7, [r4, 0x9] - mov r5, sp - ldrb r0, [r1, 0x4] - movs r6, 0x1 - mov r12, r6 - mov r4, r12 - ands r4, r0 - lsls r4, 6 - movs r0, 0x41 - negs r0, r0 - mov r10, r0 - ands r0, r7 - orrs r0, r4 - strb r0, [r5, 0x9] - ldrb r4, [r2, 0x4] - lsls r4, 7 - movs r5, 0x7F - ands r0, r5 - orrs r0, r4 - mov r4, r8 - strb r0, [r4, 0x9] - ldrb r4, [r3, 0x4] - mov r0, r12 - ands r0, r4 - mov r5, r8 - ldrb r4, [r5, 0xA] - movs r7, 0x2 - negs r7, r7 - adds r5, r7, 0 - ands r5, r4 - orrs r5, r0 - mov r6, r8 - strb r5, [r6, 0xA] - mov r9, sp - ldr r4, [sp, 0x40] - ldrb r0, [r4, 0x4] - mov r4, r12 - ands r4, r0 - lsls r4, 1 - movs r6, 0x3 - negs r6, r6 - mov r8, r6 - mov r0, r8 - ands r0, r5 - orrs r0, r4 - mov r4, r9 - strb r0, [r4, 0xA] - ldr r6, [sp, 0x44] - ldrb r5, [r6, 0x4] - mov r4, r12 - ands r4, r5 - lsls r4, 2 - movs r5, 0x5 - negs r5, r5 - ands r0, r5 - orrs r0, r4 - mov r4, r9 - strb r0, [r4, 0xA] - mov r4, sp - ldrb r1, [r1, 0x8] - mov r0, r12 - ands r0, r1 - lsls r0, 2 - ldrb r1, [r4, 0xB] - ands r5, r1 - orrs r5, r0 - strb r5, [r4, 0xB] - ldrb r1, [r2, 0x8] - mov r0, r12 - ands r0, r1 - lsls r0, 3 - movs r1, 0x9 - negs r1, r1 - ands r1, r5 - orrs r1, r0 - strb r1, [r4, 0xB] - ldrb r2, [r3, 0x8] - mov r0, r12 - ands r0, r2 - lsls r0, 4 - movs r2, 0x11 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, 0xB] - mov r3, sp - ldr r5, [sp, 0x40] - ldrb r0, [r5, 0x8] - mov r1, r12 - ands r1, r0 - lsls r1, 5 - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0xB] - mov r2, sp - ldrb r1, [r6, 0x8] - mov r6, r12 - ands r6, r1 - lsls r1, r6, 6 - mov r3, r10 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0xB] - ldr r4, [sp, 0x1C] - lsrs r3, r4, 21 - ldrb r1, [r2, 0xA] - movs r0, 0x7 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0xA] - mov r1, sp - ldr r5, [sp, 0x4C] - movs r6, 0x1 - ands r5, r6 - lsls r2, r5, 1 - ldrb r0, [r1, 0xB] - mov r3, r8 - ands r3, r0 - orrs r3, r2 - mov r8, r3 - strb r3, [r1, 0xB] - mov r0, sp - ldr r4, [sp, 0x50] - ands r4, r6 - mov r5, r8 - ands r5, r7 - orrs r5, r4 - strb r5, [r0, 0xB] - bl sub_80F9E2C - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815A61C - - thumb_func_start sub_815A950 -sub_815A950: @ 815A950 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r0, [sp, 0x1C] - mov r12, r0 - ldr r1, [sp, 0x20] - mov r8, r1 - ldr r0, [sp, 0x24] - mov r9, r0 - adds r2, r7, 0 - adds r2, 0x14 - ldr r4, _0815A98C @ =gUnknown_3003ED0 - ldrh r0, [r4] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0815A988 - adds r3, r4, 0x2 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _0815A990 -_0815A988: - movs r0, 0 - b _0815AACA - .align 2, 0 -_0815A98C: .4byte gUnknown_3003ED0 -_0815A990: - ldrb r0, [r3, 0x1] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0xB] - ldrb r0, [r3, 0x1] - lsrs r0, 4 - strb r0, [r2, 0xC] - ldrb r0, [r3, 0x2] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0xD] - ldrb r0, [r3, 0x2] - lsrs r0, 4 - strb r0, [r2, 0xE] - ldrb r0, [r3, 0x3] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0xF] - ldrb r0, [r3, 0x3] - lsrs r0, 4 - strb r0, [r2, 0x10] - ldrb r0, [r3, 0x4] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0x11] - ldrb r0, [r3, 0x4] - lsrs r0, 4 - strb r0, [r2, 0x12] - ldrb r0, [r3, 0x5] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0x13] - ldrb r0, [r3, 0x5] - lsrs r0, 4 - strb r0, [r2, 0x14] - ldrb r0, [r3, 0x1] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0x15] - ldrb r0, [r3, 0x6] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r7, 0x14] - ldrb r0, [r3, 0x6] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r2, 0x1] - ldrb r0, [r3, 0x6] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r2, 0x2] - ldrb r0, [r3, 0x6] - lsrs r0, 6 - strb r0, [r2, 0x3] - ldrb r0, [r3, 0x7] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r2, 0x4] - ldrb r0, [r3, 0x7] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r2, 0x5] - ldrb r0, [r3, 0x7] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r2, 0x6] - ldrb r0, [r3, 0x7] - lsrs r0, 6 - strb r0, [r2, 0x7] - ldrb r0, [r3, 0x8] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r2, 0x8] - ldrb r0, [r3, 0x8] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r2, 0x9] - ldrb r0, [r3, 0x6] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r2, 0xA] - ldrb r0, [r3, 0x8] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r5] - ldrb r0, [r3, 0x9] - lsls r0, 25 - lsrs r0, 31 - strb r0, [r5, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 29 - lsrs r0, 31 - strb r0, [r5, 0x8] - ldrb r0, [r3, 0x8] - lsrs r0, 6 - strb r0, [r6] - ldrb r0, [r3, 0x9] - lsrs r0, 7 - strb r0, [r6, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 28 - lsrs r0, 31 - strb r0, [r6, 0x8] - ldrb r0, [r3, 0x9] - lsls r0, 30 - lsrs r0, 30 - mov r1, r12 - strb r0, [r1] - ldrb r0, [r3, 0xA] - lsls r0, 31 - lsrs r0, 31 - strb r0, [r1, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 27 - lsrs r0, 31 - strb r0, [r1, 0x8] - ldrb r0, [r3, 0x9] - lsls r0, 28 - lsrs r0, 30 - mov r1, r8 - strb r0, [r1] - ldrb r0, [r3, 0xA] - lsls r0, 30 - lsrs r0, 31 - strb r0, [r1, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 26 - lsrs r0, 31 - strb r0, [r1, 0x8] - ldrb r0, [r3, 0x9] - lsls r0, 26 - lsrs r0, 30 - mov r1, r9 - strb r0, [r1] - ldrb r0, [r3, 0xA] - lsls r0, 29 - lsrs r0, 31 - strb r0, [r1, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 25 - lsrs r0, 31 - strb r0, [r1, 0x8] - ldrb r0, [r3, 0xA] - lsrs r0, 3 - ldr r1, [sp, 0x28] - strb r0, [r1] - ldrb r0, [r3, 0xB] - lsls r0, 30 - lsrs r0, 31 - ldr r1, [sp, 0x2C] - str r0, [r1] - ldrb r0, [r3, 0xB] - lsls r0, 31 - lsrs r0, 31 - ldr r1, [sp, 0x30] - str r0, [r1] - movs r0, 0x1 -_0815AACA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_815A950 - - thumb_func_start sub_815AAD8 -sub_815AAD8: @ 815AAD8 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0815AB00 @ =0xffffff00 - ldr r1, [sp] - ands r1, r3 - movs r2, 0x3 - orrs r1, r2 - str r1, [sp] - ldr r1, [sp, 0x4] - ands r1, r3 - orrs r1, r0 - str r1, [sp, 0x4] - mov r0, sp - bl sub_80F9E2C - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0815AB00: .4byte 0xffffff00 - thumb_func_end sub_815AAD8 - - thumb_func_start sub_815AB04 -sub_815AB04: @ 815AB04 - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - ldr r3, _0815AB2C @ =gUnknown_3003ED0 - ldrh r0, [r3] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0815AB28 - lsls r0, r2, 4 - adds r1, r3, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0x3 - beq _0815AB30 -_0815AB28: - movs r0, 0 - b _0815AB36 - .align 2, 0 -_0815AB2C: .4byte gUnknown_3003ED0 -_0815AB30: - ldrb r0, [r1, 0x4] - strb r0, [r4] - movs r0, 0x1 -_0815AB36: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_815AB04 - - thumb_func_start sub_815AB3C -sub_815AB3C: @ 815AB3C - push {lr} - sub sp, 0x8 - ldr r2, _0815AB5C @ =0xffffff00 - ldr r1, [sp] - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - str r1, [sp] - str r0, [sp, 0x4] - mov r0, sp - bl sub_80F9E2C - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0815AB5C: .4byte 0xffffff00 - thumb_func_end sub_815AB3C - - thumb_func_start sub_815AB60 -sub_815AB60: @ 815AB60 - push {lr} - adds r2, r0, 0 - ldr r3, _0815AB88 @ =gUnknown_3003ED0 - ldrh r0, [r3] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0815AB82 - lsls r0, r2, 4 - adds r1, r3, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0x4 - beq _0815AB8C -_0815AB82: - movs r0, 0 - b _0815AB8E - .align 2, 0 -_0815AB88: .4byte gUnknown_3003ED0 -_0815AB8C: - ldr r0, [r1, 0x4] -_0815AB8E: - pop {r1} - bx r1 - thumb_func_end sub_815AB60 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_815C27C.s b/asm/unk_815C27C.s deleted file mode 100644 index 067ab8659..000000000 --- a/asm/unk_815C27C.s +++ /dev/null @@ -1,920 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815C27C -sub_815C27C: @ 815C27C - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - bl sub_815C8C8 - movs r7, 0x2 - ldr r4, _0815C2BC @ =gUnknown_3003F84 -_0815C28C: - bl sub_815C898 - ldr r0, _0815C2C0 @ =gUnknown_3002062 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0815C29E - strb r7, [r4] -_0815C29E: - movs r0, 0x1 - adds r1, r6, 0 - adds r2, r5, 0 - movs r3, 0 - bl sub_815C498 - adds r1, r0, 0 - ldr r0, _0815C2C4 @ =gUnknown_3002064 - strh r1, [r0] - movs r0, 0x13 - ands r0, r1 - cmp r0, 0x10 - bne _0815C2C8 - movs r4, 0 - b _0815C2EA - .align 2, 0 -_0815C2BC: .4byte gUnknown_3003F84 -_0815C2C0: .4byte gUnknown_3002062 -_0815C2C4: .4byte gUnknown_3002064 -_0815C2C8: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0815C2D4 - movs r4, 0x1 - b _0815C2EA -_0815C2D4: - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0815C2E8 - strb r0, [r4] - bl VBlankIntrWait - b _0815C28C -_0815C2E8: - movs r4, 0x2 -_0815C2EA: - movs r0, 0 - str r0, [sp] - ldr r1, _0815C308 @ =gUnknown_3002048 - ldr r2, _0815C30C @ =0x05000006 - mov r0, sp - bl CpuSet - bl sub_815C91C - adds r0, r4, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0815C308: .4byte gUnknown_3002048 -_0815C30C: .4byte 0x05000006 - thumb_func_end sub_815C27C - - thumb_func_start sub_815C310 -sub_815C310: @ 815C310 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_815C8C8 - movs r6, 0x2 - ldr r4, _0815C350 @ =gUnknown_3003F84 -_0815C31E: - bl sub_815C898 - ldr r0, _0815C354 @ =gUnknown_3002062 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0815C330 - strb r6, [r4] -_0815C330: - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_815C498 - adds r1, r0, 0 - ldr r0, _0815C358 @ =gUnknown_3002064 - strh r1, [r0] - movs r0, 0x13 - ands r0, r1 - cmp r0, 0x10 - bne _0815C35C - movs r4, 0 - b _0815C37E - .align 2, 0 -_0815C350: .4byte gUnknown_3003F84 -_0815C354: .4byte gUnknown_3002062 -_0815C358: .4byte gUnknown_3002064 -_0815C35C: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0815C368 - movs r4, 0x1 - b _0815C37E -_0815C368: - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0815C37C - strb r0, [r4] - bl VBlankIntrWait - b _0815C31E -_0815C37C: - movs r4, 0x2 -_0815C37E: - movs r0, 0 - str r0, [sp] - ldr r1, _0815C39C @ =gUnknown_3002048 - ldr r2, _0815C3A0 @ =0x05000006 - mov r0, sp - bl CpuSet - bl sub_815C91C - adds r0, r4, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0815C39C: .4byte gUnknown_3002048 -_0815C3A0: .4byte 0x05000006 - thumb_func_end sub_815C310 - - thumb_func_start sub_815C3A4 -sub_815C3A4: @ 815C3A4 - push {r4,lr} - ldr r4, _0815C3D0 @ =0x04000208 - movs r3, 0 - strh r3, [r4] - ldr r2, _0815C3D4 @ =0x04000200 - ldrh r1, [r2] - ldr r0, _0815C3D8 @ =0x0000ff3f - ands r0, r1 - strh r0, [r2] - movs r0, 0x1 - strh r0, [r4] - ldr r0, _0815C3DC @ =0x04000128 - strh r3, [r0] - subs r0, 0x1A - strh r3, [r0] - ldr r1, _0815C3E0 @ =0x04000202 - movs r0, 0xC0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815C3D0: .4byte 0x04000208 -_0815C3D4: .4byte 0x04000200 -_0815C3D8: .4byte 0x0000ff3f -_0815C3DC: .4byte 0x04000128 -_0815C3E0: .4byte 0x04000202 - thumb_func_end sub_815C3A4 - - thumb_func_start sub_815C3E4 -sub_815C3E4: @ 815C3E4 - push {r4-r7,lr} - sub sp, 0x4 - ldr r5, _0815C43C @ =0x04000208 - movs r4, 0 - strh r4, [r5] - ldr r3, _0815C440 @ =0x04000200 - ldrh r1, [r3] - ldr r0, _0815C444 @ =0x0000ff3f - ands r0, r1 - strh r0, [r3] - movs r6, 0x1 - strh r6, [r5] - ldr r0, _0815C448 @ =0x04000134 - strh r4, [r0] - ldr r2, _0815C44C @ =0x04000128 - movs r1, 0x80 - lsls r1, 6 - adds r0, r1, 0 - strh r0, [r2] - ldrh r0, [r2] - ldr r7, _0815C450 @ =0x00004003 - adds r1, r7, 0 - orrs r0, r1 - strh r0, [r2] - strh r4, [r5] - ldrh r0, [r3] - movs r1, 0x80 - orrs r0, r1 - strh r0, [r3] - strh r6, [r5] - ldr r1, _0815C454 @ =gUnknown_3002048 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _0815C432 - str r0, [sp] - ldr r2, _0815C458 @ =0x05000006 - mov r0, sp - bl CpuSet -_0815C432: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815C43C: .4byte 0x04000208 -_0815C440: .4byte 0x04000200 -_0815C444: .4byte 0x0000ff3f -_0815C448: .4byte 0x04000134 -_0815C44C: .4byte 0x04000128 -_0815C450: .4byte 0x00004003 -_0815C454: .4byte gUnknown_3002048 -_0815C458: .4byte 0x05000006 - thumb_func_end sub_815C3E4 - - thumb_func_start sub_815C45C -sub_815C45C: @ 815C45C - ldr r0, _0815C484 @ =0x04000134 - movs r3, 0 - strh r3, [r0] - ldr r2, _0815C488 @ =0x04000128 - movs r1, 0xA0 - lsls r1, 7 - adds r0, r1, 0 - strh r0, [r2] - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0815C48C @ =gUnknown_3003F84 - strb r3, [r0] - ldr r0, _0815C490 @ =gUnknown_3002066 - strh r3, [r0] - ldr r1, _0815C494 @ =gUnknown_3002068 - movs r0, 0 - str r0, [r1] - bx lr - .align 2, 0 -_0815C484: .4byte 0x04000134 -_0815C488: .4byte 0x04000128 -_0815C48C: .4byte gUnknown_3003F84 -_0815C490: .4byte gUnknown_3002066 -_0815C494: .4byte gUnknown_3002068 - thumb_func_end sub_815C45C - - thumb_func_start sub_815C498 -sub_815C498: @ 815C498 - push {r4-r6,lr} - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0815C4B8 @ =gUnknown_3002048 - ldrb r0, [r0, 0x1] - cmp r0, 0x6 - bls _0815C4AE - b _0815C5F4 -_0815C4AE: - lsls r0, 2 - ldr r1, _0815C4BC @ =_0815C4C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815C4B8: .4byte gUnknown_3002048 -_0815C4BC: .4byte _0815C4C0 - .align 2, 0 -_0815C4C0: - .4byte _0815C4DC - .4byte _0815C4F0 - .4byte _0815C510 - .4byte _0815C524 - .4byte _0815C59C - .4byte _0815C5AC - .4byte _0815C5E4 -_0815C4DC: - bl sub_815C3E4 - ldr r1, _0815C4EC @ =gUnknown_3002048 - movs r0, 0x1 - strb r0, [r1, 0x2] - strb r0, [r1, 0x1] - b _0815C5F4 - .align 2, 0 -_0815C4EC: .4byte gUnknown_3002048 -_0815C4F0: - adds r0, r2, 0 - bl sub_815C610 - lsls r0, 16 - cmp r0, 0 - beq _0815C500 - bl sub_815C864 -_0815C500: - ldr r0, _0815C50C @ =gUnknown_3003F84 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0815C50A - b _0815C5F4 -_0815C50A: - b _0815C52C - .align 2, 0 -_0815C50C: .4byte gUnknown_3003F84 -_0815C510: - bl sub_815C45C - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_815C644 - ldr r1, _0815C538 @ =gUnknown_3002048 - movs r0, 0x3 - strb r0, [r1, 0x1] -_0815C524: - ldr r0, _0815C53C @ =gUnknown_3003F84 - ldrb r0, [r0] - cmp r0, 0x2 - bne _0815C540 -_0815C52C: - ldr r1, _0815C538 @ =gUnknown_3002048 - strb r0, [r1, 0x4] - movs r0, 0x6 - strb r0, [r1, 0x1] - b _0815C5F4 - .align 2, 0 -_0815C538: .4byte gUnknown_3002048 -_0815C53C: .4byte gUnknown_3003F84 -_0815C540: - ldr r2, _0815C580 @ =gUnknown_3002066 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - ldr r1, _0815C584 @ =gUnknown_3002068 - ldr r0, [r1] - adds r3, r0, 0x1 - str r3, [r1] - ldr r1, _0815C588 @ =gUnknown_3002048 - ldrb r0, [r1] - cmp r0, 0 - bne _0815C564 - cmp r3, 0x3C - bls _0815C564 - movs r0, 0x1 - strb r0, [r1, 0x4] - movs r0, 0x6 - strb r0, [r1, 0x1] -_0815C564: - ldr r4, _0815C588 @ =gUnknown_3002048 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _0815C5F4 - ldrb r0, [r4] - cmp r0, 0 - beq _0815C58C - ldrh r0, [r2] - cmp r0, 0x2 - bls _0815C58C - bl sub_815C864 - movs r0, 0x2 - b _0815C5F2 - .align 2, 0 -_0815C580: .4byte gUnknown_3002066 -_0815C584: .4byte gUnknown_3002068 -_0815C588: .4byte gUnknown_3002048 -_0815C58C: - bl sub_815C864 - ldr r1, _0815C598 @ =gUnknown_3002048 - movs r0, 0x2 - strb r0, [r1, 0x2] - b _0815C5F4 - .align 2, 0 -_0815C598: .4byte gUnknown_3002048 -_0815C59C: - bl sub_815C3E4 - ldr r1, _0815C5A8 @ =gUnknown_3002048 - movs r0, 0x5 - strb r0, [r1, 0x1] - b _0815C5F4 - .align 2, 0 -_0815C5A8: .4byte gUnknown_3002048 -_0815C5AC: - ldr r0, _0815C5DC @ =gUnknown_3002048 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0815C5C0 - ldr r0, _0815C5E0 @ =gUnknown_3002066 - ldrh r0, [r0] - cmp r0, 0x2 - bls _0815C5C0 - bl sub_815C864 -_0815C5C0: - ldr r1, _0815C5E0 @ =gUnknown_3002066 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3C - bls _0815C5F4 - ldr r0, _0815C5DC @ =gUnknown_3002048 - movs r1, 0x1 - strb r1, [r0, 0x4] - movs r1, 0x6 - strb r1, [r0, 0x1] - b _0815C5F4 - .align 2, 0 -_0815C5DC: .4byte gUnknown_3002048 -_0815C5E0: .4byte gUnknown_3002066 -_0815C5E4: - ldr r4, _0815C60C @ =gUnknown_3002048 - ldrb r0, [r4, 0x2] - cmp r0, 0 - beq _0815C5F4 - bl sub_815C3A4 - movs r0, 0 -_0815C5F2: - strb r0, [r4, 0x2] -_0815C5F4: - ldr r2, _0815C60C @ =gUnknown_3002048 - ldrb r0, [r2, 0x2] - ldrb r1, [r2, 0x4] - lsls r1, 2 - orrs r0, r1 - ldrb r1, [r2, 0x3] - lsls r1, 4 - orrs r0, r1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0815C60C: .4byte gUnknown_3002048 - thumb_func_end sub_815C498 - - thumb_func_start sub_815C610 -sub_815C610: @ 815C610 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0815C62C @ =0x04000128 - ldr r0, [r0] - movs r1, 0xC - ands r0, r1 - cmp r0, 0x8 - bne _0815C634 - cmp r2, 0 - beq _0815C634 - ldr r1, _0815C630 @ =gUnknown_3002048 - movs r0, 0x1 - b _0815C638 - .align 2, 0 -_0815C62C: .4byte 0x04000128 -_0815C630: .4byte gUnknown_3002048 -_0815C634: - ldr r1, _0815C640 @ =gUnknown_3002048 - movs r0, 0 -_0815C638: - strb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_0815C640: .4byte gUnknown_3002048 - thumb_func_end sub_815C610 - - thumb_func_start sub_815C644 -sub_815C644: @ 815C644 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r3, _0815C670 @ =gUnknown_3002048 - ldrb r0, [r3] - cmp r0, 0 - beq _0815C67C - ldr r2, _0815C674 @ =0x04000128 - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - str r5, [r3, 0x8] - ldr r0, _0815C678 @ =0x04000120 - str r4, [r0] - lsrs r0, r4, 2 - adds r0, 0x1 - str r0, [r3, 0x10] - bl sub_815C690 - b _0815C684 - .align 2, 0 -_0815C670: .4byte gUnknown_3002048 -_0815C674: .4byte 0x04000128 -_0815C678: .4byte 0x04000120 -_0815C67C: - ldr r1, _0815C68C @ =0x04000128 - ldrh r0, [r1] - strh r0, [r1] - str r2, [r3, 0x8] -_0815C684: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815C68C: .4byte 0x04000128 - thumb_func_end sub_815C644 - - thumb_func_start sub_815C690 -sub_815C690: @ 815C690 - ldr r1, _0815C6B4 @ =0x0400010c - ldr r2, _0815C6B8 @ =0x0000fda7 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0815C6BC @ =0x0400010e - movs r2, 0x40 - strh r2, [r0] - ldr r3, _0815C6C0 @ =0x04000208 - movs r0, 0 - strh r0, [r3] - adds r1, 0xF4 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - movs r0, 0x1 - strh r0, [r3] - bx lr - .align 2, 0 -_0815C6B4: .4byte 0x0400010c -_0815C6B8: .4byte 0x0000fda7 -_0815C6BC: .4byte 0x0400010e -_0815C6C0: .4byte 0x04000208 - thumb_func_end sub_815C690 - - thumb_func_start sub_815C6C4 -sub_815C6C4: @ 815C6C4 - push {lr} - bl sub_815C874 - bl sub_815C864 - pop {r0} - bx r0 - thumb_func_end sub_815C6C4 - - thumb_func_start sub_815C6D4 -sub_815C6D4: @ 815C6D4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r2, _0815C6EC @ =gUnknown_3002048 - ldrb r0, [r2, 0x1] - adds r3, r2, 0 - cmp r0, 0x3 - beq _0815C75C - cmp r0, 0x3 - bgt _0815C6F0 - cmp r0, 0x1 - beq _0815C6F8 - b _0815C852 - .align 2, 0 -_0815C6EC: .4byte gUnknown_3002048 -_0815C6F0: - cmp r0, 0x5 - bne _0815C6F6 - b _0815C824 -_0815C6F6: - b _0815C852 -_0815C6F8: - ldr r1, _0815C728 @ =0x0400012a - ldr r2, _0815C72C @ =0x0000ccd0 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0815C730 @ =0x04000120 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r4, 0 - ldr r6, _0815C72C @ =0x0000ccd0 - ldr r5, _0815C734 @ =0x0000ffff -_0815C714: - lsls r0, r1, 1 - add r0, sp - ldrh r0, [r0] - cmp r0, r6 - bne _0815C738 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - b _0815C742 - .align 2, 0 -_0815C728: .4byte 0x0400012a -_0815C72C: .4byte 0x0000ccd0 -_0815C730: .4byte 0x04000120 -_0815C734: .4byte 0x0000ffff -_0815C738: - cmp r0, r5 - beq _0815C742 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_0815C742: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _0815C714 - cmp r2, 0x2 - beq _0815C752 - b _0815C852 -_0815C752: - cmp r4, 0 - beq _0815C758 - b _0815C852 -_0815C758: - strb r2, [r3, 0x1] - b _0815C852 -_0815C75C: - ldr r0, _0815C798 @ =0x04000120 - ldr r4, [r0] - ldr r0, [r2, 0xC] - cmp r0, 0 - bne _0815C772 - ldrb r0, [r2] - cmp r0, 0 - bne _0815C772 - lsrs r0, r4, 2 - adds r0, 0x1 - str r0, [r2, 0x10] -_0815C772: - ldrb r0, [r3] - cmp r0, 0x1 - bne _0815C7A8 - ldr r1, [r3, 0xC] - ldr r0, [r3, 0x10] - cmp r1, r0 - bge _0815C79C - ldr r2, _0815C798 @ =0x04000120 - ldr r0, [r3, 0x8] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - ldr r0, [r3, 0x14] - ldr r1, [r1] - adds r0, r1 - str r0, [r3, 0x14] - b _0815C7E2 - .align 2, 0 -_0815C798: .4byte 0x04000120 -_0815C79C: - ldr r1, _0815C7A4 @ =0x04000120 - ldr r0, [r3, 0x14] - b _0815C7E0 - .align 2, 0 -_0815C7A4: .4byte 0x04000120 -_0815C7A8: - ldr r1, [r3, 0xC] - cmp r1, 0 - ble _0815C7C8 - ldr r0, [r3, 0x10] - adds r0, 0x1 - cmp r1, r0 - bge _0815C7C8 - ldr r0, [r3, 0x8] - lsls r1, 2 - adds r1, r0 - subs r1, 0x4 - str r4, [r1] - ldr r0, [r3, 0x14] - adds r0, r4 - str r0, [r3, 0x14] - b _0815C7DC -_0815C7C8: - ldr r0, [r3, 0xC] - cmp r0, 0 - beq _0815C7DC - ldr r0, [r3, 0x14] - cmp r0, r4 - bne _0815C7D8 - movs r0, 0x1 - b _0815C7DA -_0815C7D8: - movs r0, 0x2 -_0815C7DA: - strb r0, [r3, 0x3] -_0815C7DC: - ldr r1, _0815C804 @ =gUnknown_3002068 - movs r0, 0 -_0815C7E0: - str r0, [r1] -_0815C7E2: - ldr r1, [r3, 0xC] - adds r1, 0x1 - str r1, [r3, 0xC] - ldr r0, [r3, 0x10] - adds r0, 0x2 - cmp r1, r0 - bge _0815C812 - ldrb r0, [r3] - cmp r0, 0 - beq _0815C80C - ldr r0, _0815C808 @ =0x0400010e - ldrh r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strh r1, [r0] - b _0815C852 - .align 2, 0 -_0815C804: .4byte gUnknown_3002068 -_0815C808: .4byte 0x0400010e -_0815C80C: - bl sub_815C864 - b _0815C852 -_0815C812: - movs r0, 0 - movs r1, 0x4 - strb r1, [r3, 0x1] - ldr r1, _0815C820 @ =gUnknown_3002066 - strh r0, [r1] - b _0815C852 - .align 2, 0 -_0815C820: .4byte gUnknown_3002066 -_0815C824: - ldrb r3, [r2] - cmp r3, 0 - bne _0815C830 - ldr r1, _0815C85C @ =0x0400012a - ldrb r0, [r2, 0x3] - strh r0, [r1] -_0815C830: - ldr r0, _0815C860 @ =0x04000120 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - ldrh r1, [r0, 0x2] - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0815C852 - cmp r3, 0x1 - bne _0815C84E - strb r1, [r2, 0x3] -_0815C84E: - movs r0, 0x6 - strb r0, [r2, 0x1] -_0815C852: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815C85C: .4byte 0x0400012a -_0815C860: .4byte 0x04000120 - thumb_func_end sub_815C6D4 - - thumb_func_start sub_815C864 -sub_815C864: @ 815C864 - ldr r0, _0815C870 @ =0x04000128 - ldrh r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_0815C870: .4byte 0x04000128 - thumb_func_end sub_815C864 - - thumb_func_start sub_815C874 -sub_815C874: @ 815C874 - ldr r2, _0815C888 @ =0x0400010e - ldrh r1, [r2] - ldr r0, _0815C88C @ =0x0000ff7f - ands r0, r1 - strh r0, [r2] - ldr r1, _0815C890 @ =0x0400010c - ldr r2, _0815C894 @ =0x0000fda7 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_0815C888: .4byte 0x0400010e -_0815C88C: .4byte 0x0000ff7f -_0815C890: .4byte 0x0400010c -_0815C894: .4byte 0x0000fda7 - thumb_func_end sub_815C874 - - thumb_func_start sub_815C898 -sub_815C898: @ 815C898 - push {r4,lr} - ldr r0, _0815C8B8 @ =0x04000130 - ldrh r0, [r0] - ldr r2, _0815C8BC @ =0x000003ff - adds r1, r2, 0 - eors r1, r0 - ldr r4, _0815C8C0 @ =gUnknown_3002062 - ldr r3, _0815C8C4 @ =gUnknown_3002060 - ldrh r2, [r3] - adds r0, r1, 0 - bics r0, r2 - strh r0, [r4] - strh r1, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815C8B8: .4byte 0x04000130 -_0815C8BC: .4byte 0x000003ff -_0815C8C0: .4byte gUnknown_3002062 -_0815C8C4: .4byte gUnknown_3002060 - thumb_func_end sub_815C898 - - thumb_func_start sub_815C8C8 -sub_815C8C8: @ 815C8C8 - ldr r1, _0815C8F4 @ =gUnknown_300206C - ldr r0, _0815C8F8 @ =0x04000208 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _0815C8FC @ =gUnknown_300206E - ldr r0, _0815C900 @ =0x04000200 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _0815C904 @ =gUnknown_3002070 - ldr r0, _0815C908 @ =0x0400010e - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _0815C90C @ =gUnknown_3002072 - ldr r0, _0815C910 @ =0x04000128 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _0815C914 @ =gUnknown_3002074 - ldr r0, _0815C918 @ =0x04000134 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_0815C8F4: .4byte gUnknown_300206C -_0815C8F8: .4byte 0x04000208 -_0815C8FC: .4byte gUnknown_300206E -_0815C900: .4byte 0x04000200 -_0815C904: .4byte gUnknown_3002070 -_0815C908: .4byte 0x0400010e -_0815C90C: .4byte gUnknown_3002072 -_0815C910: .4byte 0x04000128 -_0815C914: .4byte gUnknown_3002074 -_0815C918: .4byte 0x04000134 - thumb_func_end sub_815C8C8 - - thumb_func_start sub_815C91C -sub_815C91C: @ 815C91C - ldr r1, _0815C948 @ =0x04000208 - ldr r0, _0815C94C @ =gUnknown_300206C - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x8 - ldr r0, _0815C950 @ =gUnknown_300206E - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0xF2 - ldr r0, _0815C954 @ =gUnknown_3002070 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x1A - ldr r0, _0815C958 @ =gUnknown_3002072 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0xC - ldr r0, _0815C95C @ =gUnknown_3002074 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_0815C948: .4byte 0x04000208 -_0815C94C: .4byte gUnknown_300206C -_0815C950: .4byte gUnknown_300206E -_0815C954: .4byte gUnknown_3002070 -_0815C958: .4byte gUnknown_3002072 -_0815C95C: .4byte gUnknown_3002074 - thumb_func_end sub_815C91C - - thumb_func_start sub_815C960 -sub_815C960: @ 815C960 - push {lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r1, _0815C978 @ =gUnknown_3002048 - ldr r2, _0815C97C @ =0x05000006 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0815C978: .4byte gUnknown_3002048 -_0815C97C: .4byte 0x05000006 - thumb_func_end sub_815C960 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_815C980.s b/asm/unk_815C980.s deleted file mode 100644 index a348558f3..000000000 --- a/asm/unk_815C980.s +++ /dev/null @@ -1,1314 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815C980 -sub_815C980: @ 815C980 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r5, _0815C9A0 @ =gUnknown_203F454 - ldr r0, [r5] - cmp r0, 0 - beq _0815C990 - bl sub_815C9F4 -_0815C990: - movs r0, 0x8 - bl Alloc - str r0, [r5] - cmp r0, 0 - bne _0815C9A4 - movs r0, 0 - b _0815C9EC - .align 2, 0 -_0815C9A0: .4byte gUnknown_203F454 -_0815C9A4: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - bl Alloc - ldr r1, [r5] - str r0, [r1, 0x4] - cmp r0, 0 - bne _0815C9C0 - adds r0, r1, 0 - bl Free - movs r0, 0 - b _0815C9EC -_0815C9C0: - str r4, [r1] - movs r3, 0 - cmp r3, r4 - bcs _0815C9EA - movs r7, 0 - movs r6, 0xFF - movs r2, 0 -_0815C9CE: - ldr r0, [r5] - ldr r0, [r0, 0x4] - adds r0, r2, r0 - strb r7, [r0] - ldr r0, [r5] - ldr r1, [r0, 0x4] - adds r1, r2, r1 - ldrb r0, [r1, 0x1] - orrs r0, r6 - strb r0, [r1, 0x1] - adds r2, 0x1C - adds r3, 0x1 - cmp r3, r4 - bcc _0815C9CE -_0815C9EA: - movs r0, 0x1 -_0815C9EC: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_815C980 - - thumb_func_start sub_815C9F4 -sub_815C9F4: @ 815C9F4 - push {r4,r5,lr} - ldr r2, _0815CA3C @ =gUnknown_203F454 - ldr r1, [r2] - cmp r1, 0 - beq _0815CA34 - ldr r0, [r1, 0x4] - cmp r0, 0 - beq _0815CA28 - movs r4, 0 - ldr r0, [r1] - cmp r4, r0 - bcs _0815CA1E - adds r5, r2, 0 -_0815CA0E: - adds r0, r4, 0 - bl sub_815D108 - adds r4, 0x1 - ldr r0, [r5] - ldr r0, [r0] - cmp r4, r0 - bcc _0815CA0E -_0815CA1E: - ldr r0, _0815CA3C @ =gUnknown_203F454 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl Free -_0815CA28: - ldr r4, _0815CA3C @ =gUnknown_203F454 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] -_0815CA34: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815CA3C: .4byte gUnknown_203F454 - thumb_func_end sub_815C9F4 - - thumb_func_start sub_815CA40 -sub_815CA40: @ 815CA40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r8, r0 - mov r10, r1 - adds r5, r2, 0 - ldr r6, _0815CAB8 @ =gUnknown_203F454 - ldr r0, [r6] - cmp r0, 0 - beq _0815CB00 - ldr r1, [r0, 0x4] - mov r0, r8 - lsls r2, r0, 3 - subs r0, r2, r0 - lsls r4, r0, 2 - adds r1, r4, r1 - ldrb r0, [r1] - mov r9, r2 - cmp r0, 0 - bne _0815CB00 - ldrb r0, [r5, 0x1] - bl sub_815D244 - ldr r1, [r6] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - strb r0, [r1, 0x1] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - ldrb r0, [r0, 0x1] - cmp r0, 0xFF - beq _0815CB00 - ldr r0, [r5, 0x8] - ldrh r0, [r0, 0x6] - bl GetSpriteTileStartByTag - ldr r2, [r6] - ldr r1, [r2, 0x4] - adds r1, r4, r1 - strh r0, [r1, 0xA] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - ldrh r1, [r0, 0xA] - ldr r7, _0815CABC @ =0xffff0000 - lsrs r0, r7, 16 - cmp r1, r0 - bne _0815CB0C - ldr r2, [r5, 0x8] - ldrh r0, [r2, 0x4] - adds r1, r2, 0 - cmp r0, 0 - beq _0815CAC0 - adds r0, r1, 0 - bl LoadSpriteSheet - b _0815CAE0 - .align 2, 0 -_0815CAB8: .4byte gUnknown_203F454 -_0815CABC: .4byte 0xffff0000 -_0815CAC0: - ldr r0, [r2] - ldr r1, [r2, 0x4] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [r2] - bl sub_800F0C4 - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp, 0x4] - ands r1, r7 - orrs r1, r0 - str r1, [sp, 0x4] - mov r0, sp - bl LoadCompressedObjectPic -_0815CAE0: - ldr r1, [r6] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - strh r0, [r1, 0xA] - ldr r0, _0815CB04 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r1, [r0, 0x4] - mov r2, r9 - mov r3, r8 - subs r0, r2, r3 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0xA] - ldr r0, _0815CB08 @ =0x0000ffff - cmp r1, r0 - bne _0815CB0C -_0815CB00: - movs r0, 0 - b _0815CC14 - .align 2, 0 -_0815CB04: .4byte gUnknown_203F454 -_0815CB08: .4byte 0x0000ffff -_0815CB0C: - ldr r0, [r5, 0xC] - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - ldr r6, _0815CC24 @ =gUnknown_203F454 - ldr r1, [r6] - ldr r1, [r1, 0x4] - mov r4, r9 - mov r3, r8 - subs r2, r4, r3 - lsls r4, r2, 2 - adds r1, r4, r1 - strb r0, [r1, 0x4] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - ldrb r0, [r0, 0x4] - cmp r0, 0xFF - bne _0815CB40 - ldr r0, [r5, 0xC] - bl LoadSpritePalette - ldr r1, [r6] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - strb r0, [r1, 0x4] -_0815CB40: - ldr r0, [r6] - ldr r1, [r0, 0x4] - adds r1, r4, r1 - ldrb r0, [r5] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r1, 0x2] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - ldrb r1, [r5, 0x1] - strb r1, [r0, 0x3] - ldr r2, [r6] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - ldrh r1, [r5, 0x4] - strh r1, [r0, 0xC] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - ldrh r1, [r5, 0x6] - strh r1, [r0, 0xE] - ldr r1, [r2, 0x4] - adds r1, r4, r1 - ldrb r0, [r5] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r1, 0x6] - ldr r0, [r6] - ldr r1, [r0, 0x4] - adds r1, r4, r1 - ldrb r0, [r5] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r1, 0x5] - ldr r0, [r6] - ldr r1, [r0, 0x4] - adds r1, r4, r1 - ldrb r0, [r5] - lsrs r0, 6 - strb r0, [r1, 0x7] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - ldrb r1, [r5, 0x2] - strb r1, [r0, 0x8] - ldrb r1, [r5] - lsls r0, r1, 28 - lsrs r0, 30 - lsls r1, 26 - lsrs r1, 30 - bl sub_815D324 - ldr r1, [r6] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - strb r0, [r1, 0x9] - ldr r2, [r6] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - ldr r1, [r5, 0x8] - ldrh r1, [r1, 0x6] - strh r1, [r0, 0x10] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - ldr r1, [r5, 0xC] - ldrh r1, [r1, 0x4] - strh r1, [r0, 0x12] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - str r1, [r0, 0x14] - movs r3, 0x1 - ldrb r0, [r5, 0x1] - cmp r3, r0 - bcs _0815CBF6 -_0815CBDE: - ldr r0, [r6] - ldr r2, [r0, 0x4] - adds r2, r4, r2 - ldr r1, [r2, 0x14] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - str r0, [r2, 0x14] - adds r3, 0x1 - ldrb r2, [r5, 0x1] - cmp r3, r2 - bcc _0815CBDE -_0815CBF6: - ldr r0, _0815CC24 @ =gUnknown_203F454 - ldr r0, [r0] - mov r3, r9 - mov r4, r8 - subs r1, r3, r4 - lsls r1, 2 - ldr r0, [r0, 0x4] - adds r0, r1 - bl sub_815CC28 - mov r0, r8 - mov r1, r10 - bl sub_815CD70 - movs r0, 0x1 -_0815CC14: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0815CC24: .4byte gUnknown_203F454 - thumb_func_end sub_815CA40 - - thumb_func_start sub_815CC28 -sub_815CC28: @ 815CC28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - ldrb r5, [r4, 0x1] - movs r0, 0xC - ldrsh r7, [r4, r0] - ldrb r0, [r4, 0x3] - adds r0, 0x1 - mov r8, r0 - mov r1, sp - movs r0, 0 - strh r0, [r1] - lsls r1, r5, 3 - ldr r2, _0815CD58 @ =gMain + 0x38 - mov r9, r2 - add r1, r9 - mov r0, r8 - lsls r2, r0, 2 - movs r0, 0x80 - lsls r0, 17 - orrs r2, r0 - mov r0, sp - bl CpuSet - movs r6, 0 - ldrb r5, [r4, 0x1] - cmp r6, r8 - bcs _0815CCFA - movs r1, 0x3F - mov r10, r1 - movs r2, 0xD - negs r2, r2 - mov r9, r2 -_0815CC72: - lsls r0, r5, 3 - ldr r1, _0815CD5C @ =gMain - adds r3, r0, r1 - ldrh r1, [r4, 0xE] - adds r0, r3, 0 - adds r0, 0x38 - strb r1, [r0] - ldr r2, _0815CD60 @ =0x000001ff - adds r0, r2, 0 - adds r1, r7, 0 - ands r1, r0 - ldrh r2, [r3, 0x3A] - ldr r0, _0815CD64 @ =0xfffffe00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x3A] - ldrb r1, [r4, 0x6] - movs r0, 0x39 - adds r0, r3 - mov r12, r0 - lsls r1, 6 - ldrb r2, [r0] - mov r0, r10 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrb r1, [r4, 0x5] - movs r2, 0x3B - adds r2, r3 - mov r12, r2 - lsls r1, 6 - ldrb r2, [r2] - mov r0, r10 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r4, 0xA] - ldr r1, _0815CD68 @ =0x000003ff - ands r1, r0 - ldrh r2, [r3, 0x3C] - ldr r0, _0815CD6C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x3C] - adds r3, 0x3D - movs r0, 0x3 - ldrb r1, [r4, 0x7] - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r2, [r4, 0x4] - lsls r2, 4 - movs r1, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldrb r0, [r4, 0x8] - adds r7, r0 - adds r6, 0x1 - adds r5, 0x1 - cmp r6, r8 - bcc _0815CC72 -_0815CCFA: - subs r5, 0x1 - ldr r0, _0815CD5C @ =gMain - lsls r3, r5, 3 - adds r3, r0 - movs r2, 0xC - ldrsh r1, [r4, r2] - ldrb r0, [r4, 0x8] - subs r1, r0 - ldr r2, _0815CD60 @ =0x000001ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x3A] - ldr r0, _0815CD64 @ =0xfffffe00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x3A] - adds r2, r3, 0 - adds r2, 0x39 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, 0x9] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - ldrh r4, [r4, 0xA] - adds r1, r4 - ldr r2, _0815CD68 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x3C] - ldr r0, _0815CD6C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x3C] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815CD58: .4byte gMain + 0x38 -_0815CD5C: .4byte gMain -_0815CD60: .4byte 0x000001ff -_0815CD64: .4byte 0xfffffe00 -_0815CD68: .4byte 0x000003ff -_0815CD6C: .4byte 0xfffffc00 - thumb_func_end sub_815CC28 - - thumb_func_start sub_815CD70 -sub_815CD70: @ 815CD70 - push {r4-r6,lr} - adds r3, r0, 0 - adds r4, r1, 0 - ldr r0, _0815CDA0 @ =gUnknown_203F454 - ldr r1, [r0] - adds r6, r0, 0 - cmp r1, 0 - beq _0815CDD4 - ldr r2, [r1, 0x4] - lsls r1, r3, 3 - subs r0, r1, r3 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2] - adds r5, r1, 0 - cmp r0, 0 - beq _0815CDD4 - str r4, [r2, 0x18] - cmp r4, 0 - bge _0815CDA4 - movs r2, 0x1 - negs r4, r4 - b _0815CDA6 - .align 2, 0 -_0815CDA0: .4byte gUnknown_203F454 -_0815CDA4: - movs r2, 0 -_0815CDA6: - ldr r0, [r6] - ldr r1, [r0, 0x4] - subs r0, r5, r3 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x2] - cmp r3, 0x1 - beq _0815CDC6 - cmp r3, 0x1 - ble _0815CDBE - cmp r3, 0x2 - beq _0815CDCE -_0815CDBE: - adds r1, r4, 0 - bl sub_815CDDC - b _0815CDD4 -_0815CDC6: - adds r1, r4, 0 - bl sub_815CE90 - b _0815CDD4 -_0815CDCE: - adds r1, r4, 0 - bl sub_815CFEC -_0815CDD4: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_815CD70 - - thumb_func_start sub_815CDDC -sub_815CDDC: @ 815CDDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - mov r9, r1 - str r2, [sp] - ldr r5, [r0, 0x14] - ldrb r7, [r0, 0x1] - ldr r0, _0815CE60 @ =gMain - mov r10, r0 - cmp r5, 0 - beq _0815CE46 - lsls r0, r7, 3 - adds r0, 0x3C - mov r1, r10 - adds r6, r0, r1 -_0815CE02: - mov r0, r9 - adds r1, r5, 0 - bl __udivsi3 - adds r4, r0, 0 - adds r0, r4, 0 - muls r0, r5 - mov r2, r9 - subs r2, r0 - mov r9, r2 - adds r0, r5, 0 - movs r1, 0xA - bl __udivsi3 - adds r5, r0, 0 - mov r1, r8 - ldrb r0, [r1, 0x9] - adds r1, r4, 0 - muls r1, r0 - mov r2, r8 - ldrh r2, [r2, 0xA] - adds r1, r2 - ldr r2, _0815CE64 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r0, [r6] - ldr r2, _0815CE68 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r6] - adds r6, 0x8 - adds r7, 0x1 - cmp r5, 0 - bne _0815CE02 -_0815CE46: - ldr r0, [sp] - cmp r0, 0 - beq _0815CE6C - lsls r0, r7, 3 - add r0, r10 - adds r0, 0x39 - ldrb r2, [r0] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _0815CE80 - .align 2, 0 -_0815CE60: .4byte gMain -_0815CE64: .4byte 0x000003ff -_0815CE68: .4byte 0xfffffc00 -_0815CE6C: - lsls r2, r7, 3 - add r2, r10 - adds r2, 0x39 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] -_0815CE80: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815CDDC - - thumb_func_start sub_815CE90 -sub_815CE90: @ 815CE90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r0, 0 - mov r8, r1 - str r2, [sp] - ldr r5, [r6, 0x14] - ldr r3, _0815CF38 @ =gUnknown_3002078 - ldrb r0, [r6, 0x1] - str r0, [r3] - ldr r2, _0815CF3C @ =gUnknown_300207C - movs r0, 0 - str r0, [r2] - ldr r1, _0815CF40 @ =gUnknown_3002080 - subs r0, 0x1 - str r0, [r1] - adds r7, r3, 0 - mov r10, r1 - ldr r0, _0815CF44 @ =gMain - mov r9, r0 - cmp r5, 0 - beq _0815CF78 -_0815CEC2: - mov r0, r8 - adds r1, r5, 0 - bl __udivsi3 - adds r4, r0, 0 - adds r0, r4, 0 - muls r0, r5 - mov r1, r8 - subs r1, r0 - mov r8, r1 - adds r0, r5, 0 - movs r1, 0xA - bl __udivsi3 - adds r5, r0, 0 - cmp r4, 0 - bne _0815CEF4 - mov r2, r10 - ldr r1, [r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0815CEF4 - cmp r5, 0 - bne _0815CF50 -_0815CEF4: - ldr r2, [r7] - lsls r2, 3 - add r2, r9 - ldrb r0, [r6, 0x9] - adds r3, r4, 0 - muls r3, r0 - ldrh r4, [r6, 0xA] - adds r3, r4 - ldr r1, _0815CF48 @ =0x000003ff - adds r0, r1, 0 - ands r3, r0 - ldrh r0, [r2, 0x3C] - ldr r4, _0815CF4C @ =0xfffffc00 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r3 - strh r0, [r2, 0x3C] - adds r2, 0x39 - ldrb r0, [r2] - movs r1, 0x4 - negs r1, r1 - ands r0, r1 - strb r0, [r2] - mov r2, r10 - ldr r1, [r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0815CF66 - ldr r4, _0815CF3C @ =gUnknown_300207C - ldr r0, [r4] - str r0, [r2] - b _0815CF66 - .align 2, 0 -_0815CF38: .4byte gUnknown_3002078 -_0815CF3C: .4byte gUnknown_300207C -_0815CF40: .4byte gUnknown_3002080 -_0815CF44: .4byte gMain -_0815CF48: .4byte 0x000003ff -_0815CF4C: .4byte 0xfffffc00 -_0815CF50: - ldr r0, [r7] - lsls r0, 3 - add r0, r9 - adds r0, 0x39 - ldrb r1, [r0] - movs r2, 0x4 - negs r2, r2 - ands r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_0815CF66: - ldr r0, [r7] - adds r0, 0x1 - str r0, [r7] - ldr r4, _0815CFB8 @ =gUnknown_300207C - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - cmp r5, 0 - bne _0815CEC2 -_0815CF78: - ldr r0, [sp] - cmp r0, 0 - beq _0815CFC4 - ldr r1, [r7] - lsls r1, 3 - add r1, r9 - adds r1, 0x39 - ldrb r2, [r1] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r3, [r7] - lsls r3, 3 - add r3, r9 - movs r1, 0xC - ldrsh r2, [r6, r1] - mov r4, r10 - ldr r0, [r4] - subs r0, 0x1 - ldrb r1, [r6, 0x8] - muls r0, r1 - adds r2, r0 - ldr r1, _0815CFBC @ =0x000001ff - adds r0, r1, 0 - ands r2, r0 - ldrh r1, [r3, 0x3A] - ldr r0, _0815CFC0 @ =0xfffffe00 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0x3A] - b _0815CFDA - .align 2, 0 -_0815CFB8: .4byte gUnknown_300207C -_0815CFBC: .4byte 0x000001ff -_0815CFC0: .4byte 0xfffffe00 -_0815CFC4: - ldr r0, [r7] - lsls r0, 3 - add r0, r9 - adds r0, 0x39 - ldrb r2, [r0] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_0815CFDA: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815CE90 - - thumb_func_start sub_815CFEC -sub_815CFEC: @ 815CFEC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r8, r0 - mov r10, r1 - str r2, [sp] - ldr r5, [r0, 0x14] - ldrb r3, [r0, 0x1] - movs r0, 0 - str r0, [sp, 0x4] - mov r9, r0 - cmp r5, 0 - beq _0815D086 -_0815D00C: - lsls r0, r3, 3 - adds r1, r0, 0 - adds r1, 0x39 - ldr r2, _0815D0D0 @ =gMain - adds r7, r1, r2 - adds r0, 0x3C - adds r6, r0, r2 -_0815D01A: - mov r0, r10 - adds r1, r5, 0 - str r3, [sp, 0x8] - bl __udivsi3 - adds r4, r0, 0 - adds r0, r4, 0 - muls r0, r5 - mov r1, r10 - subs r1, r0 - mov r10, r1 - adds r0, r5, 0 - movs r1, 0xA - bl __udivsi3 - adds r5, r0, 0 - ldr r3, [sp, 0x8] - cmp r4, 0 - bne _0815D04A - ldr r2, [sp, 0x4] - cmp r2, 0 - bne _0815D04A - cmp r5, 0 - bne _0815D00C -_0815D04A: - movs r0, 0x1 - str r0, [sp, 0x4] - mov r1, r8 - ldrb r0, [r1, 0x9] - adds r2, r4, 0 - muls r2, r0 - ldrh r4, [r1, 0xA] - adds r2, r4 - ldr r1, _0815D0D4 @ =0x000003ff - adds r0, r1, 0 - ands r2, r0 - ldrh r0, [r6] - ldr r4, _0815D0D8 @ =0xfffffc00 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r6] - ldrb r0, [r7] - movs r2, 0x4 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - strb r0, [r7] - adds r7, 0x8 - adds r6, 0x8 - adds r3, 0x1 - movs r4, 0x1 - add r9, r4 - cmp r5, 0 - bne _0815D01A -_0815D086: - mov r0, r8 - ldrb r0, [r0, 0x3] - cmp r9, r0 - bge _0815D0B6 - ldr r1, _0815D0D0 @ =gMain - movs r5, 0x4 - negs r5, r5 - movs r4, 0x2 - lsls r0, r3, 3 - adds r0, 0x39 - adds r2, r0, r1 -_0815D09C: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - adds r2, 0x8 - adds r3, 0x1 - movs r1, 0x1 - add r9, r1 - mov r0, r8 - ldrb r0, [r0, 0x3] - cmp r9, r0 - blt _0815D09C -_0815D0B6: - ldr r1, [sp] - cmp r1, 0 - beq _0815D0DC - lsls r0, r3, 3 - ldr r2, _0815D0D0 @ =gMain - adds r0, r2 - adds r0, 0x39 - ldrb r2, [r0] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _0815D0F2 - .align 2, 0 -_0815D0D0: .4byte gMain -_0815D0D4: .4byte 0x000003ff -_0815D0D8: .4byte 0xfffffc00 -_0815D0DC: - lsls r2, r3, 3 - ldr r4, _0815D104 @ =gMain - adds r2, r4 - adds r2, 0x39 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] -_0815D0F2: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815D104: .4byte gMain - thumb_func_end sub_815CFEC - - thumb_func_start sub_815D108 -sub_815D108: @ 815D108 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _0815D1A0 @ =gUnknown_203F454 - ldr r0, [r0] - cmp r0, 0 - beq _0815D19A - ldr r2, [r0, 0x4] - lsls r1, r4, 3 - subs r0, r1, r4 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2] - adds r5, r1, 0 - cmp r0, 0 - beq _0815D19A - ldrb r3, [r2, 0x3] - adds r0, r3, 0x1 - ldrb r2, [r2, 0x1] - cmp r0, 0 - beq _0815D152 - ldr r1, _0815D1A4 @ =gMain - movs r7, 0x4 - negs r7, r7 - movs r6, 0x2 - adds r3, r0, 0 - lsls r0, r2, 3 - adds r0, 0x39 - adds r2, r0, r1 -_0815D140: - ldrb r1, [r2] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - subs r3, 0x1 - adds r2, 0x8 - cmp r3, 0 - bne _0815D140 -_0815D152: - adds r0, r4, 0 - bl sub_815D29C - cmp r0, 0 - bne _0815D16E - ldr r0, _0815D1A0 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r1, [r0, 0x4] - subs r0, r5, r4 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x10] - bl FreeSpriteTilesByTag -_0815D16E: - adds r0, r4, 0 - bl sub_815D2E0 - cmp r0, 0 - bne _0815D18A - ldr r0, _0815D1A0 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r1, [r0, 0x4] - subs r0, r5, r4 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x12] - bl FreeSpritePaletteByTag -_0815D18A: - ldr r0, _0815D1A0 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r1, [r0, 0x4] - subs r0, r5, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_0815D19A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815D1A0: .4byte gUnknown_203F454 -_0815D1A4: .4byte gMain - thumb_func_end sub_815D108 - - thumb_func_start sub_815D1A8 -sub_815D1A8: @ 815D1A8 - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _0815D1FC @ =gUnknown_203F454 - ldr r1, [r0] - adds r7, r0, 0 - cmp r1, 0 - beq _0815D238 - ldr r2, [r1, 0x4] - lsls r1, r4, 3 - subs r0, r1, r4 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2] - adds r6, r1, 0 - cmp r0, 0 - beq _0815D238 - ldrb r3, [r2, 0x3] - adds r1, r3, 0x1 - ldrb r0, [r2, 0x1] - cmp r5, 0 - beq _0815D204 - cmp r1, 0 - beq _0815D238 - ldr r1, _0815D200 @ =gMain - movs r5, 0x4 - negs r5, r5 - movs r4, 0x2 - adds r3, 0x1 - lsls r0, 3 - adds r0, 0x39 - adds r2, r0, r1 -_0815D1E8: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - subs r3, 0x1 - adds r2, 0x8 - cmp r3, 0 - bne _0815D1E8 - b _0815D238 - .align 2, 0 -_0815D1FC: .4byte gUnknown_203F454 -_0815D200: .4byte gMain -_0815D204: - cmp r1, 0 - beq _0815D226 - ldr r1, _0815D240 @ =gMain - movs r5, 0x4 - negs r5, r5 - adds r3, 0x1 - lsls r0, 3 - adds r0, 0x39 - adds r2, r0, r1 -_0815D216: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2] - subs r3, 0x1 - adds r2, 0x8 - cmp r3, 0 - bne _0815D216 -_0815D226: - ldr r0, [r7] - ldr r1, [r0, 0x4] - subs r0, r6, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0, 0x18] - adds r0, r4, 0 - bl sub_815CD70 -_0815D238: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815D240: .4byte gMain - thumb_func_end sub_815D1A8 - - thumb_func_start sub_815D244 -sub_815D244: @ 815D244 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0x40 - movs r3, 0 - ldr r0, _0815D270 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r2, [r0] - cmp r3, r2 - bcs _0815D286 - ldr r1, [r0, 0x4] -_0815D25A: - ldrb r0, [r1] - cmp r0, 0 - bne _0815D274 - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - beq _0815D27E - ldrb r0, [r1, 0x3] - cmp r0, r4 - bhi _0815D27E - ldrb r0, [r1, 0x1] - b _0815D296 - .align 2, 0 -_0815D270: .4byte gUnknown_203F454 -_0815D274: - adds r0, r5, 0x1 - ldrb r5, [r1, 0x3] - adds r0, r5 - lsls r0, 16 - lsrs r5, r0, 16 -_0815D27E: - adds r1, 0x1C - adds r3, 0x1 - cmp r3, r2 - bcc _0815D25A -_0815D286: - adds r0, r5, r4 - adds r0, 0x1 - cmp r0, 0x80 - bgt _0815D294 - lsls r0, r5, 24 - lsrs r0, 24 - b _0815D296 -_0815D294: - movs r0, 0xFF -_0815D296: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815D244 - - thumb_func_start sub_815D29C -sub_815D29C: @ 815D29C - push {r4-r6,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r0, _0815D2CC @ =gUnknown_203F454 - ldr r0, [r0] - ldr r4, [r0] - cmp r2, r4 - bcs _0815D2D8 - ldr r1, [r0, 0x4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r5, r0, r1 -_0815D2B6: - ldrb r0, [r1] - cmp r0, 0 - beq _0815D2D0 - cmp r2, r3 - beq _0815D2D0 - ldrh r0, [r1, 0x10] - ldrh r6, [r5, 0x10] - cmp r0, r6 - bne _0815D2D0 - movs r0, 0x1 - b _0815D2DA - .align 2, 0 -_0815D2CC: .4byte gUnknown_203F454 -_0815D2D0: - adds r1, 0x1C - adds r2, 0x1 - cmp r2, r4 - bcc _0815D2B6 -_0815D2D8: - movs r0, 0 -_0815D2DA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_815D29C - - thumb_func_start sub_815D2E0 -sub_815D2E0: @ 815D2E0 - push {r4-r6,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r0, _0815D310 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r4, [r0] - cmp r2, r4 - bcs _0815D31C - ldr r1, [r0, 0x4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r5, r0, r1 -_0815D2FA: - ldrb r0, [r1] - cmp r0, 0 - beq _0815D314 - cmp r2, r3 - beq _0815D314 - ldrh r0, [r1, 0x12] - ldrh r6, [r5, 0x12] - cmp r0, r6 - bne _0815D314 - movs r0, 0x1 - b _0815D31E - .align 2, 0 -_0815D310: .4byte gUnknown_203F454 -_0815D314: - adds r1, 0x1C - adds r2, 0x1 - cmp r2, r4 - bcc _0815D2FA -_0815D31C: - movs r0, 0 -_0815D31E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_815D2E0 - - thumb_func_start sub_815D324 -sub_815D324: @ 815D324 - ldr r2, _0815D330 @ =gUnknown_8479658 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - bx lr - .align 2, 0 -_0815D330: .4byte gUnknown_8479658 - thumb_func_end sub_815D324 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_815EDDC.s b/asm/unk_815EDDC.s deleted file mode 100644 index 116458940..000000000 --- a/asm/unk_815EDDC.s +++ /dev/null @@ -1,462 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815EDDC -sub_815EDDC: @ 815EDDC - ldr r1, _0815EDF0 @ =gSaveBlock2Ptr - ldr r1, [r1] - movs r2, 0xF2 - lsls r2, 4 - adds r1, r2 - ldr r0, [r0] - ldr r1, [r1] - eors r0, r1 - bx lr - .align 2, 0 -_0815EDF0: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EDDC - - thumb_func_start sub_815EDF4 -sub_815EDF4: @ 815EDF4 - ldr r2, _0815EE08 @ =gSaveBlock2Ptr - ldr r2, [r2] - movs r3, 0xF2 - lsls r3, 4 - adds r2, r3 - ldr r2, [r2] - eors r2, r1 - str r2, [r0] - bx lr - .align 2, 0 -_0815EE08: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EDF4 - - thumb_func_start sub_815EE0C -sub_815EE0C: @ 815EE0C - push {r4-r6,lr} - ldr r6, _0815EE30 @ =gSaveBlock1Ptr - ldr r5, _0815EE34 @ =0x00003d38 - movs r4, 0x3 -_0815EE14: - ldr r0, [r6] - adds r0, r5 - adds r0, 0x4 - ldr r1, _0815EE38 @ =0x00034bbf - bl sub_815EDF4 - adds r5, 0xC - subs r4, 0x1 - cmp r4, 0 - bge _0815EE14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815EE30: .4byte gSaveBlock1Ptr -_0815EE34: .4byte 0x00003d38 -_0815EE38: .4byte 0x00034bbf - thumb_func_end sub_815EE0C - - thumb_func_start sub_815EE3C -sub_815EE3C: @ 815EE3C - ldr r1, _0815EE50 @ =gSaveBlock2Ptr - ldr r1, [r1] - movs r2, 0xF2 - lsls r2, 4 - adds r1, r2 - ldr r0, [r0] - ldr r1, [r1] - eors r0, r1 - bx lr - .align 2, 0 -_0815EE50: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EE3C - - thumb_func_start sub_815EE54 -sub_815EE54: @ 815EE54 - ldr r2, _0815EE68 @ =gSaveBlock2Ptr - ldr r2, [r2] - movs r3, 0xF2 - lsls r3, 4 - adds r2, r3 - ldr r2, [r2] - eors r2, r1 - str r2, [r0] - bx lr - .align 2, 0 -_0815EE68: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EE54 - - thumb_func_start sub_815EE6C -sub_815EE6C: @ 815EE6C - push {lr} - adds r1, r0, 0 - ldr r0, _0815EE80 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, _0815EE84 @ =0x00000af8 - adds r0, r2 - bl ApplyNewEncryptionKeyToWord - pop {r0} - bx r0 - .align 2, 0 -_0815EE80: .4byte gSaveBlock2Ptr -_0815EE84: .4byte 0x00000af8 - thumb_func_end sub_815EE6C - - thumb_func_start sub_815EE88 -sub_815EE88: @ 815EE88 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0815EEA0 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EEA4 @ =0x00000af8 - adds r0, r1 - bl sub_815EE3C - cmp r0, r4 - bcc _0815EEA8 - movs r0, 0x1 - b _0815EEAA - .align 2, 0 -_0815EEA0: .4byte gSaveBlock2Ptr -_0815EEA4: .4byte 0x00000af8 -_0815EEA8: - movs r0, 0 -_0815EEAA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_815EE88 - - thumb_func_start sub_815EEB0 -sub_815EEB0: @ 815EEB0 - push {lr} - ldr r0, _0815EECC @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EED0 @ =0x00000af8 - adds r0, r1 - bl sub_815EE3C - ldr r1, _0815EED4 @ =gSpecialVar_0x8004 - ldrh r1, [r1] - cmp r0, r1 - bcc _0815EED8 - movs r0, 0x1 - b _0815EEDA - .align 2, 0 -_0815EECC: .4byte gSaveBlock2Ptr -_0815EED0: .4byte 0x00000af8 -_0815EED4: .4byte gSpecialVar_0x8004 -_0815EED8: - movs r0, 0 -_0815EEDA: - pop {r1} - bx r1 - thumb_func_end sub_815EEB0 - - thumb_func_start sub_815EEE0 -sub_815EEE0: @ 815EEE0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _0815EF04 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EF08 @ =0x00000af8 - adds r5, r0, r1 - adds r0, r5, 0 - bl sub_815EE3C - adds r1, r0, r4 - ldr r2, _0815EF0C @ =0x0001869f - cmp r1, r2 - bhi _0815EF10 - adds r0, r5, 0 - bl sub_815EE54 - movs r0, 0x1 - b _0815EF1A - .align 2, 0 -_0815EF04: .4byte gSaveBlock2Ptr -_0815EF08: .4byte 0x00000af8 -_0815EF0C: .4byte 0x0001869f -_0815EF10: - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_815EE54 - movs r0, 0 -_0815EF1A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815EEE0 - - thumb_func_start sub_815EF20 -sub_815EF20: @ 815EF20 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _0815EF4C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EF50 @ =0x00000af8 - adds r4, r0, r1 - adds r0, r5, 0 - bl sub_815EE88 - lsls r0, 24 - cmp r0, 0 - beq _0815EF54 - adds r0, r4, 0 - bl sub_815EE3C - adds r1, r0, 0 - subs r1, r5 - adds r0, r4, 0 - bl sub_815EE54 - movs r0, 0x1 - b _0815EF56 - .align 2, 0 -_0815EF4C: .4byte gSaveBlock2Ptr -_0815EF50: .4byte 0x00000af8 -_0815EF54: - movs r0, 0 -_0815EF56: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815EF20 - - thumb_func_start sub_815EF5C -sub_815EF5C: @ 815EF5C - push {r4,r5,lr} - ldr r0, _0815EF8C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EF90 @ =0x00000af8 - adds r4, r0, r1 - ldr r5, _0815EF94 @ =gSpecialVar_0x8004 - ldrh r0, [r5] - bl sub_815EE88 - lsls r0, 24 - cmp r0, 0 - beq _0815EF98 - adds r0, r4, 0 - bl sub_815EE3C - adds r1, r0, 0 - ldrh r0, [r5] - subs r1, r0 - adds r0, r4, 0 - bl sub_815EE54 - movs r0, 0x1 - b _0815EF9A - .align 2, 0 -_0815EF8C: .4byte gSaveBlock2Ptr -_0815EF90: .4byte 0x00000af8 -_0815EF94: .4byte gSpecialVar_0x8004 -_0815EF98: - movs r0, 0 -_0815EF9A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815EF5C - - thumb_func_start sub_815EFA0 -sub_815EFA0: @ 815EFA0 - push {lr} - ldr r0, _0815EFB4 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EFB8 @ =0x00000af8 - adds r0, r1 - bl sub_815EE3C - pop {r1} - bx r1 - .align 2, 0 -_0815EFB4: .4byte gSaveBlock2Ptr -_0815EFB8: .4byte 0x00000af8 - thumb_func_end sub_815EFA0 - - thumb_func_start sub_815EFBC -sub_815EFBC: @ 815EFBC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - adds r6, r0, 0 - mov r8, r2 - adds r4, r3, 0 - ldr r5, [sp, 0x24] - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0815F010 @ =gStringVar1 - mov r9, r0 - movs r2, 0x1 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0 - mov r2, r9 - mov r3, r8 - bl AddTextPrinterParameterized - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F010: .4byte gStringVar1 - thumb_func_end sub_815EFBC - - thumb_func_start sub_815F014 -sub_815F014: @ 815F014 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - adds r6, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - mov r8, r3 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - movs r1, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl SetWindowBorderStyle - ldr r2, _0815F06C @ =gUnknown_8416655 - movs r4, 0 - str r4, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0 - movs r3, 0 - bl AddTextPrinterParameterized - str r4, [sp] - adds r0, r6, 0 - mov r1, r8 - movs r2, 0x27 - movs r3, 0xC - bl sub_815EFBC - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F06C: .4byte gUnknown_8416655 - thumb_func_end sub_815F014 - - thumb_func_start sub_815F070 -sub_815F070: @ 815F070 - push {lr} - sub sp, 0x4 - bl sub_815EFA0 - adds r1, r0, 0 - ldr r0, _0815F090 @ =gUnknown_203F464 - ldrb r0, [r0] - movs r2, 0 - str r2, [sp] - movs r2, 0x27 - movs r3, 0xC - bl sub_815EFBC - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0815F090: .4byte gUnknown_203F464 - thumb_func_end sub_815F070 - - thumb_func_start sub_815F094 -sub_815F094: @ 815F094 - push {r4,r5,lr} - sub sp, 0x20 - ldr r0, _0815F108 @ =sub_809D6D4 - bl sub_81119D4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0815F100 - movs r0, 0x8 - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0x20 - str r0, [sp, 0xC] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl SetWindowTemplateFields - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r4, _0815F10C @ =gUnknown_203F464 - add r0, sp, 0x18 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - ldr r5, _0815F110 @ =0x0000021d - adds r1, r5, 0 - movs r2, 0xD0 - bl sub_814FF2C - ldrb r4, [r4] - bl sub_815EFA0 - adds r3, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xD - bl sub_815F014 -_0815F100: - add sp, 0x20 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815F108: .4byte sub_809D6D4 -_0815F10C: .4byte gUnknown_203F464 -_0815F110: .4byte 0x0000021d - thumb_func_end sub_815F094 - - thumb_func_start sub_815F114 -sub_815F114: @ 815F114 - push {r4,lr} - ldr r4, _0815F134 @ =gUnknown_203F464 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_810F4D8 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815F134: .4byte gUnknown_203F464 - thumb_func_end sub_815F114 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_815F138.s b/asm/unk_815F138.s deleted file mode 100644 index eaca7d2a4..000000000 --- a/asm/unk_815F138.s +++ /dev/null @@ -1,753 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815F138 -sub_815F138: @ 815F138 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - ldr r0, [sp, 0x18] - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0815F190 @ =sub_815F1AC - movs r1, 0x50 - str r3, [sp] - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0815F194 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xC] - strh r5, [r1, 0xE] - strh r6, [r1, 0x10] - ldr r3, [sp] - strh r3, [r1, 0x12] - mov r0, r8 - strh r0, [r1, 0x14] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F190: .4byte sub_815F1AC -_0815F194: .4byte gTasks - thumb_func_end sub_815F138 - - thumb_func_start sub_815F198 -sub_815F198: @ 815F198 - push {lr} - ldr r0, _0815F1A8 @ =sub_815F1AC - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0815F1A8: .4byte sub_815F1AC - thumb_func_end sub_815F198 - - thumb_func_start sub_815F1AC -sub_815F1AC: @ 815F1AC - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0815F1D0 @ =gTasks+0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _0815F21C - cmp r0, 0x1 - bgt _0815F1D4 - cmp r0, 0 - beq _0815F1DA - b _0815F29E - .align 2, 0 -_0815F1D0: .4byte gTasks+0x8 -_0815F1D4: - cmp r0, 0x2 - beq _0815F260 - b _0815F29E -_0815F1DA: - ldrh r0, [r5, 0x4] - ldrh r1, [r5, 0x6] - bl sub_815F564 - ldrh r0, [r5, 0x4] - ldrh r1, [r5, 0x6] - movs r3, 0x8 - ldrsh r2, [r5, r3] - movs r4, 0xA - ldrsh r3, [r5, r4] - ldrb r4, [r5, 0xC] - str r4, [sp] - bl sub_815F5BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - ldrh r0, [r5, 0x4] - ldrh r1, [r5, 0x6] - movs r3, 0x8 - ldrsh r2, [r5, r3] - movs r4, 0xA - ldrsh r3, [r5, r4] - ldrb r4, [r5, 0xC] - str r4, [sp] - adds r4, r5, 0 - adds r4, 0x10 - str r4, [sp, 0x4] - adds r4, 0x2 - str r4, [sp, 0x8] - bl sub_815F610 - b _0815F252 -_0815F21C: - ldrb r0, [r5, 0xE] - bl sub_815F2AC - cmp r0, 0 - bne _0815F29E - ldrb r0, [r5, 0xE] - ldrb r1, [r5, 0x10] - ldrb r2, [r5, 0x12] - bl sub_815F3E0 - movs r0, 0xE - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0815F25C @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - movs r3, 0xE - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_0815F252: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _0815F29E - .align 2, 0 -_0815F25C: .4byte gSprites -_0815F260: - ldrb r0, [r5, 0x10] - bl sub_815F444 - cmp r0, 0 - bne _0815F29E - movs r4, 0x10 - ldrsh r1, [r5, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0815F2A8 @ =gSprites - adds r0, r4 - bl DestroySprite - movs r0, 0x12 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldrh r0, [r5, 0x4] - bl FreeSpriteTilesByTag - ldrh r0, [r5, 0x6] - bl FreeSpritePaletteByTag - adds r0, r6, 0 - bl DestroyTask -_0815F29E: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F2A8: .4byte gSprites - thumb_func_end sub_815F1AC - - thumb_func_start sub_815F2AC -sub_815F2AC: @ 815F2AC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0815F2D0 @ =gSprites - adds r4, r1, r0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bls _0815F2C6 - b _0815F3D8 -_0815F2C6: - lsls r0, 2 - ldr r1, _0815F2D4 @ =_0815F2D8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815F2D0: .4byte gSprites -_0815F2D4: .4byte _0815F2D8 - .align 2, 0 -_0815F2D8: - .4byte _0815F2F8 - .4byte _0815F30A - .4byte _0815F330 - .4byte _0815F340 - .4byte _0815F362 - .4byte _0815F39A - .4byte _0815F3C0 - .4byte _0815F396 -_0815F2F8: - movs r1, 0x80 - lsls r1, 4 - adds r0, r4, 0 - movs r2, 0x1A - bl sub_8007FFC - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0815F30A: - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0815F318 - movs r0, 0x32 - bl PlaySE -_0815F318: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _0815F3D8 - movs r0, 0 - strh r0, [r4, 0x32] - adds r0, r4, 0 - movs r1, 0x1 - b _0815F3B6 -_0815F330: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0815F3D8 - b _0815F3BA -_0815F340: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0815F3D8 - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _0815F3D8 -_0815F362: - ldrh r0, [r4, 0x22] - subs r0, 0x4 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _0815F3D8 - ldrh r1, [r4, 0x36] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bgt _0815F392 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r4, 0x32] - b _0815F3BA -_0815F392: - movs r0, 0x7 - strh r0, [r4, 0x2E] -_0815F396: - movs r0, 0 - b _0815F3DA -_0815F39A: - ldrh r0, [r4, 0x22] - adds r0, 0x4 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _0815F3D8 - movs r0, 0 - strh r0, [r4, 0x32] - adds r0, r4, 0 - movs r1, 0x3 -_0815F3B6: - bl StartSpriteAffineAnim -_0815F3BA: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - b _0815F3D6 -_0815F3C0: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0815F3D8 - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - movs r0, 0x1 -_0815F3D6: - strh r0, [r4, 0x2E] -_0815F3D8: - movs r0, 0x1 -_0815F3DA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_815F2AC - - thumb_func_start sub_815F3E0 -sub_815F3E0: @ 815F3E0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0815F438 @ =gSprites - mov r8, r0 - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r5, r4, r0 - ldr r0, _0815F43C @ =0x0000ffd8 - strh r0, [r5, 0x26] - lsls r3, r2, 4 - adds r3, r2 - lsls r3, 2 - mov r1, r8 - adds r2, r3, r1 - strh r0, [r2, 0x26] - adds r5, 0x3E - ldrb r6, [r5] - movs r1, 0x5 - negs r1, r1 - adds r0, r1, 0 - ands r0, r6 - strb r0, [r5] - adds r2, 0x3E - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - movs r0, 0x1C - add r8, r0 - add r4, r8 - ldr r0, _0815F440 @ =sub_815F470 - str r0, [r4] - add r3, r8 - str r0, [r3] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F438: .4byte gSprites -_0815F43C: .4byte 0x0000ffd8 -_0815F440: .4byte sub_815F470 - thumb_func_end sub_815F3E0 - - thumb_func_start sub_815F444 -sub_815F444: @ 815F444 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - ldr r2, _0815F468 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r2, 0x1C - adds r1, r2 - ldr r1, [r1] - ldr r0, _0815F46C @ =sub_815F470 - cmp r1, r0 - bne _0815F462 - movs r3, 0x1 -_0815F462: - adds r0, r3, 0 - pop {r1} - bx r1 - .align 2, 0 -_0815F468: .4byte gSprites -_0815F46C: .4byte sub_815F470 - thumb_func_end sub_815F444 - - thumb_func_start sub_815F470 -sub_815F470: @ 815F470 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x2E - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bhi _0815F55A - lsls r0, 2 - ldr r1, _0815F48C @ =_0815F490 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815F48C: .4byte _0815F490 - .align 2, 0 -_0815F490: - .4byte _0815F4A4 - .4byte _0815F4B4 - .4byte _0815F4DC - .4byte _0815F510 - .4byte _0815F548 -_0815F4A4: - movs r0, 0x40 - strh r0, [r4, 0x8] - ldrh r0, [r5, 0x26] - lsls r0, 4 - strh r0, [r4, 0xA] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_0815F4B4: - ldrh r1, [r4, 0x8] - ldrh r2, [r4, 0xA] - adds r0, r1, r2 - strh r0, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0x8] - lsls r0, 16 - asrs r0, 20 - strh r0, [r5, 0x26] - cmp r0, 0 - blt _0815F55A - movs r0, 0x32 - bl PlaySE - movs r0, 0 - strh r0, [r5, 0x26] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _0815F55A -_0815F4DC: - ldrh r0, [r4, 0x2] - adds r0, 0xC - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7F - ble _0815F4FA - movs r0, 0x32 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_0815F4FA: - ldr r0, _0815F50C @ =gUnknown_825E074 - movs r2, 0x2 - ldrsh r1, [r4, r2] - lsls r1, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - asrs r0, 4 - b _0815F53E - .align 2, 0 -_0815F50C: .4byte gUnknown_825E074 -_0815F510: - ldrh r0, [r4, 0x2] - adds r0, 0x10 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7F - ble _0815F52E - movs r0, 0x32 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_0815F52E: - ldr r1, _0815F544 @ =gUnknown_825E074 - movs r2, 0x2 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 21 -_0815F53E: - negs r0, r0 - strh r0, [r5, 0x26] - b _0815F55A - .align 2, 0 -_0815F544: .4byte gUnknown_825E074 -_0815F548: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _0815F55A - ldr r0, _0815F560 @ =SpriteCallbackDummy - str r0, [r5, 0x1C] -_0815F55A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815F560: .4byte SpriteCallbackDummy - thumb_func_end sub_815F470 - - thumb_func_start sub_815F564 -sub_815F564: @ 815F564 - push {r4,lr} - sub sp, 0x10 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _0815F5AC @ =gUnknown_847A79C - ldr r3, [r2, 0x4] - ldr r2, [r2] - str r2, [sp] - str r3, [sp, 0x4] - ldr r2, _0815F5B0 @ =gUnknown_847A7A4 - ldr r3, [r2, 0x4] - ldr r2, [r2] - str r2, [sp, 0x8] - str r3, [sp, 0xC] - lsls r0, 16 - ldr r3, _0815F5B4 @ =0x0000ffff - ldr r2, [sp, 0x4] - ands r2, r3 - orrs r2, r0 - str r2, [sp, 0x4] - ldr r2, _0815F5B8 @ =0xffff0000 - add r4, sp, 0x8 - ldr r0, [r4, 0x4] - ands r0, r2 - orrs r0, r1 - str r0, [r4, 0x4] - mov r0, sp - bl LoadCompressedObjectPic - adds r0, r4, 0 - bl LoadSpritePalette - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815F5AC: .4byte gUnknown_847A79C -_0815F5B0: .4byte gUnknown_847A7A4 -_0815F5B4: .4byte 0x0000ffff -_0815F5B8: .4byte 0xffff0000 - thumb_func_end sub_815F564 - - thumb_func_start sub_815F5BC -sub_815F5BC: @ 815F5BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - mov r12, r3 - ldr r3, [sp, 0x30] - lsls r1, 16 - lsrs r1, 16 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - mov r5, sp - ldr r4, _0815F60C @ =gUnknown_847A860 - ldm r4!, {r3,r6,r7} - stm r5!, {r3,r6,r7} - ldm r4!, {r3,r6,r7} - stm r5!, {r3,r6,r7} - mov r4, sp - strh r0, [r4] - mov r0, sp - strh r1, [r0, 0x2] - lsls r2, 16 - asrs r2, 16 - mov r0, r12 - lsls r6, r0, 16 - asrs r6, 16 - mov r0, sp - adds r1, r2, 0 - adds r2, r6, 0 - mov r3, r8 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0815F60C: .4byte gUnknown_847A860 - thumb_func_end sub_815F5BC - - thumb_func_start sub_815F610 -sub_815F610: @ 815F610 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r12, r3 - ldr r6, [sp, 0x38] - ldr r3, [sp, 0x3C] - mov r9, r3 - ldr r4, [sp, 0x40] - mov r8, r4 - lsls r1, 16 - lsrs r1, 16 - lsls r6, 24 - lsrs r6, 24 - mov r10, r6 - mov r4, sp - ldr r3, _0815F6D4 @ =gUnknown_847A878 - ldm r3!, {r5-r7} - stm r4!, {r5-r7} - ldm r3!, {r5-r7} - stm r4!, {r5-r7} - mov r3, sp - strh r0, [r3] - mov r0, sp - strh r1, [r0, 0x2] - lsls r2, 16 - asrs r4, r2, 16 - ldr r0, _0815F6D8 @ =0xffe00000 - adds r2, r0 - asrs r2, 16 - mov r1, r12 - lsls r5, r1, 16 - asrs r5, 16 - mov r0, sp - adds r1, r2, 0 - adds r2, r5, 0 - mov r3, r10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r3, r9 - strh r0, [r3] - adds r4, 0x20 - lsls r4, 16 - asrs r4, 16 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r4, r8 - strh r0, [r4] - ldr r2, _0815F6DC @ =gSprites - mov r5, r9 - movs r6, 0 - ldrsh r1, [r5, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r3, 0x4 - orrs r1, r3 - strb r1, [r0] - movs r7, 0 - ldrsh r1, [r4, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - bl StartSpriteAnim - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815F6D4: .4byte gUnknown_847A878 -_0815F6D8: .4byte 0xffe00000 -_0815F6DC: .4byte gSprites - thumb_func_end sub_815F610 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unknown_task.s b/asm/unknown_task.s deleted file mode 100644 index 6f417a4a1..000000000 --- a/asm/unknown_task.s +++ /dev/null @@ -1,644 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start remove_some_task -remove_some_task: @ 8087E64 - push {r4,lr} - ldr r4, _08087E94 @ =gUnknown_2039600 - movs r0, 0 - strb r0, [r4, 0x15] - ldr r1, _08087E98 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _08087E9C @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _08087EA0 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldrb r0, [r4, 0x18] - cmp r0, 0xFF - beq _08087E8E - bl DestroyTask - movs r0, 0xFF - strb r0, [r4, 0x18] -_08087E8E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08087E94: .4byte gUnknown_2039600 -_08087E98: .4byte 0x040000b0 -_08087E9C: .4byte 0x0000c5ff -_08087EA0: .4byte 0x00007fff - thumb_func_end remove_some_task - - thumb_func_start dp12_8087EA4 -dp12_8087EA4: @ 8087EA4 - push {r4,lr} - sub sp, 0x4 - mov r0, sp - movs r4, 0 - strh r4, [r0] - ldr r1, _08087ED8 @ =gUnknown_2038700 - ldr r2, _08087EDC @ =0x01000780 - bl CpuSet - ldr r0, _08087EE0 @ =gUnknown_2039600 - movs r1, 0 - str r1, [r0] - str r1, [r0, 0x4] - str r1, [r0, 0x8] - str r1, [r0, 0xC] - strb r4, [r0, 0x14] - strb r4, [r0, 0x15] - strb r4, [r0, 0x16] - strb r4, [r0, 0x17] - movs r1, 0xFF - strb r1, [r0, 0x18] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08087ED8: .4byte gUnknown_2038700 -_08087EDC: .4byte 0x01000780 -_08087EE0: .4byte gUnknown_2039600 - thumb_func_end dp12_8087EA4 - - thumb_func_start sub_8087EE4 -sub_8087EE4: @ 8087EE4 - push {lr} - sub sp, 0xC - str r0, [sp] - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r0, _08087F08 @ =0xa2600001 - cmp r1, r0 - bne _08087F18 - ldr r0, _08087F0C @ =gUnknown_2039600 - ldr r1, _08087F10 @ =gUnknown_2038702 - str r1, [r0] - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - str r1, [r0, 0x4] - ldr r1, _08087F14 @ =sub_8087FE0 - b _08087F28 - .align 2, 0 -_08087F08: .4byte 0xa2600001 -_08087F0C: .4byte gUnknown_2039600 -_08087F10: .4byte gUnknown_2038702 -_08087F14: .4byte sub_8087FE0 -_08087F18: - ldr r0, _08087F48 @ =gUnknown_2039600 - ldr r1, _08087F4C @ =gUnknown_2038704 - str r1, [r0] - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - str r1, [r0, 0x4] - ldr r1, _08087F50 @ =sub_8088000 -_08087F28: - str r1, [r0, 0x10] - adds r1, r0, 0 - ldr r0, [sp, 0x4] - str r0, [r1, 0xC] - ldr r0, [sp] - str r0, [r1, 0x8] - mov r0, sp - ldrb r0, [r0, 0x8] - strb r0, [r1, 0x15] - mov r0, sp - ldrb r0, [r0, 0x9] - strb r0, [r1, 0x16] - strb r0, [r1, 0x17] - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_08087F48: .4byte gUnknown_2039600 -_08087F4C: .4byte gUnknown_2038704 -_08087F50: .4byte sub_8088000 - thumb_func_end sub_8087EE4 - - thumb_func_start sub_8087F54 -sub_8087F54: @ 8087F54 - push {r4,lr} - ldr r4, _08087F84 @ =gUnknown_2039600 - ldrb r0, [r4, 0x15] - cmp r0, 0 - beq _08087FCE - cmp r0, 0x3 - bne _08087F98 - movs r0, 0 - strb r0, [r4, 0x15] - ldr r1, _08087F88 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _08087F8C @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _08087F90 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldr r1, _08087F94 @ =gUnknown_203961C - movs r0, 0x1 - strb r0, [r1] - b _08087FCE - .align 2, 0 -_08087F84: .4byte gUnknown_2039600 -_08087F88: .4byte 0x040000b0 -_08087F8C: .4byte 0x0000c5ff -_08087F90: .4byte 0x00007fff -_08087F94: .4byte gUnknown_203961C -_08087F98: - ldr r1, _08087FD4 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _08087FD8 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _08087FDC @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldrb r0, [r4, 0x14] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - ldr r0, [r4, 0x8] - str r0, [r1, 0x4] - ldr r0, [r4, 0xC] - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r0, [r4, 0x10] - bl _call_via_r0 - ldrb r0, [r4, 0x14] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4, 0x14] -_08087FCE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08087FD4: .4byte 0x040000b0 -_08087FD8: .4byte 0x0000c5ff -_08087FDC: .4byte 0x00007fff - thumb_func_end sub_8087F54 - - thumb_func_start sub_8087FE0 -sub_8087FE0: @ 8087FE0 - ldr r0, _08087FF8 @ =gUnknown_2039600 - ldr r2, [r0, 0x8] - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _08087FFC @ =gUnknown_2038700 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_08087FF8: .4byte gUnknown_2039600 -_08087FFC: .4byte gUnknown_2038700 - thumb_func_end sub_8087FE0 - - thumb_func_start sub_8088000 -sub_8088000: @ 8088000 - ldr r0, _08088018 @ =gUnknown_2039600 - ldr r2, [r0, 0x8] - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _0808801C @ =gUnknown_2038700 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - bx lr - .align 2, 0 -_08088018: .4byte gUnknown_2039600 -_0808801C: .4byte gUnknown_2038700 - thumb_func_end sub_8088000 - - thumb_func_start task00_for_dp12 -task00_for_dp12: @ 8088020 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r6, 0 - ldr r0, _08088048 @ =gUnknown_203961C - ldrb r0, [r0] - cmp r0, 0 - beq _08088050 - mov r0, r12 - bl DestroyTask - ldr r1, _0808804C @ =gUnknown_2039600 - movs r0, 0xFF - strb r0, [r1, 0x18] - b _080881D0 - .align 2, 0 -_08088048: .4byte gUnknown_203961C -_0808804C: .4byte gUnknown_2039600 -_08088050: - ldr r1, _0808807C @ =gTasks - mov r0, r12 - lsls r2, r0, 2 - adds r0, r2, r0 - lsls r0, 3 - adds r3, r0, r1 - movs r4, 0x16 - ldrsh r0, [r3, r4] - mov r10, r1 - mov r9, r2 - cmp r0, 0 - beq _080880FC - movs r1, 0x14 - ldrsh r0, [r3, r1] - cmp r0, 0xE - bhi _080880FC - lsls r0, 2 - ldr r1, _08088080 @ =_08088084 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808807C: .4byte gTasks -_08088080: .4byte _08088084 - .align 2, 0 -_08088084: - .4byte _080880C0 - .4byte _080880FC - .4byte _080880C8 - .4byte _080880FC - .4byte _080880D0 - .4byte _080880FC - .4byte _080880D8 - .4byte _080880FC - .4byte _080880E0 - .4byte _080880FC - .4byte _080880E8 - .4byte _080880FC - .4byte _080880F0 - .4byte _080880FC - .4byte _080880F8 -_080880C0: - ldr r0, _080880C4 @ =gUnknown_2022974 - b _080880FA - .align 2, 0 -_080880C4: .4byte gUnknown_2022974 -_080880C8: - ldr r0, _080880CC @ =gUnknown_2022976 - b _080880FA - .align 2, 0 -_080880CC: .4byte gUnknown_2022976 -_080880D0: - ldr r0, _080880D4 @ =gUnknown_2022978 - b _080880FA - .align 2, 0 -_080880D4: .4byte gUnknown_2022978 -_080880D8: - ldr r0, _080880DC @ =gUnknown_202297A - b _080880FA - .align 2, 0 -_080880DC: .4byte gUnknown_202297A -_080880E0: - ldr r0, _080880E4 @ =gUnknown_202297C - b _080880FA - .align 2, 0 -_080880E4: .4byte gUnknown_202297C -_080880E8: - ldr r0, _080880EC @ =gUnknown_202297E - b _080880FA - .align 2, 0 -_080880EC: .4byte gUnknown_202297E -_080880F0: - ldr r0, _080880F4 @ =gUnknown_2022980 - b _080880FA - .align 2, 0 -_080880F4: .4byte gUnknown_2022980 -_080880F8: - ldr r0, _0808815C @ =gUnknown_2022982 -_080880FA: - ldrh r6, [r0] -_080880FC: - mov r0, r9 - add r0, r12 - lsls r0, 3 - mov r2, r10 - adds r1, r0, r2 - ldrh r2, [r1, 0x10] - movs r3, 0x10 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08088168 - subs r0, r2, 0x1 - strh r0, [r1, 0x10] - movs r4, 0xE - ldrsh r0, [r1, r4] - movs r3, 0xA0 - lsls r3, 1 - adds r2, r0, r3 - movs r4, 0x8 - ldrsh r3, [r1, r4] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r3, r0 - bge _080881D0 - ldr r5, _08088160 @ =gUnknown_2038700 - ldr r0, _08088164 @ =gUnknown_2039600 - mov r8, r0 - adds r7, r1, 0 - lsls r0, r2, 1 - adds r4, r0, r5 -_08088136: - lsls r2, r3, 1 - mov r0, r8 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r5 - ldrh r0, [r4] - adds r0, r6 - strh r0, [r2] - adds r4, 0x2 - adds r3, 0x1 - movs r1, 0xA - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _08088136 - b _080881D0 - .align 2, 0 -_0808815C: .4byte gUnknown_2022982 -_08088160: .4byte gUnknown_2038700 -_08088164: .4byte gUnknown_2039600 -_08088168: - ldrh r0, [r1, 0x12] - strh r0, [r1, 0x10] - movs r2, 0xE - ldrsh r0, [r1, r2] - movs r3, 0xA0 - lsls r3, 1 - adds r2, r0, r3 - movs r4, 0x8 - ldrsh r3, [r1, r4] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r3, r0 - bge _080881B0 - ldr r5, _080881E0 @ =gUnknown_2038700 - adds r7, r1, 0 - lsls r0, r2, 1 - adds r4, r0, r5 - ldr r0, _080881E4 @ =gUnknown_2039600 - mov r8, r0 -_0808818E: - lsls r2, r3, 1 - mov r0, r8 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r5 - ldrh r0, [r4] - adds r0, r6 - strh r0, [r2] - adds r4, 0x2 - adds r3, 0x1 - movs r1, 0xA - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _0808818E -_080881B0: - mov r0, r9 - add r0, r12 - lsls r0, 3 - mov r3, r10 - adds r2, r0, r3 - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r4, 0xC - ldrsh r1, [r2, r4] - cmp r0, r1 - bne _080881D0 - movs r0, 0 - strh r0, [r2, 0xE] -_080881D0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080881E0: .4byte gUnknown_2038700 -_080881E4: .4byte gUnknown_2039600 - thumb_func_end task00_for_dp12 - - thumb_func_start sub_80881E8 -sub_80881E8: @ 80881E8 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r1, 0 - movs r2, 0 - ldr r0, _0808822C @ =gUnknown_825E074 - mov r12, r0 -_080881FC: - lsls r0, r1, 1 - adds r3, r0, r6 - lsls r0, r2, 1 - add r0, r12 - movs r7, 0 - ldrsh r0, [r0, r7] - muls r0, r4 - cmp r0, 0 - bge _08088210 - adds r0, 0xFF -_08088210: - asrs r0, 8 - strh r0, [r3] - adds r0, r2, r5 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xFF - bls _080881FC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808822C: .4byte gUnknown_825E074 - thumb_func_end sub_80881E8 - - thumb_func_start sub_8088230 -sub_8088230: @ 8088230 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r5, r0, 0 - str r1, [sp, 0x10] - ldr r0, [sp, 0x40] - mov r8, r0 - ldr r1, [sp, 0x44] - mov r9, r1 - ldr r0, [sp, 0x48] - mov r10, r0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, [sp, 0x10] - lsls r1, 24 - str r1, [sp, 0x14] - lsrs r0, r1, 24 - str r0, [sp, 0xC] - lsls r1, r2, 24 - lsrs r1, 24 - str r1, [sp, 0x18] - lsls r2, r3, 24 - lsrs r2, 24 - str r2, [sp, 0x1C] - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - mov r3, r9 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl dp12_8087EA4 - ldr r0, _0808833C @ =0x04000010 - add r0, r9 - str r0, [sp] - ldr r0, _08088340 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - movs r1, 0 - strb r1, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - ldr r0, _08088344 @ =task00_for_dp12 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08088348 @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - strh r5, [r4, 0x8] - mov r3, sp - ldrh r3, [r3, 0xC] - strh r3, [r4, 0xA] - movs r0, 0x80 - lsls r0, 1 - ldr r1, [sp, 0x18] - bl __divsi3 - strh r0, [r4, 0xC] - movs r0, 0 - strh r0, [r4, 0xE] - mov r1, r8 - strh r1, [r4, 0x10] - strh r1, [r4, 0x12] - mov r3, r9 - strh r3, [r4, 0x14] - mov r0, r10 - strh r0, [r4, 0x16] - ldr r0, _0808834C @ =gUnknown_2039600 - strb r7, [r0, 0x18] - ldr r0, _08088350 @ =gUnknown_203961C - movs r1, 0 - strb r1, [r0] - ldr r4, _08088354 @ =gUnknown_2038980 - ldr r3, [sp, 0xC] - subs r6, r3, r5 - lsls r3, r6, 24 - lsrs r3, 24 - adds r0, r4, 0 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - bl sub_80881E8 - ldr r0, [sp, 0xC] - cmp r5, r0 - bge _0808832A - ldr r1, _08088358 @ =0xfffffd80 - adds r2, r4, r1 - lsls r1, r5, 1 - movs r3, 0xF0 - lsls r3, 3 - adds r0, r1, r3 - adds r3, r0, r2 - adds r1, r2 - adds r2, r4, 0 - adds r5, r6, 0 -_08088316: - ldrh r0, [r2] - strh r0, [r1] - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - adds r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - bne _08088316 -_0808832A: - adds r0, r7, 0 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0808833C: .4byte 0x04000010 -_08088340: .4byte 0xa2600001 -_08088344: .4byte task00_for_dp12 -_08088348: .4byte gTasks -_0808834C: .4byte gUnknown_2039600 -_08088350: .4byte gUnknown_203961C -_08088354: .4byte gUnknown_2038980 -_08088358: .4byte 0xfffffd80 - thumb_func_end sub_8088230 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/util.s b/asm/util.s deleted file mode 100644 index a3efaa8f2..000000000 --- a/asm/util.s +++ /dev/null @@ -1,500 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start CreateInvisibleSpriteWithCallback -CreateInvisibleSpriteWithCallback: @ 8044EF8 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _08044F2C @ =gUnknown_825E4DC - movs r1, 0xF8 - movs r2, 0xA8 - movs r3, 0xE - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08044F30 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r3, r2, r5 - adds r3, 0x3E - ldrb r1, [r3] - movs r4, 0x4 - orrs r1, r4 - strb r1, [r3] - adds r5, 0x1C - adds r2, r5 - str r6, [r2] - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08044F2C: .4byte gUnknown_825E4DC -_08044F30: .4byte gSprites - thumb_func_end CreateInvisibleSpriteWithCallback - - thumb_func_start StoreWordInTwoHalfwords -StoreWordInTwoHalfwords: @ 8044F34 - strh r1, [r0] - lsrs r1, 16 - strh r1, [r0, 0x2] - bx lr - thumb_func_end StoreWordInTwoHalfwords - - thumb_func_start LoadWordFromTwoHalfwords -LoadWordFromTwoHalfwords: @ 8044F3C - ldrh r2, [r0] - movs r3, 0x2 - ldrsh r0, [r0, r3] - lsls r0, 16 - orrs r2, r0 - str r2, [r1] - bx lr - thumb_func_end LoadWordFromTwoHalfwords - - thumb_func_start SetBgAffineStruct -SetBgAffineStruct: @ 8044F4C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, [sp, 0x18] - ldr r5, [sp, 0x1C] - ldr r6, [sp, 0x20] - ldr r7, [sp, 0x24] - mov r8, r7 - str r1, [r0] - str r2, [r0, 0x4] - strh r3, [r0, 0x8] - strh r4, [r0, 0xA] - strh r5, [r0, 0xC] - strh r6, [r0, 0xE] - mov r1, r8 - strh r1, [r0, 0x10] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SetBgAffineStruct - - thumb_func_start DoBgAffineSet -DoBgAffineSet: @ 8044F78 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x24 - mov r8, r0 - ldr r0, [sp, 0x38] - ldr r4, [sp, 0x3C] - ldr r5, [sp, 0x40] - ldr r6, [sp, 0x44] - lsls r6, 16 - lsrs r6, 16 - lsls r3, 16 - asrs r3, 16 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - lsls r4, 16 - asrs r4, 16 - str r4, [sp, 0x4] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x8] - str r6, [sp, 0xC] - add r0, sp, 0x10 - bl SetBgAffineStruct - add r0, sp, 0x10 - mov r1, r8 - movs r2, 0x1 - bl BgAffineSet - add sp, 0x24 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end DoBgAffineSet - - thumb_func_start CopySpriteTiles -CopySpriteTiles: @ 8044FC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - str r2, [sp, 0x20] - adds r4, r3, 0 - ldr r7, [sp, 0x5C] - lsls r0, 24 - lsls r1, 24 - ldr r2, _0804504C @ =gUnknown_825E4F4 - lsrs r1, 23 - lsrs r0, 21 - adds r1, r0 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - str r0, [sp, 0x24] - adds r1, r2 - ldrb r1, [r1] - str r1, [sp, 0x28] - movs r1, 0 - cmp r1, r0 - bcc _08044FF8 - b _0804517A -_08044FF8: - movs r0, 0x20 - ldr r2, [sp, 0x28] - subs r0, r2 - lsls r0, 1 - str r0, [sp, 0x2C] -_08045002: - movs r2, 0 - adds r1, 0x1 - str r1, [sp, 0x34] - ldr r3, [sp, 0x28] - cmp r2, r3 - bcc _08045010 - b _08045168 -_08045010: - ldr r0, _08045050 @ =0x040000d4 - mov r8, r0 -_08045014: - ldrh r1, [r4] - ldr r0, _08045054 @ =0x000003ff - ands r0, r1 - lsls r0, 5 - mov r12, r0 - movs r0, 0xC0 - lsls r0, 4 - ands r0, r1 - mov r3, sp - strh r1, [r3, 0x38] - cmp r0, 0 - bne _0804505C - ldr r0, [sp, 0x20] - add r0, r12 - mov r1, r8 - str r0, [r1] - str r7, [r1, 0x4] - ldr r3, _08045058 @ =0x84000008 - str r3, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r4, 0x2 - str r4, [sp, 0x30] - adds r7, 0x20 - mov r10, r7 - adds r2, 0x1 - mov r9, r2 - b _08045156 - .align 2, 0 -_0804504C: .4byte gUnknown_825E4F4 -_08045050: .4byte 0x040000d4 -_08045054: .4byte 0x000003ff -_08045058: .4byte 0x84000008 -_0804505C: - movs r1, 0x80 - lsls r1, 4 - cmp r0, r1 - bne _080450AC - movs r3, 0 - adds r4, 0x2 - str r4, [sp, 0x30] - movs r0, 0x20 - adds r0, r7 - mov r10, r0 - adds r2, 0x1 - mov r9, r2 - ldr r4, _080450A4 @ =0x040000d4 - ldr r6, _080450A8 @ =0x84000001 - movs r5, 0x7 -_0804507A: - lsls r2, r3, 24 - asrs r2, 24 - subs r0, r5, r2 - lsls r0, 2 - add r0, r12 - ldr r1, [sp, 0x20] - adds r0, r1, r0 - lsls r1, r2, 2 - adds r1, r7, r1 - str r0, [r4] - str r1, [r4, 0x4] - str r6, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r2, 0x1 - lsls r2, 24 - lsrs r3, r2, 24 - asrs r2, 24 - cmp r2, 0x7 - ble _0804507A - b _08045156 - .align 2, 0 -_080450A4: .4byte 0x040000d4 -_080450A8: .4byte 0x84000001 -_080450AC: - movs r3, 0 - adds r4, 0x2 - str r4, [sp, 0x30] - movs r0, 0x20 - adds r0, r7 - mov r10, r0 - adds r2, 0x1 - mov r9, r2 -_080450BC: - movs r2, 0 - lsls r4, r3, 24 - lsls r0, r4, 2 - lsrs r0, 24 - adds r6, r0, 0x3 - mov r1, r12 - adds r5, r1, r0 -_080450CA: - lsls r1, r2, 24 - asrs r1, 24 - subs r0, r6, r1 - mov r2, sp - adds r3, r2, r0 - adds r0, r5, r1 - ldr r2, [sp, 0x20] - adds r0, r2, r0 - ldrb r2, [r0] - movs r0, 0xF - ands r0, r2 - lsls r0, 4 - lsrs r2, 4 - orrs r0, r2 - strb r0, [r3] - adds r1, 0x1 - lsls r1, 24 - lsrs r2, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080450CA - movs r3, 0x80 - lsls r3, 17 - adds r0, r4, r3 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x7 - ble _080450BC - movs r0, 0x80 - lsls r0, 4 - mov r1, sp - ldrh r1, [r1, 0x38] - ands r0, r1 - cmp r0, 0 - beq _08045148 - movs r3, 0 - ldr r4, _08045140 @ =0x040000d4 - ldr r6, _08045144 @ =0x84000001 - movs r5, 0x7 -_08045118: - lsls r1, r3, 24 - asrs r1, 24 - subs r0, r5, r1 - lsls r0, 2 - mov r3, sp - adds r2, r3, r0 - lsls r0, r1, 2 - adds r0, r7, r0 - str r2, [r4] - str r0, [r4, 0x4] - str r6, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r1, 0x1 - lsls r1, 24 - lsrs r3, r1, 24 - asrs r1, 24 - cmp r1, 0x7 - ble _08045118 - b _08045156 - .align 2, 0 -_08045140: .4byte 0x040000d4 -_08045144: .4byte 0x84000001 -_08045148: - mov r0, sp - mov r1, r8 - str r0, [r1] - str r7, [r1, 0x4] - ldr r2, _0804518C @ =0x84000008 - str r2, [r1, 0x8] - ldr r0, [r1, 0x8] -_08045156: - ldr r4, [sp, 0x30] - mov r7, r10 - mov r3, r9 - lsls r0, r3, 24 - lsrs r2, r0, 24 - ldr r0, [sp, 0x28] - cmp r2, r0 - bcs _08045168 - b _08045014 -_08045168: - ldr r1, [sp, 0x2C] - adds r4, r1 - ldr r2, [sp, 0x34] - lsls r0, r2, 24 - lsrs r1, r0, 24 - ldr r3, [sp, 0x24] - cmp r1, r3 - bcs _0804517A - b _08045002 -_0804517A: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804518C: .4byte 0x84000008 - thumb_func_end CopySpriteTiles - - thumb_func_start CountTrailingZeroBits -CountTrailingZeroBits: @ 8045190 - push {lr} - adds r2, r0, 0 - movs r1, 0 - movs r3, 0x1 -_08045198: - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _080451A4 - adds r0, r1, 0 - b _080451B2 -_080451A4: - lsrs r2, 1 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1F - bls _08045198 - movs r0, 0 -_080451B2: - pop {r1} - bx r1 - thumb_func_end CountTrailingZeroBits - - thumb_func_start CalcCRC16 -CalcCRC16: @ 80451B8 - push {r4-r7,lr} - adds r7, r0, 0 - adds r4, r1, 0 - ldr r2, _080451E8 @ =0x00001121 - movs r3, 0 - cmp r3, r4 - bcs _08045204 - movs r6, 0x1 - ldr r0, _080451EC @ =0x00008408 - adds r5, r0, 0 -_080451CC: - adds r0, r7, r3 - ldrb r0, [r0] - eors r2, r0 - movs r1, 0 - adds r3, 0x1 -_080451D6: - adds r0, r2, 0 - ands r0, r6 - cmp r0, 0 - beq _080451F0 - lsrs r0, r2, 1 - eors r0, r5 - lsls r0, 16 - lsrs r2, r0, 16 - b _080451F2 - .align 2, 0 -_080451E8: .4byte 0x00001121 -_080451EC: .4byte 0x00008408 -_080451F0: - lsrs r2, 1 -_080451F2: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bls _080451D6 - lsls r0, r3, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _080451CC -_08045204: - mvns r0, r2 - lsls r0, 16 - lsrs r0, 16 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CalcCRC16 - - thumb_func_start CalcCRC16WithTable -CalcCRC16WithTable: @ 8045210 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r2, _0804524C @ =0x00001121 - movs r3, 0 - cmp r3, r4 - bcs _0804523E - ldr r6, _08045250 @ =gUnknown_825E50C -_08045220: - lsrs r1, r2, 8 - adds r0, r5, r3 - ldrb r0, [r0] - eors r2, r0 - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r6 - ldrh r0, [r0] - adds r2, r0, 0 - eors r2, r1 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _08045220 -_0804523E: - mvns r0, r2 - lsls r0, 16 - lsrs r0, 16 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0804524C: .4byte 0x00001121 -_08045250: .4byte gUnknown_825E50C - thumb_func_end CalcCRC16WithTable - - thumb_func_start CalcByteArraySum -CalcByteArraySum: @ 8045254 - push {r4,lr} - adds r4, r0, 0 - movs r3, 0 - movs r2, 0 - cmp r3, r1 - bcs _0804526C -_08045260: - adds r0, r4, r2 - ldrb r0, [r0] - adds r3, r0 - adds r2, 0x1 - cmp r2, r1 - bcc _08045260 -_0804526C: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end CalcByteArraySum - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/water.s b/asm/water.s new file mode 100644 index 000000000..5518dd33e --- /dev/null +++ b/asm/water.s @@ -0,0 +1,3775 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80AABC0 +sub_80AABC0: @ 80AABC0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080AAC48 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AABE8 + ldr r1, _080AAC4C @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r5, 0xA] + ldrh r0, [r1, 0x2] + strh r0, [r5, 0xC] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0xE] +_080AABE8: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r2, 0x8 + ldrsh r0, [r5, r2] + movs r2, 0xC + ldrsh r1, [r5, r2] + bl __modsi3 + cmp r0, 0x1 + bne _080AAC30 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF0 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x50 + bl __umodsi3 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, _080AAC50 @ =gUnknown_83E5898 + adds r1, r4, 0 + movs r3, 0x4 + bl CreateSprite +_080AAC30: + movs r0, 0x8 + ldrsh r1, [r5, r0] + movs r2, 0xE + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _080AAC42 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080AAC42: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AAC48: .4byte gTasks +_080AAC4C: .4byte gBattleAnimArgs +_080AAC50: .4byte gUnknown_83E5898 + thumb_func_end sub_80AABC0 + + thumb_func_start sub_80AAC54 +sub_80AAC54: @ 80AAC54 + ldr r1, _080AAC5C @ =sub_80AAC60 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080AAC5C: .4byte sub_80AAC60 + thumb_func_end sub_80AAC54 + + thumb_func_start sub_80AAC60 +sub_80AAC60: @ 80AAC60 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD + bgt _080AAC7E + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x26] + adds r0, 0x4 + strh r0, [r2, 0x26] +_080AAC7E: + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AAC92 + adds r0, r2, 0 + bl DestroySprite +_080AAC92: + pop {r0} + bx r0 + thumb_func_end sub_80AAC60 + + thumb_func_start sub_80AAC98 +sub_80AAC98: @ 80AAC98 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r5, _080AACC0 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AACC8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080AACC4 @ =gBattleAnimArgs + ldrh r1, [r4] + subs r0, r1 + b _080AACDA + .align 2, 0 +_080AACC0: .4byte gBattleAnimAttacker +_080AACC4: .4byte gBattleAnimArgs +_080AACC8: + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080AADA0 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 +_080AACDA: + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r6, 0x22] + adds r2, r6, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080AADA4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AAD10 + ldr r1, _080AADA0 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080AAD10: + ldr r5, _080AADA0 @ =gBattleAnimArgs + ldrh r0, [r5, 0xC] + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldr r4, _080AADA8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080AADAC @ =SpriteCallbackDummy + bl CreateInvisibleSpriteWithCallback + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + strh r4, [r6, 0x38] + ldrb r0, [r5, 0x8] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl Sin + ldrh r1, [r6, 0x20] + subs r1, r0 + strh r1, [r6, 0x20] + ldrb r0, [r5, 0x8] + movs r2, 0x6 + ldrsh r1, [r5, r2] + bl Cos + ldrh r1, [r6, 0x22] + subs r1, r0 + strh r1, [r6, 0x22] + ldr r0, _080AADB0 @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r5, 0x4] + strh r0, [r1, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r1, 0x30] + ldrh r0, [r5, 0xA] + strh r0, [r1, 0x32] + ldrb r0, [r5, 0x8] + lsls r0, 8 + strh r0, [r1, 0x34] + ldrh r0, [r5, 0xC] + strh r0, [r1, 0x36] + ldr r1, _080AADB4 @ =sub_80AADB8 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AADA0: .4byte gBattleAnimArgs +_080AADA4: .4byte gBattleAnimAttacker +_080AADA8: .4byte gBattleAnimTarget +_080AADAC: .4byte SpriteCallbackDummy +_080AADB0: .4byte gSprites +_080AADB4: .4byte sub_80AADB8 + thumb_func_end sub_80AAC98 + + thumb_func_start sub_80AADB8 +sub_80AADB8: @ 80AADB8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r1, [r5, 0x38] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080AAE20 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r7, r0, r2 + ldrh r4, [r7, 0x36] + lsls r4, 24 + lsrs r4, 24 + ldrh r0, [r7, 0x34] + mov r8, r0 + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_80755E0 + mov r1, r8 + lsrs r6, r1, 8 + movs r0, 0x2E + ldrsh r1, [r7, r0] + adds r0, r6, 0 + bl Sin + ldrh r1, [r5, 0x24] + adds r0, r1 + strh r0, [r5, 0x24] + movs r0, 0x30 + ldrsh r1, [r7, r0] + adds r0, r6, 0 + bl Cos + ldrh r1, [r5, 0x26] + adds r0, r1 + strh r0, [r5, 0x26] + ldrh r0, [r7, 0x32] + mov r1, r8 + adds r1, r0 + strh r1, [r7, 0x34] + subs r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + cmp r4, 0 + beq _080AAE24 + strh r4, [r7, 0x36] + b _080AAE2E + .align 2, 0 +_080AAE20: .4byte gSprites +_080AAE24: + ldr r0, _080AAE3C @ =sub_80AAE40 + str r0, [r5, 0x1C] + adds r0, r7, 0 + bl DestroySprite +_080AAE2E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AAE3C: .4byte sub_80AAE40 + thumb_func_end sub_80AADB8 + + thumb_func_start sub_80AAE40 +sub_80AAE40: @ 80AAE40 + push {lr} + adds r3, r0, 0 + adds r3, 0x2C + ldrb r2, [r3] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + strb r1, [r3] + ldr r1, _080AAE60 @ =sub_8074F6C + str r1, [r0, 0x1C] + ldr r1, _080AAE64 @ =sub_80AAE68 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080AAE60: .4byte sub_8074F6C +_080AAE64: .4byte sub_80AAE68 + thumb_func_end sub_80AAE40 + + thumb_func_start sub_80AAE68 +sub_80AAE68: @ 80AAE68 + push {lr} + movs r1, 0xA + strh r1, [r0, 0x2E] + ldr r1, _080AAE7C @ =sub_8074C44 + str r1, [r0, 0x1C] + ldr r1, _080AAE80 @ =move_anim_8074EE0 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080AAE7C: .4byte sub_8074C44 +_080AAE80: .4byte move_anim_8074EE0 + thumb_func_end sub_80AAE68 + + thumb_func_start sub_80AAE84 +sub_80AAE84: @ 80AAE84 + push {r4-r7,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080AAEAC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AAEB4 + ldr r1, _080AAEB0 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + lsls r0, 16 + lsrs r6, r0, 16 + adds r7, r1, 0 + b _080AAEBA + .align 2, 0 +_080AAEAC: .4byte gBattleAnimAttacker +_080AAEB0: .4byte gBattleAnimArgs +_080AAEB4: + ldr r0, _080AAF10 @ =gBattleAnimArgs + ldrh r6, [r0, 0x4] + adds r7, r0, 0 +_080AAEBA: + ldrh r0, [r7, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080AAF14 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r7, [r7, 0x6] + adds r0, r7 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080AAF18 @ =sub_80AAF1C + str r0, [r5, 0x1C] + adds r2, r5, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AAF10: .4byte gBattleAnimArgs +_080AAF14: .4byte gBattleAnimTarget +_080AAF18: .4byte sub_80AAF1C + thumb_func_end sub_80AAE84 + + thumb_func_start sub_80AAF1C +sub_80AAF1C: @ 80AAF1C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AAF58 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080AAF5C @ =0x0000ffff + cmp r1, r0 + bne _080AAF3E + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] +_080AAF3E: + adds r0, r4, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080AAF50 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AAF50: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AAF58: .4byte gBattleAnimArgs +_080AAF5C: .4byte 0x0000ffff + thumb_func_end sub_80AAF1C + + thumb_func_start sub_80AAF60 +sub_80AAF60: @ 80AAF60 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080AAF94 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r0, _080AAF98 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r4, 0x8] + ldr r0, _080AAF9C @ =0x0000279c + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r4, 0xC] + ldr r0, _080AAFA0 @ =sub_80AAFA4 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AAF94: .4byte gTasks +_080AAF98: .4byte gBattleAnimArgs +_080AAF9C: .4byte 0x0000279c +_080AAFA0: .4byte sub_80AAFA4 + thumb_func_end sub_80AAF60 + + thumb_func_start sub_80AAFA4 +sub_80AAFA4: @ 80AAFA4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080AB01C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x1C] + adds r0, 0x1 + strh r0, [r2, 0x1C] + lsls r0, 16 + asrs r0, 16 + mov r12, r1 + cmp r0, 0x3 + bne _080AAFF6 + movs r0, 0 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080AB020 @ =gPlttBufferFaded + lsls r0, r5, 1 + adds r0, r1 + ldrh r6, [r0] + adds r7, r1, 0 + adds r3, r0, 0x2 + movs r1, 0x6 + adds r2, r0, 0 +_080AAFE0: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080AAFE0 + adds r0, r5, 0x7 + lsls r0, 1 + adds r0, r7 + strh r6, [r0] +_080AAFF6: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r12 + ldrh r1, [r0, 0x1E] + adds r1, 0x1 + strh r1, [r0, 0x1E] + lsls r1, 16 + asrs r1, 16 + movs r2, 0x8 + ldrsh r0, [r0, r2] + cmp r1, r0 + bne _080AB016 + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AB016: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB01C: .4byte gTasks +_080AB020: .4byte gPlttBufferFaded + thumb_func_end sub_80AAFA4 + + thumb_func_start sub_80AB024 +sub_80AB024: @ 80AB024 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + movs r0, 0x1E + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080AB08C @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x2E + ldrsh r1, [r5, r0] + movs r0, 0xD2 + lsls r0, 8 + bl __divsi3 + strh r0, [r5, 0x38] + ldr r0, _080AB090 @ =gBattleAnimArgs + ldrh r2, [r0, 0x6] + strh r2, [r5, 0x3C] + ldrh r1, [r0, 0xE] + movs r3, 0xE + ldrsh r0, [r0, r3] + cmp r0, 0x7F + ble _080AB094 + adds r0, r1, 0 + subs r0, 0x7F + lsls r0, 8 + strh r0, [r5, 0x3A] + negs r0, r2 + strh r0, [r5, 0x3C] + b _080AB098 + .align 2, 0 +_080AB08C: .4byte gBattleAnimTarget +_080AB090: .4byte gBattleAnimArgs +_080AB094: + lsls r0, r1, 8 + strh r0, [r5, 0x3A] +_080AB098: + ldr r1, _080AB0A8 @ =sub_80AB0AC + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AB0A8: .4byte sub_80AB0AC + thumb_func_end sub_80AB024 + + thumb_func_start sub_80AB0AC +sub_80AB0AC: @ 80AB0AC + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080AB0C0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AB0C0: + ldrh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r2, 0x3A + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + adds r0, r1 + asrs r0, 8 + cmp r0, 0x7F + ble _080AB0F0 + movs r0, 0 + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + negs r0, r0 + strh r0, [r4, 0x3C] + b _080AB0F8 +_080AB0F0: + ldrh r0, [r4, 0x38] + ldrh r1, [r4, 0x3A] + adds r0, r1 + strh r0, [r4, 0x3A] +_080AB0F8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AB0AC + + thumb_func_start sub_80AB100 +sub_80AB100: @ 80AB100 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AB120 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080AB124 @ =gBattleAnimArgs + ldrh r0, [r3] + movs r2, 0 + strh r0, [r1, 0x8] + strh r2, [r3, 0xE] + ldr r0, _080AB128 @ =sub_80AB12C + str r0, [r1] + bx lr + .align 2, 0 +_080AB120: .4byte gTasks +_080AB124: .4byte gBattleAnimArgs +_080AB128: .4byte sub_80AB12C + thumb_func_end sub_80AB100 + + thumb_func_start sub_80AB12C +sub_80AB12C: @ 80AB12C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080AB160 @ =gBattleAnimArgs + ldrh r0, [r2, 0xE] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r2, 0xE] + ldr r1, _080AB164 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bne _080AB15A + adds r0, r3, 0 + bl DestroyAnimVisualTask +_080AB15A: + pop {r0} + bx r0 + .align 2, 0 +_080AB160: .4byte gBattleAnimArgs +_080AB164: .4byte gTasks + thumb_func_end sub_80AB12C + + thumb_func_start sub_80AB168 +sub_80AB168: @ 80AB168 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r7, _080AB1B4 @ =gBattleAnimAttacker + ldrb r0, [r7] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r7] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r6, _080AB1B8 @ =0x0000fff6 + strh r6, [r4, 0x26] + ldrb r0, [r7] + bl sub_807685C + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AB1C2 + ldrb r0, [r7] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AB1BC + movs r0, 0xA + strh r0, [r4, 0x24] + b _080AB1C4 + .align 2, 0 +_080AB1B4: .4byte gBattleAnimAttacker +_080AB1B8: .4byte 0x0000fff6 +_080AB1BC: + strh r6, [r4, 0x24] + subs r0, r5, 0x2 + b _080AB1C6 +_080AB1C2: + strh r6, [r4, 0x24] +_080AB1C4: + adds r0, r5, 0x2 +_080AB1C6: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldr r0, _080AB1D8 @ =sub_80AB1DC + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB1D8: .4byte sub_80AB1DC + thumb_func_end sub_80AB168 + + thumb_func_start sub_80AB1DC +sub_80AB1DC: @ 80AB1DC + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080AB1F2 + adds r0, r2, 0 + bl DestroyAnimSprite +_080AB1F2: + pop {r0} + bx r0 + thumb_func_end sub_80AB1DC + + thumb_func_start sub_80AB1F8 +sub_80AB1F8: @ 80AB1F8 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r5, _080AB2B8 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + adds r4, r0, 0 + ldr r0, _080AB2BC @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080AB242 + ldr r4, _080AB2C0 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4] + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + cmp r0, 0 + beq _080AB23A + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080AB242 +_080AB23A: + movs r1, 0 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4] +_080AB242: + ldr r5, _080AB2C0 @ =gBattleAnimArgs + movs r1, 0xA + ldrsh r0, [r5, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0 + cmp r0, 0 + bne _080AB256 + movs r1, 0x1 +_080AB256: + ldrb r0, [r5, 0xA] + movs r7, 0x1 + cmp r0, 0 + bne _080AB260 + movs r7, 0x3 +_080AB260: + adds r0, r6, 0 + bl sub_8075160 + ldr r0, _080AB2B8 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AB27A + ldrh r0, [r5, 0x4] + negs r0, r0 + strh r0, [r5, 0x4] +_080AB27A: + ldrh r0, [r5, 0x8] + strh r0, [r6, 0x2E] + ldr r4, _080AB2BC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r4] + adds r1, r7, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + strh r0, [r6, 0x36] + ldr r0, _080AB2C4 @ =sub_8075590 + str r0, [r6, 0x1C] + ldr r1, _080AB2C8 @ =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB2B8: .4byte gBattleAnimAttacker +_080AB2BC: .4byte gBattleAnimTarget +_080AB2C0: .4byte gBattleAnimArgs +_080AB2C4: .4byte sub_8075590 +_080AB2C8: .4byte DestroyAnimSprite + thumb_func_end sub_80AB1F8 + + thumb_func_start sub_80AB2CC +sub_80AB2CC: @ 80AB2CC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r0, _080AB2FC @ =gBattleAnimArgs + ldrh r1, [r0, 0x8] + strh r1, [r4, 0x2E] + ldrh r0, [r0, 0x4] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + adds r1, r0 + strh r1, [r4, 0x36] + ldr r0, _080AB300 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080AB304 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB2FC: .4byte gBattleAnimArgs +_080AB300: .4byte sub_8075590 +_080AB304: .4byte DestroyAnimSprite + thumb_func_end sub_80AB2CC + + thumb_func_start sub_80AB308 +sub_80AB308: @ 80AB308 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AB320 @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080AB324 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + b _080AB32C + .align 2, 0 +_080AB320: .4byte gBattleAnimArgs +_080AB324: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075160 +_080AB32C: + ldr r0, _080AB33C @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x3C] + ldr r0, _080AB340 @ =sub_80AB344 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB33C: .4byte gBattleAnimArgs +_080AB340: .4byte sub_80AB344 + thumb_func_end sub_80AB308 + + thumb_func_start sub_80AB344 +sub_80AB344: @ 80AB344 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0xB + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x30 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080AB384 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AB384: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AB344 + + thumb_func_start sub_80AB38C +sub_80AB38C: @ 80AB38C + 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 + mov r10, r0 + ldr r1, _080AB3FC @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1 + bl SetAnimBgAttribute + mov r0, sp + bl sub_80752A0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AB418 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute + ldr r0, _080AB400 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080AB408 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap + bl sub_807543C + b _080AB42E + .align 2, 0 +_080AB3FC: .4byte 0x00003f42 +_080AB400: .4byte gBattleAnimAttacker +_080AB404: .4byte gFile_graphics_unknown_unknown_E81D14_tilemap +_080AB408: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap + bl sub_807543C + b _080AB42E + .align 2, 0 +_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap +_080AB418: + ldr r0, _080AB458 @ =gFile_graphics_unknown_unknown_E822B8_tilemap + ldr r1, [sp, 0x4] + bl LZDecompressVram + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0x1 + bl sub_80730C0 +_080AB42E: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080AB460 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080AB468 + ldr r0, _080AB464 @ =gFile_graphics_battle_anims_backgrounds_water_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _080AB476 + .align 2, 0 +_080AB458: .4byte gFile_graphics_unknown_unknown_E822B8_tilemap +_080AB45C: .4byte gFile_graphics_battle_anims_backgrounds_water_sheet +_080AB460: .4byte gBattleAnimArgs +_080AB464: .4byte gFile_graphics_battle_anims_backgrounds_water_palette +_080AB468: + ldr r0, _080AB4E0 @ =gFile_graphics_battle_anims_backgrounds_water_muddy_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette +_080AB476: + ldr r0, _080AB4E4 @ =sub_80AB79C + ldr r4, _080AB4E8 @ =gTasks + mov r2, r10 + lsls r5, r2, 2 + adds r1, r5, r2 + lsls r1, 3 + adds r6, r1, r4 + ldrb r1, [r6, 0x7] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0 + mov r9, r0 + mov r1, r8 + strh r1, [r6, 0x26] + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r7, r0, r4 + mov r0, r9 + strh r0, [r7, 0x8] + movs r0, 0x80 + lsls r0, 5 + strh r0, [r7, 0xA] + strh r0, [r7, 0xC] + bl sub_8073788 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080AB4F8 + ldr r1, _080AB4EC @ =0x0000ffb0 + adds r0, r1, 0 + ldr r2, _080AB4F0 @ =gBattle_BG1_X + strh r0, [r2] + adds r1, 0x20 + adds r0, r1, 0 + ldr r2, _080AB4F4 @ =gBattle_BG1_Y + strh r0, [r2] + movs r0, 0x2 + strh r0, [r6, 0x8] + movs r0, 0x1 + strh r0, [r6, 0xA] + mov r0, r9 + strh r0, [r7, 0xE] + b _080AB552 + .align 2, 0 +_080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette +_080AB4E4: .4byte sub_80AB79C +_080AB4E8: .4byte gTasks +_080AB4EC: .4byte 0x0000ffb0 +_080AB4F0: .4byte gBattle_BG1_X +_080AB4F4: .4byte gBattle_BG1_Y +_080AB4F8: + ldr r0, _080AB528 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _080AB53C + ldr r2, _080AB52C @ =0x0000ff20 + adds r0, r2, 0 + ldr r2, _080AB530 @ =gBattle_BG1_X + strh r0, [r2] + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + ldr r2, _080AB534 @ =gBattle_BG1_Y + strh r0, [r2] + movs r0, 0x2 + strh r0, [r6, 0x8] + ldr r0, _080AB538 @ =0x0000ffff + strh r0, [r6, 0xA] + strh r1, [r7, 0xE] + b _080AB552 + .align 2, 0 +_080AB528: .4byte gBattleAnimAttacker +_080AB52C: .4byte 0x0000ff20 +_080AB530: .4byte gBattle_BG1_X +_080AB534: .4byte gBattle_BG1_Y +_080AB538: .4byte 0x0000ffff +_080AB53C: + ldr r0, _080AB584 @ =gBattle_BG1_X + strh r4, [r0] + ldr r1, _080AB588 @ =0x0000ffd0 + adds r0, r1, 0 + ldr r2, _080AB58C @ =gBattle_BG1_Y + strh r0, [r2] + ldr r0, _080AB590 @ =0x0000fffe + strh r0, [r6, 0x8] + movs r0, 0x1 + strh r0, [r6, 0xA] + strh r4, [r7, 0xE] +_080AB552: + ldr r0, _080AB584 @ =gBattle_BG1_X + ldrh r1, [r0] + movs r0, 0x14 + bl SetGpuReg + ldr r2, _080AB58C @ =gBattle_BG1_Y + ldrh r1, [r2] + movs r0, 0x16 + bl SetGpuReg + ldr r1, _080AB594 @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0xE + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080AB598 + movs r0, 0x30 + strh r0, [r1, 0x10] + movs r0, 0x70 + b _080AB59C + .align 2, 0 +_080AB584: .4byte gBattle_BG1_X +_080AB588: .4byte 0x0000ffd0 +_080AB58C: .4byte gBattle_BG1_Y +_080AB590: .4byte 0x0000fffe +_080AB594: .4byte gTasks +_080AB598: + movs r0, 0 + strh r0, [r1, 0x10] +_080AB59C: + strh r0, [r1, 0x12] + ldr r1, _080AB5C0 @ =gTasks + mov r2, r10 + adds r0, r5, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x14] + ldr r1, _080AB5C4 @ =sub_80AB5C8 + str r1, [r0] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB5C0: .4byte gTasks +_080AB5C4: .4byte sub_80AB5C8 + thumb_func_end sub_80AB38C + + thumb_func_start sub_80AB5C8 +sub_80AB5C8: @ 80AB5C8 + push {r4-r7,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080AB6F4 @ =gBattle_BG1_X + ldr r2, _080AB6F8 @ =gBattle_BG1_Y + ldr r0, _080AB6FC @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0x8] + ldrh r3, [r1] + adds r0, r3 + strh r0, [r1] + ldrh r0, [r4, 0xA] + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + mov r0, sp + bl sub_80752A0 + ldrh r0, [r4, 0xA] + ldrh r3, [r4, 0xC] + adds r0, r3 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080AB65C + ldr r1, _080AB700 @ =gPlttBufferFaded + mov r0, sp + ldrb r0, [r0, 0x8] + lsls r0, 4 + adds r0, 0x7 + lsls r0, 1 + adds r0, r1 + ldrh r6, [r0] + movs r2, 0x6 + adds r7, r1, 0 + adds r3, r7, 0 + mov r4, sp +_080AB622: + ldrb r0, [r4, 0x8] + lsls r0, 4 + adds r1, r2, 0x1 + adds r0, r1 + lsls r1, r0, 1 + adds r1, r3 + subs r0, 0x1 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080AB622 + mov r0, sp + ldrb r0, [r0, 0x8] + lsls r0, 4 + adds r0, 0x1 + lsls r0, 1 + adds r0, r7 + strh r6, [r0] + ldr r1, _080AB6FC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x12] +_080AB65C: + ldr r1, _080AB6FC @ =gTasks + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r3, r0, r1 + ldrh r0, [r3, 0x14] + adds r0, 0x1 + strh r0, [r3, 0x14] + lsls r0, 16 + asrs r0, 16 + adds r4, r1, 0 + adds r6, r2, 0 + cmp r0, 0x1 + ble _080AB6CA + movs r0, 0 + strh r0, [r3, 0x14] + ldrh r0, [r3, 0xE] + adds r2, r0, 0x1 + strh r2, [r3, 0xE] + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0xD + bgt _080AB6A6 + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + orrs r2, r0 + strh r2, [r1, 0xA] + ldrh r0, [r3, 0x10] + adds r0, 0x1 + strh r0, [r3, 0x10] +_080AB6A6: + movs r1, 0xE + ldrsh r0, [r3, r1] + cmp r0, 0x36 + ble _080AB6CA + ldrh r2, [r3, 0x10] + subs r2, 0x1 + strh r2, [r3, 0x10] + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + orrs r2, r0 + strh r2, [r1, 0xA] +_080AB6CA: + adds r0, r6, r5 + lsls r0, 3 + adds r2, r0, r4 + movs r3, 0x26 + ldrsh r1, [r2, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldrh r0, [r0, 0xA] + movs r3, 0x1F + ands r3, r0 + cmp r3, 0 + bne _080AB6EC + strh r3, [r2, 0x8] + ldr r0, _080AB704 @ =sub_80AB708 + str r0, [r2] +_080AB6EC: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB6F4: .4byte gBattle_BG1_X +_080AB6F8: .4byte gBattle_BG1_Y +_080AB6FC: .4byte gTasks +_080AB700: .4byte gPlttBufferFaded +_080AB704: .4byte sub_80AB708 + thumb_func_end sub_80AB5C8 + + thumb_func_start sub_80AB708 +sub_80AB708: @ 80AB708 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r7, _080AB740 @ =gBattle_BG1_X + ldr r0, _080AB744 @ =gBattle_BG1_Y + mov r8, r0 + ldr r6, _080AB748 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r6 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AB74C + movs r0, 0x1 + bl sub_8075358 + movs r0, 0x2 + bl sub_8075358 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AB78E + .align 2, 0 +_080AB740: .4byte gBattle_BG1_X +_080AB744: .4byte gBattle_BG1_Y +_080AB748: .4byte gTasks +_080AB74C: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AB760 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080AB760: + movs r0, 0 + strh r0, [r7] + mov r1, r8 + strh r0, [r1] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldr r1, _080AB798 @ =0x0000ffff + strh r1, [r0, 0x26] + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080AB78E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB798: .4byte 0x0000ffff + thumb_func_end sub_80AB708 + + thumb_func_start sub_80AB79C +sub_80AB79C: @ 80AB79C + push {r4-r7,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _080AB7C4 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080AB7B8 + b _080AB8F0 +_080AB7B8: + cmp r0, 0x1 + bgt _080AB7C8 + cmp r0, 0 + beq _080AB7D0 + b _080ABA66 + .align 2, 0 +_080AB7C4: .4byte gTasks +_080AB7C8: + cmp r0, 0x2 + bne _080AB7CE + b _080AB9BC +_080AB7CE: + b _080ABA66 +_080AB7D0: + movs r3, 0 + movs r2, 0x10 + ldrsh r0, [r4, r2] + ldr r1, _080AB8A0 @ =gScanlineEffectRegBuffers + mov r12, r1 + cmp r3, r0 + bge _080AB80E + mov r7, r12 + movs r5, 0xF0 + lsls r5, 3 + add r5, r12 + ldr r6, _080AB8A4 @ =0x0000ffff +_080AB7E8: + lsls r2, r3, 16 + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r7 + adds r1, r5 + ldrh r0, [r4, 0xC] + strh r0, [r1] + ldrh r1, [r4, 0xC] + adds r0, r6, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + asrs r2, 16 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _080AB7E8 +_080AB80E: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080AB848 + ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 + ldr r7, _080AB8A4 @ =0x0000ffff +_080AB826: + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r5 + adds r1, r6 + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldrh r1, [r4, 0xA] + adds r0, r7, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080AB826 +_080AB848: + ldrh r3, [r4, 0x12] + lsls r2, r3, 16 + asrs r0, r2, 16 + cmp r0, 0x9F + bgt _080AB87E + ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 + ldr r7, _080AB8A4 @ =0x0000ffff +_080AB85C: + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r5 + adds r1, r6 + ldrh r0, [r4, 0xC] + strh r0, [r1] + ldrh r1, [r4, 0xC] + adds r0, r7, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + lsls r2, r3, 16 + asrs r0, r2, 16 + cmp r0, 0x9F + ble _080AB85C +_080AB87E: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AB8A8 + lsls r0, r3, 16 + asrs r0, 15 + mov r3, r12 + adds r2, r0, r3 + movs r1, 0xF0 + lsls r1, 3 + add r1, r12 + adds r0, r1 + ldrh r1, [r4, 0xA] + strh r1, [r0] + ldrh r0, [r4, 0xA] + b _080AB8BE + .align 2, 0 +_080AB8A0: .4byte gScanlineEffectRegBuffers +_080AB8A4: .4byte 0x0000ffff +_080AB8A8: + lsls r0, r3, 16 + asrs r0, 15 + mov r1, r12 + adds r2, r0, r1 + movs r1, 0xF0 + lsls r1, 3 + add r1, r12 + adds r0, r1 + ldrh r1, [r4, 0xC] + strh r1, [r0] + ldrh r0, [r4, 0xC] +_080AB8BE: + strh r0, [r2] + ldr r0, _080AB8E8 @ =0x04000052 + str r0, [sp] + ldr r0, _080AB8EC @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080ABA66 + .align 2, 0 +_080AB8E8: .4byte 0x04000052 +_080AB8EC: .4byte 0xa2600001 +_080AB8F0: + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080AB908 + ldrh r0, [r4, 0x10] + subs r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bgt _080AB91C + strh r1, [r4, 0x10] + b _080AB916 +_080AB908: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6F + ble _080AB91C +_080AB916: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080AB91C: + movs r3, 0 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _080AB950 + ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers + ldr r5, _080AB9B8 @ =gScanlineEffect +_080AB92A: + lsls r1, r3, 16 + asrs r1, 16 + lsls r3, r1, 1 + ldrb r2, [r5, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + adds r3, r6 + ldrh r0, [r4, 0xC] + strh r0, [r3] + adds r1, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080AB92A +_080AB950: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080AB984 + ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers + ldr r5, _080AB9B8 @ =gScanlineEffect +_080AB962: + asrs r3, r2, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xA] + strh r0, [r2] + adds r3, 0x1 + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080AB962 +_080AB984: + ldrh r3, [r4, 0x12] + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080ABA66 + ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers + ldr r5, _080AB9B8 @ =gScanlineEffect +_080AB992: + asrs r3, r1, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080AB992 + b _080ABA66 + .align 2, 0 +_080AB9B4: .4byte gScanlineEffectRegBuffers +_080AB9B8: .4byte gScanlineEffect +_080AB9BC: + movs r3, 0 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _080AB9F0 + ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers + ldr r5, _080ABA74 @ =gScanlineEffect +_080AB9CA: + lsls r1, r3, 16 + asrs r1, 16 + lsls r3, r1, 1 + ldrb r2, [r5, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + adds r3, r6 + ldrh r0, [r4, 0xC] + strh r0, [r3] + adds r1, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080AB9CA +_080AB9F0: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080ABA24 + ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers + ldr r5, _080ABA74 @ =gScanlineEffect +_080ABA02: + asrs r3, r2, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xA] + strh r0, [r2] + adds r3, 0x1 + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080ABA02 +_080ABA24: + ldrh r3, [r4, 0x12] + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080ABA50 + ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers + ldr r5, _080ABA74 @ =gScanlineEffect +_080ABA32: + asrs r3, r1, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080ABA32 +_080ABA50: + movs r0, 0x26 + ldrsh r1, [r4, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080ABA66 + bl ScanlineEffect_Stop + adds r0, r7, 0 + bl DestroyTask +_080ABA66: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ABA70: .4byte gScanlineEffectRegBuffers +_080ABA74: .4byte gScanlineEffect + thumb_func_end sub_80AB79C + + thumb_func_start sub_80ABA78 +sub_80ABA78: @ 80ABA78 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r3, _080ABACC @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080ABAD0 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + bl Random + movs r5, 0xFF + ands r5, r0 + movs r0, 0x80 + lsls r0, 1 + adds r6, r0, 0 + orrs r5, r6 + bl Random + ldr r1, _080ABAD4 @ =0x000001ff + ands r1, r0 + adds r0, r1, 0 + cmp r0, 0xFF + ble _080ABABE + subs r0, r6, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080ABABE: + strh r5, [r4, 0x30] + strh r1, [r4, 0x32] + ldr r0, _080ABAD8 @ =sub_80ABADC + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ABACC: .4byte 0x000003ff +_080ABAD0: .4byte 0xfffffc00 +_080ABAD4: .4byte 0x000001ff +_080ABAD8: .4byte sub_80ABADC + thumb_func_end sub_80ABA78 + + thumb_func_start sub_80ABADC +sub_80ABADC: @ 80ABADC + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r3, r0, r1 + strh r3, [r2, 0x34] + ldrh r1, [r2, 0x32] + ldrh r4, [r2, 0x36] + adds r1, r4 + strh r1, [r2, 0x36] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080ABB00 + lsls r0, r3, 16 + asrs r0, 24 + negs r0, r0 + b _080ABB04 +_080ABB00: + lsls r0, r3, 16 + asrs r0, 24 +_080ABB04: + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080ABB22 + adds r0, r2, 0 + bl DestroyAnimSprite +_080ABB22: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ABADC + + thumb_func_start sub_80ABB28 +sub_80ABB28: @ 80ABB28 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080ABB78 @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r2, _080ABB7C @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x12] + bl sub_80ABDC8 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80758E0 + ldr r0, _080ABB80 @ =sub_80ABB84 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ABB78: .4byte gTasks +_080ABB7C: .4byte gSprites +_080ABB80: .4byte sub_80ABB84 + thumb_func_end sub_80ABB28 + + thumb_func_start sub_80ABB84 +sub_80ABB84: @ 80ABB84 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080ABBAC @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bls _080ABBA0 + b _080ABDBE +_080ABBA0: + lsls r0, 2 + ldr r1, _080ABBB0 @ =_080ABBB4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ABBAC: .4byte gTasks +_080ABBB0: .4byte _080ABBB4 + .align 2, 0 +_080ABBB4: + .4byte _080ABBD4 + .4byte _080ABBFA + .4byte _080ABC8C + .4byte _080ABCC2 + .4byte _080ABCD6 + .4byte _080ABCE4 + .4byte _080ABD64 + .4byte _080ABDB0 +_080ABBD4: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 1 + movs r0, 0xE0 + str r0, [sp] + movs r0, 0x80 + lsls r0, 2 + str r0, [sp, 0x4] + movs r0, 0x20 + str r0, [sp, 0x8] + adds r0, r4, 0 + adds r2, r3, 0 + bl sub_80765D4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080ABBFA: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080ABC56 + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ABC44 + ldr r2, _080ABC40 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strh r1, [r0, 0x24] + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x1 + strh r1, [r0, 0x22] + b _080ABC56 + .align 2, 0 +_080ABC40: .4byte gSprites +_080ABC44: + ldr r2, _080ABC84 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080ABC88 @ =0x0000fffd + strh r1, [r0, 0x24] +_080ABC56: + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080ABC66 + b _080ABDBE +_080ABC66: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8076440 + ldr r2, _080ABC84 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x24] + strh r5, [r4, 0xE] + b _080ABDA0 + .align 2, 0 +_080ABC84: .4byte gSprites +_080ABC88: .4byte 0x0000fffd +_080ABC8C: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080ABC9C + b _080ABDBE +_080ABC9C: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xE0 + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_80765D4 + movs r0, 0 + strh r0, [r4, 0xE] + b _080ABDA2 +_080ABCC2: + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080ABDBE + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + b _080ABDA2 +_080ABCD6: + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80ABE4C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080ABCE4: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080ABDBE + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ABD1C + ldr r2, _080ABD18 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x2 + b _080ABD2E + .align 2, 0 +_080ABD18: .4byte gSprites +_080ABD1C: + ldr r2, _080ABD60 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x2 +_080ABD2E: + strh r1, [r0, 0x26] + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0xA + bne _080ABDBE + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xE0 + bl sub_80765D4 + movs r0, 0 + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + b _080ABDA2 + .align 2, 0 +_080ABD60: .4byte gSprites +_080ABD64: + ldr r6, _080ABDAC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080ABDBE + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8075980 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0x12] + strh r1, [r0, 0x22] +_080ABDA0: + strh r5, [r4, 0x10] +_080ABDA2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080ABDBE + .align 2, 0 +_080ABDAC: .4byte gSprites +_080ABDB0: + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080ABDBE + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080ABDBE: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80ABB84 + + thumb_func_start sub_80ABDC8 +sub_80ABDC8: @ 80ABDC8 + push {r4,r5,lr} + ldr r4, _080ABDEC @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080ABDFC + ldr r1, _080ABDF0 @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080ABDF4 @ =gPlayerParty + b _080ABE0C + .align 2, 0 +_080ABDEC: .4byte gBattleAnimAttacker +_080ABDF0: .4byte gBattlerPartyIndexes +_080ABDF4: .4byte gPlayerParty +_080ABDF8: + adds r0, r2, 0 + b _080ABE3E +_080ABDFC: + ldr r1, _080ABE44 @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080ABE48 @ =gEnemyParty +_080ABE0C: + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r3, r0, 16 + lsrs r4, 18 + movs r2, 0 +_080ABE2A: + adds r1, r2, 0x1 + adds r0, r4, 0 + muls r0, r1 + cmp r3, r0 + blt _080ABDF8 + lsls r0, r1, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _080ABE2A + movs r0, 0x3 +_080ABE3E: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080ABE44: .4byte gBattlerPartyIndexes +_080ABE48: .4byte gEnemyParty + thumb_func_end sub_80ABDC8 + + thumb_func_start sub_80ABE4C +sub_80ABE4C: @ 80ABE4C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + ldr r4, _080ABF54 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0xAC + ldrb r0, [r4] + bl sub_807685C + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + ldrh r1, [r7, 0xA] + movs r0, 0x4 + subs r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r0, 0 + bgt _080ABE9C + movs r1, 0x1 +_080ABE9C: + movs r0, 0 + str r0, [sp, 0x4] + lsls r0, r1, 16 + mov r10, r8 + mov r9, r6 + mov r1, r10 + lsls r1, 4 + str r1, [sp, 0xC] + mov r1, r9 + lsls r1, 4 + str r1, [sp, 0x10] + asrs r0, 16 + mov r8, r0 +_080ABEB6: + ldr r0, _080ABF58 @ =gUnknown_83E5AE0 + mov r1, r10 + mov r2, r9 + ldr r3, [sp, 0x8] + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + lsls r6, r5, 16 + cmp r2, 0x40 + beq _080ABF1E + ldr r1, _080ABF5C @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r1 + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x30] + mov r1, sp + ldrh r1, [r1, 0xC] + strh r1, [r5, 0x32] + mov r0, sp + ldrh r0, [r0, 0x10] + strh r0, [r5, 0x34] + asrs r4, r6, 16 + adds r0, r4, 0 + movs r1, 0x40 + bl Cos + strh r0, [r5, 0x36] + adds r0, r4, 0 + movs r1, 0x40 + bl Sin + strh r0, [r5, 0x38] + mov r1, sp + ldrh r1, [r1] + strh r1, [r5, 0x3A] + movs r0, 0x2 + strh r0, [r5, 0x3C] + ldrh r1, [r7, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ABF18 + adds r0, r5, 0 + bl sub_80ABF60 +_080ABF18: + ldrh r0, [r7, 0xC] + adds r0, 0x1 + strh r0, [r7, 0xC] +_080ABF1E: + mov r1, r8 + lsls r0, r1, 1 + asrs r1, r6, 16 + adds r1, r0 + lsls r1, 16 + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r5, r0, 16 + ldr r1, [sp, 0x4] + lsls r0, r1, 16 + asrs r0, 16 + add r0, r8 + lsls r0, 16 + lsrs r1, r0, 16 + str r1, [sp, 0x4] + asrs r0, 16 + cmp r0, 0x13 + ble _080ABEB6 + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ABF54: .4byte gBattleAnimAttacker +_080ABF58: .4byte gUnknown_83E5AE0 +_080ABF5C: .4byte gSprites + thumb_func_end sub_80ABE4C + + thumb_func_start sub_80ABF60 +sub_80ABF60: @ 80ABF60 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080ABF72 + cmp r0, 0x1 + beq _080ABFA8 + b _080AC002 +_080ABF72: + movs r2, 0x30 + ldrsh r0, [r4, r2] + movs r1, 0x6 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + ldrh r0, [r4, 0x36] + adds r1, r0 + strh r1, [r4, 0x36] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_080ABFA8: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x38] + ldrh r2, [r4, 0x34] + adds r1, r2 + strh r1, [r4, 0x34] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x20] + lsls r1, 16 + asrs r2, r1, 20 + strh r2, [r4, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080ABFDE + adds r1, r2, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080ABFDE + cmp r1, 0x78 + ble _080AC002 +_080ABFDE: + ldr r3, _080AC008 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080AC002: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC008: .4byte gTasks + thumb_func_end sub_80ABF60 + + thumb_func_start sub_80AC00C +sub_80AC00C: @ 80AC00C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080AC03C @ =gTasks + adds r4, r1, r0 + bl sub_80ABDC8 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + ldr r0, _080AC040 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AC044 + movs r0, 0x88 + strh r0, [r4, 0x10] + movs r0, 0x28 + b _080AC04A + .align 2, 0 +_080AC03C: .4byte gTasks +_080AC040: .4byte gBattleAnimAttacker +_080AC044: + movs r0, 0x10 + strh r0, [r4, 0x10] + movs r0, 0x50 +_080AC04A: + strh r0, [r4, 0x14] + movs r0, 0x62 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r0, 0x31 + strh r0, [r4, 0x16] + movs r0, 0xA + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x5 + strh r0, [r4, 0x20] + ldr r0, _080AC06C @ =sub_80AC070 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC06C: .4byte sub_80AC070 + thumb_func_end sub_80AC00C + + thumb_func_start sub_80AC070 +sub_80AC070: @ 80AC070 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r7, _080AC094 @ =gTasks + adds r4, r0, r7 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0 + beq _080AC098 + cmp r2, 0x1 + beq _080AC148 + b _080AC156 + .align 2, 0 +_080AC094: .4byte gTasks +_080AC098: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080AC0AE + strh r2, [r4, 0xC] + adds r0, r4, 0 + bl sub_80AC160 +_080AC0AE: + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AC128 + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080AC128 + ldr r5, _080AC13C @ =gBattleAnimArgs + movs r1, 0x1 + mov r8, r1 + mov r2, r8 + strh r2, [r5] + strh r0, [r5, 0x2] + movs r0, 0xC + strh r0, [r5, 0x4] + ldr r6, _080AC140 @ =sub_80B94B4 + adds r0, r6, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080AC0F8 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r7 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 + ldr r1, _080AC144 @ =gUnknown_2037EE2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080AC0F8: + movs r0, 0x3 + strh r0, [r5] + adds r0, r6, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080AC124 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r7 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 + ldr r1, _080AC144 @ =gUnknown_2037EE2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080AC124: + mov r0, r8 + strh r0, [r4, 0x22] +_080AC128: + movs r2, 0x1E + ldrsh r1, [r4, r2] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080AC156 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AC156 + .align 2, 0 +_080AC13C: .4byte gBattleAnimArgs +_080AC140: .4byte sub_80B94B4 +_080AC144: .4byte gUnknown_2037EE2 +_080AC148: + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080AC156 + adds r0, r1, 0 + bl DestroyAnimVisualTask +_080AC156: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AC070 + + thumb_func_start sub_80AC160 +sub_80AC160: @ 80AC160 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _080AC1EC @ =gSineTable + movs r2, 0x18 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x3 + asrs r0, 4 + ldrh r2, [r4, 0x14] + adds r0, r2 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080AC1F0 @ =gUnknown_83E5AE0 + movs r2, 0x16 + ldrsh r1, [r4, r2] + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080AC1BA + ldr r3, _080AC1F4 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, _080AC1F8 @ =sub_80AC204 + str r2, [r1] + adds r0, r3 + strh r5, [r0, 0x38] + strh r6, [r0, 0x3A] + movs r1, 0x9 + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] +_080AC1BA: + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x18] + adds r0, 0x27 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x18] + movs r0, 0x16 + ldrsh r1, [r4, r0] + ldr r0, _080AC1FC @ =0x41c64e6d + muls r0, r1 + ldr r1, _080AC200 @ =0x00003039 + adds r0, r1 + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + ldrh r1, [r4, 0x10] + adds r1, r0 + strh r1, [r4, 0x16] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AC1EC: .4byte gSineTable +_080AC1F0: .4byte gUnknown_83E5AE0 +_080AC1F4: .4byte gSprites +_080AC1F8: .4byte sub_80AC204 +_080AC1FC: .4byte 0x41c64e6d +_080AC200: .4byte 0x00003039 + thumb_func_end sub_80AC160 + + thumb_func_start sub_80AC204 +sub_80AC204: @ 80AC204 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AC29A + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x38 + ldrsh r1, [r5, r2] + cmp r0, r1 + blt _080AC29A + ldr r2, _080AC2A0 @ =gTasks + movs r3, 0x3A + ldrsh r1, [r5, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x1C] + ldr r0, _080AC2A4 @ =gUnknown_83E7C38 + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r3, 0x22 + ldrsh r2, [r5, r3] + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x30] + cmp r0, 0x40 + beq _080AC294 + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080AC2A8 @ =gSprites + adds r0, r4 + movs r1, 0x3 + bl StartSpriteAffineAnim + movs r2, 0x30 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x3A] + strh r1, [r0, 0x3A] + movs r3, 0x30 + ldrsh r1, [r5, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x3C] + strh r1, [r0, 0x3C] + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080AC2AC @ =sub_80AC2B0 + str r1, [r0] +_080AC294: + adds r0, r5, 0 + bl DestroySprite +_080AC29A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC2A0: .4byte gTasks +_080AC2A4: .4byte gUnknown_83E7C38 +_080AC2A8: .4byte gSprites +_080AC2AC: .4byte sub_80AC2B0 + thumb_func_end sub_80AC204 + + thumb_func_start sub_80AC2B0 +sub_80AC2B0: @ 80AC2B0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AC31C + movs r0, 0 + strh r0, [r4, 0x30] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _080AC31C + ldr r3, _080AC324 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080AC31C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC324: .4byte gTasks + thumb_func_end sub_80AC2B0 + + thumb_func_start sub_80AC328 +sub_80AC328: @ 80AC328 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080AC3AC @ =gTasks + adds r5, r1, r0 + ldr r4, _080AC3B0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r5, 0xE] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x10] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080AC36C + movs r1, 0x1 +_080AC36C: + strh r1, [r5, 0x16] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080AC380 + movs r1, 0x16 + ldrsh r0, [r5, r1] + negs r0, r0 + strh r0, [r5, 0x16] +_080AC380: + movs r2, 0x16 + ldrsh r0, [r5, r2] + lsls r0, 3 + ldrh r1, [r5, 0xE] + adds r0, r1 + strh r0, [r5, 0x12] + movs r2, 0x16 + ldrsh r1, [r5, r2] + lsls r1, 3 + ldrh r0, [r5, 0x10] + subs r0, r1 + strh r0, [r5, 0x14] + ldr r0, _080AC3B4 @ =0x0000ffe0 + strh r0, [r5, 0x1A] + strh r6, [r5, 0xA] + strh r6, [r5, 0x8] + ldr r0, _080AC3B8 @ =sub_80AC3BC + str r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AC3AC: .4byte gTasks +_080AC3B0: .4byte gBattleAnimAttacker +_080AC3B4: .4byte 0x0000ffe0 +_080AC3B8: .4byte sub_80AC3BC + thumb_func_end sub_80AC328 + + thumb_func_start sub_80AC3BC +sub_80AC3BC: @ 80AC3BC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080AC3E0 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bls _080AC3D6 + b _080AC4F6 +_080AC3D6: + lsls r0, 2 + ldr r1, _080AC3E4 @ =_080AC3E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AC3E0: .4byte gTasks +_080AC3E4: .4byte _080AC3E8 + .align 2, 0 +_080AC3E8: + .4byte _080AC404 + .4byte _080AC414 + .4byte _080AC42E + .4byte _080AC470 + .4byte _080AC492 + .4byte _080AC4C0 + .4byte _080AC4E6 +_080AC404: + adds r0, r4, 0 + bl sub_80AC504 + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AC4FC + b _080AC4EE +_080AC414: + adds r0, r4, 0 + bl sub_80AC504 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080AC4FC + movs r0, 0 + strh r0, [r4, 0xA] + b _080AC4EE +_080AC42E: + adds r0, r4, 0 + bl sub_80AC504 + movs r1, 0x16 + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + ldrh r0, [r4, 0x12] + adds r1, r0 + movs r2, 0 + strh r1, [r4, 0x12] + adds r1, 0x10 + lsls r1, 16 + movs r0, 0x88 + lsls r0, 17 + cmp r1, r0 + bls _080AC4FC + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080AC46C + movs r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x6 + strh r0, [r4, 0x8] + strh r2, [r4, 0xA] + b _080AC4FC +_080AC46C: + strh r2, [r4, 0xA] + b _080AC4EE +_080AC470: + adds r0, r4, 0 + bl sub_80AC504 + movs r0, 0x16 + ldrsh r1, [r4, r0] + lsls r1, 1 + ldrh r0, [r4, 0x14] + subs r0, r1 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080AC4FC + b _080AC4EE +_080AC492: + adds r0, r4, 0 + bl sub_80AC504 + movs r1, 0x16 + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + ldrh r0, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x12] + adds r0, 0x10 + lsls r0, 16 + movs r1, 0x88 + lsls r1, 17 + cmp r0, r1 + bls _080AC4FC + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0xA] + b _080AC4EE +_080AC4C0: + adds r0, r4, 0 + bl sub_80AC504 + movs r0, 0x16 + ldrsh r1, [r4, r0] + lsls r1, 1 + ldrh r0, [r4, 0x14] + subs r0, r1 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080AC4FC + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080AC4FC +_080AC4E6: + movs r1, 0x18 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AC4FC +_080AC4EE: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AC4FC +_080AC4F6: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080AC4FC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AC3BC + + thumb_func_start sub_80AC504 +sub_80AC504: @ 80AC504 + push {r4-r6,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0xC] + adds r0, 0x1 + strh r0, [r6, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AC55E + movs r0, 0 + strh r0, [r6, 0xC] + ldr r0, _080AC564 @ =gUnknown_83E5AE0 + movs r2, 0xE + ldrsh r1, [r6, r2] + movs r3, 0x10 + ldrsh r2, [r6, r3] + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080AC55E + ldr r5, _080AC568 @ =gSprites + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r4, r5 + movs r1, 0x10 + strh r1, [r0, 0x2E] + ldrh r1, [r6, 0x12] + strh r1, [r0, 0x32] + ldrh r1, [r6, 0x14] + strh r1, [r0, 0x36] + ldrh r1, [r6, 0x1A] + strh r1, [r0, 0x38] + bl sub_8075068 + adds r5, 0x1C + adds r4, r5 + ldr r0, _080AC56C @ =sub_80AC570 + str r0, [r4] + ldrh r0, [r6, 0x18] + adds r0, 0x1 + strh r0, [r6, 0x18] +_080AC55E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AC564: .4byte gUnknown_83E5AE0 +_080AC568: .4byte gSprites +_080AC56C: .4byte sub_80AC570 + thumb_func_end sub_80AC504 + + thumb_func_start sub_80AC570 +sub_80AC570: @ 80AC570 + push {r4-r6,lr} + adds r6, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080AC5CA + ldrh r0, [r6, 0x24] + ldrh r1, [r6, 0x20] + adds r0, r1 + strh r0, [r6, 0x20] + ldrh r0, [r6, 0x26] + ldrh r1, [r6, 0x22] + adds r0, r1 + strh r0, [r6, 0x22] + movs r0, 0x6 + strh r0, [r6, 0x2E] + bl Random + movs r4, 0x1F + adds r1, r4, 0 + ands r1, r0 + ldr r5, _080AC5D0 @ =0x0000fff0 + adds r1, r5 + ldrh r0, [r6, 0x20] + adds r1, r0 + strh r1, [r6, 0x32] + bl Random + ands r4, r0 + adds r4, r5 + ldrh r1, [r6, 0x22] + adds r4, r1 + strh r4, [r6, 0x36] + bl Random + movs r1, 0x7 + ands r1, r0 + mvns r1, r1 + strh r1, [r6, 0x38] + adds r0, r6, 0 + bl sub_8075068 + ldr r0, _080AC5D4 @ =sub_80AC5D8 + str r0, [r6, 0x1C] +_080AC5CA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AC5D0: .4byte 0x0000fff0 +_080AC5D4: .4byte sub_80AC5D8 + thumb_func_end sub_80AC570 + + thumb_func_start sub_80AC5D8 +sub_80AC5D8: @ 80AC5D8 + push {r4-r6,lr} + adds r5, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080AC614 + movs r4, 0 + ldr r6, _080AC61C @ =gTasks +_080AC5EA: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r6 + ldr r1, [r2] + ldr r0, _080AC620 @ =sub_80AC3BC + cmp r1, r0 + bne _080AC60A + movs r0, 0x1 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0x18] + subs r0, 0x1 + strh r0, [r2, 0x18] + adds r0, r5, 0 + bl DestroySprite +_080AC60A: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _080AC5EA +_080AC614: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AC61C: .4byte gTasks +_080AC620: .4byte sub_80AC3BC + thumb_func_end sub_80AC5D8 + + thumb_func_start sub_80AC624 +sub_80AC624: @ 80AC624 + ldr r2, _080AC644 @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0x20] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x22] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x2E] + ldrh r1, [r2, 0x6] + strh r1, [r0, 0x30] + ldrh r1, [r2, 0x8] + strh r1, [r0, 0x32] + ldrh r1, [r2, 0xA] + strh r1, [r0, 0x34] + ldr r1, _080AC648 @ =sub_80AC64C + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080AC644: .4byte gBattleAnimArgs +_080AC648: .4byte sub_80AC64C + thumb_func_end sub_80AC624 + + thumb_func_start sub_80AC64C +sub_80AC64C: @ 80AC64C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x2E] + subs r0, r1 + strh r0, [r4, 0x36] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x38] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + cmp r0, 0 + bne _080AC690 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AC690: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AC64C + + thumb_func_start sub_80AC698 +sub_80AC698: @ 80AC698 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r1, r2 + strh r1, [r4, 0x36] + lsls r0, 16 + asrs r0, 23 + strh r0, [r4, 0x24] + lsls r1, 16 + asrs r1, 23 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080AC6D0 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080AC6D0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AC698 + + thumb_func_start sub_80AC6D8 +sub_80AC6D8: @ 80AC6D8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r5, _080AC714 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x30] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldr r1, _080AC718 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldr r0, _080AC71C @ =sub_80AC720 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC714: .4byte gBattleAnimTarget +_080AC718: .4byte gBattleAnimArgs +_080AC71C: .4byte sub_80AC720 + thumb_func_end sub_80AC6D8 + + thumb_func_start sub_80AC720 +sub_80AC720: @ 80AC720 + push {r4-r6,lr} + adds r4, r0, 0 + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x20 + ldrsh r0, [r4, r2] + subs r6, r1, r0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x22 + ldrsh r0, [r4, r2] + subs r5, r1, r0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + muls r0, r6 + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + muls r0, r5 + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080AC778 + movs r0, 0 + strh r0, [r4, 0x38] + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80AC798 +_080AC778: + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080AC78A + adds r0, r4, 0 + bl DestroyAnimSprite +_080AC78A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80AC720 + + thumb_func_start sub_80AC798 +sub_80AC798: @ 80AC798 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r4, r1, 0 + adds r5, r2, 0 + movs r2, 0x2E + ldrsh r1, [r0, r2] + lsrs r2, r1, 31 + adds r1, r2 + lsls r1, 15 + lsrs r1, 16 + str r1, [sp] + ldrh r1, [r0, 0x24] + ldrh r3, [r0, 0x20] + adds r1, r3 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r0, r5, r0 + subs r0, 0x5 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + bl Random + negs r4, r4 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r4, r0 + subs r4, 0x5 + lsls r4, 16 + lsrs r7, r4, 16 + movs r6, 0 + mov r0, r8 + lsls r0, 16 + mov r8, r0 + mov r1, r10 + lsls r1, 16 + str r1, [sp, 0xC] + ldr r2, [sp] + lsls r2, 16 + str r2, [sp, 0x10] + asrs r1, 16 + lsls r0, r7, 16 + asrs r5, r0, 16 + str r0, [sp, 0x14] + negs r3, r5 + str r3, [sp, 0x4] + asrs r0, r2, 16 + adds r1, r0 + lsls r1, 16 + mov r10, r1 +_080AC826: + ldr r0, _080AC868 @ =gUnknown_83E5B88 + mov r2, r8 + asrs r1, r2, 16 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0x82 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080AC86C @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + movs r0, 0x14 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + ldr r0, _080AC870 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807685C + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + cmp r5, 0 + bge _080AC874 + mov r1, sp + ldrh r1, [r1, 0x4] + strh r1, [r4, 0x32] + b _080AC876 + .align 2, 0 +_080AC868: .4byte gUnknown_83E5B88 +_080AC86C: .4byte gSprites +_080AC870: .4byte gBattleAnimAttacker +_080AC874: + strh r7, [r4, 0x32] +_080AC876: + lsls r0, r6, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r6, r0, 16 + cmp r0, 0 + ble _080AC826 + movs r6, 0 + ldr r3, [sp, 0xC] + asrs r1, r3, 16 + ldr r0, [sp, 0x14] + asrs r5, r0, 16 + negs r2, r5 + str r2, [sp, 0x8] + ldr r3, [sp, 0x10] + asrs r0, r3, 16 + subs r1, r0 + lsls r1, 16 + mov r10, r1 +_080AC89C: + ldr r0, _080AC8E0 @ =gUnknown_83E5B88 + mov r2, r8 + asrs r1, r2, 16 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0x82 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080AC8E4 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + movs r0, 0x14 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + ldr r0, _080AC8E8 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807685C + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + cmp r5, 0 + ble _080AC8EC + mov r1, sp + ldrh r1, [r1, 0x8] + strh r1, [r4, 0x32] + b _080AC8EE + .align 2, 0 +_080AC8E0: .4byte gUnknown_83E5B88 +_080AC8E4: .4byte gSprites +_080AC8E8: .4byte gBattleAnimAttacker +_080AC8EC: + strh r7, [r4, 0x32] +_080AC8EE: + lsls r0, r6, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r6, r0, 16 + cmp r0, 0 + ble _080AC89C + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AC798 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s index 67c159abc..21b97c942 100644 --- a/asm/wild_encounter.s +++ b/asm/wild_encounter.s @@ -482,7 +482,7 @@ _08082A8E: lsrs r0, 16 orrs r4, r0 adds r0, r4, 0 - bl sub_8082AB8 + bl GetUnownLetterByPersonality lsls r0, 24 lsrs r0, 24 cmp r0, r5 @@ -493,8 +493,8 @@ _08082A8E: bx r1 thumb_func_end sub_8082A88 - thumb_func_start sub_8082AB8 -sub_8082AB8: @ 8082AB8 + thumb_func_start GetUnownLetterByPersonality +GetUnownLetterByPersonality: @ 8082AB8 push {lr} adds r2, r0, 0 movs r0, 0xC0 @@ -520,7 +520,7 @@ sub_8082AB8: @ 8082AB8 lsrs r0, 24 pop {r1} bx r1 - thumb_func_end sub_8082AB8 + thumb_func_end GetUnownLetterByPersonality thumb_func_start sub_8082AEC sub_8082AEC: @ 8082AEC diff --git a/asm/wild_pokemon_area.s b/asm/wild_pokemon_area.s index 26c908a14..71d8ac8dc 100644 --- a/asm/wild_pokemon_area.s +++ b/asm/wild_pokemon_area.s @@ -221,13 +221,13 @@ sub_813CB5C: @ 813CB5C ldr r0, _0813CBBC @ =gUnknown_84642F4 lsls r4, 2 adds r4, r0 - bl sub_80CBDB0 + bl ScrSpecial_GetStarter ldrh r1, [r4, 0x2] lsls r0, 16 lsrs r0, 16 cmp r1, r0 bne _0813CBC4 - bl sub_8142044 + bl GetRoamerLocationMapSectionId lsls r0, 16 lsrs r0, 16 movs r1, 0 diff --git a/asm/wireless_communication_status_screen.s b/asm/wireless_communication_status_screen.s deleted file mode 100644 index b4aecb9a5..000000000 --- a/asm/wireless_communication_status_screen.s +++ /dev/null @@ -1,868 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_814F19C -sub_814F19C: @ 814F19C - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0814F1BC - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade -_0814F1BC: - pop {r0} - bx r0 - thumb_func_end sub_814F19C - - thumb_func_start sub_814F1C0 -sub_814F1C0: @ 814F1C0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_814F1C0 - - thumb_func_start sub_814F1D4 -sub_814F1D4: @ 814F1D4 - push {lr} - ldr r0, _0814F1E0 @ =sub_814F1E4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0814F1E0: .4byte sub_814F1E4 - thumb_func_end sub_814F1D4 - - thumb_func_start sub_814F1E4 -sub_814F1E4: @ 814F1E4 - push {r4,r5,lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r5, _0814F308 @ =gUnknown_3002040 - movs r0, 0x6C - bl AllocZeroed - str r0, [r5] - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0814F30C @ =gUnknown_846FA74 - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0x1 - bl SetBgTilemapBuffer - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, _0814F310 @ =gUnknown_846F6D0 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl sub_80F696C - ldr r1, _0814F314 @ =gUnknown_846F8E0 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, _0814F318 @ =gUnknown_846FA7C - bl InitWindows - bl DeactivateAllTextPrinters - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl remove_some_task - bl m4aSoundVSyncOn - ldr r0, _0814F31C @ =sub_814F1C0 - bl SetVBlankCallback - ldr r0, _0814F320 @ =sub_814F46C - movs r1, 0 - bl CreateTask - ldr r1, [r5] - adds r1, 0x60 - strb r0, [r1] - bl sub_8116DE0 - ldr r1, [r5] - adds r1, 0x61 - strb r0, [r1] - ldr r1, [r5] - movs r0, 0x1 - str r0, [r1, 0x1C] - 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 - ldr r0, _0814F324 @ =gUnknown_846F4D0 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - movs r0, 0xF0 - bl sub_80F77CC - bl UnkTextUtil_Reset - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, _0814F328 @ =sub_814F19C - bl SetMainCallback2 - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814F308: .4byte gUnknown_3002040 -_0814F30C: .4byte gUnknown_846FA74 -_0814F310: .4byte gUnknown_846F6D0 -_0814F314: .4byte gUnknown_846F8E0 -_0814F318: .4byte gUnknown_846FA7C -_0814F31C: .4byte sub_814F1C0 -_0814F320: .4byte sub_814F46C -_0814F324: .4byte gUnknown_846F4D0 -_0814F328: .4byte sub_814F19C - thumb_func_end sub_814F1E4 - - thumb_func_start sub_814F32C -sub_814F32C: @ 814F32C - push {r4,lr} - bl FreeAllWindowBuffers - movs r4, 0 -_0814F334: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBgTilemapBuffer - bl Free - adds r4, 0x1 - cmp r4, 0x1 - ble _0814F334 - ldr r0, _0814F35C @ =gUnknown_3002040 - ldr r0, [r0] - bl Free - ldr r0, _0814F360 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814F35C: .4byte gUnknown_3002040 -_0814F360: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_814F32C - - thumb_func_start sub_814F364 -sub_814F364: @ 814F364 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _0814F38C - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xE - bne _0814F388 - movs r0, 0 - strh r0, [r1] -_0814F388: - movs r0, 0 - strh r0, [r2] -_0814F38C: - movs r2, 0 - ldrsh r0, [r1, r2] - adds r0, 0x2 - lsls r0, 5 - ldr r1, _0814F3A4 @ =gUnknown_846F4D0 - adds r0, r1 - movs r1, 0 - movs r2, 0x10 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_0814F3A4: .4byte gUnknown_846F4D0 - thumb_func_end sub_814F364 - - thumb_func_start sub_814F3A8 -sub_814F3A8: @ 814F3A8 - push {r4,r5,lr} - sub sp, 0x8 - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r5, _0814F468 @ =gUnknown_846FAAC - ldr r4, [r5] - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r3, 0xC0 - subs r3, r0 - lsrs r3, 1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x6 - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl sub_814F65C - movs r1, 0 -_0814F3F0: - adds r4, r1, 0x1 - lsls r0, r4, 2 - adds r0, r5 - ldr r2, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 25 - movs r1, 0xA0 - lsls r1, 20 - adds r0, r1 - lsrs r0, 24 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r1, 0x3 - movs r3, 0 - bl sub_814F65C - adds r1, r4, 0 - cmp r4, 0x2 - ble _0814F3F0 - ldr r1, _0814F468 @ =gUnknown_846FAAC - adds r0, r4, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r4, 4 - subs r0, r4 - lsls r0, 25 - movs r1, 0xA0 - lsls r1, 20 - adds r0, r1 - lsrs r0, 24 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0x3 - movs r3, 0 - bl sub_814F65C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814F468: .4byte gUnknown_846FAAC - thumb_func_end sub_814F3A8 - - thumb_func_start sub_814F46C -sub_814F46C: @ 814F46C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0814F498 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x5 - bls _0814F48E - b _0814F648 -_0814F48E: - lsls r0, 2 - ldr r1, _0814F49C @ =_0814F4A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F498: .4byte gTasks -_0814F49C: .4byte _0814F4A0 - .align 2, 0 -_0814F4A0: - .4byte _0814F4B8 - .4byte _0814F4D4 - .4byte _0814F4F8 - .4byte _0814F514 - .4byte _0814F608 - .4byte _0814F630 -_0814F4B8: - bl sub_814F3A8 - ldr r0, _0814F4D0 @ =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 _0814F648 - .align 2, 0 -_0814F4D0: .4byte gTasks -_0814F4D4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x1 - bl ShowBg - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0 - bl ShowBg - b _0814F618 -_0814F4F8: - ldr r0, _0814F510 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0814F506 - b _0814F648 -_0814F506: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - b _0814F622 - .align 2, 0 -_0814F510: .4byte gPaletteFade -_0814F514: - ldr r0, _0814F570 @ =gUnknown_3002040 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x10 - adds r2, r0, 0 - adds r2, 0x20 - adds r3, r0, 0 - adds r3, 0x61 - ldrb r3, [r3] - bl sub_814F7E4 - lsls r1, r5, 2 - mov r8, r1 - cmp r0, 0 - beq _0814F5A4 - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - movs r4, 0 - ldr r6, _0814F574 @ =gStringVar4 - movs r7, 0xA0 - lsls r7, 20 -_0814F542: - ldr r0, _0814F570 @ =gUnknown_3002040 - ldr r0, [r0] - lsls r1, r4, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - cmp r4, 0x3 - beq _0814F578 - lsrs r0, r7, 24 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x3 - adds r2, r6, 0 - movs r3, 0x4 - bl sub_814F65C - b _0814F58A - .align 2, 0 -_0814F570: .4byte gUnknown_3002040 -_0814F574: .4byte gStringVar4 -_0814F578: - movs r0, 0x64 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r1, 0x3 - adds r2, r6, 0 - movs r3, 0x4 - bl sub_814F65C -_0814F58A: - movs r2, 0xF0 - lsls r2, 21 - adds r7, r2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0814F542 - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0x2 - movs r1, 0x3 - bl CopyWindowToVram -_0814F5A4: - ldr r0, _0814F5F8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0814F5B8 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0814F5E2 -_0814F5B8: - movs r0, 0x5 - bl PlaySE - ldr r2, _0814F5FC @ =gTasks - ldr r0, _0814F600 @ =gUnknown_3002040 - ldr r0, [r0] - adds r0, 0x61 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0xFF - strh r1, [r0, 0x26] - mov r0, r8 - adds r1, r0, r5 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0814F5E2: - mov r2, r8 - adds r1, r2, r5 - lsls r1, 3 - ldr r0, _0814F604 @ =gTasks+0x8 - adds r1, r0 - adds r0, r1, 0 - adds r0, 0xE - adds r1, 0x10 - bl sub_814F364 - b _0814F648 - .align 2, 0 -_0814F5F8: .4byte gMain -_0814F5FC: .4byte gTasks -_0814F600: .4byte gUnknown_3002040 -_0814F604: .4byte gTasks+0x8 -_0814F608: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0814F618: - ldr r1, _0814F62C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 -_0814F622: - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _0814F648 - .align 2, 0 -_0814F62C: .4byte gTasks -_0814F630: - ldr r0, _0814F654 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0814F648 - ldr r0, _0814F658 @ =sub_814F32C - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_0814F648: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814F654: .4byte gPaletteFade -_0814F658: .4byte sub_814F32C - thumb_func_end sub_814F46C - - thumb_func_start sub_814F65C -sub_814F65C: @ 814F65C - push {r4-r7,lr} - sub sp, 0x18 - mov r12, r2 - ldr r2, [sp, 0x2C] - ldr r4, [sp, 0x30] - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r3, 24 - lsrs r6, r3, 24 - lsls r2, 24 - lsrs r3, r2, 24 - lsls r4, 24 - lsrs r0, r4, 24 - cmp r0, 0x4 - bhi _0814F6E6 - lsls r0, 2 - ldr r1, _0814F688 @ =_0814F68C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F688: .4byte _0814F68C - .align 2, 0 -_0814F68C: - .4byte _0814F6A0 - .4byte _0814F6AE - .4byte _0814F6BC - .4byte _0814F6CA - .4byte _0814F6D8 -_0814F6A0: - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - movs r0, 0x3 - b _0814F6E4 -_0814F6AE: - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x3 - b _0814F6E4 -_0814F6BC: - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - movs r0, 0x5 - b _0814F6E4 -_0814F6CA: - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - movs r0, 0x6 - b _0814F6E4 -_0814F6D8: - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x2 -_0814F6E4: - strb r0, [r1, 0x2] -_0814F6E6: - negs r0, r5 - orrs r0, r5 - lsrs r0, 31 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - add r0, sp, 0x14 - str r0, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0xC] - mov r0, r12 - str r0, [sp, 0x10] - adds r0, r7, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl AddTextPrinterParametrized2 - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_814F65C - - thumb_func_start sub_814F714 -sub_814F714: @ 814F714 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r12, r0 - adds r7, r1, 0 - ldrb r0, [r0, 0xA] - lsls r0, 25 - lsrs r0, 25 - mov r8, r0 - movs r4, 0 - ldr r0, _0814F78C @ =gUnknown_846FAC0 - mov r9, r0 - movs r1, 0x1 - add r1, r9 - mov r10, r1 - mov r3, r12 - adds r3, 0x4 - str r3, [sp] -_0814F73E: - lsls r0, r4, 1 - adds r2, r0, r4 - mov r3, r9 - adds r1, r2, r3 - adds r5, r0, 0 - adds r6, r4, 0x1 - ldrb r1, [r1] - cmp r8, r1 - bne _0814F7A2 - mov r0, r12 - ldrb r1, [r0, 0x1A] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _0814F7A2 - mov r0, r9 - adds r0, 0x2 - adds r3, r2, r0 - ldrb r0, [r3] - cmp r0, 0 - bne _0814F790 - movs r2, 0 - movs r1, 0 - ldr r3, [sp] -_0814F76E: - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0814F778 - adds r2, 0x1 -_0814F778: - adds r1, 0x1 - cmp r1, 0x3 - ble _0814F76E - adds r2, 0x1 - adds r0, r5, r4 - add r0, r10 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r7 - b _0814F79C - .align 2, 0 -_0814F78C: .4byte gUnknown_846FAC0 -_0814F790: - mov r1, r10 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r7 - ldrb r2, [r3] -_0814F79C: - ldr r0, [r1] - adds r0, r2 - str r0, [r1] -_0814F7A2: - adds r4, r6, 0 - cmp r4, 0x16 - bls _0814F73E - mov r0, r8 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814F714 - - thumb_func_start sub_814F7BC -sub_814F7BC: @ 814F7BC - push {r4,lr} - movs r4, 0 - adds r3, r1, 0 - adds r2, r0, 0 -_0814F7C4: - ldr r1, [r2] - ldr r0, [r3] - cmp r1, r0 - beq _0814F7D0 - movs r0, 0x1 - b _0814F7DC -_0814F7D0: - adds r3, 0x4 - adds r2, 0x4 - adds r4, 0x1 - cmp r4, 0x3 - ble _0814F7C4 - movs r0, 0 -_0814F7DC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814F7BC - - thumb_func_start sub_814F7E4 -sub_814F7E4: @ 814F7E4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - adds r6, r0, 0 - mov r9, r1 - adds r5, r2, 0 - lsls r4, r3, 24 - lsrs r4, 24 - movs r0, 0 - mov r8, r0 - mov r0, sp - movs r1, 0 - movs r2, 0x10 - bl memset - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0814F84C @ =gTasks+0x8 - adds r7, r0, r1 - movs r4, 0 -_0814F812: - lsls r1, r4, 5 - ldr r0, [r7] - adds r0, r1 - mov r1, sp - bl sub_814F714 - adds r1, r0, 0 - ldr r0, [r5] - cmp r1, r0 - beq _0814F82C - str r1, [r5] - movs r2, 0x1 - mov r8, r2 -_0814F82C: - adds r5, 0x4 - adds r4, 0x1 - cmp r4, 0xF - ble _0814F812 - mov r0, sp - mov r1, r9 - bl sub_814F7BC - cmp r0, 0 - bne _0814F850 - mov r3, r8 - cmp r3, 0x1 - beq _0814F874 - movs r0, 0 - b _0814F876 - .align 2, 0 -_0814F84C: .4byte gTasks+0x8 -_0814F850: - adds r1, r6, 0 - mov r0, sp - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [r0] - str r0, [r1] - mov r1, r9 - mov r0, sp - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [r0] - str r0, [r1] - ldr r0, [r6] - ldr r1, [r6, 0x4] - adds r0, r1 - ldr r1, [r6, 0x8] - adds r0, r1 - str r0, [r6, 0xC] -_0814F874: - movs r0, 0x1 -_0814F876: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814F7E4 - - .align 2, 0 @ Don't pad with nop. |