diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/battle_tower.s | 10 | ||||
-rw-r--r-- | asm/cable_club.s | 2 | ||||
-rw-r--r-- | asm/field_effect.s | 8533 | ||||
-rw-r--r-- | asm/field_effect_helpers.s | 4 | ||||
-rw-r--r-- | asm/field_screen.s | 30 | ||||
-rw-r--r-- | asm/field_specials.s | 4 | ||||
-rw-r--r-- | asm/field_tasks.s | 1921 | ||||
-rw-r--r-- | asm/fldeff_80F9BCC.s | 12 | ||||
-rw-r--r-- | asm/menu_helpers.s | 986 | ||||
-rw-r--r-- | asm/menu_indicators.s | 1442 | ||||
-rw-r--r-- | asm/party_menu.s | 4 | ||||
-rw-r--r-- | asm/pokemon_storage_system.s | 2 | ||||
-rw-r--r-- | asm/pokenav.s | 6 | ||||
-rw-r--r-- | asm/record_mixing.s | 3711 | ||||
-rw-r--r-- | asm/rom_8011DC0.s | 2 | ||||
-rw-r--r-- | asm/rom_8034C54.s | 1312 | ||||
-rw-r--r-- | asm/script_menu.s | 4 | ||||
-rw-r--r-- | asm/shop.s | 2 | ||||
-rw-r--r-- | asm/slot_machine.s | 2 |
19 files changed, 42 insertions, 17947 deletions
diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 6cee2dc0a..788061f2b 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -3746,7 +3746,7 @@ _08163FF4: ldr r0, [r6] ldr r1, =0x0000064c adds r0, r1 - bl sub_8164F70 + bl CalcEmeraldBattleTowerChecksum bl sub_8163E90 pop {r3,r4} mov r8, r3 @@ -5484,8 +5484,8 @@ _08164F52: .pool thumb_func_end sub_8164ED8 - thumb_func_start sub_8164F70 -sub_8164F70: @ 8164F70 + thumb_func_start CalcEmeraldBattleTowerChecksum +CalcEmeraldBattleTowerChecksum: @ 8164F70 push {r4,lr} adds r2, r0, 0 adds r2, 0xE8 @@ -5504,7 +5504,7 @@ _08164F7E: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8164F70 + thumb_func_end CalcEmeraldBattleTowerChecksum thumb_func_start sub_8164F94 sub_8164F94: @ 8164F94 @@ -6750,7 +6750,7 @@ _08165988: ldr r1, [sp, 0x10] bl CpuSet adds r0, r5, 0 - bl sub_8164F70 + bl CalcEmeraldBattleTowerChecksum movs r0, 0x1 _081659BE: add sp, 0x14 diff --git a/asm/cable_club.s b/asm/cable_club.s index 7ef499226..201f23c17 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -795,7 +795,7 @@ sub_80B2A08: @ 80B2A08 ldrh r0, [r0] cmp r0, 0x4 bne _080B2A38 - bl sub_800A064 + bl Link_AnyPartnersPlayingRubyOrSapphire cmp r0, 0 bne _080B2A4A bl sub_800AC34 diff --git a/asm/field_effect.s b/asm/field_effect.s deleted file mode 100644 index 91cd0c972..000000000 --- a/asm/field_effect.s +++ /dev/null @@ -1,8533 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start FieldEffectStart -@ u8 FieldEffectStart(u8 id) -FieldEffectStart: @ 80B5B18 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl FieldEffectActiveListAdd - ldr r0, =gFieldEffectScriptPointers - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - str r0, [sp] - add r4, sp, 0x4 - ldr r5, =gUnknown_0855C1F0 -_080B5B36: - ldr r0, [sp] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r5 - ldr r2, [r0] - mov r0, sp - adds r1, r4, 0 - bl _call_via_r2 - lsls r0, 24 - cmp r0, 0 - bne _080B5B36 - ldr r0, [sp, 0x4] - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end FieldEffectStart - - thumb_func_start FieldEffectCmd_loadtiles -@ bool8 FieldEffectCmd_loadtiles(u8 **script, u8 *returnValue) -FieldEffectCmd_loadtiles: @ 80B5B60 - push {lr} - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - bl FieldEffectScript_LoadTiles - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadtiles - - thumb_func_start FieldEffectCmd_loadfadedpal -@ bool8 FieldEffectCmd_loadfadedpal(u8 **script, u8 *returnValue) -FieldEffectCmd_loadfadedpal: @ 80B5B74 - push {lr} - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - bl FieldEffectScript_LoadFadedPalette - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadfadedpal - - thumb_func_start FieldEffectCmd_loadpal -@ bool8 FieldEffectCmd_loadpal(u8 **script, u8 *returnValue) -FieldEffectCmd_loadpal: @ 80B5B88 - push {lr} - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - bl FieldEffectScript_LoadPalette - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadpal - - thumb_func_start FieldEffectCmd_callnative -@ bool8 FieldEffectCmd_callnative(u8 **script, u8 *returnValue) -FieldEffectCmd_callnative: @ 80B5B9C - push {lr} - ldr r2, [r0] - adds r2, 0x1 - str r2, [r0] - bl FieldEffectScript_CallNative - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_callnative - - thumb_func_start FieldEffectCmd_end -@ bool8 FieldEffectCmd_end(u8 **script, u8 *returnValue) -FieldEffectCmd_end: @ 80B5BB0 - movs r0, 0 - bx lr - thumb_func_end FieldEffectCmd_end - - thumb_func_start FieldEffectCmd_loadgfx_callnative -@ bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u8 *returnValue) -FieldEffectCmd_loadgfx_callnative: @ 80B5BB4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - adds r0, r4, 0 - bl FieldEffectScript_LoadTiles - adds r0, r4, 0 - bl FieldEffectScript_LoadFadedPalette - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldEffectScript_CallNative - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadgfx_callnative - - thumb_func_start FieldEffectCmd_loadtiles_callnative -@ bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u8 *returnValue) -FieldEffectCmd_loadtiles_callnative: @ 80B5BDC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - adds r0, r4, 0 - bl FieldEffectScript_LoadTiles - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldEffectScript_CallNative - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadtiles_callnative - - thumb_func_start FieldEffectCmd_loadfadedpal_callnative -@ bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u8 *returnValue) -FieldEffectCmd_loadfadedpal_callnative: @ 80B5C00 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - adds r0, r4, 0 - bl FieldEffectScript_LoadFadedPalette - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldEffectScript_CallNative - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadfadedpal_callnative - - thumb_func_start FieldEffectScript_ReadWord -@ u32 FieldEffectScript_ReadWord(u8 **script) -FieldEffectScript_ReadWord: @ 80B5C24 - ldr r2, [r0] - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - adds r0, r1 - ldrb r1, [r2, 0x2] - lsls r1, 16 - adds r0, r1 - ldrb r1, [r2, 0x3] - lsls r1, 24 - adds r0, r1 - bx lr - thumb_func_end FieldEffectScript_ReadWord - - thumb_func_start FieldEffectScript_LoadTiles -@ void FieldEffectScript_LoadTiles(u8 **script) -FieldEffectScript_LoadTiles: @ 80B5C3C - push {r4,r5,lr} - adds r4, r0, 0 - bl FieldEffectScript_ReadWord - adds r5, r0, 0 - ldrh r0, [r5, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, =0xffff0000 - cmp r0, r1 - bne _080B5C5A - adds r0, r5, 0 - bl LoadSpriteSheet -_080B5C5A: - ldr r0, [r4] - adds r0, 0x4 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end FieldEffectScript_LoadTiles - - thumb_func_start FieldEffectScript_LoadFadedPalette -@ void FieldEffectScript_LoadFadedPalette(u8 **script) -FieldEffectScript_LoadFadedPalette: @ 80B5C6C - push {r4,r5,lr} - adds r5, r0, 0 - bl FieldEffectScript_ReadWord - adds r4, r0, 0 - bl LoadSpritePalette - ldrh r0, [r4, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - bl sub_80ABE18 - ldr r0, [r5] - adds r0, 0x4 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end FieldEffectScript_LoadFadedPalette - - thumb_func_start FieldEffectScript_LoadPalette -@ void FieldEffectScript_LoadPalette(u8 **script) -FieldEffectScript_LoadPalette: @ 80B5C94 - push {r4,lr} - adds r4, r0, 0 - bl FieldEffectScript_ReadWord - bl LoadSpritePalette - ldr r0, [r4] - adds r0, 0x4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldEffectScript_LoadPalette - - thumb_func_start FieldEffectScript_CallNative -@ void FieldEffectScript_CallNative(u8 **script, u8 *returnValue) -FieldEffectScript_CallNative: @ 80B5CAC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldEffectScript_ReadWord - bl _call_via_r0 - str r0, [r5] - ldr r0, [r4] - adds r0, 0x4 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end FieldEffectScript_CallNative - - thumb_func_start FieldEffectFreeGraphicsResources -@ void FieldEffectFreeGraphicsResources(struct obj *object) -FieldEffectFreeGraphicsResources: @ 80B5CC8 - push {r4,r5,lr} - adds r1, r0, 0 - adds r1, 0x40 - ldrh r5, [r1] - ldrb r4, [r0, 0x5] - lsrs r4, 4 - bl DestroySprite - adds r0, r5, 0 - bl FieldEffectFreeTilesIfUnused - adds r0, r4, 0 - bl FieldEffectFreePaletteIfUnused - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end FieldEffectFreeGraphicsResources - - thumb_func_start FieldEffectStop -@ void FieldEffectStop(struct obj *object, u8 id) -FieldEffectStop: @ 80B5CEC - push {r4,lr} - lsls r4, r1, 24 - lsrs r4, 24 - bl FieldEffectFreeGraphicsResources - adds r0, r4, 0 - bl FieldEffectActiveListRemove - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldEffectStop - - thumb_func_start FieldEffectFreeTilesIfUnused -@ void FieldEffectFreeTilesIfUnused(u16 tileRangeStart) -FieldEffectFreeTilesIfUnused: @ 80B5D04 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl GetSpriteTileTagByTileStart - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, =0x0000ffff - cmp r3, r0 - beq _080B5D58 - movs r2, 0 - ldr r5, =gSprites -_080B5D1E: - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r5 - adds r0, r1, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _080B5D48 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - bge _080B5D48 - adds r0, r1, 0 - adds r0, 0x40 - ldrh r0, [r0] - cmp r4, r0 - beq _080B5D58 -_080B5D48: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _080B5D1E - adds r0, r3, 0 - bl FreeSpriteTilesByTag -_080B5D58: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end FieldEffectFreeTilesIfUnused - - thumb_func_start FieldEffectFreePaletteIfUnused -@ void FieldEffectFreePaletteIfUnused(u8 paletteSlot) -FieldEffectFreePaletteIfUnused: @ 80B5D68 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =0x0000ffff - cmp r5, r0 - beq _080B5DB0 - movs r2, 0 - ldr r6, =gSprites - adds r3, r4, 0 -_080B5D84: - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _080B5DA0 - ldrb r0, [r1, 0x5] - lsrs r0, 4 - cmp r0, r3 - beq _080B5DB0 -_080B5DA0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _080B5D84 - adds r0, r5, 0 - bl FreeSpritePaletteByTag -_080B5DB0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end FieldEffectFreePaletteIfUnused - - thumb_func_start FieldEffectActiveListClear -@ void FieldEffectActiveListClear() -FieldEffectActiveListClear: @ 80B5DC0 - push {r4,lr} - movs r2, 0 - ldr r4, =gUnknown_03000F58 - movs r3, 0xFF -_080B5DC8: - adds r0, r2, r4 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _080B5DC8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end FieldEffectActiveListClear - - thumb_func_start FieldEffectActiveListAdd -@ void FieldEffectActiveListAdd(u8 id) -FieldEffectActiveListAdd: @ 80B5DE4 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r4, =gUnknown_03000F58 -_080B5DEE: - adds r1, r2, r4 - ldrb r0, [r1] - cmp r0, 0xFF - bne _080B5E00 - strb r3, [r1] - b _080B5E0A - .pool -_080B5E00: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _080B5DEE -_080B5E0A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldEffectActiveListAdd - - thumb_func_start FieldEffectActiveListRemove -@ void FieldEffectActiveListRemove(u8 id) -FieldEffectActiveListRemove: @ 80B5E10 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r4, =gUnknown_03000F58 - movs r5, 0xFF -_080B5E1C: - adds r1, r2, r4 - ldrb r0, [r1] - cmp r0, r3 - bne _080B5E30 - orrs r0, r5 - strb r0, [r1] - b _080B5E3A - .pool -_080B5E30: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _080B5E1C -_080B5E3A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end FieldEffectActiveListRemove - - thumb_func_start FieldEffectActiveListContains -@ void FieldEffectActiveListContains(u8 id) -FieldEffectActiveListContains: @ 80B5E40 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, =gUnknown_03000F58 -_080B5E4A: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080B5E5C - movs r0, 0x1 - b _080B5E68 - .pool -_080B5E5C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1F - bls _080B5E4A - movs r0, 0 -_080B5E68: - pop {r1} - bx r1 - thumb_func_end FieldEffectActiveListContains - - thumb_func_start CreateTrainerSprite -CreateTrainerSprite: @ 80B5E6C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r9, r3 - ldr r7, [sp, 0x34] - lsls r4, 24 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsrs r4, 21 - ldr r3, =gTrainerFrontPicPaletteTable - mov r8, r3 - add r8, r4 - mov r0, r8 - adds r1, r7, 0 - bl LoadCompressedObjectPaletteOverrideBuffer - ldr r0, =gTrainerFrontPicTable - adds r4, r0 - adds r0, r4, 0 - adds r1, r7, 0 - bl LoadCompressedObjectPicOverrideBuffer - mov r1, sp - ldrh r0, [r4, 0x6] - movs r2, 0 - strh r0, [r1] - mov r3, r8 - ldrh r0, [r3, 0x4] - strh r0, [r1, 0x2] - ldr r0, =gNewGameBirchOamAttributes - str r0, [sp, 0x4] - ldr r0, =gDummySpriteAnimTable - str r0, [sp, 0x8] - str r2, [sp, 0xC] - ldr r0, =gDummySpriteAffineAnimTable - str r0, [sp, 0x10] - ldr r0, =SpriteCallbackDummy - str r0, [sp, 0x14] - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - mov r0, sp - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, r9 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end CreateTrainerSprite - - thumb_func_start sub_80B5F0C -sub_80B5F0C: @ 80B5F0C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r1, r2, 0 - lsls r4, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r0, =gTrainerFrontPicTable - lsrs r4, 21 - adds r0, r4, r0 - ldr r0, [r0] - bl LZDecompressVram - ldr r0, =gTrainerFrontPicPaletteTable - adds r4, r0 - ldr r0, [r4] - adds r1, r5, 0 - movs r2, 0x20 - bl LoadCompressedPalette - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B5F0C - - thumb_func_start AddNewGameBirchObject -AddNewGameBirchObject: @ 80B5F44 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gNewGameBirchObjectPaletteInfo - bl LoadSpritePalette - ldr r0, =gNewGameBirchObjectTemplate - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end AddNewGameBirchObject - - thumb_func_start sub_80B5F84 -sub_80B5F84: @ 80B5F84 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 16 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 8 - lsls r1, 16 - asrs r1, 16 - str r1, [sp] - lsls r2, 16 - asrs r2, 16 - str r2, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - ldr r1, =gMonPaletteTable - lsls r4, r0, 3 - adds r4, r1 - ldrh r1, [r4, 0x4] - str r1, [sp, 0xC] - movs r1, 0 - adds r2, r3, 0 - movs r3, 0x1 - bl sub_818D7D8 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r4, 0x4] - bl IndexOfSpritePaletteTag - adds r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - bl sub_80AC3F8 - ldr r0, =0x0000ffff - cmp r5, r0 - beq _080B5FDC - lsls r0, r5, 24 - lsrs r0, 24 - b _080B5FDE - .pool -_080B5FDC: - movs r0, 0x40 -_080B5FDE: - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B5F84 - - thumb_func_start sub_80B5FE8 -sub_80B5FE8: @ 80B5FE8 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x10 - adds r6, r0, 0 - mov r9, r1 - mov r10, r2 - adds r4, r3, 0 - ldr r5, [sp, 0x2C] - lsls r6, 16 - lsrs r6, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl GetMonSpritePalStructFromOtIdPersonality - mov r8, r0 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - mov r1, r8 - ldrh r0, [r1, 0x4] - str r0, [sp, 0xC] - adds r0, r6, 0 - mov r1, r9 - mov r2, r10 - movs r3, 0x1 - bl sub_818D7D8 - lsls r0, 16 - lsrs r4, r0, 16 - mov r1, r8 - ldrh r0, [r1, 0x4] - bl IndexOfSpritePaletteTag - adds r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - bl sub_80AC3F8 - ldr r0, =0x0000ffff - cmp r4, r0 - beq _080B605C - lsls r0, r4, 24 - lsrs r0, 24 - b _080B605E - .pool -_080B605C: - movs r0, 0x40 -_080B605E: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80B5FE8 - - thumb_func_start sub_80B6070 -sub_80B6070: @ 80B6070 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl sub_80AC428 - ldrb r0, [r4, 0x1] - lsls r0, 30 - cmp r0, 0 - beq _080B608E - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix -_080B608E: - adds r0, r5, 0 - bl sub_818D820 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B6070 - - thumb_func_start MultiplyInvertedPaletteRGBComponents -MultiplyInvertedPaletteRGBComponents: @ 80B609C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r4, =gPlttBufferUnfaded - lsrs r0, 15 - adds r4, r0, r4 - ldrh r4, [r4] - movs r5, 0x1F - mov r9, r5 - mov r8, r4 - mov r6, r8 - ands r6, r5 - mov r8, r6 - movs r6, 0xF8 - lsls r6, 2 - ands r6, r4 - lsrs r6, 5 - movs r5, 0xF8 - lsls r5, 7 - ands r4, r5 - lsrs r4, 10 - mov r7, r9 - mov r5, r8 - subs r7, r5 - mov r12, r7 - mov r7, r12 - muls r7, r1 - adds r1, r7, 0 - asrs r1, 4 - add r8, r1 - mov r5, r9 - subs r1, r5, r6 - muls r1, r2 - asrs r1, 4 - adds r6, r1 - subs r5, r4 - mov r9, r5 - mov r1, r9 - muls r1, r3 - asrs r1, 4 - adds r4, r1 - mov r7, r8 - lsls r7, 16 - lsls r6, 21 - orrs r6, r7 - lsls r4, 26 - orrs r4, r6 - lsrs r4, 16 - ldr r1, =gPlttBufferFaded - adds r0, r1 - strh r4, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end MultiplyInvertedPaletteRGBComponents - - thumb_func_start sub_80B6128 -sub_80B6128: @ 80B6128 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r4, =gPlttBufferUnfaded - lsrs r0, 15 - adds r4, r0, r4 - ldrh r4, [r4] - movs r5, 0x1F - mov r8, r5 - mov r6, r8 - ands r6, r4 - mov r8, r6 - movs r5, 0xF8 - lsls r5, 2 - ands r5, r4 - lsrs r5, 5 - movs r6, 0xF8 - lsls r6, 7 - ands r4, r6 - lsrs r4, 10 - mov r6, r8 - muls r6, r1 - adds r1, r6, 0 - asrs r1, 4 - mov r6, r8 - subs r6, r1 - adds r1, r5, 0 - muls r1, r2 - asrs r1, 4 - subs r5, r1 - adds r1, r4, 0 - muls r1, r3 - asrs r1, 4 - subs r4, r1 - lsls r6, 16 - lsls r5, 21 - orrs r5, r6 - lsls r4, 26 - orrs r4, r5 - lsrs r4, 16 - ldr r1, =gPlttBufferFaded - adds r0, r1 - strh r4, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6128 - - thumb_func_start sub_80B61A0 -sub_80B61A0: @ 80B61A0 - push {r4,lr} - bl CalculatePlayerPartyCount - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =sub_80B61E4 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r1, r0 - strh r4, [r1, 0xA] - movs r0, 0x5D - strh r0, [r1, 0xC] - movs r0, 0x24 - strh r0, [r1, 0xE] - movs r0, 0x7C - strh r0, [r1, 0x10] - movs r0, 0x18 - strh r0, [r1, 0x12] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B61A0 - - thumb_func_start sub_80B61E4 -sub_80B61E4: @ 80B61E4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r1, r0 - ldr r2, =gUnknown_0855C364 - movs r3, 0x8 - ldrsh r0, [r1, r3] - lsls r0, 2 - adds r0, r2 - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B61E4 - - thumb_func_start sub_80B6214 -sub_80B6214: @ 80B6214 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0xC - ldrsh r1, [r4, r2] - movs r3, 0xE - ldrsh r2, [r4, r3] - movs r3, 0x1 - bl sub_80B646C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - movs r1, 0x10 - ldrsh r0, [r4, r1] - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl sub_80B6850 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B6214 - - thumb_func_start sub_80B6250 -sub_80B6250: @ 80B6250 - push {r4,lr} - adds r2, r0, 0 - ldr r3, =gSprites - movs r1, 0x14 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r4, 0x2E - ldrsh r0, [r1, r4] - cmp r0, 0x1 - ble _080B6282 - movs r0, 0x16 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - strh r1, [r0, 0x2E] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_080B6282: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6250 - - thumb_func_start sub_80B628C -sub_80B628C: @ 80B628C - push {lr} - adds r3, r0, 0 - ldr r2, =gSprites - movs r0, 0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x4 - ble _080B62AC - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_080B62AC: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B628C - - thumb_func_start sub_80B62B4 -sub_80B62B4: @ 80B62B4 - push {lr} - ldr r2, =gSprites - movs r3, 0x14 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x6 - ble _080B62E6 - adds r0, r1, 0 - bl DestroySprite - movs r0, 0x19 - bl FieldEffectActiveListRemove - ldr r0, =sub_80B61E4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B62E6: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B62B4 - - thumb_func_start sub_80B62F4 -sub_80B62F4: @ 80B62F4 - push {r4,lr} - bl CalculatePlayerPartyCount - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =sub_80B6330 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r1, r0 - strh r4, [r1, 0xA] - movs r0, 0x75 - strh r0, [r1, 0xC] - movs r0, 0x34 - strh r0, [r1, 0xE] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B62F4 - - thumb_func_start sub_80B6330 -sub_80B6330: @ 80B6330 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r1, r0 - ldr r2, =gUnknown_0855C374 - movs r3, 0x8 - ldrsh r0, [r1, r3] - lsls r0, 2 - adds r0, r2 - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6330 - - thumb_func_start sub_80B6360 -sub_80B6360: @ 80B6360 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0xC - ldrsh r1, [r4, r2] - movs r3, 0xE - ldrsh r2, [r4, r3] - movs r3, 0 - bl sub_80B646C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - ldr r0, =sub_80B6330 - bl FindTaskIdByFunc - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x78 - movs r2, 0x18 - movs r3, 0 - bl sub_80B68EC - adds r0, r4, 0 - movs r1, 0x28 - movs r2, 0x8 - movs r3, 0x1 - bl sub_80B68EC - adds r0, r4, 0 - movs r1, 0x48 - movs r2, 0x8 - movs r3, 0x1 - bl sub_80B68EC - adds r0, r4, 0 - movs r1, 0xA8 - movs r2, 0x8 - movs r3, 0x1 - bl sub_80B68EC - adds r0, r4, 0 - movs r1, 0xC8 - movs r2, 0x8 - movs r3, 0x1 - bl sub_80B68EC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6360 - - thumb_func_start sub_80B63D4 -sub_80B63D4: @ 80B63D4 - push {lr} - adds r3, r0, 0 - ldr r2, =gSprites - movs r0, 0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x1 - ble _080B63FA - ldrh r0, [r3, 0x26] - adds r0, 0x1 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_080B63FA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B63D4 - - thumb_func_start sub_80B6404 -sub_80B6404: @ 80B6404 - push {lr} - adds r3, r0, 0 - ldr r2, =gSprites - movs r0, 0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x4 - ble _080B6424 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_080B6424: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6404 - - thumb_func_start sub_80B642C -sub_80B642C: @ 80B642C - push {lr} - ldr r2, =gSprites - movs r3, 0x14 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x6 - ble _080B645E - adds r0, r1, 0 - bl DestroySprite - movs r0, 0x3E - bl FieldEffectActiveListRemove - ldr r0, =sub_80B6330 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B645E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B642C - - thumb_func_start sub_80B646C -sub_80B646C: @ 80B646C - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, =sub_80B64C0 - bl CreateInvisibleSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, =gSprites - adds r1, r2 - strh r4, [r1, 0x24] - strh r5, [r1, 0x26] - strh r6, [r1, 0x38] - mov r2, r8 - strh r2, [r1, 0x3A] - strh r0, [r1, 0x3C] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B646C - - thumb_func_start sub_80B64C0 -sub_80B64C0: @ 80B64C0 - push {lr} - ldr r2, =gUnknown_0855C384 - movs r3, 0x2E - ldrsh r1, [r0, r3] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B64C0 - - thumb_func_start sub_80B64DC -sub_80B64DC: @ 80B64DC - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B64F4 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080B6550 -_080B64F4: - movs r0, 0x19 - strh r0, [r4, 0x30] - ldr r0, =gUnknown_0855C304 - ldr r1, =gUnknown_0855C3A4 - movs r2, 0x32 - ldrsh r3, [r4, r2] - lsls r3, 2 - adds r3, r1 - ldrh r1, [r4, 0x24] - ldrh r2, [r3] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r4, 0x26] - ldrh r3, [r3, 0x2] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x5] - ldrh r0, [r4, 0x3C] - strh r0, [r1, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - subs r0, 0x1 - strh r0, [r4, 0x3A] - movs r0, 0x17 - bl PlaySE -_080B6550: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B6562 - movs r0, 0x20 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080B6562: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B64DC - - thumb_func_start sub_80B6574 -sub_80B6574: @ 80B6574 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _080B65A4 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - movs r0, 0x8 - strh r0, [r1, 0x30] - strh r2, [r1, 0x32] - strh r2, [r1, 0x34] - movs r2, 0x38 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080B65A4 - movs r0, 0xB8 - lsls r0, 1 - bl PlayFanfare -_080B65A4: - pop {r0} - bx r0 - thumb_func_end sub_80B6574 - - thumb_func_start sub_80B65A8 -sub_80B65A8: @ 80B65A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - ldrh r0, [r7, 0x30] - subs r0, 0x1 - strh r0, [r7, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080B65D8 - movs r0, 0x8 - strh r0, [r7, 0x30] - ldrh r0, [r7, 0x32] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r7, 0x32] - cmp r0, 0 - bne _080B65D8 - ldrh r0, [r7, 0x34] - adds r0, 0x1 - strh r0, [r7, 0x34] -_080B65D8: - ldrh r4, [r7, 0x32] - adds r4, 0x3 - movs r0, 0x3 - mov r8, r0 - mov r1, r8 - ands r4, r1 - ldr r3, =0x00001007 - mov r10, r3 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x84 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldr r6, =gUnknown_0855C3BC - adds r1, r4, r6 - ldrb r1, [r1] - ldr r5, =gUnknown_0855C3C0 - adds r2, r4, r5 - ldrb r2, [r2] - ldr r3, =gUnknown_0855C3C4 - mov r9, r3 - add r4, r9 - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, 0x32] - adds r4, 0x2 - mov r0, r8 - ands r4, r0 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x83 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r4, r6 - ldrb r1, [r1] - adds r2, r4, r5 - ldrb r2, [r2] - add r4, r9 - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, 0x32] - adds r4, 0x1 - mov r3, r8 - ands r4, r3 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x81 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r4, r6 - ldrb r1, [r1] - adds r2, r4, r5 - ldrb r2, [r2] - add r4, r9 - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, 0x32] - lsls r4, 24 - lsrs r4, 24 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r3, =0x01050000 - adds r0, r3 - lsrs r0, 16 - adds r6, r4, r6 - ldrb r6, [r6] - adds r5, r4, r5 - ldrb r5, [r5] - add r4, r9 - ldrb r4, [r4] - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, =0x01030000 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - movs r3, 0x34 - ldrsh r0, [r7, r3] - cmp r0, 0x2 - ble _080B66C2 - ldrh r0, [r7, 0x2E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r7, 0x2E] - movs r0, 0x8 - strh r0, [r7, 0x30] - strh r1, [r7, 0x32] -_080B66C2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B65A8 - - thumb_func_start sub_80B66E8 -sub_80B66E8: @ 80B66E8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080B6718 - movs r0, 0x8 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r2, 0x32] - cmp r0, 0x3 - bne _080B6718 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - movs r0, 0x1E - strh r0, [r2, 0x30] -_080B6718: - ldrh r4, [r2, 0x32] - lsls r4, 24 - lsrs r4, 24 - ldr r0, =0x00001007 - mov r8, r0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x84 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldr r1, =gUnknown_0855C3BC - adds r1, r4, r1 - ldrb r6, [r1] - ldr r1, =gUnknown_0855C3C0 - adds r1, r4, r1 - ldrb r5, [r1] - ldr r1, =gUnknown_0855C3C4 - adds r4, r1 - ldrb r4, [r4] - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x83 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x81 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, =0x01050000 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, =0x01030000 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B66E8 - - thumb_func_start sub_80B67DC -sub_80B67DC: @ 80B67DC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080B67F2 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] -_080B67F2: - pop {r0} - bx r0 - thumb_func_end sub_80B67DC - - thumb_func_start sub_80B67F8 -sub_80B67F8: @ 80B67F8 - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - strh r1, [r0, 0x2E] - bx lr - thumb_func_end sub_80B67F8 - - thumb_func_start sub_80B6800 -sub_80B6800: @ 80B6800 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B6816 - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _080B681C -_080B6816: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080B681C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B6800 - - thumb_func_start nullsub_97 -nullsub_97: @ 80B6824 - bx lr - thumb_func_end nullsub_97 - - thumb_func_start sub_80B6828 -sub_80B6828: @ 80B6828 - push {lr} - adds r3, r0, 0 - ldr r2, =gSprites - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x4 - ble _080B6848 - adds r0, r3, 0 - bl FieldEffectFreeGraphicsResources -_080B6848: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6828 - - thumb_func_start sub_80B6850 -sub_80B6850: @ 80B6850 - push {r4,lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, =gUnknown_0855C31C - lsls r3, 16 - asrs r3, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r3, 0 - movs r3, 0 - bl CreateSpriteAtEnd - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x5] - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - ldr r1, =gUnknown_0855C2AC - bl SetSubspriteTables - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B6850 - - thumb_func_start sub_80B68AC -sub_80B68AC: @ 80B68AC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B68D0 - movs r0, 0 - strh r0, [r4, 0x2E] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080B68D0: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B68E4 - adds r0, r4, 0 - bl FieldEffectFreeGraphicsResources -_080B68E4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B68AC - - thumb_func_start sub_80B68EC -sub_80B68EC: @ 80B68EC - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 24 - cmp r3, 0 - bne _080B6934 - ldr r0, =gUnknown_0855C334 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - ldr r1, =gUnknown_0855C2C4 - bl SetSubspriteTables - b _080B6948 - .pool -_080B6934: - ldr r0, =gUnknown_0855C34C - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r4, r0, 24 -_080B6948: - ldr r1, =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - strh r5, [r0, 0x2E] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B68EC - - thumb_func_start sub_80B6970 -sub_80B6970: @ 80B6970 - push {lr} - adds r3, r0, 0 - ldr r2, =gTasks - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x26 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080B69C6 - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080B699E - subs r0, r1, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080B69C0 -_080B699E: - movs r0, 0x10 - strh r0, [r3, 0x30] - 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] -_080B69C0: - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] -_080B69C6: - movs r2, 0x32 - ldrsh r0, [r3, r2] - cmp r0, 0x7F - ble _080B69D4 - adds r0, r3, 0 - bl FieldEffectFreeGraphicsResources -_080B69D4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6970 - - thumb_func_start sub_80B69DC -sub_80B69DC: @ 80B69DC - push {lr} - ldr r0, =CB2_ReturnToField - bl SetMainCallback2 - ldr r1, =gFieldCallback - ldr r0, =mapldr_080842E8 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B69DC - - thumb_func_start mapldr_080842E8 -mapldr_080842E8: @ 80B69FC - push {lr} - bl pal_fill_black - ldr r0, =task00_8084310 - movs r1, 0 - bl CreateTask - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r1, =gFieldCallback - movs r0, 0 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end mapldr_080842E8 - - thumb_func_start task00_8084310 -task00_8084310: @ 80B6A24 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r6, [r4, r0] - cmp r6, 0 - bne _080B6A64 - bl sub_80ABDFC - lsls r0, 24 - cmp r0, 0 - beq _080B6A8A - bl GetCursorSelectionMonId - ldr r1, =gFieldEffectArguments - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - cmp r0, 0x5 - ble _080B6A58 - str r6, [r1] -_080B6A58: - movs r0, 0x1F - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B6A64: - movs r0, 0x1F - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080B6A8A - bl Overworld_ResetStateAfterFly - bl warp_in - ldr r0, =CB2_LoadMap - bl SetMainCallback2 - ldr r1, =gFieldCallback - ldr r0, =mapldr_08084390 - str r0, [r1] - adds r0, r5, 0 - bl DestroyTask -_080B6A8A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end task00_8084310 - - thumb_func_start mapldr_08084390 -mapldr_08084390: @ 80B6AA4 - push {r4,lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_black - ldr r0, =c3_080843F8 - movs r1, 0 - bl CreateTask - ldr r4, =gMapObjects - ldr r3, =gPlayerAvatar - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - ldrb r1, [r3] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080B6AE6 - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x3 - bl FieldObjectTurn -_080B6AE6: - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r1, =gFieldCallback - movs r0, 0 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end mapldr_08084390 - - thumb_func_start c3_080843F8 -c3_080843F8: @ 80B6B0C - 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, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B6B3E - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B6B58 - movs r0, 0x20 - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B6B3E: - movs r0, 0x20 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080B6B58 - bl ScriptContext2_Disable - bl UnfreezeMapObjects - adds r0, r5, 0 - bl DestroyTask -_080B6B58: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end c3_080843F8 - - thumb_func_start sub_80B6B68 -sub_80B6B68: @ 80B6B68 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r0, =sub_80B6B94 - movs r1, 0 - bl CreateTask - ldr r1, =gFieldCallback - movs r0, 0 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6B68 - - thumb_func_start sub_80B6B94 -sub_80B6B94: @ 80B6B94 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r4, r1, r0 - ldr r5, =gUnknown_0855C3C8 -_080B6BA6: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _080B6BA6 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6B94 - - thumb_func_start sub_80B6BCC -sub_80B6BCC: @ 80B6BCC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r9, r0 - ldr r6, =gPlayerAvatar - ldrb r0, [r6, 0x5] - lsls r5, r0, 3 - adds r5, r0 - lsls r5, 2 - ldr r0, =gMapObjects - mov r8, r0 - add r5, r8 - ldrb r0, [r6, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - bl CameraObjectReset2 - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r0, 0x1 - strb r0, [r6, 0x6] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - adds r3, r4, 0 - adds r3, 0x42 - ldrb r0, [r3] - lsrs r0, 6 - mov r1, r9 - strh r0, [r1, 0x10] - ldrb r0, [r5, 0x3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r5, 0x3] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - ldrb r1, [r3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3] - mov r1, r9 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x1 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B6BCC - - thumb_func_start sub_80B6C74 -sub_80B6C74: @ 80B6C74 - push {r4,lr} - adds r4, r0, 0 - bl sub_80ABDFC - lsls r0, 24 - cmp r0, 0 - beq _080B6C88 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B6C88: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B6C74 - - thumb_func_start sub_80B6C90 -sub_80B6C90: @ 80B6C90 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, =gPlayerAvatar - ldrb r0, [r6, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r0, r2, 0 - adds r0, 0x29 - movs r4, 0 - ldrsb r4, [r0, r4] - lsls r0, r4, 17 - negs r0, r0 - ldrh r1, [r2, 0x22] - ldr r3, =gSpriteCoordOffsetY - adds r1, r4 - ldrh r3, [r3] - adds r1, r3 - asrs r0, 16 - adds r0, r1 - negs r0, r0 - movs r1, 0 - strh r0, [r2, 0x26] - movs r0, 0x1 - strh r0, [r5, 0xA] - strh r1, [r5, 0xC] - ldr r2, =gMapObjects - ldrb r0, [r6, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - movs r0, 0x2B - bl PlaySE - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B6C90 - - thumb_func_start sub_80B6D04 -sub_80B6D04: @ 80B6D04 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r2, =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r6, r0, r1 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - ldrh r2, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bgt _080B6D46 - ldrh r1, [r4, 0xC] - adds r0, r2, r1 - strh r0, [r4, 0xC] - movs r1, 0xF - ands r0, r1 - cmp r0, 0 - beq _080B6D46 - lsls r0, r2, 1 - strh r0, [r4, 0xA] -_080B6D46: - ldrh r2, [r4, 0xE] - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B6D84 - movs r0, 0x26 - ldrsh r1, [r5, r0] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - blt _080B6D84 - adds r0, r2, 0x1 - strh r0, [r4, 0xE] - ldrb r1, [r6, 0x3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r6, 0x3] - ldrb r1, [r4, 0x10] - adds r3, r5, 0 - adds r3, 0x42 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r6] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r6] -_080B6D84: - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r0, 0 - blt _080B6DA8 - movs r0, 0xD6 - bl PlaySE - ldrb r0, [r6] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r6] - movs r0, 0 - strh r0, [r5, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B6DA8: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B6D04 - - thumb_func_start sub_80B6DBC -sub_80B6DBC: @ 80B6DBC - push {lr} - ldrh r1, [r0, 0x8] - adds r1, 0x1 - movs r2, 0 - strh r1, [r0, 0x8] - movs r1, 0x4 - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_80B6DBC - - thumb_func_start sub_80B6DD8 -sub_80B6DD8: @ 80B6DD8 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - ldrh r0, [r4, 0xA] - negs r2, r0 - strh r2, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080B6E00 - lsls r0, r2, 16 - asrs r0, 17 - strh r0, [r4, 0xA] -_080B6E00: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B6E0E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B6E0E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B6DD8 - - thumb_func_start sub_80B6E18 -sub_80B6E18: @ 80B6E18 - push {lr} - ldr r1, =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - bl ScriptContext2_Disable - bl CameraObjectReset1 - bl UnfreezeMapObjects - bl InstallCameraPanAheadCallback - ldr r0, =sub_80B6B94 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B6E18 - - thumb_func_start sub_80B6E4C -sub_80B6E4C: @ 80B6E4C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =sub_80B6E88 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0xA] - cmp r4, 0x6A - bne _080B6E78 - movs r0, 0x1 - strh r0, [r1, 0xA] -_080B6E78: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6E4C - - thumb_func_start sub_80B6E88 -sub_80B6E88: @ 80B6E88 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r4, r1, r0 - ldr r5, =gUnknown_0855C3E4 -_080B6E9A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _080B6E9A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6E88 - - thumb_func_start sub_80B6EC0 -sub_80B6EC0: @ 80B6EC0 - push {r4,lr} - adds r4, r0, 0 - bl FreezeMapObjects - bl CameraObjectReset2 - ldrb r0, [r4, 0xA] - bl sub_80E1558 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B6EC0 - - thumb_func_start sub_80B6EE0 -sub_80B6EE0: @ 80B6EE0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080B6F0A - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B6F3E -_080B6F0A: - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x8] - strh r1, [r5, 0xC] - strh r1, [r5, 0xE] - ldrb r0, [r5, 0xA] - cmp r0, 0 - bne _080B6F38 - movs r0, 0x4 - strh r0, [r5, 0x8] -_080B6F38: - movs r0, 0x50 - bl PlaySE -_080B6F3E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B6EE0 - - thumb_func_start sub_80B6F50 -sub_80B6F50: @ 80B6F50 - push {r4,lr} - adds r4, r0, 0 - bl sub_80B6FB8 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _080B6F6A - bl sub_80B7050 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B6F6A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B6F50 - - thumb_func_start sub_80B6F74 -sub_80B6F74: @ 80B6F74 - push {lr} - bl sub_80B6FB8 - bl sub_80B7060 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80B6F74 - - thumb_func_start sub_80B6F84 -sub_80B6F84: @ 80B6F84 - push {r4,lr} - adds r4, r0, 0 - bl sub_80B7004 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _080B6F9E - bl sub_80B7050 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B6F9E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B6F84 - - thumb_func_start sub_80B6FA8 -sub_80B6FA8: @ 80B6FA8 - push {lr} - bl sub_80B7004 - bl sub_80B7060 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80B6FA8 - - thumb_func_start sub_80B6FB8 -sub_80B6FB8: @ 80B6FB8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x84 - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x94 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B6FF6 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] -_080B6FF6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B6FB8 - - thumb_func_start sub_80B7004 -sub_80B7004: @ 80B7004 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x7C - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x76 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B7042 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] -_080B7042: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7004 - - thumb_func_start sub_80B7050 -sub_80B7050: @ 80B7050 - push {lr} - bl music_something - bl sub_80AF0B4 - pop {r0} - bx r0 - thumb_func_end sub_80B7050 - - thumb_func_start sub_80B7060 -sub_80B7060: @ 80B7060 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B709C - bl sub_80859A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B709C - bl sub_80E1570 - bl warp_in - ldr r1, =gFieldCallback - ldr r0, =sub_80B70B4 - str r0, [r1] - ldr r0, =CB2_LoadMap - bl SetMainCallback2 - ldr r0, =sub_80B6E88 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B709C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7060 - - thumb_func_start sub_80B70B4 -sub_80B70B4: @ 80B70B4 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl ScriptContext2_Enable - ldr r0, =sub_80B70DC - movs r1, 0 - bl CreateTask - ldr r1, =gFieldCallback - movs r0, 0 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B70B4 - - thumb_func_start sub_80B70DC -sub_80B70DC: @ 80B70DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r4, r1, r0 - ldr r5, =gUnknown_0855C3FC -_080B70EE: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _080B70EE - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B70DC - - thumb_func_start sub_80B7114 -sub_80B7114: @ 80B7114 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl CameraObjectReset2 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gMapObjects - adds r4, r0 - movs r0, 0x4 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - 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 r1, r0, 24 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x10 - strh r0, [r5, 0xA] - cmp r1, 0x6B - bne _080B717C - movs r1, 0x1 - movs r0, 0x3 - strh r0, [r5, 0x8] - b _080B717E - .pool -_080B717C: - movs r1, 0 -_080B717E: - adds r0, r1, 0 - bl sub_80E1558 - movs r0, 0x1 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B7114 - - thumb_func_start sub_80B7190 -sub_80B7190: @ 80B7190 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x84 - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x94 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B7190 - - thumb_func_start sub_80B71D0 -sub_80B71D0: @ 80B71D0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r5, r0, r1 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x84 - bl Cos - strh r0, [r5, 0x24] - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x94 - bl Sin - strh r0, [r5, 0x26] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B720E - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] -_080B720E: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B721E - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - movs r0, 0x5 - strh r0, [r4, 0x8] -_080B721E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B71D0 - - thumb_func_start sub_80B7230 -sub_80B7230: @ 80B7230 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x7C - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x76 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B7230 - - thumb_func_start sub_80B7270 -sub_80B7270: @ 80B7270 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r5, r0, r1 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x7C - bl Cos - strh r0, [r5, 0x24] - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x76 - bl Sin - strh r0, [r5, 0x26] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B72AE - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] -_080B72AE: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B72C0 - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B72C0: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B7270 - - thumb_func_start sub_80B72D0 -sub_80B72D0: @ 80B72D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80E1584 - lsls r0, 24 - cmp r0, 0 - bne _080B72EC - bl sub_80E1570 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _080B72EE -_080B72EC: - movs r0, 0 -_080B72EE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B72D0 - - thumb_func_start sub_80B72F4 -sub_80B72F4: @ 80B72F4 - push {r4,lr} - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B7338 - bl CameraObjectReset1 - bl ScriptContext2_Disable - movs r0, 0x4 - bl GetGoSpeed0AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldr r0, =sub_80B70DC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B7338: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B72F4 - - thumb_func_start oei_waterfall -oei_waterfall: @ 80B734C - push {r4,lr} - ldr r4, =sub_80B7384 - adds r0, r4, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, =gFieldEffectArguments - ldr r2, [r2] - strh r2, [r1, 0xA] - bl _call_via_r4 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end oei_waterfall - - thumb_func_start sub_80B7384 -sub_80B7384: @ 80B7384 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0855C418 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_080B7396: - movs r0, 0x8 - ldrsh r2, [r4, r0] - lsls r2, 2 - adds r2, r5 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gMapObjects - adds r1, r0 - ldr r2, [r2] - adds r0, r4, 0 - bl _call_via_r2 - lsls r0, 24 - cmp r0, 0 - bne _080B7396 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7384 - - thumb_func_start sub_80B73D0 -sub_80B73D0: @ 80B73D0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - ldr r1, =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B73D0 - - thumb_func_start waterfall_1_do_anim_probably -waterfall_1_do_anim_probably: @ 80B73F0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl ScriptContext2_Enable - adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - bne _080B7420 - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - ldr r1, =gFieldEffectArguments - movs r2, 0xA - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, 0x3B - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B7420: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end waterfall_1_do_anim_probably - - thumb_func_start waterfall_2_wait_anim_finish_probably -waterfall_2_wait_anim_finish_probably: @ 80B742C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080B7446 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _080B7448 -_080B7446: - movs r0, 0 -_080B7448: - pop {r4} - pop {r1} - bx r1 - thumb_func_end waterfall_2_wait_anim_finish_probably - - thumb_func_start sub_80B7450 -sub_80B7450: @ 80B7450 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r0, 0x2 - bl GetSimpleGoAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B7450 - - thumb_func_start sub_80B7478 -sub_80B7478: @ 80B7478 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - bne _080B748E - movs r0, 0 - b _080B74CA -_080B748E: - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080B74C4 - bl ScriptContext2_Disable - ldr r0, =gPlayerAvatar - strb r4, [r0, 0x6] - ldr r0, =sub_80B7384 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0x2B - bl FieldEffectActiveListRemove - movs r0, 0 - b _080B74CA - .pool -_080B74C4: - movs r0, 0x3 - strh r0, [r5, 0x8] - movs r0, 0x1 -_080B74CA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B7478 - - thumb_func_start sub_80B74D0 -sub_80B74D0: @ 80B74D0 - push {r4,lr} - ldr r4, =sub_80B750C - adds r0, r4, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, =gFieldEffectArguments - ldr r2, [r3] - strh r2, [r1, 0x26] - ldr r2, [r3, 0x4] - strh r2, [r1, 0x24] - bl _call_via_r4 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B74D0 - - thumb_func_start sub_80B750C -sub_80B750C: @ 80B750C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0855C42C - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_080B751E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _080B751E - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B750C - - thumb_func_start dive_1_lock -dive_1_lock: @ 80B7544 - ldr r2, =gPlayerAvatar - movs r1, 0x1 - strb r1, [r2, 0x6] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - movs r0, 0 - bx lr - .pool - thumb_func_end dive_1_lock - - thumb_func_start dive_2_unknown -dive_2_unknown: @ 80B7558 - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - ldr r1, =gFieldEffectArguments - movs r2, 0x26 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, 0x3B - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end dive_2_unknown - - thumb_func_start dive_3_unknown -dive_3_unknown: @ 80B7580 - push {lr} - sub sp, 0x8 - mov r1, sp - adds r1, 0x2 - mov r0, sp - bl PlayerGetDestCoords - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080B75C4 - ldr r2, =gMapObjects - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1E] - mov r0, sp - bl dive_warp - ldr r0, =sub_80B750C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0x2C - bl FieldEffectActiveListRemove -_080B75C4: - movs r0, 0 - add sp, 0x8 - pop {r1} - bx r1 - .pool - thumb_func_end dive_3_unknown - - thumb_func_start sub_80B75D8 -sub_80B75D8: @ 80B75D8 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =sub_80B75F0 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B75D8 - - thumb_func_start sub_80B75F0 -sub_80B75F0: @ 80B75F0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, =gUnknown_0855C438 - ldr r2, =gTasks - ldr r5, =gPlayerAvatar - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_080B7604: - movs r0, 0x8 - ldrsh r3, [r4, r0] - lsls r3, 2 - adds r3, r6 - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gMapObjects - adds r1, r0 - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _080B7604 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B75F0 - - thumb_func_start sub_80B764C -sub_80B764C: @ 80B764C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FreezeMapObjects - bl CameraObjectReset2 - movs r0, 0 - bl SetCameraPanningCallback - ldr r0, =gPlayerAvatar - movs r2, 0x1 - strb r2, [r0, 0x6] - ldrb r0, [r5, 0x3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x3] - strh r2, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B764C - - thumb_func_start sub_80B7684 -sub_80B7684: @ 80B7684 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - ldrh r0, [r4, 0xA] - negs r0, r0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080B76B0 - movs r0, 0 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B76B0: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B7684 - - thumb_func_start sub_80B76B8 -sub_80B76B8: @ 80B76B8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0 - strh r0, [r2, 0x26] - movs r0, 0x1 - strh r0, [r4, 0xE] - ldr r3, =gFieldEffectArguments - movs r5, 0x10 - ldrsh r0, [r1, r5] - str r0, [r3] - movs r5, 0x12 - ldrsh r0, [r1, r5] - str r0, [r3, 0x4] - adds r0, r2, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r3, 0x8] - ldrb r0, [r2, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r3, 0xC] - movs r0, 0x32 - bl FieldEffectStart - movs r0, 0xB2 - bl PlaySE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B76B8 - - thumb_func_start sub_80B7704 -sub_80B7704: @ 80B7704 - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r5, r2, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - ldrh r0, [r4, 0xA] - negs r2, r0 - strh r2, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r1, r0, 0x1 - strh r1, [r4, 0xC] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x11 - bgt _080B773E - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - bne _080B7750 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x3 - bgt _080B7750 - lsls r0, r2, 1 - b _080B774E -_080B773E: - movs r0, 0x4 - ands r1, r0 - cmp r1, 0 - bne _080B7750 - lsls r0, r2, 16 - cmp r0, 0 - ble _080B7750 - asrs r0, 17 -_080B774E: - strh r0, [r4, 0xA] -_080B7750: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x6 - ble _080B779C - adds r0, r5, 0 - adds r0, 0x29 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r2, r1, 17 - negs r2, r2 - movs r7, 0x26 - ldrsh r3, [r5, r7] - movs r7, 0x22 - ldrsh r0, [r5, r7] - adds r0, r1 - ldr r1, =gSpriteCoordOffsetY - movs r7, 0 - ldrsh r1, [r1, r7] - adds r0, r1 - asrs r2, 16 - adds r0, r2 - cmn r3, r0 - ble _080B7798 - ldrh r0, [r5, 0x26] - ldrh r1, [r4, 0xE] - subs r0, r1 - strh r0, [r5, 0x26] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x7 - bgt _080B779C - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080B779C - .pool -_080B7798: - movs r0, 0x1 - strh r0, [r4, 0x10] -_080B779C: - ldrh r2, [r4, 0x12] - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B77DA - movs r7, 0x26 - ldrsh r1, [r5, r7] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080B77DA - adds r0, r2, 0x1 - strh r0, [r4, 0x12] - ldrb r0, [r6, 0x3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r6, 0x3] - ldrb r1, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x5] - adds r2, r5, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] -_080B77DA: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B77F0 - movs r7, 0x10 - ldrsh r0, [r4, r7] - cmp r0, 0 - beq _080B77F0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B77F0: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B7704 - - thumb_func_start sub_80B77F8 -sub_80B77F8: @ 80B77F8 - push {r4,lr} - adds r4, r0, 0 - bl music_something - bl sub_80AF0B4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B77F8 - - thumb_func_start sub_80B7814 -sub_80B7814: @ 80B7814 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B784C - bl sub_80859A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B784C - bl warp_in - ldr r1, =gFieldCallback - ldr r0, =mapldr_080851BC - str r0, [r1] - ldr r0, =CB2_LoadMap - bl SetMainCallback2 - ldr r0, =sub_80B75F0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B784C: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B7814 - - thumb_func_start mapldr_080851BC -mapldr_080851BC: @ 80B7868 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl ScriptContext2_Enable - ldr r0, =gFieldCallback - movs r1, 0 - str r1, [r0] - ldr r0, =sub_80B7890 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end mapldr_080851BC - - thumb_func_start sub_80B7890 -sub_80B7890: @ 80B7890 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, =gUnknown_0855C450 - ldr r2, =gTasks - ldr r5, =gPlayerAvatar - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_080B78A4: - movs r0, 0x8 - ldrsh r3, [r4, r0] - lsls r3, 2 - adds r3, r6 - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gMapObjects - adds r1, r0 - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _080B78A4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7890 - - thumb_func_start sub_80B78EC -sub_80B78EC: @ 80B78EC - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl CameraObjectReset2 - bl FreezeMapObjects - ldr r1, =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B78EC - - thumb_func_start sub_80B791C -sub_80B791C: @ 80B791C - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl sub_80ABDFC - lsls r0, 24 - cmp r0, 0 - beq _080B795C - ldr r1, =gFieldEffectArguments - movs r2, 0x10 - ldrsh r0, [r5, r2] - str r0, [r1] - movs r2, 0x12 - ldrsh r0, [r5, r2] - str r0, [r1, 0x4] - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r1, 0x8] - ldrb r0, [r6, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r1, 0xC] - movs r0, 0x31 - bl FieldEffectStart - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B795C: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B791C - - thumb_func_start sub_80B7968 -sub_80B7968: @ 80B7968 - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - movs r0, 0xA - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bls _080B79B0 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - ldrb r1, [r4, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - bl CameraObjectReset1 - movs r0, 0xAF - bl PlaySE - movs r0, 0x4 - bl sub_8093514 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim -_080B79B0: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B7968 - - thumb_func_start sub_80B79BC -sub_80B79BC: @ 80B79BC - push {lr} - adds r0, r1, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B79E6 - ldr r1, =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - bl ScriptContext2_Disable - bl UnfreezeMapObjects - ldr r0, =sub_80B7890 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B79E6: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B79BC - - thumb_func_start sub_80B79F4 -sub_80B79F4: @ 80B79F4 - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - adds r0, 0x84 - ldr r0, [r0] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r1, 0x3 - ldrb r3, [r4, 0xC] - ands r3, r1 - lsls r3, 2 - ldrb r4, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B79F4 - - thumb_func_start sub_80B7A58 -sub_80B7A58: @ 80B7A58 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B7A70 - adds r0, r2, 0 - movs r1, 0x32 - bl FieldEffectStop -_080B7A70: - pop {r0} - bx r0 - thumb_func_end sub_80B7A58 - - thumb_func_start sub_80B7A74 -sub_80B7A74: @ 80B7A74 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =sub_80B7A8C - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7A74 - - thumb_func_start sub_80B7A8C -sub_80B7A8C: @ 80B7A8C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, =gUnknown_0855C460 - ldr r2, =gTasks - ldr r5, =gPlayerAvatar - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_080B7AA0: - movs r0, 0x8 - ldrsh r3, [r4, r0] - lsls r3, 2 - adds r3, r6 - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gMapObjects - adds r1, r0 - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _080B7AA0 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7A8C - - thumb_func_start sub_80B7AE8 -sub_80B7AE8: @ 80B7AE8 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl FreezeMapObjects - bl CameraObjectReset2 - ldr r1, =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrb r0, [r4, 0x3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4, 0x3] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B7AE8 - - thumb_func_start sub_80B7B18 -sub_80B7B18: @ 80B7B18 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B7B8C - ldrh r1, [r5, 0xA] - movs r2, 0xA - ldrsh r0, [r5, r2] - cmp r0, 0x3 - ble _080B7B6C - ldr r1, =gFieldEffectArguments - movs r2, 0x10 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r2, 0x12 - ldrsh r0, [r4, r2] - str r0, [r1, 0x4] - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r1, 0x8] - ldrb r0, [r6, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r1, 0xC] - movs r0, 0x31 - bl FieldEffectStart - strh r0, [r5, 0xA] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080B7B8C - .pool -_080B7B6C: - adds r0, r1, 0x1 - strh r0, [r5, 0xA] - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetStepInPlaceDelay4AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - movs r0, 0x27 - bl PlaySE -_080B7B8C: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80B7B18 - - thumb_func_start sub_80B7B94 -sub_80B7B94: @ 80B7B94 - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - ldr r2, =gSprites - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x2 - bne _080B7BBE - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_080B7BBE: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B7B94 - - thumb_func_start sub_80B7BCC -sub_80B7BCC: @ 80B7BCC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x31 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080B7BEA - bl music_something - bl sub_80AF0B4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B7BEA: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B7BCC - - thumb_func_start sub_80B7BF4 -sub_80B7BF4: @ 80B7BF4 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B7C2C - bl sub_80859A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B7C2C - bl warp_in - ldr r1, =gFieldCallback - ldr r0, =sub_80B6B68 - str r0, [r1] - ldr r0, =CB2_LoadMap - bl SetMainCallback2 - ldr r0, =sub_80B7A8C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B7C2C: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B7BF4 - - thumb_func_start sub_80B7C48 -sub_80B7C48: @ 80B7C48 - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - adds r0, 0x80 - ldr r0, [r0] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r1, 0x3 - ldrb r3, [r4, 0xC] - ands r3, r1 - lsls r3, 2 - ldrb r4, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B7C48 - - thumb_func_start sub_80B7CAC -sub_80B7CAC: @ 80B7CAC - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B7CC4 - adds r0, r2, 0 - movs r1, 0x31 - bl FieldEffectStop -_080B7CC4: - pop {r0} - bx r0 - thumb_func_end sub_80B7CAC - - thumb_func_start sub_80B7CC8 -sub_80B7CC8: @ 80B7CC8 - push {lr} - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r0, =sub_80B7CE4 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7CC8 - - thumb_func_start sub_80B7CE4 -sub_80B7CE4: @ 80B7CE4 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_0855C474 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7CE4 - - thumb_func_start sub_80B7D14 -sub_80B7D14: @ 80B7D14 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x40 - strh r0, [r4, 0x24] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7D14 - - thumb_func_start sub_80B7D34 -sub_80B7D34: @ 80B7D34 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, =gUnknown_0855C47C - mov r0, sp - movs r2, 0x5 - bl memcpy - ldrh r1, [r4, 0x24] - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B7D60 - subs r0, r1, 0x1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080B7D60 - bl music_something - bl sub_80AF0B4 -_080B7D60: - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080B7D86 - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B7E40 -_080B7D86: - movs r1, 0x24 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B7DF8 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B7DF8 - bl sub_80859A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B7DF8 - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetDirection - bl sub_8084E14 - bl warp_in - ldr r1, =gFieldCallback - ldr r0, =mapldr_080859D4 - str r0, [r1] - ldr r0, =CB2_LoadMap - bl SetMainCallback2 - ldr r0, =sub_80B7CE4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - b _080B7E40 - .pool -_080B7DF8: - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B7E0C - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _080B7E40 -_080B7E0C: - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r0, [r0] - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0xB - bgt _080B7E34 - adds r0, r1, 0x1 - strh r0, [r4, 0xC] -_080B7E34: - ldrh r1, [r4, 0xC] - lsls r1, 16 - asrs r1, 18 - movs r0, 0x8 - asrs r0, r1 - strh r0, [r4, 0xA] -_080B7E40: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B7D34 - - thumb_func_start mapldr_080859D4 -mapldr_080859D4: @ 80B7E48 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r1, =gFieldCallback - movs r0, 0 - str r0, [r1] - ldr r2, =gMapObjects - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - ldr r0, =sub_80B7E94 - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end mapldr_080859D4 - - thumb_func_start sub_80B7E94 -sub_80B7E94: @ 80B7E94 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_0855C484 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7E94 - - thumb_func_start sub_80B7EC4 -sub_80B7EC4: @ 80B7EC4 - push {r4,lr} - adds r4, r0, 0 - bl sub_80ABDFC - lsls r0, 24 - cmp r0, 0 - beq _080B7EE2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] -_080B7EE2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7EC4 - - thumb_func_start sub_80B7EE8 -sub_80B7EE8: @ 80B7EE8 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r1, =gUnknown_0855C47C - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r6, r0, r1 - ldrh r1, [r5, 0xA] - movs r2, 0xA - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080B7F1A - subs r0, r1, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _080B7FAC -_080B7F1A: - adds r0, r6, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080B7F32 - adds r0, r6, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B7FC0 -_080B7F32: - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x1F - ble _080B7F7C - movs r2, 0x26 - ldrsh r4, [r5, r2] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _080B7F7C - ldrb r1, [r6, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r6, 0x1] - bl ScriptContext2_Disable - bl UnfreezeMapObjects - ldr r0, =sub_80B7E94 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - b _080B7FC0 - .pool -_080B7F7C: - ldrb r0, [r6, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r0, [r0] - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl FieldObjectSetSpecialAnim - ldrh r1, [r5, 0xC] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0x1F - bgt _080B7FA4 - adds r0, r1, 0x1 - strh r0, [r5, 0xC] -_080B7FA4: - ldrh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 18 - strh r0, [r5, 0xA] -_080B7FAC: - ldrb r2, [r6, 0x1] - lsls r1, r2, 26 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 5 - subs r0, 0x22 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x1] -_080B7FC0: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B7EE8 - - thumb_func_start sub_80B7FC8 -sub_80B7FC8: @ 80B7FC8 - push {lr} - ldr r0, =sub_80B7FDC - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7FC8 - - thumb_func_start sub_80B7FDC -sub_80B7FDC: @ 80B7FDC - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_0855C48C - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B7FDC - - thumb_func_start sub_80B800C -sub_80B800C: @ 80B800C - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - bl FreezeMapObjects - bl CameraObjectReset2 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B800C - - thumb_func_start sub_80B8034 -sub_80B8034: @ 80B8034 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, =gUnknown_0855C47C - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B8066 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _080B8080 -_080B8066: - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r5, 0 - bl FieldObjectTurn - movs r0, 0x8 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_080B8080: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x7 - ble _080B80AE - movs r2, 0x26 - ldrsh r1, [r4, r2] - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - cmp r1, r0 - bne _080B80AE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x4 - strh r0, [r4, 0xA] - movs r0, 0x8 - strh r0, [r4, 0xC] - movs r0, 0x1 - strh r0, [r4, 0xE] - movs r0, 0x2D - bl PlaySE -_080B80AE: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8034 - - thumb_func_start sub_80B80C4 -sub_80B80C4: @ 80B80C4 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, =gUnknown_0855C47C - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r2, =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r3, r0, r1 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bgt _080B810E - movs r0, 0x4 - strh r0, [r4, 0xA] - ldrb r0, [r3, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r3, 0 - bl FieldObjectTurn -_080B810E: - ldrh r0, [r5, 0x22] - ldrh r1, [r4, 0xE] - subs r0, r1 - strh r0, [r5, 0x22] - ldrh r1, [r4, 0xE] - ldrh r2, [r4, 0x10] - adds r0, r1, r2 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bgt _080B813A - movs r0, 0x4 - strh r0, [r4, 0xC] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x7 - bgt _080B813A - lsls r0, r1, 1 - strh r0, [r4, 0xE] -_080B813A: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - ble _080B8168 - ldrb r1, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x5] - adds r2, r5, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _080B8168 - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] -_080B8168: - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0xA7 - ble _080B817E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl music_something - bl sub_80AF0B4 -_080B817E: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B80C4 - - thumb_func_start sub_80B8198 -sub_80B8198: @ 80B8198 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B81E6 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B81B8 - bl sub_81BE72C - movs r0, 0x1 - strh r0, [r4, 0x12] -_080B81B8: - bl sub_80859A0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B81E6 - bl Overworld_SetWarpDestToLastHealLoc - bl warp_in - ldr r0, =CB2_LoadMap - bl SetMainCallback2 - ldr r1, =gFieldCallback - ldr r0, =mapldr_08085D88 - str r0, [r1] - ldr r0, =sub_80B7FDC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B81E6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8198 - - thumb_func_start mapldr_08085D88 -mapldr_08085D88: @ 80B8200 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r1, =gFieldCallback - movs r0, 0 - str r0, [r1] - ldr r2, =gMapObjects - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - bl CameraObjectReset2 - ldr r0, =sub_80B8250 - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end mapldr_08085D88 - - thumb_func_start sub_80B8250 -sub_80B8250: @ 80B8250 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_0855C49C - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8250 - - thumb_func_start sub_80B8280 -sub_80B8280: @ 80B8280 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_80ABDFC - lsls r0, 24 - cmp r0, 0 - beq _080B82F6 - ldr r5, =gPlayerAvatar - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r0, r2, 0 - adds r0, 0x29 - movs r4, 0 - ldrsb r4, [r0, r4] - lsls r0, r4, 17 - negs r0, r0 - ldrh r1, [r2, 0x22] - ldr r3, =gSpriteCoordOffsetY - adds r1, r4 - ldrh r3, [r3] - adds r1, r3 - asrs r0, 16 - adds r0, r1 - negs r0, r0 - strh r0, [r2, 0x26] - ldr r3, =gMapObjects - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r3, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r3 - strb r0, [r1, 0x1] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - movs r0, 0x8 - strh r0, [r6, 0xA] - movs r0, 0x1 - strh r0, [r6, 0xC] - adds r2, 0x42 - ldrb r0, [r2] - lsrs r0, 6 - strh r0, [r6, 0x24] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x26] - movs r0, 0x2D - bl PlaySE -_080B82F6: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8280 - - thumb_func_start sub_80B830C -sub_80B830C: @ 80B830C - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, =gUnknown_0855C47C - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r2, =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r6, r0, r1 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - negs r1, r1 - cmp r0, r1 - blt _080B8384 - ldrh r1, [r4, 0x22] - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B83AA - adds r0, r1, 0x1 - strh r0, [r4, 0x22] - ldrb r0, [r6] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r6] - ldrh r1, [r4, 0x24] - adds r3, r5, 0 - adds r3, 0x42 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080B83AA - .pool -_080B8384: - ldrb r1, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x5] - adds r2, r5, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _080B83AA - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] -_080B83AA: - ldrh r2, [r5, 0x26] - movs r3, 0x26 - ldrsh r1, [r5, r3] - movs r0, 0x30 - negs r0, r0 - cmp r1, r0 - blt _080B83CE - ldrh r1, [r4, 0xA] - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0x1 - ble _080B83CE - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080B83CE - subs r0, r1, 0x1 - strh r0, [r4, 0xA] -_080B83CE: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - movs r7, 0 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _080B83F0 - movs r0, 0x4 - strh r0, [r4, 0xC] - ldrb r0, [r6, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r6, 0 - bl FieldObjectTurn -_080B83F0: - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r0, 0 - blt _080B8406 - strh r7, [r5, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - strh r0, [r4, 0xA] - strh r7, [r4, 0xC] -_080B8406: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B830C - - thumb_func_start sub_80B8410 -sub_80B8410: @ 80B8410 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, =gUnknown_0855C47C - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _080B8484 - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r5, 0 - bl FieldObjectTurn - movs r0, 0x8 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080B8484 - movs r0, 0x24 - ldrsh r1, [r4, r0] - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - cmp r1, r0 - bne _080B8484 - bl ScriptContext2_Disable - bl CameraObjectReset1 - bl UnfreezeMapObjects - ldr r0, =sub_80B8250 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B8484: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8410 - - thumb_func_start sub_80B849C -sub_80B849C: @ 80B849C - push {r4,lr} - bl Overworld_GetMapTypeOfSaveblockLocation - lsls r0, 24 - lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B84BC - ldr r0, =sub_80B8554 - b _080B84BE - .pool -_080B84BC: - ldr r0, =sub_80B88B4 -_080B84BE: - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, =gFieldEffectArguments - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl sub_80B8C60 - ldr r2, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x26] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B849C - - thumb_func_start sub_80B84F8 -sub_80B84F8: @ 80B84F8 - push {r4-r6,lr} - ldr r5, =gFieldEffectArguments - ldr r0, [r5] - movs r6, 0x80 - lsls r6, 24 - ands r6, r0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - str r0, [r5] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [r5, 0x4] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [r5, 0x8] - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - movs r0, 0x6 - bl FieldEffectStart - movs r0, 0x3B - bl FieldEffectActiveListRemove - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B84F8 - - thumb_func_start sub_80B8554 -sub_80B8554: @ 80B8554 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_0855C4A8 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8554 - - thumb_func_start sub_80B8584 -sub_80B8584: @ 80B8584 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =0x04000048 - ldrh r0, [r0] - strh r0, [r4, 0x1E] - ldr r0, =0x0400004a - ldrh r0, [r0] - strh r0, [r4, 0x20] - adds r0, r4, 0 - adds r0, 0x22 - ldr r1, =gMain - ldr r1, [r1, 0xC] - bl StoreWordInTwoHalfwords - ldr r1, =0x0000f0f1 - strh r1, [r4, 0xA] - ldr r0, =0x00005051 - strh r0, [r4, 0xC] - movs r0, 0x3F - strh r0, [r4, 0xE] - movs r0, 0x3E - strh r0, [r4, 0x10] - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x44 - bl SetGpuReg - ldrh r1, [r4, 0xE] - movs r0, 0x48 - bl SetGpuReg - ldrh r1, [r4, 0x10] - movs r0, 0x4A - bl SetGpuReg - ldr r0, =sub_80B880C - bl SetVBlankCallback - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8584 - - thumb_func_start sub_80B85F8 -sub_80B85F8: @ 80B85F8 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r0, =0x04000008 - ldrh r1, [r0] - lsrs r1, 2 - lsls r1, 30 - lsrs r1, 16 - ldrh r4, [r0] - lsrs r4, 8 - lsls r4, 27 - lsrs r4, 16 - ldr r0, =gUnknown_0855AE50 - movs r5, 0xC0 - lsls r5, 19 - adds r1, r5 - movs r2, 0x80 - lsls r2, 1 - bl CpuSet - movs r0, 0 - str r0, [sp] - adds r5, r4, r5 - ldr r2, =0x05000200 - mov r0, sp - adds r1, r5, 0 - bl CpuSet - ldr r0, =gUnknown_0855B050 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - adds r0, r4, 0 - bl sub_80B8874 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B85F8 - - thumb_func_start sub_80B8660 -sub_80B8660: @ 80B8660 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x12] - subs r0, 0x10 - strh r0, [r3, 0x12] - ldrh r6, [r3, 0xA] - ldrh r2, [r3, 0xC] - movs r7, 0xFF - lsrs r1, r6, 8 - subs r1, 0x10 - lsls r1, 16 - lsrs r0, r2, 8 - subs r0, 0x2 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r7, 0 - ands r0, r2 - adds r5, r0, 0x2 - lsrs r2, r1, 16 - cmp r1, 0 - bge _080B868C - movs r2, 0 -_080B868C: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0x27 - bgt _080B8696 - movs r4, 0x28 -_080B8696: - cmp r5, 0x78 - ble _080B869C - movs r5, 0x78 -_080B869C: - lsls r2, 16 - asrs r2, 16 - lsls r1, r2, 8 - adds r0, r7, 0 - ands r0, r6 - orrs r1, r0 - strh r1, [r3, 0xA] - lsls r0, r4, 16 - asrs r4, r0, 16 - lsls r0, r4, 8 - adds r1, r5, 0 - orrs r0, r1 - strh r0, [r3, 0xC] - cmp r2, 0 - bne _080B86DC - cmp r4, 0x28 - bne _080B86DC - cmp r1, 0x78 - bne _080B86DC - ldr r2, =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_80B8CC0 - str r1, [r0] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_080B86DC: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8660 - - thumb_func_start sub_80B86EC -sub_80B86EC: @ 80B86EC - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x12] - subs r0, 0x10 - strh r0, [r3, 0x12] - ldr r2, =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3C - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080B8712 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_080B8712: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B86EC - - thumb_func_start sub_80B871C -sub_80B871C: @ 80B871C - push {r4,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x12] - subs r0, 0x10 - strh r0, [r3, 0x12] - ldrh r2, [r3, 0xC] - lsls r1, r2, 16 - movs r0, 0xFF - asrs r1, 24 - adds r1, 0x6 - lsls r1, 16 - ands r0, r2 - subs r0, 0x6 - lsls r0, 16 - lsrs r2, r0, 16 - lsrs r4, r1, 16 - asrs r1, 16 - cmp r1, 0x50 - ble _080B8744 - movs r4, 0x50 -_080B8744: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x50 - bgt _080B874E - movs r2, 0x51 -_080B874E: - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r0, 8 - lsls r2, 16 - asrs r2, 16 - orrs r1, r2 - strh r1, [r3, 0xC] - cmp r0, 0x50 - bne _080B876A - cmp r2, 0x51 - bne _080B876A - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_080B876A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B871C - - thumb_func_start sub_80B8770 -sub_80B8770: @ 80B8770 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, =0x04000008 - ldrh r1, [r0] - lsrs r1, 8 - lsls r1, 27 - lsrs r1, 16 - movs r0, 0 - str r0, [sp] - movs r0, 0xC0 - lsls r0, 19 - adds r1, r0 - ldr r2, =0x05000200 - mov r0, sp - bl CpuSet - movs r0, 0xF1 - strh r0, [r4, 0xA] - movs r0, 0xA1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x1E] - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8770 - - thumb_func_start overworld_bg_setup_2 -overworld_bg_setup_2: @ 80B87B8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r0, 0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl SetVBlankCallback - bl sub_8197200 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - bl sub_80B6070 - movs r0, 0x6 - bl FieldEffectActiveListRemove - ldr r0, =sub_80B8554 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end overworld_bg_setup_2 - - thumb_func_start sub_80B880C -sub_80B880C: @ 80B880C - push {r4,lr} - sub sp, 0x4 - ldr r0, =sub_80B8554 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl _call_via_r0 - ldrh r1, [r4, 0xA] - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x44 - bl SetGpuReg - ldrh r1, [r4, 0xE] - movs r0, 0x48 - bl SetGpuReg - ldrh r1, [r4, 0x10] - movs r0, 0x4A - bl SetGpuReg - ldrh r1, [r4, 0x12] - movs r0, 0x10 - bl SetGpuReg - ldrh r1, [r4, 0x14] - movs r0, 0x12 - bl SetGpuReg - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B880C - - thumb_func_start sub_80B8874 -sub_80B8874: @ 80B8874 - push {r4,r5,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0x06000140 - adds r2, r0, r1 - movs r1, 0 - ldr r5, =gUnknown_0855B070 - movs r0, 0xF0 - lsls r0, 8 - adds r4, r0, 0 - ldr r3, =0x0000013f -_080B888A: - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - orrs r0, r4 - strh r0, [r2] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, 0x2 - cmp r1, r3 - bls _080B888A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8874 - - thumb_func_start sub_80B88B4 -sub_80B88B4: @ 80B88B4 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_0855C4C4 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B88B4 - - thumb_func_start sub_80B88E4 -sub_80B88E4: @ 80B88E4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0xA] - movs r0, 0x10 - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x12 - bl SetGpuReg - adds r0, r4, 0 - adds r0, 0x22 - ldr r1, =gMain - ldr r1, [r1, 0xC] - bl StoreWordInTwoHalfwords - ldr r0, =sub_80B8AE0 - bl SetVBlankCallback - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B88E4 - - thumb_func_start sub_80B8920 -sub_80B8920: @ 80B8920 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r6, r0, 0 - ldr r0, =0x04000008 - ldrh r1, [r0] - lsrs r1, 2 - lsls r1, 30 - lsrs r1, 16 - ldrh r4, [r0] - lsrs r4, 8 - lsls r4, 27 - lsrs r4, 16 - movs r0, 0 - mov r8, r0 - strh r4, [r6, 0x20] - ldr r0, =gUnknown_0855B2F0 - movs r5, 0xC0 - lsls r5, 19 - adds r1, r5 - movs r2, 0x40 - bl CpuSet - mov r0, r8 - str r0, [sp] - adds r4, r5 - ldr r2, =0x05000200 - mov r0, sp - adds r1, r4, 0 - bl CpuSet - ldr r0, =gUnknown_0855B370 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8920 - - thumb_func_start sub_80B898C -sub_80B898C: @ 80B898C - push {r4,lr} - adds r4, r0, 0 - bl sub_80B8B38 - lsls r0, 24 - cmp r0, 0 - beq _080B89C4 - movs r0, 0x42 - movs r1, 0xF0 - bl SetGpuReg - ldr r1, =0x00002878 - movs r0, 0x46 - bl SetGpuReg - ldr r2, =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_80B8CC0 - str r1, [r0] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B89C4: - adds r0, r4, 0 - bl sub_80B8B28 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B898C - - thumb_func_start sub_80B89DC -sub_80B89DC: @ 80B89DC - push {r4,lr} - adds r4, r0, 0 - bl sub_80B8B28 - ldr r2, =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3C - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080B8A00 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B8A00: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B89DC - - thumb_func_start sub_80B8A0C -sub_80B8A0C: @ 80B8A0C - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_80B8B28 - ldrh r1, [r4, 0xA] - movs r0, 0x7 - ands r0, r1 - movs r1, 0 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - ldr r5, =0x0000ffff - movs r0, 0x42 - adds r1, r5, 0 - bl SetGpuReg - movs r0, 0x46 - adds r1, r5, 0 - bl SetGpuReg - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8A0C - - thumb_func_start sub_80B8A44 -sub_80B8A44: @ 80B8A44 - push {r4,lr} - adds r4, r0, 0 - bl sub_80B8B28 - adds r0, r4, 0 - bl sub_80B8BF0 - lsls r0, 24 - cmp r0, 0 - beq _080B8A5E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B8A5E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B8A44 - - thumb_func_start sub_80B8A64 -sub_80B8A64: @ 80B8A64 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, =0x04000008 - ldrh r1, [r0] - lsrs r1, 8 - lsls r1, 27 - lsrs r1, 16 - movs r0, 0 - str r0, [sp] - movs r0, 0xC0 - lsls r0, 19 - adds r1, r0 - ldr r2, =0x05000200 - mov r0, sp - bl CpuSet - adds r0, r4, 0 - adds r0, 0x22 - add r1, sp, 0x4 - bl LoadWordFromTwoHalfwords - ldr r0, [sp, 0x4] - bl SetVBlankCallback - bl sub_8197200 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - bl sub_80B6070 - movs r0, 0x6 - bl FieldEffectActiveListRemove - ldr r0, =sub_80B88B4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8A64 - - thumb_func_start sub_80B8AE0 -sub_80B8AE0: @ 80B8AE0 - push {r4,lr} - sub sp, 0x4 - ldr r0, =sub_80B88B4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl _call_via_r0 - ldrh r1, [r4, 0xA] - movs r0, 0x10 - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x12 - bl SetGpuReg - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8AE0 - - thumb_func_start sub_80B8B28 -sub_80B8B28: @ 80B8B28 - ldrh r1, [r0, 0xA] - subs r1, 0x10 - strh r1, [r0, 0xA] - ldrh r1, [r0, 0xE] - adds r1, 0x10 - strh r1, [r0, 0xE] - bx lr - thumb_func_end sub_80B8B28 - - thumb_func_start sub_80B8B38 -sub_80B8B38: @ 80B8B38 - 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, 0x10] - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0x1F - ble _080B8B54 - movs r0, 0x1 - b _080B8BD8 -_080B8B54: - ldrh r0, [r5, 0xE] - lsls r0, 16 - asrs r3, r0, 19 - movs r1, 0x1F - ands r3, r1 - movs r4, 0x10 - ldrsh r0, [r5, r4] - cmp r3, r0 - blt _080B8BD6 - movs r0, 0x20 - subs r3, r0, r3 - ands r3, r1 - subs r0, r2 - mov r12, r0 - mov r7, r12 - ands r7, r1 - mov r12, r7 - ldrh r0, [r5, 0x20] - ldr r1, =0x06000140 - adds r1, r0 - mov r8, r1 - movs r4, 0 - ldr r7, =gUnknown_0855B390 - mov r10, r7 - movs r0, 0xF0 - lsls r0, 8 - mov r9, r0 - adds r1, r3, 0x1 - movs r0, 0x1F - ands r1, r0 - str r1, [sp] - mov r6, r12 - adds r6, 0x1 - ands r6, r0 -_080B8B98: - lsls r1, r4, 5 - adds r2, r1, r3 - lsls r2, 1 - add r2, r8 - mov r7, r12 - adds r0, r7, r1 - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - mov r7, r9 - orrs r0, r7 - strh r0, [r2] - ldr r0, [sp] - adds r2, r1, r0 - lsls r2, 1 - add r2, r8 - adds r1, r6, r1 - lsls r1, 1 - add r1, r10 - ldrh r0, [r1] - mov r1, r9 - orrs r0, r1 - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x9 - bls _080B8B98 - ldrh r0, [r5, 0x10] - adds r0, 0x2 - strh r0, [r5, 0x10] -_080B8BD6: - movs r0, 0 -_080B8BD8: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B8B38 - - thumb_func_start sub_80B8BF0 -sub_80B8BF0: @ 80B8BF0 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0x1F - ble _080B8C00 - movs r0, 0x1 - b _080B8C54 -_080B8C00: - ldrh r0, [r5, 0xE] - lsls r0, 16 - asrs r0, 19 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r2, r0 - blt _080B8C52 - ldrh r0, [r5, 0xA] - lsls r0, 16 - asrs r2, r0, 19 - movs r0, 0x1F - ands r2, r0 - ldrh r0, [r5, 0x20] - ldr r1, =0x06000140 - adds r6, r0, r1 - movs r3, 0 - movs r0, 0xF0 - lsls r0, 8 - adds r7, r0, 0 - adds r4, r2, 0x1 - movs r0, 0x1F - ands r4, r0 -_080B8C30: - lsls r0, r3, 5 - adds r1, r0, r2 - lsls r1, 1 - adds r1, r6 - strh r7, [r1] - adds r0, r4 - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x9 - bls _080B8C30 - ldrh r0, [r5, 0x10] - adds r0, 0x2 - strh r0, [r5, 0x10] -_080B8C52: - movs r0, 0 -_080B8C54: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B8BF0 - - thumb_func_start sub_80B8C60 -sub_80B8C60: @ 80B8C60 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - movs r5, 0x80 - lsls r5, 24 - ands r5, r6 - lsrs r5, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r0, =0x7fffffff - ands r6, r0 - lsls r0, r6, 16 - lsrs r0, 16 - movs r3, 0xA0 - lsls r3, 1 - movs r4, 0x50 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - bl sub_80B5FE8 - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r1, =gSprites - adds r2, r1 - ldr r1, =SpriteCallbackDummy - str r1, [r2, 0x1C] - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - strb r1, [r2, 0x5] - strh r6, [r2, 0x2E] - strh r5, [r2, 0x3A] - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B8C60 - - thumb_func_start sub_80B8CC0 -sub_80B8CC0: @ 80B8CC0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x20] - subs r0, 0x14 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - bgt _080B8D00 - movs r0, 0x78 - strh r0, [r1, 0x20] - movs r0, 0x1E - strh r0, [r1, 0x30] - ldr r0, =sub_80B8D04 - str r0, [r1, 0x1C] - movs r2, 0x3A - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080B8CF8 - ldrh r0, [r1, 0x2E] - movs r1, 0 - movs r2, 0x7D - movs r3, 0xA - bl PlayCry2 - b _080B8D00 - .pool -_080B8CF8: - ldrh r0, [r1, 0x2E] - movs r1, 0 - bl PlayCry1 -_080B8D00: - pop {r0} - bx r0 - thumb_func_end sub_80B8CC0 - - thumb_func_start sub_80B8D04 -sub_80B8D04: @ 80B8D04 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080B8D18 - ldr r0, =sub_80B8D20 - str r0, [r1, 0x1C] -_080B8D18: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8D04 - - thumb_func_start sub_80B8D20 -sub_80B8D20: @ 80B8D20 - push {lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x20] - movs r0, 0x20 - ldrsh r1, [r2, r0] - movs r0, 0x40 - negs r0, r0 - cmp r1, r0 - bge _080B8D38 - movs r0, 0x1 - strh r0, [r2, 0x3C] - b _080B8D3E -_080B8D38: - adds r0, r3, 0 - subs r0, 0x14 - strh r0, [r2, 0x20] -_080B8D3E: - pop {r0} - bx r0 - thumb_func_end sub_80B8D20 - - thumb_func_start sub_80B8D44 -sub_80B8D44: @ 80B8D44 - push {lr} - ldr r0, =sub_80B8D84 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, =gFieldEffectArguments - ldr r0, [r0] - strh r0, [r1, 0x26] - bl Overworld_ClearSavedMusic - ldr r0, =0x0000016d - bl Overworld_ChangeMusicTo - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B8D44 - - thumb_func_start sub_80B8D84 -sub_80B8D84: @ 80B8D84 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_0855C4E0 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8D84 - - thumb_func_start sub_80B8DB4 -sub_80B8DB4: @ 80B8DB4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - bl ScriptContext2_Enable - bl FreezeMapObjects - ldr r5, =gPlayerAvatar - movs r0, 0x1 - strb r0, [r5, 0x6] - movs r0, 0x8 - bl SetPlayerAvatarStateMask - adds r6, r4, 0 - adds r6, 0xA - movs r0, 0xC - adds r0, r4 - mov r8, r0 - adds r0, r6, 0 - mov r1, r8 - bl PlayerGetDestCoords - ldr r2, =gMapObjects - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - lsrs r0, 4 - adds r1, r6, 0 - mov r2, r8 - bl MoveCoords - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8DB4 - - thumb_func_start sub_80B8E14 -sub_80B8E14: @ 80B8E14 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080B8E3E - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B8E50 -_080B8E3E: - bl sub_808C114 - adds r0, r4, 0 - movs r1, 0x39 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080B8E50: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8E14 - - thumb_func_start sub_80B8E60 -sub_80B8E60: @ 80B8E60 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - cmp r0, 0 - beq _080B8E96 - ldr r2, =gFieldEffectArguments - movs r1, 0x26 - ldrsh r0, [r4, r1] - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r2] - movs r0, 0x3B - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B8E96: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8E60 - - thumb_func_start sub_80B8EA8 -sub_80B8EA8: @ 80B8EA8 - push {r4-r6,lr} - adds r6, r0, 0 - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080B8F12 - ldr r5, =gPlayerAvatar - ldrb r0, [r5, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gMapObjects - adds r4, r0 - movs r0, 0x3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetGraphicsId - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl sub_8093540 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldr r1, =gFieldEffectArguments - movs r2, 0xA - ldrsh r0, [r6, r2] - str r0, [r1] - movs r2, 0xC - ldrsh r0, [r6, r2] - str r0, [r1, 0x4] - ldrb r0, [r5, 0x5] - str r0, [r1, 0x8] - movs r0, 0x8 - bl FieldEffectStart - strb r0, [r4, 0x1A] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_080B8F12: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8EA8 - - thumb_func_start sub_80B8F24 -sub_80B8F24: @ 80B8F24 - push {r4,r5,lr} - ldr r5, =gPlayerAvatar - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B8F84 - movs r0, 0 - strb r0, [r5, 0x6] - ldrb r1, [r5] - movs r0, 0xDF - ands r0, r1 - strb r0, [r5] - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetFaceDirectionAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldrb r0, [r4, 0x1A] - movs r1, 0x1 - bl sub_81555AC - bl UnfreezeMapObjects - bl ScriptContext2_Disable - movs r0, 0x9 - bl FieldEffectActiveListRemove - ldr r0, =sub_80B8D84 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B8F84: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B8F24 - - thumb_func_start sub_80B8F98 -sub_80B8F98: @ 80B8F98 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gFieldEffectObjectTemplatePointers - adds r0, 0x90 - ldr r0, [r0] - movs r2, 0x18 - negs r2, r2 - movs r1, 0x78 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, r0, 4 - add r1, r8 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - movs r2, 0xF - ands r0, r2 - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r2, 0 - strh r2, [r1, 0x2E] - strh r2, [r1, 0x30] - strh r2, [r1, 0x32] - ldr r0, =0x0000ffff - strh r0, [r1, 0x34] - ldrh r0, [r1, 0x22] - strh r0, [r1, 0x36] - strh r2, [r1, 0x38] - ldr r1, =0x00003e41 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x00000e0e - movs r0, 0x52 - bl SetGpuReg - ldr r1, =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r0, =gUnknown_0855B610 - movs r1, 0xC0 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x12 - movs r1, 0x78 - bl SetGpuReg - movs r4, 0x3 - ldr r7, =0x0600f800 - ldr r0, =0x0000bff4 - adds r6, r0, 0 -_080B901A: - movs r2, 0xC - lsls r0, r4, 1 - lsls r5, r4, 5 - adds r0, r4 - lsls r3, r0, 1 -_080B9024: - adds r0, r5, r2 - lsls r0, 1 - adds r0, r7 - adds r1, r2, r6 - adds r1, r3, r1 - adds r1, 0x1 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x11 - bls _080B9024 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xE - bls _080B901A - movs r0, 0 - ldr r5, =gUnknown_0855B630 -_080B904A: - movs r4, 0 - adds r7, r0, 0x1 - lsls r6, r0, 5 -_080B9050: - lsls r1, r4, 2 - adds r1, r6, r1 - ldr r0, =0x06008020 - adds r3, r1, r0 - adds r0, r1, 0x1 - adds r0, r5 - ldrb r2, [r0] - lsls r2, 8 - adds r0, r1, r5 - ldrb r0, [r0] - adds r0, r2 - strh r0, [r3] - ldr r0, =0x06008022 - adds r3, r1, r0 - adds r0, r1, 0x3 - adds r0, r5 - ldrb r2, [r0] - lsls r2, 8 - adds r1, 0x2 - adds r1, r5 - ldrb r0, [r1] - adds r0, r2 - strh r0, [r3] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _080B9050 - lsls r0, r7, 24 - lsrs r0, 24 - cmp r0, 0x59 - bls _080B904A - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B8F98 - - thumb_func_start sub_80B90CC -sub_80B90CC: @ 80B90CC - push {r4,lr} - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x68] - movs r1, 0x78 - movs r2, 0 - movs r3, 0x1 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, r4, 4 - adds r2, r4 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - ldrb r1, [r2, 0x5] - movs r0, 0xF - ands r0, r1 - movs r1, 0xD - negs r1, r1 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, =sub_80B9128 - str r0, [r2, 0x1C] - ldr r0, =gFieldEffectArguments - ldr r0, [r0] - strh r0, [r2, 0x30] - movs r0, 0x9E - bl PlaySE - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B90CC - - thumb_func_start sub_80B9128 -sub_80B9128: @ 80B9128 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x8C - bl Cos - movs r5, 0 - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x48 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B918A - movs r2, 0x30 - ldrsh r0, [r4, r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - subs r0, 0x8 - strh r0, [r1, 0x22] - strh r5, [r1, 0x24] - strh r5, [r1, 0x26] -_080B918A: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _080B919A - adds r0, r4, 0 - movs r1, 0x1E - bl FieldEffectStop -_080B919A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9128 - - thumb_func_start sub_80B91A4 -sub_80B91A4: @ 80B91A4 - push {lr} - ldr r0, =sub_80B91D4 - movs r1, 0xFE - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, =gFieldEffectArguments - ldr r0, [r0] - strh r0, [r1, 0xA] - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B91A4 - - thumb_func_start sub_80B91D4 -sub_80B91D4: @ 80B91D4 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_0855C4F4 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B91D4 - - thumb_func_start sub_80B9204 -sub_80B9204: @ 80B9204 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080B922E - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B924C -_080B922E: - ldrb r0, [r6] - strh r0, [r5, 0x26] - movs r0, 0x1 - strb r0, [r6, 0x6] - bl SetPlayerAvatarStateMask - bl sub_808C114 - adds r0, r4, 0 - movs r1, 0x39 - bl FieldObjectSetSpecialAnim - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080B924C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9204 - - thumb_func_start sub_80B925C -sub_80B925C: @ 80B925C - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B928C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r1, =gFieldEffectArguments - movs r2, 0xA - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, 0x3B - bl FieldEffectStart -_080B928C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B925C - - thumb_func_start sub_80B92A0 -sub_80B92A0: @ 80B92A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080B92E8 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrh r1, [r4, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080B92D8 - ldrb r0, [r5, 0x1A] - movs r1, 0x2 - bl sub_81555AC - ldrb r0, [r5, 0x1A] - movs r1, 0 - bl sub_81555D8 -_080B92D8: - bl sub_80B94C4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B92E8: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B92A0 - - thumb_func_start sub_80B92F8 -sub_80B92F8: @ 80B92F8 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl sub_80B9508 - lsls r0, 24 - cmp r0, 0 - beq _080B932C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x10 - strh r0, [r4, 0xC] - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - movs r1, 0x2 - bl FieldObjectSetSpecialAnim -_080B932C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B92F8 - - thumb_func_start sub_80B933C -sub_80B933C: @ 80B933C - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r2, r0, r1 - ldrh r1, [r4, 0xC] - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080B9362 - subs r0, r1, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _080B9380 -_080B9362: - adds r0, r2, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B9380 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x9E - bl PlaySE - ldrb r0, [r4, 0xA] - bl sub_80B9524 -_080B9380: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B933C - - thumb_func_start sub_80B9390 -sub_80B9390: @ 80B9390 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080B9406 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - movs r0, 0x3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetGraphicsId - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r6, =gSprites - adds r0, r6 - movs r1, 0x16 - bl StartSpriteAnim - ldrb r0, [r4, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - movs r1, 0x48 - bl FieldObjectSetSpecialAnim - ldrh r1, [r5, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080B93FC - ldrb r1, [r4, 0x1A] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite -_080B93FC: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - strh r0, [r5, 0xC] -_080B9406: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9390 - - thumb_func_start sub_80B9418 -sub_80B9418: @ 80B9418 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - ble _080B9464 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gMapObjects - adds r4, r0 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimActive - ldrb r1, [r4, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x2] - ldrb r0, [r5, 0xA] - ldrb r1, [r4, 0x4] - bl sub_80B9560 - bl CameraObjectReset2 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080B9464: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9418 - - thumb_func_start sub_80B9474 -sub_80B9474: @ 80B9474 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl sub_80B9508 - lsls r0, 24 - cmp r0, 0 - beq _080B948E - bl sub_80AF0B4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B948E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B9474 - - thumb_func_start sub_80B9494 -sub_80B9494: @ 80B9494 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B94B6 - movs r0, 0x1F - bl FieldEffectActiveListRemove - ldr r0, =sub_80B91D4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B94B6: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9494 - - thumb_func_start sub_80B94C4 -sub_80B94C4: @ 80B94C4 - push {lr} - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x68] - movs r1, 0xFF - movs r2, 0xB4 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r1, =gSprites - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - movs r3, 0xD - negs r3, r3 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - ldr r1, =sub_80B957C - str r1, [r2, 0x1C] - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B94C4 - - thumb_func_start sub_80B9508 -sub_80B9508: @ 80B9508 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bx lr - .pool - thumb_func_end sub_80B9508 - - thumb_func_start sub_80B9524 -sub_80B9524: @ 80B9524 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - ldr r0, =sub_80B963C - str r0, [r4, 0x1C] - movs r1, 0 - movs r0, 0x78 - strh r0, [r4, 0x20] - strh r1, [r4, 0x22] - strh r1, [r4, 0x24] - strh r1, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x2E - movs r2, 0x10 - bl memset - movs r0, 0x40 - strh r0, [r4, 0x3A] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9524 - - thumb_func_start sub_80B9560 -sub_80B9560: @ 80B9560 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - strh r1, [r2, 0x3A] - bx lr - .pool - thumb_func_end sub_80B9560 - - thumb_func_start sub_80B957C -sub_80B957C: @ 80B957C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B9628 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B95C0 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, =gUnknown_0855C548 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r0, 0x76 - strh r0, [r4, 0x20] - ldr r0, =0x0000ffd0 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x40 - strh r0, [r4, 0x30] - adds r0, 0xC0 - strh r0, [r4, 0x32] -_080B95C0: - ldrh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl Sin - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x32] - movs r0, 0x32 - ldrsh r1, [r4, r0] - ldr r0, =0x000007ff - cmp r1, r0 - bgt _080B95F6 - adds r0, r2, 0 - adds r0, 0x60 - strh r0, [r4, 0x32] -_080B95F6: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x81 - ble _080B9628 - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - lsrs r1, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcCenterToCornerVec -_080B9628: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B957C - - thumb_func_start sub_80B963C -sub_80B963C: @ 80B963C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x8C - bl Cos - movs r5, 0 - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x48 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x40 - beq _080B969A - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - subs r0, 0x8 - strh r0, [r1, 0x22] - strh r5, [r1, 0x24] - strh r5, [r1, 0x26] -_080B969A: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _080B96A6 - movs r0, 0x1 - strh r0, [r4, 0x3C] -_080B96A6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B963C - - thumb_func_start sub_80B96B0 -sub_80B96B0: @ 80B96B0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B9784 - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B96FA - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, =gUnknown_0855C548 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r0, 0x5E - strh r0, [r4, 0x20] - ldr r0, =0x0000ffe0 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0xF0 - strh r0, [r4, 0x30] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r4, 0x32] - movs r0, 0x80 - strh r0, [r4, 0x36] -_080B96FA: - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r2, r1 - ldrh r0, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - movs r0, 0xFF - ands r2, r0 - strh r2, [r4, 0x30] - movs r3, 0x30 - ldrsh r0, [r4, r3] - movs r1, 0x20 - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl Sin - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r2, 0x80 - lsls r2, 1 - cmp r0, r2 - ble _080B973C - ldrh r0, [r4, 0x36] - subs r0, r1, r0 - strh r0, [r4, 0x32] -_080B973C: - ldrh r1, [r4, 0x36] - movs r3, 0x36 - ldrsh r0, [r4, r3] - cmp r0, 0xFF - bgt _080B974C - adds r0, r1, 0 - adds r0, 0x18 - strh r0, [r4, 0x36] -_080B974C: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0xFF - bgt _080B9756 - strh r2, [r4, 0x32] -_080B9756: - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0x3B - ble _080B9784 - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080B9784: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B96B0 - - thumb_func_start sub_80B9794 -sub_80B9794: @ 80B9794 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80B9524 - ldr r1, =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80B96B0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9794 - - thumb_func_start sub_80B97C0 -sub_80B97C0: @ 80B97C0 - push {lr} - ldr r0, =sub_80B97D4 - movs r1, 0xFE - bl CreateTask - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B97C0 - - thumb_func_start sub_80B97D4 -sub_80B97D4: @ 80B97D4 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_0855C550 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B97D4 - - thumb_func_start sub_80B9804 -sub_80B9804: @ 80B9804 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080B982E - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B98A6 -_080B982E: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x11 - strh r0, [r5, 0xC] - ldrb r0, [r6] - strh r0, [r5, 0x26] - movs r0, 0x1 - strb r0, [r6, 0x6] - bl SetPlayerAvatarStateMask - ldrh r1, [r5, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080B9856 - ldrb r0, [r4, 0x1A] - movs r1, 0 - bl sub_81555AC -_080B9856: - movs r0, 0x3 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetGraphicsId - bl CameraObjectReset2 - adds r0, r4, 0 - movs r1, 0x3 - bl FieldObjectTurn - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0x16 - bl StartSpriteAnim - ldrb r1, [r4, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_80B94C4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - bl sub_80B9524 - ldrb r0, [r5, 0xA] - ldrb r1, [r4, 0x4] - bl sub_80B9560 -_080B98A6: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9804 - - thumb_func_start sub_80B98B8 -sub_80B98B8: @ 80B98B8 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0xC] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080B98D0 - subs r0, r1, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _080B9910 -_080B98D0: - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - ldrb r0, [r5, 0xA] - movs r1, 0x40 - bl sub_80B9560 - 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, 0x24] - strh r1, [r4, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - strh r1, [r5, 0xC] -_080B9910: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B98B8 - - thumb_func_start sub_80B9924 -sub_80B9924: @ 80B9924 - push {r4,lr} - sub sp, 0x24 - adds r4, r0, 0 - ldr r1, =gUnknown_0855C56C - mov r0, sp - movs r2, 0x24 - bl memcpy - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - movs r2, 0xC - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r1, 0x26] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _080B9962 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B9962: - add sp, 0x24 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9924 - - thumb_func_start sub_80B9978 -sub_80B9978: @ 80B9978 - push {r4-r6,lr} - adds r6, r0, 0 - ldrb r0, [r6, 0xA] - bl sub_80B9508 - lsls r0, 24 - cmp r0, 0 - beq _080B99DC - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r5, r0, 3 - adds r5, r0 - lsls r5, 2 - ldr r0, =gMapObjects - adds r5, r0 - ldrb r0, [r5, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - ldrb r1, [r5, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x1] - movs r0, 0x10 - ldrsh r1, [r5, r0] - movs r0, 0x12 - ldrsh r2, [r5, r0] - adds r0, r5, 0 - bl sub_808EB08 - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - bl sub_808C114 - adds r0, r5, 0 - movs r1, 0x39 - bl FieldObjectSetSpecialAnim - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_080B99DC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9978 - - thumb_func_start sub_80B99F0 -sub_80B99F0: @ 80B99F0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080B9A18 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldrb r0, [r4, 0xA] - bl sub_80B9794 -_080B9A18: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B99F0 - - thumb_func_start sub_80B9A28 -sub_80B9A28: @ 80B9A28 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl sub_80B9508 - lsls r0, 24 - cmp r0, 0 - beq _080B9A54 - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x10 - strh r0, [r4, 0xA] -_080B9A54: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9A28 - - thumb_func_start sub_80B9A60 -sub_80B9A60: @ 80B9A60 - push {r4-r7,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0xA] - subs r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _080B9ACA - ldr r6, =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - movs r7, 0 - ldrh r1, [r5, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080B9A94 - movs r7, 0x3 - ldrb r0, [r4, 0x1A] - movs r1, 0x1 - bl sub_81555AC -_080B9A94: - adds r0, r7, 0 - bl GetPlayerAvatarGraphicsIdByStateId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetGraphicsId - adds r0, r4, 0 - movs r1, 0x1 - bl FieldObjectTurn - ldrh r0, [r5, 0x26] - strb r0, [r6] - movs r0, 0 - strb r0, [r6, 0x6] - movs r0, 0x20 - bl FieldEffectActiveListRemove - ldr r0, =sub_80B97D4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080B9ACA: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9A60 - - thumb_func_start sub_80B9ADC -sub_80B9ADC: @ 80B9ADC - push {r4,lr} - sub sp, 0x4 - ldr r4, =gFieldEffectArguments - ldrb r0, [r4] - ldrb r1, [r4, 0x4] - ldrb r2, [r4, 0x8] - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080B9B2C - ldr r0, =sub_80B9BE8 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - mov r0, sp - ldrb r0, [r0] - strh r0, [r1, 0xC] - ldr r0, [r4] - strh r0, [r1, 0x14] - ldr r0, [r4, 0x4] - strh r0, [r1, 0x16] - ldr r0, [r4, 0x8] - strh r0, [r1, 0x18] - b _080B9B32 - .pool -_080B9B2C: - movs r0, 0x41 - bl FieldEffectActiveListRemove -_080B9B32: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B9ADC - - thumb_func_start sub_80B9B3C -sub_80B9B3C: @ 80B9B3C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B9B78 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080B9B7C - movs r0, 0 - strh r0, [r4, 0xC] - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B9B7C - subs r0, r1, 0x1 - b _080B9B7A - .pool -_080B9B78: - movs r0, 0x4 -_080B9B7A: - strh r0, [r4, 0xA] -_080B9B7C: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B9BB6 - movs r0, 0 - strh r0, [r4] - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B9BAC - ldrh r1, [r4, 0xA] - negs r1, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl SetCameraPanning - b _080B9BB6 -_080B9BAC: - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning -_080B9BB6: - bl UpdateCameraPanning - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B9BC8 - adds r0, r5, 0 - bl DestroyTask -_080B9BC8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B9B3C - - thumb_func_start sub_80B9BD0 -sub_80B9BD0: @ 80B9BD0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x16] - bx lr - .pool - thumb_func_end sub_80B9BD0 - - thumb_func_start sub_80B9BE8 -sub_80B9BE8: @ 80B9BE8 - 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, =gTasks + 0x8 - adds r4, r0 - bl InstallCameraPanAheadCallback - movs r0, 0 - bl SetCameraPanningCallback - ldr r1, =gUnknown_0855C590 - movs r2, 0x2 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl _call_via_r2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9BE8 - - thumb_func_start sub_80B9C28 -sub_80B9C28: @ 80B9C28 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =sub_80B9B3C - movs r1, 0x5A - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x58 - bl PlaySE - strh r4, [r5, 0xA] - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9C28 - - thumb_func_start sub_80B9C54 -sub_80B9C54: @ 80B9C54 - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - ldrh r0, [r7, 0x6] - adds r0, 0x1 - strh r0, [r7, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - ble _080B9CC2 - ldr r2, =gMapObjects - movs r1, 0x4 - ldrsh r0, [r7, r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - ldrb r0, [r1, 0x1] - movs r2, 0x20 - orrs r0, r2 - strb r0, [r1, 0x1] - ldr r6, =0x0000ffff - ldr r5, =0x00007fff - adds r0, r6, 0 - movs r1, 0x10 - adds r2, r5, 0 - bl BlendPalettes - str r5, [sp] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - adds r0, r4, 0 - bl sub_80B9D24 - movs r0, 0x57 - bl PlaySE - ldrb r0, [r7, 0xA] - bl sub_80B9BD0 - movs r0, 0 - strh r0, [r7, 0x6] - ldrh r0, [r7, 0x2] - adds r0, 0x1 - strh r0, [r7, 0x2] -_080B9CC2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9C54 - - thumb_func_start sub_80B9CDC -sub_80B9CDC: @ 80B9CDC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9D16 - ldr r0, =sub_80B9B3C - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _080B9D16 - bl InstallCameraPanAheadCallback - ldrb r0, [r4, 0xC] - ldrb r1, [r4, 0xE] - ldrb r2, [r4, 0x10] - bl RemoveFieldObjectByLocalIdAndMap - movs r0, 0x41 - bl FieldEffectActiveListRemove - adds r0, r5, 0 - bl DestroyTask -_080B9D16: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9CDC - - thumb_func_start sub_80B9D24 -sub_80B9D24: @ 80B9D24 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r0, =gUnknown_03005DEC - movs r1, 0 - ldrsh r2, [r0, r1] - movs r3, 0x20 - ldrsh r0, [r6, r3] - adds r2, r0 - movs r1, 0x24 - ldrsh r0, [r6, r1] - adds r2, r0 - ldr r0, =gUnknown_03005DE8 - movs r3, 0 - ldrsh r0, [r0, r3] - movs r3, 0x22 - ldrsh r1, [r6, r3] - adds r0, r1 - movs r3, 0x26 - ldrsh r1, [r6, r3] - adds r0, r1 - subs r0, 0x4 - movs r5, 0 - lsls r2, 16 - mov r8, r2 - lsls r7, r0, 16 -_080B9D5A: - ldr r0, =gUnknown_0855C5EC - mov r2, r8 - asrs r1, r2, 16 - asrs r2, r7, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080B9D96 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - strh r5, [r4, 0x2E] - ldrb r1, [r6, 0x5] - lsrs r1, 4 - lsls r1, 4 - ldrb r2, [r4, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] -_080B9D96: - adds r5, 0x1 - cmp r5, 0x3 - ble _080B9D5A - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9D24 - - thumb_func_start sub_80B9DB8 -sub_80B9DB8: @ 80B9DB8 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080B9DE4 - cmp r0, 0x1 - bgt _080B9DCE - cmp r0, 0 - beq _080B9DD8 - b _080B9E02 -_080B9DCE: - cmp r0, 0x2 - beq _080B9DF0 - cmp r0, 0x3 - beq _080B9DF6 - b _080B9E02 -_080B9DD8: - ldrh r0, [r1, 0x20] - subs r0, 0x10 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x22] - subs r0, 0xC - b _080B9E00 -_080B9DE4: - ldrh r0, [r1, 0x20] - adds r0, 0x10 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x22] - subs r0, 0xC - b _080B9E00 -_080B9DF0: - ldrh r0, [r1, 0x20] - subs r0, 0x10 - b _080B9DFA -_080B9DF6: - ldrh r0, [r1, 0x20] - adds r0, 0x10 -_080B9DFA: - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x22] - adds r0, 0xC -_080B9E00: - strh r0, [r1, 0x22] -_080B9E02: - ldrh r0, [r1, 0x20] - adds r0, 0x4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xF8 - bhi _080B9E1E - movs r0, 0x22 - ldrsh r2, [r1, r0] - movs r0, 0x4 - negs r0, r0 - cmp r2, r0 - blt _080B9E1E - cmp r2, 0xA4 - ble _080B9E24 -_080B9E1E: - adds r0, r1, 0 - bl DestroySprite -_080B9E24: - pop {r0} - bx r0 - thumb_func_end sub_80B9DB8 - - thumb_func_start sub_80B9E28 -sub_80B9E28: @ 80B9E28 - push {r4-r7,lr} - sub sp, 0x4 - ldr r7, =gFieldEffectArguments - ldrb r0, [r7] - ldrb r1, [r7, 0x4] - ldrb r2, [r7, 0x8] - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080B9EBE - mov r0, sp - ldrb r0, [r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gMapObjects - adds r4, r0 - movs r0, 0x10 - ldrsh r5, [r4, r0] - subs r5, 0x7 - movs r0, 0x12 - ldrsh r6, [r4, r0] - subs r6, 0x7 - ldr r1, [r7, 0xC] - subs r5, r1, r5 - lsls r5, 4 - ldr r2, [r7, 0x10] - subs r6, r2, r6 - lsls r6, 4 - adds r1, 0x7 - lsls r1, 16 - asrs r1, 16 - adds r2, 0x7 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - bl npc_coords_shift - ldr r0, =sub_80B9EDC - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldrb r0, [r4, 0x4] - strh r0, [r2, 0xA] - ldr r3, =gSprites - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x20] - adds r0, r5 - strh r0, [r2, 0xC] - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x22] - adds r0, r6 - strh r0, [r2, 0xE] - ldr r0, [r7, 0x14] - strh r0, [r2, 0x18] - mov r0, sp - ldrb r0, [r0] - strh r0, [r2, 0x1A] -_080B9EBE: - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B9E28 - - thumb_func_start sub_80B9EDC -sub_80B9EDC: @ 80B9EDC - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, =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, =gSprites - adds r6, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080B9F10 - cmp r0, 0x1 - beq _080B9F4E - b _080B9FAC - .pool -_080B9F10: - ldrh r0, [r6, 0x20] - lsls r0, 4 - strh r0, [r5, 0x8] - ldrh r0, [r6, 0x22] - lsls r0, 4 - strh r0, [r5, 0xA] - movs r2, 0x4 - ldrsh r0, [r5, r2] - lsls r0, 4 - movs r2, 0x8 - ldrsh r1, [r5, r2] - subs r0, r1 - movs r2, 0x10 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0xC] - movs r1, 0x6 - ldrsh r0, [r5, r1] - lsls r0, 4 - movs r2, 0xA - ldrsh r1, [r5, r2] - subs r0, r1 - movs r2, 0x10 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0xE] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080B9F4E: - ldrh r1, [r5, 0x10] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080B9F7C - subs r0, r1, 0x1 - strh r0, [r5, 0x10] - ldrh r1, [r5, 0xC] - ldrh r0, [r5, 0x8] - adds r1, r0 - strh r1, [r5, 0x8] - ldrh r0, [r5, 0xE] - ldrh r2, [r5, 0xA] - adds r0, r2 - strh r0, [r5, 0xA] - lsls r1, 16 - asrs r1, 20 - strh r1, [r6, 0x20] - ldrh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 20 - strh r0, [r6, 0x22] - b _080B9FAC -_080B9F7C: - movs r1, 0x12 - ldrsh r0, [r5, r1] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gMapObjects - adds r4, r0 - ldrh r0, [r5, 0x4] - strh r0, [r6, 0x20] - ldrh r0, [r5, 0x6] - strh r0, [r6, 0x22] - adds r0, r4, 0 - bl npc_coords_shift_still - ldrb r0, [r4] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x42 - bl FieldEffectActiveListRemove - adds r0, r7, 0 - bl DestroyTask -_080B9FAC: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B9EDC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index 754a8f7ff..77f8213b3 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -204,7 +204,7 @@ _0815405A: bl pal_patch_for_npc _0815406A: adds r0, r4, 0 - bl sub_80ABE18 + bl UpdateSpritePaletteWithWeather _08154070: pop {r4} pop {r0} @@ -227,7 +227,7 @@ npc_pal_op_A: @ 8154078 adds r1, r4, 0 bl pal_patch_for_npc adds r0, r4, 0 - bl sub_80ABE18 + bl UpdateSpritePaletteWithWeather _0815409C: pop {r4} pop {r0} diff --git a/asm/field_screen.s b/asm/field_screen.s index e3d48f882..e35c768dd 100644 --- a/asm/field_screen.s +++ b/asm/field_screen.s @@ -1764,8 +1764,8 @@ _080ABDE4: .pool thumb_func_end FadeScreen - thumb_func_start sub_80ABDFC -sub_80ABDFC: @ 80ABDFC + thumb_func_start IsWeatherNotFadingIn +IsWeatherNotFadingIn: @ 80ABDFC ldr r0, =gUnknown_02038454 ldr r1, =0x000006c6 adds r0, r1 @@ -1777,11 +1777,11 @@ sub_80ABDFC: @ 80ABDFC lsrs r0, 31 bx lr .pool - thumb_func_end sub_80ABDFC + thumb_func_end IsWeatherNotFadingIn - thumb_func_start sub_80ABE18 -@ void sub_80ABE18(u8 a1) -sub_80ABE18: @ 80ABE18 + thumb_func_start UpdateSpritePaletteWithWeather +@ void UpdateSpritePaletteWithWeather(u8 a1) +UpdateSpritePaletteWithWeather: @ 80ABE18 push {r4-r6,lr} lsls r0, 24 lsrs r0, 8 @@ -1882,7 +1882,7 @@ _080ABEF4: pop {r0} bx r0 .pool - thumb_func_end sub_80ABE18 + thumb_func_end UpdateSpritePaletteWithWeather thumb_func_start ApplyWeatherGammaShiftToPal ApplyWeatherGammaShiftToPal: @ 80ABF00 @@ -1939,7 +1939,7 @@ sub_80ABF4C: @ 80ABF4C movs r2, 0x20 bl LoadPalette ldrb r0, [r4] - bl sub_80ABE18 + bl UpdateSpritePaletteWithWeather pop {r4} pop {r0} bx r0 @@ -2504,8 +2504,8 @@ sub_80AC3E4: @ 80AC3E4 .pool thumb_func_end sub_80AC3E4 - thumb_func_start sub_80AC3F8 -sub_80AC3F8: @ 80AC3F8 + thumb_func_start PreservePaletteInWeather +PreservePaletteInWeather: @ 80AC3F8 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 @@ -2524,16 +2524,16 @@ sub_80AC3F8: @ 80AC3F8 pop {r0} bx r0 .pool - thumb_func_end sub_80AC3F8 + thumb_func_end PreservePaletteInWeather - thumb_func_start sub_80AC428 -sub_80AC428: @ 80AC428 + thumb_func_start ResetPreservedPalettesInWeather +ResetPreservedPalettesInWeather: @ 80AC428 ldr r1, =gUnknown_03000F50 ldr r0, =gUnknown_0854C250 str r0, [r1] bx lr .pool - thumb_func_end sub_80AC428 + thumb_func_end ResetPreservedPalettesInWeather thumb_func_start sub_80AC438 sub_80AC438: @ 80AC438 @@ -8702,7 +8702,7 @@ sub_80AF710: @ 80AF710 thumb_func_start sub_80AF71C sub_80AF71C: @ 80AF71C push {lr} - bl sub_80ABDFC + bl IsWeatherNotFadingIn lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/field_specials.s b/asm/field_specials.s index ca22af002..852d5ce7c 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -3155,7 +3155,7 @@ SetRoute119Weather: @ 8139648 bl get_map_light_from_warp0 lsls r0, 24 lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 + bl is_map_type_1_2_3_5_or_6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3173,7 +3173,7 @@ SetRoute123Weather: @ 8139668 bl get_map_light_from_warp0 lsls r0, 24 lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 + bl is_map_type_1_2_3_5_or_6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/field_tasks.s b/asm/field_tasks.s deleted file mode 100644 index 09f5bbc9b..000000000 --- a/asm/field_tasks.s +++ /dev/null @@ -1,1921 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start task_per_step_callback_manager -task_per_step_callback_manager: @ 809D88C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x8 - ldrsh r1, [r1, r2] - ldr r2, =gUnknown_08510348 - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end task_per_step_callback_manager - - thumb_func_start sub_809D8B8 -sub_809D8B8: @ 809D8B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0809D8CA - cmp r0, 0x1 - beq _0809D8E8 - b _0809D8FC -_0809D8CA: - ldr r0, =gMain - ldr r0, [r0, 0x20] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - beq _0809D8FC - bl DoTimeBasedEvents - ldrh r0, [r4] - adds r0, 0x1 - b _0809D8FA - .pool -_0809D8E8: - ldr r0, =gMain - ldr r0, [r0, 0x20] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - bne _0809D8FC - ldrh r0, [r4] - subs r0, 0x1 -_0809D8FA: - strh r0, [r4] -_0809D8FC: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D8B8 - - thumb_func_start sub_809D908 -sub_809D908: @ 809D908 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - bl ScriptContext2_IsEnabled - lsls r0, 24 - cmp r0, 0 - bne _0809D930 - adds r0, r4, 0 - bl sub_809D8B8 - adds r0, r4, 0x2 - adds r1, r4, 0x4 - bl UpdateAmbientCry -_0809D930: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D908 - - thumb_func_start SetUpFieldTasks -SetUpFieldTasks: @ 809D93C - push {r4,r5,lr} - ldr r5, =task_per_step_callback_manager - adds r0, r5, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0809D966 - adds r0, r5, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] -_0809D966: - ldr r4, =sub_809E638 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _0809D97C - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask -_0809D97C: - ldr r4, =sub_809D908 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _0809D992 - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask -_0809D992: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end SetUpFieldTasks - - thumb_func_start ActivatePerStepCallback -ActivatePerStepCallback: @ 809D9A8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =task_per_step_callback_manager - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _0809D9EA - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r1, r0, r1 - movs r2, 0 - adds r0, r1, 0 - adds r0, 0x1E -_0809D9CC: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _0809D9CC - cmp r4, 0x7 - bls _0809D9E8 - movs r0, 0 - strh r0, [r1] - b _0809D9EA - .pool -_0809D9E8: - strh r4, [r1] -_0809D9EA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ActivatePerStepCallback - - thumb_func_start ResetFieldTasksArgs -ResetFieldTasksArgs: @ 809D9F0 - push {lr} - ldr r0, =task_per_step_callback_manager - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, =sub_809D908 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _0809DA1A - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x2] - strh r1, [r0, 0x4] -_0809DA1A: - pop {r0} - bx r0 - .pool - thumb_func_end ResetFieldTasksArgs - - thumb_func_start nullsub_34 -nullsub_34: @ 809DA2C - bx lr - thumb_func_end nullsub_34 - - thumb_func_start sub_809DA30 -sub_809DA30: @ 809DA30 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogVerticalLog1 - lsls r0, 24 - cmp r0, 0 - beq _0809DA48 - adds r0, r5, 0 - b _0809DA80 -_0809DA48: - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogVerticalLog2 - lsls r0, 24 - cmp r0, 0 - beq _0809DA5A - adds r0, r5, 0 - adds r0, 0x8 - b _0809DA80 -_0809DA5A: - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogHorizontalLog1 - lsls r0, 24 - cmp r0, 0 - beq _0809DA6C - adds r0, r5, 0 - adds r0, 0x10 - b _0809DA80 -_0809DA6C: - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogHorizontalLog2 - lsls r0, 24 - cmp r0, 0 - bne _0809DA7C - movs r0, 0 - b _0809DA80 -_0809DA7C: - adds r0, r5, 0 - adds r0, 0x18 -_0809DA80: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809DA30 - - thumb_func_start sub_809DA88 -sub_809DA88: @ 809DA88 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - mov r8, r3 - lsls r1, 16 - asrs r6, r1, 16 - lsls r2, 16 - asrs r7, r2, 16 - adds r0, r6, 0 - adds r1, r7, 0 - bl MapGridGetMetatileBehaviorAt - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_809DA30 - adds r4, r0, 0 - adds r5, r4, 0 - cmp r4, 0 - beq _0809DB06 - movs r0, 0 - ldrsb r0, [r4, r0] - adds r0, r6, r0 - movs r1, 0x1 - ldrsb r1, [r4, r1] - adds r1, r7, r1 - ldrh r2, [r4, 0x2] - bl MapGridSetMetatileIdAt - mov r0, r8 - cmp r0, 0 - beq _0809DADE - movs r0, 0 - ldrsb r0, [r4, r0] - adds r0, r6, r0 - movs r1, 0x1 - ldrsb r1, [r4, r1] - adds r1, r7, r1 - bl CurrentMapDrawMetatileAt -_0809DADE: - movs r0, 0x4 - ldrsb r0, [r5, r0] - adds r0, r6, r0 - movs r1, 0x5 - ldrsb r1, [r5, r1] - adds r1, r7, r1 - ldrh r2, [r5, 0x6] - bl MapGridSetMetatileIdAt - mov r0, r8 - cmp r0, 0 - beq _0809DB06 - movs r0, 0x4 - ldrsb r0, [r5, r0] - adds r0, r6, r0 - movs r1, 0x5 - ldrsb r1, [r5, r1] - adds r1, r7, r1 - bl CurrentMapDrawMetatileAt -_0809DB06: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809DA88 - - thumb_func_start sub_809DB10 -sub_809DB10: @ 809DB10 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r3, r2, 0 - ldr r0, =gUnknown_08510368 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_809DA88 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809DB10 - - thumb_func_start sub_809DB34 -sub_809DB34: @ 809DB34 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r3, r2, 0 - ldr r0, =gUnknown_08510388 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_809DA88 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809DB34 - - thumb_func_start sub_809DB58 -sub_809DB58: @ 809DB58 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r3, r2, 0 - ldr r0, =gUnknown_085103A8 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_809DA88 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809DB58 - - thumb_func_start sub_809DB7C -sub_809DB7C: @ 809DB7C - 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 - mov r10, r8 - lsls r1, 16 - lsrs r7, r1, 16 - mov r9, r7 - lsls r2, 16 - asrs r6, r2, 16 - lsls r3, 16 - asrs r5, r3, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogVerticalLog1 - lsls r0, 24 - cmp r0, 0 - beq _0809DBC0 - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, r5 - ble _0809DC06 -_0809DBBC: - movs r0, 0 - b _0809DC08 -_0809DBC0: - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogVerticalLog2 - lsls r0, 24 - cmp r0, 0 - beq _0809DBD8 - mov r1, r9 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, r5 - bge _0809DC06 - b _0809DBBC -_0809DBD8: - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogHorizontalLog1 - lsls r0, 24 - cmp r0, 0 - beq _0809DBF0 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, r6 - ble _0809DC06 - b _0809DBBC -_0809DBF0: - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogHorizontalLog2 - lsls r0, 24 - cmp r0, 0 - beq _0809DC06 - mov r1, r10 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, r6 - blt _0809DBBC -_0809DC06: - movs r0, 0x1 -_0809DC08: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809DB7C - - thumb_func_start sub_809DC18 -sub_809DC18: @ 809DC18 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - mov r10, r8 - lsls r3, 16 - lsrs r7, r3, 16 - mov r9, r7 - lsls r0, 16 - asrs r6, r0, 16 - lsls r1, 16 - asrs r5, r1, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogVerticalLog1 - lsls r0, 24 - cmp r0, 0 - beq _0809DC5C - lsls r0, r7, 16 - asrs r0, 16 - cmp r5, r0 - bge _0809DCA2 -_0809DC58: - movs r0, 0 - b _0809DCA4 -_0809DC5C: - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogVerticalLog2 - lsls r0, 24 - cmp r0, 0 - beq _0809DC74 - mov r1, r9 - lsls r0, r1, 16 - asrs r0, 16 - cmp r5, r0 - ble _0809DCA2 - b _0809DC58 -_0809DC74: - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogHorizontalLog1 - lsls r0, 24 - cmp r0, 0 - beq _0809DC8C - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - cmp r6, r0 - bge _0809DCA2 - b _0809DC58 -_0809DC8C: - adds r0, r4, 0 - bl MetatileBehavior_IsPacifilogHorizontalLog2 - lsls r0, 24 - cmp r0, 0 - beq _0809DCA2 - mov r1, r10 - lsls r0, r1, 16 - asrs r0, 16 - cmp r6, r0 - bgt _0809DC58 -_0809DCA2: - movs r0, 0x1 -_0809DCA4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809DC18 - - thumb_func_start sub_809DCB4 -sub_809DCB4: @ 809DCB4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - mov r5, sp - adds r5, 0x2 - mov r0, sp - adds r1, r5, 0 - bl PlayerGetDestCoords - movs r1, 0x2 - ldrsh r0, [r4, r1] - adds r6, r5, 0 - cmp r0, 0x1 - beq _0809DD0E - cmp r0, 0x1 - bgt _0809DCEC - cmp r0, 0 - beq _0809DCF2 - b _0809DE1E - .pool -_0809DCEC: - cmp r0, 0x2 - beq _0809DDDC - b _0809DE1E -_0809DCF2: - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x4] - ldrh r0, [r5] - strh r0, [r4, 0x6] - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r3, 0 - ldrsh r1, [r5, r3] - movs r2, 0x1 - bl sub_809DB34 - b _0809DE1A -_0809DD0E: - mov r0, sp - movs r7, 0 - ldrsh r1, [r0, r7] - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0809DD28 - movs r3, 0 - ldrsh r1, [r5, r3] - movs r7, 0x6 - ldrsh r0, [r4, r7] - cmp r1, r0 - beq _0809DE1E -_0809DD28: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r5, 0x6 - ldrsh r3, [r4, r5] - bl sub_809DB7C - cmp r0, 0 - beq _0809DD70 - movs r7, 0x4 - ldrsh r0, [r4, r7] - movs r2, 0x6 - ldrsh r1, [r4, r2] - movs r2, 0x1 - bl sub_809DB10 - movs r3, 0x4 - ldrsh r0, [r4, r3] - movs r5, 0x6 - ldrsh r1, [r4, r5] - movs r2, 0 - bl sub_809DB58 - ldrh r0, [r4, 0x4] - strh r0, [r4, 0x8] - ldrh r0, [r4, 0x6] - strh r0, [r4, 0xA] - movs r0, 0x2 - strh r0, [r4, 0x2] - movs r0, 0x8 - strh r0, [r4, 0xC] - b _0809DD7A -_0809DD70: - movs r7, 0x1 - negs r7, r7 - adds r0, r7, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] -_0809DD7A: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - adds r5, r6, 0 - movs r2, 0 - ldrsh r1, [r5, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r7, 0x6 - ldrsh r3, [r4, r7] - bl sub_809DC18 - cmp r0, 0 - beq _0809DDAE - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - movs r2, 0x1 - bl sub_809DB10 - movs r0, 0x2 - strh r0, [r4, 0x2] - movs r0, 0x8 - strh r0, [r4, 0xC] -_0809DDAE: - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x4] - ldrh r0, [r6] - strh r0, [r4, 0x6] - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r5, 0 - ldrsh r1, [r6, r5] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsPacifidlogLog - lsls r0, 24 - cmp r0, 0 - beq _0809DE1E - movs r0, 0x46 - bl PlaySE - b _0809DE1E -_0809DDDC: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _0809DE1E - mov r0, sp - movs r7, 0 - ldrsh r0, [r0, r7] - movs r2, 0 - ldrsh r1, [r5, r2] - movs r2, 0x1 - bl sub_809DB34 - movs r3, 0x8 - ldrsh r0, [r4, r3] - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _0809DE1A - movs r5, 0xA - ldrsh r0, [r4, r5] - cmp r0, r1 - beq _0809DE1A - movs r7, 0x8 - ldrsh r0, [r4, r7] - movs r2, 0xA - ldrsh r1, [r4, r2] - movs r2, 0x1 - bl sub_809DB58 -_0809DE1A: - movs r0, 0x1 - strh r0, [r4, 0x2] -_0809DE1E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809DCB4 - - thumb_func_start sub_809DE28 -sub_809DE28: @ 809DE28 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - bl PlayerGetZCoord - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0809DE82 - lsls r0, r4, 16 - asrs r4, r0, 16 - lsls r0, r5, 16 - asrs r5, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - ldr r0, =0x0000024e - cmp r1, r0 - beq _0809DE68 - adds r0, 0x8 - cmp r1, r0 - beq _0809DE78 - b _0809DE82 - .pool -_0809DE68: - ldr r2, =0x0000024f - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _0809DE82 - .pool -_0809DE78: - ldr r2, =0x00000257 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_0809DE82: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809DE28 - - thumb_func_start sub_809DE8C -sub_809DE8C: @ 809DE8C - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - bl PlayerGetZCoord - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0809DEE6 - lsls r0, r4, 16 - asrs r4, r0, 16 - lsls r0, r5, 16 - asrs r5, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - ldr r0, =0x0000024f - cmp r1, r0 - beq _0809DECC - adds r0, 0x8 - cmp r1, r0 - beq _0809DEDC - b _0809DEE6 - .pool -_0809DECC: - ldr r2, =0x0000024e - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _0809DEE6 - .pool -_0809DEDC: - ldr r2, =0x00000256 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_0809DEE6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809DE8C - - thumb_func_start sub_809DEF0 -sub_809DEF0: @ 809DEF0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r6, r1, r0 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - movs r0, 0x2 - ldrsh r5, [r6, r0] - mov r9, r4 - cmp r5, 0x1 - beq _0809DF84 - cmp r5, 0x1 - bgt _0809DF30 - cmp r5, 0 - beq _0809DF38 - b _0809E0F6 - .pool -_0809DF30: - cmp r5, 0x2 - bne _0809DF36 - b _0809E064 -_0809DF36: - b _0809E0F6 -_0809DF38: - mov r0, sp - ldrh r0, [r0] - strh r0, [r6, 0x4] - mov r1, r9 - ldrh r0, [r1] - strh r0, [r6, 0x6] - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r3, 0 - ldrsh r1, [r1, r3] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsFortreeBridge - lsls r0, 24 - cmp r0, 0 - bne _0809DF62 - b _0809E0F2 -_0809DF62: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - mov r2, r9 - movs r3, 0 - ldrsh r1, [r2, r3] - bl sub_809DE28 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - mov r2, r9 - movs r3, 0 - ldrsh r1, [r2, r3] - bl CurrentMapDrawMetatileAt - b _0809E0F2 -_0809DF84: - ldrh r0, [r6, 0x6] - mov r8, r0 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - ldrh r2, [r6, 0x4] - mov r10, r2 - movs r3, 0x4 - ldrsh r7, [r6, r3] - cmp r0, r7 - bne _0809DFAC - mov r0, r9 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r3, r8 - lsls r0, r3, 16 - asrs r0, 16 - cmp r1, r0 - bne _0809DFAC - b _0809E0F6 -_0809DFAC: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - mov r2, r9 - movs r3, 0 - ldrsh r1, [r2, r3] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsFortreeBridge - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - mov r0, r8 - lsls r4, r0, 16 - asrs r1, r4, 16 - adds r0, r7, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsFortreeBridge - lsls r0, 24 - lsrs r7, r0, 24 - bl PlayerGetZCoord - movs r1, 0 - ands r5, r0 - lsls r0, r5, 24 - adds r5, r4, 0 - cmp r0, 0 - bne _0809DFF4 - movs r1, 0x1 -_0809DFF4: - cmp r1, 0 - beq _0809E008 - ldr r1, [sp, 0x4] - cmp r1, 0x1 - beq _0809E002 - cmp r7, 0x1 - bne _0809E008 -_0809E002: - movs r0, 0x47 - bl PlaySE -_0809E008: - cmp r7, 0 - beq _0809E044 - mov r2, r10 - lsls r4, r2, 16 - asrs r4, 16 - asrs r5, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809DE8C - adds r0, r4, 0 - adds r1, r5, 0 - bl CurrentMapDrawMetatileAt - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - mov r2, r9 - movs r3, 0 - ldrsh r1, [r2, r3] - bl sub_809DE28 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - mov r2, r9 - movs r3, 0 - ldrsh r1, [r2, r3] - bl CurrentMapDrawMetatileAt -_0809E044: - mov r0, r10 - strh r0, [r6, 0x8] - mov r1, r8 - strh r1, [r6, 0xA] - mov r0, sp - ldrh r0, [r0] - strh r0, [r6, 0x4] - mov r2, r9 - ldrh r0, [r2] - strh r0, [r6, 0x6] - cmp r7, 0 - beq _0809E0F6 - movs r0, 0x10 - strh r0, [r6, 0xC] - movs r0, 0x2 - strh r0, [r6, 0x2] -_0809E064: - ldrh r0, [r6, 0xC] - subs r0, 0x1 - strh r0, [r6, 0xC] - ldrh r3, [r6, 0x8] - mov r10, r3 - ldrh r0, [r6, 0xA] - mov r8, r0 - movs r1, 0xC - ldrsh r0, [r6, r1] - movs r1, 0x7 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bhi _0809E0EA - lsls r0, 2 - ldr r1, =_0809E094 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0809E094: - .4byte _0809E0B4 - .4byte _0809E0EA - .4byte _0809E0EA - .4byte _0809E0EA - .4byte _0809E0C6 - .4byte _0809E0EA - .4byte _0809E0EA - .4byte _0809E0EA -_0809E0B4: - mov r2, r10 - lsls r0, r2, 16 - asrs r0, 16 - mov r3, r8 - lsls r1, r3, 16 - asrs r1, 16 - bl CurrentMapDrawMetatileAt - b _0809E0EA -_0809E0C6: - mov r0, r10 - lsls r5, r0, 16 - asrs r5, 16 - mov r1, r8 - lsls r4, r1, 16 - asrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809DE28 - adds r0, r5, 0 - adds r1, r4, 0 - bl CurrentMapDrawMetatileAt - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809DE8C -_0809E0EA: - movs r2, 0xC - ldrsh r0, [r6, r2] - cmp r0, 0 - bne _0809E0F6 -_0809E0F2: - movs r0, 0x1 - strh r0, [r6, 0x2] -_0809E0F6: - 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 sub_809DEF0 - - thumb_func_start sub_809E108 -sub_809E108: @ 809E108 - push {lr} - lsls r1, 16 - lsrs r1, 16 - lsls r0, 16 - ldr r2, =0xfffd0000 - adds r0, r2 - lsrs r0, 16 - cmp r0, 0xA - bhi _0809E144 - lsls r0, r1, 16 - asrs r1, r0, 16 - ldr r2, =0xfffa0000 - adds r0, r2 - lsrs r0, 16 - cmp r0, 0xD - bhi _0809E144 - ldr r0, =gUnknown_085103C8 - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _0809E144 - movs r0, 0x1 - b _0809E146 - .pool -_0809E144: - movs r0, 0 -_0809E146: - pop {r1} - bx r1 - thumb_func_end sub_809E108 - - thumb_func_start sub_809E14C -sub_809E14C: @ 809E14C - push {r4,r5,lr} - lsls r0, 16 - asrs r5, r0, 16 - lsls r1, 16 - asrs r4, r1, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809E108 - cmp r0, 0 - beq _0809E17A - ldr r1, =gUnknown_085103C8 - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - bl GetVarPointer - subs r2, r5, 0x3 - movs r1, 0x1 - lsls r1, r2 - ldrh r2, [r0] - orrs r1, r2 - strh r1, [r0] -_0809E17A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809E14C - - thumb_func_start sub_809E184 -sub_809E184: @ 809E184 - push {r4,r5,lr} - lsls r0, 16 - asrs r5, r0, 16 - lsls r1, 16 - asrs r4, r1, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809E108 - cmp r0, 0 - beq _0809E1B6 - ldr r1, =gUnknown_085103C8 - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - bl VarGet - lsls r0, 16 - subs r2, r5, 0x3 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r2 - ands r1, r0 - cmp r1, 0 - bne _0809E1C0 -_0809E1B6: - movs r0, 0 - b _0809E1C2 - .pool -_0809E1C0: - movs r0, 0x1 -_0809E1C2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809E184 - - thumb_func_start sub_809E1C8 -sub_809E1C8: @ 809E1C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gMapHeader - ldr r0, [r0] - ldr r1, [r0] - mov r9, r1 - ldr r7, [r0, 0x4] - movs r5, 0 - cmp r5, r9 - bge _0809E210 -_0809E1E0: - movs r4, 0 - adds r0, r5, 0x1 - mov r8, r0 - cmp r4, r7 - bge _0809E20A - lsls r6, r5, 16 -_0809E1EC: - lsls r1, r4, 16 - asrs r1, 16 - asrs r0, r6, 16 - bl sub_809E184 - cmp r0, 0x1 - bne _0809E204 - adds r1, r4, 0x7 - adds r0, r5, 0x7 - ldr r2, =0x0000020e - bl MapGridSetMetatileIdAt -_0809E204: - adds r4, 0x1 - cmp r4, r7 - blt _0809E1EC -_0809E20A: - mov r5, r8 - cmp r5, r9 - blt _0809E1E0 -_0809E210: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809E1C8 - - thumb_func_start sub_809E224 -sub_809E224: @ 809E224 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r5, r1, r0 - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _0809E270 - cmp r0, 0x1 - bgt _0809E24C - cmp r0, 0 - beq _0809E258 - b _0809E3A6 - .pool -_0809E24C: - cmp r0, 0x2 - beq _0809E306 - cmp r0, 0x3 - bne _0809E256 - b _0809E360 -_0809E256: - b _0809E3A6 -_0809E258: - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, 0x4] - ldrh r0, [r4] - strh r0, [r5, 0x6] - b _0809E3A2 -_0809E270: - mov r7, sp - adds r7, 0x2 - mov r0, sp - adds r1, r7, 0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r2, [r0] - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x4 - ldrsh r0, [r5, r3] - cmp r1, r0 - bne _0809E29A - movs r0, 0 - ldrsh r1, [r7, r0] - movs r3, 0x6 - ldrsh r0, [r5, r3] - cmp r1, r0 - bne _0809E29A - b _0809E3A6 -_0809E29A: - strh r2, [r5, 0x4] - ldrh r0, [r7] - strh r0, [r5, 0x6] - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r7, r2] - bl MapGridGetMetatileBehaviorAt - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x00004022 - bl GetVarPointer - adds r6, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsThinIce - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809E2E0 - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - movs r0, 0x4 - strh r0, [r5, 0xC] - movs r0, 0x2 - b _0809E2F8 - .pool -_0809E2E0: - adds r0, r4, 0 - bl MetatileBehavior_IsCrackedIce - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809E3A6 - movs r0, 0 - strh r0, [r6] - movs r0, 0x4 - strh r0, [r5, 0xC] - movs r0, 0x3 -_0809E2F8: - strh r0, [r5, 0x2] - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, 0x8] - ldrh r0, [r7] - strh r0, [r5, 0xA] - b _0809E3A6 -_0809E306: - ldrh r1, [r5, 0xC] - movs r3, 0xC - ldrsh r0, [r5, r3] - cmp r0, 0 - bne _0809E36A - mov r1, sp - ldrh r0, [r5, 0x8] - strh r0, [r1] - mov r4, sp - adds r4, 0x2 - ldrh r0, [r5, 0xA] - strh r0, [r4] - movs r0, 0x2A - bl PlaySE - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - ldr r2, =0x0000020e - bl MapGridSetMetatileIdAt - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r2, 0 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - mov r0, sp - 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_809E14C - b _0809E3A2 - .pool -_0809E360: - ldrh r1, [r5, 0xC] - movs r3, 0xC - ldrsh r0, [r5, r3] - cmp r0, 0 - beq _0809E370 -_0809E36A: - subs r0, r1, 0x1 - strh r0, [r5, 0xC] - b _0809E3A6 -_0809E370: - mov r1, sp - ldrh r0, [r5, 0x8] - strh r0, [r1] - mov r4, sp - adds r4, 0x2 - ldrh r0, [r5, 0xA] - strh r0, [r4] - movs r0, 0x29 - bl PlaySE - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - ldr r2, =0x00000206 - bl MapGridSetMetatileIdAt - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r2, 0 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt -_0809E3A2: - movs r0, 0x1 - strh r0, [r5, 0x2] -_0809E3A6: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809E224 - - thumb_func_start sub_809E3B4 -sub_809E3B4: @ 809E3B4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r5, r1, r0 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r2, [r0] - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x2 - ldrsh r0, [r5, r3] - cmp r1, r0 - bne _0809E3EE - movs r0, 0 - ldrsh r1, [r4, r0] - movs r3, 0x4 - ldrsh r0, [r5, r3] - cmp r1, r0 - beq _0809E47A -_0809E3EE: - strh r2, [r5, 0x2] - ldrh r0, [r4] - strh r0, [r5, 0x4] - 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_IsAsh - lsls r0, 24 - cmp r0, 0 - beq _0809E47A - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileIdAt - ldr r1, =0x0000020a - cmp r0, r1 - bne _0809E444 - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r2, 0 - ldrsh r1, [r4, r2] - ldr r2, =0x00000212 - movs r3, 0x4 - bl ash - b _0809E456 - .pool -_0809E444: - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r2, 0 - ldrsh r1, [r4, r2] - ldr r2, =0x00000206 - movs r3, 0x4 - bl ash -_0809E456: - movs r0, 0x87 - lsls r0, 1 - movs r1, 0x1 - bl CheckBagHasItem - lsls r0, 24 - cmp r0, 0 - beq _0809E47A - ldr r0, =0x00004048 - bl GetVarPointer - adds r2, r0, 0 - ldrh r1, [r2] - ldr r0, =0x0000270e - cmp r1, r0 - bhi _0809E47A - adds r0, r1, 0x1 - strh r0, [r2] -_0809E47A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809E3B4 - - thumb_func_start sub_809E490 -sub_809E490: @ 809E490 - push {r4,r5,lr} - lsls r0, 16 - asrs r5, r0, 16 - lsls r1, 16 - asrs r4, r1, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridGetMetatileIdAt - ldr r1, =0x0000022f - ldr r2, =0x00000237 - cmp r0, r1 - bne _0809E4AC - subs r2, 0x31 -_0809E4AC: - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0 - adds r1, r4, 0 - bl CurrentMapDrawMetatileAt - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809E490 - - thumb_func_start sub_809E4CC -sub_809E4CC: @ 809E4CC - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r5, r1, r0 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r6, r0, 16 - ldrh r1, [r5, 0x8] - movs r3, 0x8 - ldrsh r0, [r5, r3] - adds r7, r4, 0 - cmp r0, 0 - beq _0809E51E - subs r0, r1, 0x1 - strh r0, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bne _0809E51E - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r2, 0xC - ldrsh r1, [r5, r2] - bl sub_809E490 -_0809E51E: - ldrh r1, [r5, 0xE] - movs r3, 0xE - ldrsh r0, [r5, r3] - cmp r0, 0 - beq _0809E53E - subs r0, r1, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _0809E53E - movs r1, 0x10 - ldrsh r0, [r5, r1] - movs r2, 0x12 - ldrsh r1, [r5, r2] - bl sub_809E490 -_0809E53E: - lsls r0, r6, 24 - lsrs r6, r0, 24 - adds r0, r6, 0 - bl MetatileBehavior_IsCrackedFloorHole - lsls r0, 24 - cmp r0, 0 - beq _0809E556 - ldr r0, =0x00004022 - movs r1, 0 - bl VarSet -_0809E556: - mov r0, sp - ldrh r2, [r0] - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x4 - ldrsh r0, [r5, r3] - cmp r1, r0 - bne _0809E572 - movs r0, 0 - ldrsh r1, [r7, r0] - movs r3, 0x6 - ldrsh r0, [r5, r3] - cmp r1, r0 - beq _0809E5D2 -_0809E572: - strh r2, [r5, 0x4] - adds r4, r7, 0 - ldrh r0, [r4] - strh r0, [r5, 0x6] - adds r0, r6, 0 - bl MetatileBehavior_IsCrackedFloor - lsls r0, 24 - cmp r0, 0 - beq _0809E5D2 - bl GetPlayerSpeed - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _0809E59A - ldr r0, =0x00004022 - movs r1, 0 - bl VarSet -_0809E59A: - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0809E5BC - movs r0, 0x3 - strh r0, [r5, 0x8] - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, 0xA] - ldrh r0, [r4] - strh r0, [r5, 0xC] - b _0809E5D2 - .pool -_0809E5BC: - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _0809E5D2 - movs r0, 0x3 - strh r0, [r5, 0xE] - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, 0x10] - ldrh r0, [r7] - strh r0, [r5, 0x12] -_0809E5D2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809E4CC - - thumb_func_start sub_809E5DC -sub_809E5DC: @ 809E5DC - push {r4,r5,lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - ldrh r0, [r3] - subs r0, 0x1 - strh r0, [r3] - lsls r0, 16 - cmp r0, 0 - bne _0809E5F8 - movs r2, 0xE8 - b _0809E60C -_0809E5F8: - ldr r1, =gUnknown_085103FC - movs r2, 0 - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _0809E604 - adds r0, 0x7 -_0809E604: - asrs r0, 3 - lsls r0, 1 - adds r0, r1 - ldrh r2, [r0] -_0809E60C: - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0 - adds r1, r4, 0 - bl CurrentMapDrawMetatileAt - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0xE8 - bl MapGridSetMetatileIdAt - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809E5DC - - thumb_func_start sub_809E638 -sub_809E638: @ 809E638 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - mov r5, sp - adds r5, 0x2 - mov r0, sp - adds r1, r5, 0 - bl PlayerGetDestCoords - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x5] - lsls r0, 24 - asrs r0, 24 - orrs r0, r1 - lsls r0, 16 - lsrs r7, r0, 16 - movs r0, 0x2 - ldrsh r1, [r4, r0] - mov r8, r5 - cmp r1, 0 - beq _0809E688 - cmp r1, 0x1 - beq _0809E6B4 - b _0809E708 - .pool -_0809E688: - strh r7, [r4] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x4] - ldrh r0, [r5] - strh r0, [r4, 0x6] - movs r0, 0x1 - strh r0, [r4, 0x2] - strh r1, [r4, 0x8] - strh r1, [r4, 0xE] - strh r1, [r4, 0x14] - strh r1, [r4, 0x1A] - b _0809E708 -_0809E6A2: - movs r0, 0x20 - strh r0, [r1] - mov r0, sp - ldrh r0, [r0] - strh r0, [r1, 0x2] - mov r2, r8 - ldrh r0, [r2] - strh r0, [r1, 0x4] - b _0809E708 -_0809E6B4: - mov r0, sp - movs r3, 0x4 - ldrsh r1, [r4, r3] - ldrh r2, [r0] - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r1, r0 - bne _0809E6D0 - movs r0, 0x6 - ldrsh r1, [r4, r0] - movs r3, 0 - ldrsh r0, [r5, r3] - cmp r1, r0 - beq _0809E708 -_0809E6D0: - strh r2, [r4, 0x4] - ldrh r0, [r5] - strh r0, [r4, 0x6] - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsMuddySlope - lsls r0, 24 - cmp r0, 0 - beq _0809E708 - movs r6, 0x4 - adds r1, r4, 0 - adds r1, 0x8 -_0809E6F8: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0809E6A2 - adds r1, 0x6 - adds r6, 0x3 - cmp r6, 0xD - ble _0809E6F8 -_0809E708: - ldr r2, =gCamera - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809E728 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r7, r0 - beq _0809E728 - strh r7, [r4] - ldrh r0, [r2, 0x4] - ldrh r1, [r2, 0x8] - b _0809E72C - .pool -_0809E728: - movs r0, 0 - movs r1, 0 -_0809E72C: - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - lsls r0, r1, 16 - asrs r7, r0, 16 - adds r5, r4, 0 - adds r5, 0x8 - adds r4, r5, 0 - movs r6, 0x9 -_0809E73E: - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0809E762 - ldrh r0, [r4, 0x2] - mov r3, r8 - subs r0, r3 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - subs r0, r7 - strh r0, [r4, 0x4] - movs r0, 0x2 - ldrsh r1, [r4, r0] - movs r3, 0x4 - ldrsh r2, [r4, r3] - adds r0, r5, 0 - bl sub_809E5DC -_0809E762: - adds r4, 0x6 - adds r5, 0x6 - subs r6, 0x3 - cmp r6, 0 - bge _0809E73E - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809E638 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s index e31375f9f..8f1e198b8 100644 --- a/asm/fldeff_80F9BCC.s +++ b/asm/fldeff_80F9BCC.s @@ -2431,8 +2431,8 @@ sub_80FAFF8: @ 80FAFF8 .pool thumb_func_end sub_80FAFF8 - thumb_func_start sub_80FB00C -sub_80FB00C: @ 80FB00C + thumb_func_start CreateRecordMixingSprite +CreateRecordMixingSprite: @ 80FB00C push {r4,r5,lr} ldr r0, =gUnknown_0858E864 bl LoadSpritePalette @@ -2478,10 +2478,10 @@ _080FB06E: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80FB00C + thumb_func_end CreateRecordMixingSprite - thumb_func_start sub_80FB074 -sub_80FB074: @ 80FB074 + thumb_func_start DestroyRecordMixingSprite +DestroyRecordMixingSprite: @ 80FB074 push {r4-r7,lr} ldr r4, =gSprites adds r7, r4, 0 @@ -2509,6 +2509,6 @@ _080FB098: pop {r0} bx r0 .pool - thumb_func_end sub_80FB074 + thumb_func_end DestroyRecordMixingSprite .align 2, 0 @ Don't pad with nop. diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s deleted file mode 100644 index 90e846b97..000000000 --- a/asm/menu_helpers.s +++ /dev/null @@ -1,986 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ResetVramOamAndBgCntRegs -ResetVramOamAndBgCntRegs: @ 8121DA0 - push {r4,lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0xE - movs r1, 0 - bl SetGpuReg - movs r0, 0xC - movs r1, 0 - bl SetGpuReg - movs r0, 0xA - movs r1, 0 - bl SetGpuReg - movs r0, 0x8 - movs r1, 0 - bl SetGpuReg - mov r1, sp - movs r0, 0 - strh r0, [r1] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x0100c000 - mov r0, sp - bl CpuSet - movs r4, 0 - str r4, [sp, 0x4] - add r0, sp, 0x4 - movs r1, 0xE0 - lsls r1, 19 - ldr r2, =0x05000100 - bl CpuSet - add r0, sp, 0x8 - strh r4, [r0] - movs r1, 0xA0 - lsls r1, 19 - ldr r2, =0x01000200 - bl CpuSet - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ResetVramOamAndBgCntRegs - - thumb_func_start ResetAllBgsCoordinates -ResetAllBgsCoordinates: @ 8121E10 - 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 ResetAllBgsCoordinates - - thumb_func_start SetVBlankHBlankCallbacksToNull -@ void SetVBlankHBlankCallbacksToNull() -SetVBlankHBlankCallbacksToNull: @ 8121E68 - push {lr} - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - pop {r0} - bx r0 - thumb_func_end SetVBlankHBlankCallbacksToNull - - thumb_func_start DisplayMessageAndContinueTask -@ void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 windowBorderFirstTileNum, u8 windowBorderPalette, u8 fontId, u8 speed, u8 *str, void ( *callback)(u8 taskId)) -DisplayMessageAndContinueTask: @ 8121E7C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r4, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - adds r6, r1, 0 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r7, r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_0203A140 - strb r6, [r0] - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8197B1C - ldr r4, =gStringVar4 - ldr r0, [sp, 0x30] - cmp r0, r4 - beq _08121EC0 - adds r0, r4, 0 - ldr r1, [sp, 0x30] - bl StringExpandPlaceholders -_08121EC0: - ldr r2, =gTextFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - 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] - adds r0, r6, 0 - adds r1, r7, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl AddTextPrinterParameterized - ldr r1, =gUnknown_0300117C - ldr r0, [sp, 0x34] - str r0, [r1] - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, =Task_ContinueTaskAfterMessagePrints - str r1, [r0] - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DisplayMessageAndContinueTask - - thumb_func_start RunTextPrintersRetIsActive -RunTextPrintersRetIsActive: @ 8121F20 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl RunTextPrinters - adds r0, r4, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end RunTextPrintersRetIsActive - - thumb_func_start Task_ContinueTaskAfterMessagePrints -@ void Task_ContinueTaskAfterMessagePrints(u8 taskId) -Task_ContinueTaskAfterMessagePrints: @ 8121F3C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0203A140 - ldrb r0, [r0] - bl RunTextPrintersRetIsActive - lsls r0, 16 - cmp r0, 0 - bne _08121F5A - ldr r0, =gUnknown_0300117C - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_08121F5A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Task_ContinueTaskAfterMessagePrints - - thumb_func_start sub_8121F68 -sub_8121F68: @ 8121F68 - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_0203A138 - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [r3] - str r2, [r3, 0x4] - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, =Task_CallYesOrNoCallback - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8121F68 - - thumb_func_start CreateYesNoMenuWithCallbacks -@ void CreateYesNoMenuWithCallbacks(u8 taskId, struct WindowTemplate *windowTemplate, int a3, int a4, int a5, u16 borderFirstTileNum, u8 borderPalette, void ( **callbacks)(u8 taskId)) -CreateYesNoMenuWithCallbacks: @ 8121F94 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - ldr r1, [sp, 0x10] - ldr r2, [sp, 0x14] - ldr r5, [sp, 0x18] - lsls r4, 24 - lsrs r4, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - movs r3, 0 - bl CreateYesNoMenu - ldr r2, =gUnknown_0203A138 - ldr r0, [r5] - ldr r1, [r5, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =Task_CallYesOrNoCallback - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end CreateYesNoMenuWithCallbacks - - thumb_func_start Task_CallYesOrNoCallback -@ void Task_CallYesOrNoCallback(u8 taskId) -Task_CallYesOrNoCallback: @ 8121FDC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08122002 - cmp r1, 0 - bgt _08121FFC - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08122018 - b _08122028 -_08121FFC: - cmp r1, 0x1 - beq _08122018 - b _08122028 -_08122002: - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_0203A138 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _08122028 - .pool -_08122018: - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_0203A138 - ldr r1, [r0, 0x4] - adds r0, r4, 0 - bl _call_via_r1 -_08122028: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Task_CallYesOrNoCallback - - thumb_func_start AdjustQuantityAccordingToDPadInput -@ bool8 AdjustQuantityAccordingToDPadInput(u16 *quantity, u16 maxQuantity) -AdjustQuantityAccordingToDPadInput: @ 8122034 - push {r4-r6,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r5, r1, 0 - ldrh r4, [r2] - adds r6, r4, 0 - ldr r0, =gMain - ldrh r0, [r0, 0x30] - movs r3, 0xF0 - ands r3, r0 - cmp r3, 0x40 - bne _0812206C - adds r0, r4, 0x1 - strh r0, [r2] - movs r3, 0 - ldrsh r0, [r2, r3] - cmp r0, r1 - ble _0812205E - movs r0, 0x1 - strh r0, [r2] -_0812205E: - movs r0, 0 - ldrsh r1, [r2, r0] -_08122062: - lsls r0, r4, 16 - b _081220B6 - .pool -_0812206C: - cmp r3, 0x80 - bne _08122082 - subs r0, r4, 0x1 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bgt _0812207C - strh r1, [r2] -_0812207C: - movs r3, 0 - ldrsh r1, [r2, r3] - b _08122062 -_08122082: - cmp r3, 0x10 - bne _0812209C - adds r0, r4, 0 - adds r0, 0xA - strh r0, [r2] - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, r5 - ble _08122096 - strh r5, [r2] -_08122096: - movs r3, 0 - ldrsh r1, [r2, r3] - b _08122062 -_0812209C: - cmp r3, 0x20 - bne _081220C6 - adds r0, r4, 0 - subs r0, 0xA - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bgt _081220B0 - movs r0, 0x1 - strh r0, [r2] -_081220B0: - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r0, r6, 16 -_081220B6: - asrs r0, 16 - cmp r1, r0 - beq _081220C6 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - b _081220C8 -_081220C6: - movs r0, 0 -_081220C8: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end AdjustQuantityAccordingToDPadInput - - thumb_func_start GetLRKeysState -GetLRKeysState: @ 81220D0 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _08122106 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _081220F8 - movs r0, 0x1 - b _08122108 - .pool -_081220F8: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08122106 - movs r0, 0x2 - b _08122108 -_08122106: - movs r0, 0 -_08122108: - pop {r1} - bx r1 - thumb_func_end GetLRKeysState - - thumb_func_start sub_812210C -sub_812210C: @ 812210C - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _08122142 - ldr r0, =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _08122134 - movs r0, 0x1 - b _08122144 - .pool -_08122134: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08122142 - movs r0, 0x2 - b _08122144 -_08122142: - movs r0, 0 -_08122144: - pop {r1} - bx r1 - thumb_func_end sub_812210C - - thumb_func_start sub_8122148 -sub_8122148: @ 8122148 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _08122174 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x00001919 - cmp r1, r0 - beq _08122166 - bl InUnionRoom - cmp r0, 0x1 - bne _08122174 -_08122166: - movs r0, 0 - b _08122176 - .pool -_08122174: - movs r0, 0x1 -_08122176: - pop {r1} - bx r1 - thumb_func_end sub_8122148 - - thumb_func_start itemid_80BF6D8_mail_related -itemid_80BF6D8_mail_related: @ 812217C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl is_c1_link_related_active - cmp r0, 0x1 - beq _08122192 - bl InUnionRoom - cmp r0, 0x1 - bne _081221A4 -_08122192: - adds r0, r4, 0 - bl ItemIsMail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081221A4 - movs r0, 0 - b _081221A6 -_081221A4: - movs r0, 0x1 -_081221A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end itemid_80BF6D8_mail_related - - thumb_func_start sub_81221AC -sub_81221AC: @ 81221AC - push {lr} - bl is_c1_link_related_active - cmp r0, 0x1 - beq _081221BE - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0x1 - bne _081221C8 -_081221BE: - movs r0, 0x1 - b _081221CA - .pool -_081221C8: - movs r0, 0 -_081221CA: - pop {r1} - bx r1 - thumb_func_end sub_81221AC - - thumb_func_start sub_81221D0 -sub_81221D0: @ 81221D0 - push {lr} - bl sub_81221AC - lsls r0, 24 - cmp r0, 0 - beq _081221E6 - bl sub_8087598 - lsls r0, 24 - lsrs r0, 24 - b _081221E8 -_081221E6: - movs r0, 0 -_081221E8: - pop {r1} - bx r1 - thumb_func_end sub_81221D0 - - thumb_func_start sub_81221EC -sub_81221EC: @ 81221EC - push {lr} - bl sub_81221D0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08122202 - bl sub_800B504 - cmp r0, 0x1 - bne _08122206 -_08122202: - movs r0, 0x1 - b _08122208 -_08122206: - movs r0, 0 -_08122208: - pop {r1} - bx r1 - thumb_func_end sub_81221EC - - thumb_func_start sub_812220C -sub_812220C: @ 812220C - push {r4-r6,lr} - adds r6, r2, 0 - ldr r2, [sp, 0x10] - lsls r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - adds r4, r0, 0 - movs r0, 0 - strb r0, [r3] - movs r2, 0 - lsrs r1, 24 - cmp r2, r1 - bcs _08122240 -_08122226: - lsls r0, r2, 2 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - beq _08122236 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] -_08122236: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r1 - bcc _08122226 -_08122240: - ldrb r0, [r3] - adds r1, r0, 0x1 - strb r1, [r3] - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, r5 - bls _08122252 - strb r5, [r6] - b _08122254 -_08122252: - strb r1, [r6] -_08122254: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812220C - - thumb_func_start sub_812225C -sub_812225C: @ 812225C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - ldrh r0, [r4] - cmp r0, 0 - beq _0812227A - adds r0, r2 - cmp r0, r3 - ble _0812227A - subs r0, r3, r2 - strh r0, [r4] -_0812227A: - ldrh r0, [r4] - ldrh r1, [r5] - adds r0, r1 - cmp r0, r3 - blt _08122290 - cmp r3, 0 - bne _0812228C - strh r3, [r5] - b _08122290 -_0812228C: - subs r0, r3, 0x1 - strh r0, [r5] -_08122290: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_812225C - - thumb_func_start sub_8122298 -sub_8122298: @ 8122298 - push {r4-r7,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, [sp, 0x14] - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - lsls r2, r0, 24 - lsrs r0, r2, 24 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081222F0 - lsrs r2, 25 - ldrh r0, [r4] - cmp r0, r2 - bcc _08122322 - movs r1, 0 - subs r0, r2 - cmp r1, r0 - bge _08122322 - ldrh r0, [r5] - adds r0, r7 - cmp r0, r6 - beq _08122322 -_081222CC: - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - ldrh r0, [r4] - subs r0, r2 - cmp r1, r0 - bge _08122322 - ldrh r0, [r5] - adds r0, r7 - cmp r0, r6 - bne _081222CC - b _08122322 -_081222F0: - ldrh r3, [r4] - lsrs r2, 25 - adds r0, r2, 0x1 - cmp r3, r0 - blt _08122322 - movs r1, 0 - subs r0, r3, r2 - b _08122316 -_08122300: - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - ldrh r0, [r4] - subs r0, r2 -_08122316: - cmp r1, r0 - bgt _08122322 - ldrh r0, [r5] - adds r0, r7 - cmp r0, r6 - bne _08122300 -_08122322: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8122298 - - thumb_func_start LoadListMenuArrowsGfx -LoadListMenuArrowsGfx: @ 8122328 - push {lr} - ldr r0, =gUnknown_0859F514 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0859F51C - bl LoadCompressedObjectPalette - pop {r0} - bx r0 - .pool - thumb_func_end LoadListMenuArrowsGfx - - thumb_func_start sub_8122344 -sub_8122344: @ 8122344 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r1, 24 - lsrs r6, r1, 24 - movs r5, 0 - cmp r5, r6 - bcs _0812239C - ldr r7, =gSprites -_08122358: - lsls r1, r5, 4 - ldr r0, =gUnknown_0859F524 - movs r2, 0 - movs r3, 0 - bl CreateSprite - mov r1, r8 - adds r4, r1, r5 - strb r0, [r4] - cmp r5, 0 - beq _0812237E - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0x1 - bl StartSpriteAnim -_0812237E: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - 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, r6 - bcc _08122358 -_0812239C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8122344 - - thumb_func_start sub_81223B0 -sub_81223B0: @ 81223B0 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - movs r4, 0 - cmp r4, r5 - bcs _081223F6 - ldr r7, =gSprites -_081223C0: - subs r0, r5, 0x1 - cmp r4, r0 - bne _081223DC - adds r0, r6, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - bl DestroySpriteAndFreeResources - b _081223EC - .pool -_081223DC: - adds r0, r6, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - bl DestroySprite -_081223EC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _081223C0 -_081223F6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81223B0 - - thumb_func_start sub_81223FC -sub_81223FC: @ 81223FC - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r0, r2, 24 - movs r3, 0 - cmp r3, r4 - bcs _0812243E - ldr r1, =gSprites - mov r12, r1 - movs r1, 0x1 - ands r0, r1 - lsls r5, r0, 2 - movs r7, 0x5 - negs r7, r7 -_0812241C: - adds r0, r6, r3 - 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 - orrs r0, r5 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r4 - bcc _0812241C -_0812243E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81223FC - - thumb_func_start sub_8122448 -@ void sub_8122448(int a1, u8 a2, u16 x, u16 y) -sub_8122448: @ 8122448 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 16 - lsrs r7, r2, 16 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - movs r0, 0x80 - ands r0, r4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x7F - ands r4, r0 - movs r3, 0 - cmp r3, r4 - bcs _081224C8 - ldr r5, =gSprites - lsls r0, r7, 16 - asrs r0, 16 - subs r0, 0x8 - mov r12, r0 -_0812247E: - subs r0, r4, 0x1 - cmp r3, r0 - bne _081224A0 - mov r0, r8 - cmp r0, 0 - beq _081224A0 - adds r2, r6, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r12 - strh r1, [r0, 0x24] - b _081224AE - .pool -_081224A0: - adds r2, r6, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r7, [r0, 0x24] -_081224AE: - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r9 - adds r1, 0x1 - strh r1, [r0, 0x22] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r4 - bcc _0812247E -_081224C8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8122448 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/menu_indicators.s b/asm/menu_indicators.s deleted file mode 100644 index b923b53d0..000000000 --- a/asm/menu_indicators.s +++ /dev/null @@ -1,1442 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81AF08C -sub_81AF08C: @ 81AF08C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r2, r1, r0 - cmp r3, 0x10 - bhi _081AF154 - lsls r0, r3, 2 - ldr r1, =_081AF0B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081AF0B8: - .4byte _081AF0FC - .4byte _081AF0FC - .4byte _081AF100 - .4byte _081AF104 - .4byte _081AF108 - .4byte _081AF10C - .4byte _081AF110 - .4byte _081AF114 - .4byte _081AF118 - .4byte _081AF11C - .4byte _081AF122 - .4byte _081AF12A - .4byte _081AF130 - .4byte _081AF138 - .4byte _081AF140 - .4byte _081AF146 - .4byte _081AF14E -_081AF0FC: - ldr r0, [r2, 0x4] - b _081AF158 -_081AF100: - ldrh r0, [r2, 0xC] - b _081AF158 -_081AF104: - ldrh r0, [r2, 0xE] - b _081AF158 -_081AF108: - ldrb r0, [r2, 0x10] - b _081AF158 -_081AF10C: - ldrb r0, [r2, 0x11] - b _081AF158 -_081AF110: - ldrb r0, [r2, 0x12] - b _081AF158 -_081AF114: - ldrb r0, [r2, 0x13] - b _081AF158 -_081AF118: - ldrb r0, [r2, 0x14] - b _081AF124 -_081AF11C: - ldrb r0, [r2, 0x14] - lsrs r0, 4 - b _081AF158 -_081AF122: - ldrb r0, [r2, 0x15] -_081AF124: - lsls r0, 28 - lsrs r0, 28 - b _081AF158 -_081AF12A: - ldrb r0, [r2, 0x15] - lsrs r0, 4 - b _081AF158 -_081AF130: - ldrb r0, [r2, 0x16] - lsls r0, 29 - lsrs r0, 29 - b _081AF158 -_081AF138: - ldrb r0, [r2, 0x16] - lsls r0, 26 - lsrs r0, 29 - b _081AF158 -_081AF140: - ldrb r0, [r2, 0x16] - lsrs r0, 6 - b _081AF158 -_081AF146: - ldrb r0, [r2, 0x17] - lsls r0, 26 - lsrs r0, 26 - b _081AF158 -_081AF14E: - ldrb r0, [r2, 0x17] - lsrs r0, 6 - b _081AF158 -_081AF154: - movs r0, 0x1 - negs r0, r0 -_081AF158: - pop {r1} - bx r1 - thumb_func_end sub_81AF08C - - thumb_func_start sub_81AF15C -sub_81AF15C: @ 81AF15C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r3, r1, r0 - cmp r4, 0x10 - bhi _081AF25C - lsls r0, r4, 2 - ldr r1, =_081AF188 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081AF188: - .4byte _081AF1CC - .4byte _081AF1CC - .4byte _081AF1D0 - .4byte _081AF1D4 - .4byte _081AF1D8 - .4byte _081AF1DC - .4byte _081AF1E0 - .4byte _081AF1E4 - .4byte _081AF1E8 - .4byte _081AF1F4 - .4byte _081AF202 - .4byte _081AF20E - .4byte _081AF21C - .4byte _081AF228 - .4byte _081AF236 - .4byte _081AF244 - .4byte _081AF250 -_081AF1CC: - str r2, [r3, 0x4] - b _081AF25C -_081AF1D0: - strh r2, [r3, 0xC] - b _081AF25C -_081AF1D4: - strh r2, [r3, 0xE] - b _081AF25C -_081AF1D8: - strb r2, [r3, 0x10] - b _081AF25C -_081AF1DC: - strb r2, [r3, 0x11] - b _081AF25C -_081AF1E0: - strb r2, [r3, 0x12] - b _081AF25C -_081AF1E4: - strb r2, [r3, 0x13] - b _081AF25C -_081AF1E8: - movs r0, 0xF - ands r2, r0 - ldrb r1, [r3, 0x14] - movs r0, 0x10 - negs r0, r0 - b _081AF1FA -_081AF1F4: - lsls r2, 4 - ldrb r1, [r3, 0x14] - movs r0, 0xF -_081AF1FA: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x14] - b _081AF25C -_081AF202: - movs r0, 0xF - ands r2, r0 - ldrb r1, [r3, 0x15] - movs r0, 0x10 - negs r0, r0 - b _081AF214 -_081AF20E: - lsls r2, 4 - ldrb r1, [r3, 0x15] - movs r0, 0xF -_081AF214: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x15] - b _081AF25C -_081AF21C: - movs r0, 0x7 - ands r2, r0 - ldrb r1, [r3, 0x16] - movs r0, 0x8 - negs r0, r0 - b _081AF23C -_081AF228: - movs r0, 0x7 - ands r2, r0 - lsls r2, 3 - ldrb r1, [r3, 0x16] - movs r0, 0x39 - negs r0, r0 - b _081AF23C -_081AF236: - lsls r2, 6 - ldrb r1, [r3, 0x16] - movs r0, 0x3F -_081AF23C: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x16] - b _081AF25C -_081AF244: - movs r0, 0x3F - ands r2, r0 - ldrb r1, [r3, 0x17] - movs r0, 0x40 - negs r0, r0 - b _081AF256 -_081AF250: - lsls r2, 6 - ldrb r1, [r3, 0x17] - movs r0, 0x3F -_081AF256: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x17] -_081AF25C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81AF15C - - thumb_func_start sub_81AF264 -sub_81AF264: @ 81AF264 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081AF276 - cmp r0, 0x1 - beq _081AF28A - b _081AF2E4 -_081AF276: - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _081AF2E4 -_081AF28A: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081AF29A - cmp r0, 0x1 - beq _081AF2C0 - ldrh r2, [r4, 0x38] - b _081AF2DE -_081AF29A: - movs r0, 0x34 - ldrsh r3, [r4, r0] - ldr r1, =gSineTable - ldrh r2, [r4, 0x38] - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r3 - cmp r0, 0 - bge _081AF2B4 - adds r0, 0xFF -_081AF2B4: - asrs r0, 8 - strh r0, [r4, 0x24] - b _081AF2DE - .pool -_081AF2C0: - movs r0, 0x34 - ldrsh r3, [r4, r0] - ldr r1, =gSineTable - ldrh r2, [r4, 0x38] - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r3 - cmp r0, 0 - bge _081AF2DA - adds r0, 0xFF -_081AF2DA: - asrs r0, 8 - strh r0, [r4, 0x26] -_081AF2DE: - ldrh r0, [r4, 0x36] - adds r0, r2, r0 - strh r0, [r4, 0x38] -_081AF2E4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AF264 - - thumb_func_start AddScrollIndicatorArrowObject -AddScrollIndicatorArrowObject: @ 81AF2F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - adds r6, r0, 0 - ldr r5, [sp, 0x30] - lsls r6, 24 - lsrs r6, 24 - mov r8, r6 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r5, 16 - lsrs r5, 16 - mov r12, r5 - mov r4, sp - ldr r0, =gUnknown_08614244 - ldm r0!, {r5-r7} - stm r4!, {r5-r7} - ldm r0!, {r5-r7} - stm r4!, {r5-r7} - mov r0, sp - movs r4, 0 - strh r3, [r0] - mov r3, r12 - strh r3, [r0, 0x2] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r1 - adds r5, r3, 0 - adds r5, 0x3E - ldrb r1, [r5] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r5] - strh r4, [r3, 0x2E] - ldr r1, =gUnknown_086141FC - mov r5, r8 - lsls r6, r5, 2 - adds r6, r1 - ldrb r2, [r6] - lsls r1, r2, 28 - lsrs r1, 28 - strh r1, [r3, 0x30] - lsrs r2, 4 - strh r2, [r3, 0x32] - ldrb r1, [r6, 0x1] - strh r1, [r3, 0x34] - ldrh r1, [r6, 0x2] - strh r1, [r3, 0x36] - strh r4, [r3, 0x38] - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddScrollIndicatorArrowObject - - thumb_func_start AddScrollIndicatorArrowPair -AddScrollIndicatorArrowPair: @ 81AF380 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - adds r6, r0, 0 - mov r9, r1 - ldr r0, =gUnknown_086142C8 - str r0, [sp, 0x4] - ldr r5, =0xffff0000 - ldr r0, [sp, 0x8] - ands r0, r5 - movs r1, 0x80 - lsls r1, 1 - orrs r0, r1 - ldrh r1, [r6, 0xA] - lsls r1, 16 - ldr r4, =0x0000ffff - ands r0, r4 - orrs r0, r1 - str r0, [sp, 0x8] - add r0, sp, 0x4 - bl LoadCompressedObjectPic - ldrh r2, [r6, 0xC] - cmp r2, r4 - bne _081AF3DC - ldr r0, =gUnknown_086142A8 - ldrb r1, [r6, 0xE] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - b _081AF3EE - .pool -_081AF3DC: - ldr r0, =gUnknown_086142A8 - str r0, [sp, 0xC] - add r0, sp, 0xC - ldr r1, [r0, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpritePalette -_081AF3EE: - ldr r0, =Task_ScrollIndicatorArrowPair - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r7, r0, r1 - movs r0, 0 - strb r0, [r7] - mov r0, r9 - str r0, [r7, 0x4] - ldrh r0, [r6, 0x6] - strh r0, [r7, 0x8] - ldrh r0, [r6, 0x8] - strh r0, [r7, 0xA] - ldrh r0, [r6, 0xA] - strh r0, [r7, 0xE] - ldrh r0, [r6, 0xC] - strh r0, [r7, 0x10] - ldrb r0, [r6] - ldrb r1, [r6, 0x1] - ldrb r2, [r6, 0x2] - ldrh r3, [r6, 0xA] - ldrh r4, [r6, 0xC] - str r4, [sp] - bl AddScrollIndicatorArrowObject - strb r0, [r7, 0xC] - ldrb r0, [r6, 0x3] - ldrb r1, [r6, 0x4] - ldrb r2, [r6, 0x5] - ldrh r3, [r6, 0xA] - ldrh r4, [r6, 0xC] - str r4, [sp] - bl AddScrollIndicatorArrowObject - strb r0, [r7, 0xD] - ldrh r1, [r6, 0xC] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _081AF47C - ldr r5, =gSprites - ldrb r0, [r7, 0xC] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r6, 0xE] - lsls r3, 4 - ldrb r4, [r1, 0x5] - movs r2, 0xF - adds r0, r2, 0 - ands r0, r4 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r7, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r6, 0xE] - lsls r1, 4 - ldrb r3, [r0, 0x5] - ands r2, r3 - orrs r2, r1 - strb r2, [r0, 0x5] -_081AF47C: - mov r0, r8 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddScrollIndicatorArrowPair - - thumb_func_start AddScrollIndicatorArrowPairParametrized -AddScrollIndicatorArrowPairParametrized: @ 81AF4A0 - push {r4,lr} - adds r4, r1, 0 - subs r0, 0x2 - cmp r0, 0x1 - bhi _081AF4C4 - ldr r0, =gUnknown_0203CE8C - movs r1, 0x2 - strb r1, [r0] - strb r4, [r0, 0x1] - strb r2, [r0, 0x2] - movs r1, 0x3 - strb r1, [r0, 0x3] - strb r4, [r0, 0x4] - strb r3, [r0, 0x5] - b _081AF4D6 - .pool -_081AF4C4: - ldr r0, =gUnknown_0203CE8C - movs r1, 0 - strb r1, [r0] - strb r2, [r0, 0x1] - strb r4, [r0, 0x2] - movs r1, 0x1 - strb r1, [r0, 0x3] - strb r3, [r0, 0x4] - strb r4, [r0, 0x5] -_081AF4D6: - adds r2, r0, 0 - movs r1, 0 - movs r0, 0 - strh r0, [r2, 0x6] - ldr r0, [sp, 0x8] - strh r0, [r2, 0x8] - ldr r0, [sp, 0xC] - strh r0, [r2, 0xA] - ldr r0, [sp, 0x10] - strh r0, [r2, 0xC] - strb r1, [r2, 0xE] - adds r0, r2, 0 - ldr r1, [sp, 0x14] - bl AddScrollIndicatorArrowPair - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end AddScrollIndicatorArrowPairParametrized - - thumb_func_start Task_ScrollIndicatorArrowPair -Task_ScrollIndicatorArrowPair: @ 81AF504 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - ldr r0, [r4, 0x4] - ldrh r5, [r0] - ldrh r0, [r4, 0x8] - cmp r5, r0 - bne _081AF548 - ldr r0, =0x0000ffff - cmp r5, r0 - beq _081AF548 - ldr r3, =gSprites - ldrb r1, [r4, 0xC] - 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 - b _081AF55E - .pool -_081AF548: - ldr r3, =gSprites - ldrb r1, [r4, 0xC] - 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 -_081AF55E: - strb r1, [r0] - ldrh r0, [r4, 0xA] - cmp r5, r0 - bne _081AF580 - ldrb r1, [r4, 0xD] - 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 - b _081AF594 - .pool -_081AF580: - ldrb r1, [r4, 0xD] - 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 -_081AF594: - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end Task_ScrollIndicatorArrowPair - - thumb_func_start Task_ScrollIndicatorArrowPairOnMainMenu -Task_ScrollIndicatorArrowPairOnMainMenu: @ 81AF59C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081AF5E8 - ldr r3, =gSprites - ldrb r1, [r4, 0xC] - 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] - ldrb r1, [r4, 0xD] - 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 - b _081AF612 - .pool -_081AF5E8: - ldr r3, =gSprites - ldrb r1, [r4, 0xC] - 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] - ldrb r1, [r4, 0xD] - 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 -_081AF612: - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Task_ScrollIndicatorArrowPairOnMainMenu - - thumb_func_start RemoveScrollIndicatorArrowPair -RemoveScrollIndicatorArrowPair: @ 81AF620 - 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, =gTasks + 0x8 - adds r5, r0, r1 - ldrh r0, [r5, 0xE] - ldr r4, =0x0000ffff - cmp r0, r4 - beq _081AF63E - bl FreeSpriteTilesByTag -_081AF63E: - ldrh r0, [r5, 0x10] - cmp r0, r4 - beq _081AF648 - bl FreeSpritePaletteByTag -_081AF648: - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - bl DestroySprite - ldrb r1, [r5, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r0, r6, 0 - bl DestroyTask - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end RemoveScrollIndicatorArrowPair - - thumb_func_start ListMenuAddCursorObjectInternal -ListMenuAddCursorObjectInternal: @ 81AF680 - push {lr} - cmp r1, 0 - beq _081AF68A - cmp r1, 0x1 - beq _081AF690 -_081AF68A: - bl ListMenuAddRedOutlineCursorObject - b _081AF694 -_081AF690: - bl ListMenuAddRedArrowCursorObject -_081AF694: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end ListMenuAddCursorObjectInternal - - thumb_func_start ListMenuUpdateCursorObject -@ void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 a4) -ListMenuUpdateCursorObject: @ 81AF69C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r3, 0 - beq _081AF6B4 - cmp r3, 0x1 - beq _081AF6BA - b _081AF6BE -_081AF6B4: - bl ListMenuUpdateRedOutlineCursorObject - b _081AF6BE -_081AF6BA: - bl ListMenuUpdateRedArrowCursorObject -_081AF6BE: - pop {r0} - bx r0 - thumb_func_end ListMenuUpdateCursorObject - - thumb_func_start ListMenuRemoveCursorObject -ListMenuRemoveCursorObject: @ 81AF6C4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r1, 0 - beq _081AF6D4 - cmp r1, 0x1 - beq _081AF6DA - b _081AF6DE -_081AF6D4: - bl ListMenuRemoveRedOutlineCursorObject - b _081AF6DE -_081AF6DA: - bl ListMenuRemoveRedArrowCursorObject -_081AF6DE: - pop {r0} - bx r0 - thumb_func_end ListMenuRemoveCursorObject - - thumb_func_start Task_RedOutlineCursor -Task_RedOutlineCursor: @ 81AF6E4 - bx lr - thumb_func_end Task_RedOutlineCursor - - thumb_func_start ListMenuGetRedOutlineCursorSpriteCount -ListMenuGetRedOutlineCursorSpriteCount: @ 81AF6E8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - movs r3, 0x4 - cmp r0, 0x10 - bls _081AF708 - movs r2, 0x8 - subs r0, 0x8 - cmp r2, r0 - bge _081AF708 -_081AF700: - adds r3, 0x2 - adds r2, 0x8 - cmp r2, r0 - blt _081AF700 -_081AF708: - cmp r1, 0x10 - bls _081AF71C - movs r2, 0x8 - subs r1, 0x8 - cmp r2, r1 - bge _081AF71C -_081AF714: - adds r3, 0x2 - adds r2, 0x8 - cmp r2, r1 - blt _081AF714 -_081AF71C: - lsls r0, r3, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end ListMenuGetRedOutlineCursorSpriteCount - - thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable -ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 81AF724 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r3, r2, 0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r0, =gUnknown_0861425C - ldr r0, [r0] - str r0, [r3] - movs r1, 0x88 - strb r1, [r3] - strb r1, [r3, 0x1] - ldr r0, =gUnknown_08614260 - ldr r0, [r0] - str r0, [r3, 0x4] - mov r2, r8 - adds r2, 0x80 - strb r2, [r3, 0x4] - strb r1, [r3, 0x5] - ldr r0, =gUnknown_08614274 - ldr r0, [r0] - str r0, [r3, 0x8] - strb r1, [r3, 0x8] - mov r4, r9 - adds r4, 0x80 - strb r4, [r3, 0x9] - ldr r0, =gUnknown_08614278 - ldr r0, [r0] - str r0, [r3, 0xC] - strb r2, [r3, 0xC] - strb r4, [r3, 0xD] - movs r0, 0x4 - mov r12, r0 - mov r2, r8 - cmp r2, 0x10 - bls _081AF7B8 - movs r2, 0x8 - mov r5, r8 - subs r5, 0x8 - cmp r2, r5 - bge _081AF7B8 - ldr r0, =gUnknown_08614264 - ldr r0, [r0] - str r0, [sp] - ldr r0, =gUnknown_08614270 - ldr r6, [r0] - adds r1, r3, 0 - adds r1, 0x10 - movs r7, 0x88 - mov r10, r7 -_081AF796: - ldr r0, [sp] - str r0, [r1] - adds r0, r2, 0 - subs r0, 0x78 - strb r0, [r1] - mov r7, r10 - strb r7, [r1, 0x1] - adds r1, 0x4 - str r6, [r1] - strb r0, [r1] - strb r4, [r1, 0x1] - adds r1, 0x4 - movs r0, 0x2 - add r12, r0 - adds r2, 0x8 - cmp r2, r5 - blt _081AF796 -_081AF7B8: - mov r2, r9 - cmp r2, 0x10 - bls _081AF7F6 - movs r1, 0x8 - mov r4, r9 - subs r4, 0x8 - cmp r1, r4 - bge _081AF7F6 - ldr r0, =gUnknown_08614268 - ldr r6, [r0] - ldr r0, =gUnknown_0861426C - ldr r5, [r0] - mov r7, r12 - lsls r0, r7, 2 - adds r2, r0, r3 - movs r7, 0x88 - mov r3, r8 - adds r3, 0x80 -_081AF7DC: - str r6, [r2] - strb r7, [r2] - adds r0, r1, 0 - subs r0, 0x78 - strb r0, [r2, 0x1] - adds r2, 0x4 - str r5, [r2] - strb r3, [r2] - strb r0, [r2, 0x1] - adds r2, 0x4 - adds r1, 0x8 - cmp r1, r4 - blt _081AF7DC -_081AF7F6: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ListMenuSetUpRedOutlineCursorSpriteOamTable - - thumb_func_start ListMenuAddRedOutlineCursorObject -ListMenuAddRedOutlineCursorObject: @ 81AF828 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - adds r6, r0, 0 - ldr r0, =gUnknown_08614338 - str r0, [sp, 0x18] - ldr r5, =0xffff0000 - add r0, sp, 0x18 - ldr r1, [r0, 0x4] - ands r1, r5 - movs r2, 0x80 - lsls r2, 1 - orrs r1, r2 - ldrh r2, [r6, 0x6] - lsls r2, 16 - ldr r3, =0x0000ffff - ands r1, r3 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadCompressedObjectPic - ldrh r2, [r6, 0x8] - ldr r7, =0x0000ffff - cmp r2, r7 - bne _081AF884 - ldr r0, =gUnknown_086142A8 - ldrb r1, [r6, 0xA] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - b _081AF896 - .pool -_081AF884: - ldr r0, =gUnknown_086142A8 - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpritePalette -_081AF896: - ldr r0, =Task_RedOutlineCursor - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldrh r0, [r6, 0x6] - movs r3, 0 - mov r8, r3 - strh r0, [r5, 0xE] - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x10] - ldrh r0, [r6, 0x2] - ldrh r1, [r6, 0x4] - bl ListMenuGetRedOutlineCursorSpriteCount - strb r0, [r5] - ldrb r0, [r5] - lsls r0, 2 - bl Alloc - adds r2, r0, 0 - str r2, [r5, 0x8] - str r2, [r5, 0x4] - ldrh r0, [r6, 0x2] - ldrh r1, [r6, 0x4] - bl ListMenuSetUpRedOutlineCursorSpriteOamTable - mov r1, sp - ldr r0, =gDummySpriteTemplate - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - mov r1, sp - ldrh r0, [r6, 0x6] - strh r0, [r1] - ldrh r0, [r6, 0x8] - strh r0, [r1, 0x2] - ldrb r1, [r6] - adds r1, 0x78 - ldrb r2, [r6, 0x1] - adds r2, 0x78 - mov r0, sp - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0xC] - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r7, =gSprites - adds r0, r7 - adds r1, r5, 0 - bl SetSubspriteTables - ldrb r0, [r5, 0xC] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x43 - mov r1, r8 - strb r1, [r0] - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x42 - ldrb r2, [r0] - movs r1, 0x40 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrh r1, [r6, 0x8] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _081AF96E - ldrb r0, [r5, 0xC] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r6, 0xA] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_081AF96E: - adds r0, r4, 0 - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ListMenuAddRedOutlineCursorObject - - thumb_func_start ListMenuUpdateRedOutlineCursorObject -@ void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y) -ListMenuUpdateRedOutlineCursorObject: @ 81AF994 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - ldr r0, =gTasks + 0x8 - adds r3, r0 - ldr r5, =gSprites - ldrb r4, [r3, 0xC] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - adds r1, 0x78 - strh r1, [r0, 0x20] - ldrb r1, [r3, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r2, 0x78 - strh r2, [r0, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ListMenuUpdateRedOutlineCursorObject - - thumb_func_start ListMenuRemoveRedOutlineCursorObject -ListMenuRemoveRedOutlineCursorObject: @ 81AF9D8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r0, [r4, 0x8] - bl Free - ldrh r0, [r4, 0xE] - ldr r6, =0x0000ffff - cmp r0, r6 - beq _081AF9FC - bl FreeSpriteTilesByTag -_081AF9FC: - ldrh r0, [r4, 0x10] - cmp r0, r6 - beq _081AFA06 - bl FreeSpritePaletteByTag -_081AFA06: - ldrb r1, [r4, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0 - bl DestroyTask - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ListMenuRemoveRedOutlineCursorObject - - thumb_func_start ObjectCB_RedArrowCursor -ObjectCB_RedArrowCursor: @ 81AFA30 - push {lr} - adds r2, r0, 0 - ldr r1, =gSineTable - ldrh r3, [r2, 0x2E] - lsls r0, r3, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _081AFA48 - adds r0, 0x3F -_081AFA48: - asrs r0, 6 - strh r0, [r2, 0x24] - adds r0, r3, 0 - adds r0, 0x8 - strh r0, [r2, 0x2E] - pop {r0} - bx r0 - .pool - thumb_func_end ObjectCB_RedArrowCursor - - thumb_func_start Task_RedArrowCursor -Task_RedArrowCursor: @ 81AFA5C - bx lr - thumb_func_end Task_RedArrowCursor - - thumb_func_start ListMenuAddRedArrowCursorObject -ListMenuAddRedArrowCursorObject: @ 81AFA60 - push {r4-r7,lr} - sub sp, 0x28 - adds r5, r0, 0 - ldr r0, =gUnknown_08614378 - str r0, [sp, 0x18] - ldr r6, =0xffff0000 - add r0, sp, 0x18 - ldr r1, [r0, 0x4] - ands r1, r6 - movs r2, 0x80 - orrs r1, r2 - ldrh r2, [r5, 0x6] - lsls r2, 16 - ldr r4, =0x0000ffff - ands r1, r4 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadCompressedObjectPic - ldrh r2, [r5, 0x8] - cmp r2, r4 - bne _081AFAB4 - ldr r0, =gUnknown_086142A8 - ldrb r1, [r5, 0xA] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - b _081AFAC6 - .pool -_081AFAB4: - ldr r0, =gUnknown_086142A8 - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r6 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpritePalette -_081AFAC6: - ldr r0, =Task_RedArrowCursor - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x4] - mov r1, sp - ldr r0, =gUnknown_08614290 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - mov r1, sp - ldrh r0, [r5, 0x6] - strh r0, [r1] - ldrh r0, [r5, 0x8] - strh r0, [r1, 0x2] - ldrb r1, [r5] - ldrb r2, [r5, 0x1] - mov r0, sp - movs r3, 0 - bl CreateSprite - strb r0, [r4] - ldr r3, =gSprites - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x8 - strh r2, [r0, 0x24] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x26] - ldrh r1, [r5, 0x8] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _081AFB46 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0xA] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_081AFB46: - adds r0, r6, 0 - add sp, 0x28 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ListMenuAddRedArrowCursorObject - - thumb_func_start ListMenuUpdateRedArrowCursorObject -@ void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y) -ListMenuUpdateRedArrowCursorObject: @ 81AFB68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - ldr r0, =gTasks + 0x8 - adds r3, r0 - ldr r5, =gSprites - ldrb r4, [r3] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - strh r1, [r0, 0x20] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ListMenuUpdateRedArrowCursorObject - - thumb_func_start ListMenuRemoveRedArrowCursorObject -ListMenuRemoveRedArrowCursorObject: @ 81AFBA0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - ldr r6, =0x0000ffff - cmp r0, r6 - beq _081AFBBE - bl FreeSpriteTilesByTag -_081AFBBE: - ldrh r0, [r4, 0x4] - cmp r0, r6 - beq _081AFBC8 - bl FreeSpritePaletteByTag -_081AFBC8: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0 - bl DestroyTask - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ListMenuRemoveRedArrowCursorObject - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/party_menu.s b/asm/party_menu.s index 185d26109..4001b7144 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -10231,7 +10231,7 @@ task_launch_hm_phase_2: @ 81B5750 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_80ABDFC + bl IsWeatherNotFadingIn lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -17337,7 +17337,7 @@ task_hm_without_phase_2: @ 81B93E0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_80ABDFC + bl IsWeatherNotFadingIn lsls r0, 24 cmp r0, 0 beq _081B93FE diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 111093bee..5988eb732 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -245,7 +245,7 @@ _080C72AC: b _080C7318 .pool _080C730C: - bl sub_80ABDFC + bl IsWeatherNotFadingIn lsls r0, 24 cmp r0, 0 bne _080C7318 diff --git a/asm/pokenav.s b/asm/pokenav.s index 9c42ed730..2cc643547 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -1568,7 +1568,7 @@ sub_81C7E58: @ 81C7E58 ldr r2, [r6] mov r8, r2 mov r0, r8 - bl sub_8034974 + bl GetDecompressedDataSize adds r5, r0, 0 lsls r4, 5 ldr r0, =gPokenavLeftHeader_Pal @@ -1650,7 +1650,7 @@ sub_81C7F24: @ 81C7F24 adds r1, r2 ldr r6, [r1] adds r0, r6, 0 - bl sub_8034974 + bl GetDecompressedDataSize adds r5, r0, 0 lsls r4, 5 ldr r0, =gPokenavLeftHeader_Pal @@ -26676,7 +26676,7 @@ _081D4B3A: bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 - bl sub_80ABE18 + bl UpdateSpritePaletteWithWeather ldrh r1, [r5, 0x10] mov r0, sp strh r1, [r0] diff --git a/asm/record_mixing.s b/asm/record_mixing.s deleted file mode 100644 index acfcf48ed..000000000 --- a/asm/record_mixing.s +++ /dev/null @@ -1,3711 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80E6BE8 -sub_80E6BE8: @ 80E6BE8 - push {lr} - ldr r0, =sub_80E715C - bl sub_80B37D4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6BE8 - - thumb_func_start sub_80E6BF8 -sub_80E6BF8: @ 80E6BF8 - push {r4,lr} - ldr r2, =gUnknown_03001134 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r3, =0x00001a9c - adds r0, r1, r3 - str r0, [r2] - ldr r2, =gUnknown_03001138 - ldr r4, =0x000027cc - adds r0, r1, r4 - str r0, [r2] - ldr r2, =gUnknown_0300113C - ldr r3, =0x00002b50 - adds r0, r1, r3 - str r0, [r2] - ldr r2, =gUnknown_03001140 - ldr r4, =0x00002e28 - adds r0, r1, r4 - str r0, [r2] - ldr r2, =gUnknown_03001144 - ldr r3, =0x00002e68 - adds r0, r1, r3 - str r0, [r2] - ldr r2, =gUnknown_03001148 - ldr r0, =gUnknown_02039F9C - str r0, [r2] - ldr r2, =gUnknown_0300114C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r4, =0x0000064c - adds r3, r0, r4 - str r3, [r2] - ldr r2, =gUnknown_03001150 - ldr r4, =0x00003b58 - adds r1, r4 - str r1, [r2] - ldr r1, =gUnknown_03001154 - adds r0, 0xDC - str r0, [r1] - ldr r0, =gUnknown_03001158 - str r3, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6BF8 - - thumb_func_start sub_80E6CA0 -sub_80E6CA0: @ 80E6CA0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =gUnknown_03001134 - ldr r1, [r0] - movs r4, 0xC8 - lsls r4, 4 - adds r0, r5, 0 - adds r2, r4, 0 - bl memcpy - adds r4, r5, r4 - ldr r0, =gUnknown_03001138 - ldr r1, [r0] - movs r2, 0xE1 - lsls r2, 2 - adds r0, r4, 0 - bl memcpy - adds r0, r4, 0 - bl sub_80F14F8 - ldr r1, =0x00001004 - adds r0, r5, r1 - ldr r1, =gUnknown_0300113C - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r2, =0x00001044 - adds r0, r5, r2 - ldr r1, =gUnknown_03001140 - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r1, =0x00001084 - adds r0, r5, r1 - ldr r1, =gUnknown_03001144 - ldr r1, [r1] - movs r2, 0x28 - bl memcpy - ldr r2, =0x000010ac - adds r0, r5, r2 - bl sub_80E89F8 - ldr r0, =gUnknown_0300114C - ldr r0, [r0] - ldr r2, =0x00001124 - adds r1, r5, r2 - bl sub_81659DC - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080E6D1C - bl GetRecordMixingGift - ldr r2, =0x000011c8 - adds r1, r5, r2 - strh r0, [r1] -_080E6D1C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6CA0 - - thumb_func_start sub_80E6D54 -sub_80E6D54: @ 80E6D54 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =gUnknown_03001134 - ldr r1, [r0] - movs r4, 0xC8 - lsls r4, 4 - adds r0, r5, 0 - adds r2, r4, 0 - bl memcpy - adds r0, r5, 0 - bl sub_80EB18C - adds r4, r5, r4 - ldr r0, =gUnknown_03001138 - ldr r1, [r0] - movs r2, 0xE1 - lsls r2, 2 - adds r0, r4, 0 - bl memcpy - adds r0, r4, 0 - bl sub_80F1208 - ldr r1, =0x00001004 - adds r0, r5, r1 - ldr r1, =gUnknown_0300113C - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r2, =0x00001044 - adds r4, r5, r2 - ldr r0, =gUnknown_03001140 - ldr r1, [r0] - adds r0, r4, 0 - movs r2, 0x40 - bl memcpy - adds r0, r4, 0 - bl sub_8120B70 - ldr r1, =0x00001084 - adds r0, r5, r1 - ldr r1, =gUnknown_03001144 - ldr r1, [r1] - movs r2, 0x28 - bl memcpy - ldr r2, =0x000010ac - adds r4, r5, r2 - adds r0, r4, 0 - bl sub_80E89F8 - adds r0, r4, 0 - bl sub_80E8A54 - ldr r0, =gUnknown_0300114C - ldr r0, [r0] - ldr r1, =0x00001124 - adds r4, r5, r1 - adds r1, r4, 0 - bl sub_81659DC - adds r0, r4, 0 - bl TaskDummy4 - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080E6DEE - bl GetRecordMixingGift - ldr r2, =0x000011c8 - adds r1, r5, r2 - strh r0, [r1] -_080E6DEE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6D54 - - thumb_func_start sub_80E6E24 -sub_80E6E24: @ 80E6E24 - push {r4,r5,lr} - bl sub_80E9914 - bl sub_80F0BB8 - bl sub_80E6BF8 - bl sub_800A064 - cmp r0, 0 - beq _080E6E60 - bl sub_800A03C - cmp r0, 0 - bne _080E6E50 - ldr r0, =gUnknown_0203A018 - ldr r0, [r0] - bl sub_80E6CA0 - b _080E6F12 - .pool -_080E6E50: - ldr r0, =gUnknown_0203A018 - ldr r0, [r0] - bl sub_80E6D54 - b _080E6F12 - .pool -_080E6E60: - ldr r5, =gUnknown_0203A018 - ldr r0, [r5] - ldr r1, =gUnknown_03001134 - ldr r1, [r1] - movs r4, 0xC8 - lsls r4, 4 - adds r2, r4, 0 - bl memcpy - ldr r0, [r5] - adds r0, r4 - ldr r1, =gUnknown_03001138 - ldr r1, [r1] - movs r2, 0xE1 - lsls r2, 2 - bl memcpy - ldr r0, [r5] - ldr r1, =0x00001004 - adds r0, r1 - ldr r1, =gUnknown_0300113C - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r0, [r5] - ldr r2, =0x00001044 - adds r0, r2 - ldr r1, =gUnknown_03001140 - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r0, [r5] - ldr r1, =0x00001214 - adds r0, r1 - ldr r1, =gUnknown_03001150 - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r0, [r5] - ldr r2, =0x00001084 - adds r0, r2 - ldr r1, =gUnknown_03001144 - ldr r1, [r1] - movs r2, 0x28 - bl memcpy - ldr r0, [r5] - ldr r1, =0x000010ac - adds r0, r1 - bl sub_80E89F8 - ldr r0, [r5] - ldr r4, =0x00001124 - adds r0, r4 - ldr r1, =gUnknown_0300114C - ldr r1, [r1] - movs r2, 0xEC - bl memcpy - ldr r0, [r5] - adds r0, r4 - bl sub_80E8AC0 - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080E6EFA - bl GetRecordMixingGift - ldr r1, [r5] - ldr r2, =0x00001210 - adds r1, r2 - strh r0, [r1] -_080E6EFA: - ldr r0, [r5] - ldr r1, =0x00001254 - adds r0, r1 - ldr r1, =gUnknown_03001154 - ldr r1, [r1] - bl sub_80E8110 - ldr r0, [r5] - ldr r2, =0x000012dc - adds r0, r2 - bl sub_80E8260 -_080E6F12: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6E24 - - thumb_func_start sub_80E6F60 -sub_80E6F60: @ 80E6F60 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - bl sub_800A064 - cmp r0, 0 - beq _080E7014 - ldr r5, =gUnknown_0203A014 - ldr r0, [r5] - movs r1, 0xC8 - lsls r1, 4 - mov r8, r1 - add r0, r8 - bl sub_80E7B2C - ldr r0, [r5] - ldr r6, =0x00001230 - lsls r4, 24 - lsrs r4, 24 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80EAF80 - ldr r3, [r5] - ldr r1, =0x000010ac - adds r0, r3, r1 - add r3, r8 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80E7B60 - ldr r0, [r5] - ldr r1, =0x00001124 - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80E7948 - ldr r0, [r5] - add r0, r8 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80F01E8 - ldr r0, [r5] - ldr r1, =0x00001004 - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80F0C7C - ldr r0, [r5] - ldr r1, =0x00001044 - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80E78C4 - ldr r0, [r5] - ldr r1, =0x00001084 - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_812287C - ldr r0, [r5] - ldr r1, =0x000011c8 - adds r0, r1 - adds r1, r4, 0 - bl sub_80E7F68 - b _080E70BE - .pool -_080E7014: - ldr r5, =gUnknown_0203A014 - ldr r0, [r5] - movs r1, 0xC8 - lsls r1, 4 - mov r8, r1 - add r0, r8 - bl sub_80E7B2C - ldr r0, [r5] - ldr r6, =0x00001444 - lsls r4, 24 - lsrs r4, 24 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80EAF80 - ldr r0, [r5] - add r0, r8 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80F01E8 - ldr r0, [r5] - ldr r1, =0x00001004 - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80F0C7C - ldr r0, [r5] - ldr r1, =0x00001044 - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80E78C4 - ldr r0, [r5] - ldr r1, =0x00001084 - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_812287C - ldr r3, [r5] - ldr r1, =0x000010ac - adds r0, r3, r1 - add r3, r8 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80E7B60 - ldr r0, [r5] - ldr r1, =0x00001124 - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80E7948 - ldr r0, [r5] - ldr r1, =0x00001210 - adds r0, r1 - adds r1, r4, 0 - bl sub_80E7F68 - ldr r0, [r5] - ldr r1, =0x00001214 - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80E7A14 - ldr r0, [r5] - ldr r1, =0x00001254 - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80E8468 - ldr r0, [r5] - ldr r1, =0x000012dc - adds r0, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80E89AC -_080E70BE: - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6F60 - - thumb_func_start sub_80E70F4 -sub_80E70F4: @ 80E70F4 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0 - movs r1, 0 - bl NewMenuHelpers_DrawDialogueFrame - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E70F4 - - thumb_func_start sub_80E7128 -sub_80E7128: @ 80E7128 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - bne _080E7150 - movs r0, 0xE2 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x8] -_080E7150: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E7128 - - thumb_func_start sub_80E715C -sub_80E715C: @ 80E715C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x5 - bls _080E7176 - b _080E730A -_080E7176: - lsls r0, 2 - ldr r1, =_080E7188 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080E7188: - .4byte _080E71A0 - .4byte _080E7218 - .4byte _080E724C - .4byte _080E726C - .4byte _080E72AC - .4byte _080E72C0 -_080E71A0: - ldr r4, =gUnknown_0203A018 - ldr r0, =0x00001444 - bl Alloc - str r0, [r4] - ldr r4, =gUnknown_0203A014 - ldr r0, =0x00005110 - bl Alloc - str r0, [r4] - ldr r0, =gSpecialVar_0x8005 - ldrb r0, [r0] - bl sub_8009628 - movs r0, 0x80 - lsls r0, 7 - movs r1, 0x1 - bl VarSet - ldr r1, =gUnknown_03001130 - movs r0, 0 - strb r0, [r1] - bl sub_80E6E24 - bl sub_80FB00C - movs r0, 0x1 - strh r0, [r5] - ldr r0, =sub_80E7324 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - ldr r0, =sub_80E7128 - movs r1, 0x51 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1E] - b _080E730A - .pool -_080E7218: - ldr r2, =gTasks - movs r0, 0x14 - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080E730A - movs r0, 0x2 - strh r0, [r5] - ldr r0, =0x00000894 - bl FlagSet - bl sub_80FB074 - ldrb r0, [r5, 0x1E] - bl DestroyTask - b _080E730A - .pool -_080E724C: - ldr r0, =sub_80E7FF8 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - movs r0, 0x3 - strh r0, [r5] - movs r0, 0xE0 - bl PlaySE - b _080E730A - .pool -_080E726C: - ldr r2, =gTasks - movs r0, 0x14 - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r4, [r0, 0x4] - cmp r4, 0 - bne _080E730A - movs r0, 0x4 - strh r0, [r5] - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _080E7296 - bl sub_80B3050 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] -_080E7296: - ldr r0, =gText_RecordMixingComplete - bl sub_80E70F4 - strh r4, [r5, 0x10] - b _080E730A - .pool -_080E72AC: - ldrh r0, [r5, 0x10] - adds r0, 0x1 - strh r0, [r5, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080E730A - movs r0, 0x5 - strh r0, [r5] - b _080E730A -_080E72C0: - ldr r2, =gTasks - movs r0, 0x14 - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080E730A - ldr r0, =gUnknown_0203A014 - ldr r0, [r0] - bl Free - ldr r0, =gUnknown_0203A018 - ldr r0, [r0] - bl Free - bl sub_808729C - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - beq _080E72F8 - ldr r0, =sub_80AF2B4 - movs r1, 0xA - bl CreateTask -_080E72F8: - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080E730A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E715C - - thumb_func_start sub_80E7324 -sub_80E7324: @ 80E7324 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r6, =gTasks - adds r5, r0, r6 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0x64 - beq _080E73A0 - cmp r1, 0x64 - bgt _080E7362 - cmp r1, 0x1 - bne _080E7346 - b _080E7464 -_080E7346: - cmp r1, 0x1 - bgt _080E7354 - cmp r1, 0 - beq _080E7384 - b _080E7566 - .pool -_080E7354: - cmp r1, 0x2 - bne _080E735A - b _080E7490 -_080E735A: - cmp r1, 0x5 - bne _080E7360 - b _080E7550 -_080E7360: - b _080E7566 -_080E7362: - cmp r1, 0xC9 - beq _080E73F8 - cmp r1, 0xC9 - bgt _080E7370 - cmp r1, 0x65 - beq _080E73B8 - b _080E7566 -_080E7370: - ldr r0, =0x0000012d - cmp r1, r0 - beq _080E7432 - adds r0, 0x63 - cmp r1, r0 - beq _080E744A - b _080E7566 - .pool -_080E7384: - ldr r0, =gText_MixingRecords - bl sub_80E70F4 - movs r0, 0xE1 - lsls r0, 3 - strh r0, [r5, 0x18] - movs r0, 0xC8 - lsls r0, 1 - strh r0, [r5, 0x8] - bl ClearLinkCallback_2 - b _080E7566 - .pool -_080E73A0: - ldrh r0, [r5, 0x20] - adds r0, 0x1 - strh r0, [r5, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bgt _080E73B0 - b _080E7566 -_080E73B0: - movs r0, 0 - strh r0, [r5, 0x20] - movs r0, 0x65 - b _080E7564 -_080E73B8: - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r4, r0, 24 - bl IsLinkMaster - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E73EA - bl sub_800AA48 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - beq _080E73DA - b _080E7566 -_080E73DA: - movs r0, 0x15 - bl PlaySE - movs r1, 0 - movs r0, 0xC9 - strh r0, [r5, 0x8] - strh r1, [r5, 0x20] - b _080E7566 -_080E73EA: - movs r0, 0x16 - bl PlaySE - ldr r0, =0x0000012d - b _080E7564 - .pool -_080E73F8: - bl sub_800AA48 - adds r4, r0, 0 - bl GetLinkPlayerCount_2 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080E740C - b _080E7566 -_080E740C: - ldrh r4, [r5, 0x20] - adds r4, 0x1 - strh r4, [r5, 0x20] - lsls r4, 16 - asrs r4, 16 - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - cmp r4, r1 - bgt _080E742A - b _080E7566 -_080E742A: - bl sub_800A620 - movs r0, 0x1 - b _080E7564 -_080E7432: - bl sub_800AA48 - adds r4, r0, 0 - bl GetLinkPlayerCount_2 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080E7446 - b _080E7566 -_080E7446: - movs r0, 0x1 - b _080E7564 -_080E744A: - ldrh r0, [r5, 0x20] - adds r0, 0x1 - strh r0, [r5, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bgt _080E745A - b _080E7566 -_080E745A: - movs r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - strh r0, [r5, 0x20] - b _080E7566 -_080E7464: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080E746E - b _080E7566 -_080E746E: - ldr r4, =gStringVar1 - bl sub_80E7810 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r0, 0x5 - b _080E7564 - .pool -_080E7490: - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r5, 0x14] - strh r1, [r5, 0x8] - bl sub_80E7810 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - ldr r0, =sub_80E756C - str r0, [r5] - bl sub_800A064 - cmp r0, 0 - beq _080E7504 - ldr r0, =gUnknown_0203A018 - ldr r0, [r0] - adds r1, r5, 0 - adds r1, 0xC - bl sub_80E7808 - ldr r0, =sub_80E7630 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r0, r1, r6 - strh r4, [r0, 0x8] - ldr r0, =gUnknown_0203A014 - ldr r0, [r0] - adds r1, r6, r1 - adds r1, 0x12 - bl sub_80E7808 - ldr r1, =gUnknown_0300115C - ldr r0, =0x00001230 - str r0, [r1] - b _080E7566 - .pool -_080E7504: - ldr r0, =gUnknown_0203A018 - ldr r0, [r0] - adds r1, r5, 0 - adds r1, 0xC - bl sub_80E7808 - ldr r0, =sub_80E7630 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r0, r1, r6 - strh r4, [r0, 0x8] - ldr r0, =gUnknown_0203A014 - ldr r0, [r0] - adds r1, r6, r1 - adds r1, 0x12 - bl sub_80E7808 - ldr r1, =gUnknown_0300115C - ldr r0, =0x00001444 - str r0, [r1] - b _080E7566 - .pool -_080E7550: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080E7566 - movs r0, 0 - strh r0, [r5, 0x1C] - movs r0, 0x2 -_080E7564: - strh r0, [r5, 0x8] -_080E7566: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E7324 - - thumb_func_start sub_80E756C -sub_80E756C: @ 80E756C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r5, r1, r0 - movs r2, 0x8 - ldrsh r1, [r5, r2] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E7624 - lsls r0, r1, 2 - ldr r1, =_080E7598 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080E7598: - .4byte _080E75AC - .4byte _080E75D0 - .4byte _080E7624 - .4byte _080E75E2 - .4byte _080E760E -_080E75AC: - adds r0, r5, 0 - adds r0, 0xC - bl sub_80E77FC - adds r1, r0, 0 - movs r0, 0x10 - ldrsh r2, [r5, r0] - movs r0, 0xC8 - muls r0, r2 - adds r1, r0 - ldr r0, =gBlockSendBuffer - movs r2, 0xC8 - bl memcpy - b _080E75FC - .pool -_080E75D0: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080E75FC - movs r0, 0x1 - bl sub_800A4D8 - b _080E75FC -_080E75E2: - ldrh r0, [r5, 0x10] - adds r0, 0x1 - strh r0, [r5, 0x10] - movs r1, 0x10 - ldrsh r4, [r5, r1] - ldr r0, =gUnknown_0300115C - ldr r0, [r0] - movs r1, 0xC8 - bl __udivsi3 - adds r0, 0x1 - cmp r4, r0 - bne _080E7608 -_080E75FC: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080E7624 - .pool -_080E7608: - movs r0, 0 - strh r0, [r5, 0x8] - b _080E7624 -_080E760E: - movs r1, 0x1C - ldrsh r0, [r5, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _080E7624 - ldr r0, =sub_80E77D4 - str r0, [r5] -_080E7624: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E756C - - thumb_func_start sub_80E7630 -sub_80E7630: @ 80E7630 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r0, 2 - ldr r1, [sp] - adds r0, r1 - lsls r0, 3 - ldr r1, =gTasks - adds r0, r1 - mov r10, r0 - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - bl sub_800A9D8 - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp, 0x4] - cmp r3, r0 - bne _080E773E - movs r4, 0 - mov r8, r4 - b _080E771C - .pool -_080E7678: - ldr r1, [sp, 0x4] - mov r0, r8 - asrs r1, r0 - movs r0, 0x1 - ands r1, r0 - movs r2, 0x1 - add r2, r8 - mov r9, r2 - cmp r1, 0 - beq _080E7714 - mov r0, r10 - adds r0, 0x12 - bl sub_80E77FC - mov r3, r9 - lsls r4, r3, 1 - mov r5, r10 - adds r5, 0x8 - adds r4, r5, r4 - movs r2, 0 - ldrsh r1, [r4, r2] - movs r7, 0xC8 - muls r1, r7 - adds r0, r1 - ldr r3, =gUnknown_0300115C - ldr r1, [r3] - mov r2, r8 - muls r2, r1 - adds r1, r2, 0 - adds r6, r0, r1 - mov r0, r8 - bl sub_80E7820 - adds r1, r0, 0 - movs r3, 0 - ldrsh r2, [r4, r3] - adds r0, r2, 0x1 - muls r0, r7 - ldr r4, =gUnknown_0300115C - ldr r3, [r4] - cmp r0, r3 - bls _080E76DC - muls r2, r7 - subs r2, r3, r2 - adds r0, r6, 0 - bl memcpy - b _080E76E4 - .pool -_080E76DC: - adds r0, r6, 0 - movs r2, 0xC8 - bl memcpy -_080E76E4: - mov r0, r8 - bl ResetBlockReceivedFlag - mov r0, r9 - lsls r1, r0, 1 - adds r1, r5, r1 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r2, 0 - ldrsh r4, [r1, r2] - ldr r3, =gUnknown_0300115C - ldr r0, [r3] - movs r1, 0xC8 - bl __udivsi3 - adds r0, 0x1 - cmp r4, r0 - bne _080E7714 - ldr r0, [sp, 0x8] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] -_080E7714: - mov r4, r9 - lsls r0, r4, 24 - lsrs r0, 24 - mov r8, r0 -_080E771C: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r8, r0 - bcc _080E7678 - ldr r2, =gTasks - mov r0, r10 - movs r3, 0x8 - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] -_080E773E: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - ldr r4, [sp, 0x8] - cmp r4, r0 - bne _080E7752 - ldr r0, [sp] - bl DestroyTask -_080E7752: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E7630 - - thumb_func_start sub_80E776C -sub_80E776C: @ 80E776C - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r2, =gTasks - adds r0, r2 - movs r4, 0x1C - ldrsh r1, [r0, r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080E7794 - adds r0, r3, 0 - bl DestroyTask -_080E7794: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E776C - - thumb_func_start sub_80E77A0 -sub_80E77A0: @ 80E77A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r1, r0 - ldr r0, =sub_80E776C - str r0, [r1] - ldr r0, =gUnknown_03001130 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E77C4 - movs r2, 0x12 - ldrsh r0, [r1, r2] - bl sub_80E6F60 -_080E77C4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E77A0 - - thumb_func_start sub_80E77D4 -sub_80E77D4: @ 80E77D4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, =sub_80E77A0 - str r0, [r1] - ldr r1, =gUnknown_03001130 - movs r0, 0x1 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_80E77D4 - - thumb_func_start sub_80E77FC -sub_80E77FC: @ 80E77FC - adds r1, r0, 0 - ldrh r0, [r1] - ldrh r1, [r1, 0x2] - lsls r1, 16 - orrs r0, r1 - bx lr - thumb_func_end sub_80E77FC - - thumb_func_start sub_80E7808 -sub_80E7808: @ 80E7808 - strh r0, [r1] - lsrs r0, 16 - strh r0, [r1, 0x2] - bx lr - thumb_func_end sub_80E7808 - - thumb_func_start sub_80E7810 -sub_80E7810: @ 80E7810 - push {lr} - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80E7810 - - thumb_func_start sub_80E7820 -sub_80E7820: @ 80E7820 - lsls r0, 24 - lsrs r0, 16 - ldr r1, =gBlockRecvBuffer - adds r0, r1 - bx lr - .pool - thumb_func_end sub_80E7820 - - thumb_func_start sub_80E7830 -sub_80E7830: @ 80E7830 - push {r4,lr} - adds r4, r0, 0 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080E7868 - cmp r0, 0x3 - bhi _080E784A - cmp r0, 0x2 - beq _080E7850 - b _080E78B8 -_080E784A: - cmp r0, 0x4 - beq _080E7894 - b _080E78B8 -_080E7850: - movs r3, 0 - ldr r2, =gUnknown_0858CF8C - adds r1, r4, 0 -_080E7856: - adds r0, r3, r2 - ldrb r0, [r0] - stm r1!, {r0} - adds r3, 0x1 - cmp r3, 0x1 - bls _080E7856 - b _080E78B8 - .pool -_080E7868: - movs r0, 0 - bl GetLinkPlayerTrainerId - adds r2, r0, 0 - movs r0, 0x1 - ands r2, r0 - movs r3, 0 - ldr r1, =gUnknown_0858CF8E - lsls r0, r2, 1 - adds r0, r2 - adds r1, r0, r1 - adds r2, r4, 0 -_080E7880: - ldrb r0, [r1] - stm r2!, {r0} - adds r1, 0x1 - adds r3, 0x1 - cmp r3, 0x2 - bls _080E7880 - b _080E78B8 - .pool -_080E7894: - movs r0, 0 - bl GetLinkPlayerTrainerId - movs r1, 0x9 - bl __umodsi3 - adds r2, r0, 0 - movs r3, 0 - ldr r1, =gUnknown_0858CF94 - lsls r0, r2, 2 - adds r1, r0, r1 - adds r2, r4, 0 -_080E78AC: - ldrb r0, [r1] - stm r2!, {r0} - adds r1, 0x1 - adds r3, 0x1 - cmp r3, 0x3 - bls _080E78AC -_080E78B8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E7830 - - thumb_func_start sub_80E78C4 -sub_80E78C4: @ 80E78C4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - mov r9, r0 - mov r8, r1 - lsls r2, 24 - lsrs r7, r2, 24 - mov r0, sp - bl sub_80E7830 - lsls r0, r7, 2 - add r0, sp - ldr r1, [r0] - mov r0, r8 - muls r0, r1 - mov r2, r9 - adds r6, r2, r0 - ldr r2, =gLinkPlayers - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r4, [r0] - ldrh r5, [r0, 0x1A] - bl sub_800A064 - cmp r0, 0 - beq _080E7910 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8120D34 - b _080E791A - .pool -_080E7910: - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8120CD0 -_080E791A: - ldr r0, =gUnknown_03001140 - ldr r0, [r0] - lsls r1, r7, 2 - add r1, sp - ldr r1, [r1] - mov r2, r8 - muls r2, r1 - adds r1, r2, 0 - add r1, r9 - movs r2, 0x40 - bl memcpy - bl ResetMauvilleOldManFlag - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E78C4 - - thumb_func_start sub_80E7948 -sub_80E7948: @ 80E7948 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - mov r8, r0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - mov r0, sp - bl sub_80E7830 - bl sub_800A064 - cmp r0, 0 - beq _080E79AC - lsls r0, r6, 2 - mov r1, sp - adds r5, r1, r0 - ldr r0, [r5] - muls r0, r7 - add r0, r8 - adds r4, r7, 0 - muls r4, r6 - mov r1, r8 - adds r6, r1, r4 - adds r1, r6, 0 - bl sub_816587C - mov r9, r4 - cmp r0, 0x1 - bne _080E79FE - adds r7, r6, 0 - ldr r2, =gLinkPlayers - ldr r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x1A] - adds r0, r7, 0 - adds r0, 0xE4 - strb r1, [r0] - adds r0, r7, 0 - bl sub_8164F70 - b _080E79FE - .pool -_080E79AC: - adds r5, r7, 0 - muls r5, r6 - mov r0, r8 - adds r4, r0, r5 - lsls r0, r6, 2 - add r0, sp - ldr r0, [r0] - adds r1, r7, 0 - muls r1, r0 - add r1, r8 - adds r0, r4, 0 - movs r2, 0xEC - bl memcpy - adds r7, r4, 0 - movs r6, 0 - mov r9, r5 -_080E79CE: - movs r0, 0x2C - muls r0, r6 - adds r0, 0x34 - adds r1, r7, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _080E79F2 - adds r4, r1, 0 - adds r4, 0x20 - adds r0, r4, 0 - bl IsStringJapanese - cmp r0, 0 - beq _080E79F2 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString -_080E79F2: - adds r6, 0x1 - cmp r6, 0x3 - ble _080E79CE - adds r0, r7, 0 - bl sub_8164F70 -_080E79FE: - mov r0, r8 - add r0, r9 - bl sub_81628A0 - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E7948 - - thumb_func_start sub_80E7A14 -sub_80E7A14: @ 80E7A14 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - mov r8, r0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r5, r2, 24 - mov r0, sp - bl sub_80E7830 - adds r0, r7, 0 - muls r0, r5 - add r0, r8 - ldr r6, =gUnknown_03001150 - ldr r1, [r6] - movs r2, 0x40 - bl memcpy - bl GetLilycoveLadyId - lsls r0, 24 - cmp r0, 0 - bne _080E7A60 - movs r0, 0x40 - bl Alloc - adds r4, r0, 0 - cmp r4, 0 - beq _080E7A8A - ldr r1, [r6] - movs r2, 0x40 - bl memcpy - b _080E7A62 - .pool -_080E7A60: - movs r4, 0 -_080E7A62: - ldr r0, =gUnknown_03001150 - ldr r0, [r0] - lsls r1, r5, 2 - add r1, sp - ldr r1, [r1] - muls r1, r7 - add r1, r8 - movs r2, 0x40 - bl memcpy - bl sub_818DA78 - cmp r4, 0 - beq _080E7A8A - adds r0, r4, 0 - bl sub_818E570 - adds r0, r4, 0 - bl Free -_080E7A8A: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E7A14 - - thumb_func_start sub_80E7A9C -sub_80E7A9C: @ 80E7A9C - ldrh r0, [r0, 0x20] - lsls r0, 24 - lsrs r0, 24 - bx lr - thumb_func_end sub_80E7A9C - - thumb_func_start sub_80E7AA4 -sub_80E7AA4: @ 80E7AA4 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x38 - mov r8, r0 - mov r10, r1 - mov r9, r2 - adds r4, r3, 0 - ldr r5, [sp, 0x54] - lsls r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsrs r4, 23 - add r4, r9 - ldrb r0, [r4] - mov r6, r10 - muls r6, r0 - add r6, r8 - ldrb r0, [r4, 0x1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - adds r1, r6, r1 - mov r0, sp - movs r2, 0x38 - bl memcpy - lsls r5, 1 - add r5, r9 - ldrb r0, [r5] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r8, r0 - ldrb r1, [r4, 0x1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 3 - adds r6, r0 - ldrb r0, [r5, 0x1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - add r1, r8 - adds r0, r6, 0 - movs r2, 0x38 - bl memcpy - ldrb r1, [r5, 0x1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 3 - add r8, r0 - mov r0, r8 - mov r1, sp - movs r2, 0x38 - bl memcpy - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E7AA4 - - thumb_func_start sub_80E7B2C -sub_80E7B2C: @ 80E7B2C - push {r4,lr} - adds r3, r0, 0 - movs r2, 0 - movs r1, 0 - ldr r4, =gUnknown_03001160 -_080E7B36: - adds r0, r3, r1 - ldrb r0, [r0] - adds r0, r2, r0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x1 - cmp r1, 0xFF - ble _080E7B36 - strb r2, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E7B2C - - thumb_func_start sub_80E7B54 -sub_80E7B54: @ 80E7B54 - ldr r0, =gUnknown_03001160 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_80E7B54 - - thumb_func_start sub_80E7B60 -sub_80E7B60: @ 80E7B60 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - str r0, [sp, 0x2C] - str r1, [sp, 0x30] - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - bl Random2 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x38] - ldr r0, =gLinkPlayers - ldrh r0, [r0, 0x4] - bl SeedRng2 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - mov r8, r0 - mov r1, sp - adds r1, 0x1C - str r1, [sp, 0x4C] - mov r2, sp - adds r2, 0x1D - str r2, [sp, 0x50] - mov r3, sp - adds r3, 0xC - str r3, [sp, 0x48] - movs r7, 0xFF - add r3, sp, 0x8 - movs r2, 0 - adds r6, r1, 0 - ldr r5, [sp, 0x50] -_080E7BB0: - mov r1, sp - add r1, r8 - adds r1, 0x4 - ldrb r0, [r1] - orrs r0, r7 - strb r0, [r1] - mov r1, r8 - adds r0, r3, r1 - strb r2, [r0] - lsls r1, 1 - adds r0, r6, r1 - strb r2, [r0] - adds r1, r5, r1 - strb r2, [r1] - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x3 - bls _080E7BB0 - bl sub_800A064 - str r0, [sp, 0x3C] - movs r2, 0 - mov r8, r2 - lsls r4, 16 - str r4, [sp, 0x54] - ldr r0, [sp, 0x30] - mov r3, r9 - muls r3, r0 - str r3, [sp, 0x44] - b _080E7D04 - .pool -_080E7BF8: - ldr r1, [sp, 0x30] - mov r0, r8 - muls r0, r1 - ldr r2, [sp, 0x2C] - adds r7, r2, r0 - ldr r1, =gLinkPlayers - mov r3, r8 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x1A] - mov r9, r1 - ldrb r0, [r0] - str r0, [sp, 0x40] - movs r6, 0 - ldr r0, [r7, 0x70] - cmp r6, r0 - bcs _080E7CFA - movs r2, 0x10 - negs r2, r2 - mov r10, r2 -_080E7C24: - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 3 - adds r5, r7, r0 - ldrh r0, [r5, 0x20] - cmp r0, 0 - beq _080E7CEE - ldr r3, [sp, 0x3C] - cmp r3, 0 - beq _080E7C9A - adds r4, r5, 0 - adds r4, 0x24 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _080E7C54 - movs r4, 0x1 - b _080E7C5C - .pool -_080E7C54: - adds r0, r4, 0 - bl StripExtCtrlCodes - mov r4, r9 -_080E7C5C: - ldrh r1, [r5, 0x2C] - ldr r0, =0x000015fc - cmp r1, r0 - bne _080E7C74 - adds r0, r5, 0 - adds r0, 0x2C - bl StripExtCtrlCodes - movs r1, 0x1 - b _080E7C76 - .pool -_080E7C74: - mov r1, r9 -_080E7C76: - ldr r0, [sp, 0x40] - subs r0, 0x1 - cmp r0, 0x1 - bhi _080E7CEE - adds r2, r5, 0 - adds r2, 0x37 - movs r0, 0xF - ands r4, r0 - ldrb r0, [r2] - mov r3, r10 - ands r0, r3 - orrs r0, r4 - lsls r1, 4 - movs r3, 0xF - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _080E7CEE -_080E7C9A: - mov r0, r9 - cmp r0, 0x1 - bne _080E7CEE - adds r0, r5, 0 - adds r0, 0x24 - bl IsStringJapanese - cmp r0, 0 - beq _080E7CBA - adds r0, r5, 0 - adds r0, 0x37 - ldrb r1, [r0] - mov r2, r10 - ands r1, r2 - movs r2, 0x1 - b _080E7CC6 -_080E7CBA: - adds r0, r5, 0 - adds r0, 0x37 - ldrb r1, [r0] - mov r3, r10 - ands r1, r3 - movs r2, 0x2 -_080E7CC6: - orrs r1, r2 - strb r1, [r0] - adds r4, r0, 0 - adds r0, r5, 0 - adds r0, 0x2C - bl IsStringJapanese - cmp r0, 0 - beq _080E7CE2 - ldrb r0, [r4] - movs r1, 0xF - ands r1, r0 - movs r0, 0x10 - b _080E7CEA -_080E7CE2: - ldrb r0, [r4] - movs r1, 0xF - ands r1, r0 - movs r0, 0x20 -_080E7CEA: - orrs r1, r0 - strb r1, [r4] -_080E7CEE: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, [r7, 0x70] - cmp r6, r0 - bcc _080E7C24 -_080E7CFA: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_080E7D04: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r8, r0 - bcs _080E7D12 - b _080E7BF8 -_080E7D12: - movs r0, 0 - str r0, [sp, 0x34] - mov r8, r0 - ldr r1, [sp, 0x54] - lsrs r0, r1, 16 - ldr r2, [sp, 0x34] - cmp r2, r0 - bcs _080E7D70 - adds r5, r0, 0 -_080E7D24: - ldr r3, [sp, 0x30] - mov r0, r8 - muls r0, r3 - ldr r1, [sp, 0x2C] - adds r7, r1, r0 - ldr r0, [r7, 0x70] - cmp r0, 0 - beq _080E7D62 - movs r6, 0 - cmp r6, r0 - bcs _080E7D62 - adds r3, r7, 0 - adds r3, 0x74 - ldr r2, [sp, 0x4C] - mov r0, r8 - lsls r1, r0, 1 - movs r4, 0x1 -_080E7D46: - lsls r0, r6, 1 - adds r0, r3, r0 - ldrh r0, [r0] - cmp r0, 0 - bne _080E7D56 - adds r0, r6, r1 - adds r0, r2, r0 - strb r4, [r0] -_080E7D56: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, [r7, 0x70] - cmp r6, r0 - bcc _080E7D46 -_080E7D62: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r8, r5 - bcc _080E7D24 -_080E7D70: - movs r6, 0 - mov r8, r6 - ldr r1, [sp, 0x54] - cmp r1, 0 - beq _080E7E64 - add r2, sp, 0x24 - mov r10, r2 - movs r3, 0x25 - add r3, sp - mov r9, r3 -_080E7D84: - ldr r1, [sp, 0x30] - mov r0, r8 - muls r0, r1 - ldr r2, [sp, 0x2C] - adds r7, r2, r0 - mov r3, r8 - lsls r1, r3, 1 - ldr r2, [sp, 0x4C] - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080E7DA6 - ldr r3, [sp, 0x50] - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E7DB0 -_080E7DA6: - ldr r0, [sp, 0x34] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x34] -_080E7DB0: - ldr r2, [sp, 0x4C] - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E7DD4 - ldr r3, [sp, 0x50] - adds r0, r3, r1 - ldrb r2, [r0] - cmp r2, 0 - bne _080E7DD4 -_080E7DC4: - lsls r1, r6, 1 - mov r3, r10 - adds r0, r3, r1 - mov r3, r8 - strb r3, [r0] - add r1, r9 - strb r2, [r1] - b _080E7E4E -_080E7DD4: - ldr r2, [sp, 0x4C] - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080E7DE8 - ldr r3, [sp, 0x50] - adds r0, r3, r1 - ldrb r2, [r0] - cmp r2, 0x1 - beq _080E7DC4 -_080E7DE8: - ldr r2, [sp, 0x4C] - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E7E54 - ldr r3, [sp, 0x50] - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E7E54 - lsls r5, r6, 1 - mov r1, r10 - adds r0, r1, r5 - mov r2, r8 - strb r2, [r0] - adds r0, r7, 0 - bl sub_80E7A9C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r7, 0 - adds r0, 0x38 - bl sub_80E7A9C - lsls r0, 24 - lsrs r1, r0, 24 - cmp r4, 0 - bne _080E7E30 - cmp r1, 0 - beq _080E7E34 - mov r3, r9 - adds r1, r3, r5 - movs r0, 0x1 - strb r0, [r1] - b _080E7E4E -_080E7E30: - cmp r1, 0 - beq _080E7E48 -_080E7E34: - bl Random2 - mov r1, r9 - adds r2, r1, r5 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - strb r0, [r2] - b _080E7E4E -_080E7E48: - mov r2, r9 - adds r0, r2, r5 - strb r1, [r0] -_080E7E4E: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080E7E54: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - mov r8, r3 - ldr r1, [sp, 0x54] - cmp r0, r1 - bcc _080E7D84 -_080E7E64: - movs r2, 0 - mov r8, r2 - ldr r3, [sp, 0x44] - lsls r0, r3, 4 - subs r0, r3 - lsls r0, 3 - ldr r1, [sp, 0x2C] - adds r7, r1, r0 - ldr r1, [sp, 0x48] -_080E7E76: - mov r2, r8 - lsls r0, r2, 2 - adds r0, r1, r0 - str r7, [r0] - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x3 - bls _080E7E76 - bl sub_80E7B54 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, [sp, 0x34] - cmp r3, 0x3 - beq _080E7EC8 - cmp r3, 0x3 - bgt _080E7EAE - cmp r3, 0x2 - beq _080E7EB6 - b _080E7F1C -_080E7EAE: - ldr r0, [sp, 0x34] - cmp r0, 0x4 - beq _080E7EE8 - b _080E7F1C -_080E7EB6: - add r2, sp, 0x24 - movs r0, 0x1 - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - movs r3, 0 - bl sub_80E7AA4 - b _080E7F1C -_080E7EC8: - ldr r0, =gUnknown_0858CFB8 - lsls r1, 1 - adds r2, r1, r0 - ldrb r3, [r2] - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - add r2, sp, 0x24 - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - bl sub_80E7AA4 - b _080E7F1C - .pool -_080E7EE8: - add r6, sp, 0x24 - ldr r4, =gUnknown_0858CFBE - lsls r5, r1, 2 - adds r0, r5, r4 - ldrb r3, [r0] - adds r0, r4, 0x1 - adds r0, r5, r0 - ldrb r0, [r0] - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - adds r2, r6, 0 - bl sub_80E7AA4 - adds r0, r4, 0x2 - adds r0, r5, r0 - ldrb r3, [r0] - adds r4, 0x3 - adds r5, r4 - ldrb r0, [r5] - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - adds r2, r6, 0 - bl sub_80E7AA4 -_080E7F1C: - ldr r1, [sp, 0x2C] - ldr r2, [sp, 0x44] - adds r7, r1, r2 - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - movs r3, 0xC2 - lsls r3, 6 - adds r0, r3 - adds r1, r7, 0 - movs r2, 0x38 - bl memcpy - ldr r0, [r4] - ldr r1, =0x0000310c - adds r0, r1 - adds r1, r7, 0 - adds r1, 0x38 - movs r2, 0x38 - bl memcpy - ldr r0, [sp, 0x38] - bl SeedRng - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E7B60 - - thumb_func_start sub_80E7F68 -sub_80E7F68: @ 80E7F68 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - cmp r1, 0 - beq _080E7FEC - ldrh r0, [r4] - cmp r0, 0 - beq _080E7FEC - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080E7FEC - ldrh r0, [r4] - movs r1, 0x1 - bl CheckBagHasItem - lsls r0, 24 - cmp r0, 0 - bne _080E7FE4 - ldrh r0, [r4] - movs r1, 0x1 - bl CheckPCHasItem - lsls r0, 24 - cmp r0, 0 - bne _080E7FE4 - ldrh r0, [r4] - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - cmp r0, 0 - beq _080E7FE4 - ldr r0, =0x00004001 - ldrh r1, [r4] - bl VarSet - ldr r0, =gStringVar1 - ldr r1, =gLinkPlayers + 8 - bl StringCopy - ldrh r1, [r4] - ldr r0, =0x00000113 - cmp r1, r0 - bne _080E7FEC - ldr r0, =0x000008b3 - bl FlagSet - b _080E7FEC - .pool -_080E7FE4: - ldr r0, =0x00004001 - movs r1, 0 - bl VarSet -_080E7FEC: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E7F68 - - thumb_func_start sub_80E7FF8 -sub_80E7FF8: @ 80E7FF8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x9 - bls _080E8012 - b _080E810A -_080E8012: - lsls r0, 2 - ldr r1, =_080E8024 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080E8024: - .4byte _080E80F2 - .4byte _080E804C - .4byte _080E805A - .4byte _080E8064 - .4byte _080E807C - .4byte _080E8090 - .4byte _080E80A4 - .4byte _080E80C0 - .4byte _080E80EE - .4byte _080E80FA -_080E804C: - bl sub_800A064 - cmp r0, 0 - bne _080E80F2 - movs r0, 0x6 - strh r0, [r4, 0x8] - b _080E810A -_080E805A: - bl sub_8076D5C - bl sub_8153430 - b _080E80F2 -_080E8064: - bl sub_8153474 - lsls r0, 24 - cmp r0, 0 - beq _080E810A - bl sav2_gender2_inplace_and_xFE - movs r1, 0 - movs r0, 0x4 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - b _080E810A -_080E807C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080E810A - bl sub_800AC34 - b _080E80F2 -_080E8090: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080E810A - adds r0, r5, 0 - bl DestroyTask - b _080E810A - .pool -_080E80A4: - movs r0, 0 - bl sub_801048C - lsls r0, 24 - cmp r0, 0 - bne _080E810A - ldr r0, =sub_8153688 - movs r1, 0x5 - bl CreateTask - b _080E80F2 - .pool -_080E80C0: - ldr r0, =sub_8153688 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _080E810A - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - beq _080E80E8 - movs r0, 0x1 - bl sub_801048C - movs r0, 0x8 - strh r0, [r4, 0x8] - b _080E810A - .pool -_080E80E8: - movs r0, 0x4 - strh r0, [r4, 0x8] - b _080E810A -_080E80EE: - bl sub_800ADF8 -_080E80F2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E810A -_080E80FA: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _080E810A - adds r0, r5, 0 - bl DestroyTask -_080E810A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80E7FF8 - - thumb_func_start sub_80E8110 -sub_80E8110: @ 80E8110 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - str r0, [sp] - mov r10, r1 - adds r1, r0, 0 - adds r1, 0x38 - movs r0, 0xFF - strb r0, [r1] - ldr r1, [sp] - adds r1, 0x7C - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - ldr r0, [sp] - mov r1, r10 - movs r2, 0x44 - bl memcpy - movs r0, 0 - str r0, [sp, 0x8] - movs r1, 0 - str r1, [sp, 0xC] - movs r2, 0 - str r2, [sp, 0x4] - mov r8, r2 - movs r7, 0 - ldr r0, =gSaveBlock2Ptr - mov r9, r0 -_080E8150: - mov r1, r9 - ldr r0, [r1] - adds r0, 0xB2 - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 30 - adds r0, r7, r0 - movs r1, 0x3 - bl __modsi3 - adds r6, r0, 0x1 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - mov r2, r10 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x38 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080E81B8 - adds r5, r1, 0 - adds r5, 0x34 - adds r0, r5, 0 - bl ReadUnalignedWord - adds r4, r0, 0 - mov r1, r9 - ldr r0, [r1] - adds r0, 0xA - bl ReadUnalignedWord - cmp r4, r0 - beq _080E819A - movs r2, 0x1 - add r8, r2 - str r6, [sp, 0x4] -_080E819A: - adds r0, r5, 0 - bl ReadUnalignedWord - adds r4, r0, 0 - mov r1, r9 - ldr r0, [r1] - adds r0, 0xA - bl ReadUnalignedWord - cmp r4, r0 - bne _080E81B8 - ldr r2, [sp, 0xC] - adds r2, 0x1 - str r2, [sp, 0xC] - str r6, [sp, 0x8] -_080E81B8: - adds r7, 0x1 - cmp r7, 0x1 - ble _080E8150 - mov r0, r8 - cmp r0, 0 - bne _080E81D0 - ldr r1, [sp, 0xC] - cmp r1, 0 - beq _080E81D0 - mov r8, r1 - ldr r2, [sp, 0x8] - str r2, [sp, 0x4] -_080E81D0: - mov r0, r8 - cmp r0, 0x1 - beq _080E81E0 - cmp r0, 0x2 - beq _080E81EC - b _080E824C - .pool -_080E81E0: - ldr r2, [sp, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r10 - b _080E820E -_080E81EC: - bl Random2 - lsls r0, 16 - ldr r1, =0x33330000 - cmp r0, r1 - bls _080E8224 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB2 - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 30 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r10 - adds r1, 0x44 -_080E820E: - ldr r0, [sp] - adds r0, 0x44 - movs r2, 0x44 - bl memcpy - b _080E824C - .pool -_080E8224: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB2 - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 30 - adds r0, 0x1 - movs r1, 0x3 - bl __modsi3 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r10 - adds r1, 0x44 - ldr r0, [sp] - adds r0, 0x44 - movs r2, 0x44 - bl memcpy -_080E824C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E8110 - - thumb_func_start sub_80E8260 -sub_80E8260: @ 80E8260 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r8, r0 - movs r6, 0 - ldr r0, =gSaveBlock2Ptr - mov r10, r0 -_080E8274: - movs r7, 0 - lsls r0, r6, 5 - adds r6, 0x1 - mov r9, r6 - mov r1, r8 - adds r4, r0, r1 - adds r0, 0x6 - adds r6, r1, r0 - adds r5, r4, 0 -_080E8286: - mov r2, r10 - ldr r1, [r2] - adds r1, 0xA - adds r0, r5, 0 - bl CopyUnalignedWord - movs r0, 0x2 - strb r0, [r4, 0xE] - mov r0, r10 - ldr r1, [r0] - adds r0, r6, 0 - bl StringCopy - adds r4, 0x10 - adds r6, 0x10 - adds r5, 0x10 - adds r7, 0x1 - cmp r7, 0x1 - ble _080E8286 - mov r6, r9 - cmp r6, 0x8 - ble _080E8274 - ldr r1, =gSaveBlock2Ptr - mov r10, r1 - ldr r2, =0x00000ee1 - str r2, [sp, 0x4] - movs r4, 0x99 - lsls r4, 1 - add r4, r8 - movs r0, 0x95 - lsls r0, 1 - add r0, r8 - mov r9, r0 - ldr r1, =0x00000ef1 - str r1, [sp, 0x8] - movs r6, 0x92 - lsls r6, 1 - add r6, r8 - movs r5, 0x90 - lsls r5, 1 - add r5, r8 - movs r7, 0x1 -_080E82DA: - movs r0, 0x2 - strb r0, [r4, 0x8] - mov r2, r10 - ldr r1, [r2] - adds r1, 0xA - adds r0, r5, 0 - bl CopyUnalignedWord - mov r0, r10 - ldr r1, [r0] - ldr r2, [sp, 0x8] - adds r1, r2 - adds r0, r6, 0 - bl CopyUnalignedWord - mov r0, r10 - ldr r1, [r0] - mov r0, r9 - bl StringCopy - mov r2, r10 - ldr r1, [r2] - ldr r0, [sp, 0x4] - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r1, [sp, 0x4] - adds r1, 0x8 - str r1, [sp, 0x4] - adds r4, 0x1C - movs r2, 0x1C - add r9, r2 - ldr r0, [sp, 0x8] - adds r0, 0x4 - str r0, [sp, 0x8] - adds r6, 0x1C - adds r5, 0x1C - subs r7, 0x1 - cmp r7, 0 - bge _080E82DA - movs r6, 0 - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - mov r4, r8 - movs r1, 0xC4 - adds r1, r4 - mov r9, r1 - movs r2, 0x84 - adds r2, r4 - mov r8, r2 - movs r0, 0x44 - adds r0, r4 - mov r12, r0 - adds r7, r4, 0x4 - movs r1, 0xCF - lsls r1, 4 - adds r1, r3, r1 - str r1, [sp] - mov r10, r4 - ldr r2, =0x00000cf4 - adds r5, r3, r2 -_080E8356: - lsls r2, r6, 1 - ldr r1, [sp] - ldrh r0, [r1] - strh r0, [r7] - ldrh r0, [r5] - strh r0, [r7, 0x20] - ldrh r0, [r5, 0x4] - mov r1, r12 - strh r0, [r1] - ldr r1, =0x00000d14 - adds r0, r3, r1 - adds r0, r2 - ldrh r0, [r0] - mov r1, r12 - strh r0, [r1, 0x20] - movs r1, 0xDD - lsls r1, 4 - adds r0, r3, r1 - adds r0, r2 - ldrh r0, [r0] - mov r1, r8 - strh r0, [r1] - ldr r1, =0x00000dde - adds r0, r3, r1 - adds r0, r2 - ldrh r0, [r0] - mov r1, r8 - strh r0, [r1, 0x20] - ldr r1, =0x00000dea - adds r0, r3, r1 - adds r0, r2 - ldrh r0, [r0] - mov r1, r9 - strh r0, [r1] - ldr r1, =0x00000e08 - adds r0, r3, r1 - adds r0, r2 - ldrh r0, [r0] - mov r1, r9 - strh r0, [r1, 0x20] - ldr r1, =0x00000e1e - adds r0, r3, r1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x82 - lsls r0, 1 - add r0, r10 - strh r1, [r0] - ldr r1, =0x00000cfc - adds r0, r3, r1 - adds r0, r2 - ldrh r1, [r0] - movs r2, 0x94 - lsls r2, 1 - adds r0, r4, r2 - strh r1, [r0] - adds r4, 0x1C - movs r0, 0x10 - add r9, r0 - add r8, r0 - add r12, r0 - adds r7, 0x10 - ldr r1, [sp] - adds r1, 0x2 - str r1, [sp] - add r10, r0 - adds r5, 0x2 - adds r6, 0x1 - cmp r6, 0x1 - ble _080E8356 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E8260 - - thumb_func_start sub_80E841C -sub_80E841C: @ 80E841C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r0, 0 - mov r8, r0 - adds r6, r1, 0 - adds r6, 0x34 - adds r5, r1, 0 -_080E842E: - adds r0, r7, 0 - adds r0, 0x34 - bl ReadUnalignedWord - adds r4, r0, 0 - adds r0, r6, 0 - bl ReadUnalignedWord - cmp r4, r0 - bne _080E844E - ldrb r0, [r7, 0x2] - ldrb r1, [r5, 0x2] - cmp r0, r1 - bne _080E844E - movs r0, 0x1 - b _080E845E -_080E844E: - adds r6, 0x44 - adds r5, 0x44 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x3 - ble _080E842E - movs r0, 0 -_080E845E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E841C - - thumb_func_start sub_80E8468 -sub_80E8468: @ 80E8468 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - mov r0, sp - bl sub_80E7830 - lsls r4, 2 - mov r1, sp - adds r0, r1, r4 - ldr r0, [r0] - muls r0, r5 - adds r3, r6, r0 - movs r7, 0 - movs r2, 0 - mov r8, r2 - movs r5, 0 - adds r6, r3, 0 - adds r6, 0x38 - adds r4, r3, 0 -_080E8496: - ldrb r0, [r6] - cmp r0, 0xFF - beq _080E84B4 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, 0xDC - adds r0, r4, 0 - str r3, [sp, 0x10] - bl sub_80E841C - ldr r3, [sp, 0x10] - cmp r0, 0 - bne _080E84B4 - adds r7, 0x1 - mov r8, r5 -_080E84B4: - adds r6, 0x44 - adds r4, 0x44 - adds r5, 0x1 - cmp r5, 0x1 - ble _080E8496 - cmp r7, 0x1 - beq _080E84CC - cmp r7, 0x2 - beq _080E8508 - b _080E8566 - .pool -_080E84CC: - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0xB2 - ldrb r1, [r1] - lsls r1, 27 - lsrs r1, 30 - adds r2, r1, 0x1 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r0, r1 - adds r0, 0xDC - mov r2, r8 - lsls r1, r2, 4 - add r1, r8 - lsls r1, 2 - adds r1, r3 - movs r2, 0x44 - bl memcpy - ldr r4, [r4] - adds r4, 0xB2 - ldrb r5, [r4] - lsls r0, r5, 27 - lsrs r0, 30 - adds r0, 0x1 - b _080E8550 - .pool -_080E8508: - movs r5, 0 - adds r6, r3, 0 -_080E850C: - movs r0, 0x1 - eors r0, r5 - ldr r7, =gSaveBlock2Ptr - ldr r4, [r7] - adds r1, r4, 0 - adds r1, 0xB2 - ldrb r1, [r1] - lsls r1, 27 - lsrs r1, 30 - adds r0, r1 - movs r1, 0x3 - bl __modsi3 - adds r2, r0, 0x1 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0 - adds r4, 0xDC - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x44 - bl memcpy - adds r6, 0x44 - adds r5, 0x1 - cmp r5, 0x1 - ble _080E850C - ldr r4, [r7] - adds r4, 0xB2 - ldrb r5, [r4] - lsls r0, r5, 27 - lsrs r0, 30 - adds r0, 0x2 -_080E8550: - movs r1, 0x3 - bl __modsi3 - movs r1, 0x3 - ands r0, r1 - lsls r0, 3 - movs r1, 0x19 - negs r1, r1 - ands r1, r5 - orrs r1, r0 - strb r1, [r4] -_080E8566: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E8468 - - thumb_func_start sub_80E8578 -sub_80E8578: @ 80E8578 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x54 - str r0, [sp] - ldr r0, [sp, 0x74] - movs r4, 0 - mov r8, r4 - movs r5, 0 - str r5, [sp, 0x4] - ldr r4, =gUnknown_03001168 - b _080E85A0 - .pool -_080E8598: - adds r1, r2 - ldr r6, [sp, 0x4] - adds r6, 0x1 - str r6, [sp, 0x4] -_080E85A0: - ldr r5, [sp, 0x4] - cmp r5, r0 - bge _080E85B6 - cmp r5, r3 - beq _080E85B0 - stm r4!, {r1} - movs r6, 0x1 - add r8, r6 -_080E85B0: - mov r5, r8 - cmp r5, 0x3 - bne _080E8598 -_080E85B6: - movs r6, 0 - str r6, [sp, 0x4] - subs r0, 0x1 - str r0, [sp, 0x24] -_080E85BE: - movs r0, 0 - str r0, [sp, 0x8] - ldr r1, [sp, 0x4] - adds r1, 0x1 - str r1, [sp, 0x28] - ldr r2, [sp, 0x4] - lsls r2, 1 - str r2, [sp, 0x34] - ldr r3, [sp, 0x4] - adds r3, r2, r3 - str r3, [sp, 0x10] - movs r4, 0 - str r4, [sp, 0x44] - movs r5, 0 - str r5, [sp, 0x48] -_080E85DC: - movs r6, 0 - mov r8, r6 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, [sp, 0x10] - lsls r0, r2, 5 - ldr r3, [sp, 0x48] - adds r0, r3, r0 - adds r3, r0, r1 - lsls r0, r2, 6 - ldr r4, [sp, 0x44] - adds r0, r4, r0 - ldr r5, [sp] - adds r2, r0, r5 -_080E85F8: - adds r0, r2, 0 - movs r6, 0x87 - lsls r6, 2 - adds r1, r3, r6 - ldm r1!, {r4-r6} - stm r0!, {r4-r6} - ldr r1, [r1] - str r1, [r0] - adds r3, 0x10 - adds r2, 0x10 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x2 - ble _080E85F8 - movs r2, 0 - mov r8, r2 - ldr r3, [sp, 0x24] - cmp r8, r3 - bge _080E86DC - ldr r4, [sp, 0x4] - lsls r4, 5 - mov r9, r4 - ldr r5, [sp, 0x8] - lsls r7, r5, 4 - ldr r6, [sp, 0x34] - ldr r1, [sp, 0x4] - adds r0, r6, r1 - lsls r0, 6 - str r0, [sp, 0x14] - ldr r2, [sp] - adds r0, r2, r0 - ldr r3, [sp, 0x44] - str r3, [sp, 0x18] - adds r0, r3 - str r0, [sp, 0x1C] - ldr r4, [sp, 0x14] - adds r0, r3, r4 - adds r0, r2 - adds r0, 0x30 - mov r10, r0 -_080E864A: - movs r5, 0 - str r5, [sp, 0xC] - movs r3, 0 - mov r6, r8 - lsls r6, 2 - str r6, [sp, 0x38] - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x14] - adds r0, r1, r2 - ldr r4, [sp] - adds r5, r0, r4 - ldr r0, =gUnknown_03001168 - adds r0, r6, r0 - str r0, [sp, 0x50] -_080E8666: - lsls r0, r3, 4 - ldr r6, [sp, 0x1C] - adds r0, r6, r0 - str r3, [sp, 0x4C] - bl ReadUnalignedWord - adds r4, r0, 0 - ldr r1, [sp, 0x50] - ldr r0, [r1] - add r0, r9 - adds r0, r7 - bl ReadUnalignedWord - ldr r3, [sp, 0x4C] - cmp r4, r0 - bne _080E86A8 - ldr r2, [sp, 0xC] - adds r2, 0x1 - str r2, [sp, 0xC] - ldr r4, [sp, 0x50] - ldr r0, [r4] - mov r6, r9 - adds r1, r7, r6 - adds r1, r0, r1 - ldrh r0, [r5, 0x4] - ldrh r2, [r1, 0x4] - cmp r0, r2 - bcs _080E86A8 - adds r0, r5, 0 - ldm r1!, {r2,r4,r6} - stm r0!, {r2,r4,r6} - ldr r1, [r1] - str r1, [r0] -_080E86A8: - adds r5, 0x10 - adds r3, 0x1 - cmp r3, 0x2 - ble _080E8666 - ldr r3, [sp, 0xC] - cmp r3, 0 - bne _080E86CE - ldr r0, =gUnknown_03001168 - ldr r4, [sp, 0x38] - adds r0, r4, r0 - ldr r0, [r0] - mov r5, r9 - adds r2, r7, r5 - mov r1, r10 - adds r0, r2 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldr r0, [r0] - str r0, [r1] -_080E86CE: - movs r4, 0x10 - add r10, r4 - movs r5, 0x1 - add r8, r5 - ldr r6, [sp, 0x24] - cmp r8, r6 - blt _080E864A -_080E86DC: - ldr r0, [sp, 0x44] - adds r0, 0x60 - str r0, [sp, 0x44] - ldr r1, [sp, 0x48] - adds r1, 0x30 - str r1, [sp, 0x48] - ldr r2, [sp, 0x8] - adds r2, 0x1 - str r2, [sp, 0x8] - cmp r2, 0x1 - bgt _080E86F4 - b _080E85DC -_080E86F4: - ldr r3, [sp, 0x28] - str r3, [sp, 0x4] - cmp r3, 0x8 - bgt _080E86FE - b _080E85BE -_080E86FE: - movs r4, 0 - str r4, [sp, 0x8] -_080E8702: - ldr r5, [sp, 0x8] - adds r5, 0x1 - str r5, [sp, 0x2C] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - movs r0, 0x54 - ldr r6, [sp, 0x8] - muls r0, r6 - adds r3, r0, r1 - movs r0, 0xA8 - muls r0, r6 - ldr r1, [sp] - adds r2, r0, r1 - movs r4, 0x2 - mov r8, r4 -_080E8720: - movs r5, 0xD8 - lsls r5, 3 - adds r0, r2, r5 - ldr r6, =0x0000057c - adds r1, r3, r6 - ldm r1!, {r4-r6} - stm r0!, {r4-r6} - ldm r1!, {r4-r6} - stm r0!, {r4-r6} - ldr r1, [r1] - str r1, [r0] - adds r3, 0x1C - adds r2, 0x1C - movs r0, 0x1 - negs r0, r0 - add r8, r0 - mov r1, r8 - cmp r1, 0 - bge _080E8720 - movs r2, 0 - mov r8, r2 - ldr r3, [sp, 0x24] - cmp r8, r3 - blt _080E8752 - b _080E885A -_080E8752: - ldr r4, [sp, 0x8] - lsls r1, r4, 3 - movs r0, 0xA8 - adds r5, r4, 0 - muls r5, r0 - str r5, [sp, 0x20] - str r5, [sp, 0x3C] - subs r1, r4 - lsls r1, 2 - mov r10, r1 -_080E8766: - movs r6, 0 - str r6, [sp, 0xC] - mov r0, r8 - lsls r0, 2 - str r0, [sp, 0x38] - mov r1, r8 - adds r1, 0x1 - str r1, [sp, 0x30] - ldr r0, =gUnknown_03001168 - ldr r2, [sp, 0x38] - adds r2, r0 - mov r9, r2 - ldr r3, [sp] - movs r4, 0xD8 - lsls r4, 3 - adds r0, r3, r4 - ldr r5, [sp, 0x3C] - adds r7, r5, r0 - str r6, [sp, 0x40] - movs r3, 0x2 -_080E878E: - ldr r1, [sp, 0x20] - movs r2, 0xD8 - lsls r2, 3 - adds r0, r1, r2 - ldr r4, [sp] - adds r0, r4, r0 - ldr r6, [sp, 0x40] - adds r5, r0, r6 - adds r0, r5, 0 - str r3, [sp, 0x4C] - bl ReadUnalignedWord - adds r4, r0, 0 - movs r6, 0x90 - lsls r6, 1 - add r6, r10 - mov r1, r9 - ldr r0, [r1] - adds r0, r6 - bl ReadUnalignedWord - ldr r3, [sp, 0x4C] - cmp r4, r0 - bne _080E8808 - adds r0, r5, 0x4 - bl ReadUnalignedWord - adds r4, r0, 0 - mov r2, r9 - ldr r0, [r2] - adds r0, r6 - adds r0, 0x4 - bl ReadUnalignedWord - ldr r3, [sp, 0x4C] - cmp r4, r0 - bne _080E8808 - ldr r4, [sp, 0xC] - adds r4, 0x1 - str r4, [sp, 0xC] - mov r5, r9 - ldr r0, [r5] - mov r6, r10 - adds r2, r0, r6 - movs r0, 0x94 - lsls r0, 1 - adds r1, r2, r0 - ldrh r0, [r7, 0x8] - ldrh r1, [r1] - cmp r0, r1 - bcs _080E8808 - adds r0, r7, 0 - movs r4, 0x90 - lsls r4, 1 - adds r1, r2, r4 - ldm r1!, {r2,r5,r6} - stm r0!, {r2,r5,r6} - ldm r1!, {r4-r6} - stm r0!, {r4-r6} - ldr r1, [r1] - str r1, [r0] -_080E8808: - adds r7, 0x1C - ldr r0, [sp, 0x40] - adds r0, 0x1C - str r0, [sp, 0x40] - subs r3, 0x1 - cmp r3, 0 - bge _080E878E - ldr r1, [sp, 0xC] - cmp r1, 0 - bne _080E8850 - mov r0, r8 - adds r0, 0x3 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r2, [sp, 0x20] - adds r1, r2 - ldr r3, [sp] - adds r1, r3, r1 - ldr r0, =gUnknown_03001168 - ldr r4, [sp, 0x38] - adds r0, r4, r0 - ldr r0, [r0] - add r0, r10 - movs r5, 0xD8 - lsls r5, 3 - adds r1, r5 - movs r6, 0x90 - lsls r6, 1 - adds r0, r6 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldr r0, [r0] - str r0, [r1] -_080E8850: - ldr r3, [sp, 0x30] - mov r8, r3 - ldr r4, [sp, 0x24] - cmp r8, r4 - blt _080E8766 -_080E885A: - ldr r5, [sp, 0x2C] - str r5, [sp, 0x8] - cmp r5, 0x1 - bgt _080E8864 - b _080E8702 -_080E8864: - add sp, 0x54 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E8578 - - thumb_func_start sub_80E8880 -sub_80E8880: @ 80E8880 - push {r4-r7,lr} - mov r12, r0 - adds r7, r1, 0 - movs r5, 0 -_080E8888: - movs r2, 0 - movs r4, 0x1 - negs r4, r4 - movs r1, 0 - adds r6, r5, 0x1 - adds r3, r7, 0 -_080E8894: - ldrh r0, [r3, 0x4] - cmp r0, r2 - ble _080E889E - adds r4, r1, 0 - adds r2, r0, 0 -_080E889E: - adds r3, 0x10 - adds r1, 0x1 - cmp r1, 0x5 - ble _080E8894 - cmp r4, 0 - blt _080E88C0 - lsls r1, r5, 4 - lsls r2, r4, 4 - adds r2, r7 - add r1, r12 - adds r0, r2, 0 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, [r0] - str r0, [r1] - movs r0, 0 - strh r0, [r2, 0x4] -_080E88C0: - adds r5, r6, 0 - cmp r5, 0x2 - ble _080E8888 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E8880 - - thumb_func_start sub_80E88CC -sub_80E88CC: @ 80E88CC - push {r4-r7,lr} - mov r12, r0 - adds r6, r1, 0 - movs r5, 0 -_080E88D4: - movs r3, 0 - movs r4, 0x1 - negs r4, r4 - movs r2, 0 - adds r7, r5, 0x1 - adds r1, r6, 0 -_080E88E0: - ldrh r0, [r1, 0x8] - cmp r0, r3 - ble _080E88EA - adds r4, r2, 0 - adds r3, r0, 0 -_080E88EA: - adds r1, 0x1C - adds r2, 0x1 - cmp r2, 0x5 - ble _080E88E0 - cmp r4, 0 - blt _080E8918 - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - lsls r2, r4, 3 - subs r2, r4 - lsls r2, 2 - adds r2, r6 - add r1, r12 - adds r0, r2, 0 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, [r0] - str r0, [r1] - movs r0, 0 - strh r0, [r2, 0x8] -_080E8918: - adds r5, r7, 0 - cmp r5, 0x2 - ble _080E88D4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E88CC - - thumb_func_start sub_80E8924 -sub_80E8924: @ 80E8924 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - movs r0, 0 - ldr r1, =gSaveBlock2Ptr - mov r10, r1 -_080E8936: - lsls r1, r0, 1 - adds r2, r0, 0x1 - mov r8, r2 - adds r1, r0 - lsls r0, r1, 5 - movs r2, 0x87 - lsls r2, 2 - adds r7, r0, r2 - lsls r1, 6 - mov r0, r9 - adds r4, r0, r1 - movs r6, 0 - movs r5, 0x1 -_080E8950: - mov r1, r10 - ldr r0, [r1] - adds r0, r7 - adds r0, r6 - adds r1, r4, 0 - bl sub_80E8880 - adds r4, 0x60 - adds r6, 0x30 - subs r5, 0x1 - cmp r5, 0 - bge _080E8950 - mov r0, r8 - cmp r0, 0x8 - ble _080E8936 - movs r5, 0 - ldr r4, =gSaveBlock2Ptr -_080E8972: - movs r0, 0x54 - adds r1, r5, 0 - muls r1, r0 - ldr r2, =0x0000057c - adds r1, r2 - ldr r0, [r4] - adds r0, r1 - movs r1, 0xA8 - muls r1, r5 - movs r2, 0xD8 - lsls r2, 3 - adds r1, r2 - add r1, r9 - bl sub_80E88CC - adds r5, 0x1 - cmp r5, 0x1 - ble _080E8972 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E8924 - - thumb_func_start sub_80E89AC -sub_80E89AC: @ 80E89AC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r6, r0, 0 - mov r8, r1 - mov r9, r2 - bl GetLinkPlayerCount - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x81 - lsls r0, 4 - bl AllocZeroed - adds r5, r0, 0 - str r4, [sp] - adds r1, r6, 0 - mov r2, r8 - mov r3, r9 - bl sub_80E8578 - adds r0, r5, 0 - bl sub_80E8924 - adds r0, r5, 0 - bl Free - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E89AC - - thumb_func_start sub_80E89F8 -sub_80E89F8: @ 80E89F8 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, =gUnknown_02039F9C - ldr r4, =gSaveBlock1Ptr - ldr r1, [r4] - movs r0, 0xC2 - lsls r0, 6 - adds r1, r0 - adds r0, r5, 0 - movs r2, 0x38 - bl memcpy - ldr r1, [r4] - ldr r0, =0x0000310c - adds r1, r0 - adds r0, r5, 0 - adds r0, 0x38 - movs r2, 0x38 - bl memcpy - ldr r0, [r4] - ldr r1, =0x00003030 - adds r0, r1 - adds r1, r5, 0 - bl InitDaycareMailRecordMixing - ldr r0, =gUnknown_03001148 - ldr r1, [r0] - adds r0, r6, 0 - movs r2, 0x78 - bl memcpy - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E89F8 - - thumb_func_start sub_80E8A54 -sub_80E8A54: @ 80E8A54 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r0, 0 - mov r9, r0 - ldr r0, [r5, 0x70] - cmp r9, r0 - bcs _080E8AAE - adds r4, r5, 0 - adds r4, 0x2C - movs r0, 0x24 - adds r0, r5 - mov r8, r0 - adds r7, r5, 0 - adds r7, 0x37 - adds r6, r5, 0 -_080E8A78: - ldrh r0, [r6, 0x20] - cmp r0, 0 - beq _080E8A9A - ldrb r1, [r4, 0xB] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - beq _080E8A90 - mov r0, r8 - movs r1, 0xFC - bl PadNameString -_080E8A90: - ldrb r1, [r7] - lsrs r1, 4 - adds r0, r4, 0 - bl ConvertInternationalString -_080E8A9A: - adds r4, 0x38 - movs r0, 0x38 - add r8, r0 - adds r7, 0x38 - adds r6, 0x38 - movs r0, 0x1 - add r9, r0 - ldr r0, [r5, 0x70] - cmp r9, r0 - bcc _080E8A78 -_080E8AAE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E8A54 - - thumb_func_start TaskDummy4 -TaskDummy4: @ 80E8ABC - bx lr - thumb_func_end TaskDummy4 - - thumb_func_start sub_80E8AC0 -sub_80E8AC0: @ 80E8AC0 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_080E8AC6: - movs r0, 0x2C - muls r0, r4 - adds r0, 0x34 - adds r1, r5, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _080E8ADC - adds r0, r1, 0 - adds r0, 0x20 - bl StripExtCtrlCodes -_080E8ADC: - adds r4, 0x1 - cmp r4, 0x3 - ble _080E8AC6 - adds r0, r5, 0 - bl sub_8164F70 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80E8AC0 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s index 2ba5926aa..b7f03739a 100644 --- a/asm/rom_8011DC0.s +++ b/asm/rom_8011DC0.s @@ -4,7 +4,7 @@ .syntax unified .text - + thumb_func_start nullsub_89 nullsub_89: @ 80124E8 bx lr diff --git a/asm/rom_8034C54.s b/asm/rom_8034C54.s deleted file mode 100644 index 4274f26b6..000000000 --- a/asm/rom_8034C54.s +++ /dev/null @@ -1,1312 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8034C54 -sub_8034C54: @ 8034C54 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r5, =gUnknown_02022E10 - ldr r0, [r5] - cmp r0, 0 - beq _08034C64 - bl sub_8034CC8 -_08034C64: - movs r0, 0x8 - bl Alloc - str r0, [r5] - cmp r0, 0 - bne _08034C78 - movs r0, 0 - b _08034CC0 - .pool -_08034C78: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - bl Alloc - ldr r1, [r5] - str r0, [r1, 0x4] - cmp r0, 0 - bne _08034C94 - adds r0, r1, 0 - bl Free - movs r0, 0 - b _08034CC0 -_08034C94: - str r4, [r1] - movs r3, 0 - cmp r3, r4 - bcs _08034CBE - movs r7, 0 - movs r6, 0xFF - movs r2, 0 -_08034CA2: - 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 _08034CA2 -_08034CBE: - movs r0, 0x1 -_08034CC0: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8034C54 - - thumb_func_start sub_8034CC8 -sub_8034CC8: @ 8034CC8 - push {r4,r5,lr} - ldr r2, =gUnknown_02022E10 - ldr r1, [r2] - cmp r1, 0 - beq _08034D08 - ldr r0, [r1, 0x4] - cmp r0, 0 - beq _08034CFC - movs r4, 0 - ldr r0, [r1] - cmp r4, r0 - bcs _08034CF2 - adds r5, r2, 0 -_08034CE2: - adds r0, r4, 0 - bl sub_80353DC - adds r4, 0x1 - ldr r0, [r5] - ldr r0, [r0] - cmp r4, r0 - bcc _08034CE2 -_08034CF2: - ldr r0, =gUnknown_02022E10 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl Free -_08034CFC: - ldr r4, =gUnknown_02022E10 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] -_08034D08: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8034CC8 - - thumb_func_start sub_8034D14 -sub_8034D14: @ 8034D14 - 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, =gUnknown_02022E10 - ldr r0, [r6] - cmp r0, 0 - beq _08034DD4 - 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 _08034DD4 - ldrb r0, [r5, 0x1] - bl sub_8035518 - 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 _08034DD4 - 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, =0xffff0000 - lsrs r0, r7, 16 - cmp r1, r0 - bne _08034DE0 - ldr r2, [r5, 0x8] - ldrh r0, [r2, 0x4] - adds r1, r2, 0 - cmp r0, 0 - beq _08034D94 - adds r0, r1, 0 - bl LoadSpriteSheet - b _08034DB4 - .pool -_08034D94: - ldr r0, [r2] - ldr r1, [r2, 0x4] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [r2] - bl sub_8034974 - 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 -_08034DB4: - ldr r1, [r6] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - strh r0, [r1, 0xA] - ldr r0, =gUnknown_02022E10 - 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, =0x0000ffff - cmp r1, r0 - bne _08034DE0 -_08034DD4: - movs r0, 0 - b _08034EE8 - .pool -_08034DE0: - ldr r0, [r5, 0xC] - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - ldr r6, =gUnknown_02022E10 - 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 _08034E14 - ldr r0, [r5, 0xC] - bl LoadSpritePalette - ldr r1, [r6] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - strb r0, [r1, 0x4] -_08034E14: - 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_80355F8 - 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 _08034ECA -_08034EB2: - 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 _08034EB2 -_08034ECA: - ldr r0, =gUnknown_02022E10 - 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_8034EFC - mov r0, r8 - mov r1, r10 - bl sub_8035044 - movs r0, 0x1 -_08034EE8: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8034D14 - - thumb_func_start sub_8034EFC -sub_8034EFC: @ 8034EFC - 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, =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 _08034FCE - movs r1, 0x3F - mov r10, r1 - movs r2, 0xD - negs r2, r2 - mov r9, r2 -_08034F46: - lsls r0, r5, 3 - ldr r1, =gMain - adds r3, r0, r1 - ldrh r1, [r4, 0xE] - adds r0, r3, 0 - adds r0, 0x38 - strb r1, [r0] - ldr r2, =0x000001ff - adds r0, r2, 0 - adds r1, r7, 0 - ands r1, r0 - ldrh r2, [r3, 0x3A] - ldr r0, =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, =0x000003ff - ands r1, r0 - ldrh r2, [r3, 0x3C] - ldr r0, =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 _08034F46 -_08034FCE: - subs r5, 0x1 - ldr r0, =gMain - lsls r3, r5, 3 - adds r3, r0 - movs r2, 0xC - ldrsh r1, [r4, r2] - ldrb r0, [r4, 0x8] - subs r1, r0 - ldr r2, =0x000001ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x3A] - ldr r0, =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, =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x3C] - ldr r0, =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 - .pool - thumb_func_end sub_8034EFC - - thumb_func_start sub_8035044 -sub_8035044: @ 8035044 - push {r4-r6,lr} - adds r3, r0, 0 - adds r4, r1, 0 - ldr r0, =gUnknown_02022E10 - ldr r1, [r0] - adds r6, r0, 0 - cmp r1, 0 - beq _080350A8 - 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 _080350A8 - str r4, [r2, 0x18] - cmp r4, 0 - bge _08035078 - movs r2, 0x1 - negs r4, r4 - b _0803507A - .pool -_08035078: - movs r2, 0 -_0803507A: - 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 _0803509A - cmp r3, 0x1 - ble _08035092 - cmp r3, 0x2 - beq _080350A2 -_08035092: - adds r1, r4, 0 - bl sub_80350B0 - b _080350A8 -_0803509A: - adds r1, r4, 0 - bl sub_8035164 - b _080350A8 -_080350A2: - adds r1, r4, 0 - bl sub_80352C0 -_080350A8: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8035044 - - thumb_func_start sub_80350B0 -sub_80350B0: @ 80350B0 - 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, =gMain - mov r10, r0 - cmp r5, 0 - beq _0803511A - lsls r0, r7, 3 - adds r0, 0x3C - mov r1, r10 - adds r6, r0, r1 -_080350D6: - 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, =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r0, [r6] - ldr r2, =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r6] - adds r6, 0x8 - adds r7, 0x1 - cmp r5, 0 - bne _080350D6 -_0803511A: - ldr r0, [sp] - cmp r0, 0 - beq _08035140 - 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 _08035154 - .pool -_08035140: - 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] -_08035154: - 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_80350B0 - - thumb_func_start sub_8035164 -sub_8035164: @ 8035164 - 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, =gUnknown_03000DD4 - ldrb r0, [r6, 0x1] - str r0, [r3] - ldr r2, =gUnknown_03000DD8 - movs r0, 0 - str r0, [r2] - ldr r1, =gUnknown_03000DDC - subs r0, 0x1 - str r0, [r1] - adds r7, r3, 0 - mov r10, r1 - ldr r0, =gMain - mov r9, r0 - cmp r5, 0 - beq _0803524C -_08035196: - 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 _080351C8 - mov r2, r10 - ldr r1, [r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080351C8 - cmp r5, 0 - bne _08035224 -_080351C8: - 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, =0x000003ff - adds r0, r1, 0 - ands r3, r0 - ldrh r0, [r2, 0x3C] - ldr r4, =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 _0803523A - ldr r4, =gUnknown_03000DD8 - ldr r0, [r4] - str r0, [r2] - b _0803523A - .pool -_08035224: - 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] -_0803523A: - ldr r0, [r7] - adds r0, 0x1 - str r0, [r7] - ldr r4, =gUnknown_03000DD8 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - cmp r5, 0 - bne _08035196 -_0803524C: - ldr r0, [sp] - cmp r0, 0 - beq _08035298 - 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, =0x000001ff - adds r0, r1, 0 - ands r2, r0 - ldrh r1, [r3, 0x3A] - ldr r0, =0xfffffe00 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0x3A] - b _080352AE - .pool -_08035298: - 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] -_080352AE: - 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_8035164 - - thumb_func_start sub_80352C0 -sub_80352C0: @ 80352C0 - 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 _0803535A -_080352E0: - lsls r0, r3, 3 - adds r1, r0, 0 - adds r1, 0x39 - ldr r2, =gMain - adds r7, r1, r2 - adds r0, 0x3C - adds r6, r0, r2 -_080352EE: - 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 _0803531E - ldr r2, [sp, 0x4] - cmp r2, 0 - bne _0803531E - cmp r5, 0 - bne _080352E0 -_0803531E: - 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, =0x000003ff - adds r0, r1, 0 - ands r2, r0 - ldrh r0, [r6] - ldr r4, =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 _080352EE -_0803535A: - mov r0, r8 - ldrb r0, [r0, 0x3] - cmp r9, r0 - bge _0803538A - ldr r1, =gMain - movs r5, 0x4 - negs r5, r5 - movs r4, 0x2 - lsls r0, r3, 3 - adds r0, 0x39 - adds r2, r0, r1 -_08035370: - 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 _08035370 -_0803538A: - ldr r1, [sp] - cmp r1, 0 - beq _080353B0 - lsls r0, r3, 3 - ldr r2, =gMain - adds r0, r2 - adds r0, 0x39 - ldrb r2, [r0] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _080353C6 - .pool -_080353B0: - lsls r2, r3, 3 - ldr r4, =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] -_080353C6: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80352C0 - - thumb_func_start sub_80353DC -sub_80353DC: @ 80353DC - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_02022E10 - ldr r0, [r0] - cmp r0, 0 - beq _0803546E - 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 _0803546E - ldrb r3, [r2, 0x3] - adds r0, r3, 0x1 - ldrb r2, [r2, 0x1] - cmp r0, 0 - beq _08035426 - ldr r1, =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 -_08035414: - 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 _08035414 -_08035426: - adds r0, r4, 0 - bl sub_8035570 - cmp r0, 0 - bne _08035442 - ldr r0, =gUnknown_02022E10 - ldr r0, [r0] - ldr r1, [r0, 0x4] - subs r0, r5, r4 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x10] - bl FreeSpriteTilesByTag -_08035442: - adds r0, r4, 0 - bl sub_80355B4 - cmp r0, 0 - bne _0803545E - ldr r0, =gUnknown_02022E10 - ldr r0, [r0] - ldr r1, [r0, 0x4] - subs r0, r5, r4 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x12] - bl FreeSpritePaletteByTag -_0803545E: - ldr r0, =gUnknown_02022E10 - ldr r0, [r0] - ldr r1, [r0, 0x4] - subs r0, r5, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_0803546E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80353DC - - thumb_func_start sub_803547C -sub_803547C: @ 803547C - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, =gUnknown_02022E10 - ldr r1, [r0] - adds r7, r0, 0 - cmp r1, 0 - beq _0803550C - 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 _0803550C - ldrb r3, [r2, 0x3] - adds r1, r3, 0x1 - ldrb r0, [r2, 0x1] - cmp r5, 0 - beq _080354D8 - cmp r1, 0 - beq _0803550C - ldr r1, =gMain - movs r5, 0x4 - negs r5, r5 - movs r4, 0x2 - adds r3, 0x1 - lsls r0, 3 - adds r0, 0x39 - adds r2, r0, r1 -_080354BC: - 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 _080354BC - b _0803550C - .pool -_080354D8: - cmp r1, 0 - beq _080354FA - ldr r1, =gMain - movs r5, 0x4 - negs r5, r5 - adds r3, 0x1 - lsls r0, 3 - adds r0, 0x39 - adds r2, r0, r1 -_080354EA: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2] - subs r3, 0x1 - adds r2, 0x8 - cmp r3, 0 - bne _080354EA -_080354FA: - 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_8035044 -_0803550C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_803547C - - thumb_func_start sub_8035518 -sub_8035518: @ 8035518 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0x40 - movs r3, 0 - ldr r0, =gUnknown_02022E10 - ldr r0, [r0] - ldr r2, [r0] - cmp r3, r2 - bcs _0803555A - ldr r1, [r0, 0x4] -_0803552E: - ldrb r0, [r1] - cmp r0, 0 - bne _08035548 - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - beq _08035552 - ldrb r0, [r1, 0x3] - cmp r0, r4 - bhi _08035552 - ldrb r0, [r1, 0x1] - b _0803556A - .pool -_08035548: - adds r0, r5, 0x1 - ldrb r5, [r1, 0x3] - adds r0, r5 - lsls r0, 16 - lsrs r5, r0, 16 -_08035552: - adds r1, 0x1C - adds r3, 0x1 - cmp r3, r2 - bcc _0803552E -_0803555A: - adds r0, r5, r4 - adds r0, 0x1 - cmp r0, 0x80 - bgt _08035568 - lsls r0, r5, 24 - lsrs r0, 24 - b _0803556A -_08035568: - movs r0, 0xFF -_0803556A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8035518 - - thumb_func_start sub_8035570 -sub_8035570: @ 8035570 - push {r4-r6,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r0, =gUnknown_02022E10 - ldr r0, [r0] - ldr r4, [r0] - cmp r2, r4 - bcs _080355AC - ldr r1, [r0, 0x4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r5, r0, r1 -_0803558A: - ldrb r0, [r1] - cmp r0, 0 - beq _080355A4 - cmp r2, r3 - beq _080355A4 - ldrh r0, [r1, 0x10] - ldrh r6, [r5, 0x10] - cmp r0, r6 - bne _080355A4 - movs r0, 0x1 - b _080355AE - .pool -_080355A4: - adds r1, 0x1C - adds r2, 0x1 - cmp r2, r4 - bcc _0803558A -_080355AC: - movs r0, 0 -_080355AE: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8035570 - - thumb_func_start sub_80355B4 -sub_80355B4: @ 80355B4 - push {r4-r6,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r0, =gUnknown_02022E10 - ldr r0, [r0] - ldr r4, [r0] - cmp r2, r4 - bcs _080355F0 - ldr r1, [r0, 0x4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r5, r0, r1 -_080355CE: - ldrb r0, [r1] - cmp r0, 0 - beq _080355E8 - cmp r2, r3 - beq _080355E8 - ldrh r0, [r1, 0x12] - ldrh r6, [r5, 0x12] - cmp r0, r6 - bne _080355E8 - movs r0, 0x1 - b _080355F2 - .pool -_080355E8: - adds r1, 0x1C - adds r2, 0x1 - cmp r2, r4 - bcc _080355CE -_080355F0: - movs r0, 0 -_080355F2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80355B4 - - thumb_func_start sub_80355F8 -sub_80355F8: @ 80355F8 - ldr r2, =gUnknown_082FF1C8 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - bx lr - .pool - thumb_func_end sub_80355F8 - - thumb_func_start sub_8035608 -sub_8035608: @ 8035608 - push {lr} - bl ResetSpriteData - ldr r0, =gUnknown_0831AC88 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, =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 - strb r0, [r1] - ldr r0, =sub_8035648 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8035608 - - thumb_func_start sub_8035648 -sub_8035648: @ 8035648 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - thumb_func_end sub_8035648 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_menu.s b/asm/script_menu.s index 0624dba83..a2e2ec59e 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -1316,7 +1316,7 @@ _080E28CA: ldr r1, =gSprites adds r0, r1 ldrb r1, [r4, 0xC] - bl sub_80B6070 + bl FreeResourcesAndDestroySprite _080E28DE: ldrh r0, [r4, 0x8] adds r0, 0x1 @@ -1363,7 +1363,7 @@ ScriptMenu_ShowPokemonPic: @ 80E2900 asrs r2, 16 mov r0, r8 movs r3, 0 - bl sub_80B5F84 + bl CreateMonSprite_PicBox adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 diff --git a/asm/shop.s b/asm/shop.s index eac0956cb..a09d05323 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -316,7 +316,7 @@ Task_ExitSellMenu: @ 80DFCF8 lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 - bl sub_80ABDFC + bl IsWeatherNotFadingIn lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 88f73fe2c..fc475c2e3 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5583,7 +5583,7 @@ _0812D08E: lsrs r3, 24 adds r1, r3, 0 adds r2, r3, 0 - bl sub_80B6128 + bl MultiplyPaletteRGBComponents _0812D0A6: pop {r4-r7} pop {r0} |