summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/decoration.s7033
-rw-r--r--data/decoration.s265
-rw-r--r--data/decorations.inc2432
-rw-r--r--include/battle.h48
-rw-r--r--include/contest_painting.h8
-rwxr-xr-x[-rw-r--r--]include/decoration.h371
-rw-r--r--include/fieldmap.h2
-rw-r--r--include/gba/io_reg.h2
-rw-r--r--include/global.fieldmap.h26
-rw-r--r--include/global.h18
-rw-r--r--include/items.h758
-rw-r--r--include/menu.h14
-rw-r--r--include/naming_screen.h2
-rw-r--r--include/palette.h32
-rw-r--r--include/save.h12
-rw-r--r--include/script.h2
-rw-r--r--include/sprite.h4
-rw-r--r--include/task.h12
-rw-r--r--ld_script.txt4
-rwxr-xr-x[-rw-r--r--]src/decoration.c4190
-rw-r--r--src/field_map_obj.c274
-rw-r--r--src/fieldmap.c1
-rw-r--r--src/menu.c2
-rw-r--r--src/scrcmd.c1
-rw-r--r--src/secret_base.c895
-rw-r--r--[-rwxr-xr-x]src/tv.c1112
-rw-r--r--src/util.c690
27 files changed, 6511 insertions, 11699 deletions
diff --git a/asm/decoration.s b/asm/decoration.s
deleted file mode 100644
index 221c749c5..000000000
--- a/asm/decoration.s
+++ /dev/null
@@ -1,7033 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80FE1DC
-sub_80FE1DC: @ 80FE1DC
- push {lr}
- sub sp, 0x8
- bl sub_80FE2B4
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _080FE218 @ =gUnknown_083EC604
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- ldr r0, _080FE21C @ =gUnknown_020388D4
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FE218: .4byte gUnknown_083EC604
-_080FE21C: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE1DC
-
- thumb_func_start sub_80FE220
-sub_80FE220: @ 80FE220
- push {lr}
- ldr r1, _080FE238 @ =gUnknown_020388D4
- movs r0, 0
- strb r0, [r1]
- bl ScriptContext2_Enable
- bl sub_80FE1DC
- bl sub_80FE394
- pop {r0}
- bx r0
- .align 2, 0
-_080FE238: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE220
-
- thumb_func_start DecorationPC
-DecorationPC: @ 80FE23C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80FE220
- ldr r1, _080FE25C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE260 @ =Task_DecorationPCProcessMenuInput
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE25C: .4byte gTasks
-_080FE260: .4byte Task_DecorationPCProcessMenuInput
- thumb_func_end DecorationPC
-
- thumb_func_start Task_SecretBasePC_Decoration
-Task_SecretBasePC_Decoration: @ 80FE264
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DecorationPC
- ldr r1, _080FE284 @ =0x0201f000
- ldr r0, _080FE288 @ =gSaveBlock1 + 0x1A1A
- str r0, [r1]
- adds r0, 0x10
- str r0, [r1, 0x4]
- movs r2, 0
- movs r0, 0x10
- strb r0, [r1, 0x8]
- strb r2, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_080FE284: .4byte 0x0201f000
-_080FE288: .4byte gSaveBlock1 + 0x1A1A
- thumb_func_end Task_SecretBasePC_Decoration
-
- thumb_func_start DoPlayerPCDecoration
-DoPlayerPCDecoration: @ 80FE28C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DecorationPC
- ldr r1, _080FE2AC @ =0x0201f000
- ldr r0, _080FE2B0 @ =gSaveBlock1 + 0x2688
- str r0, [r1]
- adds r0, 0xC
- str r0, [r1, 0x4]
- movs r0, 0xC
- strb r0, [r1, 0x8]
- movs r0, 0x1
- strb r0, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_080FE2AC: .4byte 0x0201f000
-_080FE2B0: .4byte gSaveBlock1 + 0x2688
- thumb_func_end DoPlayerPCDecoration
-
- thumb_func_start sub_80FE2B4
-sub_80FE2B4: @ 80FE2B4
- push {lr}
- sub sp, 0x8
- ldr r1, _080FE2E8 @ =gUnknown_083EC654
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r0, sp, 0x4
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- adds r0, 0x2
- movs r1, 0xD1
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- movs r1, 0xD8
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FE2E8: .4byte gUnknown_083EC654
- thumb_func_end sub_80FE2B4
-
- thumb_func_start Task_DecorationPCProcessMenuInput
-Task_DecorationPCProcessMenuInput: @ 80FE2EC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- ldr r0, _080FE368 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r5, 0x80
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _080FE38C
- ldr r4, _080FE36C @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080FE324
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- ldr r1, _080FE370 @ =gUnknown_020388D4
- strb r0, [r1]
- bl sub_80FE394
-_080FE324:
- ldrh r1, [r4, 0x2E]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE342
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _080FE370 @ =gUnknown_020388D4
- strb r0, [r1]
- bl sub_80FE394
-_080FE342:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FE378
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080FE374 @ =gUnknown_083EC604
- ldr r0, _080FE370 @ =gUnknown_020388D4
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
- b _080FE38C
- .align 2, 0
-_080FE368: .4byte gPaletteFade
-_080FE36C: .4byte gMain
-_080FE370: .4byte gUnknown_020388D4
-_080FE374: .4byte gUnknown_083EC604
-_080FE378:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FE38C
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl gpu_pal_decompress_alloc_tag_and_upload
-_080FE38C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end Task_DecorationPCProcessMenuInput
-
- thumb_func_start sub_80FE394
-sub_80FE394: @ 80FE394
- push {lr}
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- ldr r1, _080FE3BC @ =gUnknown_083EC624
- ldr r0, _080FE3C0 @ =gUnknown_020388D4
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_080FE3BC: .4byte gUnknown_083EC624
-_080FE3C0: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE394
-
- thumb_func_start gpu_pal_decompress_alloc_tag_and_upload
-gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- ldr r0, _080FE404 @ =0x0201f000
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _080FE40C
- ldr r0, _080FE408 @ =gUnknown_0815F399
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- b _080FE412
- .align 2, 0
-_080FE404: .4byte 0x0201f000
-_080FE408: .4byte gUnknown_0815F399
-_080FE40C:
- adds r0, r4, 0
- bl ReshowPlayerPC
-_080FE412:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end gpu_pal_decompress_alloc_tag_and_upload
-
- thumb_func_start sub_80FE418
-sub_80FE418: @ 80FE418
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE5AC
- pop {r0}
- bx r0
- thumb_func_end sub_80FE418
-
- thumb_func_start sub_80FE428
-sub_80FE428: @ 80FE428
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080FE464 @ =gUnknown_020388D4
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- bl sub_80FE394
- ldr r1, _080FE468 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE46C @ =Task_DecorationPCProcessMenuInput
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE464: .4byte gUnknown_020388D4
-_080FE468: .4byte gTasks
-_080FE46C: .4byte Task_DecorationPCProcessMenuInput
- thumb_func_end sub_80FE428
-
- thumb_func_start sub_80FE470
-sub_80FE470: @ 80FE470
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- mov r8, r1
- mov r9, r2
- adds r5, r3, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8072CBC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r7, _080FE51C @ =gStringVar4
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x5
- mov r10, r0
- strb r0, [r7, 0x1]
- strb r5, [r7, 0x2]
- adds r7, 0x3
- ldr r1, _080FE520 @ =gUnknown_083EC5E4
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- adds r0, r4, 0
- bl sub_8134194
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r7, 0
- movs r2, 0x56
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- movs r0, 0xBA
- strb r0, [r7]
- adds r7, 0x1
- ldr r0, _080FE524 @ =gDecorationInventories
- lsls r4, 3
- adds r4, r0
- ldrb r1, [r4, 0x4]
- adds r0, r7, 0
- movs r2, 0x68
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- movs r0, 0xFC
- strb r0, [r7]
- mov r0, r10
- strb r0, [r7, 0x1]
- strb r6, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- ldr r0, _080FE51C @ =gStringVar4
- mov r1, r8
- mov r2, r9
- bl MenuPrint
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE51C: .4byte gStringVar4
-_080FE520: .4byte gUnknown_083EC5E4
-_080FE524: .4byte gDecorationInventories
- thumb_func_end sub_80FE470
-
- thumb_func_start sub_80FE528
-sub_80FE528: @ 80FE528
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r5, 0
- ldr r1, _080FE574 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
-_080FE548:
- ldr r0, _080FE578 @ =0x0201f000
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- bne _080FE57C
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080FE57C
- cmp r5, 0x6
- beq _080FE57C
- cmp r5, 0x7
- beq _080FE57C
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0xD
- bl sub_80FE470
- b _080FE58E
- .align 2, 0
-_080FE574: .4byte gTasks
-_080FE578: .4byte 0x0201f000
-_080FE57C:
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0xFF
- bl sub_80FE470
-_080FE58E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _080FE548
- ldr r0, _080FE5A8 @ =gUnknownText_Exit
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE5A8: .4byte gUnknownText_Exit
- thumb_func_end sub_80FE528
-
- thumb_func_start sub_80FE5AC
-sub_80FE5AC: @ 80FE5AC
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FE528
- ldr r0, _080FE5F8 @ =gUnknown_020388F6
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x9
- bl InitMenu
- ldr r1, _080FE5FC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE600 @ =sub_80FE604
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE5F8: .4byte gUnknown_020388F6
-_080FE5FC: .4byte gTasks
-_080FE600: .4byte sub_80FE604
- thumb_func_end sub_80FE5AC
-
- thumb_func_start sub_80FE604
-sub_80FE604: @ 80FE604
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _080FE638 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE61C
- b _080FE720
-_080FE61C:
- ldr r2, _080FE63C @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080FE640
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080FE720
- .align 2, 0
-_080FE638: .4byte gPaletteFade
-_080FE63C: .4byte gMain
-_080FE640:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE656
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080FE720
-_080FE656:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FE70C
- movs r0, 0x5
- bl PlaySE
- bl GetMenuCursorPos
- ldr r4, _080FE6C0 @ =gUnknown_020388F6
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- beq _080FE704
- ldrb r0, [r4]
- bl sub_8134194
- ldr r1, _080FE6C4 @ =gUnknown_020388D5
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _080FE6DC
- ldrb r0, [r4]
- bl sub_8134104
- ldr r2, _080FE6C8 @ =gUnknown_020388D0
- ldr r1, _080FE6CC @ =gDecorationInventories
- ldrb r0, [r4]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- adds r0, r5, 0
- bl sub_80FEF50
- bl sub_80F944C
- ldr r0, _080FE6D0 @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9480
- bl LoadScrollIndicatorPalette
- ldr r1, _080FE6D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE6D8 @ =sub_80FE868
- str r1, [r0]
- b _080FE720
- .align 2, 0
-_080FE6C0: .4byte gUnknown_020388F6
-_080FE6C4: .4byte gUnknown_020388D5
-_080FE6C8: .4byte gUnknown_020388D0
-_080FE6CC: .4byte gDecorationInventories
-_080FE6D0: .4byte gUnknown_020388F7
-_080FE6D4: .4byte gTasks
-_080FE6D8: .4byte sub_80FE868
-_080FE6DC:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080FE6FC @ =gSecretBaseText_NoDecors
- ldr r2, _080FE700 @ =sub_80FE418
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FE720
- .align 2, 0
-_080FE6FC: .4byte gSecretBaseText_NoDecors
-_080FE700: .4byte sub_80FE418
-_080FE704:
- adds r0, r5, 0
- bl sub_80FE728
- b _080FE720
-_080FE70C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FE720
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80FE728
-_080FE720:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE604
-
- thumb_func_start sub_80FE728
-sub_80FE728: @ 80FE728
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080FE748 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- beq _080FE74C
- adds r0, r2, 0
- bl sub_80FE758
- b _080FE752
- .align 2, 0
-_080FE748: .4byte gTasks
-_080FE74C:
- adds r0, r2, 0
- bl sub_8109DAC
-_080FE752:
- pop {r0}
- bx r0
- thumb_func_end sub_80FE728
-
- thumb_func_start sub_80FE758
-sub_80FE758: @ 80FE758
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080FE794 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- beq _080FE79C
- bl sub_80FE1DC
- bl MenuDisplayMessageBox
- bl sub_80FE394
- ldr r0, _080FE798 @ =Task_DecorationPCProcessMenuInput
- str r0, [r5]
- b _080FE7A2
- .align 2, 0
-_080FE794: .4byte gTasks
-_080FE798: .4byte Task_DecorationPCProcessMenuInput
-_080FE79C:
- adds r0, r4, 0
- bl sub_80B3068
-_080FE7A2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE758
-
- thumb_func_start sub_80FE7A8
-sub_80FE7A8: @ 80FE7A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080FE7CC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r3, 0
- movs r2, 0x3
- strh r2, [r1, 0x1E]
- ldr r1, _080FE7D0 @ =gUnknown_020388F6
- strb r3, [r1]
- bl sub_80FE5AC
- pop {r0}
- bx r0
- .align 2, 0
-_080FE7CC: .4byte gTasks
-_080FE7D0: .4byte gUnknown_020388F6
- thumb_func_end sub_80FE7A8
-
- thumb_func_start sub_80FE7D4
-sub_80FE7D4: @ 80FE7D4
- push {lr}
- lsls r1, 24
- ldr r2, _080FE7E8 @ =gUnknown_083EC5E4
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_080FE7E8: .4byte gUnknown_083EC5E4
- thumb_func_end sub_80FE7D4
-
- .section .text_80FE868
-
- thumb_func_start sub_80FE868
-sub_80FE868: @ 80FE868
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80FE7EC
- ldr r1, _080FE88C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE890 @ =sub_80FE948
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE88C: .4byte gTasks
-_080FE890: .4byte sub_80FE948
- thumb_func_end sub_80FE868
-
- thumb_func_start sub_80FE894
-sub_80FE894: @ 80FE894
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0
- mov r10, r0
- ldr r6, _080FE920 @ =gUnknown_020388F2
- ldrb r1, [r6]
- ldr r4, _080FE924 @ =gUnknown_020388F4
- ldrb r0, [r4]
- adds r1, r0
- ldr r2, _080FE928 @ =gUnknown_020388D5
- mov r9, r2
- ldrb r0, [r2]
- cmp r1, r0
- bne _080FE8C8
- movs r1, 0x1
- mov r10, r1
-_080FE8C8:
- movs r0, 0x5
- bl PlaySE
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0
- beq _080FE8DC
- bl MoveMenuCursor
- strb r0, [r6]
-_080FE8DC:
- cmp r7, 0
- beq _080FE8EE
- ldrb r0, [r4]
- adds r0, r7
- strb r0, [r4]
- mov r0, r8
- movs r1, 0x1
- bl sub_80FEABC
-_080FE8EE:
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r0, r1
- mov r2, r9
- ldrb r2, [r2]
- cmp r0, r2
- beq _080FE92C
- mov r0, r10
- cmp r0, 0
- beq _080FE90E
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
-_080FE90E:
- ldrb r0, [r4]
- ldrb r6, [r6]
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FECE0
- b _080FE938
- .align 2, 0
-_080FE920: .4byte gUnknown_020388F2
-_080FE924: .4byte gUnknown_020388F4
-_080FE928: .4byte gUnknown_020388D5
-_080FE92C:
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080FE938:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE894
-
- thumb_func_start sub_80FE948
-sub_80FE948: @ 80FE948
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080FE980 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080FE95C
- b _080FEAAC
-_080FE95C:
- ldr r0, _080FE984 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x40
- bne _080FE9A0
- ldr r0, _080FE988 @ =gUnknown_020388F2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FE98C
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- movs r2, 0
- bl sub_80FE894
- b _080FE9A0
- .align 2, 0
-_080FE980: .4byte gPaletteFade
-_080FE984: .4byte gMain
-_080FE988: .4byte gUnknown_020388F2
-_080FE98C:
- ldr r0, _080FE9C4 @ =gUnknown_020388F4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FE9A0
- movs r2, 0x1
- negs r2, r2
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FE894
-_080FE9A0:
- ldr r0, _080FE9C8 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x80
- bne _080FE9EE
- ldr r2, _080FE9CC @ =gUnknown_020388F2
- ldr r1, _080FE9D0 @ =gUnknown_020388F3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080FE9D4
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_80FE894
- b _080FE9EE
- .align 2, 0
-_080FE9C4: .4byte gUnknown_020388F4
-_080FE9C8: .4byte gMain
-_080FE9CC: .4byte gUnknown_020388F2
-_080FE9D0: .4byte gUnknown_020388F3
-_080FE9D4:
- ldr r0, _080FEA38 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- ldr r1, _080FEA3C @ =gUnknown_020388D5
- ldrb r1, [r1]
- cmp r0, r1
- beq _080FE9EE
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- bl sub_80FE894
-_080FE9EE:
- ldr r0, _080FEA40 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FEA7C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080FEA44 @ =gUnknown_020388F5
- ldr r1, _080FEA48 @ =gUnknown_020388F2
- ldr r0, _080FEA38 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldrb r1, [r1]
- adds r0, r1
- strb r0, [r2]
- ldr r1, _080FEA3C @ =gUnknown_020388D5
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _080FEA54
- ldr r1, _080FEA4C @ =gUnknown_083EC634
- ldr r2, _080FEA50 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- b _080FEA68
- .align 2, 0
-_080FEA38: .4byte gUnknown_020388F4
-_080FEA3C: .4byte gUnknown_020388D5
-_080FEA40: .4byte gMain
-_080FEA44: .4byte gUnknown_020388F5
-_080FEA48: .4byte gUnknown_020388F2
-_080FEA4C: .4byte gUnknown_083EC634
-_080FEA50: .4byte gTasks
-_080FEA54:
- ldr r2, _080FEA74 @ =gUnknown_083EC634
- ldr r1, _080FEA78 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- lsls r0, 3
- adds r0, r2
-_080FEA68:
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080FEAAC
- .align 2, 0
-_080FEA74: .4byte gUnknown_083EC634
-_080FEA78: .4byte gTasks
-_080FEA7C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FEAAC
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080FEAB4 @ =gUnknown_083EC634
- ldr r2, _080FEAB8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080FEAAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEAB4: .4byte gUnknown_083EC634
-_080FEAB8: .4byte gTasks
- thumb_func_end sub_80FE948
-
- thumb_func_start sub_80FEABC
-sub_80FEABC: @ 80FEABC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080FEB58 @ =gUnknown_020388F4
- ldrb r0, [r4]
- cmp r0, 0
- bne _080FEADE
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- ldrb r0, [r4]
- cmp r0, 0
- beq _080FEAE8
-_080FEADE:
- movs r0, 0
- movs r1, 0x3C
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_080FEAE8:
- ldr r5, _080FEB58 @ =gUnknown_020388F4
- ldrb r0, [r5]
- adds r0, 0x7
- ldr r4, _080FEB5C @ =gUnknown_020388D5
- ldrb r1, [r4]
- cmp r0, r1
- bne _080FEAFC
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_080FEAFC:
- ldrb r0, [r5]
- adds r0, 0x7
- ldrb r4, [r4]
- cmp r0, r4
- bge _080FEB10
- movs r0, 0x1
- movs r1, 0x3C
- movs r2, 0x98
- bl CreateVerticalScrollIndicators
-_080FEB10:
- ldrb r4, [r5]
- adds r0, r4, 0
- adds r0, 0x8
- cmp r4, r0
- blt _080FEB1C
- b _080FEC7E
-_080FEB1C:
- adds r7, r5, 0
-_080FEB1E:
- ldrb r1, [r7]
- subs r1, r4, r1
- lsls r0, r1, 25
- movs r2, 0x80
- lsls r2, 18
- adds r0, r2
- lsrs r6, r0, 24
- ldr r0, _080FEB60 @ =gUnknown_020388F7
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080FEB3C
- adds r0, r1, 0
- bl sub_80F94F8
-_080FEB3C:
- ldr r0, _080FEB5C @ =gUnknown_020388D5
- ldrb r0, [r0]
- cmp r4, r0
- bne _080FEB68
- lsls r2, r6, 3
- movs r0, 0x1
- str r0, [sp]
- ldr r0, _080FEB64 @ =gUnknownText_Exit
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
- b _080FEC7E
- .align 2, 0
-_080FEB58: .4byte gUnknown_020388F4
-_080FEB5C: .4byte gUnknown_020388D5
-_080FEB60: .4byte gUnknown_020388F7
-_080FEB64: .4byte gUnknownText_Exit
-_080FEB68:
- ldr r0, _080FEBC0 @ =gUnknown_020388D0
- ldr r1, [r0]
- adds r2, r1, r4
- ldrb r1, [r2]
- mov r12, r0
- adds r5, r4, 0x1
- cmp r1, 0
- bne _080FEB7A
- b _080FEC70
-_080FEB7A:
- ldr r0, _080FEBC4 @ =0x0201f000
- ldrb r5, [r0, 0x9]
- cmp r5, 0x1
- bne _080FEBDC
- ldr r0, _080FEBC8 @ =gUnknown_020388F6
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080FEBDC
- cmp r0, 0x7
- beq _080FEBDC
- ldr r0, _080FEBCC @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r3, 0x1E
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080FEBDC
- ldrb r1, [r2]
- lsls r1, 5
- ldr r0, _080FEBD0 @ =gDecorations + 0x1
- adds r1, r0
- ldr r0, _080FEBD4 @ =gStringVar1
- bl StringCopy
- lsls r2, r6, 3
- str r5, [sp]
- ldr r0, _080FEBD8 @ =gUnknown_083EC65A
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
- b _080FEBF8
- .align 2, 0
-_080FEBC0: .4byte gUnknown_020388D0
-_080FEBC4: .4byte 0x0201f000
-_080FEBC8: .4byte gUnknown_020388F6
-_080FEBCC: .4byte gTasks
-_080FEBD0: .4byte gDecorations + 0x1
-_080FEBD4: .4byte gStringVar1
-_080FEBD8: .4byte gUnknown_083EC65A
-_080FEBDC:
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 5
- ldr r1, _080FEC00 @ =gDecorations + 0x1
- adds r0, r1
- lsls r2, r6, 3
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
-_080FEBF8:
- movs r1, 0
- adds r5, r4, 0x1
- b _080FEC0A
- .align 2, 0
-_080FEC00: .4byte gDecorations + 0x1
-_080FEC04:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
-_080FEC0A:
- cmp r1, 0xF
- bhi _080FEC34
- ldr r0, _080FEC38 @ =gUnknown_020388D6
- adds r0, r1, r0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, r4
- bne _080FEC04
- ldrb r3, [r7]
- subs r3, r4, r3
- ldr r1, _080FEC3C @ =gUnknown_020388F7
- adds r1, r3, r1
- lsls r3, 20
- movs r2, 0xC0
- lsls r2, 13
- adds r3, r2
- asrs r3, 16
- movs r0, 0x4
- movs r2, 0x6C
- bl sub_80F94A4
-_080FEC34:
- movs r1, 0
- b _080FEC46
- .align 2, 0
-_080FEC38: .4byte gUnknown_020388D6
-_080FEC3C: .4byte gUnknown_020388F7
-_080FEC40:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
-_080FEC46:
- cmp r1, 0xB
- bhi _080FEC70
- ldr r0, _080FEC8C @ =gUnknown_020388E6
- adds r0, r1, r0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, r4
- bne _080FEC40
- ldrb r3, [r7]
- subs r3, r4, r3
- ldr r1, _080FEC90 @ =gUnknown_020388F7
- adds r1, r3, r1
- lsls r3, 20
- movs r0, 0xC0
- lsls r0, 13
- adds r3, r0
- asrs r3, 16
- movs r0, 0x5
- movs r2, 0x6C
- bl sub_80F94A4
-_080FEC70:
- lsls r0, r5, 16
- lsrs r4, r0, 16
- ldrb r0, [r7]
- adds r0, 0x8
- cmp r4, r0
- bge _080FEC7E
- b _080FEB1E
-_080FEC7E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEC8C: .4byte gUnknown_020388E6
-_080FEC90: .4byte gUnknown_020388F7
- thumb_func_end sub_80FEABC
-
- thumb_func_start sub_80FEC94
-sub_80FEC94: @ 80FEC94
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FEABC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FEC94
-
- thumb_func_start sub_80FECB8
-sub_80FECB8: @ 80FECB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x1
- movs r3, 0xFF
- bl sub_80FE470
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FECB8
-
- thumb_func_start sub_80FECE0
-sub_80FECE0: @ 80FECE0
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080FED14 @ =gDecorations
- ldr r1, _080FED18 @ =gUnknown_020388D0
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 5
- adds r2, 0x18
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x30
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x80
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FED14: .4byte gDecorations
-_080FED18: .4byte gUnknown_020388D0
- thumb_func_end sub_80FECE0
-
- thumb_func_start sub_80FED1C
-sub_80FED1C: @ 80FED1C
- push {lr}
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80FED1C
-
- thumb_func_start sub_80FED3C
-sub_80FED3C: @ 80FED3C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl LoadScrollIndicatorPalette
- ldr r1, _080FED5C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FED60 @ =sub_80FE868
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FED5C: .4byte gTasks
-_080FED60: .4byte sub_80FE868
- thumb_func_end sub_80FED3C
-
- thumb_func_start sub_80FED64
-sub_80FED64: @ 80FED64
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _080FED7C @ =gUnknown_020388D6
-_080FED6E:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FED80
- movs r0, 0x1
- b _080FED8C
- .align 2, 0
-_080FED7C: .4byte gUnknown_020388D6
-_080FED80:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080FED6E
- movs r0, 0
-_080FED8C:
- pop {r1}
- bx r1
- thumb_func_end sub_80FED64
-
- thumb_func_start sub_80FED90
-sub_80FED90: @ 80FED90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r3, 0
- ldr r4, _080FEE30 @ =gUnknown_020388D6
- movs r1, 0
- ldr r2, _080FEE34 @ =gUnknown_020388E6
-_080FEDA4:
- adds r0, r3, r4
- strb r1, [r0]
- cmp r3, 0xB
- bhi _080FEDB0
- adds r0, r3, r2
- strb r1, [r0]
-_080FEDB0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080FEDA4
- movs r3, 0
- ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A
- mov r10, r0
- ldr r1, _080FEE3C @ =gDecorationInventories
- mov r9, r1
- ldr r2, _080FEE40 @ =gUnknown_020388F6
- mov r8, r2
-_080FEDC8:
- mov r1, r10
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FEE5A
- movs r1, 0
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 3
- add r0, r9
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcs _080FEE5A
- ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A
- adds r0, r3
- mov r12, r0
- ldr r7, _080FEE30 @ =gUnknown_020388D6
-_080FEDEA:
- ldr r0, _080FEE44 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- adds r4, r1, 0x1
- mov r1, r12
- ldrb r1, [r1]
- cmp r0, r1
- bne _080FEE48
- movs r1, 0
- cmp r1, r6
- bcs _080FEE1E
- ldrb r0, [r7]
- cmp r0, r4
- beq _080FEE1E
- ldr r5, _080FEE30 @ =gUnknown_020388D6
- adds r2, r4, 0
-_080FEE0C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r6
- bcs _080FEE1E
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FEE0C
-_080FEE1E:
- cmp r1, r6
- bne _080FEE48
- adds r0, r6, r7
- strb r4, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- b _080FEE5A
- .align 2, 0
-_080FEE30: .4byte gUnknown_020388D6
-_080FEE34: .4byte gUnknown_020388E6
-_080FEE38: .4byte gSaveBlock1 + 0x1A1A
-_080FEE3C: .4byte gDecorationInventories
-_080FEE40: .4byte gUnknown_020388F6
-_080FEE44: .4byte gUnknown_020388D0
-_080FEE48:
- lsls r0, r4, 16
- lsrs r1, r0, 16
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 3
- add r0, r9
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcc _080FEDEA
-_080FEE5A:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080FEDC8
- movs r6, 0
- movs r3, 0
- ldr r0, _080FEEE4 @ =gDecorationInventories
- mov r8, r0
-_080FEE6C:
- ldr r0, _080FEEE8 @ =gSaveBlock1
- ldr r1, _080FEEEC @ =0x00002688
- adds r0, r1
- adds r2, r3, r0
- ldrb r0, [r2]
- adds r7, r3, 0x1
- cmp r0, 0
- beq _080FEF0E
- movs r1, 0
- ldr r0, _080FEEF0 @ =gUnknown_020388F6
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcs _080FEF0E
- adds r5, r2, 0
-_080FEE8E:
- ldr r0, _080FEEF4 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- adds r4, r1, 0x1
- ldrb r2, [r5]
- cmp r0, r2
- bne _080FEEFC
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80FED64
- lsls r0, 24
- cmp r0, 0
- bne _080FEEFC
- movs r1, 0
- cmp r1, r6
- bcs _080FEED0
- ldr r2, _080FEEF8 @ =gUnknown_020388E6
- ldrb r0, [r2]
- cmp r0, r4
- beq _080FEED0
- adds r3, r2, 0
- adds r2, r4, 0
-_080FEEBE:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r6
- bcs _080FEED0
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FEEBE
-_080FEED0:
- cmp r1, r6
- bne _080FEEFC
- ldr r0, _080FEEF8 @ =gUnknown_020388E6
- adds r0, r6, r0
- strb r4, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- b _080FEF0E
- .align 2, 0
-_080FEEE4: .4byte gDecorationInventories
-_080FEEE8: .4byte gSaveBlock1
-_080FEEEC: .4byte 0x00002688
-_080FEEF0: .4byte gUnknown_020388F6
-_080FEEF4: .4byte gUnknown_020388D0
-_080FEEF8: .4byte gUnknown_020388E6
-_080FEEFC:
- lsls r0, r4, 16
- lsrs r1, r0, 16
- ldr r0, _080FEF24 @ =gUnknown_020388F6
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcc _080FEE8E
-_080FEF0E:
- lsls r0, r7, 16
- lsrs r3, r0, 16
- cmp r3, 0xB
- bls _080FEE6C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF24: .4byte gUnknown_020388F6
- thumb_func_end sub_80FED90
-
- thumb_func_start sub_80FEF28
-sub_80FEF28: @ 80FEF28
- push {lr}
- ldr r0, _080FEF38 @ =gUnknown_020388D5
- ldrb r1, [r0]
- cmp r1, 0x7
- bhi _080FEF40
- ldr r0, _080FEF3C @ =gUnknown_020388F3
- strb r1, [r0]
- b _080FEF46
- .align 2, 0
-_080FEF38: .4byte gUnknown_020388D5
-_080FEF3C: .4byte gUnknown_020388F3
-_080FEF40:
- ldr r1, _080FEF4C @ =gUnknown_020388F3
- movs r0, 0x7
- strb r0, [r1]
-_080FEF46:
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF4C: .4byte gUnknown_020388F3
- thumb_func_end sub_80FEF28
-
- thumb_func_start sub_80FEF50
-sub_80FEF50: @ 80FEF50
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FED90
- bl sub_80FEF28
- ldr r0, _080FEF6C @ =gUnknown_020388F2
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080FEF70 @ =gUnknown_020388F4
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF6C: .4byte gUnknown_020388F2
-_080FEF70: .4byte gUnknown_020388F4
- thumb_func_end sub_80FEF50
-
- thumb_func_start sub_80FEF74
-sub_80FEF74: @ 80FEF74
- push {lr}
- ldr r0, _080FEFA0 @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9520
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_080FEFA0: .4byte gUnknown_020388F7
- thumb_func_end sub_80FEF74
-
- thumb_func_start sub_80FEFA4
-sub_80FEFA4: @ 80FEFA4
- push {r4,lr}
- movs r2, 0
- ldr r0, _080FEFD0 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldr r1, _080FEFD4 @ =gUnknown_020388F2
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r0, 0x1
- ldr r4, _080FEFD8 @ =gUnknown_020388D6
- ldr r3, _080FEFDC @ =gUnknown_020388E6
-_080FEFB8:
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, r1
- beq _080FEFCC
- cmp r2, 0xB
- bhi _080FEFE0
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _080FEFE0
-_080FEFCC:
- movs r0, 0
- b _080FEFEC
- .align 2, 0
-_080FEFD0: .4byte gUnknown_020388F4
-_080FEFD4: .4byte gUnknown_020388F2
-_080FEFD8: .4byte gUnknown_020388D6
-_080FEFDC: .4byte gUnknown_020388E6
-_080FEFE0:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _080FEFB8
- movs r0, 0x1
-_080FEFEC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FEFA4
-
- thumb_func_start sub_80FEFF4
-sub_80FEFF4: @ 80FEFF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080FF028 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080FF00E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FF020
-_080FF00E:
- bl LoadScrollIndicatorPalette
- ldr r0, _080FF02C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080FF030 @ =sub_80FE868
- str r0, [r1]
-_080FF020:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF028: .4byte gMain
-_080FF02C: .4byte gTasks
-_080FF030: .4byte sub_80FE868
- thumb_func_end sub_80FEFF4
-
- thumb_func_start sub_80FF034
-sub_80FF034: @ 80FF034
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FE5AC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF034
-
- thumb_func_start sub_80FF058
-sub_80FF058: @ 80FF058
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080FF08C @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9520
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- bl BuyMenuFreeMemory
- ldr r1, _080FF090 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FF094 @ =sub_80FF034
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF08C: .4byte gUnknown_020388F7
-_080FF090: .4byte gTasks
-_080FF094: .4byte sub_80FF034
- thumb_func_end sub_80FF058
-
- thumb_func_start sub_80FF098
-sub_80FF098: @ 80FF098
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080FF0D4 @ =gUnknown_020388D5
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r3, _080FF0D8 @ =gUnknown_020388F4
- ldrb r2, [r3]
- adds r0, r2, 0x7
- ldrb r1, [r1]
- cmp r0, r1
- ble _080FF0BA
- cmp r2, 0
- beq _080FF0BA
- subs r0, r2, 0x1
- strb r0, [r3]
-_080FF0BA:
- ldr r0, _080FF0DC @ =gUnknown_020388F6
- ldrb r0, [r0]
- bl sub_8134104
- adds r0, r4, 0
- bl sub_80FED90
- bl sub_80FEF28
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF0D4: .4byte gUnknown_020388D5
-_080FF0D8: .4byte gUnknown_020388F4
-_080FF0DC: .4byte gUnknown_020388F6
- thumb_func_end sub_80FF098
-
- thumb_func_start sub_80FF0E0
-sub_80FF0E0: @ 80FF0E0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080FF10C @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r4, r2, r3
- ldr r1, _080FF110 @ =gSaveBlock1
- ldrh r0, [r1]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x10]
- adds r3, 0x8
- adds r2, r3
- adds r1, r2, 0x2
- adds r0, r2, 0
- bl PlayerGetDestCoords
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF10C: .4byte gTasks
-_080FF110: .4byte gSaveBlock1
- thumb_func_end sub_80FF0E0
-
- thumb_func_start sub_80FF114
-sub_80FF114: @ 80FF114
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl DrawWholeMapView
- ldr r1, _080FF158 @ =gSaveBlock1
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- ldr r3, _080FF15C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r3
- movs r3, 0xE
- ldrsb r3, [r4, r3]
- ldrb r4, [r4, 0x10]
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- bl warp1_set
- bl warp_in
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF158: .4byte gSaveBlock1
-_080FF15C: .4byte gTasks
- thumb_func_end sub_80FF114
-
- thumb_func_start sub_80FF160
-sub_80FF160: @ 80FF160
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _080FF188
- ldr r1, _080FF180 @ =gSecretBaseText_NoDecors
- ldr r2, _080FF184 @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FF1A2
- .align 2, 0
-_080FF180: .4byte gSecretBaseText_NoDecors
-_080FF184: .4byte sub_80FE428
-_080FF188:
- ldr r1, _080FF1A8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x1E]
- ldr r0, _080FF1AC @ =gUnknown_020388F6
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_080FF1A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF1A8: .4byte gTasks
-_080FF1AC: .4byte gUnknown_020388F6
- thumb_func_end sub_80FF160
-
- thumb_func_start sub_80FF1B0
-sub_80FF1B0: @ 80FF1B0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080FF1D0 @ =0x0000ffff
- cmp r2, 0x22
- beq _080FF1D8
- cmp r2, 0x26
- bne _080FF1E2
- ldr r0, _080FF1D4 @ =gUnknown_083EC97C
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 16
- b _080FF1E2
- .align 2, 0
-_080FF1D0: .4byte 0x0000ffff
-_080FF1D4: .4byte gUnknown_083EC97C
-_080FF1D8:
- ldr r0, _080FF1E8 @ =gUnknown_083EC984
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 16
-_080FF1E2:
- pop {r1}
- bx r1
- .align 2, 0
-_080FF1E8: .4byte gUnknown_083EC984
- thumb_func_end sub_80FF1B0
-
- thumb_func_start sub_80FF1EC
-sub_80FF1EC: @ 80FF1EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- ldr r4, [sp, 0x54]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x8]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp, 0x10]
- movs r2, 0
- lsls r0, r3, 16
- cmp r2, r3
- bcc _080FF222
- b _080FF384
-_080FF222:
- ldr r1, [sp, 0x8]
- str r1, [sp, 0x28]
- str r0, [sp, 0x2C]
-_080FF228:
- ldr r3, [sp, 0x4]
- ldr r4, [sp, 0xC]
- subs r1, r3, r4
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, 0x1
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r10, r0
- adds r1, r2, 0x1
- str r1, [sp, 0x30]
- ldr r3, [sp, 0x28]
- cmp r10, r3
- bcc _080FF24C
- b _080FF374
-_080FF24C:
- ldr r4, [sp, 0x10]
- lsls r4, 5
- str r4, [sp, 0x18]
- ldr r0, _080FF2B4 @ =gDecorations + 0x1C
- adds r0, r4, r0
- str r0, [sp, 0x1C]
- ldr r0, _080FF2B8 @ =gDecorations
- adds r0, r4, r0
- str r0, [sp, 0x24]
- ldr r3, [sp, 0x8]
- adds r1, r2, 0
- muls r1, r3
- str r1, [sp, 0x20]
-_080FF266:
- ldr r0, [sp]
- add r0, r10
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, [sp, 0x20]
- add r1, r10
- ldr r4, [sp, 0x1C]
- ldr r0, [r4]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- lsls r4, r0, 16
- lsls r0, r4, 8
- lsrs r0, 24
- bl sub_8057288
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FF2AC
- ldr r3, [sp, 0x24]
- ldrb r0, [r3, 0x11]
- cmp r0, 0x1
- beq _080FF2BC
- lsrs r0, r4, 28
- cmp r0, 0
- beq _080FF2BC
-_080FF2AC:
- movs r4, 0xC0
- lsls r4, 4
- mov r8, r4
- b _080FF2C0
- .align 2, 0
-_080FF2B4: .4byte gDecorations + 0x1C
-_080FF2B8: .4byte gDecorations
-_080FF2BC:
- movs r0, 0
- mov r8, r0
-_080FF2C0:
- ldr r1, [sp, 0x24]
- ldrb r0, [r1, 0x11]
- lsls r7, r5, 16
- ldr r2, [sp, 0x14]
- lsls r2, 16
- mov r9, r2
- cmp r0, 0x3
- beq _080FF2EA
- asrs r0, r7, 16
- asrs r1, r2, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80572B0
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x1
- cmp r0, 0x1
- beq _080FF2EC
-_080FF2EA:
- movs r6, 0
-_080FF2EC:
- ldr r3, [sp, 0x18]
- ldr r4, _080FF334 @ =gDecorations
- adds r0, r3, r4
- ldrb r0, [r0]
- ldr r4, [sp, 0x20]
- add r4, r10
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_80FF1B0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080FF338 @ =0x0000ffff
- cmp r5, r0
- beq _080FF33C
- asrs r0, r7, 16
- mov r2, r9
- asrs r1, r2, 16
- ldr r3, [sp, 0x1C]
- ldr r2, [r3]
- lsls r3, r4, 1
- adds r3, r2
- movs r4, 0x80
- lsls r4, 2
- adds r2, r4, 0
- orrs r6, r2
- ldrh r3, [r3]
- adds r2, r6, r3
- mov r3, r8
- orrs r3, r2
- orrs r3, r5
- lsls r2, r3, 16
- lsrs r2, 16
- bl MapGridSetMetatileEntryAt
- b _080FF362
- .align 2, 0
-_080FF334: .4byte gDecorations
-_080FF338: .4byte 0x0000ffff
-_080FF33C:
- asrs r0, r7, 16
- mov r2, r9
- asrs r1, r2, 16
- ldr r3, [sp, 0x1C]
- ldr r2, [r3]
- lsls r3, r4, 1
- adds r3, r2
- movs r4, 0x80
- lsls r4, 2
- adds r2, r4, 0
- orrs r6, r2
- ldrh r3, [r3]
- adds r2, r6, r3
- mov r3, r8
- orrs r3, r2
- lsls r2, r3, 16
- lsrs r2, 16
- bl MapGridSetMetatileIdAt
-_080FF362:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- ldr r4, [sp, 0x28]
- cmp r10, r4
- bcs _080FF374
- b _080FF266
-_080FF374:
- ldr r1, [sp, 0x30]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- ldr r3, [sp, 0x2C]
- lsrs r0, r3, 16
- cmp r2, r0
- bcs _080FF384
- b _080FF228
-_080FF384:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF1EC
-
- thumb_func_start sub_80FF394
-sub_80FF394: @ 80FF394
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _080FF3BC @ =gDecorations
- lsls r0, r2, 5
- adds r0, r1
- ldrb r0, [r0, 0x12]
- cmp r0, 0x9
- bhi _080FF46C
- lsls r0, 2
- ldr r1, _080FF3C0 @ =_080FF3C4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FF3BC: .4byte gDecorations
-_080FF3C0: .4byte _080FF3C4
- .align 2, 0
-_080FF3C4:
- .4byte _080FF3EC
- .4byte _080FF3F6
- .4byte _080FF400
- .4byte _080FF410
- .4byte _080FF41A
- .4byte _080FF424
- .4byte _080FF434
- .4byte _080FF43E
- .4byte _080FF44E
- .4byte _080FF45E
-_080FF3EC:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
- b _080FF408
-_080FF3F6:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- b _080FF408
-_080FF400:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
-_080FF408:
- movs r3, 0x1
- bl sub_80FF1EC
- b _080FF46C
-_080FF410:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x4
- b _080FF42C
-_080FF41A:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- b _080FF42C
-_080FF424:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
-_080FF42C:
- movs r3, 0x2
- bl sub_80FF1EC
- b _080FF46C
-_080FF434:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
- b _080FF456
-_080FF43E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x4
- bl sub_80FF1EC
- b _080FF46C
-_080FF44E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
-_080FF456:
- movs r3, 0x3
- bl sub_80FF1EC
- b _080FF46C
-_080FF45E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80FF1EC
-_080FF46C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF394
-
- thumb_func_start sub_80FF474
-sub_80FF474: @ 80FF474
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0
- ldr r0, _080FF54C @ =gMapHeader
- mov r8, r0
- ldr r1, _080FF550 @ =gSpecialVar_0x8005
- mov r9, r1
- ldr r2, _080FF554 @ =gSpecialVar_0x8006
- mov r10, r2
- ldr r7, _080FF558 @ =gSaveBlock1
-_080FF490:
- adds r5, r6, 0
- adds r5, 0xAE
- adds r4, r5, 0
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF570
- adds r0, r4, 0
- bl FlagReset
- movs r2, 0
- mov r4, r8
- ldr r0, [r4, 0x4]
- ldrb r6, [r0]
- cmp r2, r6
- bcs _080FF4E0
- ldr r0, [r0, 0x4]
- ldrh r0, [r0, 0x14]
- cmp r0, r5
- beq _080FF4E0
- ldr r0, _080FF54C @ =gMapHeader
- ldr r3, [r0, 0x4]
- ldrb r6, [r3]
- adds r4, r5, 0
-_080FF4C6:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcs _080FF4E0
- ldr r0, [r3, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- cmp r0, r4
- bne _080FF4C6
-_080FF4E0:
- mov r1, r8
- ldr r0, [r1, 0x4]
- ldr r1, [r0, 0x4]
- lsls r4, r2, 1
- adds r4, r2
- lsls r4, 3
- adds r1, r4, r1
- ldr r2, _080FF55C @ =0x00003f20
- adds r0, r2, 0
- ldrb r1, [r1, 0x1]
- adds r0, r1
- ldr r1, _080FF560 @ =gUnknown_02038900
- ldr r1, [r1]
- ldr r1, [r1, 0x1C]
- ldrh r1, [r1]
- bl VarSet
- mov r5, r8
- ldr r0, [r5, 0x4]
- ldr r0, [r0, 0x4]
- adds r4, r0
- ldrb r0, [r4]
- mov r6, r9
- strh r0, [r6]
- ldr r1, _080FF564 @ =gUnknown_020391A4
- ldrh r1, [r1]
- mov r2, r10
- strh r1, [r2]
- ldr r1, _080FF568 @ =gUnknown_020391A6
- ldrh r1, [r1]
- ldr r4, _080FF56C @ =gSpecialVar_0x8007
- strh r1, [r4]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- bl show_sprite
- ldrb r0, [r6]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- mov r5, r10
- movs r6, 0
- ldrsh r3, [r5, r6]
- movs r5, 0
- ldrsh r4, [r4, r5]
- str r4, [sp]
- bl sub_805C0F8
- mov r6, r9
- ldrb r0, [r6]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- bl sub_805C78C
- b _080FF57A
- .align 2, 0
-_080FF54C: .4byte gMapHeader
-_080FF550: .4byte gSpecialVar_0x8005
-_080FF554: .4byte gSpecialVar_0x8006
-_080FF558: .4byte gSaveBlock1
-_080FF55C: .4byte 0x00003f20
-_080FF560: .4byte gUnknown_02038900
-_080FF564: .4byte gUnknown_020391A4
-_080FF568: .4byte gUnknown_020391A6
-_080FF56C: .4byte gSpecialVar_0x8007
-_080FF570:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xD
- bls _080FF490
-_080FF57A:
- 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_80FF474
-
- thumb_func_start sub_80FF58C
-sub_80FF58C: @ 80FF58C
- push {lr}
- movs r1, 0
- ldr r0, _080FF5A8 @ =0x0201f000
- ldrb r2, [r0, 0x8]
- cmp r1, r2
- bcs _080FF5B6
- ldr r3, [r0]
-_080FF59A:
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080FF5AC
- movs r0, 0x1
- b _080FF5B8
- .align 2, 0
-_080FF5A8: .4byte 0x0201f000
-_080FF5AC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _080FF59A
-_080FF5B6:
- movs r0, 0
-_080FF5B8:
- pop {r1}
- bx r1
- thumb_func_end sub_80FF58C
-
- thumb_func_start sub_80FF5BC
-sub_80FF5BC: @ 80FF5BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080FF5E4 @ =0x0201f000
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- bne _080FF5F0
- ldr r0, _080FF5E8 @ =gUnknown_020388F6
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080FF5F0
- cmp r0, 0x7
- beq _080FF5F0
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r1, _080FF5EC @ =gSecretBaseText_DecorCantPlace
- b _080FF66E
- .align 2, 0
-_080FF5E4: .4byte 0x0201f000
-_080FF5E8: .4byte gUnknown_020388F6
-_080FF5EC: .4byte gSecretBaseText_DecorCantPlace
-_080FF5F0:
- bl sub_80FEFA4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF688
- bl sub_80FF58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF62C
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _080FF624 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _080FF628 @ =sub_80FF6AC
- str r1, [r0]
- b _080FF69C
- .align 2, 0
-_080FF624: .4byte gTasks
-_080FF628: .4byte sub_80FF6AC
-_080FF62C:
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r0, _080FF654 @ =gStringVar1
- ldr r4, _080FF658 @ =0x0201f000
- ldrb r1, [r4, 0x8]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- bne _080FF664
- ldr r0, _080FF65C @ =gStringVar4
- ldr r1, _080FF660 @ =gSecretBaseText_NoMoreDecor
- bl StringExpandPlaceholders
- b _080FF66C
- .align 2, 0
-_080FF654: .4byte gStringVar1
-_080FF658: .4byte 0x0201f000
-_080FF65C: .4byte gStringVar4
-_080FF660: .4byte gSecretBaseText_NoMoreDecor
-_080FF664:
- ldr r0, _080FF67C @ =gStringVar4
- ldr r1, _080FF680 @ =gSecretBaseText_NoMoreDecor2
- bl StringExpandPlaceholders
-_080FF66C:
- ldr r1, _080FF67C @ =gStringVar4
-_080FF66E:
- ldr r2, _080FF684 @ =sub_80FEFF4
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FF69C
- .align 2, 0
-_080FF67C: .4byte gStringVar4
-_080FF680: .4byte gSecretBaseText_NoMoreDecor2
-_080FF684: .4byte sub_80FEFF4
-_080FF688:
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r1, _080FF6A4 @ =gSecretBaseText_InUseAlready
- ldr r2, _080FF6A8 @ =sub_80FEFF4
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080FF69C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF6A4: .4byte gSecretBaseText_InUseAlready
-_080FF6A8: .4byte sub_80FEFF4
- thumb_func_end sub_80FF5BC
-
- thumb_func_start sub_80FF6AC
-sub_80FF6AC: @ 80FF6AC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080FF6D0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0xC
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- beq _080FF714
- cmp r0, 0x1
- bgt _080FF6D4
- cmp r0, 0
- beq _080FF6DA
- b _080FF77A
- .align 2, 0
-_080FF6D0: .4byte gTasks
-_080FF6D4:
- cmp r0, 0x2
- beq _080FF764
- b _080FF77A
-_080FF6DA:
- ldr r0, _080FF70C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080FF77A
- adds r0, r6, 0
- bl sub_80FF0E0
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- ldr r0, _080FF710 @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9520
- bl BuyMenuFreeMemory
- movs r0, 0x1
- strh r0, [r7, 0xC]
- b _080FF77A
- .align 2, 0
-_080FF70C: .4byte gPaletteFade
-_080FF710: .4byte gUnknown_020388F7
-_080FF714:
- ldr r4, _080FF754 @ =gPaletteFade
- ldrb r0, [r4, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4, 0x8]
- ldr r5, _080FF758 @ =gUnknown_02038900
- ldr r0, _080FF75C @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _080FF760 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl AddDecorationIconObjectFromFieldObject
- adds r0, r6, 0
- bl sub_80FF960
- adds r0, r6, 0
- adds r1, r5, 0
- bl SetUpPlacingDecorationPlayerAvatar
- bl pal_fill_black
- ldrb r1, [r4, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x8]
- movs r0, 0x2
- strh r0, [r7, 0xC]
- b _080FF77A
- .align 2, 0
-_080FF754: .4byte gPaletteFade
-_080FF758: .4byte gUnknown_02038900
-_080FF75C: .4byte gUnknown_020388F5
-_080FF760: .4byte gUnknown_020388D0
-_080FF764:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF77A
- movs r0, 0
- strh r0, [r7, 0x20]
- adds r0, r6, 0
- bl sub_810065C
-_080FF77A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF6AC
-
- thumb_func_start AddDecorationIconObjectFromFieldObject
-AddDecorationIconObjectFromFieldObject: @ 80FF780
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- bl sub_80FEF74
- bl sub_80FED1C
- adds r0, r5, 0
- bl sub_81006D0
- lsls r4, 5
- ldr r0, _080FF810 @ =gDecorations
- adds r4, r0
- str r4, [r5]
- ldrb r0, [r4, 0x11]
- cmp r0, 0x4
- beq _080FF834
- adds r0, r5, 0
- bl sub_81008BC
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- bl sub_8100930
- adds r0, r5, 0
- bl sub_8100874
- ldr r1, _080FF814 @ =0x00000884
- adds r0, r5, r1
- ldr r1, _080FF818 @ =gMapHeader
- ldr r1, [r1]
- ldr r2, [r1, 0x14]
- ldr r1, [r5]
- ldr r1, [r1, 0x1C]
- ldrh r1, [r1]
- ldr r2, [r2, 0xC]
- lsls r1, 4
- adds r1, r2
- ldrh r1, [r1, 0xE]
- lsrs r1, 12
- bl sub_810070C
- ldr r0, _080FF81C @ =gUnknown_083EC954
- bl LoadSpritePalette
- ldr r3, _080FF820 @ =gUnknown_020391A8
- ldr r2, _080FF824 @ =gSprites
- ldr r4, _080FF828 @ =gUnknown_03004880
- ldr r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r3]
- ldr r0, _080FF82C @ =gSpriteTemplate_83EC93C
- ldr r3, _080FF830 @ =gUnknown_083EC900
- ldr r1, [r5]
- ldrb r2, [r1, 0x12]
- lsls r2, 2
- adds r2, r3
- ldrb r1, [r2, 0x2]
- ldrb r2, [r2, 0x3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- b _080FF87E
- .align 2, 0
-_080FF810: .4byte gDecorations
-_080FF814: .4byte 0x00000884
-_080FF818: .4byte gMapHeader
-_080FF81C: .4byte gUnknown_083EC954
-_080FF820: .4byte gUnknown_020391A8
-_080FF824: .4byte gSprites
-_080FF828: .4byte gUnknown_03004880
-_080FF82C: .4byte gSpriteTemplate_83EC93C
-_080FF830: .4byte gUnknown_083EC900
-_080FF834:
- ldr r2, _080FF888 @ =gUnknown_020391A8
- ldr r6, _080FF88C @ =gSprites
- ldr r5, _080FF890 @ =gUnknown_03004880
- ldr r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0, 0x2E]
- strb r0, [r2]
- ldr r0, [r4, 0x1C]
- ldrh r0, [r0]
- ldr r1, _080FF894 @ =sub_81009A8
- ldr r2, _080FF898 @ =gUnknown_083EC900
- ldrb r3, [r4, 0x12]
- lsls r3, 2
- adds r3, r2
- ldrb r2, [r3, 0x2]
- ldrb r3, [r3, 0x3]
- movs r4, 0x1
- str r4, [sp]
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- str r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
-_080FF87E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF888: .4byte gUnknown_020391A8
-_080FF88C: .4byte gSprites
-_080FF890: .4byte gUnknown_03004880
-_080FF894: .4byte sub_81009A8
-_080FF898: .4byte gUnknown_083EC900
- thumb_func_end AddDecorationIconObjectFromFieldObject
-
- thumb_func_start SetUpPlacingDecorationPlayerAvatar
-SetUpPlacingDecorationPlayerAvatar: @ 80FF89C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080FF8F0 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x12]
- ldr r3, _080FF8F4 @ =gUnknown_083EC900
- ldr r0, [r1]
- ldrb r4, [r0, 0x12]
- lsls r1, r4, 2
- adds r1, r3
- lsls r0, r2, 4
- ldrb r1, [r1, 0x2]
- adds r0, r1
- subs r2, 0x1
- lsls r2, 3
- subs r0, r2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r4, 0x2
- beq _080FF8D6
- cmp r4, 0x8
- beq _080FF8D6
- cmp r4, 0x9
- bne _080FF8DE
-_080FF8D6:
- adds r0, r2, 0
- subs r0, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
-_080FF8DE:
- ldr r0, _080FF8F8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080FF900
- ldr r1, _080FF8FC @ =SpriteCallbackDummy
- str r0, [sp]
- movs r0, 0xC1
- b _080FF908
- .align 2, 0
-_080FF8F0: .4byte gTasks
-_080FF8F4: .4byte gUnknown_083EC900
-_080FF8F8: .4byte gSaveBlock2
-_080FF8FC: .4byte SpriteCallbackDummy
-_080FF900:
- ldr r1, _080FF94C @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC2
-_080FF908:
- movs r3, 0x48
- bl AddPseudoFieldObject
- ldr r1, _080FF950 @ =gUnknown_020391A9
- strb r0, [r1]
- ldr r3, _080FF954 @ =gSprites
- ldr r0, _080FF950 @ =gUnknown_020391A9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r4, _080FF958 @ =gUnknown_020391A8
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- bl DestroySprite
- ldr r0, _080FF95C @ =gUnknown_03004880
- ldr r0, [r0, 0x4]
- strb r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF94C: .4byte SpriteCallbackDummy
-_080FF950: .4byte gUnknown_020391A9
-_080FF954: .4byte gSprites
-_080FF958: .4byte gUnknown_020391A8
-_080FF95C: .4byte gUnknown_03004880
- thumb_func_end SetUpPlacingDecorationPlayerAvatar
-
- thumb_func_start sub_80FF960
-sub_80FF960: @ 80FF960
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080FF98C @ =gDecorations
- ldr r0, _080FF990 @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _080FF994 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r2
- ldrb r0, [r0, 0x12]
- cmp r0, 0x9
- bls _080FF980
- b _080FFAA6
-_080FF980:
- lsls r0, 2
- ldr r1, _080FF998 @ =_080FF99C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FF98C: .4byte gDecorations
-_080FF990: .4byte gUnknown_020388F5
-_080FF994: .4byte gUnknown_020388D0
-_080FF998: .4byte _080FF99C
- .align 2, 0
-_080FF99C:
- .4byte _080FF9C4
- .4byte _080FF9D8
- .4byte _080FF9F0
- .4byte _080FFA08
- .4byte _080FFA1C
- .4byte _080FFA30
- .4byte _080FFA44
- .4byte _080FFA64
- .4byte _080FFA7C
- .4byte _080FFA94
-_080FF9C4:
- ldr r0, _080FF9D4 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _080FFA88
- .align 2, 0
-_080FF9D4: .4byte gTasks
-_080FF9D8:
- ldr r1, _080FF9EC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x12]
- movs r1, 0x1
- b _080FFAA4
- .align 2, 0
-_080FF9EC: .4byte gTasks
-_080FF9F0:
- ldr r1, _080FFA04 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x12]
- movs r1, 0x1
- b _080FFAA4
- .align 2, 0
-_080FFA04: .4byte gTasks
-_080FFA08:
- ldr r1, _080FFA18 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- b _080FFAA0
- .align 2, 0
-_080FFA18: .4byte gTasks
-_080FFA1C:
- ldr r0, _080FFA2C @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- b _080FFA88
- .align 2, 0
-_080FFA2C: .4byte gTasks
-_080FFA30:
- ldr r1, _080FFA40 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- b _080FFAA0
- .align 2, 0
-_080FFA40: .4byte gTasks
-_080FFA44:
- ldr r0, _080FFA60 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x12]
- movs r0, 0x3
- strh r0, [r1, 0x14]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _080FFAA6
- .align 2, 0
-_080FFA60: .4byte gTasks
-_080FFA64:
- ldr r1, _080FFA78 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x12]
- movs r1, 0x4
- b _080FFAA4
- .align 2, 0
-_080FFA78: .4byte gTasks
-_080FFA7C:
- ldr r0, _080FFA90 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x3
-_080FFA88:
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- b _080FFAA6
- .align 2, 0
-_080FFA90: .4byte gTasks
-_080FFA94:
- ldr r1, _080FFAAC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
-_080FFAA0:
- strh r1, [r0, 0x12]
- movs r1, 0x2
-_080FFAA4:
- strh r1, [r0, 0x14]
-_080FFAA6:
- pop {r0}
- bx r0
- .align 2, 0
-_080FFAAC: .4byte gTasks
- thumb_func_end sub_80FF960
-
- thumb_func_start sub_80FFAB0
-sub_80FFAB0: @ 80FFAB0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080FFAF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r3, _080FFAFC @ =gSprites
- ldr r0, _080FFB00 @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x3C]
- ldr r0, _080FFB04 @ =gUnknown_020391A9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x3C]
- bl sub_810045C
- adds r0, r4, 0
- bl sub_8100038
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FFAF8: .4byte gTasks
-_080FFAFC: .4byte gSprites
-_080FFB00: .4byte gUnknown_020391A8
-_080FFB04: .4byte gUnknown_020391A9
- thumb_func_end sub_80FFAB0
-
- thumb_func_start sub_80FFB08
-sub_80FFB08: @ 80FFB08
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080FFB54 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r3, _080FFB58 @ =gSprites
- ldr r0, _080FFB5C @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x3C]
- ldr r0, _080FFB60 @ =gUnknown_020391A9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x3C]
- bl sub_810045C
- ldr r1, _080FFB64 @ =gSecretBaseText_CancelDecorating
- ldr r2, _080FFB68 @ =sub_8100248
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FFB54: .4byte gTasks
-_080FFB58: .4byte gSprites
-_080FFB5C: .4byte gUnknown_020391A8
-_080FFB60: .4byte gUnknown_020391A9
-_080FFB64: .4byte gSecretBaseText_CancelDecorating
-_080FFB68: .4byte sub_8100248
- thumb_func_end sub_80FFB08
-
- thumb_func_start sub_80FFB6C
-sub_80FFB6C: @ 80FFB6C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- bl sub_8057274
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FFB86
- cmp r4, 0
- beq _080FFB8A
-_080FFB86:
- movs r0, 0
- b _080FFB8C
-_080FFB8A:
- movs r0, 0x1
-_080FFB8C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFB6C
-
- thumb_func_start sub_80FFB94
-sub_80FFB94: @ 80FFB94
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r1, 16
- asrs r1, 16
- ldr r3, _080FFBD0 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- adds r0, 0x7
- cmp r1, r0
- bne _080FFBD4
- lsls r1, r4, 16
- asrs r1, 16
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- adds r0, 0x7
- cmp r1, r0
- bne _080FFBD4
- cmp r5, 0
- beq _080FFBD4
- movs r0, 0
- b _080FFBD6
- .align 2, 0
-_080FFBD0: .4byte gTasks
-_080FFBD4:
- movs r0, 0x1
-_080FFBD6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFB94
-
- thumb_func_start sub_80FFBDC
-sub_80FFBDC: @ 80FFBDC
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057274
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FFC1C
- ldrb r0, [r5]
- cmp r0, 0x21
- bne _080FFC0A
- adds r0, r4, 0
- bl sub_8057300
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FFC18
-_080FFC0A:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- beq _080FFC1C
-_080FFC18:
- movs r0, 0x1
- b _080FFC1E
-_080FFC1C:
- movs r0, 0
-_080FFC1E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFBDC
-
- thumb_func_start sub_80FFC24
-sub_80FFC24: @ 80FFC24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r1, [sp]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080FFC60 @ =gTasks
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldrb r2, [r0, 0x14]
- str r2, [sp, 0x4]
- ldrb r0, [r0, 0x12]
- str r0, [sp, 0x8]
- ldr r3, [sp]
- ldrb r0, [r3, 0x11]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080FFC56
- b _08100024
-_080FFC56:
- lsls r0, 2
- ldr r1, _080FFC64 @ =_080FFC68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FFC60: .4byte gTasks
-_080FFC64: .4byte _080FFC68
- .align 2, 0
-_080FFC68:
- .4byte _080FFC7C
- .4byte _080FFC7C
- .4byte _080FFD68
- .4byte _080FFF1C
- .4byte _080FFFA0
-_080FFC7C:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFC86
- b _08100024
-_080FFC86:
- mov r1, r10
- lsls r1, 2
- str r1, [sp, 0x1C]
-_080FFC8C:
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- ldr r3, _080FFD64 @ =gTasks
- adds r0, r3
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- adds r6, 0x1
- str r6, [sp, 0x14]
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _080FFD56
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0xC]
- asrs r1, 16
- mov r9, r1
-_080FFCB8:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- ldr r2, _080FFD64 @ =gTasks
- adds r0, r2
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- adds r0, r6, 0
- mov r1, r9
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x14]
- subs r0, r3, r1
- ldr r2, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r2
- adds r1, r7
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- ldr r1, [sp]
- bl sub_80FFBDC
- lsls r0, 24
- cmp r0, 0
- bne _080FFD1A
- b _080FFFF4
-_080FFD1A:
- mov r0, r10
- adds r1, r6, 0
- mov r2, r9
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFD2E
- b _080FFFF4
-_080FFD2E:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0xC]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080FFD4A
- cmp r4, 0x10
- beq _080FFD4A
- b _080FFFF4
-_080FFD4A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFCB8
-_080FFD56:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r2, [sp, 0x4]
- cmp r6, r2
- bcc _080FFC8C
- b _08100024
- .align 2, 0
-_080FFD64: .4byte gTasks
-_080FFD68:
- movs r6, 0
- mov r3, r10
- lsls r3, 2
- str r3, [sp, 0x1C]
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x18]
- cmp r6, r0
- bge _080FFE54
- adds r0, r3, 0
- add r0, r10
- lsls r0, 3
- str r0, [sp, 0x10]
-_080FFD82:
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- adds r6, 0x1
- str r6, [sp, 0x14]
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcs _080FFE48
- lsls r0, 16
- str r0, [sp, 0x20]
-_080FFDA0:
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- mov r2, r9
- lsls r1, r2, 16
- adds r0, r6, 0
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x14]
- subs r0, r3, r1
- ldr r2, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r2
- adds r1, r7
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- bne _080FFE0C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80FFB6C
- lsls r0, 24
- cmp r0, 0
- bne _080FFE0C
- b _080FFFF4
-_080FFE0C:
- mov r0, r10
- adds r1, r6, 0
- ldr r3, [sp, 0x20]
- asrs r2, r3, 16
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFE22
- b _080FFFF4
-_080FFE22:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _080FFE3A
- b _080FFFF4
-_080FFE3A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080FFF18 @ =gTasks
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFDA0
-_080FFE48:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- cmp r6, r3
- blt _080FFD82
-_080FFE54:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- ldr r1, [sp, 0x4]
- subs r0, r1
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFE74
- b _08100024
-_080FFE74:
- lsls r0, 16
- str r0, [sp, 0x20]
-_080FFE78:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- ldr r1, _080FFF18 @ =gTasks
- adds r0, r1
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- mov r2, r9
- lsls r1, r2, 16
- adds r0, r6, 0
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, r7, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- bne _080FFEDA
- adds r0, r4, 0
- bl sub_80572B0
- lsls r0, 24
- cmp r0, 0
- bne _080FFEDA
- b _080FFFF4
-_080FFEDA:
- mov r0, r10
- adds r1, r6, 0
- ldr r3, [sp, 0x20]
- asrs r2, r3, 16
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFEF0
- b _080FFFF4
-_080FFEF0:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080FFF0A
- cmp r4, 0x10
- bne _080FFFF4
-_080FFF0A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFE78
- b _08100024
- .align 2, 0
-_080FFF18: .4byte gTasks
-_080FFF1C:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFF26
- b _08100024
-_080FFF26:
- mov r1, r10
- lsls r0, r1, 2
- add r0, r10
- lsls r1, r0, 3
- ldr r2, _080FFF9C @ =gTasks
- adds r0, r1, r2
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcs _080FFF8C
- adds r0, r2, 0
- adds r1, r0
- mov r8, r1
- mov r1, r9
- lsls r0, r1, 16
- asrs r5, r0, 16
-_080FFF50:
- mov r2, r8
- ldrh r0, [r2, 0x8]
- adds r0, r7
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80572B0
- lsls r0, 24
- cmp r0, 0
- beq _080FFFF4
- adds r0, r4, 0
- adds r1, r5, 0x1
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- beq _080FFFF4
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFF50
-_080FFF8C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFF26
- b _08100024
- .align 2, 0
-_080FFF9C: .4byte gTasks
-_080FFFA0:
- mov r3, r10
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- mov r9, r0
- movs r7, 0
- str r1, [sp, 0x1C]
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _08100024
- adds r6, r2, 0
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0x20]
-_080FFFC0:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- mov r2, r9
- lsls r1, r2, 16
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp]
- ldrb r0, [r3, 0x12]
- cmp r0, 0x5
- bne _080FFFF8
-_080FFFE8:
- adds r0, r4, 0
- bl sub_80572EC
- lsls r0, 24
- cmp r0, 0
- bne _08100004
-_080FFFF4:
- movs r0, 0
- b _08100026
-_080FFFF8:
- adds r0, r4, 0
- bl sub_80572D8
- lsls r0, 24
- cmp r0, 0
- beq _080FFFE8
-_08100004:
- adds r0, r5, 0
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _080FFFF4
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFFC0
-_08100024:
- movs r0, 0x1
-_08100026:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFC24
-
- thumb_func_start sub_8100038
-sub_8100038: @ 8100038
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810006C @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _08100070 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 5
- ldr r0, _08100074 @ =gDecorations
- adds r1, r0
- adds r0, r4, 0
- bl sub_80FFC24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100080
- ldr r1, _08100078 @ =gSecretBaseText_PlaceItHere
- ldr r2, _0810007C @ =sub_81000A0
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08100092
- .align 2, 0
-_0810006C: .4byte gUnknown_020388F5
-_08100070: .4byte gUnknown_020388D0
-_08100074: .4byte gDecorations
-_08100078: .4byte gSecretBaseText_PlaceItHere
-_0810007C: .4byte sub_81000A0
-_08100080:
- movs r0, 0x20
- bl PlaySE
- ldr r1, _08100098 @ =gSecretBaseText_CantBePlacedHere
- ldr r2, _0810009C @ =sub_81006A8
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100092:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100098: .4byte gSecretBaseText_CantBePlacedHere
-_0810009C: .4byte sub_81006A8
- thumb_func_end sub_8100038
-
- thumb_func_start sub_81000A0
-sub_81000A0: @ 81000A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _081000C0 @ =gUnknown_083EC95C
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081000C0: .4byte gUnknown_083EC95C
- thumb_func_end sub_81000A0
-
- thumb_func_start sub_81000C4
-sub_81000C4: @ 81000C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_8100174
- ldr r2, _0810010C @ =gDecorations
- ldr r0, _08100110 @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _08100114 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r3, [r0]
- lsls r0, r3, 5
- adds r0, r2
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- beq _0810011C
- ldr r0, _08100118 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- ldrh r1, [r1, 0xA]
- adds r2, r3, 0
- bl sub_80FF394
- b _0810013C
- .align 2, 0
-_0810010C: .4byte gDecorations
-_08100110: .4byte gUnknown_020388F5
-_08100114: .4byte gUnknown_020388D0
-_08100118: .4byte gTasks
-_0810011C:
- ldr r2, _0810015C @ =gUnknown_020391A4
- ldr r0, _08100160 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- subs r0, 0x7
- strh r0, [r2]
- ldr r2, _08100164 @ =gUnknown_020391A6
- ldrh r0, [r1, 0xA]
- subs r0, 0x7
- strh r0, [r2]
- ldr r0, _08100168 @ =gUnknown_081A2F7B
- bl ScriptContext1_SetupScript
-_0810013C:
- ldr r2, _0810016C @ =gSprites
- ldr r0, _08100170 @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x2
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- bl sub_810028C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810015C: .4byte gUnknown_020391A4
-_08100160: .4byte gTasks
-_08100164: .4byte gUnknown_020391A6
-_08100168: .4byte gUnknown_081A2F7B
-_0810016C: .4byte gSprites
-_08100170: .4byte gUnknown_020391A8
- thumb_func_end sub_81000C4
-
- thumb_func_start sub_8100174
-sub_8100174: @ 8100174
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r3, 0
- ldr r0, _081001B0 @ =0x0201f000
- ldrb r1, [r0, 0x8]
- adds r5, r0, 0
- cmp r3, r1
- bcs _0810019A
- ldr r4, [r5]
-_08100188:
- adds r2, r4, r3
- ldrb r0, [r2]
- cmp r0, 0
- beq _081001B8
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _08100188
-_0810019A:
- ldrb r0, [r5, 0x9]
- cmp r0, 0
- bne _08100204
- movs r3, 0
- ldr r0, _081001B4 @ =gUnknown_020388D6
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _081001F0
- b _08100210
- .align 2, 0
-_081001B0: .4byte 0x0201f000
-_081001B4: .4byte gUnknown_020388D6
-_081001B8:
- ldr r0, _081001E4 @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _081001E8 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, [r5, 0x4]
- adds r2, r3
- ldr r0, _081001EC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- subs r0, 0x7
- lsls r0, 4
- ldrb r1, [r1, 0xA]
- subs r1, 0x7
- adds r0, r1
- strb r0, [r2]
- b _0810019A
- .align 2, 0
-_081001E4: .4byte gUnknown_020388F5
-_081001E8: .4byte gUnknown_020388D0
-_081001EC: .4byte gTasks
-_081001F0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bhi _0810023E
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _081001F0
- b _08100236
-_08100204:
- movs r3, 0
- ldr r0, _0810021C @ =gUnknown_020388E6
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _08100224
-_08100210:
- ldr r0, _08100220 @ =gUnknown_020388F5
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r2]
- b _0810023E
- .align 2, 0
-_0810021C: .4byte gUnknown_020388E6
-_08100220: .4byte gUnknown_020388F5
-_08100224:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xB
- bhi _0810023E
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _08100224
-_08100236:
- ldr r0, _08100244 @ =gUnknown_020388F5
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r1]
-_0810023E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100244: .4byte gUnknown_020388F5
- thumb_func_end sub_8100174
-
- thumb_func_start sub_8100248
-sub_8100248: @ 8100248
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08100268 @ =gUnknown_083EC964
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100268: .4byte gUnknown_083EC964
- thumb_func_end sub_8100248
-
- thumb_func_start sub_810026C
-sub_810026C: @ 810026C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_810028C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810026C
-
- thumb_func_start sub_810028C
-sub_810028C: @ 810028C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _081002B4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _081002B8 @ =c1_overworld_prev_quest
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081002B4: .4byte gTasks
-_081002B8: .4byte c1_overworld_prev_quest
- thumb_func_end sub_810028C
-
- thumb_func_start c1_overworld_prev_quest
-c1_overworld_prev_quest: @ 81002BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _081002DC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081002E0
- cmp r0, 0x1
- beq _08100300
- b _0810031C
- .align 2, 0
-_081002DC: .4byte gTasks
-_081002E0:
- bl ScriptContext2_Enable
- ldr r0, _081002FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810031C
- adds r0, r4, 0
- bl sub_80FF114
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _0810031C
- .align 2, 0
-_081002FC: .4byte gPaletteFade
-_08100300:
- bl sub_81016F4
- ldr r0, _08100324 @ =0x00000bb8
- bl FreeSpritePaletteByTag
- ldr r1, _08100328 @ =gUnknown_0300485C
- ldr r0, _0810032C @ =sub_8100364
- str r0, [r1]
- ldr r0, _08100330 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0810031C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100324: .4byte 0x00000bb8
-_08100328: .4byte gUnknown_0300485C
-_0810032C: .4byte sub_8100364
-_08100330: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end c1_overworld_prev_quest
-
- thumb_func_start sub_8100334
-sub_8100334: @ 8100334
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100354
- ldr r0, _0810035C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08100360 @ =sub_80FE948
- str r0, [r1]
-_08100354:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810035C: .4byte gTasks
-_08100360: .4byte sub_80FE948
- thumb_func_end sub_8100334
-
- thumb_func_start sub_8100364
-sub_8100364: @ 8100364
- push {lr}
- bl ScriptContext2_Enable
- bl LoadScrollIndicatorPalette
- bl pal_fill_black
- ldr r0, _08100388 @ =sub_8100334
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE7EC
- pop {r0}
- bx r0
- .align 2, 0
-_08100388: .4byte sub_8100334
- thumb_func_end sub_8100364
-
- thumb_func_start sub_810038C
-sub_810038C: @ 810038C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _081003BC @ =gTasks + 0x8
- adds r2, r1, r0
- ldr r0, _081003C0 @ =gUnknown_020391AA
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _081003C4
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- subs r0, r1
- subs r0, 0x6
- cmp r0, 0
- bge _081003C4
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- b _081003DE
- .align 2, 0
-_081003BC: .4byte gTasks + 0x8
-_081003C0: .4byte gUnknown_020391AA
-_081003C4:
- ldrb r0, [r3]
- cmp r0, 0x2
- bne _081003E8
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- subs r1, 0x7
- ldr r0, _081003E4 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r1, r0
- blt _081003E8
- ldrh r0, [r2, 0x2]
- subs r0, 0x1
-_081003DE:
- strh r0, [r2, 0x2]
- movs r0, 0
- b _0810042A
- .align 2, 0
-_081003E4: .4byte gMapHeader
-_081003E8:
- ldrb r0, [r3]
- cmp r0, 0x3
- bne _081003FE
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, 0x7
- cmp r0, 0
- bge _081003FE
- ldrh r0, [r2]
- adds r0, 0x1
- b _0810041E
-_081003FE:
- ldrb r0, [r3]
- cmp r0, 0x4
- bne _08100428
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- adds r1, r0
- subs r1, 0x8
- ldr r0, _08100424 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r1, r0
- blt _08100428
- ldrh r0, [r2]
- subs r0, 0x1
-_0810041E:
- strh r0, [r2]
- movs r0, 0
- b _0810042A
- .align 2, 0
-_08100424: .4byte gMapHeader
-_08100428:
- movs r0, 0x1
-_0810042A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810038C
-
- thumb_func_start sub_8100430
-sub_8100430: @ 8100430
- push {lr}
- ldr r0, _08100450 @ =gMain
- ldrh r0, [r0, 0x2C]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- beq _08100454
- cmp r1, 0x80
- beq _08100454
- cmp r1, 0x20
- beq _08100454
- cmp r1, 0x10
- beq _08100454
- movs r0, 0
- b _08100456
- .align 2, 0
-_08100450: .4byte gMain
-_08100454:
- movs r0, 0x1
-_08100456:
- pop {r1}
- bx r1
- thumb_func_end sub_8100430
-
- thumb_func_start sub_810045C
-sub_810045C: @ 810045C
- push {r4,lr}
- ldr r1, _08100488 @ =gUnknown_020391AA
- movs r0, 0
- strb r0, [r1]
- ldr r4, _0810048C @ =gSprites
- ldr r3, _08100490 @ =gUnknown_020391A8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x34]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100488: .4byte gUnknown_020391AA
-_0810048C: .4byte gSprites
-_08100490: .4byte gUnknown_020391A8
- thumb_func_end sub_810045C
-
- thumb_func_start sub_8100494
-sub_8100494: @ 8100494
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _081004D0 @ =gSprites
- ldr r3, _081004D4 @ =gUnknown_020391A8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x36
- ldrsh r6, [r0, r1]
- cmp r6, 0
- beq _081004B2
- b _081005DE
-_081004B2:
- ldr r1, _081004D8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x1C
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _081004E0
- ldr r0, _081004DC @ =gUnknown_083EC96C
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- lsls r1, 3
- b _081004EE
- .align 2, 0
-_081004D0: .4byte gSprites
-_081004D4: .4byte gUnknown_020391A8
-_081004D8: .4byte gTasks
-_081004DC: .4byte gUnknown_083EC96C
-_081004E0:
- cmp r0, 0x2
- bne _08100500
- ldr r0, _081004FC @ =gUnknown_083EC96C
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- lsls r1, 3
- adds r0, 0x4
-_081004EE:
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- bl _call_via_r1
- b _0810063C
- .align 2, 0
-_081004FC: .4byte gUnknown_083EC96C
-_08100500:
- ldr r7, _08100644 @ =gMain
- ldrh r1, [r7, 0x2C]
- movs r0, 0xF0
- mov r12, r0
- ands r0, r1
- cmp r0, 0x40
- bne _08100534
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x1
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0810064C @ =0x0000fffe
- strh r1, [r0, 0x34]
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
-_08100534:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x80
- bne _08100564
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x34]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
-_08100564:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x20
- bne _08100594
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x3
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0810064C @ =0x0000fffe
- strh r1, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x34]
- ldrh r0, [r2, 0x8]
- subs r0, 0x1
- strh r0, [r2, 0x8]
-_08100594:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x10
- bne _081005C4
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x4
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x34]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_081005C4:
- bl sub_8100430
- lsls r0, 24
- cmp r0, 0
- beq _081005DA
- adds r0, r4, 0
- bl sub_810038C
- lsls r0, 24
- cmp r0, 0
- bne _081005DE
-_081005DA:
- bl sub_810045C
-_081005DE:
- ldr r0, _08100648 @ =gUnknown_020391AA
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810060C
- ldr r3, _08100650 @ =gSprites
- ldr r2, _08100654 @ =gUnknown_020391A8
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x36]
- adds r1, 0x1
- strh r1, [r0, 0x36]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x36]
- movs r0, 0x7
- ands r0, r2
- strh r0, [r1, 0x36]
-_0810060C:
- ldr r0, _08100658 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r2, r1, r0
- movs r1, 0x1C
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0810063C
- ldr r4, _08100644 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810062E
- strh r3, [r2, 0x1C]
-_0810062E:
- ldrh r1, [r4, 0x2E]
- movs r3, 0x2
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810063C
- strh r3, [r2, 0x1C]
-_0810063C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08100644: .4byte gMain
-_08100648: .4byte gUnknown_020391AA
-_0810064C: .4byte 0x0000fffe
-_08100650: .4byte gSprites
-_08100654: .4byte gUnknown_020391A8
-_08100658: .4byte gTasks
- thumb_func_end sub_8100494
-
- thumb_func_start sub_810065C
-sub_810065C: @ 810065C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _08100698 @ =gSprites
- ldr r0, _0810069C @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0
- strh r2, [r0, 0x3C]
- ldr r1, _081006A0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r1, _081006A4 @ =sub_8100494
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100698: .4byte gSprites
-_0810069C: .4byte gUnknown_020391A8
-_081006A0: .4byte gTasks
-_081006A4: .4byte sub_8100494
- thumb_func_end sub_810065C
-
- thumb_func_start sub_81006A8
-sub_81006A8: @ 81006A8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081006CC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081006C2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081006C8
-_081006C2:
- adds r0, r2, 0
- bl sub_810065C
-_081006C8:
- pop {r0}
- bx r0
- .align 2, 0
-_081006CC: .4byte gMain
- thumb_func_end sub_81006A8
-
- thumb_func_start sub_81006D0
-sub_81006D0: @ 81006D0
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r1, 0
- adds r2, r3, 0
- adds r2, 0x84
- movs r5, 0
- ldr r4, _08100708 @ =0x000007ff
-_081006DE:
- adds r0, r2, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bls _081006DE
- movs r1, 0
- adds r2, r3, 0x4
- movs r3, 0
-_081006F2:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3F
- bls _081006F2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100708: .4byte 0x000007ff
- thumb_func_end sub_81006D0
-
- thumb_func_start sub_810070C
-sub_810070C: @ 810070C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- movs r2, 0
- ldr r0, _0810073C @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- lsrs r4, r1, 12
- ldr r3, [r0, 0x8]
-_0810071E:
- lsls r1, r2, 1
- adds r1, r5
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0810071E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810073C: .4byte gMapHeader
- thumb_func_end sub_810070C
-
- thumb_func_start sub_8100740
-sub_8100740: @ 8100740
- push {r4-r7,lr}
- sub sp, 0x20
- adds r7, r0, 0
- lsls r1, 16
- lsrs r2, r1, 16
- lsrs r3, r1, 26
- cmp r2, 0
- beq _08100754
- ldr r0, _08100784 @ =0x000003ff
- ands r2, r0
-_08100754:
- movs r5, 0
- ldr r0, _08100788 @ =gMapHeader
- ldr r6, [r0]
- lsls r4, r2, 5
-_0810075C:
- mov r0, sp
- adds r2, r0, r5
- ldr r0, [r6, 0x10]
- ldr r0, [r0, 0x4]
- adds r1, r4, r5
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0810075C
- cmp r3, 0x1
- beq _081007AE
- cmp r3, 0x1
- bgt _0810078C
- cmp r3, 0
- beq _08100796
- b _0810086A
- .align 2, 0
-_08100784: .4byte 0x000003ff
-_08100788: .4byte gMapHeader
-_0810078C:
- cmp r3, 0x2
- beq _0810080E
- cmp r3, 0x3
- beq _08100846
- b _0810086A
-_08100796:
- movs r5, 0
-_08100798:
- adds r1, r7, r5
- mov r2, sp
- adds r0, r2, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _08100798
- b _0810086A
-_081007AE:
- movs r5, 0
- movs r6, 0xF
-_081007B2:
- lsls r4, r5, 2
- adds r4, r7
- adds r5, 0x1
- lsls r3, r5, 2
- subs r0, r3, 0x1
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4]
- subs r0, r3, 0x2
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x1]
- subs r0, r3, 0x3
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x2]
- subs r3, 0x4
- mov r1, sp
- adds r0, r1, r3
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x3]
- lsls r5, 16
- lsrs r5, 16
- cmp r5, 0x7
- bls _081007B2
- b _0810086A
-_0810080E:
- movs r5, 0
- movs r3, 0x7
-_08100812:
- lsls r2, r5, 2
- adds r2, r7
- subs r1, r3, r5
- lsls r1, 2
- mov r4, sp
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r1, 0x1
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- adds r0, r1, 0x2
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- adds r1, 0x3
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _08100812
- b _0810086A
-_08100846:
- movs r5, 0
- movs r4, 0x1F
- movs r6, 0xF
-_0810084C:
- adds r3, r7, r5
- subs r0, r4, r5
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0810084C
-_0810086A:
- add sp, 0x20
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8100740
-
- thumb_func_start sub_8100874
-sub_8100874: @ 8100874
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0810087A:
- lsls r0, r4, 5
- adds r0, 0x84
- adds r0, r5, r0
- lsls r2, r4, 1
- adds r1, r5, 0x4
- adds r1, r2
- ldrh r1, [r1]
- bl sub_8100740
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3F
- bls _0810087A
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8100874
-
- thumb_func_start sub_810089C
-sub_810089C: @ 810089C
- lsls r0, 16
- ldr r1, _081008B4 @ =gMapHeader
- ldr r1, [r1]
- ldr r1, [r1, 0x14]
- ldr r1, [r1, 0xC]
- lsrs r0, 15
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _081008B8 @ =0x00000fff
- ands r0, r1
- bx lr
- .align 2, 0
-_081008B4: .4byte gMapHeader
-_081008B8: .4byte 0x00000fff
- thumb_func_end sub_810089C
-
- thumb_func_start sub_81008BC
-sub_81008BC: @ 81008BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x12]
- movs r6, 0
- ldr r1, _0810092C @ =gUnknown_083EC860
- lsls r5, r0, 4
- adds r0, r5, r1
- ldrb r0, [r0, 0xC]
- cmp r6, r0
- bcs _08100920
- adds r7, r1, 0
-_081008D8:
- mov r4, r8
- ldm r4!, {r1}
- adds r0, r7, 0x4
- adds r0, r5, r0
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- ldr r1, [r1, 0x1C]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- adds r1, r7, 0
- adds r1, 0x8
- adds r1, r5, r1
- ldr r1, [r1]
- adds r1, r6
- lsls r0, 3
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl sub_810089C
- adds r2, r5, r7
- ldr r1, [r2]
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 1
- adds r4, r1
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r2, [r2, 0xC]
- cmp r6, r2
- bcc _081008D8
-_08100920:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810092C: .4byte gUnknown_083EC860
- thumb_func_end sub_81008BC
-
- thumb_func_start sub_8100930
-sub_8100930: @ 8100930
- push {r4,r5,lr}
- lsls r0, 24
- ldr r3, _08100998 @ =gUnknown_020391AC
- movs r1, 0
- strb r1, [r3]
- ldrb r2, [r3, 0x1]
- subs r1, 0x4
- ands r1, r2
- movs r4, 0xD
- negs r4, r4
- ands r1, r4
- movs r2, 0x11
- negs r2, r2
- ands r1, r2
- subs r2, 0x10
- ands r1, r2
- strb r1, [r3, 0x1]
- ldr r1, _0810099C @ =gUnknown_083EC900
- lsrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- movs r5, 0x3F
- lsls r1, 6
- strb r1, [r3, 0x1]
- ldrh r2, [r3, 0x2]
- ldr r1, _081009A0 @ =0xfffffe00
- ands r1, r2
- strh r1, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- strb r1, [r3, 0x3]
- ldrb r0, [r0, 0x1]
- lsls r0, 6
- ands r5, r1
- orrs r5, r0
- strb r5, [r3, 0x3]
- ldrh r1, [r3, 0x4]
- ldr r0, _081009A4 @ =0xfffffc00
- ands r0, r1
- strh r0, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- ands r4, r0
- movs r0, 0x4
- orrs r4, r0
- movs r0, 0xF
- ands r4, r0
- strb r4, [r3, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100998: .4byte gUnknown_020391AC
-_0810099C: .4byte gUnknown_083EC900
-_081009A0: .4byte 0xfffffe00
-_081009A4: .4byte 0xfffffc00
- thumb_func_end sub_8100930
-
- thumb_func_start sub_81009A8
-sub_81009A8: @ 81009A8
- movs r1, 0
- strh r1, [r0, 0x32]
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- strh r1, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- ldr r1, _081009BC @ =sub_81009C0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_081009BC: .4byte sub_81009C0
- thumb_func_end sub_81009A8
-
- thumb_func_start sub_81009C0
-sub_81009C0: @ 81009C0
- push {lr}
- adds r2, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _081009FA
- movs r1, 0x3A
- ldrsh r0, [r2, r1]
- cmp r0, 0xE
- bgt _081009E2
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- b _081009EC
-_081009E2:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
-_081009EC:
- strb r0, [r3]
- ldrh r0, [r2, 0x3A]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x3A]
- b _08100A06
-_081009FA:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08100A06:
- pop {r0}
- bx r0
- thumb_func_end sub_81009C0
-
- thumb_func_start sub_8100A0C
-sub_8100A0C: @ 8100A0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8100D38
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100A44
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _08100A3C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _08100A40 @ =sub_8100E70
- str r1, [r0]
- b _08100A50
- .align 2, 0
-_08100A3C: .4byte gTasks
-_08100A40: .4byte sub_8100E70
-_08100A44:
- ldr r1, _08100A58 @ =gSecretBaseText_NoDecorInUse
- ldr r2, _08100A5C @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100A50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100A58: .4byte gSecretBaseText_NoDecorInUse
-_08100A5C: .4byte sub_80FE428
- thumb_func_end sub_8100A0C
-
- thumb_func_start sub_8100A60
-sub_8100A60: @ 8100A60
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08100A78 @ =0x0201f000
- ldr r1, [r3]
- adds r1, r0
- movs r2, 0
- strb r2, [r1]
- ldr r1, [r3, 0x4]
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_08100A78: .4byte 0x0201f000
- thumb_func_end sub_8100A60
-
- thumb_func_start sub_8100A7C
-sub_8100A7C: @ 8100A7C
- push {r4-r6,lr}
- ldr r6, _08100A9C @ =gSpecialVar_0x8005
- movs r0, 0
- strh r0, [r6]
- ldr r2, _08100AA0 @ =gScriptResult
- strh r0, [r2]
- ldr r4, _08100AA4 @ =gSpecialVar_0x8004
- ldr r1, _08100AA8 @ =gUnknown_02039234
- ldrh r0, [r4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08100AB8
- movs r0, 0x1
- strh r0, [r2]
- b _08100B0A
- .align 2, 0
-_08100A9C: .4byte gSpecialVar_0x8005
-_08100AA0: .4byte gScriptResult
-_08100AA4: .4byte gSpecialVar_0x8004
-_08100AA8: .4byte gUnknown_02039234
-_08100AAC:
- ldr r1, _08100AB4 @ =gSpecialVar_0x8006
- ldrb r0, [r2]
- strh r0, [r1]
- b _08100B0A
- .align 2, 0
-_08100AB4: .4byte gSpecialVar_0x8006
-_08100AB8:
- ldr r3, _08100B10 @ =gDecorations
- ldr r2, _08100B14 @ =0x0201f000
- ldr r1, _08100B18 @ =gUnknown_020391B4
- ldrh r0, [r4]
- lsls r0, 3
- adds r4, r0, r1
- ldrb r1, [r4]
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r3
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- bne _08100B0A
- ldrh r0, [r4, 0x4]
- strh r0, [r6]
- ldrb r0, [r4]
- bl sub_8100A60
- movs r1, 0
- ldr r0, _08100B1C @ =gMapHeader
- ldr r0, [r0, 0x4]
- ldrb r2, [r0]
- cmp r1, r2
- bcs _08100B0A
- ldr r5, [r0, 0x4]
- ldrh r4, [r6]
- adds r3, r2, 0
-_08100AF2:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0, r5
- ldrh r0, [r2, 0x14]
- cmp r0, r4
- beq _08100AAC
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bcc _08100AF2
-_08100B0A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100B10: .4byte gDecorations
-_08100B14: .4byte 0x0201f000
-_08100B18: .4byte gUnknown_020391B4
-_08100B1C: .4byte gMapHeader
- thumb_func_end sub_8100A7C
-
- thumb_func_start sub_8100B20
-sub_8100B20: @ 8100B20
- push {r4-r6,lr}
- movs r2, 0
- ldr r0, _08100B4C @ =gMapHeader
- ldr r0, [r0, 0x4]
- ldrb r1, [r0]
- cmp r2, r1
- bcs _08100B64
- adds r3, r0, 0
- ldr r5, [r3, 0x4]
- ldr r0, _08100B50 @ =gSpecialVar_0x8004
- ldrh r4, [r0]
- ldr r6, _08100B54 @ =gSpecialVar_0x8005
-_08100B38:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r5
- ldrh r0, [r1, 0x14]
- cmp r0, r4
- bne _08100B58
- ldrb r0, [r1]
- strh r0, [r6]
- b _08100B64
- .align 2, 0
-_08100B4C: .4byte gMapHeader
-_08100B50: .4byte gSpecialVar_0x8004
-_08100B54: .4byte gSpecialVar_0x8005
-_08100B58:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3]
- cmp r2, r0
- bcc _08100B38
-_08100B64:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8100B20
-
- thumb_func_start sub_8100B6C
-sub_8100B6C: @ 8100B6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r7, 0
- b _08100C64
-_08100B7C:
- lsls r3, r7, 3
- ldr r0, _08100BE0 @ =gUnknown_020391B4
- adds r4, r3, r0
- ldrb r1, [r4]
- ldr r2, _08100BE4 @ =0x0201f000
- ldr r0, [r2]
- adds r0, r1
- ldrb r6, [r0]
- lsls r0, r6, 5
- ldr r5, _08100BE8 @ =gDecorations
- adds r0, r5
- ldrb r2, [r0, 0x11]
- ldr r5, _08100BE4 @ =0x0201f000
- ldr r0, [r5, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r1, r0, 4
- mov r9, r1
- movs r5, 0xF
- mov r10, r5
- mov r1, r10
- ands r1, r0
- mov r10, r1
- adds r5, r3, 0
- adds r3, r7, 0x1
- str r3, [sp]
- cmp r2, 0x4
- beq _08100C5E
- cmp r6, 0x29
- bne _08100BD0
- mov r0, r9
- adds r0, 0x7
- adds r1, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- bne _08100BD0
- ldrb r0, [r4, 0x2]
- adds r0, 0x1
- strb r0, [r4, 0x2]
-_08100BD0:
- movs r6, 0
- ldr r1, _08100BE0 @ =gUnknown_020391B4
- adds r2, r5, 0
- adds r0, r5, r1
- adds r3, r7, 0x1
- str r3, [sp]
- b _08100C4E
- .align 2, 0
-_08100BE0: .4byte gUnknown_020391B4
-_08100BE4: .4byte 0x0201f000
-_08100BE8: .4byte gDecorations
-_08100BEC:
- movs r4, 0
- adds r0, r2, r1
- adds r7, r6, 0x1
- str r7, [sp, 0x4]
- ldrb r0, [r0, 0x1]
- cmp r4, r0
- bcs _08100C42
- ldr r0, _08100C7C @ =gUnknown_020391B4
- adds r0, r5
- mov r8, r0
- subs r1, r6, 0x7
- str r1, [sp, 0x8]
-_08100C04:
- adds r0, r4, 0x7
- add r0, r9
- ldr r1, _08100C80 @ =gMapHeader
- ldr r3, [r1]
- mov r7, r10
- subs r2, r7, r6
- ldr r1, [r3]
- muls r2, r1
- mov r7, r9
- adds r1, r7, r4
- adds r1, r2
- ldr r2, [r3, 0xC]
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r3, 0xC0
- lsls r3, 6
- adds r2, r3, 0
- orrs r2, r1
- mov r7, r10
- ldr r3, [sp, 0x8]
- subs r1, r7, r3
- bl MapGridSetMetatileEntryAt
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r7, r8
- ldrb r7, [r7, 0x1]
- cmp r4, r7
- bcc _08100C04
-_08100C42:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r1, _08100C7C @ =gUnknown_020391B4
- adds r2, r5, 0
- adds r0, r5, r1
-_08100C4E:
- ldrb r0, [r0, 0x2]
- cmp r6, r0
- bcc _08100BEC
- ldr r2, _08100C7C @ =gUnknown_020391B4
- adds r0, r5, r2
- ldrb r0, [r0]
- bl sub_8100A60
-_08100C5E:
- ldr r3, [sp]
- lsls r0, r3, 24
- lsrs r7, r0, 24
-_08100C64:
- ldr r0, _08100C84 @ =gUnknown_02039234
- ldrb r0, [r0]
- cmp r7, r0
- bcc _08100B7C
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08100C7C: .4byte gUnknown_020391B4
-_08100C80: .4byte gMapHeader
-_08100C84: .4byte gUnknown_02039234
- thumb_func_end sub_8100B6C
-
- thumb_func_start sub_8100C88
-sub_8100C88: @ 8100C88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08100CAC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08100CC4
- cmp r0, 0x1
- bgt _08100CB0
- cmp r0, 0
- beq _08100CBA
- b _08100D24
- .align 2, 0
-_08100CAC: .4byte gTasks
-_08100CB0:
- cmp r0, 0x2
- beq _08100CF4
- cmp r0, 0x3
- beq _08100D08
- b _08100D24
-_08100CBA:
- bl sub_8100B6C
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _08100D24
-_08100CC4:
- ldr r0, _08100CEC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08100D24
- bl DrawWholeMapView
- ldr r0, _08100CF0 @ =gUnknown_081A2F8A
- bl ScriptContext1_SetupScript
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- strh r0, [r5, 0xC]
- b _08100D24
- .align 2, 0
-_08100CEC: .4byte gPaletteFade
-_08100CF0: .4byte gUnknown_081A2F8A
-_08100CF4:
- bl ScriptContext2_Enable
- adds r0, r4, 0
- bl sub_80FED90
- bl pal_fill_black
- movs r0, 0x3
- strh r0, [r5, 0xC]
- b _08100D24
-_08100D08:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100D24
- ldr r0, _08100D2C @ =0x0000ffff
- strh r0, [r5, 0x22]
- ldr r1, _08100D30 @ =gSecretBaseText_DecorReturned
- ldr r2, _08100D34 @ =sub_81010F0
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100D24:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100D2C: .4byte 0x0000ffff
-_08100D30: .4byte gSecretBaseText_DecorReturned
-_08100D34: .4byte sub_81010F0
- thumb_func_end sub_8100C88
-
- thumb_func_start sub_8100D38
-sub_8100D38: @ 8100D38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08100D68 @ =0x0201f000
- adds r4, r0, 0
- ldrb r0, [r4, 0x8]
- cmp r2, r0
- bcs _08100D7C
- adds r5, r4, 0
- ldr r1, _08100D6C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r1
-_08100D56:
- ldr r0, [r5]
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08100D70
- strh r2, [r1, 0x22]
- movs r0, 0x1
- b _08100D7E
- .align 2, 0
-_08100D68: .4byte 0x0201f000
-_08100D6C: .4byte gTasks
-_08100D70:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r4, 0x8]
- cmp r2, r0
- bcc _08100D56
-_08100D7C:
- movs r0, 0
-_08100D7E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8100D38
-
- thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar
-SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- bl player_get_direction_lower_nybble
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r3, _08100DD8 @ =gUnknown_020391A8
- ldr r2, _08100DDC @ =gSprites
- ldr r4, _08100DE0 @ =gUnknown_03004880
- ldr r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r3]
- bl sub_81016C8
- ldr r0, _08100DE4 @ =gSpriteTemplate_83ECA88
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- ldr r0, _08100DE8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08100DF0
- ldr r1, _08100DEC @ =SpriteCallbackDummy
- str r0, [sp]
- movs r0, 0xC1
- b _08100DF8
- .align 2, 0
-_08100DD8: .4byte gUnknown_020391A8
-_08100DDC: .4byte gSprites
-_08100DE0: .4byte gUnknown_03004880
-_08100DE4: .4byte gSpriteTemplate_83ECA88
-_08100DE8: .4byte gSaveBlock2
-_08100DEC: .4byte SpriteCallbackDummy
-_08100DF0:
- ldr r1, _08100E5C @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC2
-_08100DF8:
- movs r2, 0x88
- movs r3, 0x48
- bl AddPseudoFieldObject
- ldr r1, _08100E60 @ =gUnknown_020391A9
- strb r0, [r1]
- ldr r6, _08100E64 @ =gSprites
- ldr r0, _08100E60 @ =gUnknown_020391A9
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x4
- mov r8, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r5, _08100E68 @ =gUnknown_020391A8
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r0, _08100E6C @ =gUnknown_03004880
- ldr r0, [r0, 0x4]
- strb r0, [r5]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x5]
- ands r4, r1
- mov r1, r8
- orrs r4, r1
- strb r4, [r0, 0x5]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100E5C: .4byte SpriteCallbackDummy
-_08100E60: .4byte gUnknown_020391A9
-_08100E64: .4byte gSprites
-_08100E68: .4byte gUnknown_020391A8
-_08100E6C: .4byte gUnknown_03004880
- thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar
-
- thumb_func_start sub_8100E70
-sub_8100E70: @ 8100E70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08100E94 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08100EC4
- cmp r0, 0x1
- bgt _08100E98
- cmp r0, 0
- beq _08100E9E
- b _08100EE6
- .align 2, 0
-_08100E94: .4byte gTasks + 0x8
-_08100E98:
- cmp r0, 0x2
- beq _08100ED2
- b _08100EE6
-_08100E9E:
- ldr r0, _08100EC0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08100EE6
- adds r0, r5, 0
- bl sub_80FF0E0
- movs r0, 0x1
- strh r0, [r4, 0x4]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xA]
- bl sub_8072DEC
- b _08100EE6
- .align 2, 0
-_08100EC0: .4byte gPaletteFade
-_08100EC4:
- bl SetUpPuttingAwayDecorationPlayerAvatar
- bl pal_fill_black
- movs r0, 0x2
- strh r0, [r4, 0x4]
- b _08100EE6
-_08100ED2:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100EE6
- strh r0, [r4, 0x18]
- adds r0, r5, 0
- bl sub_8100EEC
-_08100EE6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8100E70
-
- thumb_func_start sub_8100EEC
-sub_8100EEC: @ 8100EEC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r4, _08100F70 @ =gSprites
- ldr r3, _08100F74 @ =gUnknown_020391A8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0
- strh r6, [r0, 0x3C]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08100F78 @ =sub_8101698
- str r1, [r0]
- ldr r2, _08100F7C @ =gUnknown_020391A9
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x88
- strh r1, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x48
- strh r1, [r0, 0x22]
- ldr r1, _08100F80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x1C]
- ldr r1, _08100F84 @ =sub_8100494
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100F70: .4byte gSprites
-_08100F74: .4byte gUnknown_020391A8
-_08100F78: .4byte sub_8101698
-_08100F7C: .4byte gUnknown_020391A9
-_08100F80: .4byte gTasks
-_08100F84: .4byte sub_8100494
- thumb_func_end sub_8100EEC
-
- thumb_func_start sub_8100F88
-sub_8100F88: @ 8100F88
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08100FB0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- bl sub_810045C
- adds r0, r4, 0
- bl sub_8101024
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100FB0: .4byte gTasks
- thumb_func_end sub_8100F88
-
- thumb_func_start sub_8100FB4
-sub_8100FB4: @ 8100FB4
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0810100C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- bl sub_810045C
- ldr r3, _08101010 @ =gSprites
- ldr r5, _08101014 @ =gUnknown_020391A8
- ldrb r1, [r5]
- 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, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, _08101018 @ =SpriteCallbackDummy
- str r1, [r0]
- ldr r1, _0810101C @ =gSecretBaseText_StopPuttingAwayDecor
- ldr r2, _08101020 @ =sub_810156C
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810100C: .4byte gTasks
-_08101010: .4byte gSprites
-_08101014: .4byte gUnknown_020391A8
-_08101018: .4byte SpriteCallbackDummy
-_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor
-_08101020: .4byte sub_810156C
- thumb_func_end sub_8100FB4
-
- thumb_func_start sub_8101024
-sub_8101024: @ 8101024
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8101460
- ldr r0, _08101040 @ =gUnknown_02039234
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810104C
- ldr r1, _08101044 @ =gSecretBaseText_ReturnDecor
- ldr r2, _08101048 @ =sub_8101518
- b _081010B0
- .align 2, 0
-_08101040: .4byte gUnknown_02039234
-_08101044: .4byte gSecretBaseText_ReturnDecor
-_08101048: .4byte sub_8101518
-_0810104C:
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- ldr r0, _081010BC @ =gTasks + 0x8
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBasePC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08101082
- adds r0, r4, 0
- bl sub_805738C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081010D4
-_08101082:
- ldr r3, _081010C0 @ =gSprites
- ldr r4, _081010C4 @ =gUnknown_020391A8
- ldrb r1, [r4]
- 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]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, _081010C8 @ =SpriteCallbackDummy
- str r1, [r0]
- ldr r1, _081010CC @ =gSecretBaseText_StopPuttingAwayDecor
- ldr r2, _081010D0 @ =sub_810156C
-_081010B0:
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _081010E0
- .align 2, 0
-_081010BC: .4byte gTasks + 0x8
-_081010C0: .4byte gSprites
-_081010C4: .4byte gUnknown_020391A8
-_081010C8: .4byte SpriteCallbackDummy
-_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor
-_081010D0: .4byte sub_810156C
-_081010D4:
- ldr r1, _081010E8 @ =gSecretBaseText_NoDecor
- ldr r2, _081010EC @ =sub_81010F0
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_081010E0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081010E8: .4byte gSecretBaseText_NoDecor
-_081010EC: .4byte sub_81010F0
- thumb_func_end sub_8101024
-
- thumb_func_start sub_81010F0
-sub_81010F0: @ 81010F0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08101114 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810110A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08101110
-_0810110A:
- adds r0, r2, 0
- bl sub_8100EEC
-_08101110:
- pop {r0}
- bx r0
- .align 2, 0
-_08101114: .4byte gMain
- thumb_func_end sub_81010F0
-
- thumb_func_start sub_8101118
-sub_8101118: @ 8101118
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- ldr r1, _08101130 @ =gDecorations
- lsrs r0, 19
- adds r0, r1
- ldrb r1, [r0, 0x12]
- cmp r1, 0
- bne _08101134
- movs r0, 0x1
- strb r0, [r2, 0x1]
- b _08101192
- .align 2, 0
-_08101130: .4byte gDecorations
-_08101134:
- cmp r1, 0x1
- bne _08101140
- movs r0, 0x2
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- b _08101194
-_08101140:
- cmp r1, 0x2
- bne _0810114C
- movs r0, 0x3
- strb r0, [r2, 0x1]
- movs r0, 0x1
- b _08101192
-_0810114C:
- cmp r1, 0x3
- bne _08101154
- movs r0, 0x4
- b _0810118E
-_08101154:
- cmp r1, 0x4
- bne _0810115E
- movs r0, 0x2
- strb r0, [r2, 0x1]
- b _08101192
-_0810115E:
- cmp r1, 0x5
- bne _08101166
- movs r0, 0x1
- b _0810118E
-_08101166:
- cmp r1, 0x6
- bne _08101172
- movs r0, 0x1
- strb r0, [r2, 0x1]
- movs r0, 0x3
- b _08101192
-_08101172:
- cmp r1, 0x7
- bne _0810117E
- movs r0, 0x2
- strb r0, [r2, 0x1]
- movs r0, 0x4
- b _08101192
-_0810117E:
- cmp r1, 0x8
- bne _08101188
- movs r0, 0x3
- strb r0, [r2, 0x1]
- b _08101192
-_08101188:
- cmp r1, 0x9
- bne _08101194
- movs r0, 0x3
-_0810118E:
- strb r0, [r2, 0x1]
- movs r0, 0x2
-_08101192:
- strb r0, [r2, 0x2]
-_08101194:
- pop {r0}
- bx r0
- thumb_func_end sub_8101118
-
- thumb_func_start sub_8101198
-sub_8101198: @ 8101198
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- ldr r5, _081011F0 @ =gSprites
- ldr r6, _081011F4 @ =gUnknown_020391A8
- ldrb r3, [r6]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- adds r2, 0x3E
- ldrb r3, [r2]
- movs r4, 0x4
- orrs r3, r4
- strb r3, [r2]
- ldrb r3, [r6]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r3, r5, 0
- adds r3, 0x1C
- adds r2, r3
- ldr r3, _081011F8 @ =SpriteCallbackDummy
- str r3, [r2]
- ldr r4, _081011FC @ =gUnknown_020391A9
- ldrb r3, [r4]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- lsrs r0, 20
- adds r0, 0x88
- strh r0, [r2, 0x20]
- ldrb r2, [r4]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- lsrs r1, 20
- adds r1, 0x48
- strh r1, [r0, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081011F0: .4byte gSprites
-_081011F4: .4byte gUnknown_020391A8
-_081011F8: .4byte SpriteCallbackDummy
-_081011FC: .4byte gUnknown_020391A9
- thumb_func_end sub_8101198
-
- thumb_func_start sub_8101200
-sub_8101200: @ 8101200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0810128C @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r0, [r2, 0x8]
- subs r0, 0x7
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r2, 0xA]
- subs r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _08101290 @ =0x0201f000
- ldr r0, [r2, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r4, r0, 4
- movs r5, 0xF
- ands r5, r0
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _0810125A
- adds r0, r4, 0x7
- adds r1, r5, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- bne _0810125A
- ldrb r0, [r6, 0x2]
- subs r0, 0x1
- strb r0, [r6, 0x2]
-_0810125A:
- cmp r7, r4
- bcc _08101294
- ldrb r1, [r6, 0x1]
- adds r0, r4, r1
- cmp r7, r0
- bge _08101294
- ldrb r0, [r6, 0x2]
- subs r0, r5, r0
- cmp r8, r0
- ble _08101294
- cmp r8, r5
- bhi _08101294
- subs r0, r7, r4
- adds r0, 0x1
- subs r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- subs r1, r5, r2
- lsls r1, 24
- lsrs r1, 24
- bl sub_8101198
- movs r0, 0x1
- b _08101296
- .align 2, 0
-_0810128C: .4byte gTasks
-_08101290: .4byte 0x0201f000
-_08101294:
- movs r0, 0
-_08101296:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8101200
-
- thumb_func_start sub_81012A0
-sub_81012A0: @ 81012A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0810130C @ =0x0201f000
- ldr r3, _08101310 @ =gUnknown_020391B4
- ldr r0, _08101314 @ =gUnknown_02039234
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r3
- ldrb r1, [r0]
- ldr r0, [r2, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r7, r0, 4
- movs r6, 0xF
- ands r6, r0
- movs r5, 0
- ldr r0, _08101318 @ =gSaveBlock1
- mov r8, r0
- mov r9, r3
-_081012CA:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- ldr r2, _0810131C @ =0x00000c24
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r7
- bne _08101328
- ldr r2, _08101320 @ =0x00000c26
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r6
- bne _08101328
- ldr r0, _08101324 @ =0x00000c34
- adds r4, r1, r0
- ldrh r0, [r4]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08101328
- ldr r0, _08101314 @ =gUnknown_02039234
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r9
- ldrh r1, [r4]
- strh r1, [r0, 0x4]
- b _08101332
- .align 2, 0
-_0810130C: .4byte 0x0201f000
-_08101310: .4byte gUnknown_020391B4
-_08101314: .4byte gUnknown_02039234
-_08101318: .4byte gSaveBlock1
-_0810131C: .4byte 0x00000c24
-_08101320: .4byte 0x00000c26
-_08101324: .4byte 0x00000c34
-_08101328:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3F
- bls _081012CA
-_08101332:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81012A0
-
- thumb_func_start sub_8101340
-sub_8101340: @ 8101340
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- b _081013A2
-_0810134A:
- ldr r0, [r0]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810139C
- ldr r0, _08101390 @ =gDecorations
- ldrb r2, [r1]
- lsls r1, r2, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- bne _0810139C
- ldr r5, _08101394 @ =gUnknown_020391B4
- adds r0, r2, 0
- adds r1, r5, 0
- bl sub_8101118
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r7, 0
- adds r2, r5, 0
- bl sub_8101200
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _0810139C
- strb r6, [r5]
- bl sub_81012A0
- ldr r0, _08101398 @ =gUnknown_02039234
- strb r4, [r0]
- movs r0, 0x1
- b _081013AC
- .align 2, 0
-_08101390: .4byte gDecorations
-_08101394: .4byte gUnknown_020391B4
-_08101398: .4byte gUnknown_02039234
-_0810139C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081013A2:
- ldr r0, _081013B4 @ =0x0201f000
- ldrb r1, [r0, 0x8]
- cmp r6, r1
- bcc _0810134A
- movs r0, 0
-_081013AC:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081013B4: .4byte 0x0201f000
- thumb_func_end sub_8101340
-
- thumb_func_start sub_81013B8
-sub_81013B8: @ 81013B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r4, 0
- ldr r7, _08101450 @ =0x0201f000
- ldrb r0, [r7, 0x8]
- cmp r4, r0
- bcs _0810143E
- adds r6, r7, 0
- ldr r5, _08101454 @ =gUnknown_02039234
-_081013EA:
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- ldr r0, [r6, 0x4]
- adds r0, r4
- ldrb r0, [r0]
- lsrs r3, r0, 4
- movs r2, 0xF
- ands r2, r0
- cmp r1, 0
- beq _08101432
- ldr r0, _08101458 @ =gDecorations
- lsls r1, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- bne _08101432
- ldr r0, [sp]
- cmp r0, r3
- bhi _08101432
- cmp r10, r2
- bhi _08101432
- cmp r9, r3
- bcc _08101432
- cmp r8, r2
- bcc _08101432
- ldr r0, _0810145C @ =gUnknown_020391B4
- ldrb r1, [r5]
- lsls r1, 3
- adds r1, r0
- strb r4, [r1]
- bl sub_81012A0
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_08101432:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r7, 0x8]
- cmp r4, r0
- bcc _081013EA
-_0810143E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101450: .4byte 0x0201f000
-_08101454: .4byte gUnknown_02039234
-_08101458: .4byte gDecorations
-_0810145C: .4byte gUnknown_020391B4
- thumb_func_end sub_81013B8
-
- thumb_func_start sub_8101460
-sub_8101460: @ 8101460
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _081014B8 @ =gUnknown_02039234
- movs r0, 0
- strb r0, [r4]
- adds r0, r6, 0
- bl sub_8101340
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08101504
- movs r5, 0
- ldr r0, _081014BC @ =0x0201f000
- ldrb r1, [r0, 0x8]
- cmp r5, r1
- bcs _081014D2
- adds r7, r4, 0
-_08101486:
- ldr r0, [r0]
- adds r0, r5
- ldrb r1, [r0]
- cmp r1, 0
- beq _081014C4
- ldr r4, _081014C0 @ =gUnknown_020391B4
- adds r0, r1, 0
- adds r1, r4, 0
- bl sub_8101118
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8101200
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081014C4
- strb r5, [r4]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _081014D2
- .align 2, 0
-_081014B8: .4byte gUnknown_02039234
-_081014BC: .4byte 0x0201f000
-_081014C0: .4byte gUnknown_020391B4
-_081014C4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810150C @ =0x0201f000
- ldrb r1, [r0, 0x8]
- cmp r5, r1
- bcc _08101486
-_081014D2:
- ldr r0, _08101510 @ =gUnknown_02039234
- ldrb r0, [r0]
- cmp r0, 0
- beq _08101504
- ldr r0, _0810150C @ =0x0201f000
- ldr r2, _08101514 @ =gUnknown_020391B4
- ldrb r1, [r2]
- ldr r0, [r0, 0x4]
- adds r0, r1
- ldrb r1, [r0]
- lsrs r0, r1, 4
- movs r3, 0xF
- ands r3, r1
- ldrb r1, [r2, 0x2]
- subs r1, r3, r1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r2, 0x1]
- adds r2, r0
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- bl sub_81013B8
-_08101504:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810150C: .4byte 0x0201f000
-_08101510: .4byte gUnknown_02039234
-_08101514: .4byte gUnknown_020391B4
- thumb_func_end sub_8101460
-
- thumb_func_start sub_8101518
-sub_8101518: @ 8101518
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08101538 @ =gUnknown_083EC9CC
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101538: .4byte gUnknown_083EC9CC
- thumb_func_end sub_8101518
-
- thumb_func_start sub_810153C
-sub_810153C: @ 810153C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _08101564 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _08101568 @ =sub_8100C88
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101564: .4byte gTasks
-_08101568: .4byte sub_8100C88
- thumb_func_end sub_810153C
-
- thumb_func_start sub_810156C
-sub_810156C: @ 810156C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0810158C @ =gUnknown_083EC9D4
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810158C: .4byte gUnknown_083EC9D4
- thumb_func_end sub_810156C
-
- thumb_func_start sub_8101590
-sub_8101590: @ 8101590
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_81015B0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101590
-
- thumb_func_start sub_81015B0
-sub_81015B0: @ 81015B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _081015D8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _081015DC @ =sub_81015E0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081015D8: .4byte gTasks
-_081015DC: .4byte sub_81015E0
- thumb_func_end sub_81015B0
-
- thumb_func_start sub_81015E0
-sub_81015E0: @ 81015E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08101600 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08101604
- cmp r0, 0x1
- beq _08101620
- b _08101636
- .align 2, 0
-_08101600: .4byte gTasks
-_08101604:
- ldr r0, _0810161C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08101636
- adds r0, r4, 0
- bl sub_80FF114
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _08101636
- .align 2, 0
-_0810161C: .4byte gPaletteFade
-_08101620:
- bl sub_81016F4
- ldr r0, _0810163C @ =gUnknown_0300485C
- ldr r1, _08101640 @ =sub_8101678
- str r1, [r0]
- ldr r0, _08101644 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08101636:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810163C: .4byte gUnknown_0300485C
-_08101640: .4byte sub_8101678
-_08101644: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_81015E0
-
- thumb_func_start sub_8101648
-sub_8101648: @ 8101648
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08101668
- ldr r0, _08101670 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08101674 @ =Task_DecorationPCProcessMenuInput
- str r0, [r1]
-_08101668:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101670: .4byte gTasks
-_08101674: .4byte Task_DecorationPCProcessMenuInput
- thumb_func_end sub_8101648
-
- thumb_func_start sub_8101678
-sub_8101678: @ 8101678
- push {lr}
- bl pal_fill_black
- bl MenuDisplayMessageBox
- bl sub_80FE220
- ldr r0, _08101694 @ =sub_8101648
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08101694: .4byte sub_8101648
- thumb_func_end sub_8101678
-
- thumb_func_start sub_8101698
-sub_8101698: @ 8101698
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x2E]
- cmp r0, 0xF
- ble _081016B8
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _081016C4
-_081016B8:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_081016C4:
- pop {r0}
- bx r0
- thumb_func_end sub_8101698
-
- thumb_func_start sub_81016C8
-sub_81016C8: @ 81016C8
- push {lr}
- ldr r0, _081016DC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _081016E4
- ldr r0, _081016E0 @ =gUnknown_083ECA5C
- bl LoadSpritePalette
- b _081016EA
- .align 2, 0
-_081016DC: .4byte gSaveBlock2
-_081016E0: .4byte gUnknown_083ECA5C
-_081016E4:
- ldr r0, _081016F0 @ =gUnknown_083ECA64
- bl LoadSpritePalette
-_081016EA:
- pop {r0}
- bx r0
- .align 2, 0
-_081016F0: .4byte gUnknown_083ECA64
- thumb_func_end sub_81016C8
-
- thumb_func_start sub_81016F4
-sub_81016F4: @ 81016F4
- push {lr}
- movs r0, 0x8
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- thumb_func_end sub_81016F4
-
- thumb_func_start sub_8101700
-sub_8101700: @ 8101700
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _08101728
- ldr r1, _08101720 @ =gSecretBaseText_NoDecors
- ldr r2, _08101724 @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101742
- .align 2, 0
-_08101720: .4byte gSecretBaseText_NoDecors
-_08101724: .4byte sub_80FE428
-_08101728:
- ldr r1, _08101748 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x1E]
- ldr r0, _0810174C @ =gUnknown_020388F6
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_08101742:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101748: .4byte gTasks
-_0810174C: .4byte gUnknown_020388F6
- thumb_func_end sub_8101700
-
- thumb_func_start unref_sub_8101750
-unref_sub_8101750: @ 8101750
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _08101778
- ldr r1, _08101770 @ =gSecretBaseText_NoDecors
- ldr r2, _08101774 @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101792
- .align 2, 0
-_08101770: .4byte gSecretBaseText_NoDecors
-_08101774: .4byte sub_80FE428
-_08101778:
- ldr r1, _08101798 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x2
- strh r1, [r0, 0x1E]
- ldr r0, _0810179C @ =gUnknown_020388F6
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_08101792:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101798: .4byte gTasks
-_0810179C: .4byte gUnknown_020388F6
- thumb_func_end unref_sub_8101750
-
- thumb_func_start sub_81017A0
-sub_81017A0: @ 81017A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80FEF74
- bl sub_80FED1C
- bl sub_80FEFA4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08101808
- ldr r0, _081017EC @ =gStringVar1
- ldr r1, _081017F0 @ =gUnknown_020388F5
- ldrb r2, [r1]
- ldr r1, _081017F4 @ =gUnknown_020388D0
- ldr r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 5
- ldr r2, _081017F8 @ =gDecorations + 0x1
- adds r1, r2
- bl StringCopy
- ldr r4, _081017FC @ =gStringVar4
- ldr r1, _08101800 @ =gSecretBaseText_WillBeDiscarded
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _08101804 @ =sub_8101824
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101814
- .align 2, 0
-_081017EC: .4byte gStringVar1
-_081017F0: .4byte gUnknown_020388F5
-_081017F4: .4byte gUnknown_020388D0
-_081017F8: .4byte gDecorations + 0x1
-_081017FC: .4byte gStringVar4
-_08101800: .4byte gSecretBaseText_WillBeDiscarded
-_08101804: .4byte sub_8101824
-_08101808:
- ldr r1, _0810181C @ =gSecretBaseText_DecorInUse
- ldr r2, _08101820 @ =sub_80FEFF4
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08101814:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810181C: .4byte gSecretBaseText_DecorInUse
-_08101820: .4byte sub_80FEFF4
- thumb_func_end sub_81017A0
-
- thumb_func_start sub_8101824
-sub_8101824: @ 8101824
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08101844 @ =gUnknown_083ECAA0
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101844: .4byte gUnknown_083ECAA0
- thumb_func_end sub_8101824
-
- thumb_func_start sub_8101848
-sub_8101848: @ 8101848
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xE
- bl MenuZeroFillWindowRect
- ldr r6, _08101890 @ =gUnknown_020388F5
- ldrb r1, [r6]
- ldr r5, _08101894 @ =gUnknown_020388D0
- ldr r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8109A30
- ldrb r1, [r6]
- ldr r0, [r5]
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- adds r0, r4, 0
- bl sub_80FF098
- ldr r1, _08101898 @ =gSecretBaseText_DecorThrownAway
- ldr r2, _0810189C @ =sub_80FEFF4
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08101890: .4byte gUnknown_020388F5
-_08101894: .4byte gUnknown_020388D0
-_08101898: .4byte gSecretBaseText_DecorThrownAway
-_0810189C: .4byte sub_80FEFF4
- thumb_func_end sub_8101848
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/decoration.s b/data/decoration.s
deleted file mode 100644
index d37e41823..000000000
--- a/data/decoration.s
+++ /dev/null
@@ -1,265 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ 83E9FD0
- .include "data/decorations.inc"
-
- .align 2
-gUnknown_083EC5E4:: @ 83EC5E4
- .4byte SecretBaseText_Desk
- .4byte SecretBaseText_Chair
- .4byte SecretBaseText_Plant
- .4byte SecretBaseText_Ornament
- .4byte SecretBaseText_Mat
- .4byte SecretBaseText_Poster
- .4byte SecretBaseText_Doll
- .4byte SecretBaseText_Cushion
-
- .align 2
-gUnknown_083EC604:: @ 83EC604
- .4byte SecretBaseText_Decorate, sub_80FF160
- .4byte SecretBaseText_PutAway, sub_8100A0C
- .4byte SecretBaseText_Toss, sub_8101700
- .4byte gUnknownText_Exit, gpu_pal_decompress_alloc_tag_and_upload
-
- .align 2
-gUnknown_083EC624:: @ 83EC624
- .4byte SecretBaseText_PutOutDecor
- .4byte SecretBaseText_StoreChosenDecor
- .4byte SecretBaseText_ThrowAwayDecor
- .4byte gMenuText_GoBackToPrev
-
- .align 2
-gUnknown_083EC634:: @ 83EC634
- .4byte sub_80FF5BC
- .4byte sub_80FF058
- .4byte sub_81017A0
- .4byte sub_80FF058
- .4byte sub_81017A0
- .4byte sub_80FF058
- .4byte sub_8109D04
- .4byte sub_80FF058
-
- .align 2
-gUnknown_083EC654:: @ 83EC654
- .2byte 0x6318, 0x739C, 0x7FFF
-
-gUnknown_083EC65A:: @ 83EC65A
- .string "{PALETTE 13}{STR_VAR_1}$"
-
-Unknown_3EC660: @ 83EC660
- .byte 0, 1, 2, 3
-
-Unknown_3EC664: @ 83EC664
- .byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13
-
-Unknown_3EC670: @ 83EC670
- .byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-
-Unknown_3EC680: @ 83EC680
- .byte 0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21
-
-Unknown_3EC68C: @ 83EC68C
- .byte 0, 1, 2, 3, 4, 5, 6, 7
-
-Unknown_3EC694: @ 83EC694
- .byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
-
-Unknown_3EC6B4: @ 83EC6B4
- .byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45
-
-Unknown_3EC6D8: @ 83EC6D8
- .byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29
-
-Unknown_3EC6F0: @ 83EC6F0
- .byte 0, 0, 0, 0
-
-Unknown_3EC6F4: @ 83EC6F4
- .byte 0, 0, 1, 1, 0, 0, 1, 1
-
-Unknown_3EC6FC: @ 83EC6FC
- .byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2
-
-Unknown_3EC708: @ 83EC708
- .byte 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 4, 4, 5, 5, 6, 6, 7, 7
-
-Unknown_3EC728: @ 83EC728
- .byte 0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3
-
-Unknown_3EC738: @ 83EC738
- .byte 0, 0, 0, 0, 1, 1, 1, 1
-
-Unknown_3EC740: @ 83EC740
- .byte 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2
-
-Unknown_3EC74C: @ 83EC74C
- .byte 0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3, 4, 4, 5, 5, 4, 4, 5, 5, 6, 6, 7, 7, 6, 6, 7, 7
-
-Unknown_3EC76C: @ 83EC76C
- .byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 6, 6, 7, 7, 8, 8
-
-Unknown_3EC790: @ 83EC790
- .byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5
-
-Unknown_3EC7A8: @ 83EC7A8
- .byte 4, 5, 6, 7
-
-Unknown_3EC7AC: @ 83EC7AC
- .byte 4, 5, 4, 5, 6, 7, 6, 7
-
-Unknown_3EC7B4: @ 83EC7B4
- .byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7
-
-Unknown_3EC7C0: @ 83EC7C0
- .byte 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7
-
-Unknown_3EC7E0: @ 83EC7E0
- .byte 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7
-
-Unknown_3EC7F0: @ 83EC7F0
- .byte 4, 5, 6, 7, 4, 5, 6, 7
-
-Unknown_3EC7F8: @ 83EC7F8
- .byte 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7
-
-Unknown_3EC804: @ 83EC804
- .byte 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7
-
-Unknown_3EC824: @ 83EC824
- .byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7
-
-Unknown_3EC848: @ 83EC848
- .byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7
-
- .align 2
-gUnknown_083EC860:: @ 83EC860
- .4byte Unknown_3EC660, Unknown_3EC6F0, Unknown_3EC7A8, 0x4
- .4byte Unknown_3EC68C, Unknown_3EC6F4, Unknown_3EC7AC, 0x8
- .4byte Unknown_3EC664, Unknown_3EC6FC, Unknown_3EC7B4, 0xc
- .4byte Unknown_3EC694, Unknown_3EC708, Unknown_3EC7C0, 0x20
- .4byte Unknown_3EC670, Unknown_3EC728, Unknown_3EC7E0, 0x10
- .4byte Unknown_3EC68C, Unknown_3EC738, Unknown_3EC7F0, 0x8
- .4byte Unknown_3EC680, Unknown_3EC740, Unknown_3EC7F8, 0xc
- .4byte Unknown_3EC694, Unknown_3EC74C, Unknown_3EC804, 0x20
- .4byte Unknown_3EC6B4, Unknown_3EC76C, Unknown_3EC824, 0x24
- .4byte Unknown_3EC6D8, Unknown_3EC790, Unknown_3EC848, 0x18
-
-gUnknown_083EC900:: @ 83EC900
- .byte 0, 1, 120, 78
- .byte 1, 2, -128, 78
- .byte 1, 3, -112, 86
- .byte 1, 3, -112, 70
- .byte 0, 2, -128, 70
- .byte 2, 2, 120, 70
- .byte 2, 3, -128, 86
- .byte 2, 3, -128, 54
- .byte 0, 3, -112, 70
- .byte 1, 3, -112, 70
-
- .align 2
-gSpriteAnim_83EC928:: @ 83EC928
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83EC930:: @ 83EC930
- .4byte gSpriteAnim_83EC928
-
- .align 2
-gSpriteImageTable_83EC934: @ 83EC934
- obj_frame_tiles gUnknown_02038900+0x84, 0x800
-
- .align 2
-gSpriteTemplate_83EC93C:: @ 83EC93C
- spr_template 0xFFFF, 3000, 0x20391AC, gSpriteAnimTable_83EC930, gSpriteImageTable_83EC934, gDummySpriteAffineAnimTable, sub_81009A8
-
- .align 2
-gUnknown_083EC954:: @ 83EC954
- obj_pal gUnknown_02038900+0x884, 3000
-
- .align 2
-gUnknown_083EC95C:: @ 83EC95C
- .4byte sub_81000C4
- .4byte sub_810065C
-
- .align 2
-gUnknown_083EC964:: @ 83EC964
- .4byte sub_810026C
- .4byte sub_810065C
-
- .align 2
-gUnknown_083EC96C:: @ 83EC96C
- .4byte sub_80FFAB0
- .4byte sub_80FFB08
- .4byte sub_8100F88
- .4byte sub_8100FB4
-
-gUnknown_083EC97C:: @ 83EC97C
- .byte 4, 4, 4, 4, 0, 3, 3, 0
-
-gUnknown_083EC984:: @ 83EC984
- .byte 4, 4, 4, 4, 0, 4, 3, 0
-
- .align 2
-gUnknown_083EC98C::
- .incbin "graphics/unknown/83EC98C.gbapal"
-
- .align 2
-Unknown_3EC9AC: @ 83EC9AC
- .incbin "graphics/unknown/83EC9AC.gbapal"
-
- .align 2
-gUnknown_083EC9CC:: @ 83EC9CC
- .4byte sub_810153C
- .4byte sub_8100EEC
-
- .align 2
-gUnknown_083EC9D4:: @ 83EC9D4
- .4byte sub_8101590
- .4byte sub_8100EEC
-
- .align 2
-gSpriteImage_83EC9DC:: @ 83EC9DC
- .incbin "graphics/unknown_sprites/83EC9DC.4bpp"
-
- .align 2
-gUnknown_083ECA5C:: @ 83ECA5C
- obj_pal gUnknown_083EC98C, 0x0008
-
- .align 2
-gUnknown_083ECA64:: @ 83ECA64
- obj_pal Unknown_3EC9AC, 0x0008
-
- .align 2
-gOamData_83ECA6C:: @ 83ECA6C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83ECA74:: @ 83ECA74
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83ECA7C:: @ 83ECA7C
- .4byte gSpriteAnim_83ECA74
-
- .align 2
-gSpriteImageTable_83ECA80:: @ 83ECA80
- obj_frame_tiles gSpriteImage_83EC9DC, 0x80
-
- .align 2
-gSpriteTemplate_83ECA88:: @ 83ECA88
- spr_template 0xFFFF, 8, gOamData_83ECA6C, gSpriteAnimTable_83ECA7C, gSpriteImageTable_83ECA80, gDummySpriteAffineAnimTable, sub_8101698
-
- .align 2
-gUnknown_083ECAA0:: @ 83ECAA0
- .4byte sub_8101848
- .4byte sub_80FED3C
-
-@ XXX: what is this?
- .align 2
- .4byte 0x2000000
diff --git a/data/decorations.inc b/data/decorations.inc
deleted file mode 100644
index 268ebee9a..000000000
--- a/data/decorations.inc
+++ /dev/null
@@ -1,2432 +0,0 @@
-DecorDesc_SMALL_DESK: @ 83E9FD0
- .string "A small desk built\n"
- .string "for one.$"
-
-DecorDesc_POKEMON_DESK: @ 83E9FEC
- .string "A small desk built in\n"
- .string "the shape of a POKé\n"
- .string "BALL.$"
-
-DecorDesc_HEAVY_DESK: @ 83EA01C
- .string "A large desk made\n"
- .string "of steel. Put some\n"
- .string "decorations on it.$"
-
-DecorDesc_RAGGED_DESK: @ 83EA054
- .string "A large desk made\n"
- .string "of wood. Put some\n"
- .string "decorations on it.$"
-
-DecorDesc_COMFORT_DESK: @ 83EA08B
- .string "A large desk made\n"
- .string "of leaves. Put some\n"
- .string "decorations on it.$"
-
-DecorDesc_PRETTY_DESK: @ 83EA0C4
- .string "A huge desk made\n"
- .string "of glass. Holds lots\n"
- .string "of decorations.$"
-
-DecorDesc_BRICK_DESK: @ 83EA0FA
- .string "A huge desk made\n"
- .string "of brick. Holds lots\n"
- .string "of decorations.$"
-
-DecorDesc_CAMP_DESK: @ 83EA130
- .string "A huge desk made\n"
- .string "of logs. Put lots of\n"
- .string "decorations on it.$"
-
-DecorDesc_HARD_DESK: @ 83EA169
- .string "A huge desk made\n"
- .string "of rocks. Holds\n"
- .string "many decorations.$"
-
-DecorDesc_SMALL_CHAIR: @ 83EA19C
- .string "A small chair made\n"
- .string "for one.$"
-
-DecorDesc_POKEMON_CHAIR: @ 83EA1B8
- .string "A small chair built\n"
- .string "in the shape of a\n"
- .string "POKé BALL.$"
-
-DecorDesc_HEAVY_CHAIR: @ 83EA1E9
- .string "A small chair made\n"
- .string "of steel.$"
-
-DecorDesc_PRETTY_CHAIR: @ 83EA206
- .string "A small chair made\n"
- .string "of glass.$"
-
-DecorDesc_COMFORT_CHAIR: @ 83EA223
- .string "A small chair made\n"
- .string "of leaves.$"
-
-DecorDesc_RAGGED_CHAIR: @ 83EA241
- .string "A small chair made\n"
- .string "of wood.$"
-
-DecorDesc_BRICK_CHAIR: @ 83EA25D
- .string "A small chair made\n"
- .string "of brick.$"
-
-DecorDesc_CAMP_CHAIR: @ 83EA27A
- .string "A small chair made\n"
- .string "of logs.$"
-
-DecorDesc_HARD_CHAIR: @ 83EA296
- .string "A small chair made\n"
- .string "of rock.$"
-
-DecorDesc_RED_PLANT: @ 83EA2B2
- .string "A vivid red potted\n"
- .string "plant.$"
-
-DecorDesc_TROPICAL_PLANT: @ 83EA2CC
- .string "A flowering tropical\n"
- .string "plant in a pot.$"
-
-DecorDesc_PRETTY_FLOWERS: @ 83EA2F1
- .string "A pot of cute\n"
- .string "flowers.$"
-
-DecorDesc_COLORFUL_PLANT: @ 83EA308
- .string "A large pot with\n"
- .string "many colorful\n"
- .string "flowers.$"
-
-DecorDesc_BIG_PLANT: @ 83EA330
- .string "A large, umbrella-\n"
- .string "shaped plant in a\n"
- .string "big pot.$"
-
-DecorDesc_GORGEOUS_PLANT: @ 83EA35E
- .string "A large, impressive\n"
- .string "plant in a big pot.$"
-
-DecorDesc_RED_BRICK: @ 83EA386
- .string "A red-colored brick.\n"
- .string "Decorations can be\n"
- .string "placed on top.$"
-
-DecorDesc_YELLOW_BRICK: @ 83EA3BD
- .string "A yellow-colored\n"
- .string "brick. Put some\n"
- .string "decorations on top.$"
-
-DecorDesc_BLUE_BRICK: @ 83EA3F2
- .string "A blue-colored\n"
- .string "brick. Put some\n"
- .string "decorations on top.$"
-
-DecorDesc_RED_BALLOON: @ 83EA425
- .string "A red balloon filled\n"
- .string "with water. Bursts\n"
- .string "if stepped on.$"
-
-DecorDesc_BLUE_BALLOON: @ 83EA45C
- .string "A blue balloon filled\n"
- .string "with water. Bursts\n"
- .string "if stepped on.$"
-
-DecorDesc_YELLOW_BALLOON: @ 83EA494
- .string "A yellow balloon\n"
- .string "filled with water.\n"
- .string "Pops if stepped on.$"
-
-DecorDesc_RED_TENT: @ 83EA4CC
- .string "A large red tent.\n"
- .string "You can hide inside\n"
- .string "it.$"
-
-DecorDesc_BLUE_TENT: @ 83EA4F6
- .string "A large blue tent.\n"
- .string "You can hide inside\n"
- .string "it.$"
-
-DecorDesc_SOLID_BOARD: @ 83EA521
- .string "Place over a hole to\n"
- .string "cross to the other\n"
- .string "side.$"
-
-DecorDesc_SLIDE: @ 83EA54F
- .string "Use to slide down\n"
- .string "from the platform.$"
-
-DecorDesc_FENCE_LENGTH: @ 83EA574
- .string "A small fence that\n"
- .string "blocks passage.$"
-
-DecorDesc_FENCE_WIDTH: @ 83EA597
- .string "A small fence that\n"
- .string "blocks passage.$"
-
-DecorDesc_TIRE: @ 83EA5BA
- .string "An old large tire.\n"
- .string "Decorations can be\n"
- .string "placed on top.$"
-
-DecorDesc_STAND: @ 83EA5EF
- .string "A large pedestal\n"
- .string "with steps.$"
-
-DecorDesc_MUD_BALL: @ 83EA60C
- .string "A large ball of mud.\n"
- .string "Crumbles if stepped\n"
- .string "on.$"
-
-DecorDesc_BREAKABLE_DOOR: @ 83EA639
- .string "A weird door that\n"
- .string "people can walk\n"
- .string "right through.$"
-
-DecorDesc_SAND_ORNAMENT: @ 83EA66A
- .string "An ornament made\n"
- .string "of sand. Crumbles if\n"
- .string "touched.$"
-
-DecorDesc_SILVER_SHIELD: @ 83EA699
- .string "Awarded for 50\n"
- .string "straight wins at\n"
- .string "the BATTLE TOWER.$"
-
-DecorDesc_GOLD_SHIELD: @ 83EA6CB
- .string "Awarded for 100\n"
- .string "straight wins at\n"
- .string "the BATTLE TOWER.$"
-
-DecorDesc_GLASS_ORNAMENT: @ 83EA6FE
- .string "A glass replica of\n"
- .string "a famous sculpture\n"
- .string "at the ART MUSEUM.$"
-
-DecorDesc_TV: @ 83EA737
- .string "A small, gray-\n"
- .string "colored toy TV.$"
-
-DecorDesc_ROUND_TV: @ 83EA756
- .string "A toy TV modeled\n"
- .string "in the image of a\n"
- .string "SEEDOT.$"
-
-DecorDesc_CUTE_TV: @ 83EA781
- .string "A toy TV modeled\n"
- .string "in the image of a\n"
- .string "SKITTY.$"
-
-DecorDesc_GLITTER_MAT: @ 83EA7AC
- .string "An odd mat that\n"
- .string "glitters if stepped\n"
- .string "on.$"
-
-DecorDesc_JUMP_MAT: @ 83EA7D4
- .string "A trick mat that\n"
- .string "jumps when it is\n"
- .string "stepped on.$"
-
-DecorDesc_SPIN_MAT: @ 83EA802
- .string "A trick mat that\n"
- .string "spins around when\n"
- .string "stepped on.$"
-
-DecorDesc_C_LOW_NOTE_MAT: @ 83EA831
- .string "A mat that plays\n"
- .string "a low C note when\n"
- .string "stepped on.$"
-
-DecorDesc_D_NOTE_MAT: @ 83EA860
- .string "A mat that plays\n"
- .string "a D note when\n"
- .string "stepped on.$"
-
-DecorDesc_E_NOTE_MAT: @ 83EA88B
- .string "A mat that plays\n"
- .string "an E note when\n"
- .string "stepped on.$"
-
-DecorDesc_F_NOTE_MAT: @ 83EA8B7
- .string "A mat that plays\n"
- .string "an F note when\n"
- .string "stepped on.$"
-
-DecorDesc_G_NOTE_MAT: @ 83EA8E3
- .string "A mat that plays\n"
- .string "a G note when\n"
- .string "stepped on.$"
-
-DecorDesc_A_NOTE_MAT: @ 83EA90E
- .string "A mat that plays\n"
- .string "an A note when\n"
- .string "stepped on.$"
-
-DecorDesc_B_NOTE_MAT: @ 83EA93A
- .string "A mat that plays\n"
- .string "a B note when\n"
- .string "stepped on.$"
-
-DecorDesc_C_HIGH_NOTE_MAT: @ 83EA965
- .string "A mat that plays\n"
- .string "a high C note when\n"
- .string "stepped on.$"
-
-DecorDesc_SURF_MAT: @ 83EA995
- .string "A mat designed with\n"
- .string "a SURF image.\n"
- .string "Put items on top.$"
-
-DecorDesc_THUNDER_MAT: @ 83EA9C9
- .string "A mat designed with\n"
- .string "a THUNDER image.\n"
- .string "Put items on top.$"
-
-DecorDesc_FIRE_BLAST_MAT: @ 83EAA00
- .string "A mat designed with\n"
- .string "a FIRE BLAST image.\n"
- .string "Put items on top.$"
-
-DecorDesc_POWDER_SNOW_MAT: @ 83EAA3A
- .string "A mat with a POWDER\n"
- .string "SNOW image design.\n"
- .string "Put items on top.$"
-
-DecorDesc_ATTRACT_MAT: @ 83EAA73
- .string "A mat designed with\n"
- .string "an ATTRACT image.\n"
- .string "Put items on top.$"
-
-DecorDesc_FISSURE_MAT: @ 83EAAAB
- .string "A mat designed with\n"
- .string "a FISSURE image.\n"
- .string "Put items on top.$"
-
-DecorDesc_SPIKES_MAT: @ 83EAAE2
- .string "A mat designed with\n"
- .string "a SPIKES image.\n"
- .string "Put items on top.$"
-
-DecorDesc_BALL_POSTER: @ 83EAB18
- .string "A small poster\n"
- .string "printed with POKé\n"
- .string "BALLS.$"
-
-DecorDesc_GREEN_POSTER: @ 83EAB40
- .string "A small poster with\n"
- .string "a TREECKO print.$"
-
-DecorDesc_RED_POSTER: @ 83EAB65
- .string "A small poster with\n"
- .string "a TORCHIC print.$"
-
-DecorDesc_BLUE_POSTER: @ 83EAB8A
- .string "A small poster with\n"
- .string "a MUDKIP print.$"
-
-DecorDesc_CUTE_POSTER: @ 83EABAE
- .string "A small poster with\n"
- .string "an AZURILL print.$"
-
-DecorDesc_PIKA_POSTER: @ 83EABD4
- .string "A large poster with\n"
- .string "a PIKACHU and\n"
- .string "PICHU print.$"
-
-DecorDesc_LONG_POSTER: @ 83EAC03
- .string "A large poster with\n"
- .string "a SEVIPER print.$"
-
-DecorDesc_SEA_POSTER: @ 83EAC28
- .string "A large poster with\n"
- .string "a RELICANTH print.$"
-
-DecorDesc_SKY_POSTER: @ 83EAC4F
- .string "A large poster with\n"
- .string "a WINGULL print.$"
-
-DecorDesc_KISS_POSTER: @ 83EAC74
- .string "A large poster with\n"
- .string "a SMOOCHUM print.$"
-
-DecorDesc_PICHU_DOLL: @ 83EAC9A
- .string "A PICHU doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_PIKACHU_DOLL: @ 83EACC5
- .string "A PIKACHU doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_MARILL_DOLL: @ 83EACF2
- .string "A MARILL doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_TOGEPI_DOLL: @ 83EAD1E
- .if REVISION >= 1
- .string "A TOGEPI doll.\n"
- .else
- .string "A TOPGEPI doll.\n"
- .endif
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_CYNDAQUIL_DOLL: @ 83EAD4B
- .string "A CYNDAQUIL doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_CHIKORITA_DOLL: @ 83EAD7A
- .string "A CHIKORITA doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_TOTODILE_DOLL: @ 83EADA9
- .string "A TOTODILE doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_JIGGLYPUFF_DOLL: @ 83EADD7
- .string "A JIGGLYPUFF doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_MEOWTH_DOLL: @ 83EAE07
- .string "A MEOWTH doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_CLEFAIRY_DOLL: @ 83EAE33
- .string "A CLEFAIRY doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_DITTO_DOLL: @ 83EAE61
- .string "A DITTO doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_SMOOCHUM_DOLL: @ 83EAE8C
- .string "A SMOOCHUM doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_TREECKO_DOLL: @ 83EAEBA
- .string "A TREECKO doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_TORCHIC_DOLL: @ 83EAEE7
- .string "A TORCHIC doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_MUDKIP_DOLL: @ 83EAF14
- .string "A MUDKIP doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_DUSKULL_DOLL: @ 83EAF40
- .string "A DUSKULL doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_WYNAUT_DOLL: @ 83EAF6D
- .string "A WYNAUT doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_BALTOY_DOLL: @ 83EAF99
- .string "A BALTOY doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_KECLEON_DOLL: @ 83EAFC5
- .string "A KECLEON doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_AZURILL_DOLL: @ 83EAFF2
- .string "An AZURILL doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_SKITTY_DOLL: @ 83EB020
- .string "A SKITTY doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_SWABLU_DOLL: @ 83EB04C
- .string "A SWABLU doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_GULPIN_DOLL: @ 83EB078
- .string "A GULPIN doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_LOTAD_DOLL: @ 83EB0A4
- .string "A LOTAD doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_SEEDOT_DOLL: @ 83EB0CF
- .string "A SEEDOT doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_PIKA_CUSHION: @ 83EB0FB
- .string "A PIKACHU cushion.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_ROUND_CUSHION: @ 83EB12B
- .string "A MARILL cushion.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_KISS_CUSHION: @ 83EB15A
- .string "A SMOOCHUM\n"
- .string "cushion. Place it on\n"
- .string "a mat or a desk.$"
-
-DecorDesc_ZIGZAG_CUSHION: @ 83EB18B
- .string "A ZIGZAGOON\n"
- .string "cushion. Place it on\n"
- .string "a mat or a desk.$"
-
-DecorDesc_SPIN_CUSHION: @ 83EB1BD
- .string "A SPINDA cushion.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_DIAMOND_CUSHION: @ 83EB1EC
- .string "A SABLEYE cushion.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_BALL_CUSHION: @ 83EB21C
- .string "A BALL cushion.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_GRASS_CUSHION: @ 83EB249
- .string "A grass-mark\n"
- .string "cushion. Place it on\n"
- .string "a mat or a desk.$"
-
-DecorDesc_FIRE_CUSHION: @ 83EB27C
- .string "A fire-mark\n"
- .string "cushion. Place it on\n"
- .string "a mat or a desk.$"
-
-DecorDesc_WATER_CUSHION: @ 83EB2AE
- .string "A water-mark\n"
- .string "cushion. Place it on\n"
- .string "a mat or a desk.$"
-
-DecorDesc_SNORLAX_DOLL: @ 83EB2E1
- .string "A large doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_RHYDON_DOLL: @ 83EB30C
- .string "A large doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_LAPRAS_DOLL: @ 83EB337
- .string "A large doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_VENUSAUR_DOLL: @ 83EB362
- .string "A large doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_CHARIZARD_DOLL: @ 83EB38D
- .string "A large doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_BLASTOISE_DOLL: @ 83EB3B8
- .string "A large doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_WAILMER_DOLL: @ 83EB3E3
- .string "A large doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_REGIROCK_DOLL: @ 83EB40E
- .string "A large doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_REGICE_DOLL: @ 83EB439
- .string "A large doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
-DecorDesc_REGISTEEL_DOLL: @ 83EB464
- .string "A large doll.\n"
- .string "Place it on a mat\n"
- .string "or a desk.$"
-
- .align 1
-DecorGfx_SMALL_DESK: @ 83EB490
- .2byte 0x87
-
- .align 1
-DecorGfx_POKEMON_DESK: @ 83EB492
- .2byte 0x8F
-
- .align 1
-DecorGfx_HEAVY_DESK: @ 83EB494
- .2byte 0x90
- .2byte 0x91
- .2byte 0x92
- .2byte 0x98
- .2byte 0x99
- .2byte 0x9A
-
- .align 1
-DecorGfx_RAGGED_DESK: @ 83EB4A0
- .2byte 0x93
- .2byte 0x94
- .2byte 0x95
- .2byte 0x9B
- .2byte 0x9C
- .2byte 0x9D
-
- .align 1
-DecorGfx_COMFORT_DESK: @ 83EB4AC
- .2byte 0x96
- .2byte 0x97
- .2byte 0xA3
- .2byte 0x9E
- .2byte 0x9F
- .2byte 0xAB
-
- .align 1
-DecorGfx_PRETTY_DESK: @ 83EB4B8
- .2byte 0xBD
- .2byte 0xBE
- .2byte 0xBF
- .2byte 0xC5
- .2byte 0xC6
- .2byte 0xC7
- .2byte 0xCD
- .2byte 0xCE
- .2byte 0xCF
-
- .align 1
-DecorGfx_BRICK_DESK: @ 83EB4CA
- .2byte 0xA0
- .2byte 0xA1
- .2byte 0xA2
- .2byte 0xA8
- .2byte 0xA9
- .2byte 0xAA
- .2byte 0xB0
- .2byte 0xB1
- .2byte 0xB2
-
- .align 1
-DecorGfx_CAMP_DESK: @ 83EB4DC
- .2byte 0xA4
- .2byte 0xA5
- .2byte 0xA6
- .2byte 0xAC
- .2byte 0xAD
- .2byte 0xAE
- .2byte 0xB4
- .2byte 0xB5
- .2byte 0xB6
-
- .align 1
-DecorGfx_HARD_DESK: @ 83EB4EE
- .2byte 0xA7
- .2byte 0xBB
- .2byte 0xBC
- .2byte 0xAF
- .2byte 0xC3
- .2byte 0xC4
- .2byte 0xB7
- .2byte 0xCB
- .2byte 0xCC
-
- .align 1
-DecorGfx_SMALL_CHAIR: @ 83EB500
- .2byte 0xB8
-
- .align 1
-DecorGfx_POKEMON_CHAIR: @ 83EB502
- .2byte 0xB9
-
- .align 1
-DecorGfx_HEAVY_CHAIR: @ 83EB504
- .2byte 0xBA
-
- .align 1
-DecorGfx_PRETTY_CHAIR: @ 83EB506
- .2byte 0xC0
-
- .align 1
-DecorGfx_COMFORT_CHAIR: @ 83EB508
- .2byte 0xC1
-
- .align 1
-DecorGfx_RAGGED_CHAIR: @ 83EB50A
- .2byte 0xC2
-
- .align 1
-DecorGfx_BRICK_CHAIR: @ 83EB50C
- .2byte 0xC8
-
- .align 1
-DecorGfx_CAMP_CHAIR: @ 83EB50E
- .2byte 0xC9
-
- .align 1
-DecorGfx_HARD_CHAIR: @ 83EB510
- .2byte 0xCA
-
- .align 1
-DecorGfx_RED_PLANT: @ 83EB512
- .2byte 0xD0
- .2byte 0xD8
-
- .align 1
-DecorGfx_TROPICAL_PLANT: @ 83EB516
- .2byte 0xD2
- .2byte 0xDA
-
- .align 1
-DecorGfx_PRETTY_FLOWERS: @ 83EB51A
- .2byte 0xD4
- .2byte 0xDC
-
- .align 1
-DecorGfx_COLORFUL_PLANT: @ 83EB51E
- .2byte 0xE0
- .2byte 0xE2
- .2byte 0xE8
- .2byte 0xE9
-
- .align 1
-DecorGfx_BIG_PLANT: @ 83EB526
- .2byte 0xE4
- .2byte 0xE6
- .2byte 0xEC
- .2byte 0xED
-
- .align 1
-DecorGfx_GORGEOUS_PLANT: @ 83EB52E
- .2byte 0xF0
- .2byte 0xF2
- .2byte 0xF8
- .2byte 0xF9
-
- .align 1
-DecorGfx_RED_BRICK: @ 83EB536
- .2byte 0x25
- .2byte 0x2D
-
- .align 1
-DecorGfx_YELLOW_BRICK: @ 83EB53A
- .2byte 0x26
- .2byte 0x2E
-
- .align 1
-DecorGfx_BLUE_BRICK: @ 83EB53E
- .2byte 0x27
- .2byte 0x2F
-
- .align 1
-DecorGfx_RED_BALLOON: @ 83EB542
- .2byte 0x138
-
- .align 1
-DecorGfx_BLUE_BALLOON: @ 83EB544
- .2byte 0x13C
-
- .align 1
-DecorGfx_YELLOW_BALLOON: @ 83EB546
- .2byte 0x140
-
- .align 1
-DecorGfx_RED_TENT: @ 83EB548
- .2byte 0x30
- .2byte 0x31
- .2byte 0x32
- .2byte 0x38
- .2byte 0x39
- .2byte 0x3A
- .2byte 0x40
- .2byte 0x41
- .2byte 0x3B
-
- .align 1
-DecorGfx_BLUE_TENT: @ 83EB55A
- .2byte 0x48
- .2byte 0x49
- .2byte 0x68
- .2byte 0x50
- .2byte 0x51
- .2byte 0x70
- .2byte 0x58
- .2byte 0x59
- .2byte 0x69
-
- .align 1
-DecorGfx_SOLID_BOARD: @ 83EB56C
- .2byte 0x34
- .2byte 0x3C
-
- .align 1
-DecorGfx_SLIDE: @ 83EB570
- .2byte 0x35
- .2byte 0x36
- .2byte 0x3D
- .2byte 0x3E
- .2byte 0x63
- .2byte 0x64
- .2byte 0x6F
- .2byte 0x77
-
- .align 1
-DecorGfx_FENCE_LENGTH: @ 83EB580
- .2byte 0x33
-
- .align 1
-DecorGfx_FENCE_WIDTH: @ 83EB582
- .2byte 0x2C
-
- .align 1
-DecorGfx_TIRE: @ 83EB584
- .2byte 0x80
- .2byte 0x81
- .2byte 0x88
- .2byte 0x89
-
- .align 1
-DecorGfx_STAND: @ 83EB58C
- .2byte 0x6A
- .2byte 0x6B
- .2byte 0x6C
- .2byte 0x6D
- .2byte 0x72
- .2byte 0x73
- .2byte 0x74
- .2byte 0x75
-
- .align 1
-DecorGfx_MUD_BALL: @ 83EB59C
- .2byte 0x28
-
- .align 1
-DecorGfx_BREAKABLE_DOOR: @ 83EB59E
- .2byte 0x37
- .2byte 0x3F
-
- .align 1
-DecorGfx_SAND_ORNAMENT: @ 83EB5A2
- .2byte 0x85
- .2byte 0x8D
-
- .align 1
-DecorGfx_SILVER_SHIELD: @ 83EB5A6
- .2byte 0xD6
- .2byte 0xDE
-
- .align 1
-DecorGfx_GOLD_SHIELD: @ 83EB5AA
- .2byte 0x12E
- .2byte 0x136
-
- .align 1
-DecorGfx_GLASS_ORNAMENT: @ 83EB5AE
- .2byte 0x82
- .2byte 0x8A
-
- .align 1
-DecorGfx_TV: @ 83EB5B2
- .2byte 0xF4
-
- .align 1
-DecorGfx_ROUND_TV: @ 83EB5B4
- .2byte 0xF5
-
- .align 1
-DecorGfx_CUTE_TV: @ 83EB5B6
- .2byte 0xF6
-
- .align 1
-DecorGfx_GLITTER_MAT: @ 83EB5B8
- .2byte 0x60
-
- .align 1
-DecorGfx_JUMP_MAT: @ 83EB5BA
- .2byte 0x61
-
- .align 1
-DecorGfx_SPIN_MAT: @ 83EB5BC
- .2byte 0x62
-
- .align 1
-DecorGfx_C_LOW_NOTE_MAT: @ 83EB5BE
- .2byte 0x78
-
- .align 1
-DecorGfx_D_NOTE_MAT: @ 83EB5C0
- .2byte 0x79
-
- .align 1
-DecorGfx_E_NOTE_MAT: @ 83EB5C2
- .2byte 0x7A
-
- .align 1
-DecorGfx_F_NOTE_MAT: @ 83EB5C4
- .2byte 0x7B
-
- .align 1
-DecorGfx_G_NOTE_MAT: @ 83EB5C6
- .2byte 0x7C
-
- .align 1
-DecorGfx_A_NOTE_MAT: @ 83EB5C8
- .2byte 0x7D
-
- .align 1
-DecorGfx_B_NOTE_MAT: @ 83EB5CA
- .2byte 0x7E
-
- .align 1
-DecorGfx_C_HIGH_NOTE_MAT: @ 83EB5CC
- .2byte 0xB3
-
- .align 1
-DecorGfx_SURF_MAT: @ 83EB5CE
- .2byte 0x42
- .2byte 0x43
- .2byte 0x44
- .2byte 0x4A
- .2byte 0x4B
- .2byte 0x4C
- .2byte 0x52
- .2byte 0x53
- .2byte 0x54
-
- .align 1
-DecorGfx_THUNDER_MAT: @ 83EB5E0
- .2byte 0x45
- .2byte 0x46
- .2byte 0x47
- .2byte 0x4D
- .2byte 0x4E
- .2byte 0x4F
- .2byte 0x55
- .2byte 0x56
- .2byte 0x57
-
- .align 1
-DecorGfx_FIRE_BLAST_MAT: @ 83EB5F2
- .2byte 0x5A
- .2byte 0x5B
- .2byte 0x5C
- .2byte 0x5D
- .2byte 0x5E
- .2byte 0x5F
- .2byte 0x65
- .2byte 0x66
- .2byte 0x67
-
- .align 1
-DecorGfx_POWDER_SNOW_MAT: @ 83EB604
- .2byte 0x100
- .2byte 0x101
- .2byte 0x102
- .2byte 0x108
- .2byte 0x109
- .2byte 0x10A
- .2byte 0x110
- .2byte 0x111
- .2byte 0x112
-
- .align 1
-DecorGfx_ATTRACT_MAT: @ 83EB616
- .2byte 0x103
- .2byte 0x104
- .2byte 0x105
- .2byte 0x10B
- .2byte 0x10C
- .2byte 0x10D
- .2byte 0x113
- .2byte 0x114
- .2byte 0x115
-
- .align 1
-DecorGfx_FISSURE_MAT: @ 83EB628
- .2byte 0x106
- .2byte 0x107
- .2byte 0x118
- .2byte 0x10E
- .2byte 0x10F
- .2byte 0x120
- .2byte 0x116
- .2byte 0x117
- .2byte 0x128
-
- .align 1
-DecorGfx_SPIKES_MAT: @ 83EB63A
- .2byte 0x119
- .2byte 0x11A
- .2byte 0x11B
- .2byte 0x121
- .2byte 0x122
- .2byte 0x123
- .2byte 0x129
- .2byte 0x12A
- .2byte 0x12B
-
- .align 1
-DecorGfx_BALL_POSTER: @ 83EB64C
- .2byte 0x130
-
- .align 1
-DecorGfx_GREEN_POSTER: @ 83EB64E
- .2byte 0x131
-
- .align 1
-DecorGfx_RED_POSTER: @ 83EB650
- .2byte 0x132
-
- .align 1
-DecorGfx_BLUE_POSTER: @ 83EB652
- .2byte 0x133
-
- .align 1
-DecorGfx_CUTE_POSTER: @ 83EB654
- .2byte 0x134
-
- .align 1
-DecorGfx_PIKA_POSTER: @ 83EB656
- .2byte 0x11C
- .2byte 0x11D
-
- .align 1
-DecorGfx_LONG_POSTER: @ 83EB65A
- .2byte 0x11E
- .2byte 0x11F
-
- .align 1
-DecorGfx_SEA_POSTER: @ 83EB65E
- .2byte 0x124
- .2byte 0x125
-
- .align 1
-DecorGfx_SKY_POSTER: @ 83EB662
- .2byte 0x126
- .2byte 0x127
-
- .align 1
-DecorGfx_KISS_POSTER: @ 83EB666
- .2byte 0x12C
- .2byte 0x12D
-
- .align 1
-DecorGfx_PICHU_DOLL: @ 83EB66A
- .2byte MAP_OBJ_GFX_PICHU_DOLL
-
- .align 1
-DecorGfx_PIKACHU_DOLL: @ 83EB66C
- .2byte MAP_OBJ_GFX_PIKACHU_DOLL
-
- .align 1
-DecorGfx_MARILL_DOLL: @ 83EB66E
- .2byte MAP_OBJ_GFX_MARILL_DOLL
-
- .align 1
-DecorGfx_TOGEPI_DOLL: @ 83EB670
- .2byte MAP_OBJ_GFX_TOGEPI_DOLL
-
- .align 1
-DecorGfx_CYNDAQUIL_DOLL: @ 83EB672
- .2byte MAP_OBJ_GFX_CYNDAQUIL_DOLL
-
- .align 1
-DecorGfx_CHIKORITA_DOLL: @ 83EB674
- .2byte MAP_OBJ_GFX_CHIKORITA_DOLL
-
- .align 1
-DecorGfx_TOTODILE_DOLL: @ 83EB676
- .2byte MAP_OBJ_GFX_TOTODILE_DOLL
-
- .align 1
-DecorGfx_JIGGLYPUFF_DOLL: @ 83EB678
- .2byte MAP_OBJ_GFX_JIGGLYPUFF_DOLL
-
- .align 1
-DecorGfx_MEOWTH_DOLL: @ 83EB67A
- .2byte MAP_OBJ_GFX_MEOWTH_DOLL
-
- .align 1
-DecorGfx_CLEFAIRY_DOLL: @ 83EB67C
- .2byte MAP_OBJ_GFX_CLEFAIRY_DOLL
-
- .align 1
-DecorGfx_DITTO_DOLL: @ 83EB67E
- .2byte MAP_OBJ_GFX_DITTO_DOLL
-
- .align 1
-DecorGfx_SMOOCHUM_DOLL: @ 83EB680
- .2byte MAP_OBJ_GFX_SMOOCHUM_DOLL
-
- .align 1
-DecorGfx_TREECKO_DOLL: @ 83EB682
- .2byte MAP_OBJ_GFX_TREECKO_DOLL
-
- .align 1
-DecorGfx_TORCHIC_DOLL: @ 83EB684
- .2byte MAP_OBJ_GFX_TORCHIC_DOLL
-
- .align 1
-DecorGfx_MUDKIP_DOLL: @ 83EB686
- .2byte MAP_OBJ_GFX_MUDKIP_DOLL
-
- .align 1
-DecorGfx_DUSKULL_DOLL: @ 83EB688
- .2byte MAP_OBJ_GFX_DUSKULL_DOLL
-
- .align 1
-DecorGfx_WYNAUT_DOLL: @ 83EB68A
- .2byte MAP_OBJ_GFX_WYNAUT_DOLL
-
- .align 1
-DecorGfx_BALTOY_DOLL: @ 83EB68C
- .2byte MAP_OBJ_GFX_BALTOY_DOLL
-
- .align 1
-DecorGfx_KECLEON_DOLL: @ 83EB68E
- .2byte MAP_OBJ_GFX_KECLEON_DOLL
-
- .align 1
-DecorGfx_AZURILL_DOLL: @ 83EB690
- .2byte MAP_OBJ_GFX_AZURILL_DOLL
-
- .align 1
-DecorGfx_SKITTY_DOLL: @ 83EB692
- .2byte MAP_OBJ_GFX_SKITTY_DOLL
-
- .align 1
-DecorGfx_SWABLU_DOLL: @ 83EB694
- .2byte MAP_OBJ_GFX_SWABLU_DOLL
-
- .align 1
-DecorGfx_GULPIN_DOLL: @ 83EB696
- .2byte MAP_OBJ_GFX_GULPIN_DOLL
-
- .align 1
-DecorGfx_LOTAD_DOLL: @ 83EB698
- .2byte MAP_OBJ_GFX_LOTAD_DOLL
-
- .align 1
-DecorGfx_SEEDOT_DOLL: @ 83EB69A
- .2byte MAP_OBJ_GFX_SEEDOT_DOLL
-
- .align 1
-DecorGfx_PIKA_CUSHION: @ 83EB69C
- .2byte MAP_OBJ_GFX_PIKA_CUSHION
-
- .align 1
-DecorGfx_ROUND_CUSHION: @ 83EB69E
- .2byte MAP_OBJ_GFX_ROUND_CUSHION
-
- .align 1
-DecorGfx_KISS_CUSHION: @ 83EB6A0
- .2byte MAP_OBJ_GFX_KISS_CUSHION
-
- .align 1
-DecorGfx_ZIGZAG_CUSHION: @ 83EB6A2
- .2byte MAP_OBJ_GFX_ZIGZAG_CUSHION
-
- .align 1
-DecorGfx_SPIN_CUSHION: @ 83EB6A4
- .2byte MAP_OBJ_GFX_SPIN_CUSHION
-
- .align 1
-DecorGfx_DIAMOND_CUSHION: @ 83EB6A6
- .2byte MAP_OBJ_GFX_DIAMOND_CUSHION
-
- .align 1
-DecorGfx_BALL_CUSHION: @ 83EB6A8
- .2byte MAP_OBJ_GFX_BALL_CUSHION
-
- .align 1
-DecorGfx_GRASS_CUSHION: @ 83EB6AA
- .2byte MAP_OBJ_GFX_GRASS_CUSHION
-
- .align 1
-DecorGfx_FIRE_CUSHION: @ 83EB6AC
- .2byte MAP_OBJ_GFX_FIRE_CUSHION
-
- .align 1
-DecorGfx_WATER_CUSHION: @ 83EB6AE
- .2byte MAP_OBJ_GFX_WATER_CUSHION
-
- .align 1
-DecorGfx_SNORLAX_DOLL: @ 83EB6B0
- .2byte MAP_OBJ_GFX_BIG_SNORLAX_DOLL
-
- .align 1
-DecorGfx_RHYDON_DOLL: @ 83EB6B2
- .2byte MAP_OBJ_GFX_BIG_RHYDON_DOLL
-
- .align 1
-DecorGfx_LAPRAS_DOLL: @ 83EB6B4
- .2byte MAP_OBJ_GFX_BIG_LAPRAS_DOLL
-
- .align 1
-DecorGfx_VENUSAUR_DOLL: @ 83EB6B6
- .2byte MAP_OBJ_GFX_BIG_VENUSAUR_DOLL
-
- .align 1
-DecorGfx_CHARIZARD_DOLL: @ 83EB6B8
- .2byte MAP_OBJ_GFX_BIG_CHARIZARD_DOLL
-
- .align 1
-DecorGfx_BLASTOISE_DOLL: @ 83EB6BA
- .2byte MAP_OBJ_GFX_BIG_BLASTOISE_DOLL
-
- .align 1
-DecorGfx_WAILMER_DOLL: @ 83EB6BC
- .2byte MAP_OBJ_GFX_BIG_WAILMER_DOLL
-
- .align 1
-DecorGfx_REGIROCK_DOLL: @ 83EB6BE
- .2byte MAP_OBJ_GFX_BIG_REGIROCK_DOLL
-
- .align 1
-DecorGfx_REGICE_DOLL: @ 83EB6C0
- .2byte MAP_OBJ_GFX_BIG_REGICE_DOLL
-
- .align 1
-DecorGfx_REGISTEEL_DOLL: @ 83EB6C2
- .2byte MAP_OBJ_GFX_BIG_REGISTEEL_DOLL
-
- .align 2
-gDecorations:: @ 83EB6C4
- .byte DECOR_NONE
- .string "SMALL DESK$", 16
- .byte 0
- .byte 0
- .byte 0
- .2byte 0
- .space 2
- .4byte DecorDesc_SMALL_DESK
- .4byte DecorGfx_SMALL_DESK
-
- .byte DECOR_SMALL_DESK
- .string "SMALL DESK$", 16
- .byte 0
- .byte 0
- .byte 0
- .2byte 3000
- .space 2
- .4byte DecorDesc_SMALL_DESK
- .4byte DecorGfx_SMALL_DESK
-
- .byte DECOR_POKEMON_DESK
- .string "POKéMON DESK$", 16
- .byte 0
- .byte 0
- .byte 0
- .2byte 3000
- .space 2
- .4byte DecorDesc_POKEMON_DESK
- .4byte DecorGfx_POKEMON_DESK
-
- .byte DECOR_HEAVY_DESK
- .string "HEAVY DESK$", 16
- .byte 0
- .byte 9
- .byte 0
- .2byte 6000
- .space 2
- .4byte DecorDesc_HEAVY_DESK
- .4byte DecorGfx_HEAVY_DESK
-
- .byte DECOR_RAGGED_DESK
- .string "RAGGED DESK$", 16
- .byte 0
- .byte 9
- .byte 0
- .2byte 6000
- .space 2
- .4byte DecorDesc_RAGGED_DESK
- .4byte DecorGfx_RAGGED_DESK
-
- .byte DECOR_COMFORT_DESK
- .string "COMFORT DESK$", 16
- .byte 0
- .byte 9
- .byte 0
- .2byte 6000
- .space 2
- .4byte DecorDesc_COMFORT_DESK
- .4byte DecorGfx_COMFORT_DESK
-
- .byte DECOR_PRETTY_DESK
- .string "PRETTY DESK$", 16
- .byte 0
- .byte 8
- .byte 0
- .2byte 9000
- .space 2
- .4byte DecorDesc_PRETTY_DESK
- .4byte DecorGfx_PRETTY_DESK
-
- .byte DECOR_BRICK_DESK
- .string "BRICK DESK$", 16
- .byte 0
- .byte 8
- .byte 0
- .2byte 9000
- .space 2
- .4byte DecorDesc_BRICK_DESK
- .4byte DecorGfx_BRICK_DESK
-
- .byte DECOR_CAMP_DESK
- .string "CAMP DESK$", 16
- .byte 0
- .byte 8
- .byte 0
- .2byte 9000
- .space 2
- .4byte DecorDesc_CAMP_DESK
- .4byte DecorGfx_CAMP_DESK
-
- .byte DECOR_HARD_DESK
- .string "HARD DESK$", 16
- .byte 0
- .byte 8
- .byte 0
- .2byte 9000
- .space 2
- .4byte DecorDesc_HARD_DESK
- .4byte DecorGfx_HARD_DESK
-
- .byte DECOR_SMALL_CHAIR
- .string "SMALL CHAIR$", 16
- .byte 1
- .byte 0
- .byte 1
- .2byte 2000
- .space 2
- .4byte DecorDesc_SMALL_CHAIR
- .4byte DecorGfx_SMALL_CHAIR
-
- .byte DECOR_POKEMON_CHAIR
- .string "POKéMON CHAIR$", 16
- .byte 1
- .byte 0
- .byte 1
- .2byte 2000
- .space 2
- .4byte DecorDesc_POKEMON_CHAIR
- .4byte DecorGfx_POKEMON_CHAIR
-
- .byte DECOR_HEAVY_CHAIR
- .string "HEAVY CHAIR$", 16
- .byte 1
- .byte 0
- .byte 1
- .2byte 2000
- .space 2
- .4byte DecorDesc_HEAVY_CHAIR
- .4byte DecorGfx_HEAVY_CHAIR
-
- .byte DECOR_PRETTY_CHAIR
- .string "PRETTY CHAIR$", 16
- .byte 1
- .byte 0
- .byte 1
- .2byte 2000
- .space 2
- .4byte DecorDesc_PRETTY_CHAIR
- .4byte DecorGfx_PRETTY_CHAIR
-
- .byte DECOR_COMFORT_CHAIR
- .string "COMFORT CHAIR$", 16
- .byte 1
- .byte 0
- .byte 1
- .2byte 2000
- .space 2
- .4byte DecorDesc_COMFORT_CHAIR
- .4byte DecorGfx_COMFORT_CHAIR
-
- .byte DECOR_RAGGED_CHAIR
- .string "RAGGED CHAIR$", 16
- .byte 1
- .byte 0
- .byte 1
- .2byte 2000
- .space 2
- .4byte DecorDesc_RAGGED_CHAIR
- .4byte DecorGfx_RAGGED_CHAIR
-
- .byte DECOR_BRICK_CHAIR
- .string "BRICK CHAIR$", 16
- .byte 1
- .byte 0
- .byte 1
- .2byte 2000
- .space 2
- .4byte DecorDesc_BRICK_CHAIR
- .4byte DecorGfx_BRICK_CHAIR
-
- .byte DECOR_CAMP_CHAIR
- .string "CAMP CHAIR$", 16
- .byte 1
- .byte 0
- .byte 1
- .2byte 2000
- .space 2
- .4byte DecorDesc_CAMP_CHAIR
- .4byte DecorGfx_CAMP_CHAIR
-
- .byte DECOR_HARD_CHAIR
- .string "HARD CHAIR$", 16
- .byte 1
- .byte 0
- .byte 1
- .2byte 2000
- .space 2
- .4byte DecorDesc_HARD_CHAIR
- .4byte DecorGfx_HARD_CHAIR
-
- .byte DECOR_RED_PLANT
- .string "RED PLANT$", 16
- .byte 2
- .byte 5
- .byte 2
- .2byte 3000
- .space 2
- .4byte DecorDesc_RED_PLANT
- .4byte DecorGfx_RED_PLANT
-
- .byte DECOR_TROPICAL_PLANT
- .string "TROPICAL PLANT$", 16
- .byte 2
- .byte 5
- .byte 2
- .2byte 3000
- .space 2
- .4byte DecorDesc_TROPICAL_PLANT
- .4byte DecorGfx_TROPICAL_PLANT
-
- .byte DECOR_PRETTY_FLOWERS
- .string "PRETTY FLOWERS$", 16
- .byte 2
- .byte 5
- .byte 2
- .2byte 3000
- .space 2
- .4byte DecorDesc_PRETTY_FLOWERS
- .4byte DecorGfx_PRETTY_FLOWERS
-
- .byte DECOR_COLORFUL_PLANT
- .string "COLORFUL PLANT$", 16
- .byte 2
- .byte 4
- .byte 2
- .2byte 5000
- .space 2
- .4byte DecorDesc_COLORFUL_PLANT
- .4byte DecorGfx_COLORFUL_PLANT
-
- .byte DECOR_BIG_PLANT
- .string "BIG PLANT$", 16
- .byte 2
- .byte 4
- .byte 2
- .2byte 5000
- .space 2
- .4byte DecorDesc_BIG_PLANT
- .4byte DecorGfx_BIG_PLANT
-
- .byte DECOR_GORGEOUS_PLANT
- .string "GORGEOUS PLANT$", 16
- .byte 2
- .byte 4
- .byte 2
- .2byte 5000
- .space 2
- .4byte DecorDesc_GORGEOUS_PLANT
- .4byte DecorGfx_GORGEOUS_PLANT
-
- .byte DECOR_RED_BRICK
- .string "RED BRICK$", 16
- .byte 0
- .byte 5
- .byte 3
- .2byte 500
- .space 2
- .4byte DecorDesc_RED_BRICK
- .4byte DecorGfx_RED_BRICK
-
- .byte DECOR_YELLOW_BRICK
- .string "YELLOW BRICK$", 16
- .byte 0
- .byte 5
- .byte 3
- .2byte 500
- .space 2
- .4byte DecorDesc_YELLOW_BRICK
- .4byte DecorGfx_YELLOW_BRICK
-
- .byte DECOR_BLUE_BRICK
- .string "BLUE BRICK$", 16
- .byte 0
- .byte 5
- .byte 3
- .2byte 500
- .space 2
- .4byte DecorDesc_BLUE_BRICK
- .4byte DecorGfx_BLUE_BRICK
-
- .byte DECOR_RED_BALLOON
- .string "RED BALLOON$", 16
- .byte 1
- .byte 0
- .byte 3
- .2byte 500
- .space 2
- .4byte DecorDesc_RED_BALLOON
- .4byte DecorGfx_RED_BALLOON
-
- .byte DECOR_BLUE_BALLOON
- .string "BLUE BALLOON$", 16
- .byte 1
- .byte 0
- .byte 3
- .2byte 500
- .space 2
- .4byte DecorDesc_BLUE_BALLOON
- .4byte DecorGfx_BLUE_BALLOON
-
- .byte DECOR_YELLOW_BALLOON
- .string "YELLOW BALLOON$", 16
- .byte 1
- .byte 0
- .byte 3
- .2byte 500
- .space 2
- .4byte DecorDesc_YELLOW_BALLOON
- .4byte DecorGfx_YELLOW_BALLOON
-
- .byte DECOR_RED_TENT
- .string "RED TENT$", 16
- .byte 1
- .byte 8
- .byte 3
- .2byte 10000
- .space 2
- .4byte DecorDesc_RED_TENT
- .4byte DecorGfx_RED_TENT
-
- .byte DECOR_BLUE_TENT
- .string "BLUE TENT$", 16
- .byte 1
- .byte 8
- .byte 3
- .2byte 10000
- .space 2
- .4byte DecorDesc_BLUE_TENT
- .4byte DecorGfx_BLUE_TENT
-
- .byte DECOR_SOLID_BOARD
- .string "SOLID BOARD$", 16
- .byte 1
- .byte 5
- .byte 3
- .2byte 3000
- .space 2
- .4byte DecorDesc_SOLID_BOARD
- .4byte DecorGfx_SOLID_BOARD
-
- .byte DECOR_SLIDE
- .string "SLIDE$", 16
- .byte 1
- .byte 7
- .byte 3
- .2byte 8000
- .space 2
- .4byte DecorDesc_SLIDE
- .4byte DecorGfx_SLIDE
-
- .byte DECOR_FENCE_LENGTH
- .string "FENCE LENGTH$", 16
- .byte 0
- .byte 0
- .byte 3
- .2byte 500
- .space 2
- .4byte DecorDesc_FENCE_LENGTH
- .4byte DecorGfx_FENCE_LENGTH
-
- .byte DECOR_FENCE_WIDTH
- .string "FENCE WIDTH$", 16
- .byte 0
- .byte 0
- .byte 3
- .2byte 500
- .space 2
- .4byte DecorDesc_FENCE_WIDTH
- .4byte DecorGfx_FENCE_WIDTH
-
- .byte DECOR_TIRE
- .string "TIRE$", 16
- .byte 0
- .byte 4
- .byte 3
- .2byte 800
- .space 2
- .4byte DecorDesc_TIRE
- .4byte DecorGfx_TIRE
-
- .byte DECOR_STAND
- .string "STAND$", 16
- .byte 1
- .byte 3
- .byte 3
- .2byte 7000
- .space 2
- .4byte DecorDesc_STAND
- .4byte DecorGfx_STAND
-
- .byte DECOR_MUD_BALL
- .string "MUD BALL$", 16
- .byte 1
- .byte 0
- .byte 3
- .2byte 200
- .space 2
- .4byte DecorDesc_MUD_BALL
- .4byte DecorGfx_MUD_BALL
-
- .byte DECOR_BREAKABLE_DOOR
- .string "BREAKABLE DOOR$", 16
- .byte 1
- .byte 5
- .byte 3
- .2byte 3000
- .space 2
- .4byte DecorDesc_BREAKABLE_DOOR
- .4byte DecorGfx_BREAKABLE_DOOR
-
- .byte DECOR_SAND_ORNAMENT
- .string "SAND ORNAMENT$", 16
- .byte 2
- .byte 5
- .byte 3
- .2byte 3000
- .space 2
- .4byte DecorDesc_SAND_ORNAMENT
- .4byte DecorGfx_SAND_ORNAMENT
-
- .byte DECOR_SILVER_SHIELD
- .string "SILVER SHIELD$", 16
- .byte 2
- .byte 5
- .byte 3
- .2byte 0
- .space 2
- .4byte DecorDesc_SILVER_SHIELD
- .4byte DecorGfx_SILVER_SHIELD
-
- .byte DECOR_GOLD_SHIELD
- .string "GOLD SHIELD$", 16
- .byte 2
- .byte 5
- .byte 3
- .2byte 0
- .space 2
- .4byte DecorDesc_GOLD_SHIELD
- .4byte DecorGfx_GOLD_SHIELD
-
- .byte DECOR_GLASS_ORNAMENT
- .string "GLASS ORNAMENT$", 16
- .byte 2
- .byte 5
- .byte 3
- .2byte 0
- .space 2
- .4byte DecorDesc_GLASS_ORNAMENT
- .4byte DecorGfx_GLASS_ORNAMENT
-
- .byte DECOR_TV
- .string "TV$", 16
- .byte 0
- .byte 0
- .byte 3
- .2byte 3000
- .space 2
- .4byte DecorDesc_TV
- .4byte DecorGfx_TV
-
- .byte DECOR_ROUND_TV
- .string "ROUND TV$", 16
- .byte 0
- .byte 0
- .byte 3
- .2byte 4000
- .space 2
- .4byte DecorDesc_ROUND_TV
- .4byte DecorGfx_ROUND_TV
-
- .byte DECOR_CUTE_TV
- .string "CUTE TV$", 16
- .byte 0
- .byte 0
- .byte 3
- .2byte 4000
- .space 2
- .4byte DecorDesc_CUTE_TV
- .4byte DecorGfx_CUTE_TV
-
- .byte DECOR_GLITTER_MAT
- .string "GLITTER MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 2000
- .space 2
- .4byte DecorDesc_GLITTER_MAT
- .4byte DecorGfx_GLITTER_MAT
-
- .byte DECOR_JUMP_MAT
- .string "JUMP MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 2000
- .space 2
- .4byte DecorDesc_JUMP_MAT
- .4byte DecorGfx_JUMP_MAT
-
- .byte DECOR_SPIN_MAT
- .string "SPIN MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 2000
- .space 2
- .4byte DecorDesc_SPIN_MAT
- .4byte DecorGfx_SPIN_MAT
-
- .byte DECOR_C_LOW_NOTE_MAT
- .string "C Low NOTE MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 500
- .space 2
- .4byte DecorDesc_C_LOW_NOTE_MAT
- .4byte DecorGfx_C_LOW_NOTE_MAT
-
- .byte DECOR_D_NOTE_MAT
- .string "D NOTE MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 500
- .space 2
- .4byte DecorDesc_D_NOTE_MAT
- .4byte DecorGfx_D_NOTE_MAT
-
- .byte DECOR_E_NOTE_MAT
- .string "E NOTE MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 500
- .space 2
- .4byte DecorDesc_E_NOTE_MAT
- .4byte DecorGfx_E_NOTE_MAT
-
- .byte DECOR_F_NOTE_MAT
- .string "F NOTE MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 500
- .space 2
- .4byte DecorDesc_F_NOTE_MAT
- .4byte DecorGfx_F_NOTE_MAT
-
- .byte DECOR_G_NOTE_MAT
- .string "G NOTE MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 500
- .space 2
- .4byte DecorDesc_G_NOTE_MAT
- .4byte DecorGfx_G_NOTE_MAT
-
- .byte DECOR_A_NOTE_MAT
- .string "A NOTE MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 500
- .space 2
- .4byte DecorDesc_A_NOTE_MAT
- .4byte DecorGfx_A_NOTE_MAT
-
- .byte DECOR_B_NOTE_MAT
- .string "B NOTE MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 500
- .space 2
- .4byte DecorDesc_B_NOTE_MAT
- .4byte DecorGfx_B_NOTE_MAT
-
- .byte DECOR_C_HIGH_NOTE_MAT
- .string "C High NOTE MAT$", 16
- .byte 1
- .byte 0
- .byte 4
- .2byte 500
- .space 2
- .4byte DecorDesc_C_HIGH_NOTE_MAT
- .4byte DecorGfx_C_HIGH_NOTE_MAT
-
- .byte DECOR_SURF_MAT
- .string "SURF MAT$", 16
- .byte 1
- .byte 8
- .byte 4
- .2byte 4000
- .space 2
- .4byte DecorDesc_SURF_MAT
- .4byte DecorGfx_SURF_MAT
-
- .byte DECOR_THUNDER_MAT
- .string "THUNDER MAT$", 16
- .byte 1
- .byte 8
- .byte 4
- .2byte 4000
- .space 2
- .4byte DecorDesc_THUNDER_MAT
- .4byte DecorGfx_THUNDER_MAT
-
- .byte DECOR_FIRE_BLAST_MAT
- .string "FIRE BLAST MAT$", 16
- .byte 1
- .byte 8
- .byte 4
- .2byte 4000
- .space 2
- .4byte DecorDesc_FIRE_BLAST_MAT
- .4byte DecorGfx_FIRE_BLAST_MAT
-
- .byte DECOR_POWDER_SNOW_MAT
- .string "POWDER SNOW MAT$", 16
- .byte 1
- .byte 8
- .byte 4
- .2byte 4000
- .space 2
- .4byte DecorDesc_POWDER_SNOW_MAT
- .4byte DecorGfx_POWDER_SNOW_MAT
-
- .byte DECOR_ATTRACT_MAT
- .string "ATTRACT MAT$", 16
- .byte 1
- .byte 8
- .byte 4
- .2byte 4000
- .space 2
- .4byte DecorDesc_ATTRACT_MAT
- .4byte DecorGfx_ATTRACT_MAT
-
- .byte DECOR_FISSURE_MAT
- .string "FISSURE MAT$", 16
- .byte 1
- .byte 8
- .byte 4
- .2byte 4000
- .space 2
- .4byte DecorDesc_FISSURE_MAT
- .4byte DecorGfx_FISSURE_MAT
-
- .byte DECOR_SPIKES_MAT
- .string "SPIKES MAT$", 16
- .byte 1
- .byte 8
- .byte 4
- .2byte 4000
- .space 2
- .4byte DecorDesc_SPIKES_MAT
- .4byte DecorGfx_SPIKES_MAT
-
- .byte DECOR_BALL_POSTER
- .string "BALL POSTER$", 16
- .byte 3
- .byte 0
- .byte 5
- .2byte 1000
- .space 2
- .4byte DecorDesc_BALL_POSTER
- .4byte DecorGfx_BALL_POSTER
-
- .byte DECOR_GREEN_POSTER
- .string "GREEN POSTER$", 16
- .byte 3
- .byte 0
- .byte 5
- .2byte 1000
- .space 2
- .4byte DecorDesc_GREEN_POSTER
- .4byte DecorGfx_GREEN_POSTER
-
- .byte DECOR_RED_POSTER
- .string "RED POSTER$", 16
- .byte 3
- .byte 0
- .byte 5
- .2byte 1000
- .space 2
- .4byte DecorDesc_RED_POSTER
- .4byte DecorGfx_RED_POSTER
-
- .byte DECOR_BLUE_POSTER
- .string "BLUE POSTER$", 16
- .byte 3
- .byte 0
- .byte 5
- .2byte 1000
- .space 2
- .4byte DecorDesc_BLUE_POSTER
- .4byte DecorGfx_BLUE_POSTER
-
- .byte DECOR_CUTE_POSTER
- .string "CUTE POSTER$", 16
- .byte 3
- .byte 0
- .byte 5
- .2byte 1000
- .space 2
- .4byte DecorDesc_CUTE_POSTER
- .4byte DecorGfx_CUTE_POSTER
-
- .byte DECOR_PIKA_POSTER
- .string "PIKA POSTER$", 16
- .byte 3
- .byte 1
- .byte 5
- .2byte 1500
- .space 2
- .4byte DecorDesc_PIKA_POSTER
- .4byte DecorGfx_PIKA_POSTER
-
- .byte DECOR_LONG_POSTER
- .string "LONG POSTER$", 16
- .byte 3
- .byte 1
- .byte 5
- .2byte 1500
- .space 2
- .4byte DecorDesc_LONG_POSTER
- .4byte DecorGfx_LONG_POSTER
-
- .byte DECOR_SEA_POSTER
- .string "SEA POSTER$", 16
- .byte 3
- .byte 1
- .byte 5
- .2byte 1500
- .space 2
- .4byte DecorDesc_SEA_POSTER
- .4byte DecorGfx_SEA_POSTER
-
- .byte DECOR_SKY_POSTER
- .string "SKY POSTER$", 16
- .byte 3
- .byte 1
- .byte 5
- .2byte 1500
- .space 2
- .4byte DecorDesc_SKY_POSTER
- .4byte DecorGfx_SKY_POSTER
-
- .byte DECOR_KISS_POSTER
- .string "KISS POSTER$", 16
- .byte 3
- .byte 1
- .byte 5
- .2byte 1500
- .space 2
- .4byte DecorDesc_KISS_POSTER
- .4byte DecorGfx_KISS_POSTER
-
- .byte DECOR_PICHU_DOLL
- .string "PICHU DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_PICHU_DOLL
- .4byte DecorGfx_PICHU_DOLL
-
- .byte DECOR_PIKACHU_DOLL
- .string "PIKACHU DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_PIKACHU_DOLL
- .4byte DecorGfx_PIKACHU_DOLL
-
- .byte DECOR_MARILL_DOLL
- .string "MARILL DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_MARILL_DOLL
- .4byte DecorGfx_MARILL_DOLL
-
- .byte DECOR_TOGEPI_DOLL
- .string "TOGEPI DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_TOGEPI_DOLL
- .4byte DecorGfx_TOGEPI_DOLL
-
- .byte DECOR_CYNDAQUIL_DOLL
- .string "CYNDAQUIL DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_CYNDAQUIL_DOLL
- .4byte DecorGfx_CYNDAQUIL_DOLL
-
- .byte DECOR_CHIKORITA_DOLL
- .string "CHIKORITA DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_CHIKORITA_DOLL
- .4byte DecorGfx_CHIKORITA_DOLL
-
- .byte DECOR_TOTODILE_DOLL
- .string "TOTODILE DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_TOTODILE_DOLL
- .4byte DecorGfx_TOTODILE_DOLL
-
- .byte DECOR_JIGGLYPUFF_DOLL
- .string "JIGGLYPUFF DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_JIGGLYPUFF_DOLL
- .4byte DecorGfx_JIGGLYPUFF_DOLL
-
- .byte DECOR_MEOWTH_DOLL
- .string "MEOWTH DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_MEOWTH_DOLL
- .4byte DecorGfx_MEOWTH_DOLL
-
- .byte DECOR_CLEFAIRY_DOLL
- .string "CLEFAIRY DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_CLEFAIRY_DOLL
- .4byte DecorGfx_CLEFAIRY_DOLL
-
- .byte DECOR_DITTO_DOLL
- .string "DITTO DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_DITTO_DOLL
- .4byte DecorGfx_DITTO_DOLL
-
- .byte DECOR_SMOOCHUM_DOLL
- .string "SMOOCHUM DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_SMOOCHUM_DOLL
- .4byte DecorGfx_SMOOCHUM_DOLL
-
- .byte DECOR_TREECKO_DOLL
- .string "TREECKO DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_TREECKO_DOLL
- .4byte DecorGfx_TREECKO_DOLL
-
- .byte DECOR_TORCHIC_DOLL
- .string "TORCHIC DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_TORCHIC_DOLL
- .4byte DecorGfx_TORCHIC_DOLL
-
- .byte DECOR_MUDKIP_DOLL
- .string "MUDKIP DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_MUDKIP_DOLL
- .4byte DecorGfx_MUDKIP_DOLL
-
- .byte DECOR_DUSKULL_DOLL
- .string "DUSKULL DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_DUSKULL_DOLL
- .4byte DecorGfx_DUSKULL_DOLL
-
- .byte DECOR_WYNAUT_DOLL
- .string "WYNAUT DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_WYNAUT_DOLL
- .4byte DecorGfx_WYNAUT_DOLL
-
- .byte DECOR_BALTOY_DOLL
- .string "BALTOY DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_BALTOY_DOLL
- .4byte DecorGfx_BALTOY_DOLL
-
- .byte DECOR_KECLEON_DOLL
- .string "KECLEON DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_KECLEON_DOLL
- .4byte DecorGfx_KECLEON_DOLL
-
- .byte DECOR_AZURILL_DOLL
- .string "AZURILL DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_AZURILL_DOLL
- .4byte DecorGfx_AZURILL_DOLL
-
- .byte DECOR_SKITTY_DOLL
- .string "SKITTY DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_SKITTY_DOLL
- .4byte DecorGfx_SKITTY_DOLL
-
- .byte DECOR_SWABLU_DOLL
- .string "SWABLU DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_SWABLU_DOLL
- .4byte DecorGfx_SWABLU_DOLL
-
- .byte DECOR_GULPIN_DOLL
- .string "GULPIN DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_GULPIN_DOLL
- .4byte DecorGfx_GULPIN_DOLL
-
- .byte DECOR_LOTAD_DOLL
- .string "LOTAD DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_LOTAD_DOLL
- .4byte DecorGfx_LOTAD_DOLL
-
- .byte DECOR_SEEDOT_DOLL
- .string "SEEDOT DOLL$", 16
- .byte 4
- .byte 0
- .byte 6
- .2byte 3000
- .space 2
- .4byte DecorDesc_SEEDOT_DOLL
- .4byte DecorGfx_SEEDOT_DOLL
-
- .byte DECOR_PIKA_CUSHION
- .string "PIKA CUSHION$", 16
- .byte 4
- .byte 0
- .byte 7
- .2byte 2000
- .space 2
- .4byte DecorDesc_PIKA_CUSHION
- .4byte DecorGfx_PIKA_CUSHION
-
- .byte DECOR_ROUND_CUSHION
- .string "ROUND CUSHION$", 16
- .byte 4
- .byte 0
- .byte 7
- .2byte 2000
- .space 2
- .4byte DecorDesc_ROUND_CUSHION
- .4byte DecorGfx_ROUND_CUSHION
-
- .byte DECOR_KISS_CUSHION
- .string "KISS CUSHION$", 16
- .byte 4
- .byte 0
- .byte 7
- .2byte 2000
- .space 2
- .4byte DecorDesc_KISS_CUSHION
- .4byte DecorGfx_KISS_CUSHION
-
- .byte DECOR_ZIGZAG_CUSHION
- .string "ZIGZAG CUSHION$", 16
- .byte 4
- .byte 0
- .byte 7
- .2byte 2000
- .space 2
- .4byte DecorDesc_ZIGZAG_CUSHION
- .4byte DecorGfx_ZIGZAG_CUSHION
-
- .byte DECOR_SPIN_CUSHION
- .string "SPIN CUSHION$", 16
- .byte 4
- .byte 0
- .byte 7
- .2byte 2000
- .space 2
- .4byte DecorDesc_SPIN_CUSHION
- .4byte DecorGfx_SPIN_CUSHION
-
- .byte DECOR_DIAMOND_CUSHION
- .string "DIAMOND CUSHION$", 16
- .byte 4
- .byte 0
- .byte 7
- .2byte 2000
- .space 2
- .4byte DecorDesc_DIAMOND_CUSHION
- .4byte DecorGfx_DIAMOND_CUSHION
-
- .byte DECOR_BALL_CUSHION
- .string "BALL CUSHION$", 16
- .byte 4
- .byte 0
- .byte 7
- .2byte 2000
- .space 2
- .4byte DecorDesc_BALL_CUSHION
- .4byte DecorGfx_BALL_CUSHION
-
- .byte DECOR_GRASS_CUSHION
- .string "GRASS CUSHION$", 16
- .byte 4
- .byte 0
- .byte 7
- .2byte 2000
- .space 2
- .4byte DecorDesc_GRASS_CUSHION
- .4byte DecorGfx_GRASS_CUSHION
-
- .byte DECOR_FIRE_CUSHION
- .string "FIRE CUSHION$", 16
- .byte 4
- .byte 0
- .byte 7
- .2byte 2000
- .space 2
- .4byte DecorDesc_FIRE_CUSHION
- .4byte DecorGfx_FIRE_CUSHION
-
- .byte DECOR_WATER_CUSHION
- .string "WATER CUSHION$", 16
- .byte 4
- .byte 0
- .byte 7
- .2byte 2000
- .space 2
- .4byte DecorDesc_WATER_CUSHION
- .4byte DecorGfx_WATER_CUSHION
-
- .byte DECOR_SNORLAX_DOLL
- .string "SNORLAX DOLL$", 16
- .byte 4
- .byte 5
- .byte 6
- .2byte 10000
- .space 2
- .4byte DecorDesc_SNORLAX_DOLL
- .4byte DecorGfx_SNORLAX_DOLL
-
- .byte DECOR_RHYDON_DOLL
- .string "RHYDON DOLL$", 16
- .byte 4
- .byte 5
- .byte 6
- .2byte 10000
- .space 2
- .4byte DecorDesc_RHYDON_DOLL
- .4byte DecorGfx_RHYDON_DOLL
-
- .byte DECOR_LAPRAS_DOLL
- .string "LAPRAS DOLL$", 16
- .byte 4
- .byte 5
- .byte 6
- .2byte 10000
- .space 2
- .4byte DecorDesc_LAPRAS_DOLL
- .4byte DecorGfx_LAPRAS_DOLL
-
- .byte DECOR_VENUSAUR_DOLL
- .string "VENUSAUR DOLL$", 16
- .byte 4
- .byte 5
- .byte 6
- .2byte 10000
- .space 2
- .4byte DecorDesc_VENUSAUR_DOLL
- .4byte DecorGfx_VENUSAUR_DOLL
-
- .byte DECOR_CHARIZARD_DOLL
- .string "CHARIZARD DOLL$", 16
- .byte 4
- .byte 5
- .byte 6
- .2byte 10000
- .space 2
- .4byte DecorDesc_CHARIZARD_DOLL
- .4byte DecorGfx_CHARIZARD_DOLL
-
- .byte DECOR_BLASTOISE_DOLL
- .string "BLASTOISE DOLL$", 16
- .byte 4
- .byte 5
- .byte 6
- .2byte 10000
- .space 2
- .4byte DecorDesc_BLASTOISE_DOLL
- .4byte DecorGfx_BLASTOISE_DOLL
-
- .byte DECOR_WAILMER_DOLL
- .string "WAILMER DOLL$", 16
- .byte 4
- .byte 5
- .byte 6
- .2byte 10000
- .space 2
- .4byte DecorDesc_WAILMER_DOLL
- .4byte DecorGfx_WAILMER_DOLL
-
- .byte DECOR_REGIROCK_DOLL
- .string "REGIROCK DOLL$", 16
- .byte 4
- .byte 5
- .byte 6
- .2byte 10000
- .space 2
- .4byte DecorDesc_REGIROCK_DOLL
- .4byte DecorGfx_REGIROCK_DOLL
-
- .byte DECOR_REGICE_DOLL
- .string "REGICE DOLL$", 16
- .byte 4
- .byte 5
- .byte 6
- .2byte 10000
- .space 2
- .4byte DecorDesc_REGICE_DOLL
- .4byte DecorGfx_REGICE_DOLL
-
- .byte DECOR_REGISTEEL_DOLL
- .string "REGISTEEL DOLL$", 16
- .byte 4
- .byte 5
- .byte 6
- .2byte 10000
- .space 2
- .4byte DecorDesc_REGISTEEL_DOLL
- .4byte DecorGfx_REGISTEEL_DOLL
-
diff --git a/include/battle.h b/include/battle.h
index 9714c6add..47ddef71d 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -107,9 +107,9 @@ struct SmallItemStruct
struct BattleStruct /* 0x2000000 */
{
u8 filler0[0x15DDE];
- /*0x15DDE*/ u8 unk15DDE;
- /*0x15DDF*/ u8 unk15DDF;
- /*0x15DE0*/ u8 filler15DE0[0x23C]; // 0xAF off?
+ /*0x15DDE*/ u8 unk15DDE;
+ /*0x15DDF*/ u8 unk15DDF;
+ /*0x15DE0*/ u8 filler15DE0[0x23C]; // 0xAF off?
struct SmallBattleStruct1 unk;
u8 filler1[0x68];
/* 0x16089 */ u8 safariFleeRate;
@@ -148,27 +148,27 @@ extern struct AI_ThinkingStruct gAIThinkingSpace;
struct UnknownStruct11
{
- u8 unk0;
- u8 unk1;
- u8 unk2;
- u8 unk3;
- u8 unk4;
- u8 unk5_0:1;
- u8 unk5_1:1;
- u16 unk6;
- u8 unk8[10];
- u8 unk12;
- u8 unk13;
- u8 unk14[10];
- u8 filler1E[2];
- u16 unk20;
- u16 unk22;
- u16 unk24;
- u16 unk26;
- u16 unk28;
- u8 unk2A[10];
- u8 filler34[2];
- u8 unk36[10];
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ u8 unk5_0:1;
+ u8 unk5_1:1;
+ u16 unk6;
+ u8 unk8[10];
+ u8 unk12;
+ u8 unk13;
+ u8 unk14[10];
+ u8 filler1E[2];
+ u16 unk20;
+ u16 unk22;
+ u16 unk24;
+ u16 unk26;
+ u16 unk28;
+ u8 unk2A[10];
+ u8 filler34[2];
+ u8 unk36[10];
};
#endif // GUARD_BATTLE_H
diff --git a/include/contest_painting.h b/include/contest_painting.h
index a67748d02..5c1b065c2 100644
--- a/include/contest_painting.h
+++ b/include/contest_painting.h
@@ -8,10 +8,10 @@
enum
{
- NORMAL_RANK,
- SUPER_RANK,
- HYPER_RANK,
- MASTER_RANK,
+ NORMAL_RANK,
+ SUPER_RANK,
+ HYPER_RANK,
+ MASTER_RANK,
};
enum
diff --git a/include/decoration.h b/include/decoration.h
index d041a8007..01a00ee91 100644..100755
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -1,19 +1,376 @@
#ifndef GUARD_DECORATION_H
#define GUARD_DECORATION_H
+enum DecoId {
+ /*000*/ DECOR_NONE,
+ /*001*/ DECOR_SMALL_DESK,
+ /*002*/ DECOR_POKEMON_DESK,
+ /*003*/ DECOR_HEAVY_DESK,
+ /*004*/ DECOR_RAGGED_DESK,
+ /*005*/ DECOR_COMFORT_DESK,
+ /*006*/ DECOR_PRETTY_DESK,
+ /*007*/ DECOR_BRICK_DESK,
+ /*008*/ DECOR_CAMP_DESK,
+ /*009*/ DECOR_HARD_DESK,
+ /*010*/ DECOR_SMALL_CHAIR,
+ /*011*/ DECOR_POKEMON_CHAIR,
+ /*012*/ DECOR_HEAVY_CHAIR,
+ /*013*/ DECOR_PRETTY_CHAIR,
+ /*014*/ DECOR_COMFORT_CHAIR,
+ /*015*/ DECOR_RAGGED_CHAIR,
+ /*016*/ DECOR_BRICK_CHAIR,
+ /*017*/ DECOR_CAMP_CHAIR,
+ /*018*/ DECOR_HARD_CHAIR,
+ /*019*/ DECOR_RED_PLANT,
+ /*020*/ DECOR_TROPICAL_PLANT,
+ /*021*/ DECOR_PRETTY_FLOWERS,
+ /*022*/ DECOR_COLORFUL_PLANT,
+ /*023*/ DECOR_BIG_PLANT,
+ /*024*/ DECOR_GORGEOUS_PLANT,
+ /*025*/ DECOR_RED_BRICK,
+ /*026*/ DECOR_YELLOW_BRICK,
+ /*027*/ DECOR_BLUE_BRICK,
+ /*028*/ DECOR_RED_BALLOON,
+ /*029*/ DECOR_BLUE_BALLOON,
+ /*030*/ DECOR_YELLOW_BALLOON,
+ /*031*/ DECOR_RED_TENT,
+ /*032*/ DECOR_BLUE_TENT,
+ /*033*/ DECOR_SOLID_BOARD,
+ /*034*/ DECOR_SLIDE,
+ /*035*/ DECOR_FENCE_LENGTH,
+ /*036*/ DECOR_FENCE_WIDTH,
+ /*037*/ DECOR_TIRE,
+ /*038*/ DECOR_STAND,
+ /*039*/ DECOR_MUD_BALL,
+ /*040*/ DECOR_BREAKABLE_DOOR,
+ /*041*/ DECOR_SAND_ORNAMENT,
+ /*042*/ DECOR_SILVER_SHIELD,
+ /*043*/ DECOR_GOLD_SHIELD,
+ /*044*/ DECOR_GLASS_ORNAMENT,
+ /*045*/ DECOR_TV,
+ /*046*/ DECOR_ROUND_TV,
+ /*047*/ DECOR_CUTE_TV,
+ /*048*/ DECOR_GLITTER_MAT,
+ /*049*/ DECOR_JUMP_MAT,
+ /*050*/ DECOR_SPIN_MAT,
+ /*051*/ DECOR_C_LOW_NOTE_MAT,
+ /*052*/ DECOR_D_NOTE_MAT,
+ /*053*/ DECOR_E_NOTE_MAT,
+ /*054*/ DECOR_F_NOTE_MAT,
+ /*055*/ DECOR_G_NOTE_MAT,
+ /*056*/ DECOR_A_NOTE_MAT,
+ /*057*/ DECOR_B_NOTE_MAT,
+ /*058*/ DECOR_C_HIGH_NOTE_MAT,
+ /*059*/ DECOR_SURF_MAT,
+ /*060*/ DECOR_THUNDER_MAT,
+ /*061*/ DECOR_FIRE_BLAST_MAT,
+ /*062*/ DECOR_POWDER_SNOW_MAT,
+ /*063*/ DECOR_ATTRACT_MAT,
+ /*064*/ DECOR_FISSURE_MAT,
+ /*065*/ DECOR_SPIKES_MAT,
+ /*066*/ DECOR_BALL_POSTER,
+ /*067*/ DECOR_GREEN_POSTER,
+ /*068*/ DECOR_RED_POSTER,
+ /*069*/ DECOR_BLUE_POSTER,
+ /*070*/ DECOR_CUTE_POSTER,
+ /*071*/ DECOR_PIKA_POSTER,
+ /*072*/ DECOR_LONG_POSTER,
+ /*073*/ DECOR_SEA_POSTER,
+ /*074*/ DECOR_SKY_POSTER,
+ /*075*/ DECOR_KISS_POSTER,
+ /*076*/ DECOR_PICHU_DOLL,
+ /*077*/ DECOR_PIKACHU_DOLL,
+ /*078*/ DECOR_MARILL_DOLL,
+ /*079*/ DECOR_TOGEPI_DOLL,
+ /*080*/ DECOR_CYNDAQUIL_DOLL,
+ /*081*/ DECOR_CHIKORITA_DOLL,
+ /*082*/ DECOR_TOTODILE_DOLL,
+ /*083*/ DECOR_JIGGLYPUFF_DOLL,
+ /*084*/ DECOR_MEOWTH_DOLL,
+ /*085*/ DECOR_CLEFAIRY_DOLL,
+ /*086*/ DECOR_DITTO_DOLL,
+ /*087*/ DECOR_SMOOCHUM_DOLL,
+ /*088*/ DECOR_TREECKO_DOLL,
+ /*089*/ DECOR_TORCHIC_DOLL,
+ /*090*/ DECOR_MUDKIP_DOLL,
+ /*091*/ DECOR_DUSKULL_DOLL,
+ /*092*/ DECOR_WYNAUT_DOLL,
+ /*093*/ DECOR_BALTOY_DOLL,
+ /*094*/ DECOR_KECLEON_DOLL,
+ /*095*/ DECOR_AZURILL_DOLL,
+ /*096*/ DECOR_SKITTY_DOLL,
+ /*097*/ DECOR_SWABLU_DOLL,
+ /*098*/ DECOR_GULPIN_DOLL,
+ /*099*/ DECOR_LOTAD_DOLL,
+ /*100*/ DECOR_SEEDOT_DOLL,
+ /*101*/ DECOR_PIKA_CUSHION,
+ /*102*/ DECOR_ROUND_CUSHION,
+ /*103*/ DECOR_KISS_CUSHION,
+ /*104*/ DECOR_ZIGZAG_CUSHION,
+ /*105*/ DECOR_SPIN_CUSHION,
+ /*106*/ DECOR_DIAMOND_CUSHION,
+ /*107*/ DECOR_BALL_CUSHION,
+ /*108*/ DECOR_GRASS_CUSHION,
+ /*109*/ DECOR_FIRE_CUSHION,
+ /*110*/ DECOR_WATER_CUSHION,
+ /*111*/ DECOR_SNORLAX_DOLL,
+ /*112*/ DECOR_RHYDON_DOLL,
+ /*113*/ DECOR_LAPRAS_DOLL,
+ /*114*/ DECOR_VENUSAUR_DOLL,
+ /*115*/ DECOR_CHARIZARD_DOLL,
+ /*116*/ DECOR_BLASTOISE_DOLL,
+ /*117*/ DECOR_WAILMER_DOLL,
+ /*118*/ DECOR_REGIROCK_DOLL,
+ /*119*/ DECOR_REGICE_DOLL,
+ /*120*/ DECOR_REGISTEEL_DOLL
+};
+
+enum DecorPerm {
+ /*
+ * The nomenclature here describes collision and placement permissions, in that order.
+ */
+ DECORPERM_SOLID_FLOOR,
+ DECORPERM_PASS_FLOOR,
+ DECORPERM_BEHIND_FLOOR,
+ DECORPERM_NA_WALL,
+ DECORPERM_SOLID_MAT
+};
+
+enum DecorShape {
+ /*
+ * Width-x-height
+ */
+ DECORSHAPE_1x1,
+ DECORSHAPE_2x1,
+ DECORSHAPE_3x1, // unused
+ DECORSHAPE_4x2,
+ DECORSHAPE_2x2,
+ DECORSHAPE_1x2,
+ DECORSHAPE_1x3, // unused
+ DECORSHAPE_2x4,
+ DECORSHAPE_3x3,
+ DECORSHAPE_3x2
+};
+
+enum DecoCat {
+ /*
+ * In which category you can find the decoration in the PC.
+ */
+ /*0*/ DECORCAT_DESK,
+ /*1*/ DECORCAT_CHAIR,
+ /*2*/ DECORCAT_PLANT,
+ /*3*/ DECORCAT_ORNAMENT,
+ /*4*/ DECORCAT_MAT,
+ /*5*/ DECORCAT_POSTER,
+ /*6*/ DECORCAT_DOLL,
+ /*7*/ DECORCAT_CUSHION
+};
+
struct Decoration
{
/*0x00*/ u8 id;
/*0x01*/ u8 name[16];
- /*0x11*/ u8 decor_field_11;
- /*0x12*/ u8 decor_field_12;
- /*0x13*/ u8 decor_field_13;
+ /*0x11*/ u8 permission;
+ /*0x12*/ u8 shape;
+ /*0x13*/ u8 category;
/*0x14*/ u16 price;
- /*0x18*/ u8 *description;
- /*0x1c*/ u16 *tiles;
+ /*0x18*/ const u8 *description;
+ /*0x1c*/ const u16 *tiles;
+};
+
+struct DecoPCPointers
+{
+ /* 0x00 */ u8 *items;
+ /* 0x04 */ u8 *pos;
+ /* 0x08 */ u8 size;
+ /* 0x09 */ u8 isPlayerRoom;
+};
+
+struct DecorationInventory
+{
+ u8 *items;
+ u8 size;
};
-extern struct Decoration gDecorations[0x77];
-extern void sub_80FF394(u16 unkr0, u16 unkr1, u16 unkr2);
+struct UnkStruct_803EC860
+{
+ const u8 *tiles;
+ const u8 *y;
+ const u8 *x;
+ u8 size;
+};
+
+extern const struct UnkStruct_803EC860 gUnknown_083EC860[];
+
+extern u8 ewram[];
+#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000))
+
+struct UnkStruct_02038900
+{
+ /*0x000; 0x02038900*/ const struct Decoration *decoration;
+ /*0x004; 0x02038904*/ u16 tiles[0x40];
+ /*0x084; 0x02038984*/ u8 image[0x800];
+ /*0x884; 0x02039184*/ u16 palette[16];
+};
+
+struct UnkStruct_083EC900
+{
+ u8 shape;
+ u8 size;
+ u8 x;
+ u8 y;
+};
+
+struct UnkStruct_020391B4
+{
+ u8 decorId;
+ u8 width;
+ u8 height;
+ u16 flagId;
+};
+
+extern const struct UnkStruct_083EC900 gUnknown_083EC900[];
+extern const struct SpritePalette gUnknown_083EC954;
+extern const struct SpritePalette gUnknown_083ECA5C;
+extern const struct SpritePalette gUnknown_083ECA64;
+extern const struct SpriteTemplate gSpriteTemplate_83EC93C;
+extern const struct SpriteTemplate gSpriteTemplate_83ECA88;
+
+extern const struct Decoration gDecorations[];
+extern struct UnkStruct_02038900 gUnknown_02038900;
+extern u8 *gUnknown_020388D0;
+extern u8 gUnknown_081A2F7B[];
+extern u8 gUnknown_081A2F8A[];
+extern struct OamData gUnknown_020391AC;
+
+extern u8 gUnknown_020388D4;
+extern u8 gUnknown_020388D5;
+extern u8 gUnknown_020388F2;
+extern u8 gUnknown_020388F3;
+extern u8 gUnknown_020388F4;
+extern u8 gUnknown_020388F5;
+extern u8 gUnknown_020388F6;
+extern u8 gUnknown_020388D6[16];
+extern u8 gUnknown_020388E6[12];
+extern u16 gSpecialVar_0x8004;
+extern u16 gSpecialVar_0x8005;
+extern u16 gSpecialVar_0x8006;
+extern u16 gSpecialVar_0x8007;
+extern u16 gUnknown_020391A4;
+extern u16 gUnknown_020391A6;
+extern u8 gUnknown_020391A8;
+extern u8 gUnknown_020391A9;
+extern u8 gUnknown_020391AA;
+extern u8 gUnknown_02039234;
+extern void (*gUnknown_0300485C)(void);
+extern const struct YesNoFuncTable gUnknown_083EC96C[];
+extern struct UnkStruct_020391B4 gUnknown_020391B4[16];
+
+extern const u16 gUnknown_083EC654[3];
+extern const struct DecorationInventory gDecorationInventories[];
+extern const u8 *const gUnknown_083EC5E4[];
+extern const u8 *const gUnknown_083EC624[];
+extern u8 gUnknown_020388F7[];
+extern const struct MenuAction2 gUnknown_083EC604[];
+extern const struct MenuAction3 gUnknown_083EC634[];
+extern const u8 gUnknown_083EC65A[];
+extern const u8 gUnknown_083EC97C[];
+extern const u8 gUnknown_083EC984[];
+extern void sub_80B3068(u8); // src/shop
+extern const struct YesNoFuncTable gUnknown_083EC95C;
+extern const struct YesNoFuncTable gUnknown_083EC964;
+extern const struct YesNoFuncTable gUnknown_083EC9CC;
+extern const struct YesNoFuncTable gUnknown_083EC9D4;
+extern const struct YesNoFuncTable gUnknown_083ECAA0;
+
+extern u8 sub_8134194(u8); // src/decoration_inventory
+extern bool8 sub_81341D4(void); // src/decoration_inventory
+extern void sub_8134104(u8); // src/decoration_inventory
+extern bool8 sub_807D770(void);
+extern void sub_80F944C(void); // src/menu_helpers
+extern void sub_80F9480(u8 *, u8); // src/menu_helpers
+extern void sub_80F94A4(u8, u8 *, u8, s16); // src/menu_helpers
+extern void sub_80F94F8(u8 *); // src/menu_helpers
+extern void sub_80F9520(u8 *, u8); // src/menu_helpers
+extern void DestroyVerticalScrollIndicator(u8); // src/menu_helpers
+extern void CreateVerticalScrollIndicators(u8, u8, u8); // src/menu_helpers
+extern void LoadScrollIndicatorPalette(void); // src/menu_helpers
+extern void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); // src/menu_helpers
+extern void BuyMenuFreeMemory(void); // src/menu_helpers
+extern void sub_8109DAC(u8); // src/trader
+extern void ReshowPlayerPC(u8); // src/player_pc
+
+void sub_80FE2B4(void);
+void Task_DecorationPCProcessMenuInput(u8);
+void sub_80FE394(void);
+void gpu_pal_decompress_alloc_tag_and_upload(u8);
+void sub_80FE5AC(u8);
+void sub_80FE604(u8);
+void sub_80FE728(u8);
+void sub_80FE758(u8);
+void sub_80FE868(u8);
+void sub_80FE948(u8);
+void sub_80FEABC(u8, u8);
+void sub_80FEC94(u8);
+void sub_80FECB8(u8);
+void sub_80FECE0(u8);
+void sub_80FEF50(u8);
+void sub_80FF394(u16, u16, u16);
+void sub_80FF6AC(u8);
+void sub_80FF960(u8);
+void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 *, u8);
+void SetUpPlacingDecorationPlayerAvatar(u8, struct UnkStruct_02038900 *);
+void sub_8100038(u8);
+void sub_81000A0(u8);
+void sub_8100174(u8);
+void sub_8100248(u8);
+void sub_810028C(u8);
+void c1_overworld_prev_quest(u8);
+void sub_8100364(void);
+void sub_810045C(void);
+void sub_810065C(u8);
+void sub_81006A8(u8);
+void sub_81006D0(struct UnkStruct_02038900 *);
+void sub_810070C(u16 *, u16);
+void sub_8100874(struct UnkStruct_02038900 *);
+void sub_81008BC(struct UnkStruct_02038900 *);
+void sub_8100930(u8);
+void sub_81009A8(struct Sprite *);
+void sub_81009C0(struct Sprite *);
+bool8 sub_8100D38(u8);
+void sub_8100E70(u8);
+void sub_8100EEC(u8);
+void sub_8101024(u8);
+void sub_81010F0(u8);
+void sub_8101460(u8);
+void sub_8101518(u8);
+void sub_81015B0(u8);
+void sub_81015E0(u8);
+void sub_810156C(u8);
+void sub_8101678(void);
+void sub_8101698(struct Sprite *);
+void sub_81016C8(void);
+void sub_81016F4(void);
+void sub_8101824(u8);
+void sub_8109A30(u8);
+
+void sub_80FF160(u8);
+void sub_80FF5BC(u8);
+void sub_80FF058(u8);
+void sub_8100A0C(u8);
+void sub_8101700(u8);
+void sub_81017A0(u8);
+void sub_8109D04(u8);
+
+void sub_80FED3C(u8);
+void sub_80FFAB0(u8);
+void sub_80FFB08(u8);
+void sub_81000C4(u8);
+void sub_810026C(u8);
+void sub_8100F88(u8);
+void sub_8100FB4(u8);
+void sub_810153C(u8);
+void sub_8101590(u8);
+void sub_8101848(u8);
#endif // GUARD_DECORATION_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 1aa99031d..d08627ddc 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -7,5 +7,7 @@ struct MapHeader *mapconnection_get_mapheader(struct MapConnection *connection);
int GetMapBorderIdAt(int x, int y);
extern bool8 IsMetatileDirectionallyImpassable(struct MapObject *mapObject, s16 x, s16 y, u8 direction);
int CanCameraMoveInDirection(int direction);
+u32 GetBehaviorByMetatileId(u16 metatile);
+void MapGridSetMetatileEntryAt(int, int, u16);
#endif
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index c0874bcbb..d483d4ddc 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -639,6 +639,8 @@
#define KEY_INTR_ENABLE 0x0400
#define KEY_OR_INTR 0x0000
#define KEY_AND_INTR 0x8000
+#define DPAD_ANY 0x00F0
+#define JOY_EXCL_DPAD 0x030F
// interrupt flags
#define INTR_FLAG_VBLANK (1 << 0)
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index a0fe0e6ab..b8bab45d8 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -44,23 +44,23 @@ typedef void (*TilesetCB)(void);
struct Tileset
{
- bool8 isCompressed;
- bool8 isSecondary;
- void *tiles;
- void *palettes;
- void *metatiles;
- void *metatileAttributes;
- TilesetCB callback;
+ /*0x00*/ bool8 isCompressed;
+ /*0x01*/ bool8 isSecondary;
+ /*0x04*/ void *tiles;
+ /*0x08*/ void *palettes;
+ /*0x0c*/ void *metatiles;
+ /*0x10*/ void *metatileAttributes;
+ /*0x14*/ TilesetCB callback;
};
struct MapData
{
- s32 width;
- s32 height;
- u16 *border;
- u16 *map;
- struct Tileset *primaryTileset;
- struct Tileset *secondaryTileset;
+ /*0x00*/ s32 width;
+ /*0x04*/ s32 height;
+ /*0x08*/ u16 *border;
+ /*0x0c*/ u16 *map;
+ /*0x10*/ struct Tileset *primaryTileset;
+ /*0x14*/ struct Tileset *secondaryTileset;
};
struct BackupMapData
diff --git a/include/global.h b/include/global.h
index 9a95cf41f..c4c78e65d 100644
--- a/include/global.h
+++ b/include/global.h
@@ -98,7 +98,7 @@ struct SecretBaseRecord
/*0x1A09*/ u8 sbr_field_1_0:4;
/*0x1A09*/ u8 gender:1;
/*0x1A09*/ u8 sbr_field_1_5:1;
- /*0x1A09*/ u8 sbr_field_1_6:2;
+ /*0x1A09*/ u8 sbr_field_1_6:2;
/*0x1A0A*/ u8 sbr_field_2[7]; // 0xFF bytes?
/*0x1A12*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
/*0x1A16*/ u16 sbr_field_e;
@@ -219,7 +219,7 @@ struct TVShowRecentHappenings {
/*0x00*/ u8 var00;
/*0x01*/ u8 var01;
/*0x02*/ u16 var02;
- /*0x04*/ u16 var04[6];
+ /*0x04*/ u16 var04[6];
/*0x10*/ u8 playerName[8];
/*0x18*/ u8 language;
/*0x19*/ u8 pad19[10];
@@ -446,9 +446,9 @@ typedef union SB_Struct {
// size is 0x198
struct UnknownSaveStruct2ABC {
- u8 val0;
- u8 val1;
- u16 val2;
+ u8 val0;
+ u8 val1;
+ u16 val2;
};
struct GabbyAndTyData {
@@ -473,7 +473,7 @@ struct GabbyAndTyData {
};
struct RecordMixing_UnknownStruct {
- u8 data[0x38];
+ u8 data[0x38];
};
struct SaveBlock1 /* 0x02025734 */
@@ -525,7 +525,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2704*/ u8 decorDoll[40];
/*0x272C*/ u8 decorCushion[10];
/*0x2736*/ u8 padding_2736[2];
- /*0x2738*/ TVShow tvShows[25];
+ /*0x2738*/ TVShow tvShows[25];
/*0x2ABC*/ struct UnknownSaveStruct2ABC unknown_2ABC[16];
/*0x2AFC*/ u16 outbreakPokemonSpecies;
/*0x2AFE*/ u8 outbreakLocationMapNum;
@@ -592,8 +592,8 @@ struct Pokedex
struct SaveBlock2_Sub
{
/*0x0000, 0x00A4*/ u8 filler_000[0x3D8];
- /*0x03D8, 0x0480*/ u16 var_480;
- /*0x03DA, 0x0482*/ u16 var_482;
+ /*0x03D8, 0x0480*/ u16 var_480;
+ /*0x03DA, 0x0482*/ u16 var_482;
/*0x03DC, 0x0484*/ u8 filler_3DC[0xD1];
/*0x04AD, 0x0555*/ u8 var_4AD;
/*0x04AE, 0x0556*/ u8 var_4AE;
diff --git a/include/items.h b/include/items.h
index 11cc2113c..f3c506b43 100644
--- a/include/items.h
+++ b/include/items.h
@@ -2,387 +2,387 @@
#define GUARD_ITEMS_H
enum {
- ITEM_NONE, // 0x000
- ITEM_MASTER_BALL, // 0x001
- ITEM_ULTRA_BALL, // 0x002
- ITEM_GREAT_BALL, // 0x003
- ITEM_POKE_BALL, // 0x004
- ITEM_SAFARI_BALL, // 0x005
- ITEM_NET_BALL, // 0x006
- ITEM_DIVE_BALL, // 0x007
- ITEM_NEST_BALL, // 0x008
- ITEM_REPEAT_BALL, // 0x009
- ITEM_TIMER_BALL, // 0x00a
- ITEM_LUXURY_BALL, // 0x00b
- ITEM_PREMIER_BALL, // 0x00c
- ITEM_POTION, // 0x00d
- ITEM_ANTIDOTE, // 0x00e
- ITEM_BURN_HEAL, // 0x00f
- ITEM_ICE_HEAL, // 0x010
- ITEM_AWAKENING, // 0x011
- ITEM_PARALYZE_HEAL, // 0x012
- ITEM_FULL_RESTORE, // 0x013
- ITEM_MAX_POTION, // 0x014
- ITEM_HYPER_POTION, // 0x015
- ITEM_SUPER_POTION, // 0x016
- ITEM_FULL_HEAL, // 0x017
- ITEM_REVIVE, // 0x018
- ITEM_MAX_REVIVE, // 0x019
- ITEM_FRESH_WATER, // 0x01a
- ITEM_SODA_POP, // 0x01b
- ITEM_LEMONADE, // 0x01c
- ITEM_MOOMOO_MILK, // 0x01d
- ITEM_ENERGY_POWDER, // 0x01e
- ITEM_ENERGY_ROOT, // 0x01f
- ITEM_HEAL_POWDER, // 0x020
- ITEM_REVIVAL_HERB, // 0x021
- ITEM_ETHER, // 0x022
- ITEM_MAX_ETHER, // 0x023
- ITEM_ELIXIR, // 0x024
- ITEM_MAX_ELIXIR, // 0x025
- ITEM_LAVA_COOKIE, // 0x026
- ITEM_BLUE_FLUTE, // 0x027
- ITEM_YELLOW_FLUTE, // 0x028
- ITEM_RED_FLUTE, // 0x029
- ITEM_BLACK_FLUTE, // 0x02a
- ITEM_WHITE_FLUTE, // 0x02b
- ITEM_BERRY_JUICE, // 0x02c
- ITEM_SACRED_ASH, // 0x02d
- ITEM_SHOAL_SALT, // 0x02e
- ITEM_SHOAL_SHELL, // 0x02f
- ITEM_RED_SHARD, // 0x030
- ITEM_BLUE_SHARD, // 0x031
- ITEM_YELLOW_SHARD, // 0x032
- ITEM_GREEN_SHARD, // 0x033
- ITEM_034,
- ITEM_035,
- ITEM_036,
- ITEM_037,
- ITEM_038,
- ITEM_039,
- ITEM_03A,
- ITEM_03B,
- ITEM_03C,
- ITEM_03D,
- ITEM_03E,
- ITEM_HP_UP, // 0x03f
- ITEM_PROTEIN, // 0x040
- ITEM_IRON, // 0x041
- ITEM_CARBOS, // 0x042
- ITEM_CALCIUM, // 0x043
- ITEM_RARE_CANDY, // 0x044
- ITEM_PP_UP, // 0x045
- ITEM_ZINC, // 0x046
- ITEM_PP_MAX, // 0x047
- ITEM_048,
- ITEM_GUARD_SPEC, // 0x049
- ITEM_DIRE_HIT, // 0x04a
- ITEM_X_ATTACK, // 0x04b
- ITEM_X_DEFEND, // 0x04c
- ITEM_X_SPEED, // 0x04d
- ITEM_X_ACCURACY, // 0x04e
- ITEM_X_SPECIAL, // 0x04f
- ITEM_POKE_DOLL, // 0x050
- ITEM_FLUFFY_TAIL, // 0x051
- ITEM_052,
- ITEM_SUPER_REPEL, // 0x053
- ITEM_MAX_REPEL, // 0x054
- ITEM_ESCAPE_ROPE, // 0x055
- ITEM_REPEL, // 0x056
- ITEM_057,
- ITEM_058,
- ITEM_059,
- ITEM_05A,
- ITEM_05B,
- ITEM_05C,
- ITEM_SUN_STONE, // 0x05d
- ITEM_MOON_STONE, // 0x05e
- ITEM_FIRE_STONE, // 0x05f
- ITEM_THUNDER_STONE, // 0x060
- ITEM_WATER_STONE, // 0x061
- ITEM_LEAF_STONE, // 0x062
- ITEM_063,
- ITEM_064,
- ITEM_065,
- ITEM_066,
- ITEM_TINY_MUSHROOM, // 0x067
- ITEM_BIG_MUSHROOM, // 0x068
- ITEM_069,
- ITEM_PEARL, // 0x06a
- ITEM_BIG_PEARL, // 0x06b
- ITEM_STARDUST, // 0x06c
- ITEM_STAR_PIECE, // 0x06d
- ITEM_NUGGET, // 0x06e
- ITEM_HEART_SCALE, // 0x06f
- ITEM_070,
- ITEM_071,
- ITEM_072,
- ITEM_073,
- ITEM_074,
- ITEM_075,
- ITEM_076,
- ITEM_077,
- ITEM_078,
- ITEM_ORANGE_MAIL, // 0x079
- ITEM_HARBOR_MAIL, // 0x07a
- ITEM_GLITTER_MAIL, // 0x07b
- ITEM_MECH_MAIL, // 0x07c
- ITEM_WOOD_MAIL, // 0x07d
- ITEM_WAVE_MAIL, // 0x07e
- ITEM_BEAD_MAIL, // 0x07f
- ITEM_SHADOW_MAIL, // 0x080
- ITEM_TROPIC_MAIL, // 0x081
- ITEM_DREAM_MAIL, // 0x082
- ITEM_FAB_MAIL, // 0x083
- ITEM_RETRO_MAIL, // 0x084
- ITEM_CHERI_BERRY, // 0x085
- ITEM_CHESTO_BERRY, // 0x086
- ITEM_PECHA_BERRY, // 0x087
- ITEM_RAWST_BERRY, // 0x088
- ITEM_ASPEAR_BERRY, // 0x089
- ITEM_LEPPA_BERRY, // 0x08a
- ITEM_ORAN_BERRY, // 0x08b
- ITEM_PERSIM_BERRY, // 0x08c
- ITEM_LUM_BERRY, // 0x08d
- ITEM_SITRUS_BERRY, // 0x08e
- ITEM_FIGY_BERRY, // 0x08f
- ITEM_WIKI_BERRY, // 0x090
- ITEM_MAGO_BERRY, // 0x091
- ITEM_AGUAV_BERRY, // 0x092
- ITEM_IAPAPA_BERRY, // 0x093
- ITEM_RAZZ_BERRY, // 0x094
- ITEM_BLUK_BERRY, // 0x095
- ITEM_NANAB_BERRY, // 0x096
- ITEM_WEPEAR_BERRY, // 0x097
- ITEM_PINAP_BERRY, // 0x098
- ITEM_POMEG_BERRY, // 0x099
- ITEM_KELPSY_BERRY, // 0x09a
- ITEM_QUALOT_BERRY, // 0x09b
- ITEM_HONDEW_BERRY, // 0x09c
- ITEM_GREPA_BERRY, // 0x09d
- ITEM_TAMATO_BERRY, // 0x09e
- ITEM_CORNN_BERRY, // 0x09f
- ITEM_MAGOST_BERRY, // 0x0a0
- ITEM_RABUTA_BERRY, // 0x0a1
- ITEM_NOMEL_BERRY, // 0x0a2
- ITEM_SPELON_BERRY, // 0x0a3
- ITEM_PAMTRE_BERRY, // 0x0a4
- ITEM_WATMEL_BERRY, // 0x0a5
- ITEM_DURIN_BERRY, // 0x0a6
- ITEM_BELUE_BERRY, // 0x0a7
- ITEM_LIECHI_BERRY, // 0x0a8
- ITEM_GANLON_BERRY, // 0x0a9
- ITEM_SALAC_BERRY, // 0x0aa
- ITEM_PETAYA_BERRY, // 0x0ab
- ITEM_APICOT_BERRY, // 0x0ac
- ITEM_LANSAT_BERRY, // 0x0ad
- ITEM_STARF_BERRY, // 0x0ae
- ITEM_ENIGMA_BERRY, // 0x0af
- ITEM_0B0,
- ITEM_0B1,
- ITEM_0B2,
- ITEM_BRIGHT_POWDER, // 0x0b3
- ITEM_WHITE_HERB, // 0x0b4
- ITEM_MACHO_BRACE, // 0x0b5
- ITEM_EXP_SHARE, // 0x0b6
- ITEM_QUICK_CLAW, // 0x0b7
- ITEM_SOOTHE_BELL, // 0x0b8
- ITEM_MENTAL_HERB, // 0x0b9
- ITEM_CHOICE_BAND, // 0x0ba
- ITEM_KINGS_ROCK, // 0x0bb
- ITEM_SILVER_POWDER, // 0x0bc
- ITEM_AMULET_COIN, // 0x0bd
- ITEM_CLEANSE_TAG, // 0x0be
- ITEM_SOUL_DEW, // 0x0bf
- ITEM_DEEP_SEA_TOOTH, // 0x0c0
- ITEM_DEEP_SEA_SCALE, // 0x0c1
- ITEM_SMOKE_BALL, // 0x0c2
- ITEM_EVERSTONE, // 0x0c3
- ITEM_FOCUS_BAND, // 0x0c4
- ITEM_LUCKY_EGG, // 0x0c5
- ITEM_SCOPE_LENS, // 0x0c6
- ITEM_METAL_COAT, // 0x0c7
- ITEM_LEFTOVERS, // 0x0c8
- ITEM_DRAGON_SCALE, // 0x0c9
- ITEM_LIGHT_BALL, // 0x0ca
- ITEM_SOFT_SAND, // 0x0cb
- ITEM_HARD_STONE, // 0x0cc
- ITEM_MIRACLE_SEED, // 0x0cd
- ITEM_BLACK_GLASSES, // 0x0ce
- ITEM_BLACK_BELT, // 0x0cf
- ITEM_MAGNET, // 0x0d0
- ITEM_MYSTIC_WATER, // 0x0d1
- ITEM_SHARP_BEAK, // 0x0d2
- ITEM_POISON_BARB, // 0x0d3
- ITEM_NEVER_MELT_ICE, // 0x0d4
- ITEM_SPELL_TAG, // 0x0d5
- ITEM_TWISTED_SPOON, // 0x0d6
- ITEM_CHARCOAL, // 0x0d7
- ITEM_DRAGON_FANG, // 0x0d8
- ITEM_SILK_SCARF, // 0x0d9
- ITEM_UP_GRADE, // 0x0da
- ITEM_SHELL_BELL, // 0x0db
- ITEM_SEA_INCENSE, // 0x0dc
- ITEM_LAX_INCENSE, // 0x0dd
- ITEM_LUCKY_PUNCH, // 0x0de
- ITEM_METAL_POWDER, // 0x0df
- ITEM_THICK_CLUB, // 0x0e0
- ITEM_STICK, // 0x0e1
- ITEM_0E2,
- ITEM_0E3,
- ITEM_0E4,
- ITEM_0E5,
- ITEM_0E6,
- ITEM_0E7,
- ITEM_0E8,
- ITEM_0E9,
- ITEM_0EA,
- ITEM_0EB,
- ITEM_0EC,
- ITEM_0ED,
- ITEM_0EE,
- ITEM_0EF,
- ITEM_0F0,
- ITEM_0F1,
- ITEM_0F2,
- ITEM_0F3,
- ITEM_0F4,
- ITEM_0F5,
- ITEM_0F6,
- ITEM_0F7,
- ITEM_0F8,
- ITEM_0F9,
- ITEM_0FA,
- ITEM_0FB,
- ITEM_0FC,
- ITEM_0FD,
- ITEM_RED_SCARF, // 0x0fe
- ITEM_BLUE_SCARF, // 0x0ff
- ITEM_PINK_SCARF, // 0x100
- ITEM_GREEN_SCARF, // 0x101
- ITEM_YELLOW_SCARF, // 0x102
- ITEM_MACH_BIKE, // 0x103
- ITEM_COIN_CASE, // 0x104
- ITEM_ITEMFINDER, // 0x105
- ITEM_OLD_ROD, // 0x106
- ITEM_GOOD_ROD, // 0x107
- ITEM_SUPER_ROD, // 0x108
- ITEM_SS_TICKET, // 0x109
- ITEM_CONTEST_PASS, // 0x10a
- ITEM_10B,
- ITEM_WAILMER_PAIL, // 0x10c
- ITEM_DEVON_GOODS, // 0x10d
- ITEM_SOOT_SACK, // 0x10e
- ITEM_BASEMENT_KEY, // 0x10f
- ITEM_ACRO_BIKE, // 0x110
- ITEM_POKEBLOCK_CASE, // 0x111
- ITEM_LETTER, // 0x112
- ITEM_EON_TICKET, // 0x113
- ITEM_RED_ORB, // 0x114
- ITEM_BLUE_ORB, // 0x115
- ITEM_SCANNER, // 0x116
- ITEM_GO_GOGGLES, // 0x117
- ITEM_METEORITE, // 0x118
- ITEM_ROOM_1_KEY, // 0x119
- ITEM_ROOM_2_KEY, // 0x11a
- ITEM_ROOM_4_KEY, // 0x11b
- ITEM_ROOM_6_KEY, // 0x11c
- ITEM_STORAGE_KEY, // 0x11d
- ITEM_ROOT_FOSSIL, // 0x11e
- ITEM_CLAW_FOSSIL, // 0x11f
- ITEM_DEVON_SCOPE, // 0x120
- ITEM_TM01, // 0x121
- ITEM_TM02, // 0x122
- ITEM_TM03, // 0x123
- ITEM_TM04, // 0x124
- ITEM_TM05, // 0x125
- ITEM_TM06, // 0x126
- ITEM_TM07, // 0x127
- ITEM_TM08, // 0x128
- ITEM_TM09, // 0x129
- ITEM_TM10, // 0x12a
- ITEM_TM11, // 0x12b
- ITEM_TM12, // 0x12c
- ITEM_TM13, // 0x12d
- ITEM_TM14, // 0x12e
- ITEM_TM15, // 0x12f
- ITEM_TM16, // 0x130
- ITEM_TM17, // 0x131
- ITEM_TM18, // 0x132
- ITEM_TM19, // 0x133
- ITEM_TM20, // 0x134
- ITEM_TM21, // 0x135
- ITEM_TM22, // 0x136
- ITEM_TM23, // 0x137
- ITEM_TM24, // 0x138
- ITEM_TM25, // 0x139
- ITEM_TM26, // 0x13a
- ITEM_TM27, // 0x13b
- ITEM_TM28, // 0x13c
- ITEM_TM29, // 0x13d
- ITEM_TM30, // 0x13e
- ITEM_TM31, // 0x13f
- ITEM_TM32, // 0x140
- ITEM_TM33, // 0x141
- ITEM_TM34, // 0x142
- ITEM_TM35, // 0x143
- ITEM_TM36, // 0x144
- ITEM_TM37, // 0x145
- ITEM_TM38, // 0x146
- ITEM_TM39, // 0x147
- ITEM_TM40, // 0x148
- ITEM_TM41, // 0x149
- ITEM_TM42, // 0x14a
- ITEM_TM43, // 0x14b
- ITEM_TM44, // 0x14c
- ITEM_TM45, // 0x14d
- ITEM_TM46, // 0x14e
- ITEM_TM47, // 0x14f
- ITEM_TM48, // 0x150
- ITEM_TM49, // 0x151
- ITEM_TM50, // 0x152
- ITEM_HM01, // 0x153
- ITEM_HM02, // 0x154
- ITEM_HM03, // 0x155
- ITEM_HM04, // 0x156
- ITEM_HM05, // 0x157
- ITEM_HM06, // 0x158
- ITEM_HM07, // 0x159
- ITEM_HM08, // 0x15a
- ITEM_15B,
- ITEM_15C,
+ ITEM_NONE, // 0x000
+ ITEM_MASTER_BALL, // 0x001
+ ITEM_ULTRA_BALL, // 0x002
+ ITEM_GREAT_BALL, // 0x003
+ ITEM_POKE_BALL, // 0x004
+ ITEM_SAFARI_BALL, // 0x005
+ ITEM_NET_BALL, // 0x006
+ ITEM_DIVE_BALL, // 0x007
+ ITEM_NEST_BALL, // 0x008
+ ITEM_REPEAT_BALL, // 0x009
+ ITEM_TIMER_BALL, // 0x00a
+ ITEM_LUXURY_BALL, // 0x00b
+ ITEM_PREMIER_BALL, // 0x00c
+ ITEM_POTION, // 0x00d
+ ITEM_ANTIDOTE, // 0x00e
+ ITEM_BURN_HEAL, // 0x00f
+ ITEM_ICE_HEAL, // 0x010
+ ITEM_AWAKENING, // 0x011
+ ITEM_PARALYZE_HEAL, // 0x012
+ ITEM_FULL_RESTORE, // 0x013
+ ITEM_MAX_POTION, // 0x014
+ ITEM_HYPER_POTION, // 0x015
+ ITEM_SUPER_POTION, // 0x016
+ ITEM_FULL_HEAL, // 0x017
+ ITEM_REVIVE, // 0x018
+ ITEM_MAX_REVIVE, // 0x019
+ ITEM_FRESH_WATER, // 0x01a
+ ITEM_SODA_POP, // 0x01b
+ ITEM_LEMONADE, // 0x01c
+ ITEM_MOOMOO_MILK, // 0x01d
+ ITEM_ENERGY_POWDER, // 0x01e
+ ITEM_ENERGY_ROOT, // 0x01f
+ ITEM_HEAL_POWDER, // 0x020
+ ITEM_REVIVAL_HERB, // 0x021
+ ITEM_ETHER, // 0x022
+ ITEM_MAX_ETHER, // 0x023
+ ITEM_ELIXIR, // 0x024
+ ITEM_MAX_ELIXIR, // 0x025
+ ITEM_LAVA_COOKIE, // 0x026
+ ITEM_BLUE_FLUTE, // 0x027
+ ITEM_YELLOW_FLUTE, // 0x028
+ ITEM_RED_FLUTE, // 0x029
+ ITEM_BLACK_FLUTE, // 0x02a
+ ITEM_WHITE_FLUTE, // 0x02b
+ ITEM_BERRY_JUICE, // 0x02c
+ ITEM_SACRED_ASH, // 0x02d
+ ITEM_SHOAL_SALT, // 0x02e
+ ITEM_SHOAL_SHELL, // 0x02f
+ ITEM_RED_SHARD, // 0x030
+ ITEM_BLUE_SHARD, // 0x031
+ ITEM_YELLOW_SHARD, // 0x032
+ ITEM_GREEN_SHARD, // 0x033
+ ITEM_034,
+ ITEM_035,
+ ITEM_036,
+ ITEM_037,
+ ITEM_038,
+ ITEM_039,
+ ITEM_03A,
+ ITEM_03B,
+ ITEM_03C,
+ ITEM_03D,
+ ITEM_03E,
+ ITEM_HP_UP, // 0x03f
+ ITEM_PROTEIN, // 0x040
+ ITEM_IRON, // 0x041
+ ITEM_CARBOS, // 0x042
+ ITEM_CALCIUM, // 0x043
+ ITEM_RARE_CANDY, // 0x044
+ ITEM_PP_UP, // 0x045
+ ITEM_ZINC, // 0x046
+ ITEM_PP_MAX, // 0x047
+ ITEM_048,
+ ITEM_GUARD_SPEC, // 0x049
+ ITEM_DIRE_HIT, // 0x04a
+ ITEM_X_ATTACK, // 0x04b
+ ITEM_X_DEFEND, // 0x04c
+ ITEM_X_SPEED, // 0x04d
+ ITEM_X_ACCURACY, // 0x04e
+ ITEM_X_SPECIAL, // 0x04f
+ ITEM_POKE_DOLL, // 0x050
+ ITEM_FLUFFY_TAIL, // 0x051
+ ITEM_052,
+ ITEM_SUPER_REPEL, // 0x053
+ ITEM_MAX_REPEL, // 0x054
+ ITEM_ESCAPE_ROPE, // 0x055
+ ITEM_REPEL, // 0x056
+ ITEM_057,
+ ITEM_058,
+ ITEM_059,
+ ITEM_05A,
+ ITEM_05B,
+ ITEM_05C,
+ ITEM_SUN_STONE, // 0x05d
+ ITEM_MOON_STONE, // 0x05e
+ ITEM_FIRE_STONE, // 0x05f
+ ITEM_THUNDER_STONE, // 0x060
+ ITEM_WATER_STONE, // 0x061
+ ITEM_LEAF_STONE, // 0x062
+ ITEM_063,
+ ITEM_064,
+ ITEM_065,
+ ITEM_066,
+ ITEM_TINY_MUSHROOM, // 0x067
+ ITEM_BIG_MUSHROOM, // 0x068
+ ITEM_069,
+ ITEM_PEARL, // 0x06a
+ ITEM_BIG_PEARL, // 0x06b
+ ITEM_STARDUST, // 0x06c
+ ITEM_STAR_PIECE, // 0x06d
+ ITEM_NUGGET, // 0x06e
+ ITEM_HEART_SCALE, // 0x06f
+ ITEM_070,
+ ITEM_071,
+ ITEM_072,
+ ITEM_073,
+ ITEM_074,
+ ITEM_075,
+ ITEM_076,
+ ITEM_077,
+ ITEM_078,
+ ITEM_ORANGE_MAIL, // 0x079
+ ITEM_HARBOR_MAIL, // 0x07a
+ ITEM_GLITTER_MAIL, // 0x07b
+ ITEM_MECH_MAIL, // 0x07c
+ ITEM_WOOD_MAIL, // 0x07d
+ ITEM_WAVE_MAIL, // 0x07e
+ ITEM_BEAD_MAIL, // 0x07f
+ ITEM_SHADOW_MAIL, // 0x080
+ ITEM_TROPIC_MAIL, // 0x081
+ ITEM_DREAM_MAIL, // 0x082
+ ITEM_FAB_MAIL, // 0x083
+ ITEM_RETRO_MAIL, // 0x084
+ ITEM_CHERI_BERRY, // 0x085
+ ITEM_CHESTO_BERRY, // 0x086
+ ITEM_PECHA_BERRY, // 0x087
+ ITEM_RAWST_BERRY, // 0x088
+ ITEM_ASPEAR_BERRY, // 0x089
+ ITEM_LEPPA_BERRY, // 0x08a
+ ITEM_ORAN_BERRY, // 0x08b
+ ITEM_PERSIM_BERRY, // 0x08c
+ ITEM_LUM_BERRY, // 0x08d
+ ITEM_SITRUS_BERRY, // 0x08e
+ ITEM_FIGY_BERRY, // 0x08f
+ ITEM_WIKI_BERRY, // 0x090
+ ITEM_MAGO_BERRY, // 0x091
+ ITEM_AGUAV_BERRY, // 0x092
+ ITEM_IAPAPA_BERRY, // 0x093
+ ITEM_RAZZ_BERRY, // 0x094
+ ITEM_BLUK_BERRY, // 0x095
+ ITEM_NANAB_BERRY, // 0x096
+ ITEM_WEPEAR_BERRY, // 0x097
+ ITEM_PINAP_BERRY, // 0x098
+ ITEM_POMEG_BERRY, // 0x099
+ ITEM_KELPSY_BERRY, // 0x09a
+ ITEM_QUALOT_BERRY, // 0x09b
+ ITEM_HONDEW_BERRY, // 0x09c
+ ITEM_GREPA_BERRY, // 0x09d
+ ITEM_TAMATO_BERRY, // 0x09e
+ ITEM_CORNN_BERRY, // 0x09f
+ ITEM_MAGOST_BERRY, // 0x0a0
+ ITEM_RABUTA_BERRY, // 0x0a1
+ ITEM_NOMEL_BERRY, // 0x0a2
+ ITEM_SPELON_BERRY, // 0x0a3
+ ITEM_PAMTRE_BERRY, // 0x0a4
+ ITEM_WATMEL_BERRY, // 0x0a5
+ ITEM_DURIN_BERRY, // 0x0a6
+ ITEM_BELUE_BERRY, // 0x0a7
+ ITEM_LIECHI_BERRY, // 0x0a8
+ ITEM_GANLON_BERRY, // 0x0a9
+ ITEM_SALAC_BERRY, // 0x0aa
+ ITEM_PETAYA_BERRY, // 0x0ab
+ ITEM_APICOT_BERRY, // 0x0ac
+ ITEM_LANSAT_BERRY, // 0x0ad
+ ITEM_STARF_BERRY, // 0x0ae
+ ITEM_ENIGMA_BERRY, // 0x0af
+ ITEM_0B0,
+ ITEM_0B1,
+ ITEM_0B2,
+ ITEM_BRIGHT_POWDER, // 0x0b3
+ ITEM_WHITE_HERB, // 0x0b4
+ ITEM_MACHO_BRACE, // 0x0b5
+ ITEM_EXP_SHARE, // 0x0b6
+ ITEM_QUICK_CLAW, // 0x0b7
+ ITEM_SOOTHE_BELL, // 0x0b8
+ ITEM_MENTAL_HERB, // 0x0b9
+ ITEM_CHOICE_BAND, // 0x0ba
+ ITEM_KINGS_ROCK, // 0x0bb
+ ITEM_SILVER_POWDER, // 0x0bc
+ ITEM_AMULET_COIN, // 0x0bd
+ ITEM_CLEANSE_TAG, // 0x0be
+ ITEM_SOUL_DEW, // 0x0bf
+ ITEM_DEEP_SEA_TOOTH, // 0x0c0
+ ITEM_DEEP_SEA_SCALE, // 0x0c1
+ ITEM_SMOKE_BALL, // 0x0c2
+ ITEM_EVERSTONE, // 0x0c3
+ ITEM_FOCUS_BAND, // 0x0c4
+ ITEM_LUCKY_EGG, // 0x0c5
+ ITEM_SCOPE_LENS, // 0x0c6
+ ITEM_METAL_COAT, // 0x0c7
+ ITEM_LEFTOVERS, // 0x0c8
+ ITEM_DRAGON_SCALE, // 0x0c9
+ ITEM_LIGHT_BALL, // 0x0ca
+ ITEM_SOFT_SAND, // 0x0cb
+ ITEM_HARD_STONE, // 0x0cc
+ ITEM_MIRACLE_SEED, // 0x0cd
+ ITEM_BLACK_GLASSES, // 0x0ce
+ ITEM_BLACK_BELT, // 0x0cf
+ ITEM_MAGNET, // 0x0d0
+ ITEM_MYSTIC_WATER, // 0x0d1
+ ITEM_SHARP_BEAK, // 0x0d2
+ ITEM_POISON_BARB, // 0x0d3
+ ITEM_NEVER_MELT_ICE, // 0x0d4
+ ITEM_SPELL_TAG, // 0x0d5
+ ITEM_TWISTED_SPOON, // 0x0d6
+ ITEM_CHARCOAL, // 0x0d7
+ ITEM_DRAGON_FANG, // 0x0d8
+ ITEM_SILK_SCARF, // 0x0d9
+ ITEM_UP_GRADE, // 0x0da
+ ITEM_SHELL_BELL, // 0x0db
+ ITEM_SEA_INCENSE, // 0x0dc
+ ITEM_LAX_INCENSE, // 0x0dd
+ ITEM_LUCKY_PUNCH, // 0x0de
+ ITEM_METAL_POWDER, // 0x0df
+ ITEM_THICK_CLUB, // 0x0e0
+ ITEM_STICK, // 0x0e1
+ ITEM_0E2,
+ ITEM_0E3,
+ ITEM_0E4,
+ ITEM_0E5,
+ ITEM_0E6,
+ ITEM_0E7,
+ ITEM_0E8,
+ ITEM_0E9,
+ ITEM_0EA,
+ ITEM_0EB,
+ ITEM_0EC,
+ ITEM_0ED,
+ ITEM_0EE,
+ ITEM_0EF,
+ ITEM_0F0,
+ ITEM_0F1,
+ ITEM_0F2,
+ ITEM_0F3,
+ ITEM_0F4,
+ ITEM_0F5,
+ ITEM_0F6,
+ ITEM_0F7,
+ ITEM_0F8,
+ ITEM_0F9,
+ ITEM_0FA,
+ ITEM_0FB,
+ ITEM_0FC,
+ ITEM_0FD,
+ ITEM_RED_SCARF, // 0x0fe
+ ITEM_BLUE_SCARF, // 0x0ff
+ ITEM_PINK_SCARF, // 0x100
+ ITEM_GREEN_SCARF, // 0x101
+ ITEM_YELLOW_SCARF, // 0x102
+ ITEM_MACH_BIKE, // 0x103
+ ITEM_COIN_CASE, // 0x104
+ ITEM_ITEMFINDER, // 0x105
+ ITEM_OLD_ROD, // 0x106
+ ITEM_GOOD_ROD, // 0x107
+ ITEM_SUPER_ROD, // 0x108
+ ITEM_SS_TICKET, // 0x109
+ ITEM_CONTEST_PASS, // 0x10a
+ ITEM_10B,
+ ITEM_WAILMER_PAIL, // 0x10c
+ ITEM_DEVON_GOODS, // 0x10d
+ ITEM_SOOT_SACK, // 0x10e
+ ITEM_BASEMENT_KEY, // 0x10f
+ ITEM_ACRO_BIKE, // 0x110
+ ITEM_POKEBLOCK_CASE, // 0x111
+ ITEM_LETTER, // 0x112
+ ITEM_EON_TICKET, // 0x113
+ ITEM_RED_ORB, // 0x114
+ ITEM_BLUE_ORB, // 0x115
+ ITEM_SCANNER, // 0x116
+ ITEM_GO_GOGGLES, // 0x117
+ ITEM_METEORITE, // 0x118
+ ITEM_ROOM_1_KEY, // 0x119
+ ITEM_ROOM_2_KEY, // 0x11a
+ ITEM_ROOM_4_KEY, // 0x11b
+ ITEM_ROOM_6_KEY, // 0x11c
+ ITEM_STORAGE_KEY, // 0x11d
+ ITEM_ROOT_FOSSIL, // 0x11e
+ ITEM_CLAW_FOSSIL, // 0x11f
+ ITEM_DEVON_SCOPE, // 0x120
+ ITEM_TM01, // 0x121
+ ITEM_TM02, // 0x122
+ ITEM_TM03, // 0x123
+ ITEM_TM04, // 0x124
+ ITEM_TM05, // 0x125
+ ITEM_TM06, // 0x126
+ ITEM_TM07, // 0x127
+ ITEM_TM08, // 0x128
+ ITEM_TM09, // 0x129
+ ITEM_TM10, // 0x12a
+ ITEM_TM11, // 0x12b
+ ITEM_TM12, // 0x12c
+ ITEM_TM13, // 0x12d
+ ITEM_TM14, // 0x12e
+ ITEM_TM15, // 0x12f
+ ITEM_TM16, // 0x130
+ ITEM_TM17, // 0x131
+ ITEM_TM18, // 0x132
+ ITEM_TM19, // 0x133
+ ITEM_TM20, // 0x134
+ ITEM_TM21, // 0x135
+ ITEM_TM22, // 0x136
+ ITEM_TM23, // 0x137
+ ITEM_TM24, // 0x138
+ ITEM_TM25, // 0x139
+ ITEM_TM26, // 0x13a
+ ITEM_TM27, // 0x13b
+ ITEM_TM28, // 0x13c
+ ITEM_TM29, // 0x13d
+ ITEM_TM30, // 0x13e
+ ITEM_TM31, // 0x13f
+ ITEM_TM32, // 0x140
+ ITEM_TM33, // 0x141
+ ITEM_TM34, // 0x142
+ ITEM_TM35, // 0x143
+ ITEM_TM36, // 0x144
+ ITEM_TM37, // 0x145
+ ITEM_TM38, // 0x146
+ ITEM_TM39, // 0x147
+ ITEM_TM40, // 0x148
+ ITEM_TM41, // 0x149
+ ITEM_TM42, // 0x14a
+ ITEM_TM43, // 0x14b
+ ITEM_TM44, // 0x14c
+ ITEM_TM45, // 0x14d
+ ITEM_TM46, // 0x14e
+ ITEM_TM47, // 0x14f
+ ITEM_TM48, // 0x150
+ ITEM_TM49, // 0x151
+ ITEM_TM50, // 0x152
+ ITEM_HM01, // 0x153
+ ITEM_HM02, // 0x154
+ ITEM_HM03, // 0x155
+ ITEM_HM04, // 0x156
+ ITEM_HM05, // 0x157
+ ITEM_HM06, // 0x158
+ ITEM_HM07, // 0x159
+ ITEM_HM08, // 0x15a
+ ITEM_15B,
+ ITEM_15C,
- // FireRed/LeafGreen
- ITEM_OAKS_PARCEL, // 0x15d
- ITEM_POKE_FLUTE, // 0x15e
- ITEM_SECRET_KEY, // 0x15f
- ITEM_BIKE_VOUCHER, // 0x160
- ITEM_GOLD_TEETH, // 0x161
- ITEM_OLD_AMBER, // 0x162
- ITEM_CARD_KEY, // 0x163
- ITEM_LIFT_KEY, // 0x164
- ITEM_HELIX_FOSSIL, // 0x165
- ITEM_DOME_FOSSIL, // 0x166
- ITEM_SILPH_SCOPE, // 0x167
- ITEM_BICYCLE, // 0x168
- ITEM_TOWN_MAP, // 0x169
- ITEM_VS_SEEKER, // 0x16a
- ITEM_FAME_CHECKER, // 0x16b
- ITEM_TM_CASE, // 0x16c
- ITEM_BERRY_POUCH, // 0x16d
- ITEM_TEACHY_TV, // 0x16e
- ITEM_TRI_PASS, // 0x16f
- ITEM_RAINBOW_PASS, // 0x170
- ITEM_TEA, // 0x171
- ITEM_MYSTIC_TICKET, // 0x172
- ITEM_AURORA_TICKET, // 0x173
- ITEM_POWDER_JAR, // 0x174
- ITEM_RUBY, // 0x175
- ITEM_SAPPHIRE, // 0x176
+ // FireRed/LeafGreen
+ ITEM_OAKS_PARCEL, // 0x15d
+ ITEM_POKE_FLUTE, // 0x15e
+ ITEM_SECRET_KEY, // 0x15f
+ ITEM_BIKE_VOUCHER, // 0x160
+ ITEM_GOLD_TEETH, // 0x161
+ ITEM_OLD_AMBER, // 0x162
+ ITEM_CARD_KEY, // 0x163
+ ITEM_LIFT_KEY, // 0x164
+ ITEM_HELIX_FOSSIL, // 0x165
+ ITEM_DOME_FOSSIL, // 0x166
+ ITEM_SILPH_SCOPE, // 0x167
+ ITEM_BICYCLE, // 0x168
+ ITEM_TOWN_MAP, // 0x169
+ ITEM_VS_SEEKER, // 0x16a
+ ITEM_FAME_CHECKER, // 0x16b
+ ITEM_TM_CASE, // 0x16c
+ ITEM_BERRY_POUCH, // 0x16d
+ ITEM_TEACHY_TV, // 0x16e
+ ITEM_TRI_PASS, // 0x16f
+ ITEM_RAINBOW_PASS, // 0x170
+ ITEM_TEA, // 0x171
+ ITEM_MYSTIC_TICKET, // 0x172
+ ITEM_AURORA_TICKET, // 0x173
+ ITEM_POWDER_JAR, // 0x174
+ ITEM_RUBY, // 0x175
+ ITEM_SAPPHIRE, // 0x176
- // Emerald
- ITEM_MAGMA_EMBLEM, // 0x177
- ITEM_OLD_SEA_MAP, // 0x178
+ // Emerald
+ ITEM_MAGMA_EMBLEM, // 0x177
+ ITEM_OLD_SEA_MAP, // 0x178
};
#endif // GUARD_ITEMS_H
diff --git a/include/menu.h b/include/menu.h
index cb5efa448..98d7afcc3 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -9,6 +9,18 @@ struct MenuAction
u8 (*func)();
};
+struct MenuAction2
+{
+ const u8 *text;
+ void (*func)(u8);
+};
+
+struct MenuAction3
+{
+ void (*func1)(u8);
+ void (*func2)(u8);
+};
+
void CloseMenu(void);
void AppendToList(u8 *list, u8 *pindex, u32 value);
void InitMenuWindow(const struct WindowConfig *);
@@ -52,7 +64,7 @@ s8 ProcessMenuInputNoWrap_(void);
u8 MenuPrint_PixelCoords(const u8 *, u8, u16, u8);
u8 sub_8072A18(const u8 *, u8, u16, u8, u32);
u8 unref_sub_8072A5C(u8 *, u8 *, u8, u16, u8, u32);
-int sub_8072AB0(u8 *, u8, u16, u8, u8, u32);
+int sub_8072AB0(const u8 *, u8, u16, u8, u8, u32);
void MenuPrint_RightAligned(u8 *, u8, u8);
void sub_8072B80(u8 *, u8, u8, u8 *);
void sub_8072BD8(const u8 *, u8, u8, u16);
diff --git a/include/naming_screen.h b/include/naming_screen.h
index 62d0c0029..d136417ba 100644
--- a/include/naming_screen.h
+++ b/include/naming_screen.h
@@ -45,7 +45,7 @@ struct NamingScreenData
/*0x10*/ u8 unk10;
/*0x11*/ u8 textBuffer[0x10];
/*0x21*/ u8 filler21[0x13];
- const struct NamingScreenTemplate *template;
+ const struct NamingScreenTemplate *template;
/*0x38*/ u8 *destBuffer;
/*0x3C*/ u16 unk3C; //savedKeyRepeatStartDelay
/*0x3E*/ u16 unk3E;
diff --git a/include/palette.h b/include/palette.h
index 37fcb4d65..193773d24 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -16,22 +16,22 @@ enum
struct PaletteFadeControl
{
- u32 multipurpose1;
- u8 delayCounter:6;
- u16 y:5; // blend coefficient
- u16 targetY:5; // target blend coefficient
- u16 blendColor:15;
- u16 active:1;
- u16 multipurpose2:6;
- u16 yDec:1; // whether blend coefficient is decreasing
- u16 bufferTransferDisabled:1;
- u16 mode:2;
- u16 shouldResetBlendRegisters:1;
- u16 hardwareFadeFinishing:1;
- u16 softwareFadeFinishingCounter:5;
- u16 softwareFadeFinishing:1;
- u16 objPaletteToggle:1;
- u8 deltaY:4; // rate of change of blend coefficient
+ /*0x00*/ u32 multipurpose1;
+ /*0x04*/ u8 delayCounter:6;
+ /*0x05*/ u16 y:5; // blend coefficient
+ /*0x05-06*/ u16 targetY:5; // target blend coefficient
+ /*0x07*/ u16 blendColor:15;
+ /*0x07*/ u16 active:1;
+ /*0x08*/ u16 multipurpose2:6;
+ /*0x08*/ u16 yDec:1; // whether blend coefficient is decreasing
+ /*0x08*/ u16 bufferTransferDisabled:1;
+ /*0x09*/ u16 mode:2;
+ /*0x09*/ u16 shouldResetBlendRegisters:1;
+ /*0x09*/ u16 hardwareFadeFinishing:1;
+ /*0x09-0a*/ u16 softwareFadeFinishingCounter:5;
+ /*0x0a*/ u16 softwareFadeFinishing:1;
+ /*0x0a*/ u16 objPaletteToggle:1;
+ /*0x0a*/ u8 deltaY:4; // rate of change of blend coefficient
};
extern struct PaletteFadeControl gPaletteFade;
diff --git a/include/save.h b/include/save.h
index 46bf48d60..3feaa1f3d 100644
--- a/include/save.h
+++ b/include/save.h
@@ -39,12 +39,12 @@ enum
// Do save types
enum
{
- NORMAL_SAVE,
- LINK_SAVE,
- EREADER_SAVE, // mossdeep event
- HOF_SAVE,
- DIFFERENT_FILE_SAVE,
- HOF_DELETE_SAVE // unused
+ NORMAL_SAVE,
+ LINK_SAVE,
+ EREADER_SAVE, // mossdeep event
+ HOF_SAVE,
+ DIFFERENT_FILE_SAVE,
+ HOF_DELETE_SAVE // unused
};
void ClearSaveData(void);
diff --git a/include/script.h b/include/script.h
index a4c7dd575..4070a838f 100644
--- a/include/script.h
+++ b/include/script.h
@@ -4,6 +4,7 @@
struct ScriptContext;
typedef bool8 (*ScrCmdFunc)(struct ScriptContext *);
+typedef u8 Script[];
struct ScriptContext
{
@@ -54,5 +55,6 @@ u32 CalculateRamScriptChecksum(void);
void ClearRamScript(void);
bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId);
u8 *GetRamScript(u8 objectId, u8 *script);
+u16 gScriptResult;
#endif // GUARD_SCRIPT_H
diff --git a/include/sprite.h b/include/sprite.h
index bda635885..13c03ab51 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -16,6 +16,8 @@ struct SpriteFrameImage
u16 size;
};
+#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr}
+
struct SpritePalette
{
const u16 *data;
@@ -142,7 +144,7 @@ struct SpriteTemplate
u16 paletteTag;
const struct OamData *oam;
const union AnimCmd *const *anims;
- struct SpriteFrameImage *images;
+ const struct SpriteFrameImage *images;
const union AffineAnimCmd *const *affineAnims;
void (*callback)(struct Sprite *);
};
diff --git a/include/task.h b/include/task.h
index d2b2302cf..6c6efdf4f 100644
--- a/include/task.h
+++ b/include/task.h
@@ -5,12 +5,12 @@ typedef void (*TaskFunc)(u8 taskId);
struct Task
{
- TaskFunc func;
- bool8 isActive;
- u8 prev;
- u8 next;
- u8 priority;
- s16 data[16];
+ /*0x00*/ TaskFunc func;
+ /*0x04*/ bool8 isActive;
+ /*0x05*/ u8 prev;
+ /*0x06*/ u8 next;
+ /*0x07*/ u8 priority;
+ /*0x08*/ s16 data[16];
};
extern struct Task gTasks[];
diff --git a/ld_script.txt b/ld_script.txt
index 7d44b019a..7c2214347 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -201,9 +201,7 @@ SECTIONS {
src/heal_location.o(.text);
asm/region_map.o(.text);
asm/cute_sketch.o(.text);
- asm/decoration.o(.text);
src/decoration.o(.text);
- asm/decoration.o(.text_80FE868);
asm/slot_machine.o(.text);
src/slot_machine.o(.text);
asm/slot_machine.o(.text_8104D30)
@@ -435,7 +433,7 @@ SECTIONS {
src/heal_location.o(.rodata);
data/region_map.o(.rodata);
data/cute_sketch.o(.rodata);
- data/decoration.o(.rodata);
+ src/decoration.o(.rodata);
data/slot_machine.o(.rodata);
src/contest_painting.o(.rodata);
src/battle_ai.o(.rodata);
diff --git a/src/decoration.c b/src/decoration.c
index 279a7568b..a2b0dcd31 100644..100755
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -1,23 +1,1786 @@
#include "global.h"
#include "asm.h"
+#include "map_object_constants.h"
+#include "rom4.h"
+#include "sound.h"
+#include "songs.h"
+#include "string_util.h"
#include "menu.h"
+#include "menu_helpers.h"
+#include "strings.h"
+#include "script.h"
+#include "palette.h"
+#include "field_player_avatar.h"
+#include "field_camera.h"
+#include "fieldmap.h"
+#include "metatile_behavior.h"
+#include "event_data.h"
+#include "field_weather.h"
+#include "decoration.h"
-extern u8 gUnknown_020388F2;
-extern u8 gUnknown_020388F3;
-extern u8 gUnknown_020388F4;
-extern u8 gUnknown_020388F6;
-extern u8 gUnknown_020388D5;
+const u8 DecorDesc_SMALL_DESK[] = _(
+ "A small desk built\n"
+ "for one.");
-void sub_80FEC94(u8 arg0);
-void sub_80FECB8(u8 arg0);
-void sub_80FECE0(u8 arg0);
+const u8 DecorDesc_POKEMON_DESK[] = _(
+ "A small desk built in\n"
+ "the shape of a POKé\n"
+ "BALL.");
-void sub_80FE7EC(u8 arg0)
+const u8 DecorDesc_HEAVY_DESK[] = _(
+ "A large desk made\n"
+ "of steel. Put some\n"
+ "decorations on it.");
+
+const u8 DecorDesc_RAGGED_DESK[] = _(
+ "A large desk made\n"
+ "of wood. Put some\n"
+ "decorations on it.");
+
+const u8 DecorDesc_COMFORT_DESK[] = _(
+ "A large desk made\n"
+ "of leaves. Put some\n"
+ "decorations on it.");
+
+const u8 DecorDesc_PRETTY_DESK[] = _(
+ "A huge desk made\n"
+ "of glass. Holds lots\n"
+ "of decorations.");
+
+const u8 DecorDesc_BRICK_DESK[] = _(
+ "A huge desk made\n"
+ "of brick. Holds lots\n"
+ "of decorations.");
+
+const u8 DecorDesc_CAMP_DESK[] = _(
+ "A huge desk made\n"
+ "of logs. Put lots of\n"
+ "decorations on it.");
+
+const u8 DecorDesc_HARD_DESK[] = _(
+ "A huge desk made\n"
+ "of rocks. Holds\n"
+ "many decorations.");
+
+const u8 DecorDesc_SMALL_CHAIR[] = _(
+ "A small chair made\n"
+ "for one.");
+
+const u8 DecorDesc_POKEMON_CHAIR[] = _(
+ "A small chair built\n"
+ "in the shape of a\n"
+ "POKé BALL.");
+
+const u8 DecorDesc_HEAVY_CHAIR[] = _(
+ "A small chair made\n"
+ "of steel.");
+
+const u8 DecorDesc_PRETTY_CHAIR[] = _(
+ "A small chair made\n"
+ "of glass.");
+
+const u8 DecorDesc_COMFORT_CHAIR[] = _(
+ "A small chair made\n"
+ "of leaves.");
+
+const u8 DecorDesc_RAGGED_CHAIR[] = _(
+ "A small chair made\n"
+ "of wood.");
+
+const u8 DecorDesc_BRICK_CHAIR[] = _(
+ "A small chair made\n"
+ "of brick.");
+
+const u8 DecorDesc_CAMP_CHAIR[] = _(
+ "A small chair made\n"
+ "of logs.");
+
+const u8 DecorDesc_HARD_CHAIR[] = _(
+ "A small chair made\n"
+ "of rock.");
+
+const u8 DecorDesc_RED_PLANT[] = _(
+ "A vivid red potted\n"
+ "plant.");
+
+const u8 DecorDesc_TROPICAL_PLANT[] = _(
+ "A flowering tropical\n"
+ "plant in a pot.");
+
+const u8 DecorDesc_PRETTY_FLOWERS[] = _(
+ "A pot of cute\n"
+ "flowers.");
+
+const u8 DecorDesc_COLORFUL_PLANT[] = _(
+ "A large pot with\n"
+ "many colorful\n"
+ "flowers.");
+
+const u8 DecorDesc_BIG_PLANT[] = _(
+ "A large, umbrella-\n"
+ "shaped plant in a\n"
+ "big pot.");
+
+const u8 DecorDesc_GORGEOUS_PLANT[] = _(
+ "A large, impressive\n"
+ "plant in a big pot.");
+
+const u8 DecorDesc_RED_BRICK[] = _(
+ "A red-colored brick.\n"
+ "Decorations can be\n"
+ "placed on top.");
+
+const u8 DecorDesc_YELLOW_BRICK[] = _(
+ "A yellow-colored\n"
+ "brick. Put some\n"
+ "decorations on top.");
+
+const u8 DecorDesc_BLUE_BRICK[] = _(
+ "A blue-colored\n"
+ "brick. Put some\n"
+ "decorations on top.");
+
+const u8 DecorDesc_RED_BALLOON[] = _(
+ "A red balloon filled\n"
+ "with water. Bursts\n"
+ "if stepped on.");
+
+const u8 DecorDesc_BLUE_BALLOON[] = _(
+ "A blue balloon filled\n"
+ "with water. Bursts\n"
+ "if stepped on.");
+
+const u8 DecorDesc_YELLOW_BALLOON[] = _(
+ "A yellow balloon\n"
+ "filled with water.\n"
+ "Pops if stepped on.");
+
+const u8 DecorDesc_RED_TENT[] = _(
+ "A large red tent.\n"
+ "You can hide inside\n"
+ "it.");
+
+const u8 DecorDesc_BLUE_TENT[] = _(
+ "A large blue tent.\n"
+ "You can hide inside\n"
+ "it.");
+
+const u8 DecorDesc_SOLID_BOARD[] = _(
+ "Place over a hole to\n"
+ "cross to the other\n"
+ "side.");
+
+const u8 DecorDesc_SLIDE[] = _(
+ "Use to slide down\n"
+ "from the platform.");
+
+const u8 DecorDesc_FENCE_LENGTH[] = _(
+ "A small fence that\n"
+ "blocks passage.");
+
+const u8 DecorDesc_FENCE_WIDTH[] = _(
+ "A small fence that\n"
+ "blocks passage.");
+
+const u8 DecorDesc_TIRE[] = _(
+ "An old large tire.\n"
+ "Decorations can be\n"
+ "placed on top.");
+
+const u8 DecorDesc_STAND[] = _(
+ "A large pedestal\n"
+ "with steps.");
+
+const u8 DecorDesc_MUD_BALL[] = _(
+ "A large ball of mud.\n"
+ "Crumbles if stepped\n"
+ "on.");
+
+const u8 DecorDesc_BREAKABLE_DOOR[] = _(
+ "A weird door that\n"
+ "people can walk\n"
+ "right through.");
+
+const u8 DecorDesc_SAND_ORNAMENT[] = _(
+ "An ornament made\n"
+ "of sand. Crumbles if\n"
+ "touched.");
+
+const u8 DecorDesc_SILVER_SHIELD[] = _(
+ "Awarded for 50\n"
+ "straight wins at\n"
+ "the BATTLE TOWER.");
+
+const u8 DecorDesc_GOLD_SHIELD[] = _(
+ "Awarded for 100\n"
+ "straight wins at\n"
+ "the BATTLE TOWER.");
+
+const u8 DecorDesc_GLASS_ORNAMENT[] = _(
+ "A glass replica of\n"
+ "a famous sculpture\n"
+ "at the ART MUSEUM.");
+
+const u8 DecorDesc_TV[] = _(
+ "A small, gray-\n"
+ "colored toy TV.");
+
+const u8 DecorDesc_ROUND_TV[] = _(
+ "A toy TV modeled\n"
+ "in the image of a\n"
+ "SEEDOT.");
+
+const u8 DecorDesc_CUTE_TV[] = _(
+ "A toy TV modeled\n"
+ "in the image of a\n"
+ "SKITTY.");
+
+const u8 DecorDesc_GLITTER_MAT[] = _(
+ "An odd mat that\n"
+ "glitters if stepped\n"
+ "on.");
+
+const u8 DecorDesc_JUMP_MAT[] = _(
+ "A trick mat that\n"
+ "jumps when it is\n"
+ "stepped on.");
+
+const u8 DecorDesc_SPIN_MAT[] = _(
+ "A trick mat that\n"
+ "spins around when\n"
+ "stepped on.");
+
+const u8 DecorDesc_C_LOW_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "a low C note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_D_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "a D note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_E_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "an E note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_F_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "an F note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_G_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "a G note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_A_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "an A note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_B_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "a B note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_C_HIGH_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "a high C note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_SURF_MAT[] = _(
+ "A mat designed with\n"
+ "a SURF image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_THUNDER_MAT[] = _(
+ "A mat designed with\n"
+ "a THUNDER image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_FIRE_BLAST_MAT[] = _(
+ "A mat designed with\n"
+ "a FIRE BLAST image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_POWDER_SNOW_MAT[] = _(
+ "A mat with a POWDER\n"
+ "SNOW image design.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_ATTRACT_MAT[] = _(
+ "A mat designed with\n"
+ "an ATTRACT image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_FISSURE_MAT[] = _(
+ "A mat designed with\n"
+ "a FISSURE image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_SPIKES_MAT[] = _(
+ "A mat designed with\n"
+ "a SPIKES image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_BALL_POSTER[] = _(
+ "A small poster\n"
+ "printed with POKé\n"
+ "BALLS.");
+
+const u8 DecorDesc_GREEN_POSTER[] = _(
+ "A small poster with\n"
+ "a TREECKO print.");
+
+const u8 DecorDesc_RED_POSTER[] = _(
+ "A small poster with\n"
+ "a TORCHIC print.");
+
+const u8 DecorDesc_BLUE_POSTER[] = _(
+ "A small poster with\n"
+ "a MUDKIP print.");
+
+const u8 DecorDesc_CUTE_POSTER[] = _(
+ "A small poster with\n"
+ "an AZURILL print.");
+
+const u8 DecorDesc_PIKA_POSTER[] = _(
+ "A large poster with\n"
+ "a PIKACHU and\n"
+ "PICHU print.");
+
+const u8 DecorDesc_LONG_POSTER[] = _(
+ "A large poster with\n"
+ "a SEVIPER print.");
+
+const u8 DecorDesc_SEA_POSTER[] = _(
+ "A large poster with\n"
+ "a RELICANTH print.");
+
+const u8 DecorDesc_SKY_POSTER[] = _(
+ "A large poster with\n"
+ "a WINGULL print.");
+
+const u8 DecorDesc_KISS_POSTER[] = _(
+ "A large poster with\n"
+ "a SMOOCHUM print.");
+
+const u8 DecorDesc_PICHU_DOLL[] = _(
+ "A PICHU doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_PIKACHU_DOLL[] = _(
+ "A PIKACHU doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_MARILL_DOLL[] = _(
+ "A MARILL doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_TOGEPI_DOLL[] = _(
+#if REVISION >= 1
+ "A TOGEPI doll.\n"
+#else
+ "A TOPGEPI doll.\n"
+#endif
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_CYNDAQUIL_DOLL[] = _(
+ "A CYNDAQUIL doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_CHIKORITA_DOLL[] = _(
+ "A CHIKORITA doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_TOTODILE_DOLL[] = _(
+ "A TOTODILE doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_JIGGLYPUFF_DOLL[] = _(
+ "A JIGGLYPUFF doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_MEOWTH_DOLL[] = _(
+ "A MEOWTH doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_CLEFAIRY_DOLL[] = _(
+ "A CLEFAIRY doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_DITTO_DOLL[] = _(
+ "A DITTO doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_SMOOCHUM_DOLL[] = _(
+ "A SMOOCHUM doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_TREECKO_DOLL[] = _(
+ "A TREECKO doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_TORCHIC_DOLL[] = _(
+ "A TORCHIC doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_MUDKIP_DOLL[] = _(
+ "A MUDKIP doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_DUSKULL_DOLL[] = _(
+ "A DUSKULL doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_WYNAUT_DOLL[] = _(
+ "A WYNAUT doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_BALTOY_DOLL[] = _(
+ "A BALTOY doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_KECLEON_DOLL[] = _(
+ "A KECLEON doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_AZURILL_DOLL[] = _(
+ "An AZURILL doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_SKITTY_DOLL[] = _(
+ "A SKITTY doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_SWABLU_DOLL[] = _(
+ "A SWABLU doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_GULPIN_DOLL[] = _(
+ "A GULPIN doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_LOTAD_DOLL[] = _(
+ "A LOTAD doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_SEEDOT_DOLL[] = _(
+ "A SEEDOT doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_PIKA_CUSHION[] = _(
+ "A PIKACHU cushion.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_ROUND_CUSHION[] = _(
+ "A MARILL cushion.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_KISS_CUSHION[] = _(
+ "A SMOOCHUM\n"
+ "cushion. Place it on\n"
+ "a mat or a desk.");
+
+const u8 DecorDesc_ZIGZAG_CUSHION[] = _(
+ "A ZIGZAGOON\n"
+ "cushion. Place it on\n"
+ "a mat or a desk.");
+
+const u8 DecorDesc_SPIN_CUSHION[] = _(
+ "A SPINDA cushion.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_DIAMOND_CUSHION[] = _(
+ "A SABLEYE cushion.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_BALL_CUSHION[] = _(
+ "A BALL cushion.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_GRASS_CUSHION[] = _(
+ "A grass-mark\n"
+ "cushion. Place it on\n"
+ "a mat or a desk.");
+
+const u8 DecorDesc_FIRE_CUSHION[] = _(
+ "A fire-mark\n"
+ "cushion. Place it on\n"
+ "a mat or a desk.");
+
+const u8 DecorDesc_WATER_CUSHION[] = _(
+ "A water-mark\n"
+ "cushion. Place it on\n"
+ "a mat or a desk.");
+
+const u8 DecorDesc_SNORLAX_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_RHYDON_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_LAPRAS_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_VENUSAUR_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_CHARIZARD_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_BLASTOISE_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_WAILMER_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_REGIROCK_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_REGICE_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_REGISTEEL_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u16 DecorGfx_SMALL_DESK[] = {
+ 0x87
+};
+
+const u16 DecorGfx_POKEMON_DESK[] = {
+ 0x8F
+};
+
+const u16 DecorGfx_HEAVY_DESK[] = {
+ 0x90,
+ 0x91,
+ 0x92,
+ 0x98,
+ 0x99,
+ 0x9A
+};
+
+const u16 DecorGfx_RAGGED_DESK[] = {
+ 0x93,
+ 0x94,
+ 0x95,
+ 0x9B,
+ 0x9C,
+ 0x9D
+};
+
+const u16 DecorGfx_COMFORT_DESK[] = {
+ 0x96,
+ 0x97,
+ 0xA3,
+ 0x9E,
+ 0x9F,
+ 0xAB
+};
+
+const u16 DecorGfx_PRETTY_DESK[] = {
+ 0xBD,
+ 0xBE,
+ 0xBF,
+ 0xC5,
+ 0xC6,
+ 0xC7,
+ 0xCD,
+ 0xCE,
+ 0xCF
+};
+
+const u16 DecorGfx_BRICK_DESK[] = {
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xA8,
+ 0xA9,
+ 0xAA,
+ 0xB0,
+ 0xB1,
+ 0xB2
+};
+
+const u16 DecorGfx_CAMP_DESK[] = {
+ 0xA4,
+ 0xA5,
+ 0xA6,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xB4,
+ 0xB5,
+ 0xB6
+};
+
+const u16 DecorGfx_HARD_DESK[] = {
+ 0xA7,
+ 0xBB,
+ 0xBC,
+ 0xAF,
+ 0xC3,
+ 0xC4,
+ 0xB7,
+ 0xCB,
+ 0xCC
+};
+
+const u16 DecorGfx_SMALL_CHAIR[] = {
+ 0xB8
+};
+
+const u16 DecorGfx_POKEMON_CHAIR[] = {
+ 0xB9
+};
+
+const u16 DecorGfx_HEAVY_CHAIR[] = {
+ 0xBA
+};
+
+const u16 DecorGfx_PRETTY_CHAIR[] = {
+ 0xC0
+};
+
+const u16 DecorGfx_COMFORT_CHAIR[] = {
+ 0xC1
+};
+
+const u16 DecorGfx_RAGGED_CHAIR[] = {
+ 0xC2
+};
+
+const u16 DecorGfx_BRICK_CHAIR[] = {
+ 0xC8
+};
+
+const u16 DecorGfx_CAMP_CHAIR[] = {
+ 0xC9
+};
+
+const u16 DecorGfx_HARD_CHAIR[] = {
+ 0xCA
+};
+
+const u16 DecorGfx_RED_PLANT[] = {
+ 0xD0,
+ 0xD8
+};
+
+const u16 DecorGfx_TROPICAL_PLANT[] = {
+ 0xD2,
+ 0xDA
+};
+
+const u16 DecorGfx_PRETTY_FLOWERS[] = {
+ 0xD4,
+ 0xDC
+};
+
+const u16 DecorGfx_COLORFUL_PLANT[] = {
+ 0xE0,
+ 0xE2,
+ 0xE8,
+ 0xE9
+};
+
+const u16 DecorGfx_BIG_PLANT[] = {
+ 0xE4,
+ 0xE6,
+ 0xEC,
+ 0xED
+};
+
+const u16 DecorGfx_GORGEOUS_PLANT[] = {
+ 0xF0,
+ 0xF2,
+ 0xF8,
+ 0xF9
+};
+
+const u16 DecorGfx_RED_BRICK[] = {
+ 0x25,
+ 0x2D
+};
+
+const u16 DecorGfx_YELLOW_BRICK[] = {
+ 0x26,
+ 0x2E
+};
+
+const u16 DecorGfx_BLUE_BRICK[] = {
+ 0x27,
+ 0x2F
+};
+
+const u16 DecorGfx_RED_BALLOON[] = {
+ 0x138
+};
+
+const u16 DecorGfx_BLUE_BALLOON[] = {
+ 0x13C
+};
+
+const u16 DecorGfx_YELLOW_BALLOON[] = {
+ 0x140
+};
+
+const u16 DecorGfx_RED_TENT[] = {
+ 0x30,
+ 0x31,
+ 0x32,
+ 0x38,
+ 0x39,
+ 0x3A,
+ 0x40,
+ 0x41,
+ 0x3B
+};
+
+const u16 DecorGfx_BLUE_TENT[] = {
+ 0x48,
+ 0x49,
+ 0x68,
+ 0x50,
+ 0x51,
+ 0x70,
+ 0x58,
+ 0x59,
+ 0x69
+};
+
+const u16 DecorGfx_SOLID_BOARD[] = {
+ 0x34,
+ 0x3C
+};
+
+const u16 DecorGfx_SLIDE[] = {
+ 0x35,
+ 0x36,
+ 0x3D,
+ 0x3E,
+ 0x63,
+ 0x64,
+ 0x6F,
+ 0x77
+};
+
+const u16 DecorGfx_FENCE_LENGTH[] = {
+ 0x33
+};
+
+const u16 DecorGfx_FENCE_WIDTH[] = {
+ 0x2C
+};
+
+const u16 DecorGfx_TIRE[] = {
+ 0x80,
+ 0x81,
+ 0x88,
+ 0x89
+};
+
+const u16 DecorGfx_STAND[] = {
+ 0x6A,
+ 0x6B,
+ 0x6C,
+ 0x6D,
+ 0x72,
+ 0x73,
+ 0x74,
+ 0x75
+};
+
+const u16 DecorGfx_MUD_BALL[] = {
+ 0x28
+};
+
+const u16 DecorGfx_BREAKABLE_DOOR[] = {
+ 0x37,
+ 0x3F
+};
+
+const u16 DecorGfx_SAND_ORNAMENT[] = {
+ 0x85,
+ 0x8D
+};
+
+const u16 DecorGfx_SILVER_SHIELD[] = {
+ 0xD6,
+ 0xDE
+};
+
+const u16 DecorGfx_GOLD_SHIELD[] = {
+ 0x12E,
+ 0x136
+};
+
+const u16 DecorGfx_GLASS_ORNAMENT[] = {
+ 0x82,
+ 0x8A
+};
+
+const u16 DecorGfx_TV[] = {
+ 0xF4
+};
+
+const u16 DecorGfx_ROUND_TV[] = {
+ 0xF5
+};
+
+const u16 DecorGfx_CUTE_TV[] = {
+ 0xF6
+};
+
+const u16 DecorGfx_GLITTER_MAT[] = {
+ 0x60
+};
+
+const u16 DecorGfx_JUMP_MAT[] = {
+ 0x61
+};
+
+const u16 DecorGfx_SPIN_MAT[] = {
+ 0x62
+};
+
+const u16 DecorGfx_C_LOW_NOTE_MAT[] = {
+ 0x78
+};
+
+const u16 DecorGfx_D_NOTE_MAT[] = {
+ 0x79
+};
+
+const u16 DecorGfx_E_NOTE_MAT[] = {
+ 0x7A
+};
+
+const u16 DecorGfx_F_NOTE_MAT[] = {
+ 0x7B
+};
+
+const u16 DecorGfx_G_NOTE_MAT[] = {
+ 0x7C
+};
+
+const u16 DecorGfx_A_NOTE_MAT[] = {
+ 0x7D
+};
+
+const u16 DecorGfx_B_NOTE_MAT[] = {
+ 0x7E
+};
+
+const u16 DecorGfx_C_HIGH_NOTE_MAT[] = {
+ 0xB3
+};
+
+const u16 DecorGfx_SURF_MAT[] = {
+ 0x42,
+ 0x43,
+ 0x44,
+ 0x4A,
+ 0x4B,
+ 0x4C,
+ 0x52,
+ 0x53,
+ 0x54
+};
+
+const u16 DecorGfx_THUNDER_MAT[] = {
+ 0x45,
+ 0x46,
+ 0x47,
+ 0x4D,
+ 0x4E,
+ 0x4F,
+ 0x55,
+ 0x56,
+ 0x57
+};
+
+const u16 DecorGfx_FIRE_BLAST_MAT[] = {
+ 0x5A,
+ 0x5B,
+ 0x5C,
+ 0x5D,
+ 0x5E,
+ 0x5F,
+ 0x65,
+ 0x66,
+ 0x67
+};
+
+const u16 DecorGfx_POWDER_SNOW_MAT[] = {
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x110,
+ 0x111,
+ 0x112
+};
+
+const u16 DecorGfx_ATTRACT_MAT[] = {
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x113,
+ 0x114,
+ 0x115
+};
+
+const u16 DecorGfx_FISSURE_MAT[] = {
+ 0x106,
+ 0x107,
+ 0x118,
+ 0x10E,
+ 0x10F,
+ 0x120,
+ 0x116,
+ 0x117,
+ 0x128
+};
+
+const u16 DecorGfx_SPIKES_MAT[] = {
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x129,
+ 0x12A,
+ 0x12B
+};
+
+const u16 DecorGfx_BALL_POSTER[] = {
+ 0x130
+};
+
+const u16 DecorGfx_GREEN_POSTER[] = {
+ 0x131
+};
+
+const u16 DecorGfx_RED_POSTER[] = {
+ 0x132
+};
+
+const u16 DecorGfx_BLUE_POSTER[] = {
+ 0x133
+};
+
+const u16 DecorGfx_CUTE_POSTER[] = {
+ 0x134
+};
+
+const u16 DecorGfx_PIKA_POSTER[] = {
+ 0x11C,
+ 0x11D
+};
+
+const u16 DecorGfx_LONG_POSTER[] = {
+ 0x11E,
+ 0x11F
+};
+
+const u16 DecorGfx_SEA_POSTER[] = {
+ 0x124,
+ 0x125
+};
+
+const u16 DecorGfx_SKY_POSTER[] = {
+ 0x126,
+ 0x127
+};
+
+const u16 DecorGfx_KISS_POSTER[] = {
+ 0x12C,
+ 0x12D
+};
+
+const u16 DecorGfx_PICHU_DOLL[] = {
+ MAP_OBJ_GFX_PICHU_DOLL
+};
+
+const u16 DecorGfx_PIKACHU_DOLL[] = {
+ MAP_OBJ_GFX_PIKACHU_DOLL
+};
+
+const u16 DecorGfx_MARILL_DOLL[] = {
+ MAP_OBJ_GFX_MARILL_DOLL
+};
+
+const u16 DecorGfx_TOGEPI_DOLL[] = {
+ MAP_OBJ_GFX_TOGEPI_DOLL
+};
+
+const u16 DecorGfx_CYNDAQUIL_DOLL[] = {
+ MAP_OBJ_GFX_CYNDAQUIL_DOLL
+};
+
+const u16 DecorGfx_CHIKORITA_DOLL[] = {
+ MAP_OBJ_GFX_CHIKORITA_DOLL
+};
+
+const u16 DecorGfx_TOTODILE_DOLL[] = {
+ MAP_OBJ_GFX_TOTODILE_DOLL
+};
+
+const u16 DecorGfx_JIGGLYPUFF_DOLL[] = {
+ MAP_OBJ_GFX_JIGGLYPUFF_DOLL
+};
+
+const u16 DecorGfx_MEOWTH_DOLL[] = {
+ MAP_OBJ_GFX_MEOWTH_DOLL
+};
+
+const u16 DecorGfx_CLEFAIRY_DOLL[] = {
+ MAP_OBJ_GFX_CLEFAIRY_DOLL
+};
+
+const u16 DecorGfx_DITTO_DOLL[] = {
+ MAP_OBJ_GFX_DITTO_DOLL
+};
+
+const u16 DecorGfx_SMOOCHUM_DOLL[] = {
+ MAP_OBJ_GFX_SMOOCHUM_DOLL
+};
+
+const u16 DecorGfx_TREECKO_DOLL[] = {
+ MAP_OBJ_GFX_TREECKO_DOLL
+};
+
+const u16 DecorGfx_TORCHIC_DOLL[] = {
+ MAP_OBJ_GFX_TORCHIC_DOLL
+};
+
+const u16 DecorGfx_MUDKIP_DOLL[] = {
+ MAP_OBJ_GFX_MUDKIP_DOLL
+};
+
+const u16 DecorGfx_DUSKULL_DOLL[] = {
+ MAP_OBJ_GFX_DUSKULL_DOLL
+};
+
+const u16 DecorGfx_WYNAUT_DOLL[] = {
+ MAP_OBJ_GFX_WYNAUT_DOLL
+};
+
+const u16 DecorGfx_BALTOY_DOLL[] = {
+ MAP_OBJ_GFX_BALTOY_DOLL
+};
+
+const u16 DecorGfx_KECLEON_DOLL[] = {
+ MAP_OBJ_GFX_KECLEON_DOLL
+};
+
+const u16 DecorGfx_AZURILL_DOLL[] = {
+ MAP_OBJ_GFX_AZURILL_DOLL
+};
+
+const u16 DecorGfx_SKITTY_DOLL[] = {
+ MAP_OBJ_GFX_SKITTY_DOLL
+};
+
+const u16 DecorGfx_SWABLU_DOLL[] = {
+ MAP_OBJ_GFX_SWABLU_DOLL
+};
+
+const u16 DecorGfx_GULPIN_DOLL[] = {
+ MAP_OBJ_GFX_GULPIN_DOLL
+};
+
+const u16 DecorGfx_LOTAD_DOLL[] = {
+ MAP_OBJ_GFX_LOTAD_DOLL
+};
+
+const u16 DecorGfx_SEEDOT_DOLL[] = {
+ MAP_OBJ_GFX_SEEDOT_DOLL
+};
+
+const u16 DecorGfx_PIKA_CUSHION[] = {
+ MAP_OBJ_GFX_PIKA_CUSHION
+};
+
+const u16 DecorGfx_ROUND_CUSHION[] = {
+ MAP_OBJ_GFX_ROUND_CUSHION
+};
+
+const u16 DecorGfx_KISS_CUSHION[] = {
+ MAP_OBJ_GFX_KISS_CUSHION
+};
+
+const u16 DecorGfx_ZIGZAG_CUSHION[] = {
+ MAP_OBJ_GFX_ZIGZAG_CUSHION
+};
+
+const u16 DecorGfx_SPIN_CUSHION[] = {
+ MAP_OBJ_GFX_SPIN_CUSHION
+};
+
+const u16 DecorGfx_DIAMOND_CUSHION[] = {
+ MAP_OBJ_GFX_DIAMOND_CUSHION
+};
+
+const u16 DecorGfx_BALL_CUSHION[] = {
+ MAP_OBJ_GFX_BALL_CUSHION
+};
+
+const u16 DecorGfx_GRASS_CUSHION[] = {
+ MAP_OBJ_GFX_GRASS_CUSHION
+};
+
+const u16 DecorGfx_FIRE_CUSHION[] = {
+ MAP_OBJ_GFX_FIRE_CUSHION
+};
+
+const u16 DecorGfx_WATER_CUSHION[] = {
+ MAP_OBJ_GFX_WATER_CUSHION
+};
+
+const u16 DecorGfx_SNORLAX_DOLL[] = {
+ MAP_OBJ_GFX_BIG_SNORLAX_DOLL
+};
+
+const u16 DecorGfx_RHYDON_DOLL[] = {
+ MAP_OBJ_GFX_BIG_RHYDON_DOLL
+};
+
+const u16 DecorGfx_LAPRAS_DOLL[] = {
+ MAP_OBJ_GFX_BIG_LAPRAS_DOLL
+};
+
+const u16 DecorGfx_VENUSAUR_DOLL[] = {
+ MAP_OBJ_GFX_BIG_VENUSAUR_DOLL
+};
+
+const u16 DecorGfx_CHARIZARD_DOLL[] = {
+ MAP_OBJ_GFX_BIG_CHARIZARD_DOLL
+};
+
+const u16 DecorGfx_BLASTOISE_DOLL[] = {
+ MAP_OBJ_GFX_BIG_BLASTOISE_DOLL
+};
+
+const u16 DecorGfx_WAILMER_DOLL[] = {
+ MAP_OBJ_GFX_BIG_WAILMER_DOLL
+};
+
+const u16 DecorGfx_REGIROCK_DOLL[] = {
+ MAP_OBJ_GFX_BIG_REGIROCK_DOLL
+};
+
+const u16 DecorGfx_REGICE_DOLL[] = {
+ MAP_OBJ_GFX_BIG_REGICE_DOLL
+};
+
+const u16 DecorGfx_REGISTEEL_DOLL[] = {
+ MAP_OBJ_GFX_BIG_REGISTEEL_DOLL
+};
+
+const struct Decoration gDecorations[] = {
+ {DECOR_NONE, _("SMALL DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_DESK, 0, DecorDesc_SMALL_DESK, DecorGfx_SMALL_DESK},
+ {DECOR_SMALL_DESK, _("SMALL DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_DESK, 3000, DecorDesc_SMALL_DESK, DecorGfx_SMALL_DESK},
+ {DECOR_POKEMON_DESK, _("POKéMON DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_DESK, 3000, DecorDesc_POKEMON_DESK, DecorGfx_POKEMON_DESK},
+ {DECOR_HEAVY_DESK, _("HEAVY DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x2, DECORCAT_DESK, 6000, DecorDesc_HEAVY_DESK, DecorGfx_HEAVY_DESK},
+ {DECOR_RAGGED_DESK, _("RAGGED DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x2, DECORCAT_DESK, 6000, DecorDesc_RAGGED_DESK, DecorGfx_RAGGED_DESK},
+ {DECOR_COMFORT_DESK, _("COMFORT DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x2, DECORCAT_DESK, 6000, DecorDesc_COMFORT_DESK, DecorGfx_COMFORT_DESK},
+ {DECOR_PRETTY_DESK, _("PRETTY DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_PRETTY_DESK, DecorGfx_PRETTY_DESK},
+ {DECOR_BRICK_DESK, _("BRICK DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_BRICK_DESK, DecorGfx_BRICK_DESK},
+ {DECOR_CAMP_DESK, _("CAMP DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_CAMP_DESK, DecorGfx_CAMP_DESK},
+ {DECOR_HARD_DESK, _("HARD DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_HARD_DESK, DecorGfx_HARD_DESK},
+ {DECOR_SMALL_CHAIR, _("SMALL CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_SMALL_CHAIR, DecorGfx_SMALL_CHAIR},
+ {DECOR_POKEMON_CHAIR, _("POKéMON CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_POKEMON_CHAIR, DecorGfx_POKEMON_CHAIR},
+ {DECOR_HEAVY_CHAIR, _("HEAVY CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_HEAVY_CHAIR, DecorGfx_HEAVY_CHAIR},
+ {DECOR_PRETTY_CHAIR, _("PRETTY CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_PRETTY_CHAIR, DecorGfx_PRETTY_CHAIR},
+ {DECOR_COMFORT_CHAIR, _("COMFORT CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_COMFORT_CHAIR, DecorGfx_COMFORT_CHAIR},
+ {DECOR_RAGGED_CHAIR, _("RAGGED CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_RAGGED_CHAIR, DecorGfx_RAGGED_CHAIR},
+ {DECOR_BRICK_CHAIR, _("BRICK CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_BRICK_CHAIR, DecorGfx_BRICK_CHAIR},
+ {DECOR_CAMP_CHAIR, _("CAMP CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_CAMP_CHAIR, DecorGfx_CAMP_CHAIR},
+ {DECOR_HARD_CHAIR, _("HARD CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_HARD_CHAIR, DecorGfx_HARD_CHAIR},
+ {DECOR_RED_PLANT, _("RED PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_PLANT, 3000, DecorDesc_RED_PLANT, DecorGfx_RED_PLANT},
+ {DECOR_TROPICAL_PLANT, _("TROPICAL PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_PLANT, 3000, DecorDesc_TROPICAL_PLANT, DecorGfx_TROPICAL_PLANT},
+ {DECOR_PRETTY_FLOWERS, _("PRETTY FLOWERS"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_PLANT, 3000, DecorDesc_PRETTY_FLOWERS, DecorGfx_PRETTY_FLOWERS},
+ {DECOR_COLORFUL_PLANT, _("COLORFUL PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_2x2, DECORCAT_PLANT, 5000, DecorDesc_COLORFUL_PLANT, DecorGfx_COLORFUL_PLANT},
+ {DECOR_BIG_PLANT, _("BIG PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_2x2, DECORCAT_PLANT, 5000, DecorDesc_BIG_PLANT, DecorGfx_BIG_PLANT},
+ {DECOR_GORGEOUS_PLANT, _("GORGEOUS PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_2x2, DECORCAT_PLANT, 5000, DecorDesc_GORGEOUS_PLANT, DecorGfx_GORGEOUS_PLANT},
+ {DECOR_RED_BRICK, _("RED BRICK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 500, DecorDesc_RED_BRICK, DecorGfx_RED_BRICK},
+ {DECOR_YELLOW_BRICK, _("YELLOW BRICK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 500, DecorDesc_YELLOW_BRICK, DecorGfx_YELLOW_BRICK},
+ {DECOR_BLUE_BRICK, _("BLUE BRICK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 500, DecorDesc_BLUE_BRICK, DecorGfx_BLUE_BRICK},
+ {DECOR_RED_BALLOON, _("RED BALLOON"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_RED_BALLOON, DecorGfx_RED_BALLOON},
+ {DECOR_BLUE_BALLOON, _("BLUE BALLOON"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_BLUE_BALLOON, DecorGfx_BLUE_BALLOON},
+ {DECOR_YELLOW_BALLOON, _("YELLOW BALLOON"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_YELLOW_BALLOON, DecorGfx_YELLOW_BALLOON},
+ {DECOR_RED_TENT, _("RED TENT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_ORNAMENT, 10000, DecorDesc_RED_TENT, DecorGfx_RED_TENT},
+ {DECOR_BLUE_TENT, _("BLUE TENT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_ORNAMENT, 10000, DecorDesc_BLUE_TENT, DecorGfx_BLUE_TENT},
+ {DECOR_SOLID_BOARD, _("SOLID BOARD"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 3000, DecorDesc_SOLID_BOARD, DecorGfx_SOLID_BOARD},
+ {DECOR_SLIDE, _("SLIDE"), DECORPERM_PASS_FLOOR, DECORSHAPE_2x4, DECORCAT_ORNAMENT, 8000, DecorDesc_SLIDE, DecorGfx_SLIDE},
+ {DECOR_FENCE_LENGTH, _("FENCE LENGTH"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_FENCE_LENGTH, DecorGfx_FENCE_LENGTH},
+ {DECOR_FENCE_WIDTH, _("FENCE WIDTH"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_FENCE_WIDTH, DecorGfx_FENCE_WIDTH},
+ {DECOR_TIRE, _("TIRE"), DECORPERM_SOLID_FLOOR, DECORSHAPE_2x2, DECORCAT_ORNAMENT, 800, DecorDesc_TIRE, DecorGfx_TIRE},
+ {DECOR_STAND, _("STAND"), DECORPERM_PASS_FLOOR, DECORSHAPE_4x2, DECORCAT_ORNAMENT, 7000, DecorDesc_STAND, DecorGfx_STAND},
+ {DECOR_MUD_BALL, _("MUD BALL"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 200, DecorDesc_MUD_BALL, DecorGfx_MUD_BALL},
+ {DECOR_BREAKABLE_DOOR, _("BREAKABLE DOOR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 3000, DecorDesc_BREAKABLE_DOOR, DecorGfx_BREAKABLE_DOOR},
+ {DECOR_SAND_ORNAMENT, _("SAND ORNAMENT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 3000, DecorDesc_SAND_ORNAMENT, DecorGfx_SAND_ORNAMENT},
+ {DECOR_SILVER_SHIELD, _("SILVER SHIELD"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 0, DecorDesc_SILVER_SHIELD, DecorGfx_SILVER_SHIELD},
+ {DECOR_GOLD_SHIELD, _("GOLD SHIELD"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 0, DecorDesc_GOLD_SHIELD, DecorGfx_GOLD_SHIELD},
+ {DECOR_GLASS_ORNAMENT, _("GLASS ORNAMENT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 0, DecorDesc_GLASS_ORNAMENT, DecorGfx_GLASS_ORNAMENT},
+ {DECOR_TV, _("TV"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 3000, DecorDesc_TV, DecorGfx_TV},
+ {DECOR_ROUND_TV, _("ROUND TV"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 4000, DecorDesc_ROUND_TV, DecorGfx_ROUND_TV},
+ {DECOR_CUTE_TV, _("CUTE TV"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 4000, DecorDesc_CUTE_TV, DecorGfx_CUTE_TV},
+ {DECOR_GLITTER_MAT, _("GLITTER MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 2000, DecorDesc_GLITTER_MAT, DecorGfx_GLITTER_MAT},
+ {DECOR_JUMP_MAT, _("JUMP MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 2000, DecorDesc_JUMP_MAT, DecorGfx_JUMP_MAT},
+ {DECOR_SPIN_MAT, _("SPIN MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 2000, DecorDesc_SPIN_MAT, DecorGfx_SPIN_MAT},
+ {DECOR_C_LOW_NOTE_MAT, _("C Low NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_C_LOW_NOTE_MAT, DecorGfx_C_LOW_NOTE_MAT},
+ {DECOR_D_NOTE_MAT, _("D NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_D_NOTE_MAT, DecorGfx_D_NOTE_MAT},
+ {DECOR_E_NOTE_MAT, _("E NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_E_NOTE_MAT, DecorGfx_E_NOTE_MAT},
+ {DECOR_F_NOTE_MAT, _("F NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_F_NOTE_MAT, DecorGfx_F_NOTE_MAT},
+ {DECOR_G_NOTE_MAT, _("G NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_G_NOTE_MAT, DecorGfx_G_NOTE_MAT},
+ {DECOR_A_NOTE_MAT, _("A NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_A_NOTE_MAT, DecorGfx_A_NOTE_MAT},
+ {DECOR_B_NOTE_MAT, _("B NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_B_NOTE_MAT, DecorGfx_B_NOTE_MAT},
+ {DECOR_C_HIGH_NOTE_MAT, _("C High NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_C_HIGH_NOTE_MAT, DecorGfx_C_HIGH_NOTE_MAT},
+ {DECOR_SURF_MAT, _("SURF MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_SURF_MAT, DecorGfx_SURF_MAT},
+ {DECOR_THUNDER_MAT, _("THUNDER MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_THUNDER_MAT, DecorGfx_THUNDER_MAT},
+ {DECOR_FIRE_BLAST_MAT, _("FIRE BLAST MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_FIRE_BLAST_MAT, DecorGfx_FIRE_BLAST_MAT},
+ {DECOR_POWDER_SNOW_MAT, _("POWDER SNOW MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_POWDER_SNOW_MAT, DecorGfx_POWDER_SNOW_MAT},
+ {DECOR_ATTRACT_MAT, _("ATTRACT MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_ATTRACT_MAT, DecorGfx_ATTRACT_MAT},
+ {DECOR_FISSURE_MAT, _("FISSURE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_FISSURE_MAT, DecorGfx_FISSURE_MAT},
+ {DECOR_SPIKES_MAT, _("SPIKES MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_SPIKES_MAT, DecorGfx_SPIKES_MAT},
+ {DECOR_BALL_POSTER, _("BALL POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_BALL_POSTER, DecorGfx_BALL_POSTER},
+ {DECOR_GREEN_POSTER, _("GREEN POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_GREEN_POSTER, DecorGfx_GREEN_POSTER},
+ {DECOR_RED_POSTER, _("RED POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_RED_POSTER, DecorGfx_RED_POSTER},
+ {DECOR_BLUE_POSTER, _("BLUE POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_BLUE_POSTER, DecorGfx_BLUE_POSTER},
+ {DECOR_CUTE_POSTER, _("CUTE POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_CUTE_POSTER, DecorGfx_CUTE_POSTER},
+ {DECOR_PIKA_POSTER, _("PIKA POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_PIKA_POSTER, DecorGfx_PIKA_POSTER},
+ {DECOR_LONG_POSTER, _("LONG POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_LONG_POSTER, DecorGfx_LONG_POSTER},
+ {DECOR_SEA_POSTER, _("SEA POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_SEA_POSTER, DecorGfx_SEA_POSTER},
+ {DECOR_SKY_POSTER, _("SKY POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_SKY_POSTER, DecorGfx_SKY_POSTER},
+ {DECOR_KISS_POSTER, _("KISS POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_KISS_POSTER, DecorGfx_KISS_POSTER},
+ {DECOR_PICHU_DOLL, _("PICHU DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_PICHU_DOLL, DecorGfx_PICHU_DOLL},
+ {DECOR_PIKACHU_DOLL, _("PIKACHU DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_PIKACHU_DOLL, DecorGfx_PIKACHU_DOLL},
+ {DECOR_MARILL_DOLL, _("MARILL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_MARILL_DOLL, DecorGfx_MARILL_DOLL},
+ {DECOR_TOGEPI_DOLL, _("TOGEPI DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TOGEPI_DOLL, DecorGfx_TOGEPI_DOLL},
+ {DECOR_CYNDAQUIL_DOLL, _("CYNDAQUIL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_CYNDAQUIL_DOLL, DecorGfx_CYNDAQUIL_DOLL},
+ {DECOR_CHIKORITA_DOLL, _("CHIKORITA DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_CHIKORITA_DOLL, DecorGfx_CHIKORITA_DOLL},
+ {DECOR_TOTODILE_DOLL, _("TOTODILE DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TOTODILE_DOLL, DecorGfx_TOTODILE_DOLL},
+ {DECOR_JIGGLYPUFF_DOLL, _("JIGGLYPUFF DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_JIGGLYPUFF_DOLL, DecorGfx_JIGGLYPUFF_DOLL},
+ {DECOR_MEOWTH_DOLL, _("MEOWTH DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_MEOWTH_DOLL, DecorGfx_MEOWTH_DOLL},
+ {DECOR_CLEFAIRY_DOLL, _("CLEFAIRY DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_CLEFAIRY_DOLL, DecorGfx_CLEFAIRY_DOLL},
+ {DECOR_DITTO_DOLL, _("DITTO DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_DITTO_DOLL, DecorGfx_DITTO_DOLL},
+ {DECOR_SMOOCHUM_DOLL, _("SMOOCHUM DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SMOOCHUM_DOLL, DecorGfx_SMOOCHUM_DOLL},
+ {DECOR_TREECKO_DOLL, _("TREECKO DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TREECKO_DOLL, DecorGfx_TREECKO_DOLL},
+ {DECOR_TORCHIC_DOLL, _("TORCHIC DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TORCHIC_DOLL, DecorGfx_TORCHIC_DOLL},
+ {DECOR_MUDKIP_DOLL, _("MUDKIP DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_MUDKIP_DOLL, DecorGfx_MUDKIP_DOLL},
+ {DECOR_DUSKULL_DOLL, _("DUSKULL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_DUSKULL_DOLL, DecorGfx_DUSKULL_DOLL},
+ {DECOR_WYNAUT_DOLL, _("WYNAUT DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_WYNAUT_DOLL, DecorGfx_WYNAUT_DOLL},
+ {DECOR_BALTOY_DOLL, _("BALTOY DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_BALTOY_DOLL, DecorGfx_BALTOY_DOLL},
+ {DECOR_KECLEON_DOLL, _("KECLEON DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_KECLEON_DOLL, DecorGfx_KECLEON_DOLL},
+ {DECOR_AZURILL_DOLL, _("AZURILL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_AZURILL_DOLL, DecorGfx_AZURILL_DOLL},
+ {DECOR_SKITTY_DOLL, _("SKITTY DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SKITTY_DOLL, DecorGfx_SKITTY_DOLL},
+ {DECOR_SWABLU_DOLL, _("SWABLU DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SWABLU_DOLL, DecorGfx_SWABLU_DOLL},
+ {DECOR_GULPIN_DOLL, _("GULPIN DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_GULPIN_DOLL, DecorGfx_GULPIN_DOLL},
+ {DECOR_LOTAD_DOLL, _("LOTAD DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_LOTAD_DOLL, DecorGfx_LOTAD_DOLL},
+ {DECOR_SEEDOT_DOLL, _("SEEDOT DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SEEDOT_DOLL, DecorGfx_SEEDOT_DOLL},
+ {DECOR_PIKA_CUSHION, _("PIKA CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_PIKA_CUSHION, DecorGfx_PIKA_CUSHION},
+ {DECOR_ROUND_CUSHION, _("ROUND CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_ROUND_CUSHION, DecorGfx_ROUND_CUSHION},
+ {DECOR_KISS_CUSHION, _("KISS CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_KISS_CUSHION, DecorGfx_KISS_CUSHION},
+ {DECOR_ZIGZAG_CUSHION, _("ZIGZAG CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_ZIGZAG_CUSHION, DecorGfx_ZIGZAG_CUSHION},
+ {DECOR_SPIN_CUSHION, _("SPIN CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_SPIN_CUSHION, DecorGfx_SPIN_CUSHION},
+ {DECOR_DIAMOND_CUSHION, _("DIAMOND CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_DIAMOND_CUSHION, DecorGfx_DIAMOND_CUSHION},
+ {DECOR_BALL_CUSHION, _("BALL CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_BALL_CUSHION, DecorGfx_BALL_CUSHION},
+ {DECOR_GRASS_CUSHION, _("GRASS CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_GRASS_CUSHION, DecorGfx_GRASS_CUSHION},
+ {DECOR_FIRE_CUSHION, _("FIRE CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_FIRE_CUSHION, DecorGfx_FIRE_CUSHION},
+ {DECOR_WATER_CUSHION, _("WATER CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_WATER_CUSHION, DecorGfx_WATER_CUSHION},
+ {DECOR_SNORLAX_DOLL, _("SNORLAX DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_SNORLAX_DOLL, DecorGfx_SNORLAX_DOLL},
+ {DECOR_RHYDON_DOLL, _("RHYDON DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_RHYDON_DOLL, DecorGfx_RHYDON_DOLL},
+ {DECOR_LAPRAS_DOLL, _("LAPRAS DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_LAPRAS_DOLL, DecorGfx_LAPRAS_DOLL},
+ {DECOR_VENUSAUR_DOLL, _("VENUSAUR DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_VENUSAUR_DOLL, DecorGfx_VENUSAUR_DOLL},
+ {DECOR_CHARIZARD_DOLL, _("CHARIZARD DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_CHARIZARD_DOLL, DecorGfx_CHARIZARD_DOLL},
+ {DECOR_BLASTOISE_DOLL, _("BLASTOISE DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_BLASTOISE_DOLL, DecorGfx_BLASTOISE_DOLL},
+ {DECOR_WAILMER_DOLL, _("WAILMER DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_WAILMER_DOLL, DecorGfx_WAILMER_DOLL},
+ {DECOR_REGIROCK_DOLL, _("REGIROCK DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_REGIROCK_DOLL, DecorGfx_REGIROCK_DOLL},
+ {DECOR_REGICE_DOLL, _("REGICE DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_REGICE_DOLL, DecorGfx_REGICE_DOLL},
+ {DECOR_REGISTEEL_DOLL, _("REGISTEEL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_REGISTEEL_DOLL, DecorGfx_REGISTEEL_DOLL}
+};
+
+const u8 *const gUnknown_083EC5E4[] = {
+ SecretBaseText_Desk,
+ SecretBaseText_Chair,
+ SecretBaseText_Plant,
+ SecretBaseText_Ornament,
+ SecretBaseText_Mat,
+ SecretBaseText_Poster,
+ SecretBaseText_Doll,
+ SecretBaseText_Cushion
+};
+
+const struct MenuAction2 gUnknown_083EC604[] = {
+ {SecretBaseText_Decorate, sub_80FF160},
+ {SecretBaseText_PutAway, sub_8100A0C},
+ {SecretBaseText_Toss, sub_8101700},
+ {gUnknownText_Exit, gpu_pal_decompress_alloc_tag_and_upload}
+};
+
+const u8 *const gUnknown_083EC624[] = {
+ SecretBaseText_PutOutDecor,
+ SecretBaseText_StoreChosenDecor,
+ SecretBaseText_ThrowAwayDecor,
+ gMenuText_GoBackToPrev
+};
+
+const struct MenuAction3 gUnknown_083EC634[] = {
+ {sub_80FF5BC, sub_80FF058},
+ {sub_81017A0, sub_80FF058},
+ {sub_81017A0, sub_80FF058},
+ {sub_8109D04, sub_80FF058}
+};
+
+const u16 gUnknown_083EC654[] = {0x6318, 0x739C, 0x7FFF};
+const u8 gUnknown_083EC65A[] = _("{PALETTE 13}{STR_VAR_1}");
+
+const u8 Unknown_3EC660[] = {0, 1, 2, 3};
+const u8 Unknown_3EC664[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13};
+const u8 Unknown_3EC670[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+const u8 Unknown_3EC680[] = {0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21};
+const u8 Unknown_3EC68C[] = {0, 1, 2, 3, 4, 5, 6, 7};
+const u8 Unknown_3EC694[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
+const u8 Unknown_3EC6B4[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45};
+const u8 Unknown_3EC6D8[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29};
+
+const u8 Unknown_3EC6F0[] = {0, 0, 0, 0};
+const u8 Unknown_3EC6F4[] = {0, 0, 1, 1, 0, 0, 1, 1};
+const u8 Unknown_3EC6FC[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2};
+const u8 Unknown_3EC708[] = {0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 4, 4, 5, 5, 6, 6, 7, 7};
+const u8 Unknown_3EC728[] = {0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3};
+const u8 Unknown_3EC738[] = {0, 0, 0, 0, 1, 1, 1, 1};
+const u8 Unknown_3EC740[] = {0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2};
+const u8 Unknown_3EC74C[] = {0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3, 4, 4, 5, 5, 4, 4, 5, 5, 6, 6, 7, 7, 6, 6, 7, 7};
+const u8 Unknown_3EC76C[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 6, 6, 7, 7, 8, 8};
+const u8 Unknown_3EC790[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5};
+
+const u8 Unknown_3EC7A8[] = {4, 5, 6, 7};
+const u8 Unknown_3EC7AC[] = {4, 5, 4, 5, 6, 7, 6, 7};
+const u8 Unknown_3EC7B4[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7};
+const u8 Unknown_3EC7C0[] = {4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7};
+const u8 Unknown_3EC7E0[] = {4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7};
+const u8 Unknown_3EC7F0[] = {4, 5, 6, 7, 4, 5, 6, 7};
+const u8 Unknown_3EC7F8[] = {4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7};
+const u8 Unknown_3EC804[] = {4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7};
+const u8 Unknown_3EC824[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7};
+const u8 Unknown_3EC848[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7};
+
+const struct UnkStruct_803EC860 gUnknown_083EC860[] = {
+ {Unknown_3EC660, Unknown_3EC6F0, Unknown_3EC7A8, 0x4},
+ {Unknown_3EC68C, Unknown_3EC6F4, Unknown_3EC7AC, 0x8},
+ {Unknown_3EC664, Unknown_3EC6FC, Unknown_3EC7B4, 0xc},
+ {Unknown_3EC694, Unknown_3EC708, Unknown_3EC7C0, 0x20},
+ {Unknown_3EC670, Unknown_3EC728, Unknown_3EC7E0, 0x10},
+ {Unknown_3EC68C, Unknown_3EC738, Unknown_3EC7F0, 0x8},
+ {Unknown_3EC680, Unknown_3EC740, Unknown_3EC7F8, 0xc},
+ {Unknown_3EC694, Unknown_3EC74C, Unknown_3EC804, 0x20},
+ {Unknown_3EC6B4, Unknown_3EC76C, Unknown_3EC824, 0x24},
+ {Unknown_3EC6D8, Unknown_3EC790, Unknown_3EC848, 0x18}
+};
+
+const struct UnkStruct_083EC900 gUnknown_083EC900[] = {
+ {0, 1, 0x78, 0x4e},
+ {1, 2, 0x80, 0x4e},
+ {1, 3, 0x90, 0x56},
+ {1, 3, 0x90, 0x46},
+ {0, 2, 0x80, 0x46},
+ {2, 2, 0x78, 0x46},
+ {2, 3, 0x80, 0x56},
+ {2, 3, 0x80, 0x36},
+ {0, 3, 0x90, 0x46},
+ {1, 3, 0x90, 0x46}
+};
+
+const union AnimCmd gSpriteAnim_83EC928[] = {
+ ANIMCMD_FRAME(.imageValue = 0, .duration = 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83EC930[] = {
+ gSpriteAnim_83EC928
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83EC934[] = {
+ {.data = (u8 *)&gUnknown_02038900.image, .size = sizeof gUnknown_02038900.image}
+};
+
+const struct SpriteTemplate gSpriteTemplate_83EC93C = {
+ .tileTag = 0xffff,
+ .paletteTag = 3000,
+ .oam = &gUnknown_020391AC,
+ .anims = gSpriteAnimTable_83EC930,
+ .images = gSpriteImageTable_83EC934,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_81009A8
+};
+
+const struct SpritePalette gUnknown_083EC954 = {.data = (u16 *)&gUnknown_02038900.palette, .tag = 3000};
+
+const struct YesNoFuncTable gUnknown_083EC95C = {.yesFunc = sub_81000C4, .noFunc = sub_810065C};
+const struct YesNoFuncTable gUnknown_083EC964 = {.yesFunc = sub_810026C, .noFunc = sub_810065C};
+const struct YesNoFuncTable gUnknown_083EC96C[] = {
+ {.yesFunc = sub_80FFAB0, .noFunc = sub_80FFB08},
+ {.yesFunc = sub_8100F88, .noFunc = sub_8100FB4}
+};
+
+const u8 gUnknown_083EC97C[] = {4, 4, 4, 4, 0, 3, 3, 0};
+const u8 gUnknown_083EC984[] = {4, 4, 4, 4, 0, 4, 3, 0};
+
+const u16 gUnknown_083EC98C[] = INCBIN_U16("graphics/unknown/83EC98C.gbapal");
+const u16 Unknown_3EC9AC[] = INCBIN_U16("graphics/unknown/83EC9AC.gbapal");
+const struct YesNoFuncTable gUnknown_083EC9CC = {.yesFunc = sub_810153C, .noFunc = sub_8100EEC};
+const struct YesNoFuncTable gUnknown_083EC9D4 = {.yesFunc = sub_8101590, .noFunc = sub_8100EEC};
+const u32 gSpriteImage_83EC9DC[] = INCBIN_U32("graphics/unknown_sprites/83EC9DC.4bpp");
+const struct SpritePalette gUnknown_083ECA5C = {.data = gUnknown_083EC98C, .tag = 8};
+const struct SpritePalette gUnknown_083ECA64 = {.data = Unknown_3EC9AC, .tag = 8};
+const struct OamData gOamData_83ECA6C = {
+ .size = 1, .priority = 1
+};
+
+const union AnimCmd gSpriteAnim_83ECA74[] = {
+ ANIMCMD_FRAME(.imageValue = 0, .duration = 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83ECA7C[] = {
+ gSpriteAnim_83ECA74
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83ECA80[] = {
+ obj_frame_tiles(gSpriteImage_83EC9DC)
+};
+
+const struct SpriteTemplate gSpriteTemplate_83ECA88 = {
+ .tileTag = 0xffff,
+ .paletteTag = 8,
+ .oam = &gOamData_83ECA6C,
+ .anims = gSpriteAnimTable_83ECA7C,
+ .images = gSpriteImageTable_83ECA80,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8101698
+};
+
+const struct YesNoFuncTable gUnknown_083ECAA0 = {.yesFunc = sub_8101848, .noFunc = sub_80FED3C};
+
+u8 *const unref_label_083ECAA8[] = {ewram};
+
+// text
+
+extern u8 gUnknown_0815F399[];
+
+void sub_80FE1DC(void)
+{
+ sub_80FE2B4();
+ MenuDrawTextWindow(0, 0, 10, 9);
+ PrintMenuItems(1, 1, 4, (const struct MenuAction *)gUnknown_083EC604);
+ InitMenu(0, 1, 1, 4, gUnknown_020388D4, 9);
+}
+
+void sub_80FE220(void)
+{
+ gUnknown_020388D4 = 0;
+ ScriptContext2_Enable();
+ sub_80FE1DC();
+ sub_80FE394();
+}
+
+void DecorationPC(u8 taskId)
+{
+ sub_80FE220();
+ gTasks[taskId].func = Task_DecorationPCProcessMenuInput;
+}
+
+void Task_SecretBasePC_Decoration(u8 taskId)
+{
+ DecorationPC(taskId);
+ ewram_1f000.items = gSaveBlock1.secretBases[0].decorations;
+ ewram_1f000.pos = gSaveBlock1.secretBases[0].decorationPos;
+ ewram_1f000.size = sizeof gSaveBlock1.secretBases[0].decorations;
+ ewram_1f000.isPlayerRoom = 0;
+}
+
+void DoPlayerPCDecoration(u8 taskId)
+{
+ DecorationPC(taskId);
+ ewram_1f000.items = gSaveBlock1.playerRoomDecor;
+ ewram_1f000.pos = gSaveBlock1.playerRoomDecorPos;
+ ewram_1f000.size = sizeof gSaveBlock1.playerRoomDecor;
+ ewram_1f000.isPlayerRoom = 1;
+}
+
+void sub_80FE2B4(void)
+{
+ u16 palettes[3];
+ memcpy(palettes, gUnknown_083EC654, sizeof gUnknown_083EC654);
+ LoadPalette(&palettes[2], 0xdf, 2);
+ LoadPalette(&palettes[1], 0xd1, 2);
+ LoadPalette(&palettes[0], 0xd8, 2);
+}
+
+void Task_DecorationPCProcessMenuInput(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ if (gMain.newKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_020388D4 = MoveMenuCursor(-1);
+ sub_80FE394();
+ }
+ if (gMain.newKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_020388D4 = MoveMenuCursor(1);
+ sub_80FE394();
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_083EC604[gUnknown_020388D4].func(taskId);
+ } else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gpu_pal_decompress_alloc_tag_and_upload(taskId);
+ }
+ }
+}
+
+void sub_80FE394(void)
+{
+ MenuFillWindowRectWithBlankTile(2, 15, 27, 18);
+ MenuPrint(gUnknown_083EC624[gUnknown_020388D4], 2, 15);
+}
+
+void gpu_pal_decompress_alloc_tag_and_upload(u8 taskId)
+{
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 10, 9);
+ MenuFillWindowRectWithBlankTile(2, 15, 27, 18);
+ FreeSpritePaletteByTag(6);
+ if (ewram_1f000.isPlayerRoom == 0)
+ {
+ ScriptContext1_SetupScript(gUnknown_0815F399);
+ DestroyTask(taskId);
+ } else
+ {
+ ReshowPlayerPC(taskId);
+ }
+}
+
+void sub_80FE418(u8 taskId)
+{
+ sub_80FE5AC(taskId);
+}
+
+void sub_80FE428(u8 taskId)
+{
+ InitMenu(0, 1, 1, 4, gUnknown_020388D4, 9);
+ sub_80FE394();
+ gTasks[taskId].func = Task_DecorationPCProcessMenuInput;
+}
+
+void sub_80FE470(u8 decoCat, u8 left, u8 top, u8 palIdx) // PrintDecorationCategorySelectionMenuString
+{
+ u8 *strptr;
+ u8 v0;
+ v0 = sub_8072CBC();
+ // PALETTE {palIdx}
+ strptr = gStringVar4;
+ strptr[0] = EXT_CTRL_CODE_BEGIN;
+ strptr[1] = 5;
+ strptr[2] = palIdx;
+ strptr += 3;
+ strptr = StringCopy(strptr, gUnknown_083EC5E4[decoCat]);
+ strptr = sub_8072C14(strptr, sub_8134194(decoCat), 0x56, 1);
+ *strptr++ = 0xba;
+ strptr = sub_8072C14(strptr, gDecorationInventories[decoCat].size, 0x68, 1);
+ strptr[0] = EXT_CTRL_CODE_BEGIN;
+ strptr[1] = 5;
+ strptr[2] = v0;
+ strptr[3] = EOS;
+ MenuPrint(gStringVar4, left, top);
+}
+
+void sub_80FE528(u8 taskId) // PrintDecorationCategorySelectionMenuStrings
+{
+ u8 decoCat;
+ MenuDrawTextWindow(0, 0, 14, 19);
+ for (decoCat=0; decoCat<8; decoCat++)
+ {
+ if (ewram_1f000.isPlayerRoom == 1 && gTasks[taskId].data[11] == 0 && decoCat != DECORCAT_DOLL && decoCat != DECORCAT_CUSHION)
+ {
+ sub_80FE470(decoCat, 1, 2 * decoCat + 1, 13); // Selectable
+ } else
+ {
+ sub_80FE470(decoCat, 1, 2 * decoCat + 1, 255); // Unselectable
+ }
+ }
+ MenuPrint(gUnknownText_Exit, 1, 17);
+}
+
+void sub_80FE5AC(u8 taskId)
{
sub_8072DEC();
MenuZeroFillWindowRect(0, 0, 29, 19);
+ sub_80FE528(taskId);
+ InitMenu(0, 1, 1, 9, gUnknown_020388F6, 13);
+ gTasks[taskId].func = sub_80FE604;
+}
+
+void sub_80FE604(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ MoveMenuCursor(-1);
+ } else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ MoveMenuCursor(1);
+ } else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_020388F6 = GetMenuCursorPos();
+ if (gUnknown_020388F6 != 8)
+ {
+ gUnknown_020388D5 = sub_8134194(gUnknown_020388F6);
+ if (gUnknown_020388D5)
+ {
+ sub_8134104(gUnknown_020388F6);
+ gUnknown_020388D0 = gDecorationInventories[gUnknown_020388F6].items;
+ sub_80FEF50(taskId);
+ sub_80F944C();
+ sub_80F9480(gUnknown_020388F7, 8);
+ LoadScrollIndicatorPalette();
+ gTasks[taskId].func = sub_80FE868;
+ } else
+ {
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 14, 19);
+ DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE418, 0);
+ }
+ } else
+ {
+ sub_80FE728(taskId);
+ }
+ } else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80FE728(taskId);
+ }
+ }
+}
+
+void sub_80FE728(u8 taskId)
+{
+ if (gTasks[taskId].data[11] != 3)
+ {
+ sub_80FE758(taskId);
+ } else
+ {
+ sub_8109DAC(taskId);
+ }
+}
+
+void sub_80FE758(u8 taskId)
+{
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 14, 19);
+ if (gTasks[taskId].data[11] != 2)
+ {
+ sub_80FE1DC();
+ MenuDisplayMessageBox();
+ sub_80FE394();
+ gTasks[taskId].func = Task_DecorationPCProcessMenuInput;
+ } else
+ {
+ sub_80B3068(taskId);
+ }
+}
- sub_80FEC94(arg0);
+void sub_80FE7A8(u8 taskId)
+{
+ gTasks[taskId].data[11] = 3;
+ gUnknown_020388F6 = 0;
+ sub_80FE5AC(taskId);
+}
+
+void sub_80FE7D4(u8 *dest, u8 decClass)
+{
+ StringCopy(dest, gUnknown_083EC5E4[decClass]);
+}
+
+void sub_80FE7EC(u8 taskId)
+{
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+
+ sub_80FEC94(taskId);
sub_80FECB8(gUnknown_020388F6);
MenuDrawTextWindow(15, 12, 29, 19);
@@ -25,3 +1788,2410 @@ void sub_80FE7EC(u8 arg0)
sub_80FECE0(gUnknown_020388F2 + gUnknown_020388F4);
InitMenu(0, 1, 2, gUnknown_020388F3 + 1, gUnknown_020388F2, 13);
}
+
+void sub_80FE868(u8 taskId)
+{
+ sub_80FE7EC(taskId);
+ gTasks[taskId].func = sub_80FE948;
+}
+
+void sub_80FE894(u8 taskId /*r8*/, s8 cursorVector /*r5*/, s8 bgVector /*r7*/)
+{
+ int v0 /*r10*/;
+ u8 v1;
+ v0 = gUnknown_020388F2 + gUnknown_020388F4 == gUnknown_020388D5;
+ PlaySE(SE_SELECT);
+ if (cursorVector != 0)
+ {
+ gUnknown_020388F2 = MoveMenuCursor(cursorVector);
+ }
+ if (bgVector != 0)
+ {
+ v1 = gUnknown_020388F4;
+ gUnknown_020388F4 = v1 + bgVector;
+ sub_80FEABC(taskId, 1);
+ }
+ if (gUnknown_020388F2 + gUnknown_020388F4 != gUnknown_020388D5)
+ {
+ if (v0)
+ {
+ MenuDrawTextWindow(15, 12, 29, 19);
+ }
+ sub_80FECE0(gUnknown_020388F2 + gUnknown_020388F4);
+ } else
+ {
+ MenuZeroFillWindowRect(15, 12, 29, 19);
+ }
+}
+
+void sub_80FE948(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
+ {
+ if (gUnknown_020388F2 != 0)
+ {
+ sub_80FE894(taskId, -1, 0);
+ } else if (gUnknown_020388F4 != 0)
+ {
+ sub_80FE894(taskId, 0, -1);
+ }
+ }
+ if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
+ {
+ if (gUnknown_020388F2 != gUnknown_020388F3)
+ {
+ sub_80FE894(taskId, 1, 0);
+ } else if (gUnknown_020388F4 + gUnknown_020388F2 != gUnknown_020388D5)
+ {
+ sub_80FE894(taskId, 0, 1);
+ }
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ sub_8072DEC();
+ PlaySE(SE_SELECT);
+ gUnknown_020388F5 = gUnknown_020388F2 + gUnknown_020388F4;
+ if (gUnknown_020388F5 == gUnknown_020388D5)
+ {
+ gUnknown_083EC634[gTasks[taskId].data[11]].func2(taskId);
+ } else
+ {
+ gUnknown_083EC634[gTasks[taskId].data[11]].func1(taskId);
+ }
+ } else if (gMain.newKeys & B_BUTTON)
+ {
+ sub_8072DEC();
+ PlaySE(SE_SELECT);
+ gUnknown_083EC634[gTasks[taskId].data[11]].func2(taskId);
+ }
+ }
+}
+
+void sub_80FEABC(u8 taskId, u8 dummy1)
+{
+ u16 i;
+ u16 j;
+ u8 ni;
+ if (gUnknown_020388F4 != 0 || (DestroyVerticalScrollIndicator(0), gUnknown_020388F4 != 0))
+ {
+ CreateVerticalScrollIndicators(0, 0x3c, 0x08);
+ }
+ if (gUnknown_020388F4 + 7 == gUnknown_020388D5)
+ {
+ DestroyVerticalScrollIndicator(1);
+ }
+ if (gUnknown_020388F4 + 7 < gUnknown_020388D5)
+ {
+ CreateVerticalScrollIndicators(1, 0x3c, 0x98);
+ }
+ for (i=gUnknown_020388F4; i<gUnknown_020388F4+8; i++)
+ {
+ ni = 2 * (i - gUnknown_020388F4) + 2;
+ if (gUnknown_020388F7[i - gUnknown_020388F4])
+ {
+ sub_80F94F8(&gUnknown_020388F7[i - gUnknown_020388F4]);
+ }
+ if (i == gUnknown_020388D5)
+ {
+ sub_8072A18(gUnknownText_Exit, 0x08, 8 * ni, 0x68, 1);
+ break;
+ }
+ if (gUnknown_020388D0[i])
+ {
+ if (ewram_1f000.isPlayerRoom == 1 && gUnknown_020388F6 != DECORCAT_DOLL && gUnknown_020388F6 != DECORCAT_CUSHION && gTasks[taskId].data[11] == 0)
+ {
+ StringCopy(gStringVar1, gDecorations[gUnknown_020388D0[i]].name);
+ sub_8072A18(gUnknown_083EC65A, 0x08, 8 * ni, 0x68, 1);
+ } else
+ {
+ sub_8072A18(gDecorations[gUnknown_020388D0[i]].name, 0x08, 8 * ni, 0x68, 1);
+ }
+ for (j=0; j<16; j++)
+ {
+ if (gUnknown_020388D6[j] - 1 == i)
+ {
+ sub_80F94A4(4, &gUnknown_020388F7[i - gUnknown_020388F4], 0x6c, (i - gUnknown_020388F4) * 16 + 24);
+ break;
+ }
+ }
+ for (j=0; j<12; j++)
+ {
+ if (gUnknown_020388E6[j] - 1 == i)
+ {
+ sub_80F94A4(5, &gUnknown_020388F7[i - gUnknown_020388F4], 0x6c, (i - gUnknown_020388F4) * 16 + 24);
+ break;
+ }
+ }
+ }
+ }
+}
+
+void sub_80FEC94(u8 taskId)
+{
+ MenuDrawTextWindow(0, 0, 14, 19);
+ sub_80FEABC(taskId, 0);
+}
+
+void sub_80FECB8(u8 decoCat)
+{
+ MenuDrawTextWindow(15, 0, 29, 3);
+ sub_80FE470(decoCat, 16, 1, 0xff);
+}
+
+void sub_80FECE0(u8 decoCat)
+{
+ sub_8072AB0(gDecorations[gUnknown_020388D0[decoCat]].description, 0x80, 0x68, 0x68, 0x30, 0x1);
+}
+
+void sub_80FED1C(void)
+{
+ MenuZeroFillWindowRect(15, 0, 29, 3);
+ MenuZeroFillWindowRect(15, 12, 29, 19);
+}
+
+void sub_80FED3C(u8 taskId)
+{
+ LoadScrollIndicatorPalette();
+ gTasks[taskId].func = sub_80FE868;
+}
+
+bool8 sub_80FED64(u8 a0)
+{
+ u8 i;
+ for (i=0; i<16; i++)
+ {
+ if (gUnknown_020388D6[i] == a0)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void sub_80FED90(u8 taskId)
+{
+ u16 i;
+ u16 j;
+ u16 k;
+ u16 cnt;
+ cnt = 0;
+ for (i=0; i<16; i++)
+ {
+ gUnknown_020388D6[i] = 0;
+ if (i < 12)
+ {
+ gUnknown_020388E6[i] = 0;
+ }
+ }
+ for (i=0; i<16; i++)
+ {
+ if (gSaveBlock1.secretBases[0].decorations[i] != 0)
+ {
+ for (j=0; j<gDecorationInventories[gUnknown_020388F6].size; j++)
+ {
+ if (gUnknown_020388D0[j] == gSaveBlock1.secretBases[0].decorations[i])
+ {
+ for (k=0; k<cnt && gUnknown_020388D6[k]!=j+1; k++);
+ if (k == cnt)
+ {
+ gUnknown_020388D6[cnt] = j+1;
+ cnt++;
+ break;
+ }
+ }
+ }
+ }
+ }
+ cnt = 0;
+ for (i=0; i<12; i++)
+ {
+ if (gSaveBlock1.playerRoomDecor[i] != 0)
+ {
+ for (j=0; j<gDecorationInventories[gUnknown_020388F6].size; j++)
+ {
+ if (gUnknown_020388D0[j] == gSaveBlock1.playerRoomDecor[i] && !sub_80FED64(j + 1))
+ {
+ for (k=0; k<cnt && gUnknown_020388E6[k]!=j+1; k++);
+ if (k == cnt)
+ {
+ gUnknown_020388E6[cnt] = j+1;
+ cnt++;
+ break;
+ }
+ }
+ }
+ }
+ }
+}
+
+void sub_80FEF28(void)
+{
+ if (gUnknown_020388D5 <= 7)
+ {
+ gUnknown_020388F3 = gUnknown_020388D5;
+ } else
+ {
+ gUnknown_020388F3 = 7;
+ }
+}
+
+void sub_80FEF50(u8 taskId)
+{
+ sub_80FED90(taskId);
+ sub_80FEF28();
+ gUnknown_020388F2 = 0;
+ gUnknown_020388F4 = 0;
+}
+
+void sub_80FEF74(void)
+{
+ sub_80F9520(gUnknown_020388F7, 8);
+ DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(1);
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 14, 19);
+}
+
+bool8 sub_80FEFA4(void)
+{
+ u16 i;
+ int v0;
+ for (i=0; i<16; i++)
+ {
+ v0 = gUnknown_020388F4 + gUnknown_020388F2 + 1;
+ if (gUnknown_020388D6[i] == v0 || (i < 12 && gUnknown_020388E6[i] == v0))
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+void sub_80FEFF4(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
+ {
+ LoadScrollIndicatorPalette();
+ gTasks[taskId].func = sub_80FE868;
+ }
+}
+
+void sub_80FF034(u8 taskId)
+{
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 14, 19);
+ sub_80FE5AC(taskId);
+}
+
+void sub_80FF058(u8 taskId)
+{
+ sub_80F9520(gUnknown_020388F7, 8);
+ DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(1);
+ BuyMenuFreeMemory();
+ gTasks[taskId].func = sub_80FF034;
+}
+
+void sub_80FF098(u8 taskId)
+{
+ gUnknown_020388D5--;
+ if (gUnknown_020388F4 + 7 > gUnknown_020388D5 && gUnknown_020388F4 != 0)
+ {
+ gUnknown_020388F4--;
+ }
+ sub_8134104(gUnknown_020388F6);
+ sub_80FED90(taskId);
+ sub_80FEF28();
+}
+
+void sub_80FF0E0(u8 taskId)
+{
+ gTasks[taskId].data[3] = gSaveBlock1.pos.x;
+ gTasks[taskId].data[4] = gSaveBlock1.pos.y;
+ PlayerGetDestCoords(&gTasks[taskId].data[0], &gTasks[taskId].data[1]);
+}
+
+void sub_80FF114(u8 taskId)
+{
+ DrawWholeMapView();
+ warp1_set(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gTasks[taskId].data[3], gTasks[taskId].data[4]);
+ warp_in();
+}
+void sub_80FF160(u8 taskId)
+{
+ if (!sub_81341D4())
+ {
+ DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE428, 0);
+ } else
+ {
+ gTasks[taskId].data[11] = 0;
+ gUnknown_020388F6 = 0;
+ sub_80FE5AC(taskId);
+ }
+}
+
+u16 sub_80FF1B0(u8 decoId, u8 a1)
+{
+ u16 retval;
+ retval = 0xffff;
+
+ switch (decoId)
+ {
+ case DECOR_STAND:
+ retval = gUnknown_083EC97C[a1] << 12;
+ return retval;
+ case DECOR_SLIDE:
+ retval = gUnknown_083EC984[a1] << 12;
+ return retval;
+ default:
+ return retval;
+ }
+}
+
+void sub_80FF1EC(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decIdx)
+{
+ u16 i;
+ u16 j; // r10
+ u16 behavior;
+ u16 flags; // r8
+ u16 v0;
+ u16 v1;
+ s16 x;
+ s16 decBottom;
+
+ for (i=0; i<decHeight; i++)
+ {
+ decBottom = mapY - decHeight + 1 + i;
+ for (j=0; j<decWidth; j++)
+ {
+ x = mapX + j;
+ behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decIdx].tiles[i * decWidth + j]);
+ if (sub_8057288(behavior) == 1 || (gDecorations[decIdx].permission != DECORPERM_PASS_FLOOR && (behavior >> 12)))
+ {
+ flags = 0xc00;
+ } else
+ {
+ flags = 0x000;
+ }
+ if (gDecorations[decIdx].permission != DECORPERM_NA_WALL && sub_80572B0(MapGridGetMetatileBehaviorAt(x, decBottom)) == 1)
+ {
+ v0 = 1;
+ } else
+ {
+ v0 = 0;
+ }
+ v1 = sub_80FF1B0(gDecorations[decIdx].id, i * decWidth + j);
+ if (v1 != 0xffff)
+ {
+ MapGridSetMetatileEntryAt(x, decBottom, (gDecorations[decIdx].tiles[i * decWidth + j] + (0x200 | v0)) | flags | v1);
+ } else
+ {
+ MapGridSetMetatileIdAt(x, decBottom, (gDecorations[decIdx].tiles[i * decWidth + j] + (0x200 | v0)) | flags);
+ }
+ }
+ }
+}
+
+void sub_80FF394(u16 mapX, u16 mapY, u16 decIdx)
+{
+ switch (gDecorations[decIdx].shape)
+ {
+ case DECORSHAPE_1x1:
+ sub_80FF1EC(mapX, mapY, 1, 1, decIdx);
+ break;
+ case DECORSHAPE_2x1:
+ sub_80FF1EC(mapX, mapY, 2, 1, decIdx);
+ break;
+ case DECORSHAPE_3x1: // unused
+ sub_80FF1EC(mapX, mapY, 3, 1, decIdx);
+ break;
+ case DECORSHAPE_4x2:
+ sub_80FF1EC(mapX, mapY, 4, 2, decIdx);
+ break;
+ case DECORSHAPE_2x2:
+ sub_80FF1EC(mapX, mapY, 2, 2, decIdx);
+ break;
+ case DECORSHAPE_1x2:
+ sub_80FF1EC(mapX, mapY, 1, 2, decIdx);
+ break;
+ case DECORSHAPE_1x3: // unused
+ sub_80FF1EC(mapX, mapY, 1, 3, decIdx);
+ break;
+ case DECORSHAPE_2x4:
+ sub_80FF1EC(mapX, mapY, 2, 4, decIdx);
+ break;
+ case DECORSHAPE_3x3:
+ sub_80FF1EC(mapX, mapY, 3, 3, decIdx);
+ break;
+ case DECORSHAPE_3x2:
+ sub_80FF1EC(mapX, mapY, 3, 2, decIdx);
+ break;
+ }
+}
+
+void sub_80FF474(void)
+{
+ u8 i;
+ u8 j;
+ for (i=0; i<14; i++)
+ {
+ if (FlagGet(i + 0xae) == 1)
+ {
+ FlagReset(i + 0xae);
+ for (j=0; j<gMapHeader.events->mapObjectCount; j++)
+ {
+ if (gMapHeader.events->mapObjects[j].flagId == i + 0xae)
+ {
+ break;
+ }
+ }
+ VarSet(0x3f20 + gMapHeader.events->mapObjects[j].graphicsId, gUnknown_02038900.decoration->tiles[0]);
+ gSpecialVar_0x8005 = gMapHeader.events->mapObjects[j].localId;
+ gSpecialVar_0x8006 = gUnknown_020391A4;
+ gSpecialVar_0x8007 = gUnknown_020391A6;
+ show_sprite(gSpecialVar_0x8005, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
+ sub_805C0F8(gSpecialVar_0x8005, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, gSpecialVar_0x8006, gSpecialVar_0x8007);
+ sub_805C78C(gSpecialVar_0x8005, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
+ break;
+ }
+ }
+}
+
+bool8 sub_80FF58C/*IsThereRoomForMoreDecorations*/(void)
+{
+ u16 i;
+ for (i=0; i<ewram_1f000.size; i++)
+ {
+ if (ewram_1f000.items[i] == 0)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void sub_80FF5BC(u8 taskId)
+{
+ if (ewram_1f000.isPlayerRoom == 1 && gUnknown_020388F6 != DECORCAT_DOLL && gUnknown_020388F6 != DECORCAT_CUSHION)
+ {
+ sub_80FEF74();
+ sub_80FED1C();
+ DisplayItemMessageOnField(taskId, gSecretBaseText_DecorCantPlace, sub_80FEFF4, 0);
+ } else if (sub_80FEFA4() == TRUE)
+ {
+ if (sub_80FF58C() == TRUE)
+ {
+ fade_screen(1, 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_80FF6AC;
+ } else
+ {
+ sub_80FEF74();
+ sub_80FED1C();
+ ConvertIntToDecimalStringN(gStringVar1, ewram_1f000.size, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ if (!ewram_1f000.isPlayerRoom)
+ {
+ StringExpandPlaceholders(gStringVar4, gSecretBaseText_NoMoreDecor);
+ } else
+ {
+ StringExpandPlaceholders(gStringVar4, gSecretBaseText_NoMoreDecor2);
+ }
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_80FEFF4, 0);
+ }
+ } else
+ {
+ sub_80FEF74();
+ sub_80FED1C();
+ DisplayItemMessageOnField(taskId, gSecretBaseText_InUseAlready, sub_80FEFF4, 0);
+ }
+}
+
+void sub_80FF6AC(u8 taskId)
+{
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ sub_80FF0E0(taskId);
+ DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(1);
+ sub_80F9520(gUnknown_020388F7, 8);
+ BuyMenuFreeMemory();
+ gTasks[taskId].data[2] = 1;
+ }
+ break;
+ case 1:
+ gPaletteFade.bufferTransferDisabled = 1;
+ AddDecorationIconObjectFromFieldObject(&gUnknown_02038900, gUnknown_020388D0[gUnknown_020388F5]);
+ sub_80FF960(taskId);
+ SetUpPlacingDecorationPlayerAvatar(taskId, &gUnknown_02038900);
+ pal_fill_black();
+ gPaletteFade.bufferTransferDisabled = 0;
+ gTasks[taskId].data[2] = 2;
+ break;
+ case 2:
+ if (sub_807D770() == 1)
+ {
+ gTasks[taskId].data[12] = 0;
+ sub_810065C(taskId);
+ }
+ break;
+ }
+}
+
+void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 * unk_02038900, u8 decoIdx)
+{
+ sub_80FEF74();
+ sub_80FED1C();
+ sub_81006D0(unk_02038900);
+ unk_02038900->decoration = &gDecorations[decoIdx];
+ if (gDecorations[decoIdx].permission != DECORPERM_SOLID_MAT)
+ {
+ sub_81008BC(unk_02038900);
+ sub_8100930(unk_02038900->decoration->shape);
+ sub_8100874(unk_02038900);
+ sub_810070C(unk_02038900->palette, ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles + 8 * unk_02038900->decoration->tiles[0])[7] >> 12);
+ LoadSpritePalette(&gUnknown_083EC954);
+ gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data0;
+ gUnknown_03004880.unk4 = CreateSprite(&gSpriteTemplate_83EC93C, gUnknown_083EC900[unk_02038900->decoration->shape].x, gUnknown_083EC900[unk_02038900->decoration->shape].y, 0);
+ } else
+ {
+ gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data0;
+ gUnknown_03004880.unk4 = AddPseudoFieldObject(unk_02038900->decoration->tiles[0], sub_81009A8, gUnknown_083EC900[unk_02038900->decoration->shape].x, gUnknown_083EC900[unk_02038900->decoration->shape].y, 1);
+ gSprites[gUnknown_03004880.unk4].oam.priority = 1;
+ }
+}
+
+void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct UnkStruct_02038900 *unk_02038900)
+{
+ u8 v0;
+ v0 = 16 * (u8)gTasks[taskId].data[5] + gUnknown_083EC900[unk_02038900->decoration->shape].x - 8 * ((u8)gTasks[taskId].data[5] - 1);
+ if (unk_02038900->decoration->shape == DECORSHAPE_3x1 || unk_02038900->decoration->shape == DECORSHAPE_3x3 || unk_02038900->decoration->shape == DECORSHAPE_3x2)
+ {
+ v0 -= 8;
+ }
+ if (gSaveBlock2.playerGender == MALE)
+ {
+ gUnknown_020391A9 = AddPseudoFieldObject(0xc1, SpriteCallbackDummy, v0, 0x48, 0);
+ } else
+ {
+ gUnknown_020391A9 = AddPseudoFieldObject(0xc2, SpriteCallbackDummy, v0, 0x48, 0);
+ }
+ gSprites[gUnknown_020391A9].oam.priority = 1;
+ DestroySprite(&gSprites[gUnknown_020391A8]);
+ gUnknown_020391A8 = gUnknown_03004880.unk4;
+}
+
+void sub_80FF960(u8 taskId)
+{
+ switch (gDecorations[gUnknown_020388D0[gUnknown_020388F5]].shape)
+ {
+ case DECORSHAPE_1x1:
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].data[6] = 1;
+ break;
+ case DECORSHAPE_2x1:
+ gTasks[taskId].data[5] = 2;
+ gTasks[taskId].data[6] = 1;
+ break;
+ case DECORSHAPE_3x1:
+ gTasks[taskId].data[5] = 3;
+ gTasks[taskId].data[6] = 1;
+ break;
+ case DECORSHAPE_4x2:
+ gTasks[taskId].data[5] = 4;
+ gTasks[taskId].data[6] = 2;
+ break;
+ case DECORSHAPE_2x2:
+ gTasks[taskId].data[5] = 2;
+ gTasks[taskId].data[6] = 2;
+ break;
+ case DECORSHAPE_1x2:
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].data[6] = 2;
+ break;
+ case DECORSHAPE_1x3:
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].data[6] = 3;
+ gTasks[taskId].data[1]++;
+ break;
+ case DECORSHAPE_2x4:
+ gTasks[taskId].data[5] = 2;
+ gTasks[taskId].data[6] = 4;
+ break;
+ case DECORSHAPE_3x3:
+ gTasks[taskId].data[5] = 3;
+ gTasks[taskId].data[6] = 3;
+ break;
+ case DECORSHAPE_3x2:
+ gTasks[taskId].data[5] = 3;
+ gTasks[taskId].data[6] = 2;
+ break;
+ }
+}
+
+void sub_80FFAB0(u8 taskId)
+{
+ gTasks[taskId].data[10] = 0;
+ gSprites[gUnknown_020391A8].data7 = 1;
+ gSprites[gUnknown_020391A9].data7 = 1;
+ sub_810045C();
+ sub_8100038(taskId);
+}
+
+void sub_80FFB08(u8 taskId)
+{
+ gTasks[taskId].data[10] = 0;
+ gSprites[gUnknown_020391A8].data7 = 1;
+ gSprites[gUnknown_020391A9].data7 = 1;
+ sub_810045C();
+ DisplayItemMessageOnField(taskId, gSecretBaseText_CancelDecorating, sub_8100248, 0);
+}
+
+bool8 sub_80FFB6C(u8 a0, u16 a1)
+{
+ if (sub_8057274(a0) != 1 || a1 != 0)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_80FFB94(u8 taskId, s16 x, s16 y, u16 decoId)
+{
+ if (x == gTasks[taskId].data[3] + 7 && y == gTasks[taskId].data[4] + 7 && decoId != 0)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_80FFBDC(u16 a0, const struct Decoration *decoration)
+{
+ if (sub_8057274(a0) != 1)
+ {
+ if (decoration->id == DECOR_SOLID_BOARD && sub_8057300(a0) == 1)
+ {
+ return TRUE;
+ }
+ if (sub_805729C(a0))
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+// When behaviorBy is set, it is masked by 0xf000. This is the step that fails to match when built.
+#ifdef NONMATCHING
+bool8 sub_80FFC24(u8 taskId, const struct Decoration *decoration)
+{
+ u8 i;
+ u8 j;
+ u8 behaviorAt;
+ u16 behaviorBy;
+ u8 mapY;
+ u8 mapX;
+ s16 curY;
+ s16 curX;
+ mapY = gTasks[taskId].data[6];
+ mapX = gTasks[taskId].data[5];
+ switch (decoration->permission)
+ {
+ case DECORPERM_SOLID_FLOOR:
+ case DECORPERM_PASS_FLOOR:
+ for (i=0; i<mapY; i++)
+ {
+ curY = gTasks[taskId].data[1] - i;
+ for (j=0; j<mapX; j++)
+ {
+ curX = gTasks[taskId].data[0] + j;
+ behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
+ behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000;
+ if (!sub_80FFBDC(behaviorAt, decoration))
+ {
+ return FALSE;
+ }
+ if (!sub_80FFB94(taskId, curX, curY, behaviorBy))
+ {
+ return FALSE;
+ }
+ behaviorAt = GetFieldObjectIdByXYZ(curX, curY, 0);
+ if (behaviorAt != 0 && behaviorAt != 16)
+ {
+ return FALSE;
+ }
+ }
+ }
+ break;
+ case DECORPERM_BEHIND_FLOOR:
+ for (i=0; i<mapY-1; i++)
+ {
+ curY = gTasks[taskId].data[1] - i;
+ for (j=0; j<mapX; j++)
+ {
+ curX = gTasks[taskId].data[0] + j;
+ behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
+ behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000;
+ if (!sub_805729C(behaviorAt) && !sub_80FFB6C(behaviorAt, behaviorBy))
+ {
+ return FALSE;
+ }
+ if (!sub_80FFB94(taskId, curX, curY, behaviorBy))
+ {
+ return FALSE;
+ }
+ if (GetFieldObjectIdByXYZ(curX, curY, 0) != 16)
+ {
+ return FALSE;
+ }
+ }
+ }
+ curY = gTasks[taskId].data[1] - mapY + 1;
+ for (j=0; j<mapX; j++)
+ {
+ curX = gTasks[taskId].data[0] + j;
+ behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
+ behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & 0xf000;
+ if (!sub_805729C(behaviorAt) && !sub_80572B0(behaviorAt))
+ {
+ return FALSE;
+ }
+ if (!sub_80FFB94(taskId, curX, curY, behaviorBy))
+ {
+ return FALSE;
+ }
+ behaviorAt = GetFieldObjectIdByXYZ(curX, curY, 0);
+ if (behaviorAt != 0 && behaviorAt != 16)
+ {
+ return FALSE;
+ }
+ }
+ break;
+ case DECORPERM_NA_WALL:
+ for (i=0; i<mapY; i++)
+ {
+ curY = gTasks[taskId].data[1] - i;
+ for (j=0; j<mapX; j++)
+ {
+ curX = gTasks[taskId].data[0] + j;
+ if (!sub_80572B0(MapGridGetMetatileBehaviorAt(curX, curY)))
+ {
+ return FALSE;
+ }
+ if (MapGridGetMetatileIdAt(curX, curY + 1) == 0x28c)
+ {
+ return FALSE;
+ }
+ }
+ }
+ break;
+ case DECORPERM_SOLID_MAT:
+ curY = gTasks[taskId].data[1];
+ for (j=0; j<mapX; j++)
+ {
+ curX = gTasks[taskId].data[0] + j;
+ behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
+ if (decoration->shape == DECORSHAPE_1x2)
+ {
+ if (!sub_80572EC(behaviorAt))
+ {
+ return FALSE;
+ }
+ }
+ else if (!sub_80572D8(behaviorAt))
+ {
+ if (!sub_80572EC(behaviorAt))
+ {
+ return FALSE;
+ }
+ }
+ if (GetFieldObjectIdByXYZ(curX, curY, 0) != 16)
+ {
+ return FALSE;
+ }
+ }
+ break;
+ }
+ return TRUE;
+}
+#else
+__attribute__((naked))
+bool8 sub_80FFC24(u8 taskId, const struct Decoration *decoration)
+{
+ asm(".syntax unified\n"
+ "\tpush {r4-r7,lr}\n"
+ "\tmov r7, r10\n"
+ "\tmov r6, r9\n"
+ "\tmov r5, r8\n"
+ "\tpush {r5-r7}\n"
+ "\tsub sp, 0x24\n"
+ "\tstr r1, [sp]\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tmov r10, r0\n"
+ "\tldr r1, _080FFC60 @ =gTasks\n"
+ "\tlsls r0, 2\n"
+ "\tadd r0, r10\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r1\n"
+ "\tldrb r2, [r0, 0x14]\n"
+ "\tstr r2, [sp, 0x4]\n"
+ "\tldrb r0, [r0, 0x12]\n"
+ "\tstr r0, [sp, 0x8]\n"
+ "\tldr r3, [sp]\n"
+ "\tldrb r0, [r3, 0x11]\n"
+ "\tadds r2, r1, 0\n"
+ "\tcmp r0, 0x4\n"
+ "\tbls _080FFC56\n"
+ "\tb _08100024\n"
+ "_080FFC56:\n"
+ "\tlsls r0, 2\n"
+ "\tldr r1, _080FFC64 @ =_080FFC68\n"
+ "\tadds r0, r1\n"
+ "\tldr r0, [r0]\n"
+ "\tmov pc, r0\n"
+ "\t.align 2, 0\n"
+ "_080FFC60: .4byte gTasks\n"
+ "_080FFC64: .4byte _080FFC68\n"
+ "\t.align 2, 0\n"
+ "_080FFC68:\n"
+ "\t.4byte _080FFC7C\n"
+ "\t.4byte _080FFC7C\n"
+ "\t.4byte _080FFD68\n"
+ "\t.4byte _080FFF1C\n"
+ "\t.4byte _080FFFA0\n"
+ "_080FFC7C:\n"
+ "\tmovs r6, 0\n"
+ "\tldr r0, [sp, 0x4]\n"
+ "\tcmp r6, r0\n"
+ "\tbcc _080FFC86\n"
+ "\tb _08100024\n"
+ "_080FFC86:\n"
+ "\tmov r1, r10\n"
+ "\tlsls r1, 2\n"
+ "\tstr r1, [sp, 0x1C]\n"
+ "_080FFC8C:\n"
+ "\tmov r2, r10\n"
+ "\tlsls r0, r2, 2\n"
+ "\tadd r0, r10\n"
+ "\tlsls r0, 3\n"
+ "\tldr r3, _080FFD64 @ =gTasks\n"
+ "\tadds r0, r3\n"
+ "\tldrh r0, [r0, 0xA]\n"
+ "\tsubs r0, r6\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmov r9, r0\n"
+ "\tmovs r7, 0\n"
+ "\tadds r6, 0x1\n"
+ "\tstr r6, [sp, 0x14]\n"
+ "\tldr r0, [sp, 0x8]\n"
+ "\tcmp r7, r0\n"
+ "\tbcs _080FFD56\n"
+ "\tmov r1, r9\n"
+ "\tlsls r1, 16\n"
+ "\tstr r1, [sp, 0xC]\n"
+ "\tasrs r1, 16\n"
+ "\tmov r9, r1\n"
+ "_080FFCB8:\n"
+ "\tldr r0, [sp, 0x1C]\n"
+ "\tadd r0, r10\n"
+ "\tlsls r0, 3\n"
+ "\tldr r2, _080FFD64 @ =gTasks\n"
+ "\tadds r0, r2\n"
+ "\tldrh r0, [r0, 0x8]\n"
+ "\tadds r0, r7\n"
+ "\tlsls r0, 16\n"
+ "\tmov r8, r0\n"
+ "\tasrs r6, r0, 16\n"
+ "\tadds r0, r6, 0\n"
+ "\tmov r1, r9\n"
+ "\tbl MapGridGetMetatileBehaviorAt\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tldr r3, [sp, 0x4]\n"
+ "\tldr r1, [sp, 0x14]\n"
+ "\tsubs r0, r3, r1\n"
+ "\tldr r2, [sp, 0x8]\n"
+ "\tadds r1, r0, 0\n"
+ "\tmuls r1, r2\n"
+ "\tadds r1, r7\n"
+ "\tldr r3, [sp]\n"
+ "\tldr r0, [r3, 0x1C]\n"
+ "\tlsls r1, 1\n"
+ "\tadds r1, r0\n"
+ "\tmovs r2, 0x80\n"
+ "\tlsls r2, 2\n"
+ "\tadds r0, r2, 0\n"
+ "\tldrh r1, [r1]\n"
+ "\tadds r0, r1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tbl GetBehaviorByMetatileId\n"
+ "\tmovs r3, 0xF0\n"
+ "\tlsls r3, 8\n"
+ "\tadds r1, r3, 0\n"
+ "\tadds r5, r1, 0\n"
+ "\tands r5, r0\n"
+ "\tadds r0, r4, 0\n"
+ "\tldr r1, [sp]\n"
+ "\tbl sub_80FFBDC\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080FFD1A\n"
+ "\tb _080FFFF4\n"
+ "_080FFD1A:\n"
+ "\tmov r0, r10\n"
+ "\tadds r1, r6, 0\n"
+ "\tmov r2, r9\n"
+ "\tadds r3, r5, 0\n"
+ "\tbl sub_80FFB94\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080FFD2E\n"
+ "\tb _080FFFF4\n"
+ "_080FFD2E:\n"
+ "\tmov r1, r8\n"
+ "\tlsrs r0, r1, 16\n"
+ "\tldr r2, [sp, 0xC]\n"
+ "\tlsrs r1, r2, 16\n"
+ "\tmovs r2, 0\n"
+ "\tbl GetFieldObjectIdByXYZ\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tcmp r4, 0\n"
+ "\tbeq _080FFD4A\n"
+ "\tcmp r4, 0x10\n"
+ "\tbeq _080FFD4A\n"
+ "\tb _080FFFF4\n"
+ "_080FFD4A:\n"
+ "\tadds r0, r7, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r7, r0, 24\n"
+ "\tldr r3, [sp, 0x8]\n"
+ "\tcmp r7, r3\n"
+ "\tbcc _080FFCB8\n"
+ "_080FFD56:\n"
+ "\tldr r1, [sp, 0x14]\n"
+ "\tlsls r0, r1, 24\n"
+ "\tlsrs r6, r0, 24\n"
+ "\tldr r2, [sp, 0x4]\n"
+ "\tcmp r6, r2\n"
+ "\tbcc _080FFC8C\n"
+ "\tb _08100024\n"
+ "\t.align 2, 0\n"
+ "_080FFD64: .4byte gTasks\n"
+ "_080FFD68:\n"
+ "\tmovs r6, 0\n"
+ "\tmov r3, r10\n"
+ "\tlsls r3, 2\n"
+ "\tstr r3, [sp, 0x1C]\n"
+ "\tldr r0, [sp, 0x4]\n"
+ "\tsubs r0, 0x1\n"
+ "\tstr r0, [sp, 0x18]\n"
+ "\tcmp r6, r0\n"
+ "\tbge _080FFE54\n"
+ "\tadds r0, r3, 0\n"
+ "\tadd r0, r10\n"
+ "\tlsls r0, 3\n"
+ "\tstr r0, [sp, 0x10]\n"
+ "_080FFD82:\n"
+ "\tldr r1, [sp, 0x10]\n"
+ "\tadds r0, r1, r2\n"
+ "\tldrh r0, [r0, 0xA]\n"
+ "\tsubs r0, r6\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmov r9, r0\n"
+ "\tmovs r7, 0\n"
+ "\tadds r6, 0x1\n"
+ "\tstr r6, [sp, 0x14]\n"
+ "\tldr r3, [sp, 0x8]\n"
+ "\tcmp r7, r3\n"
+ "\tbcs _080FFE48\n"
+ "\tlsls r0, 16\n"
+ "\tstr r0, [sp, 0x20]\n"
+ "_080FFDA0:\n"
+ "\tldr r1, [sp, 0x10]\n"
+ "\tadds r0, r1, r2\n"
+ "\tldrh r0, [r0, 0x8]\n"
+ "\tadds r0, r7\n"
+ "\tlsls r0, 16\n"
+ "\tmov r8, r0\n"
+ "\tasrs r6, r0, 16\n"
+ "\tmov r2, r9\n"
+ "\tlsls r1, r2, 16\n"
+ "\tadds r0, r6, 0\n"
+ "\tasrs r1, 16\n"
+ "\tbl MapGridGetMetatileBehaviorAt\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tldr r3, [sp, 0x4]\n"
+ "\tldr r1, [sp, 0x14]\n"
+ "\tsubs r0, r3, r1\n"
+ "\tldr r2, [sp, 0x8]\n"
+ "\tadds r1, r0, 0\n"
+ "\tmuls r1, r2\n"
+ "\tadds r1, r7\n"
+ "\tldr r3, [sp]\n"
+ "\tldr r0, [r3, 0x1C]\n"
+ "\tlsls r1, 1\n"
+ "\tadds r1, r0\n"
+ "\tmovs r2, 0x80\n"
+ "\tlsls r2, 2\n"
+ "\tadds r0, r2, 0\n"
+ "\tldrh r1, [r1]\n"
+ "\tadds r0, r1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tbl GetBehaviorByMetatileId\n"
+ "\tmovs r3, 0xF0\n"
+ "\tlsls r3, 8\n"
+ "\tadds r1, r3, 0\n"
+ "\tadds r5, r1, 0\n"
+ "\tands r5, r0\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl sub_805729C\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080FFE0C\n"
+ "\tadds r0, r4, 0\n"
+ "\tadds r1, r5, 0\n"
+ "\tbl sub_80FFB6C\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080FFE0C\n"
+ "\tb _080FFFF4\n"
+ "_080FFE0C:\n"
+ "\tmov r0, r10\n"
+ "\tadds r1, r6, 0\n"
+ "\tldr r3, [sp, 0x20]\n"
+ "\tasrs r2, r3, 16\n"
+ "\tadds r3, r5, 0\n"
+ "\tbl sub_80FFB94\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080FFE22\n"
+ "\tb _080FFFF4\n"
+ "_080FFE22:\n"
+ "\tmov r1, r8\n"
+ "\tlsrs r0, r1, 16\n"
+ "\tldr r2, [sp, 0x20]\n"
+ "\tlsrs r1, r2, 16\n"
+ "\tmovs r2, 0\n"
+ "\tbl GetFieldObjectIdByXYZ\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x10\n"
+ "\tbeq _080FFE3A\n"
+ "\tb _080FFFF4\n"
+ "_080FFE3A:\n"
+ "\tadds r0, r7, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r7, r0, 24\n"
+ "\tldr r2, _080FFF18 @ =gTasks\n"
+ "\tldr r3, [sp, 0x8]\n"
+ "\tcmp r7, r3\n"
+ "\tbcc _080FFDA0\n"
+ "_080FFE48:\n"
+ "\tldr r1, [sp, 0x14]\n"
+ "\tlsls r0, r1, 24\n"
+ "\tlsrs r6, r0, 24\n"
+ "\tldr r3, [sp, 0x18]\n"
+ "\tcmp r6, r3\n"
+ "\tblt _080FFD82\n"
+ "_080FFE54:\n"
+ "\tldr r0, [sp, 0x1C]\n"
+ "\tadd r0, r10\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r2\n"
+ "\tldrh r0, [r0, 0xA]\n"
+ "\tldr r1, [sp, 0x4]\n"
+ "\tsubs r0, r1\n"
+ "\tadds r0, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmov r9, r0\n"
+ "\tmovs r7, 0\n"
+ "\tldr r3, [sp, 0x8]\n"
+ "\tcmp r7, r3\n"
+ "\tbcc _080FFE74\n"
+ "\tb _08100024\n"
+ "_080FFE74:\n"
+ "\tlsls r0, 16\n"
+ "\tstr r0, [sp, 0x20]\n"
+ "_080FFE78:\n"
+ "\tldr r0, [sp, 0x1C]\n"
+ "\tadd r0, r10\n"
+ "\tlsls r0, 3\n"
+ "\tldr r1, _080FFF18 @ =gTasks\n"
+ "\tadds r0, r1\n"
+ "\tldrh r0, [r0, 0x8]\n"
+ "\tadds r0, r7\n"
+ "\tlsls r0, 16\n"
+ "\tmov r8, r0\n"
+ "\tasrs r6, r0, 16\n"
+ "\tmov r2, r9\n"
+ "\tlsls r1, r2, 16\n"
+ "\tadds r0, r6, 0\n"
+ "\tasrs r1, 16\n"
+ "\tbl MapGridGetMetatileBehaviorAt\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tldr r3, [sp]\n"
+ "\tldr r0, [r3, 0x1C]\n"
+ "\tlsls r1, r7, 1\n"
+ "\tadds r1, r0\n"
+ "\tmovs r2, 0x80\n"
+ "\tlsls r2, 2\n"
+ "\tadds r0, r2, 0\n"
+ "\tldrh r1, [r1]\n"
+ "\tadds r0, r1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tbl GetBehaviorByMetatileId\n"
+ "\tmovs r3, 0xF0\n"
+ "\tlsls r3, 8\n"
+ "\tadds r1, r3, 0\n"
+ "\tadds r5, r1, 0\n"
+ "\tands r5, r0\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl sub_805729C\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080FFEDA\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl sub_80572B0\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080FFEDA\n"
+ "\tb _080FFFF4\n"
+ "_080FFEDA:\n"
+ "\tmov r0, r10\n"
+ "\tadds r1, r6, 0\n"
+ "\tldr r3, [sp, 0x20]\n"
+ "\tasrs r2, r3, 16\n"
+ "\tadds r3, r5, 0\n"
+ "\tbl sub_80FFB94\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080FFEF0\n"
+ "\tb _080FFFF4\n"
+ "_080FFEF0:\n"
+ "\tmov r1, r8\n"
+ "\tlsrs r0, r1, 16\n"
+ "\tldr r2, [sp, 0x20]\n"
+ "\tlsrs r1, r2, 16\n"
+ "\tmovs r2, 0\n"
+ "\tbl GetFieldObjectIdByXYZ\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tcmp r4, 0\n"
+ "\tbeq _080FFF0A\n"
+ "\tcmp r4, 0x10\n"
+ "\tbne _080FFFF4\n"
+ "_080FFF0A:\n"
+ "\tadds r0, r7, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r7, r0, 24\n"
+ "\tldr r3, [sp, 0x8]\n"
+ "\tcmp r7, r3\n"
+ "\tbcc _080FFE78\n"
+ "\tb _08100024\n"
+ "\t.align 2, 0\n"
+ "_080FFF18: .4byte gTasks\n"
+ "_080FFF1C:\n"
+ "\tmovs r6, 0\n"
+ "\tldr r0, [sp, 0x4]\n"
+ "\tcmp r6, r0\n"
+ "\tbcc _080FFF26\n"
+ "\tb _08100024\n"
+ "_080FFF26:\n"
+ "\tmov r1, r10\n"
+ "\tlsls r0, r1, 2\n"
+ "\tadd r0, r10\n"
+ "\tlsls r1, r0, 3\n"
+ "\tldr r2, _080FFF9C @ =gTasks\n"
+ "\tadds r0, r1, r2\n"
+ "\tldrh r0, [r0, 0xA]\n"
+ "\tsubs r0, r6\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmov r9, r0\n"
+ "\tmovs r7, 0\n"
+ "\tldr r3, [sp, 0x8]\n"
+ "\tcmp r7, r3\n"
+ "\tbcs _080FFF8C\n"
+ "\tadds r0, r2, 0\n"
+ "\tadds r1, r0\n"
+ "\tmov r8, r1\n"
+ "\tmov r1, r9\n"
+ "\tlsls r0, r1, 16\n"
+ "\tasrs r5, r0, 16\n"
+ "_080FFF50:\n"
+ "\tmov r2, r8\n"
+ "\tldrh r0, [r2, 0x8]\n"
+ "\tadds r0, r7\n"
+ "\tlsls r0, 16\n"
+ "\tasrs r4, r0, 16\n"
+ "\tadds r0, r4, 0\n"
+ "\tadds r1, r5, 0\n"
+ "\tbl MapGridGetMetatileBehaviorAt\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tbl sub_80572B0\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080FFFF4\n"
+ "\tadds r0, r4, 0\n"
+ "\tadds r1, r5, 0x1\n"
+ "\tbl MapGridGetMetatileIdAt\n"
+ "\tmovs r1, 0xA3\n"
+ "\tlsls r1, 2\n"
+ "\tcmp r0, r1\n"
+ "\tbeq _080FFFF4\n"
+ "\tadds r0, r7, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r7, r0, 24\n"
+ "\tldr r3, [sp, 0x8]\n"
+ "\tcmp r7, r3\n"
+ "\tbcc _080FFF50\n"
+ "_080FFF8C:\n"
+ "\tadds r0, r6, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r6, r0, 24\n"
+ "\tldr r0, [sp, 0x4]\n"
+ "\tcmp r6, r0\n"
+ "\tbcc _080FFF26\n"
+ "\tb _08100024\n"
+ "\t.align 2, 0\n"
+ "_080FFF9C: .4byte gTasks\n"
+ "_080FFFA0:\n"
+ "\tmov r3, r10\n"
+ "\tlsls r1, r3, 2\n"
+ "\tadds r0, r1, r3\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r2\n"
+ "\tldrh r0, [r0, 0xA]\n"
+ "\tmov r9, r0\n"
+ "\tmovs r7, 0\n"
+ "\tstr r1, [sp, 0x1C]\n"
+ "\tldr r0, [sp, 0x8]\n"
+ "\tcmp r7, r0\n"
+ "\tbcs _08100024\n"
+ "\tadds r6, r2, 0\n"
+ "\tmov r1, r9\n"
+ "\tlsls r1, 16\n"
+ "\tstr r1, [sp, 0x20]\n"
+ "_080FFFC0:\n"
+ "\tldr r0, [sp, 0x1C]\n"
+ "\tadd r0, r10\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r6\n"
+ "\tldrh r0, [r0, 0x8]\n"
+ "\tadds r0, r7\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r5, r0, 16\n"
+ "\tasrs r0, 16\n"
+ "\tmov r2, r9\n"
+ "\tlsls r1, r2, 16\n"
+ "\tasrs r1, 16\n"
+ "\tbl MapGridGetMetatileBehaviorAt\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tldr r3, [sp]\n"
+ "\tldrb r0, [r3, 0x12]\n"
+ "\tcmp r0, 0x5\n"
+ "\tbne _080FFFF8\n"
+ "_080FFFE8:\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl sub_80572EC\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbne _08100004\n"
+ "_080FFFF4:\n"
+ "\tmovs r0, 0\n"
+ "\tb _08100026\n"
+ "_080FFFF8:\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl sub_80572D8\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080FFFE8\n"
+ "_08100004:\n"
+ "\tadds r0, r5, 0\n"
+ "\tldr r2, [sp, 0x20]\n"
+ "\tlsrs r1, r2, 16\n"
+ "\tmovs r2, 0\n"
+ "\tbl GetFieldObjectIdByXYZ\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x10\n"
+ "\tbne _080FFFF4\n"
+ "\tadds r0, r7, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r7, r0, 24\n"
+ "\tldr r3, [sp, 0x8]\n"
+ "\tcmp r7, r3\n"
+ "\tbcc _080FFFC0\n"
+ "_08100024:\n"
+ "\tmovs r0, 0x1\n"
+ "_08100026:\n"
+ "\tadd sp, 0x24\n"
+ "\tpop {r3-r5}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tmov r10, r5\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r1}\n"
+ "\tbx r1\n"
+ ".syntax divided\n");
+}
+#endif
+
+void sub_8100038(u8 taskId)
+{
+ if (sub_80FFC24(taskId, &gDecorations[gUnknown_020388D0[gUnknown_020388F5]]) == 1)
+ {
+ DisplayItemMessageOnField(taskId, gSecretBaseText_PlaceItHere, sub_81000A0, 0);
+ } else
+ {
+ PlaySE(SE_HAZURE);
+ DisplayItemMessageOnField(taskId, gSecretBaseText_CantBePlacedHere, sub_81006A8, 0);
+ }
+}
+
+void sub_81000A0(u8 taskId)
+{
+ DisplayYesNoMenu(20, 8, 1);
+ sub_80F914C(taskId, &gUnknown_083EC95C);
+}
+
+void sub_81000C4(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ sub_8100174(taskId);
+ if (gDecorations[gUnknown_020388D0[gUnknown_020388F5]].permission != DECORPERM_SOLID_MAT)
+ {
+ sub_80FF394(gTasks[taskId].data[0], gTasks[taskId].data[1], gUnknown_020388D0[gUnknown_020388F5]);
+ } else
+ {
+ gUnknown_020391A4 = gTasks[taskId].data[0] - 7;
+ gUnknown_020391A6 = gTasks[taskId].data[1] - 7;
+ ScriptContext1_SetupScript(gUnknown_081A2F7B);
+ }
+ gSprites[gUnknown_020391A8].pos1.y += 2;
+ sub_810028C(taskId);
+}
+
+void sub_8100174(u8 taskId)
+{
+ u16 i;
+ for (i=0; i<ewram_1f000.size; i++)
+ {
+ if (ewram_1f000.items[i] == 0)
+ {
+ ewram_1f000.items[i] = gUnknown_020388D0[gUnknown_020388F5];
+ ewram_1f000.pos[i] = ((gTasks[taskId].data[0] - 7) << 4) + (gTasks[taskId].data[1] - 7);
+ break;
+ }
+ }
+ if (!ewram_1f000.isPlayerRoom)
+ {
+ for (i=0; i<16; i++)
+ {
+ if (gUnknown_020388D6[i] == 0)
+ {
+ gUnknown_020388D6[i] = gUnknown_020388F5 + 1;
+ break;
+ }
+ }
+ } else
+ {
+ for (i=0; i<12; i++)
+ {
+ if (gUnknown_020388E6[i] == 0)
+ {
+ gUnknown_020388E6[i] = gUnknown_020388F5 + 1;
+ break;
+ }
+ }
+ }
+}
+
+void sub_8100248(u8 taskId)
+{
+ DisplayYesNoMenu(20, 8, 1);
+ sub_80F914C(taskId, &gUnknown_083EC964);
+}
+
+void sub_810026C(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ sub_810028C(taskId);
+}
+
+void sub_810028C(u8 taskId)
+{
+ fade_screen(1, 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = c1_overworld_prev_quest;
+}
+
+void c1_overworld_prev_quest(u8 taskId)
+{
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ ScriptContext2_Enable();
+ if (!gPaletteFade.active)
+ {
+ sub_80FF114(taskId);
+ gTasks[taskId].data[2] = 1;
+ }
+ break;
+ case 1:
+ sub_81016F4();
+ FreeSpritePaletteByTag(0xbb8);
+ gUnknown_0300485C = &sub_8100364;
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void sub_8100334(u8 taskId)
+{
+ if (sub_807D770() == 1)
+ {
+ gTasks[taskId].func = sub_80FE948;
+ }
+}
+
+void sub_8100364(void)
+{
+ ScriptContext2_Enable();
+ LoadScrollIndicatorPalette();
+ pal_fill_black();
+ sub_80FE7EC(CreateTask(sub_8100334, 8));
+}
+
+bool8 sub_810038C(u8 taskId)
+{
+ s16 *data;
+ data = gTasks[taskId].data;
+ if (gUnknown_020391AA == DIR_SOUTH && data[1] - data[6] - 6 < 0)
+ {
+ data[1]++;
+ return FALSE;
+ } else if (gUnknown_020391AA == DIR_NORTH && data[1] - 7 >= gMapHeader.mapData->height)
+ {
+ data[1]--;
+ return FALSE;
+ } else if (gUnknown_020391AA == DIR_WEST && data[0] - 7 < 0)
+ {
+ data[0]++;
+ return FALSE;
+ } else if (gUnknown_020391AA == DIR_EAST && data[0] + data[5] - 8 >= gMapHeader.mapData->width)
+ {
+ data[0]--;
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_8100430(void)
+{
+ if ((gMain.heldKeys & DPAD_ANY) != DPAD_UP && (gMain.heldKeys & DPAD_ANY) != DPAD_DOWN && (gMain.heldKeys & DPAD_ANY) != DPAD_LEFT && (gMain.heldKeys & DPAD_ANY) != DPAD_RIGHT)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_810045C(void)
+{
+ gUnknown_020391AA = 0;
+ gSprites[gUnknown_020391A8].data2 = 0;
+ gSprites[gUnknown_020391A8].data3 = 0;
+}
+
+void sub_8100494(u8 taskId)
+{
+ if (!gSprites[gUnknown_020391A8].data4)
+ {
+ if (gTasks[taskId].data[10] == 1)
+ {
+ gUnknown_083EC96C[gTasks[taskId].data[12]].yesFunc(taskId);
+ return;
+ } else if (gTasks[taskId].data[10] == 2)
+ {
+ gUnknown_083EC96C[gTasks[taskId].data[12]].noFunc(taskId);
+ return;
+ }
+ if ((gMain.heldKeys & DPAD_ANY) == DPAD_UP)
+ {
+ gUnknown_020391AA = DIR_SOUTH;
+ gSprites[gUnknown_020391A8].data2 = 0;
+ gSprites[gUnknown_020391A8].data3 = -2;
+ gTasks[taskId].data[1]--;
+ }
+ if ((gMain.heldKeys & DPAD_ANY) == DPAD_DOWN)
+ {
+ gUnknown_020391AA = DIR_NORTH;
+ gSprites[gUnknown_020391A8].data2 = 0;
+ gSprites[gUnknown_020391A8].data3 = 2;
+ gTasks[taskId].data[1]++;
+ }
+ if ((gMain.heldKeys & DPAD_ANY) == DPAD_LEFT)
+ {
+ gUnknown_020391AA = DIR_WEST;
+ gSprites[gUnknown_020391A8].data2 = -2;
+ gSprites[gUnknown_020391A8].data3 = 0;
+ gTasks[taskId].data[0]--;
+ }
+ if ((gMain.heldKeys & DPAD_ANY) == DPAD_RIGHT)
+ {
+ gUnknown_020391AA = DIR_EAST;
+ gSprites[gUnknown_020391A8].data2 = 2;
+ gSprites[gUnknown_020391A8].data3 = 0;
+ gTasks[taskId].data[0]++;
+ }
+ if (!sub_8100430() || !sub_810038C(taskId))
+ {
+ sub_810045C();
+ }
+ }
+ if (gUnknown_020391AA)
+ {
+ gSprites[gUnknown_020391A8].data4++;
+ gSprites[gUnknown_020391A8].data4 &= 7;
+ }
+ if (!gTasks[taskId].data[10])
+ {
+ if (gMain.newKeys & A_BUTTON)
+ {
+ gTasks[taskId].data[10] = A_BUTTON;
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ gTasks[taskId].data[10] = B_BUTTON;
+ }
+ }
+}
+
+void sub_810065C(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ gSprites[gUnknown_020391A8].data7 = 0;
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].func = sub_8100494;
+}
+
+void sub_81006A8(u8 taskId)
+{
+ if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
+ {
+ sub_810065C(taskId);
+ }
+}
+
+void sub_81006D0(struct UnkStruct_02038900 *unk_02038900)
+{
+ u16 i;
+ for (i=0; i<0x800; i++)
+ {
+ unk_02038900->image[i] = 0;
+ }
+ for (i=0; i<0x40; i++)
+ {
+ unk_02038900->tiles[i] = 0;
+ }
+}
+
+void sub_810070C(u16 *a0, u16 a1)
+{
+ u16 i;
+ for (i=0; i<16; i++)
+ {
+ a0[i] = ((u16 *)gMapHeader.mapData->primaryTileset->palettes)[16 * a1 + i];
+ }
+}
+
+void sub_8100740(u8 *dest, u16 flags)
+{
+ u8 buffer[32];
+ u16 mode;
+ u16 i;
+ mode = flags >> 10;
+ if (flags != 0)
+ {
+ flags &= 0x3ff;
+ }
+ for (i=0; i<32; i++)
+ {
+ buffer[i] = ((u8 *)gMapHeader.mapData->primaryTileset->tiles)[flags * 32 + i];
+ }
+ switch (mode)
+ {
+ case 0:
+ for (i=0; i<32; i++)
+ {
+ dest[i] = buffer[i];
+ }
+ break;
+ case 1:
+ for (i=0; i<8; i++)
+ {
+ dest[4*i] = (buffer[4*(i+1) - 1] >> 4) + ((buffer[4*(i+1) - 1] & 0xf) << 4);
+ dest[4*i + 1] = (buffer[4*(i+1) - 2] >> 4) + ((buffer[4*(i+1) - 2] & 0xf) << 4);
+ dest[4*i + 2] = (buffer[4*(i+1) - 3] >> 4) + ((buffer[4*(i+1) - 3] & 0xf) << 4);
+ dest[4*i + 3] = (buffer[4*(i+1) - 4] >> 4) + ((buffer[4*(i+1) - 4] & 0xf) << 4);
+ }
+ break;
+ case 2:
+ for (i=0; i<8; i++)
+ {
+ dest[4*i] = buffer[4*(7-i)];
+ dest[4*i + 1] = buffer[4*(7-i) + 1];
+ dest[4*i + 2] = buffer[4*(7-i) + 2];
+ dest[4*i + 3] = buffer[4*(7-i) + 3];
+ }
+ break;
+ case 3:
+ for (i=0; i<32; i++)
+ {
+ dest[i] = (buffer[31-i] >> 4) + ((buffer[31-i] & 0xf) << 4);
+ }
+ break;
+ }
+}
+
+void sub_8100874(struct UnkStruct_02038900 *unk_02038900)
+{
+ u16 i;
+ for (i=0; i<0x40; i++)
+ sub_8100740(&unk_02038900->image[i * 32], unk_02038900->tiles[i]);
+}
+
+u16 sub_810089C(u16 a0)
+{
+ return ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles)[a0] & 0xfff;
+}
+
+void sub_81008BC(struct UnkStruct_02038900 *unk_02038900)
+{
+ u8 i;
+ u8 shape;
+ shape = unk_02038900->decoration->shape;
+ for (i=0; i<gUnknown_083EC860[shape].size; i++)
+ {
+ unk_02038900->tiles[gUnknown_083EC860[shape].tiles[i]] = sub_810089C(unk_02038900->decoration->tiles[gUnknown_083EC860[shape].y[i]] * 8 + gUnknown_083EC860[shape].x[i]);
+ }
+}
+
+void sub_8100930(u8 decoShape)
+{
+ gUnknown_020391AC.y = 0;
+ gUnknown_020391AC.affineMode = 0;
+ gUnknown_020391AC.objMode = 0;
+ gUnknown_020391AC.mosaic = 0;
+ gUnknown_020391AC.bpp = 0;
+ gUnknown_020391AC.shape = gUnknown_083EC900[decoShape].shape;
+ gUnknown_020391AC.x = 0;
+ gUnknown_020391AC.matrixNum = 0;
+ gUnknown_020391AC.size = gUnknown_083EC900[decoShape].size;
+ gUnknown_020391AC.tileNum = 0;
+ gUnknown_020391AC.priority = 1;
+ gUnknown_020391AC.paletteNum = 0;
+}
+
+void sub_81009A8(struct Sprite *sprite)
+{
+ sprite->data2 = 0;
+ sprite->data3 = 0;
+ sprite->data4 = 0;
+ sprite->data5 = 0;
+ sprite->data6 = 0;
+ sprite->data7 = 0;
+ sprite->callback = sub_81009C0;
+}
+
+void sub_81009C0(struct Sprite *sprite)
+{
+ if (sprite->data7 == 0)
+ {
+ if (sprite->data6 < 15)
+ {
+ sprite->invisible = 0;
+ } else
+ {
+ sprite->invisible = 1;
+ }
+ sprite->data6 = (sprite->data6 + 1) & 0x1f;
+ } else
+ {
+ sprite->invisible = 0;
+ }
+}
+
+void sub_8100A0C(u8 taskId)
+{
+ if (sub_8100D38(taskId) == 1)
+ {
+ fade_screen(1, 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_8100E70;
+ } else
+ {
+ DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecorInUse, sub_80FE428, 0);
+ }
+}
+
+void sub_8100A60(u8 a0)
+{
+ ewram_1f000.items[a0] = 0;
+ ewram_1f000.pos[a0] = 0;
+}
+
+void sub_8100A7C(void)
+{
+ u16 i;
+ gSpecialVar_0x8005 = 0;
+ gScriptResult = 0;
+ if (gSpecialVar_0x8004 == gUnknown_02039234)
+ {
+ gScriptResult = 1;
+ } else if (gDecorations[ewram_1f000.items[gUnknown_020391B4[gSpecialVar_0x8004].decorId]].permission == DECORPERM_SOLID_MAT)
+ {
+ gSpecialVar_0x8005 = gUnknown_020391B4[gSpecialVar_0x8004].flagId;
+ sub_8100A60(gUnknown_020391B4[gSpecialVar_0x8004].decorId);
+ for (i=0; i<gMapHeader.events->mapObjectCount; i++)
+ {
+ if (gMapHeader.events->mapObjects[i].flagId == gSpecialVar_0x8005)
+ {
+ gSpecialVar_0x8006 = gMapHeader.events->mapObjects[i].localId;
+ break;
+ }
+ }
+ }
+}
+
+void sub_8100B20(void)
+{
+ u8 i;
+ for (i=0; i<gMapHeader.events->mapObjectCount; i++)
+ {
+ if (gMapHeader.events->mapObjects[i].flagId == gSpecialVar_0x8004)
+ {
+ gSpecialVar_0x8005 = gMapHeader.events->mapObjects[i].localId;
+ break;
+ }
+ }
+}
+
+void sub_8100B6C(void)
+{
+ u8 i;
+ u8 j;
+ u8 k;
+ u8 x;
+ u8 y;
+ u8 permission;
+ for (i=0; i<gUnknown_02039234; i++)
+ {
+ permission = gDecorations[ewram_1f000.items[gUnknown_020391B4[i].decorId]].permission;
+ x = ewram_1f000.pos[gUnknown_020391B4[i].decorId] >> 4;
+ y = ewram_1f000.pos[gUnknown_020391B4[i].decorId] & 0xf;
+ if (permission != DECORPERM_SOLID_MAT)
+ {
+ if (ewram_1f000.items[gUnknown_020391B4[i].decorId] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(x + 7, y + 7) == 0x28c)
+ {
+ gUnknown_020391B4[i].height++;
+ }
+ for (j=0; j<gUnknown_020391B4[i].height; j++)
+ {
+ for (k=0; k<gUnknown_020391B4[i].width; k++)
+ {
+ MapGridSetMetatileEntryAt(x + 7 + k, y + 7 - j, ((u16 *)gMapHeader.mapData->map)[(x + k) + gMapHeader.mapData->width * (y - j)] | 0x3000);
+ }
+ }
+ sub_8100A60(gUnknown_020391B4[i].decorId);
+ }
+ }
+}
+
+void sub_8100C88(u8 taskId)
+{
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ sub_8100B6C();
+ gTasks[taskId].data[2] = 1;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ DrawWholeMapView();
+ ScriptContext1_SetupScript(gUnknown_081A2F8A);
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ gTasks[taskId].data[2] = 2;
+ }
+ break;
+ case 2:
+ ScriptContext2_Enable();
+ sub_80FED90(taskId);
+ pal_fill_black();
+ gTasks[taskId].data[2] = 3;
+ break;
+ case 3:
+ if (sub_807D770() == 1)
+ {
+ gTasks[taskId].data[13] = -1;
+ DisplayItemMessageOnField(taskId, gSecretBaseText_DecorReturned, sub_81010F0, 0);
+ }
+ break;
+ }
+}
+
+bool8 sub_8100D38(u8 taskId)
+{
+ u16 i;
+ for (i=0; i<ewram_1f000.size; i++)
+ {
+ if (ewram_1f000.items[i] != 0)
+ {
+ gTasks[taskId].data[13] = i;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void SetUpPuttingAwayDecorationPlayerAvatar(void)
+{
+ player_get_direction_lower_nybble();
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data0;
+ sub_81016C8();
+ gUnknown_03004880.unk4 = CreateSprite(&gSpriteTemplate_83ECA88, 0x78, 0x50, 0);
+ if (gSaveBlock2.playerGender == MALE)
+ {
+ gUnknown_020391A9 = AddPseudoFieldObject(0xc1, SpriteCallbackDummy, 0x88, 0x48, 0);
+ } else
+ {
+ gUnknown_020391A9 = AddPseudoFieldObject(0xc2, SpriteCallbackDummy, 0x88, 0x48, 0);
+ }
+ gSprites[gUnknown_020391A9].oam.priority = 1;
+ DestroySprite(&gSprites[gUnknown_020391A8]);
+ gUnknown_020391A8 = gUnknown_03004880.unk4;
+ gSprites[gUnknown_020391A8].oam.priority = 1;
+}
+
+void sub_8100E70(u8 taskId)
+{
+ s16 *data;
+ data = gTasks[taskId].data;
+ switch (data[2])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ sub_80FF0E0(taskId);
+ data[2] = 1;
+ data[6] = 1;
+ data[5] = 1;
+ sub_8072DEC();
+ }
+ break;
+ case 1:
+ SetUpPuttingAwayDecorationPlayerAvatar();
+ pal_fill_black();
+ data[2] = 2;
+ break;
+ case 2:
+ if (sub_807D770() == TRUE)
+ {
+ data[12] = 1;
+ sub_8100EEC(taskId);
+ }
+ break;
+ }
+}
+
+void sub_8100EEC(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ gSprites[gUnknown_020391A8].data7 = 0;
+ gSprites[gUnknown_020391A8].invisible = 0;
+ gSprites[gUnknown_020391A8].callback = sub_8101698;
+ gSprites[gUnknown_020391A9].pos1.x = 0x88;
+ gSprites[gUnknown_020391A9].pos1.y = 0x48;
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].func = sub_8100494;
+}
+
+void sub_8100F88(u8 taskId)
+{
+ gTasks[taskId].data[10] = 0;
+ sub_810045C();
+ sub_8101024(taskId);
+}
+
+void sub_8100FB4(u8 taskId)
+{
+ gTasks[taskId].data[10] = 0;
+ sub_810045C();
+ gSprites[gUnknown_020391A8].invisible = 0;
+ gSprites[gUnknown_020391A8].callback = SpriteCallbackDummy;
+ DisplayItemMessageOnField(taskId, gSecretBaseText_StopPuttingAwayDecor, sub_810156C, 0);
+}
+
+void sub_8101024(u8 taskId)
+{
+ u8 mtBehavior;
+ s16 *data;
+ sub_8101460(taskId);
+ if (gUnknown_02039234 != 0)
+ {
+ DisplayItemMessageOnField(taskId, gSecretBaseText_ReturnDecor, sub_8101518, 0);
+ } else
+ {
+ data = gTasks[taskId].data;
+ mtBehavior = MapGridGetMetatileBehaviorAt(data[0], data[1]);
+ if (MetatileBehavior_IsSecretBasePC(mtBehavior) == TRUE || sub_805738C(mtBehavior) == TRUE)
+ {
+ gSprites[gUnknown_020391A8].invisible = 0;
+ gSprites[gUnknown_020391A8].callback = SpriteCallbackDummy;
+ DisplayItemMessageOnField(taskId, gSecretBaseText_StopPuttingAwayDecor, sub_810156C, 0);
+ } else
+ {
+ DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecor, sub_81010F0, 0);
+ }
+ }
+}
+
+void sub_81010F0(u8 taskId)
+{
+ if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
+ {
+ sub_8100EEC(taskId);
+ }
+}
+
+void sub_8101118(u8 decorIdx, struct UnkStruct_020391B4 *unk_020391B4)
+{
+ if (gDecorations[decorIdx].shape == DECORSHAPE_1x1)
+ {
+ unk_020391B4->width = 1;
+ unk_020391B4->height = 1;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_2x1)
+ {
+ unk_020391B4->width = 2;
+ unk_020391B4->height = 1;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_3x1)
+ {
+ unk_020391B4->width = 3;
+ unk_020391B4->height = 1;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_4x2)
+ {
+ unk_020391B4->width = 4;
+ unk_020391B4->height = 2;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_2x2)
+ {
+ unk_020391B4->width = 2;
+ unk_020391B4->height = 2;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_1x2)
+ {
+ unk_020391B4->width = 1;
+ unk_020391B4->height = 2;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_1x3)
+ {
+ unk_020391B4->width = 1;
+ unk_020391B4->height = 3;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_2x4)
+ {
+ unk_020391B4->width = 2;
+ unk_020391B4->height = 4;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_3x3)
+ {
+ unk_020391B4->width = 3;
+ unk_020391B4->height = 3;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_3x2)
+ {
+ unk_020391B4->width = 3;
+ unk_020391B4->height = 2;
+ }
+}
+
+void sub_8101198(u8 x, u8 y)
+{
+ gSprites[gUnknown_020391A8].invisible = 1;
+ gSprites[gUnknown_020391A8].callback = SpriteCallbackDummy;
+ gSprites[gUnknown_020391A9].pos1.x = 0x88 + x * 16;
+ gSprites[gUnknown_020391A9].pos1.y = 0x48 + y * 16;
+}
+
+bool8 sub_8101200(u8 taskId, u8 decorIdx, struct UnkStruct_020391B4 *unk_020391B4)
+{
+ u8 x;
+ u8 y;
+ u8 xOff;
+ u8 yOff;
+ x = gTasks[taskId].data[0] - 7;
+ y = gTasks[taskId].data[1] - 7;
+ xOff = ewram_1f000.pos[decorIdx] >> 4;
+ yOff = ewram_1f000.pos[decorIdx] & 0xf;
+ if (ewram_1f000.items[decorIdx] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(xOff + 7, yOff + 7) == 0x28c)
+ {
+ unk_020391B4->height--;
+ }
+ if (x >= xOff && x < xOff + unk_020391B4->width && y > yOff - unk_020391B4->height && y <= yOff)
+ {
+ sub_8101198(unk_020391B4->width - (x - xOff + 1), yOff - y);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_81012A0(void)
+{
+ u8 xOff;
+ u8 yOff;
+ u16 i;
+ xOff = ewram_1f000.pos[gUnknown_020391B4[gUnknown_02039234].decorId] >> 4;
+ yOff = ewram_1f000.pos[gUnknown_020391B4[gUnknown_02039234].decorId] & 0xf;
+ for (i=0; i<0x40; i++)
+ {
+ if (gSaveBlock1.mapObjectTemplates[i].x == xOff && gSaveBlock1.mapObjectTemplates[i].y == yOff && !FlagGet(gSaveBlock1.mapObjectTemplates[i].flagId))
+ {
+ gUnknown_020391B4[gUnknown_02039234].flagId = gSaveBlock1.mapObjectTemplates[i].flagId;
+ break;
+ }
+ }
+}
+
+bool8 sub_8101340(u8 taskId)
+{
+ u16 i;
+ for (i=0; i<ewram_1f000.size; i++)
+ {
+ if (ewram_1f000.items[i] != 0)
+ {
+ if (gDecorations[ewram_1f000.items[i]].permission == DECORPERM_SOLID_MAT)
+ {
+ sub_8101118(ewram_1f000.items[i], gUnknown_020391B4);
+ if (sub_8101200(taskId, i, gUnknown_020391B4) == TRUE)
+ {
+ gUnknown_020391B4->decorId = i;
+ sub_81012A0();
+ gUnknown_02039234 = 1;
+ return TRUE;
+ }
+ }
+ }
+ }
+ return FALSE;
+}
+
+void sub_81013B8(u8 a0, u8 a1, u8 a2, u8 a3)
+{
+ u8 i;
+ u8 xOff;
+ u8 yOff;
+ u8 decorIdx;
+ for (i=0; i<ewram_1f000.size; i++)
+ {
+ decorIdx = ewram_1f000.items[i];
+ xOff = ewram_1f000.pos[i] >> 4;
+ yOff = ewram_1f000.pos[i] & 0xf;
+ if (decorIdx != 0 && gDecorations[decorIdx].permission == DECORPERM_SOLID_MAT && a0 <= xOff && a1 <= yOff && a2 >= xOff && a3 >= yOff)
+ {
+ gUnknown_020391B4[gUnknown_02039234].decorId = i;
+ sub_81012A0();
+ gUnknown_02039234++;
+ }
+ }
+}
+
+#ifdef NONMATCHING
+void sub_8101460(u8 taskId)
+{
+ u8 i;
+ u8 xOff;
+ u8 yOff;
+ gUnknown_02039234 = 0;
+ if (sub_8101340(taskId) != TRUE)
+ {
+ for (i=0; i<ewram_1f000.size; i++)
+ {
+ if (ewram_1f000.items[i] == 0) // This is using the wrong register!
+ {
+ continue;
+ }
+ sub_8101118(ewram_1f000.items[i], gUnknown_020391B4);
+ if (sub_8101200(taskId, i, gUnknown_020391B4) == TRUE)
+ {
+ gUnknown_020391B4[0].decorId = i;
+ gUnknown_02039234++;
+ break;
+ }
+ }
+ if (gUnknown_02039234 != 0)
+ {
+ xOff = ewram_1f000.pos[gUnknown_020391B4[0].decorId] >> 4;
+ yOff = ewram_1f000.pos[gUnknown_020391B4[0].decorId] & 0xf;
+ sub_81013B8(xOff, yOff - gUnknown_020391B4[0].height + 1, xOff + gUnknown_020391B4[0].width - 1, yOff);
+ }
+ }
+}
+#else
+__attribute__((naked))
+void sub_8101460(u8 taskId)
+{
+ asm(".syntax unified\n"
+ "\tpush {r4-r7,lr}\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r6, r0, 24\n"
+ "\tldr r4, _081014B8 @ =gUnknown_02039234\n"
+ "\tmovs r0, 0\n"
+ "\tstrb r0, [r4]\n"
+ "\tadds r0, r6, 0\n"
+ "\tbl sub_8101340\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x1\n"
+ "\tbeq _08101504\n"
+ "\tmovs r5, 0\n"
+ "\tldr r0, _081014BC @ =ewram_1f000\n"
+ "\tldrb r1, [r0, 0x8]\n"
+ "\tcmp r5, r1\n"
+ "\tbcs _081014D2\n"
+ "\tadds r7, r4, 0\n"
+ "_08101486:\n"
+ "\tldr r0, [r0]\n"
+ "\tadds r0, r5\n"
+ "\tldrb r1, [r0] @ compiler incorrectly uses r0 for this and the next instruction\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _081014C4\n"
+ "\tldr r4, _081014C0 @ =gUnknown_020391B4\n"
+ "\tadds r0, r1, 0\n"
+ "\tadds r1, r4, 0\n"
+ "\tbl sub_8101118\n"
+ "\tadds r0, r6, 0\n"
+ "\tadds r1, r5, 0\n"
+ "\tadds r2, r4, 0\n"
+ "\tbl sub_8101200\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _081014C4\n"
+ "\tstrb r5, [r4]\n"
+ "\tldrb r0, [r7]\n"
+ "\tadds r0, 0x1\n"
+ "\tstrb r0, [r7]\n"
+ "\tb _081014D2\n"
+ "\t.align 2, 0\n"
+ "_081014B8: .4byte gUnknown_02039234\n"
+ "_081014BC: .4byte 0x201f000\n"
+ "_081014C0: .4byte gUnknown_020391B4\n"
+ "_081014C4:\n"
+ "\tadds r0, r5, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r5, r0, 24\n"
+ "\tldr r0, _0810150C @ =ewram_1f000\n"
+ "\tldrb r1, [r0, 0x8]\n"
+ "\tcmp r5, r1\n"
+ "\tbcc _08101486\n"
+ "_081014D2:\n"
+ "\tldr r0, _08101510 @ =gUnknown_02039234\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08101504\n"
+ "\tldr r0, _0810150C @ =ewram_1f000\n"
+ "\tldr r2, _08101514 @ =gUnknown_020391B4\n"
+ "\tldrb r1, [r2]\n"
+ "\tldr r0, [r0, 0x4]\n"
+ "\tadds r0, r1\n"
+ "\tldrb r1, [r0]\n"
+ "\tlsrs r0, r1, 4\n"
+ "\tmovs r3, 0xF\n"
+ "\tands r3, r1\n"
+ "\tldrb r1, [r2, 0x2]\n"
+ "\tsubs r1, r3, r1\n"
+ "\tadds r1, 0x1\n"
+ "\tlsls r1, 24\n"
+ "\tlsrs r1, 24\n"
+ "\tldrb r2, [r2, 0x1]\n"
+ "\tadds r2, r0\n"
+ "\tsubs r2, 0x1\n"
+ "\tlsls r2, 24\n"
+ "\tlsrs r2, 24\n"
+ "\tbl sub_81013B8\n"
+ "_08101504:\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_0810150C: .4byte 0x201f000\n"
+ "_08101510: .4byte gUnknown_02039234\n"
+ "_08101514: .4byte gUnknown_020391B4\n"
+ ".syntax divided\n");
+}
+#endif
+
+void sub_8101518(u8 taskId)
+{
+ DisplayYesNoMenu(20, 8, 1);
+ sub_80F914C(taskId, &gUnknown_083EC9CC);
+}
+
+void sub_810153C(u8 taskId)
+{
+ fade_screen(1, 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_8100C88;
+}
+
+void sub_810156C(u8 taskId)
+{
+ DisplayYesNoMenu(20, 8, 1);
+ sub_80F914C(taskId, &gUnknown_083EC9D4);
+}
+
+void sub_8101590(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ sub_81015B0(taskId);
+}
+
+void sub_81015B0(u8 taskId)
+{
+ fade_screen(1, 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_81015E0;
+}
+
+void sub_81015E0(u8 taskId)
+{
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ sub_80FF114(taskId);
+ gTasks[taskId].data[2] = 1;
+ }
+ break;
+ case 1:
+ sub_81016F4();
+ gUnknown_0300485C = sub_8101678;
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void sub_8101648(u8 taskId)
+{
+ if (sub_807D770() == TRUE)
+ {
+ gTasks[taskId].func = Task_DecorationPCProcessMenuInput;
+ }
+}
+
+void sub_8101678(void)
+{
+ pal_fill_black();
+ MenuDisplayMessageBox();
+ sub_80FE220();
+ CreateTask(sub_8101648, 8);
+}
+
+void sub_8101698(struct Sprite *sprite)
+{
+ sprite->data0 = (sprite->data0 + 1) & 0x1f;
+ if (sprite->data0 >= 16)
+ {
+ sprite->invisible = TRUE;
+ } else
+ {
+ sprite->invisible = FALSE;
+ }
+}
+
+void sub_81016C8(void)
+{
+ if (gSaveBlock2.playerGender == MALE)
+ {
+ LoadSpritePalette(&gUnknown_083ECA5C);
+ } else
+ {
+ LoadSpritePalette(&gUnknown_083ECA64);
+ }
+}
+
+void sub_81016F4(void)
+{
+ FreeSpritePaletteByTag(8);
+}
+
+void sub_8101700(u8 taskId)
+{
+ if (!sub_81341D4())
+ {
+ DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE428, 0);
+ } else
+ {
+ gTasks[taskId].data[11] = 1;
+ gUnknown_020388F6 = 0;
+ sub_80FE5AC(taskId);
+ }
+}
+
+void sub_8101750(u8 taskId)
+{
+ if (!sub_81341D4())
+ {
+ DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE428, 0);
+ } else
+ {
+ gTasks[taskId].data[11] = 2;
+ gUnknown_020388F6 = 0;
+ sub_80FE5AC(taskId);
+ }
+}
+
+void sub_81017A0(u8 taskId)
+{
+ sub_80FEF74();
+ sub_80FED1C();
+ if (sub_80FEFA4() == TRUE)
+ {
+ StringCopy(gStringVar1, gDecorations[gUnknown_020388D0[gUnknown_020388F5]].name);
+ StringExpandPlaceholders(gStringVar4, gSecretBaseText_WillBeDiscarded);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8101824, 0);
+ } else
+ {
+ DisplayItemMessageOnField(taskId, gSecretBaseText_DecorInUse, sub_80FEFF4, 0);
+ }
+}
+
+void sub_8101824(u8 taskId)
+{
+ DisplayYesNoMenu(20, 8, 1);
+ sub_80F914C(taskId, &gUnknown_083ECAA0);
+}
+
+void sub_8101848(u8 taskId)
+{
+ MenuZeroFillWindowRect(20, 8, 26, 14);
+ sub_8109A30(gUnknown_020388D0[gUnknown_020388F5]);
+ gUnknown_020388D0[gUnknown_020388F5] = DECOR_NONE;
+ sub_80FF098(taskId);
+ DisplayItemMessageOnField(taskId, gSecretBaseText_DecorThrownAway, sub_80FEFF4, 0);
+}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index eaad98cb0..26cd1de02 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -4302,39 +4302,39 @@ __attribute__((naked))
int state_to_direction(u8 a0, u8 a1, u8 a2)
{
asm(".syntax unified\n\
- push {r4,lr}\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- adds r0, r1, 0\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- cmp r1, 0\n\
- beq _08060BFC\n\
- cmp r2, 0\n\
- beq _08060BFC\n\
- cmp r1, 0x4\n\
- bhi _08060BFC\n\
- cmp r2, 0x4\n\
- bls _08060C00\n\
+ push {r4,lr}\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ adds r0, r1, 0\n\
+ lsls r2, 24\n\
+ lsrs r2, 24\n\
+ cmp r1, 0\n\
+ beq _08060BFC\n\
+ cmp r2, 0\n\
+ beq _08060BFC\n\
+ cmp r1, 0x4\n\
+ bhi _08060BFC\n\
+ cmp r2, 0x4\n\
+ bls _08060C00\n\
_08060BFC:\n\
- movs r0, 0\n\
- b _08060C12\n\
+ movs r0, 0\n\
+ b _08060C12\n\
_08060C00:\n\
- adds r1, r2, 0\n\
- bl zffu_offset_calc\n\
- ldr r2, _08060C18 @ =gUnknown_08375767\n\
- lsls r1, r4, 2\n\
- subs r1, 0x5\n\
- adds r0, r1\n\
- adds r0, r2\n\
- ldrb r0, [r0]\n\
+ adds r1, r2, 0\n\
+ bl zffu_offset_calc\n\
+ ldr r2, _08060C18 @ =gUnknown_08375767\n\
+ lsls r1, r4, 2\n\
+ subs r1, 0x5\n\
+ adds r0, r1\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
_08060C12:\n\
- pop {r4}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
_08060C18: .4byte gUnknown_08375767\n\
.syntax divided\n");
}
@@ -6609,121 +6609,121 @@ void sub_80634E8(struct MapObject *mapObject, struct Sprite *sprite)
__attribute__((naked))
void sub_80634E8(struct MapObject *mapObject, struct Sprite *sprite) {
asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- adds r5, r0, 0\n\
- adds r4, r1, 0\n\
- ldrb r1, [r5, 0x1]\n\
- movs r0, 0x41\n\
- negs r0, r0\n\
- ands r0, r1\n\
- strb r0, [r5, 0x1]\n\
- ldrb r0, [r5, 0x5]\n\
- bl GetFieldObjectGraphicsInfo\n\
- adds r6, r0, 0\n\
- adds r0, r4, 0\n\
- adds r0, 0x3E\n\
- ldrb r1, [r0]\n\
- movs r0, 0x2\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0806354C\n\
- ldrh r1, [r4, 0x24]\n\
- ldrh r0, [r4, 0x20]\n\
- adds r1, r0\n\
- adds r0, r4, 0\n\
- adds r0, 0x28\n\
- ldrb r0, [r0]\n\
- lsls r0, 24\n\
- asrs r0, 24\n\
- ldr r2, _08063544 @ =gSpriteCoordOffsetX\n\
- adds r0, r1\n\
- ldrh r2, [r2]\n\
- adds r0, r2\n\
- lsls r0, 16\n\
- lsrs r3, r0, 16\n\
- ldrh r1, [r4, 0x26]\n\
- ldrh r0, [r4, 0x22]\n\
- adds r1, r0\n\
- adds r0, r4, 0\n\
- adds r0, 0x29\n\
- ldrb r0, [r0]\n\
- lsls r0, 24\n\
- asrs r0, 24\n\
- ldr r2, _08063548 @ =gSpriteCoordOffsetY\n\
- adds r0, r1\n\
- ldrh r2, [r2]\n\
- adds r0, r2\n\
- b _08063574\n\
- .align 2, 0\n\
+ push {r4-r6,lr}\n\
+ adds r5, r0, 0\n\
+ adds r4, r1, 0\n\
+ ldrb r1, [r5, 0x1]\n\
+ movs r0, 0x41\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ strb r0, [r5, 0x1]\n\
+ ldrb r0, [r5, 0x5]\n\
+ bl GetFieldObjectGraphicsInfo\n\
+ adds r6, r0, 0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x3E\n\
+ ldrb r1, [r0]\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0806354C\n\
+ ldrh r1, [r4, 0x24]\n\
+ ldrh r0, [r4, 0x20]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x28\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ ldr r2, _08063544 @ =gSpriteCoordOffsetX\n\
+ adds r0, r1\n\
+ ldrh r2, [r2]\n\
+ adds r0, r2\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ ldrh r1, [r4, 0x26]\n\
+ ldrh r0, [r4, 0x22]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x29\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ ldr r2, _08063548 @ =gSpriteCoordOffsetY\n\
+ adds r0, r1\n\
+ ldrh r2, [r2]\n\
+ adds r0, r2\n\
+ b _08063574\n\
+ .align 2, 0\n\
_08063544: .4byte gSpriteCoordOffsetX\n\
_08063548: .4byte gSpriteCoordOffsetY\n\
_0806354C:\n\
- ldrh r1, [r4, 0x24]\n\
- ldrh r0, [r4, 0x20]\n\
- adds r1, r0\n\
- adds r0, r4, 0\n\
- adds r0, 0x28\n\
- ldrb r0, [r0]\n\
- lsls r0, 24\n\
- asrs r0, 24\n\
- adds r0, r1\n\
- lsls r0, 16\n\
- lsrs r3, r0, 16\n\
- ldrh r1, [r4, 0x26]\n\
- ldrh r0, [r4, 0x22]\n\
- adds r1, r0\n\
- adds r0, r4, 0\n\
- adds r0, 0x29\n\
- ldrb r0, [r0]\n\
- lsls r0, 24\n\
- asrs r0, 24\n\
- adds r0, r1\n\
+ ldrh r1, [r4, 0x24]\n\
+ ldrh r0, [r4, 0x20]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x28\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ adds r0, r1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ ldrh r1, [r4, 0x26]\n\
+ ldrh r0, [r4, 0x22]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x29\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ adds r0, r1\n\
_08063574:\n\
- lsls r0, 16\n\
- lsrs r2, r0, 16\n\
- ldrh r0, [r6, 0x8]\n\
- adds r0, r3\n\
- lsls r0, 16\n\
- lsrs r1, r0, 16\n\
- ldrh r0, [r6, 0xA]\n\
- adds r0, r2\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- lsls r0, r3, 16\n\
- asrs r0, 16\n\
- cmp r0, 0xFF\n\
- bgt _0806359C\n\
- lsls r0, r1, 16\n\
- asrs r0, 16\n\
- movs r1, 0x10\n\
- negs r1, r1\n\
- cmp r0, r1\n\
- bge _080635A4\n\
+ lsls r0, 16\n\
+ lsrs r2, r0, 16\n\
+ ldrh r0, [r6, 0x8]\n\
+ adds r0, r3\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ ldrh r0, [r6, 0xA]\n\
+ adds r0, r2\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0xFF\n\
+ bgt _0806359C\n\
+ lsls r0, r1, 16\n\
+ asrs r0, 16\n\
+ movs r1, 0x10\n\
+ negs r1, r1\n\
+ cmp r0, r1\n\
+ bge _080635A4\n\
_0806359C:\n\
- ldrb r0, [r5, 0x1]\n\
- movs r1, 0x40\n\
- orrs r0, r1\n\
- strb r0, [r5, 0x1]\n\
+ ldrb r0, [r5, 0x1]\n\
+ movs r1, 0x40\n\
+ orrs r0, r1\n\
+ strb r0, [r5, 0x1]\n\
_080635A4:\n\
- lsls r0, r2, 16\n\
- asrs r0, 16\n\
- cmp r0, 0xAF\n\
- bgt _080635B8\n\
- lsls r0, r4, 16\n\
- asrs r0, 16\n\
- movs r1, 0x10\n\
- negs r1, r1\n\
- cmp r0, r1\n\
- bge _080635C0\n\
+ lsls r0, r2, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0xAF\n\
+ bgt _080635B8\n\
+ lsls r0, r4, 16\n\
+ asrs r0, 16\n\
+ movs r1, 0x10\n\
+ negs r1, r1\n\
+ cmp r0, r1\n\
+ bge _080635C0\n\
_080635B8:\n\
- ldrb r0, [r5, 0x1]\n\
- movs r1, 0x40\n\
- orrs r0, r1\n\
- strb r0, [r5, 0x1]\n\
+ ldrb r0, [r5, 0x1]\n\
+ movs r1, 0x40\n\
+ orrs r0, r1\n\
+ strb r0, [r5, 0x1]\n\
_080635C0:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
.syntax divided\n");
}
#endif
diff --git a/src/fieldmap.c b/src/fieldmap.c
index 46b996e52..2ed2266f5 100644
--- a/src/fieldmap.c
+++ b/src/fieldmap.c
@@ -40,7 +40,6 @@ void fillSouthConnection(struct MapHeader *, struct MapHeader *, s32);
void fillNorthConnection(struct MapHeader *, struct MapHeader *, s32);
void fillWestConnection(struct MapHeader *, struct MapHeader *, s32);
void fillEastConnection(struct MapHeader *, struct MapHeader *, s32);
-u32 GetBehaviorByMetatileId(u16 metatile);
struct MapConnection *sub_8056A64(u8 direction, int x, int y);
bool8 sub_8056ABC(u8 direction, int x, int y, struct MapConnection *connection);
bool8 sub_8056B20(int x, int src_width, int dest_width, int offset);
diff --git a/src/menu.c b/src/menu.c
index 61eaebb6f..3acac88a0 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -611,7 +611,7 @@ u8 unref_sub_8072A5C(u8 *dest, u8 *src, u8 left, u16 top, u8 width, u32 a6)
return sub_8004FD0(gMenuWindowPtr, dest, src, gMenuTextTileOffset, left, top, width, a6);
}
-int sub_8072AB0(u8 *str, u8 left, u16 top, u8 width, u8 height, u32 a6)
+int sub_8072AB0(const u8 *str, u8 left, u16 top, u8 width, u8 height, u32 a6)
{
u8 newlineCount = sub_8004FD0(gMenuWindowPtr, NULL, str, gMenuTextTileOffset, left, top, width, a6);
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 33867b58a..f2b5090af 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -61,7 +61,6 @@ extern u8 *gStdScripts[];
extern u8 *gStdScripts_End[];
extern u8 * const gUnknown_083CE048[];
-extern struct Decoration gDecorations[];
// This is defined in here so the optimizer can't see its value when compiling
// script.c.
diff --git a/src/secret_base.c b/src/secret_base.c
index c210a55d2..aae3853f9 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -12,10 +12,11 @@
#include "map_constants.h"
#include "task.h"
#include "palette.h"
-#include "decoration.h"
#include "field_weather.h"
#include "metatile_behavior.h"
#include "pokemon.h"
+#include "script.h"
+#include "decoration.h"
extern u8 gUnknown_020387DC;
extern u16 gSpecialVar_0x8004;
@@ -29,8 +30,6 @@ extern const struct
u16 unk_083D1358_1;
} gUnknown_083D1358[7];
extern const u8 gUnknown_083D1374[4 * 16];
-extern void *gUnknown_0300485C;
-extern const u8 sub_807D770(void);
extern const u8 gUnknown_083D13EC[12];
extern const u8 sub_80BCCA4(u8);
extern u8 gUnknown_081A2E14[];
@@ -393,84 +392,84 @@ void sub_80BBCCC(u8 flagIn)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- sub sp, 0x4\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r8, r0\n\
- bl CurrentMapIsSecretBase\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080BBDBC\n\
- ldr r0, _080BBD70 @ =0x00004054\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r5, r0, 16\n\
- movs r1, 0\n\
- mov r0, sp\n\
- strh r1, [r0]\n\
- ldr r6, _080BBD74 @ =gSaveBlock1\n\
- mov r4, sp\n\
- ldr r0, _080BBD78 @ =0x00001a2a\n\
- adds r7, r6, r0\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ sub sp, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ bl CurrentMapIsSecretBase\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080BBDBC\n\
+ ldr r0, _080BBD70 @ =0x00004054\n\
+ bl VarGet\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ movs r1, 0\n\
+ mov r0, sp\n\
+ strh r1, [r0]\n\
+ ldr r6, _080BBD74 @ =gSaveBlock1\n\
+ mov r4, sp\n\
+ ldr r0, _080BBD78 @ =0x00001a2a\n\
+ adds r7, r6, r0\n\
_080BBCFC:\n\
- lsls r0, r5, 2\n\
- adds r0, r5\n\
- lsls r0, 5\n\
- ldrh r1, [r4]\n\
- adds r2, r0, r1\n\
- ldr r1, _080BBD7C @ =0x00001a1a\n\
- adds r0, r6, r1\n\
- adds r1, r2, r0\n\
- ldrb r0, [r1]\n\
- subs r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x77\n\
- bhi _080BBD3A\n\
- ldr r0, _080BBD80 @ =gDecorations\n\
- ldrb r3, [r1]\n\
- lsls r1, r3, 5\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x11]\n\
- cmp r0, 0x4\n\
- beq _080BBD3A\n\
- adds r0, r2, r7\n\
- ldrb r2, [r0]\n\
- lsrs r0, r2, 4\n\
- adds r0, 0x7\n\
- movs r1, 0xF\n\
- ands r1, r2\n\
- adds r1, 0x7\n\
- adds r2, r3, 0\n\
- bl sub_80FF394\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r0, 5\n\
+ ldrh r1, [r4]\n\
+ adds r2, r0, r1\n\
+ ldr r1, _080BBD7C @ =0x00001a1a\n\
+ adds r0, r6, r1\n\
+ adds r1, r2, r0\n\
+ ldrb r0, [r1]\n\
+ subs r0, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x77\n\
+ bhi _080BBD3A\n\
+ ldr r0, _080BBD80 @ =gDecorations\n\
+ ldrb r3, [r1]\n\
+ lsls r1, r3, 5\n\
+ adds r1, r0\n\
+ ldrb r0, [r1, 0x11]\n\
+ cmp r0, 0x4\n\
+ beq _080BBD3A\n\
+ adds r0, r2, r7\n\
+ ldrb r2, [r0]\n\
+ lsrs r0, r2, 4\n\
+ adds r0, 0x7\n\
+ movs r1, 0xF\n\
+ ands r1, r2\n\
+ adds r1, 0x7\n\
+ adds r2, r3, 0\n\
+ bl sub_80FF394\n\
_080BBD3A:\n\
- ldrh r0, [r4]\n\
- adds r0, 0x1\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- strh r0, [r4]\n\
- cmp r0, 0xF\n\
- bls _080BBCFC\n\
- cmp r5, 0\n\
- beq _080BBD88\n\
- mov r4, sp\n\
- adds r4, 0x2\n\
- movs r2, 0x88\n\
- lsls r2, 2\n\
- mov r0, sp\n\
- adds r1, r4, 0\n\
- bl sub_80BB764\n\
- mov r0, sp\n\
- ldrh r0, [r0]\n\
- adds r0, 0x7\n\
- ldrh r1, [r4]\n\
- adds r1, 0x7\n\
- ldr r2, _080BBD84 @ =0x00000e21\n\
- bl MapGridSetMetatileIdAt\n\
- b _080BBDBC\n\
- .align 2, 0\n\
+ ldrh r0, [r4]\n\
+ adds r0, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ strh r0, [r4]\n\
+ cmp r0, 0xF\n\
+ bls _080BBCFC\n\
+ cmp r5, 0\n\
+ beq _080BBD88\n\
+ mov r4, sp\n\
+ adds r4, 0x2\n\
+ movs r2, 0x88\n\
+ lsls r2, 2\n\
+ mov r0, sp\n\
+ adds r1, r4, 0\n\
+ bl sub_80BB764\n\
+ mov r0, sp\n\
+ ldrh r0, [r0]\n\
+ adds r0, 0x7\n\
+ ldrh r1, [r4]\n\
+ adds r1, 0x7\n\
+ ldr r2, _080BBD84 @ =0x00000e21\n\
+ bl MapGridSetMetatileIdAt\n\
+ b _080BBDBC\n\
+ .align 2, 0\n\
_080BBD70: .4byte 0x00004054\n\
_080BBD74: .4byte gSaveBlock1\n\
_080BBD78: .4byte 0x00001a2a\n\
@@ -478,37 +477,37 @@ _080BBD7C: .4byte 0x00001a1a\n\
_080BBD80: .4byte gDecorations\n\
_080BBD84: .4byte 0x00000e21\n\
_080BBD88:\n\
- mov r0, r8\n\
- cmp r0, 0x1\n\
- bne _080BBDBC\n\
- ldr r0, _080BBDC8 @ =0x00004089\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0x1\n\
- bne _080BBDBC\n\
- mov r4, sp\n\
- adds r4, 0x2\n\
- movs r2, 0x88\n\
- lsls r2, 2\n\
- mov r0, sp\n\
- adds r1, r4, 0\n\
- bl sub_80BB764\n\
- mov r0, sp\n\
- ldrh r0, [r0]\n\
- adds r0, 0x7\n\
- ldrh r1, [r4]\n\
- adds r1, 0x7\n\
- ldr r2, _080BBDCC @ =0x00000e0a\n\
- bl MapGridSetMetatileIdAt\n\
+ mov r0, r8\n\
+ cmp r0, 0x1\n\
+ bne _080BBDBC\n\
+ ldr r0, _080BBDC8 @ =0x00004089\n\
+ bl VarGet\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0x1\n\
+ bne _080BBDBC\n\
+ mov r4, sp\n\
+ adds r4, 0x2\n\
+ movs r2, 0x88\n\
+ lsls r2, 2\n\
+ mov r0, sp\n\
+ adds r1, r4, 0\n\
+ bl sub_80BB764\n\
+ mov r0, sp\n\
+ ldrh r0, [r0]\n\
+ adds r0, 0x7\n\
+ ldrh r1, [r4]\n\
+ adds r1, 0x7\n\
+ ldr r2, _080BBDCC @ =0x00000e0a\n\
+ bl MapGridSetMetatileIdAt\n\
_080BBDBC:\n\
- add sp, 0x4\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
+ add sp, 0x4\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
_080BBDC8: .4byte 0x00004089\n\
_080BBDCC: .4byte 0x00000e0a\n\
.syntax divided\n");
@@ -518,220 +517,220 @@ __attribute__((naked))
void sub_80BBDD0(void)
{
asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x14\n\
- ldr r0, _080BBE00 @ =0x00004054\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- bl CurrentMapIsSecretBase\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080BBE08\n\
- ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688\n\
- str r0, [sp, 0x4]\n\
- adds r0, 0xC\n\
- str r0, [sp, 0x8]\n\
- movs r1, 0xC\n\
- str r1, [sp, 0xC]\n\
- b _080BBE1E\n\
- .align 2, 0\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x14\n\
+ ldr r0, _080BBE00 @ =0x00004054\n\
+ bl VarGet\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ bl CurrentMapIsSecretBase\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080BBE08\n\
+ ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688\n\
+ str r0, [sp, 0x4]\n\
+ adds r0, 0xC\n\
+ str r0, [sp, 0x8]\n\
+ movs r1, 0xC\n\
+ str r1, [sp, 0xC]\n\
+ b _080BBE1E\n\
+ .align 2, 0\n\
_080BBE00: .4byte 0x00004054\n\
_080BBE04: .4byte gSaveBlock1 + 0x2688\n\
_080BBE08:\n\
- lsls r1, r4, 2\n\
- adds r1, r4\n\
- lsls r1, 5\n\
- ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A\n\
- adds r2, r1, r0\n\
- str r2, [sp, 0x4]\n\
- adds r0, 0x10\n\
- adds r1, r0\n\
- str r1, [sp, 0x8]\n\
- movs r3, 0x10\n\
- str r3, [sp, 0xC]\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 5\n\
+ ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A\n\
+ adds r2, r1, r0\n\
+ str r2, [sp, 0x4]\n\
+ adds r0, 0x10\n\
+ adds r1, r0\n\
+ str r1, [sp, 0x8]\n\
+ movs r3, 0x10\n\
+ str r3, [sp, 0xC]\n\
_080BBE1E:\n\
- movs r6, 0\n\
- ldr r4, [sp, 0xC]\n\
- cmp r6, r4\n\
- bcc _080BBE28\n\
- b _080BBF6C\n\
+ movs r6, 0\n\
+ ldr r4, [sp, 0xC]\n\
+ cmp r6, r4\n\
+ bcc _080BBE28\n\
+ b _080BBF6C\n\
_080BBE28:\n\
- ldr r5, _080BBF80 @ =gSaveBlock1\n\
- mov r10, r5\n\
+ ldr r5, _080BBF80 @ =gSaveBlock1\n\
+ mov r10, r5\n\
_080BBE2C:\n\
- ldr r1, [sp, 0x4]\n\
- adds r0, r1, r6\n\
- ldrb r1, [r0]\n\
- mov r9, r0\n\
- adds r2, r6, 0x1\n\
- str r2, [sp, 0x10]\n\
- cmp r1, 0\n\
- bne _080BBE3E\n\
- b _080BBF5E\n\
+ ldr r1, [sp, 0x4]\n\
+ adds r0, r1, r6\n\
+ ldrb r1, [r0]\n\
+ mov r9, r0\n\
+ adds r2, r6, 0x1\n\
+ str r2, [sp, 0x10]\n\
+ cmp r1, 0\n\
+ bne _080BBE3E\n\
+ b _080BBF5E\n\
_080BBE3E:\n\
- ldrb r0, [r0]\n\
- lsls r0, 5\n\
- ldr r3, _080BBF84 @ =gDecorations\n\
- adds r0, r3\n\
- ldrb r0, [r0, 0x11]\n\
- cmp r0, 0x4\n\
- beq _080BBE4E\n\
- b _080BBF5E\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 5\n\
+ ldr r3, _080BBF84 @ =gDecorations\n\
+ adds r0, r3\n\
+ ldrb r0, [r0, 0x11]\n\
+ cmp r0, 0x4\n\
+ beq _080BBE4E\n\
+ b _080BBF5E\n\
_080BBE4E:\n\
- movs r5, 0\n\
- ldr r0, _080BBF88 @ =gMapHeader\n\
- ldr r2, [r0, 0x4]\n\
- ldrb r3, [r2]\n\
- mov r8, r0\n\
- cmp r5, r3\n\
- bcs _080BBE8E\n\
- ldr r0, [r2, 0x4]\n\
- ldrh r1, [r0, 0x14]\n\
- ldr r4, _080BBF8C @ =gSpecialVar_0x8004\n\
- ldrh r0, [r4]\n\
- adds r0, 0xAE\n\
- adds r7, r4, 0\n\
- cmp r1, r0\n\
- beq _080BBE8E\n\
- adds r4, r2, 0\n\
- adds r2, r3, 0\n\
+ movs r5, 0\n\
+ ldr r0, _080BBF88 @ =gMapHeader\n\
+ ldr r2, [r0, 0x4]\n\
+ ldrb r3, [r2]\n\
+ mov r8, r0\n\
+ cmp r5, r3\n\
+ bcs _080BBE8E\n\
+ ldr r0, [r2, 0x4]\n\
+ ldrh r1, [r0, 0x14]\n\
+ ldr r4, _080BBF8C @ =gSpecialVar_0x8004\n\
+ ldrh r0, [r4]\n\
+ adds r0, 0xAE\n\
+ adds r7, r4, 0\n\
+ cmp r1, r0\n\
+ beq _080BBE8E\n\
+ adds r4, r2, 0\n\
+ adds r2, r3, 0\n\
_080BBE70:\n\
- adds r0, r5, 0x1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- cmp r5, r2\n\
- bcs _080BBE8E\n\
- ldr r1, [r4, 0x4]\n\
- lsls r0, r5, 1\n\
- adds r0, r5\n\
- lsls r0, 3\n\
- adds r0, r1\n\
- ldrh r1, [r0, 0x14]\n\
- ldrh r0, [r7]\n\
- adds r0, 0xAE\n\
- cmp r1, r0\n\
- bne _080BBE70\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, r2\n\
+ bcs _080BBE8E\n\
+ ldr r1, [r4, 0x4]\n\
+ lsls r0, r5, 1\n\
+ adds r0, r5\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldrh r1, [r0, 0x14]\n\
+ ldrh r0, [r7]\n\
+ adds r0, 0xAE\n\
+ cmp r1, r0\n\
+ bne _080BBE70\n\
_080BBE8E:\n\
- mov r1, r8\n\
- ldr r0, [r1, 0x4]\n\
- ldrb r0, [r0]\n\
- cmp r5, r0\n\
- beq _080BBF5E\n\
- ldr r7, _080BBF90 @ =gSpecialVar_0x8006\n\
- ldr r2, [sp, 0x8]\n\
- adds r1, r2, r6\n\
- ldrb r0, [r1]\n\
- lsrs r0, 4\n\
- strh r0, [r7]\n\
- ldr r6, _080BBF94 @ =gSpecialVar_0x8007\n\
- ldrb r1, [r1]\n\
- movs r0, 0xF\n\
- ands r0, r1\n\
- strh r0, [r6]\n\
- ldrh r0, [r7]\n\
- adds r0, 0x7\n\
- ldrh r1, [r6]\n\
- adds r1, 0x7\n\
- bl MapGridGetMetatileBehaviorAt\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- adds r0, r4, 0\n\
- bl sub_80572D8\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- beq _080BBEDA\n\
- adds r0, r4, 0\n\
- bl sub_80572EC\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- bne _080BBF5E\n\
+ mov r1, r8\n\
+ ldr r0, [r1, 0x4]\n\
+ ldrb r0, [r0]\n\
+ cmp r5, r0\n\
+ beq _080BBF5E\n\
+ ldr r7, _080BBF90 @ =gSpecialVar_0x8006\n\
+ ldr r2, [sp, 0x8]\n\
+ adds r1, r2, r6\n\
+ ldrb r0, [r1]\n\
+ lsrs r0, 4\n\
+ strh r0, [r7]\n\
+ ldr r6, _080BBF94 @ =gSpecialVar_0x8007\n\
+ ldrb r1, [r1]\n\
+ movs r0, 0xF\n\
+ ands r0, r1\n\
+ strh r0, [r6]\n\
+ ldrh r0, [r7]\n\
+ adds r0, 0x7\n\
+ ldrh r1, [r6]\n\
+ adds r1, 0x7\n\
+ bl MapGridGetMetatileBehaviorAt\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ adds r0, r4, 0\n\
+ bl sub_80572D8\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ beq _080BBEDA\n\
+ adds r0, r4, 0\n\
+ bl sub_80572EC\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bne _080BBF5E\n\
_080BBEDA:\n\
- mov r3, r8\n\
- ldr r0, [r3, 0x4]\n\
- ldr r1, [r0, 0x4]\n\
- lsls r4, r5, 1\n\
- adds r4, r5\n\
- lsls r4, 3\n\
- adds r1, r4, r1\n\
- ldr r5, _080BBF98 @ =0x00003f20\n\
- adds r0, r5, 0\n\
- ldrb r1, [r1, 0x1]\n\
- adds r0, r1\n\
- ldr r1, _080BBF9C @ =gScriptResult\n\
- strh r0, [r1]\n\
- ldrh r0, [r1]\n\
- mov r2, r9\n\
- ldrb r1, [r2]\n\
- lsls r1, 5\n\
- ldr r3, _080BBFA0 @ =gDecorations + 0x1C\n\
- adds r1, r3\n\
- ldr r1, [r1]\n\
- ldrh r1, [r1]\n\
- bl VarSet\n\
- mov r5, r8\n\
- ldr r0, [r5, 0x4]\n\
- ldr r0, [r0, 0x4]\n\
- adds r4, r0\n\
- ldrb r0, [r4]\n\
- ldr r1, _080BBF9C @ =gScriptResult\n\
- strh r0, [r1]\n\
- ldr r2, _080BBF8C @ =gSpecialVar_0x8004\n\
- ldrh r0, [r2]\n\
- adds r0, 0xAE\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- bl FlagReset\n\
- ldr r3, _080BBF9C @ =gScriptResult\n\
- ldrb r0, [r3]\n\
- mov r4, r10\n\
- ldrb r1, [r4, 0x5]\n\
- ldrb r2, [r4, 0x4]\n\
- bl show_sprite\n\
- ldr r5, _080BBF9C @ =gScriptResult\n\
- ldrb r0, [r5]\n\
- ldrb r1, [r4, 0x5]\n\
- ldrb r2, [r4, 0x4]\n\
- movs r4, 0\n\
- ldrsh r3, [r7, r4]\n\
- movs r5, 0\n\
- ldrsh r4, [r6, r5]\n\
- str r4, [sp]\n\
- bl sub_805C0F8\n\
- ldr r1, _080BBF9C @ =gScriptResult\n\
- ldrb r0, [r1]\n\
- mov r2, r10\n\
- ldrb r1, [r2, 0x5]\n\
- ldrb r2, [r2, 0x4]\n\
- bl sub_805C78C\n\
- ldr r3, _080BBF8C @ =gSpecialVar_0x8004\n\
- ldrh r0, [r3]\n\
- adds r0, 0x1\n\
- strh r0, [r3]\n\
+ mov r3, r8\n\
+ ldr r0, [r3, 0x4]\n\
+ ldr r1, [r0, 0x4]\n\
+ lsls r4, r5, 1\n\
+ adds r4, r5\n\
+ lsls r4, 3\n\
+ adds r1, r4, r1\n\
+ ldr r5, _080BBF98 @ =0x00003f20\n\
+ adds r0, r5, 0\n\
+ ldrb r1, [r1, 0x1]\n\
+ adds r0, r1\n\
+ ldr r1, _080BBF9C @ =gScriptResult\n\
+ strh r0, [r1]\n\
+ ldrh r0, [r1]\n\
+ mov r2, r9\n\
+ ldrb r1, [r2]\n\
+ lsls r1, 5\n\
+ ldr r3, _080BBFA0 @ =gDecorations + 0x1C\n\
+ adds r1, r3\n\
+ ldr r1, [r1]\n\
+ ldrh r1, [r1]\n\
+ bl VarSet\n\
+ mov r5, r8\n\
+ ldr r0, [r5, 0x4]\n\
+ ldr r0, [r0, 0x4]\n\
+ adds r4, r0\n\
+ ldrb r0, [r4]\n\
+ ldr r1, _080BBF9C @ =gScriptResult\n\
+ strh r0, [r1]\n\
+ ldr r2, _080BBF8C @ =gSpecialVar_0x8004\n\
+ ldrh r0, [r2]\n\
+ adds r0, 0xAE\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ bl FlagReset\n\
+ ldr r3, _080BBF9C @ =gScriptResult\n\
+ ldrb r0, [r3]\n\
+ mov r4, r10\n\
+ ldrb r1, [r4, 0x5]\n\
+ ldrb r2, [r4, 0x4]\n\
+ bl show_sprite\n\
+ ldr r5, _080BBF9C @ =gScriptResult\n\
+ ldrb r0, [r5]\n\
+ ldrb r1, [r4, 0x5]\n\
+ ldrb r2, [r4, 0x4]\n\
+ movs r4, 0\n\
+ ldrsh r3, [r7, r4]\n\
+ movs r5, 0\n\
+ ldrsh r4, [r6, r5]\n\
+ str r4, [sp]\n\
+ bl sub_805C0F8\n\
+ ldr r1, _080BBF9C @ =gScriptResult\n\
+ ldrb r0, [r1]\n\
+ mov r2, r10\n\
+ ldrb r1, [r2, 0x5]\n\
+ ldrb r2, [r2, 0x4]\n\
+ bl sub_805C78C\n\
+ ldr r3, _080BBF8C @ =gSpecialVar_0x8004\n\
+ ldrh r0, [r3]\n\
+ adds r0, 0x1\n\
+ strh r0, [r3]\n\
_080BBF5E:\n\
- ldr r4, [sp, 0x10]\n\
- lsls r0, r4, 24\n\
- lsrs r6, r0, 24\n\
- ldr r5, [sp, 0xC]\n\
- cmp r6, r5\n\
- bcs _080BBF6C\n\
- b _080BBE2C\n\
+ ldr r4, [sp, 0x10]\n\
+ lsls r0, r4, 24\n\
+ lsrs r6, r0, 24\n\
+ ldr r5, [sp, 0xC]\n\
+ cmp r6, r5\n\
+ bcs _080BBF6C\n\
+ b _080BBE2C\n\
_080BBF6C:\n\
- add sp, 0x14\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
+ add sp, 0x14\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
_080BBF7C: .4byte gSaveBlock1 + 0x1A1A\n\
_080BBF80: .4byte gSaveBlock1\n\
_080BBF84: .4byte gDecorations\n\
@@ -902,148 +901,148 @@ __attribute__((naked))
void sub_80BC300(void)
{
asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0xC\n\
- movs r0, 0\n\
- mov r10, r0\n\
- movs r6, 0\n\
- mov r9, r6\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0xC\n\
+ movs r0, 0\n\
+ mov r10, r0\n\
+ movs r6, 0\n\
+ mov r9, r6\n\
_080BC314:\n\
- movs r4, 0\n\
- lsls r3, r6, 2\n\
- lsls r2, r6, 1\n\
- ldr r7, _080BC424 @ =gPlayerParty\n\
- adds r1, r6, 0x1\n\
- str r1, [sp]\n\
- adds r1, r3, 0\n\
+ movs r4, 0\n\
+ lsls r3, r6, 2\n\
+ lsls r2, r6, 1\n\
+ ldr r7, _080BC424 @ =gPlayerParty\n\
+ adds r1, r6, 0x1\n\
+ str r1, [sp]\n\
+ adds r1, r3, 0\n\
_080BC322:\n\
- adds r0, r1, r4\n\
- lsls r0, 1\n\
- ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54\n\
- adds r0, r5, r0\n\
- mov r5, r9\n\
- strh r5, [r0]\n\
- adds r0, r4, 0x1\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- cmp r4, 0x3\n\
- bls _080BC322\n\
- ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84\n\
- adds r0, r1, r2\n\
- strh r5, [r0]\n\
- ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90\n\
- adds r0, r5, r2\n\
- mov r1, r9\n\
- strh r1, [r0]\n\
- ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\
- adds r0, r2, r6\n\
- mov r5, r9\n\
- strb r5, [r0]\n\
- ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\
- adds r0, r1, r3\n\
- mov r2, r9\n\
- str r2, [r0]\n\
- ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\
- adds r0, r3, r6\n\
- strb r2, [r0]\n\
- movs r0, 0x64\n\
- adds r5, r6, 0\n\
- muls r5, r0\n\
- adds r4, r5, r7\n\
- adds r0, r4, 0\n\
- movs r1, 0xB\n\
- bl GetMonData\n\
- cmp r0, 0\n\
- beq _080BC408\n\
- adds r0, r4, 0\n\
- movs r1, 0x2D\n\
- bl GetMonData\n\
- cmp r0, 0\n\
- bne _080BC408\n\
- movs r4, 0\n\
- mov r0, r10\n\
- lsls r0, 2\n\
- mov r8, r0\n\
- mov r1, r10\n\
- lsls r7, r1, 1\n\
- adds r1, 0x1\n\
- str r1, [sp, 0x4]\n\
- ldr r2, _080BC424 @ =gPlayerParty\n\
+ adds r0, r1, r4\n\
+ lsls r0, 1\n\
+ ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54\n\
+ adds r0, r5, r0\n\
+ mov r5, r9\n\
+ strh r5, [r0]\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ cmp r4, 0x3\n\
+ bls _080BC322\n\
+ ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84\n\
+ adds r0, r1, r2\n\
+ strh r5, [r0]\n\
+ ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90\n\
+ adds r0, r5, r2\n\
+ mov r1, r9\n\
+ strh r1, [r0]\n\
+ ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\
+ adds r0, r2, r6\n\
+ mov r5, r9\n\
+ strb r5, [r0]\n\
+ ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\
+ adds r0, r1, r3\n\
+ mov r2, r9\n\
+ str r2, [r0]\n\
+ ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\
+ adds r0, r3, r6\n\
+ strb r2, [r0]\n\
+ movs r0, 0x64\n\
+ adds r5, r6, 0\n\
+ muls r5, r0\n\
+ adds r4, r5, r7\n\
+ adds r0, r4, 0\n\
+ movs r1, 0xB\n\
+ bl GetMonData\n\
+ cmp r0, 0\n\
+ beq _080BC408\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x2D\n\
+ bl GetMonData\n\
+ cmp r0, 0\n\
+ bne _080BC408\n\
+ movs r4, 0\n\
+ mov r0, r10\n\
+ lsls r0, 2\n\
+ mov r8, r0\n\
+ mov r1, r10\n\
+ lsls r7, r1, 1\n\
+ adds r1, 0x1\n\
+ str r1, [sp, 0x4]\n\
+ ldr r2, _080BC424 @ =gPlayerParty\n\
_080BC38E:\n\
- adds r1, r4, 0\n\
- adds r1, 0xD\n\
- adds r0, r5, r2\n\
- str r2, [sp, 0x8]\n\
- bl GetMonData\n\
- mov r3, r8\n\
- adds r1, r3, r4\n\
- lsls r1, 1\n\
- ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54\n\
- adds r1, r3, r1\n\
- strh r0, [r1]\n\
- adds r0, r4, 0x1\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- ldr r2, [sp, 0x8]\n\
- cmp r4, 0x3\n\
- bls _080BC38E\n\
- movs r0, 0x64\n\
- adds r4, r6, 0\n\
- muls r4, r0\n\
- ldr r0, _080BC424 @ =gPlayerParty\n\
- adds r4, r0\n\
- adds r0, r4, 0\n\
- movs r1, 0xB\n\
- bl GetMonData\n\
- ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84\n\
- adds r1, r5, r7\n\
- strh r0, [r1]\n\
- adds r0, r4, 0\n\
- movs r1, 0xC\n\
- bl GetMonData\n\
- ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90\n\
- adds r1, r2, r7\n\
- strh r0, [r1]\n\
- adds r0, r4, 0\n\
- movs r1, 0x38\n\
- bl GetMonData\n\
- ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\
- add r1, r10\n\
- strb r0, [r1]\n\
- adds r0, r4, 0\n\
- movs r1, 0\n\
- bl GetMonData\n\
- ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\
- add r1, r8\n\
- str r0, [r1]\n\
- adds r0, r4, 0\n\
- bl sub_80BC298\n\
- ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\
- add r1, r10\n\
- strb r0, [r1]\n\
- ldr r3, [sp, 0x4]\n\
- lsls r0, r3, 16\n\
- lsrs r0, 16\n\
- mov r10, r0\n\
+ adds r1, r4, 0\n\
+ adds r1, 0xD\n\
+ adds r0, r5, r2\n\
+ str r2, [sp, 0x8]\n\
+ bl GetMonData\n\
+ mov r3, r8\n\
+ adds r1, r3, r4\n\
+ lsls r1, 1\n\
+ ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54\n\
+ adds r1, r3, r1\n\
+ strh r0, [r1]\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ ldr r2, [sp, 0x8]\n\
+ cmp r4, 0x3\n\
+ bls _080BC38E\n\
+ movs r0, 0x64\n\
+ adds r4, r6, 0\n\
+ muls r4, r0\n\
+ ldr r0, _080BC424 @ =gPlayerParty\n\
+ adds r4, r0\n\
+ adds r0, r4, 0\n\
+ movs r1, 0xB\n\
+ bl GetMonData\n\
+ ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84\n\
+ adds r1, r5, r7\n\
+ strh r0, [r1]\n\
+ adds r0, r4, 0\n\
+ movs r1, 0xC\n\
+ bl GetMonData\n\
+ ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90\n\
+ adds r1, r2, r7\n\
+ strh r0, [r1]\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x38\n\
+ bl GetMonData\n\
+ ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\
+ add r1, r10\n\
+ strb r0, [r1]\n\
+ adds r0, r4, 0\n\
+ movs r1, 0\n\
+ bl GetMonData\n\
+ ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\
+ add r1, r8\n\
+ str r0, [r1]\n\
+ adds r0, r4, 0\n\
+ bl sub_80BC298\n\
+ ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\
+ add r1, r10\n\
+ strb r0, [r1]\n\
+ ldr r3, [sp, 0x4]\n\
+ lsls r0, r3, 16\n\
+ lsrs r0, 16\n\
+ mov r10, r0\n\
_080BC408:\n\
- ldr r5, [sp]\n\
- lsls r0, r5, 16\n\
- lsrs r6, r0, 16\n\
- cmp r6, 0x5\n\
- bls _080BC314\n\
- add sp, 0xC\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
+ ldr r5, [sp]\n\
+ lsls r0, r5, 16\n\
+ lsrs r6, r0, 16\n\
+ cmp r6, 0x5\n\
+ bls _080BC314\n\
+ add sp, 0xC\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
_080BC424: .4byte gPlayerParty\n\
_080BC428: .4byte gSaveBlock1 + 0x1A54\n\
_080BC42C: .4byte gSaveBlock1 + 0x1A84\n\
diff --git a/src/tv.c b/src/tv.c
index 566d547a6..e1bf7c8fe 100755..100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -182,100 +182,100 @@ __attribute__((naked))
u8 special_0x44(void)
{
asm(".syntax unified\n"
- " push {r4-r7,lr}\n"
- " mov r7, r9\n"
- " mov r6, r8\n"
- " push {r6,r7}\n"
- " movs r4, 0x5\n"
- " ldr r1, _080BD874 @ =gSaveBlock1\n"
- " ldr r2, _080BD878 @ =0x000027ec\n"
- " adds r0, r1, r2\n"
- " ldrb r0, [r0]\n"
- " cmp r0, 0\n"
- " beq _080BD834\n"
- " adds r2, r1, 0\n"
- " ldr r1, _080BD87C @ =0x00002738\n"
+ " push {r4-r7,lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6,r7}\n"
+ " movs r4, 0x5\n"
+ " ldr r1, _080BD874 @ =gSaveBlock1\n"
+ " ldr r2, _080BD878 @ =0x000027ec\n"
+ " adds r0, r1, r2\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, 0\n"
+ " beq _080BD834\n"
+ " adds r2, r1, 0\n"
+ " ldr r1, _080BD87C @ =0x00002738\n"
"_080BD81A:\n"
- " adds r0, r4, 0x1\n"
- " lsls r0, 24\n"
- " lsrs r4, r0, 24\n"
- " cmp r4, 0x17\n"
- " bhi _080BD834\n"
- " lsls r0, r4, 3\n"
- " adds r0, r4\n"
- " lsls r0, 2\n"
- " adds r0, r2\n"
- " adds r0, r1\n"
- " ldrb r0, [r0]\n"
- " cmp r0, 0\n"
- " bne _080BD81A\n"
+ " adds r0, r4, 0x1\n"
+ " lsls r0, 24\n"
+ " lsrs r4, r0, 24\n"
+ " cmp r4, 0x17\n"
+ " bhi _080BD834\n"
+ " lsls r0, r4, 3\n"
+ " adds r0, r4\n"
+ " lsls r0, 2\n"
+ " adds r0, r2\n"
+ " adds r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, 0\n"
+ " bne _080BD81A\n"
"_080BD834:\n"
- " bl Random\n"
- " lsls r0, 16\n"
- " lsrs r0, 16\n"
- " adds r1, r4, 0\n"
- " bl __modsi3\n"
- " lsls r0, 24\n"
- " lsrs r4, r0, 24\n"
- " mov r8, r4\n"
- " ldr r7, _080BD874 @ =gSaveBlock1\n"
- " ldr r0, _080BD87C @ =0x00002738\n"
- " adds r0, r7\n"
- " mov r9, r0\n"
+ " bl Random\n"
+ " lsls r0, 16\n"
+ " lsrs r0, 16\n"
+ " adds r1, r4, 0\n"
+ " bl __modsi3\n"
+ " lsls r0, 24\n"
+ " lsrs r4, r0, 24\n"
+ " mov r8, r4\n"
+ " ldr r7, _080BD874 @ =gSaveBlock1\n"
+ " ldr r0, _080BD87C @ =0x00002738\n"
+ " adds r0, r7\n"
+ " mov r9, r0\n"
"_080BD850:\n"
- " lsls r0, r4, 3\n"
- " adds r0, r4\n"
- " lsls r6, r0, 2\n"
- " adds r5, r6, r7\n"
- " ldr r1, _080BD87C @ =0x00002738\n"
- " adds r0, r5, r1\n"
- " ldrb r0, [r0]\n"
- " bl sub_80BFB54\n"
- " lsls r0, 24\n"
- " lsrs r0, 24\n"
- " cmp r0, 0x4\n"
- " beq _080BD884\n"
- " ldr r2, _080BD880 @ =0x00002739\n"
- " adds r0, r5, r2\n"
- " ldrb r0, [r0]\n"
- " b _080BD890\n"
- " .align 2, 0\n"
+ " lsls r0, r4, 3\n"
+ " adds r0, r4\n"
+ " lsls r6, r0, 2\n"
+ " adds r5, r6, r7\n"
+ " ldr r1, _080BD87C @ =0x00002738\n"
+ " adds r0, r5, r1\n"
+ " ldrb r0, [r0]\n"
+ " bl sub_80BFB54\n"
+ " lsls r0, 24\n"
+ " lsrs r0, 24\n"
+ " cmp r0, 0x4\n"
+ " beq _080BD884\n"
+ " ldr r2, _080BD880 @ =0x00002739\n"
+ " adds r0, r5, r2\n"
+ " ldrb r0, [r0]\n"
+ " b _080BD890\n"
+ " .align 2, 0\n"
"_080BD874: .4byte gSaveBlock1\n"
"_080BD878: .4byte 0x000027ec\n"
"_080BD87C: .4byte 0x00002738\n"
"_080BD880: .4byte 0x00002739\n"
"_080BD884:\n"
- " mov r0, r9\n"
- " adds r1, r6, r0\n"
- " ldrh r0, [r1, 0x16]\n"
- " cmp r0, 0\n"
- " bne _080BD898\n"
- " ldrb r0, [r1, 0x1]\n"
+ " mov r0, r9\n"
+ " adds r1, r6, r0\n"
+ " ldrh r0, [r1, 0x16]\n"
+ " cmp r0, 0\n"
+ " bne _080BD898\n"
+ " ldrb r0, [r1, 0x1]\n"
"_080BD890:\n"
- " cmp r0, 0x1\n"
- " bne _080BD898\n"
- " adds r0, r4, 0\n"
- " b _080BD8AC\n"
+ " cmp r0, 0x1\n"
+ " bne _080BD898\n"
+ " adds r0, r4, 0\n"
+ " b _080BD8AC\n"
"_080BD898:\n"
- " cmp r4, 0\n"
- " bne _080BD8A0\n"
- " movs r4, 0x17\n"
- " b _080BD8A6\n"
+ " cmp r4, 0\n"
+ " bne _080BD8A0\n"
+ " movs r4, 0x17\n"
+ " b _080BD8A6\n"
"_080BD8A0:\n"
- " subs r0, r4, 0x1\n"
- " lsls r0, 24\n"
- " lsrs r4, r0, 24\n"
+ " subs r0, r4, 0x1\n"
+ " lsls r0, 24\n"
+ " lsrs r4, r0, 24\n"
"_080BD8A6:\n"
- " cmp r4, r8\n"
- " bne _080BD850\n"
- " movs r0, 0xFF\n"
+ " cmp r4, r8\n"
+ " bne _080BD850\n"
+ " movs r0, 0xFF\n"
"_080BD8AC:\n"
- " pop {r3,r4}\n"
- " mov r8, r3\n"
- " mov r9, r4\n"
- " pop {r4-r7}\n"
- " pop {r1}\n"
- " bx r1\n"
+ " pop {r3,r4}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " pop {r4-r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
".syntax divided\n");
}
#endif
@@ -680,88 +680,88 @@ void sub_80BE074(void) {
__attribute__((naked))
void sub_80BE074(void) {
asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- ldr r0, _080BE118 @ =0x0000ffff\n\
- bl sub_80BF77C\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080BE112\n\
- movs r1, 0\n\
- movs r5, 0\n\
- ldr r2, _080BE11C @ =gUnknown_03004316\n\
+ push {r4-r7,lr}\n\
+ ldr r0, _080BE118 @ =0x0000ffff\n\
+ bl sub_80BF77C\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080BE112\n\
+ movs r1, 0\n\
+ movs r5, 0\n\
+ ldr r2, _080BE11C @ =gUnknown_03004316\n\
_080BE088:\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- adds r0, r5, r0\n\
- lsls r0, 16\n\
- lsrs r5, r0, 16\n\
- adds r0, r1, 0x1\n\
- lsls r0, 24\n\
- lsrs r1, r0, 24\n\
- cmp r1, 0xA\n\
- bls _080BE088\n\
- cmp r5, 0xFF\n\
- bls _080BE0A2\n\
- movs r5, 0xFF\n\
+ adds r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ adds r0, r5, r0\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0xA\n\
+ bls _080BE088\n\
+ cmp r5, 0xFF\n\
+ bls _080BE0A2\n\
+ movs r5, 0xFF\n\
_080BE0A2:\n\
- cmp r5, 0x2\n\
- bls _080BE112\n\
- ldr r7, _080BE120 @ =gUnknown_02024D26\n\
- ldrb r0, [r7]\n\
- cmp r0, 0x1\n\
- bne _080BE112\n\
- ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r6, 0\n\
- bl sub_80BF74C\n\
- ldr r4, _080BE128 @ =gUnknown_03005D38\n\
- strb r0, [r4]\n\
- lsls r0, 24\n\
- asrs r0, 24\n\
- movs r1, 0x1\n\
- negs r1, r1\n\
- cmp r0, r1\n\
- beq _080BE112\n\
- movs r0, 0x17\n\
- bl sub_80BF1B4\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- beq _080BE112\n\
- movs r0, 0\n\
- ldrsb r0, [r4, r0]\n\
- lsls r4, r0, 3\n\
- adds r4, r0\n\
- lsls r4, 2\n\
- adds r4, r6\n\
+ cmp r5, 0x2\n\
+ bls _080BE112\n\
+ ldr r7, _080BE120 @ =gUnknown_02024D26\n\
+ ldrb r0, [r7]\n\
+ cmp r0, 0x1\n\
+ bne _080BE112\n\
+ ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738\n\
+ adds r0, r6, 0\n\
+ bl sub_80BF74C\n\
+ ldr r4, _080BE128 @ =gUnknown_03005D38\n\
+ strb r0, [r4]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ movs r1, 0x1\n\
+ negs r1, r1\n\
+ cmp r0, r1\n\
+ beq _080BE112\n\
+ movs r0, 0x17\n\
+ bl sub_80BF1B4\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ beq _080BE112\n\
+ movs r0, 0\n\
+ ldrsb r0, [r4, r0]\n\
+ lsls r4, r0, 3\n\
+ adds r4, r0\n\
+ lsls r4, 2\n\
+ adds r4, r6\n\
@ -- Here the compiler puts the status flag in the wrong register. --\n\
- movs r1, 0\n\
- movs r0, 0x17\n\
- strb r0, [r4]\n\
- strb r1, [r4, 0x1]\n\
- ldr r1, _080BE12C @ =gUnknown_030042E0\n\
- ldrh r0, [r1, 0x6]\n\
- strh r0, [r4, 0xC]\n\
- ldrh r0, [r1, 0x20]\n\
- strh r0, [r4, 0xE]\n\
- strb r5, [r4, 0x10]\n\
- ldrb r0, [r7]\n\
- strb r0, [r4, 0x11]\n\
- ldr r0, _080BE130 @ =gMapHeader\n\
- ldrb r0, [r0, 0x14]\n\
- strb r0, [r4, 0x12]\n\
- adds r0, r4, 0\n\
- adds r0, 0x13\n\
- ldr r1, _080BE134 @ =gSaveBlock2\n\
- bl StringCopy\n\
- adds r0, r4, 0\n\
- bl sub_80BE138\n\
- movs r0, 2 @ GAME_LANGUAGE\n\
- strb r0, [r4, 0x2]\n\
+ movs r1, 0\n\
+ movs r0, 0x17\n\
+ strb r0, [r4]\n\
+ strb r1, [r4, 0x1]\n\
+ ldr r1, _080BE12C @ =gUnknown_030042E0\n\
+ ldrh r0, [r1, 0x6]\n\
+ strh r0, [r4, 0xC]\n\
+ ldrh r0, [r1, 0x20]\n\
+ strh r0, [r4, 0xE]\n\
+ strb r5, [r4, 0x10]\n\
+ ldrb r0, [r7]\n\
+ strb r0, [r4, 0x11]\n\
+ ldr r0, _080BE130 @ =gMapHeader\n\
+ ldrb r0, [r0, 0x14]\n\
+ strb r0, [r4, 0x12]\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x13\n\
+ ldr r1, _080BE134 @ =gSaveBlock2\n\
+ bl StringCopy\n\
+ adds r0, r4, 0\n\
+ bl sub_80BE138\n\
+ movs r0, 2 @ GAME_LANGUAGE\n\
+ strb r0, [r4, 0x2]\n\
_080BE112:\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
_080BE118: .4byte 0x0000ffff\n\
_080BE11C: .4byte gUnknown_03004316\n\
_080BE120: .4byte gUnknown_02024D26\n\
@@ -2033,119 +2033,119 @@ __attribute__((naked))
void GetMomOrDadStringForTVMessage(void)
{
asm(".syntax unified\n\
- push {r4,lr}\n\
- ldr r1, _080BFC40 @ =gSaveBlock1\n\
- movs r0, 0x4\n\
- ldrsb r0, [r1, r0]\n\
- cmp r0, 0x1\n\
- bne _080BFC6C\n\
- ldr r0, _080BFC44 @ =gSaveBlock2\n\
- ldrb r0, [r0, 0x8]\n\
- cmp r0, 0\n\
- bne _080BFC54\n\
- movs r0, 0x5\n\
- ldrsb r0, [r1, r0]\n\
- cmp r0, 0\n\
- bne _080BFC6C\n\
- ldr r0, _080BFC48 @ =gStringVar1\n\
- ldr r1, _080BFC4C @ =gOtherText_Mom\n\
- bl StringCopy\n\
- ldr r0, _080BFC50 @ =0x00004003\n\
- movs r1, 0x1\n\
- bl VarSet\n\
- b _080BFC6C\n\
- .align 2, 0\n\
+ push {r4,lr}\n\
+ ldr r1, _080BFC40 @ =gSaveBlock1\n\
+ movs r0, 0x4\n\
+ ldrsb r0, [r1, r0]\n\
+ cmp r0, 0x1\n\
+ bne _080BFC6C\n\
+ ldr r0, _080BFC44 @ =gSaveBlock2\n\
+ ldrb r0, [r0, 0x8]\n\
+ cmp r0, 0\n\
+ bne _080BFC54\n\
+ movs r0, 0x5\n\
+ ldrsb r0, [r1, r0]\n\
+ cmp r0, 0\n\
+ bne _080BFC6C\n\
+ ldr r0, _080BFC48 @ =gStringVar1\n\
+ ldr r1, _080BFC4C @ =gOtherText_Mom\n\
+ bl StringCopy\n\
+ ldr r0, _080BFC50 @ =0x00004003\n\
+ movs r1, 0x1\n\
+ bl VarSet\n\
+ b _080BFC6C\n\
+ .align 2, 0\n\
_080BFC40: .4byte gSaveBlock1\n\
_080BFC44: .4byte gSaveBlock2\n\
_080BFC48: .4byte gStringVar1\n\
_080BFC4C: .4byte gOtherText_Mom\n\
_080BFC50: .4byte 0x00004003\n\
_080BFC54:\n\
- movs r0, 0x5\n\
- ldrsb r0, [r1, r0]\n\
- cmp r0, 0x2\n\
- bne _080BFC6C\n\
- ldr r0, _080BFCB4 @ =gStringVar1\n\
- ldr r1, _080BFCB8 @ =gOtherText_Mom\n\
- bl StringCopy\n\
- ldr r0, _080BFCBC @ =0x00004003\n\
- movs r1, 0x1\n\
- bl VarSet\n\
+ movs r0, 0x5\n\
+ ldrsb r0, [r1, r0]\n\
+ cmp r0, 0x2\n\
+ bne _080BFC6C\n\
+ ldr r0, _080BFCB4 @ =gStringVar1\n\
+ ldr r1, _080BFCB8 @ =gOtherText_Mom\n\
+ bl StringCopy\n\
+ ldr r0, _080BFCBC @ =0x00004003\n\
+ movs r1, 0x1\n\
+ bl VarSet\n\
_080BFC6C:\n\
- ldr r4, _080BFCBC @ =0x00004003\n\
- adds r0, r4, 0\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0x1\n\
- beq _080BFCAA\n\
- adds r0, r4, 0\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0x2\n\
- beq _080BFCC0\n\
- adds r0, r4, 0\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0x2\n\
- bls _080BFCD4\n\
- adds r0, r4, 0\n\
- bl VarGet\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080BFCC0\n\
+ ldr r4, _080BFCBC @ =0x00004003\n\
+ adds r0, r4, 0\n\
+ bl VarGet\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0x1\n\
+ beq _080BFCAA\n\
+ adds r0, r4, 0\n\
+ bl VarGet\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0x2\n\
+ beq _080BFCC0\n\
+ adds r0, r4, 0\n\
+ bl VarGet\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0x2\n\
+ bls _080BFCD4\n\
+ adds r0, r4, 0\n\
+ bl VarGet\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ movs r1, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080BFCC0\n\
_080BFCAA:\n\
- ldr r0, _080BFCB4 @ =gStringVar1\n\
- ldr r1, _080BFCB8 @ =gOtherText_Mom\n\
- bl StringCopy\n\
- b _080BFD10\n\
- .align 2, 0\n\
+ ldr r0, _080BFCB4 @ =gStringVar1\n\
+ ldr r1, _080BFCB8 @ =gOtherText_Mom\n\
+ bl StringCopy\n\
+ b _080BFD10\n\
+ .align 2, 0\n\
_080BFCB4: .4byte gStringVar1\n\
_080BFCB8: .4byte gOtherText_Mom\n\
_080BFCBC: .4byte 0x00004003\n\
_080BFCC0:\n\
- ldr r0, _080BFCCC @ =gStringVar1\n\
- ldr r1, _080BFCD0 @ =gOtherText_Dad\n\
- bl StringCopy\n\
- b _080BFD10\n\
- .align 2, 0\n\
+ ldr r0, _080BFCCC @ =gStringVar1\n\
+ ldr r1, _080BFCD0 @ =gOtherText_Dad\n\
+ bl StringCopy\n\
+ b _080BFD10\n\
+ .align 2, 0\n\
_080BFCCC: .4byte gStringVar1\n\
_080BFCD0: .4byte gOtherText_Dad\n\
_080BFCD4:\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080BFD00\n\
- ldr r0, _080BFCF8 @ =gStringVar1\n\
- ldr r1, _080BFCFC @ =gOtherText_Mom\n\
- bl StringCopy\n\
- adds r0, r4, 0\n\
- movs r1, 0x1\n\
- bl VarSet\n\
- b _080BFD10\n\
- .align 2, 0\n\
+ bl Random\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ movs r1, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BFD00\n\
+ ldr r0, _080BFCF8 @ =gStringVar1\n\
+ ldr r1, _080BFCFC @ =gOtherText_Mom\n\
+ bl StringCopy\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x1\n\
+ bl VarSet\n\
+ b _080BFD10\n\
+ .align 2, 0\n\
_080BFCF8: .4byte gStringVar1\n\
_080BFCFC: .4byte gOtherText_Mom\n\
_080BFD00:\n\
- ldr r0, _080BFD18 @ =gStringVar1\n\
- ldr r1, _080BFD1C @ =gOtherText_Dad\n\
- bl StringCopy\n\
- adds r0, r4, 0\n\
- movs r1, 0x2\n\
- bl VarSet\n\
+ ldr r0, _080BFD18 @ =gStringVar1\n\
+ ldr r1, _080BFD1C @ =gOtherText_Dad\n\
+ bl StringCopy\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x2\n\
+ bl VarSet\n\
_080BFD10:\n\
- pop {r4}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
_080BFD18: .4byte gStringVar1\n\
_080BFD1C: .4byte gOtherText_Dad\n\
.syntax divided\n");
@@ -2276,119 +2276,119 @@ bool8 sub_80BFF68(TVShow * arg1[25], TVShow * arg2[25], u8 idx) {
__attribute__((naked))
bool8 sub_80BFF68(TVShow * arg1[25], TVShow * arg2[25], u8 idx) {
asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- sub sp, 0x4\n\
- lsls r2, 24\n\
- lsrs r7, r2, 24\n\
- ldr r4, [r0]\n\
- ldr r6, [r1]\n\
- movs r5, 0\n\
- ldr r2, _080BFFA4 @ =gUnknown_03000722\n\
- movs r1, 0\n\
- ldrsb r1, [r2, r1]\n\
- lsls r0, r1, 3\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r6 @ this is the only mimsmatch\n\
- ldrb r0, [r0]\n\
- str r2, [sp]\n\
- bl sub_80BFB54\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- adds r1, r0, 0\n\
- ldr r2, [sp]\n\
- cmp r0, 0x3\n\
- beq _080BFFD8\n\
- cmp r0, 0x3\n\
- bgt _080BFFA8\n\
- cmp r0, 0x2\n\
- beq _080BFFAE\n\
- b _080C0026\n\
- .align 2, 0\n\
+ push {r4-r7,lr}\n\
+ sub sp, 0x4\n\
+ lsls r2, 24\n\
+ lsrs r7, r2, 24\n\
+ ldr r4, [r0]\n\
+ ldr r6, [r1]\n\
+ movs r5, 0\n\
+ ldr r2, _080BFFA4 @ =gUnknown_03000722\n\
+ movs r1, 0\n\
+ ldrsb r1, [r2, r1]\n\
+ lsls r0, r1, 3\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r6 @ this is the only mimsmatch\n\
+ ldrb r0, [r0]\n\
+ str r2, [sp]\n\
+ bl sub_80BFB54\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ adds r1, r0, 0\n\
+ ldr r2, [sp]\n\
+ cmp r0, 0x3\n\
+ beq _080BFFD8\n\
+ cmp r0, 0x3\n\
+ bgt _080BFFA8\n\
+ cmp r0, 0x2\n\
+ beq _080BFFAE\n\
+ b _080C0026\n\
+ .align 2, 0\n\
_080BFFA4: .4byte gUnknown_03000722\n\
_080BFFA8:\n\
- cmp r1, 0x4\n\
- beq _080C0000\n\
- b _080C0026\n\
+ cmp r1, 0x4\n\
+ beq _080C0000\n\
+ b _080C0026\n\
_080BFFAE:\n\
- ldr r0, _080BFFD4 @ =gUnknown_03005D38\n\
- movs r1, 0\n\
- ldrsb r1, [r0, r1]\n\
- lsls r0, r1, 3\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r4, r0\n\
- ldrb r2, [r2]\n\
- lsls r2, 24\n\
- asrs r2, 24\n\
- lsls r1, r2, 3\n\
- adds r1, r2\n\
- lsls r1, 2\n\
- adds r1, r6, r1\n\
- adds r2, r7, 0\n\
- bl sub_80C004C\n\
- b _080C0022\n\
- .align 2, 0\n\
+ ldr r0, _080BFFD4 @ =gUnknown_03005D38\n\
+ movs r1, 0\n\
+ ldrsb r1, [r0, r1]\n\
+ lsls r0, r1, 3\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r4, r0\n\
+ ldrb r2, [r2]\n\
+ lsls r2, 24\n\
+ asrs r2, 24\n\
+ lsls r1, r2, 3\n\
+ adds r1, r2\n\
+ lsls r1, 2\n\
+ adds r1, r6, r1\n\
+ adds r2, r7, 0\n\
+ bl sub_80C004C\n\
+ b _080C0022\n\
+ .align 2, 0\n\
_080BFFD4: .4byte gUnknown_03005D38\n\
_080BFFD8:\n\
- ldr r0, _080BFFFC @ =gUnknown_03005D38\n\
- movs r1, 0\n\
- ldrsb r1, [r0, r1]\n\
- lsls r0, r1, 3\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r4, r0\n\
- ldrb r2, [r2]\n\
- lsls r2, 24\n\
- asrs r2, 24\n\
- lsls r1, r2, 3\n\
- adds r1, r2\n\
- lsls r1, 2\n\
- adds r1, r6, r1\n\
- adds r2, r7, 0\n\
- bl sub_80C00B4\n\
- b _080C0022\n\
- .align 2, 0\n\
+ ldr r0, _080BFFFC @ =gUnknown_03005D38\n\
+ movs r1, 0\n\
+ ldrsb r1, [r0, r1]\n\
+ lsls r0, r1, 3\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r4, r0\n\
+ ldrb r2, [r2]\n\
+ lsls r2, 24\n\
+ asrs r2, 24\n\
+ lsls r1, r2, 3\n\
+ adds r1, r2\n\
+ lsls r1, 2\n\
+ adds r1, r6, r1\n\
+ adds r2, r7, 0\n\
+ bl sub_80C00B4\n\
+ b _080C0022\n\
+ .align 2, 0\n\
_080BFFFC: .4byte gUnknown_03005D38\n\
_080C0000:\n\
- ldr r0, _080C0030 @ =gUnknown_03005D38\n\
- movs r1, 0\n\
- ldrsb r1, [r0, r1]\n\
- lsls r0, r1, 3\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r4, r0\n\
- ldrb r2, [r2]\n\
- lsls r2, 24\n\
- asrs r2, 24\n\
- lsls r1, r2, 3\n\
- adds r1, r2\n\
- lsls r1, 2\n\
- adds r1, r6, r1\n\
- adds r2, r7, 0\n\
- bl sub_80C0134\n\
+ ldr r0, _080C0030 @ =gUnknown_03005D38\n\
+ movs r1, 0\n\
+ ldrsb r1, [r0, r1]\n\
+ lsls r0, r1, 3\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r4, r0\n\
+ ldrb r2, [r2]\n\
+ lsls r2, 24\n\
+ asrs r2, 24\n\
+ lsls r1, r2, 3\n\
+ adds r1, r2\n\
+ lsls r1, 2\n\
+ adds r1, r6, r1\n\
+ adds r2, r7, 0\n\
+ bl sub_80C0134\n\
_080C0022:\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
_080C0026:\n\
- cmp r5, 0x1\n\
- beq _080C0034\n\
- movs r0, 0\n\
- b _080C0040\n\
- .align 2, 0\n\
+ cmp r5, 0x1\n\
+ beq _080C0034\n\
+ movs r0, 0\n\
+ b _080C0040\n\
+ .align 2, 0\n\
_080C0030: .4byte gUnknown_03005D38\n\
_080C0034:\n\
- ldr r0, _080C0048 @ =gUnknown_03000722\n\
- ldrb r1, [r0]\n\
- adds r0, r6, 0\n\
- bl sub_80BF55C\n\
- movs r0, 0x1\n\
+ ldr r0, _080C0048 @ =gUnknown_03000722\n\
+ ldrb r1, [r0]\n\
+ adds r0, r6, 0\n\
+ bl sub_80BF55C\n\
+ movs r0, 0x1\n\
_080C0040:\n\
- add sp, 0x4\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
+ add sp, 0x4\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
_080C0048: .4byte gUnknown_03000722\n\
.syntax divided\n");
}
@@ -2509,206 +2509,206 @@ void sub_80C01D4(void)
__attribute__((naked))
void sub_80C01D4(void) {
asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- movs r6, 0\n\
+ push {r4-r6,lr}\n\
+ movs r6, 0\n\
_080C01D8:\n\
- ldr r0, _080C01F8 @ =gSaveBlock1\n\
- lsls r2, r6, 3\n\
- adds r1, r2, r6\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldr r0, _080C01FC @ =0x00002738\n\
- adds r1, r0\n\
- ldrb r0, [r1]\n\
- cmp r0, 0x29\n\
- bls _080C01EE\n\
- b _default\n\
+ ldr r0, _080C01F8 @ =gSaveBlock1\n\
+ lsls r2, r6, 3\n\
+ adds r1, r2, r6\n\
+ lsls r1, 2\n\
+ adds r1, r0\n\
+ ldr r0, _080C01FC @ =0x00002738\n\
+ adds r1, r0\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x29\n\
+ bls _080C01EE\n\
+ b _default\n\
_080C01EE:\n\
- lsls r0, 2\n\
- ldr r1, _080C0200 @ =_080C0204\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
+ lsls r0, 2\n\
+ ldr r1, _080C0200 @ =_080C0204\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
_080C01F8: .4byte gSaveBlock1\n\
_080C01FC: .4byte 0x00002738\n\
_080C0200: .4byte _080C0204\n\
- .align 2, 0\n\
+ .align 2, 0\n\
_080C0204:\n\
- .4byte _break\n\
- .4byte _fanclubLetter @ TVSHOW_FAN_CLUB_LETTER\n\
- .4byte _break @ TVSHOW_RECENT_HAPPENINGS\n\
- .4byte _fanclubOpinions @ TVSHOW_PKMN_FAN_CLUB_OPINIONS\n\
- .4byte _showtype4 @ TVSHOW_UNKN_SHOWTYPE_04\n\
- .4byte _nameRater @ TVSHOW_NAME_RATER_SHOW\n\
- .4byte _bravoTrainerContest @ TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE\n\
- .4byte _bravoTrainerTower @ TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _pokemonTodayS @ TVSHOW_POKEMON_TODAY_CAUGHT\n\
- .4byte _break @ TVSHOW_SMART_SHOPPER\n\
- .4byte _pokemonTodayF @ TVSHOW_POKEMON_TODAY_FAILED\n\
- .4byte _fishing @ TVSHOW_FISHING_ADVICE\n\
- .4byte _worldOfMasters @ TVSHOW_WORLD_OF_MASTERS\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _default\n\
- .4byte _break @ TVSHOW_MASS_OUTBREAK\n\
+ .4byte _break\n\
+ .4byte _fanclubLetter @ TVSHOW_FAN_CLUB_LETTER\n\
+ .4byte _break @ TVSHOW_RECENT_HAPPENINGS\n\
+ .4byte _fanclubOpinions @ TVSHOW_PKMN_FAN_CLUB_OPINIONS\n\
+ .4byte _showtype4 @ TVSHOW_UNKN_SHOWTYPE_04\n\
+ .4byte _nameRater @ TVSHOW_NAME_RATER_SHOW\n\
+ .4byte _bravoTrainerContest @ TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE\n\
+ .4byte _bravoTrainerTower @ TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _pokemonTodayS @ TVSHOW_POKEMON_TODAY_CAUGHT\n\
+ .4byte _break @ TVSHOW_SMART_SHOPPER\n\
+ .4byte _pokemonTodayF @ TVSHOW_POKEMON_TODAY_FAILED\n\
+ .4byte _fishing @ TVSHOW_FISHING_ADVICE\n\
+ .4byte _worldOfMasters @ TVSHOW_WORLD_OF_MASTERS\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _default\n\
+ .4byte _break @ TVSHOW_MASS_OUTBREAK\n\
_fanclubLetter:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x2]\n\
- b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
+ adds r0, r2, r6\n\
+ lsls r0, 2\n\
+ ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738\n\
+ adds r0, r1\n\
+ ldrh r0, [r0, 0x2]\n\
+ b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
+ .align 2, 0\n\
_080C02B8: .4byte gSaveBlock1 + 0x2738\n\
_fanclubOpinions:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x2]\n\
- b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
+ adds r0, r2, r6\n\
+ lsls r0, 2\n\
+ ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738\n\
+ adds r0, r1\n\
+ ldrh r0, [r0, 0x2]\n\
+ b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
+ .align 2, 0\n\
_080C02C8: .4byte gSaveBlock1 + 0x2738\n\
_showtype4:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x6]\n\
- b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
+ adds r0, r2, r6\n\
+ lsls r0, 2\n\
+ ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738\n\
+ adds r0, r1\n\
+ ldrh r0, [r0, 0x6]\n\
+ b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
+ .align 2, 0\n\
_080C02D8: .4byte gSaveBlock1 + 0x2738\n\
_nameRater:\n\
- adds r4, r2, r6\n\
- lsls r4, 2\n\
- ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738\n\
- adds r4, r0\n\
- ldrh r0, [r4, 0x2]\n\
- lsls r5, r6, 24\n\
- lsrs r5, 24\n\
- adds r1, r5, 0\n\
- bl sub_80C03C8\n\
- ldrh r0, [r4, 0x1C]\n\
- b _checkSpecies2 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
+ adds r4, r2, r6\n\
+ lsls r4, 2\n\
+ ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738\n\
+ adds r4, r0\n\
+ ldrh r0, [r4, 0x2]\n\
+ lsls r5, r6, 24\n\
+ lsrs r5, 24\n\
+ adds r1, r5, 0\n\
+ bl sub_80C03C8\n\
+ ldrh r0, [r4, 0x1C]\n\
+ b _checkSpecies2 @ sub_80C03C8(r0, i)\n\
+ .align 2, 0\n\
_080C02F4: .4byte gSaveBlock1 + 0x2738\n\
_bravoTrainerContest:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x2]\n\
- b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
+ adds r0, r2, r6\n\
+ lsls r0, 2\n\
+ ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738\n\
+ adds r0, r1\n\
+ ldrh r0, [r0, 0x2]\n\
+ b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
+ .align 2, 0\n\
_080C0304: .4byte gSaveBlock1 + 0x2738\n\
_bravoTrainerTower:\n\
- adds r4, r2, r6\n\
- lsls r4, 2\n\
- ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738\n\
- adds r4, r0\n\
- ldrh r0, [r4, 0xA]\n\
- lsls r5, r6, 24\n\
- lsrs r5, 24\n\
- adds r1, r5, 0\n\
- bl sub_80C03C8\n\
- ldrh r0, [r4, 0x14]\n\
- b _checkSpecies2 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
+ adds r4, r2, r6\n\
+ lsls r4, 2\n\
+ ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738\n\
+ adds r4, r0\n\
+ ldrh r0, [r4, 0xA]\n\
+ lsls r5, r6, 24\n\
+ lsrs r5, 24\n\
+ adds r1, r5, 0\n\
+ bl sub_80C03C8\n\
+ ldrh r0, [r4, 0x14]\n\
+ b _checkSpecies2 @ sub_80C03C8(r0, i)\n\
+ .align 2, 0\n\
_080C0320: .4byte gSaveBlock1 + 0x2738\n\
_pokemonTodayS:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x10]\n\
- b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
+ adds r0, r2, r6\n\
+ lsls r0, 2\n\
+ ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738\n\
+ adds r0, r1\n\
+ ldrh r0, [r0, 0x10]\n\
+ b _checkSpecies1 @ sub_80C03C8(r0, i)\n\
+ .align 2, 0\n\
_080C0330: .4byte gSaveBlock1 + 0x2738\n\
_pokemonTodayF:\n\
- adds r4, r2, r6\n\
- lsls r4, 2\n\
- ldr r0, _080C034C @ =gSaveBlock1 + 0x2738\n\
- adds r4, r0\n\
- ldrh r0, [r4, 0xC]\n\
- lsls r5, r6, 24\n\
- lsrs r5, 24\n\
- adds r1, r5, 0\n\
- bl sub_80C03C8\n\
- ldrh r0, [r4, 0xE]\n\
- b _checkSpecies2 @ sub_80C03C8(r0, i)\n\
- .align 2, 0\n\
+ adds r4, r2, r6\n\
+ lsls r4, 2\n\
+ ldr r0, _080C034C @ =gSaveBlock1 + 0x2738\n\
+ adds r4, r0\n\
+ ldrh r0, [r4, 0xC]\n\
+ lsls r5, r6, 24\n\
+ lsrs r5, 24\n\
+ adds r1, r5, 0\n\
+ bl sub_80C03C8\n\
+ ldrh r0, [r4, 0xE]\n\
+ b _checkSpecies2 @ sub_80C03C8(r0, i)\n\
+ .align 2, 0\n\
_080C034C: .4byte gSaveBlock1 + 0x2738\n\
_fishing:\n\
- adds r0, r2, r6\n\
- lsls r0, 2\n\
- ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x4]\n\
+ adds r0, r2, r6\n\
+ lsls r0, 2\n\
+ ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738\n\
+ adds r0, r1\n\
+ ldrh r0, [r0, 0x4]\n\
_checkSpecies1:\n\
- lsls r1, r6, 24\n\
- lsrs r1, 24\n\
- bl sub_80C03C8\n\
- b _break\n\
- .align 2, 0\n\
+ lsls r1, r6, 24\n\
+ lsrs r1, 24\n\
+ bl sub_80C03C8\n\
+ b _break\n\
+ .align 2, 0\n\
_080C0364: .4byte gSaveBlock1 + 0x2738\n\
_worldOfMasters:\n\
- adds r4, r2, r6\n\
- lsls r4, 2\n\
- ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738\n\
- adds r4, r0\n\
- ldrh r0, [r4, 0x8]\n\
- lsls r5, r6, 24\n\
- lsrs r5, 24\n\
- adds r1, r5, 0\n\
- bl sub_80C03C8\n\
- ldrh r0, [r4, 0x4]\n\
+ adds r4, r2, r6\n\
+ lsls r4, 2\n\
+ ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738\n\
+ adds r4, r0\n\
+ ldrh r0, [r4, 0x8]\n\
+ lsls r5, r6, 24\n\
+ lsrs r5, 24\n\
+ adds r1, r5, 0\n\
+ bl sub_80C03C8\n\
+ ldrh r0, [r4, 0x4]\n\
_checkSpecies2:\n\
- adds r1, r5, 0\n\
- bl sub_80C03C8\n\
- b _break\n\
- .align 2, 0\n\
+ adds r1, r5, 0\n\
+ bl sub_80C03C8\n\
+ b _break\n\
+ .align 2, 0\n\
_080C0388: .4byte gSaveBlock1 + 0x2738\n\
_default:\n\
- lsls r0, r6, 24\n\
- lsrs r0, 24\n\
- bl sub_80C03A8\n\
+ lsls r0, r6, 24\n\
+ lsrs r0, 24\n\
+ bl sub_80C03A8\n\
_break:\n\
- adds r0, r6, 0x1\n\
- lsls r0, 16\n\
- lsrs r6, r0, 16\n\
- cmp r6, 0x17\n\
- bhi _080C03A0\n\
- b _080C01D8\n\
+ adds r0, r6, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+ cmp r6, 0x17\n\
+ bhi _080C03A0\n\
+ b _080C01D8\n\
_080C03A0:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
.syntax divided\n");
}
#endif
@@ -2738,43 +2738,43 @@ void sub_80C0408(void) {
__attribute__((naked))
void sub_80C0408(void) {
asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- ldr r0, _080C044C @ =0x00000804\n\
- bl FlagGet\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- beq _080C0444\n\
- movs r2, 0\n\
- ldr r6, _080C0450 @ =gSaveBlock1\n\
- ldr r4, _080C0454 @ =0x00002739\n\
- movs r3, 0\n\
- ldr r5, _080C0458 @ =0x00002738\n\
+ push {r4-r6,lr}\n\
+ ldr r0, _080C044C @ =0x00000804\n\
+ bl FlagGet\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ beq _080C0444\n\
+ movs r2, 0\n\
+ ldr r6, _080C0450 @ =gSaveBlock1\n\
+ ldr r4, _080C0454 @ =0x00002739\n\
+ movs r3, 0\n\
+ ldr r5, _080C0458 @ =0x00002738\n\
_080C0422:\n\
- lsls r0, r2, 3\n\
- adds r0, r2\n\
- lsls r0, 2\n\
- adds r1, r0, r6\n\
- adds r0, r1, r5\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x7\n\
- beq _080C0436\n\
- cmp r0, 0x29\n\
- bne _080C043A\n\
+ lsls r0, r2, 3\n\
+ adds r0, r2\n\
+ lsls r0, 2\n\
+ adds r1, r0, r6\n\
+ adds r0, r1, r5\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x7\n\
+ beq _080C0436\n\
+ cmp r0, 0x29\n\
+ bne _080C043A\n\
_080C0436:\n\
- adds r0, r1, r4\n\
- strb r3, [r0]\n\
+ adds r0, r1, r4\n\
+ strb r3, [r0]\n\
_080C043A:\n\
- adds r0, r2, 0x1\n\
- lsls r0, 16\n\
- lsrs r2, r0, 16\n\
- cmp r2, 0x17\n\
- bls _080C0422\n\
+ adds r0, r2, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r2, r0, 16\n\
+ cmp r2, 0x17\n\
+ bls _080C0422\n\
_080C0444:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
_080C044C: .4byte 0x00000804\n\
_080C0450: .4byte gSaveBlock1\n\
_080C0454: .4byte 0x00002739\n\
diff --git a/src/util.c b/src/util.c
index 2278c50fe..55608854c 100644
--- a/src/util.c
+++ b/src/util.c
@@ -6,41 +6,41 @@ extern const u8 gSpriteDimensions[3][4][2];
extern const u16 gCrc16Table[];
u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *)) {
- u8 sprite = CreateSprite(&gInvisibleSpriteTemplate, 248, 168, 14);
- gSprites[sprite].invisible = TRUE;
- gSprites[sprite].callback = callback;
- return sprite;
+ u8 sprite = CreateSprite(&gInvisibleSpriteTemplate, 248, 168, 14);
+ gSprites[sprite].invisible = TRUE;
+ gSprites[sprite].callback = callback;
+ return sprite;
}
void StoreWordInTwoHalfwords(u16 *h, u32 w) {
- h[0] = (u16)(w);
- h[1] = (u16)(w >> 16);
+ h[0] = (u16)(w);
+ h[1] = (u16)(w >> 16);
}
void LoadWordFromTwoHalfwords(u16 *h, u32 *w) {
- *w = h[0] | (s16)h[1] << 16;
+ *w = h[0] | (s16)h[1] << 16;
}
void SetBgAffineStruct(struct BgAffineSrcData *src, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) {
- src->texX = texX;
- src->texY = texY;
- src->scrX = scrX;
- src->scrY = scrY;
- src->sx = sx;
- src->sy = sy;
- src->alpha = alpha;
+ src->texX = texX;
+ src->texY = texY;
+ src->scrX = scrX;
+ src->scrY = scrY;
+ src->sx = sx;
+ src->sy = sy;
+ src->alpha = alpha;
}
void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) {
- struct BgAffineSrcData src;
- SetBgAffineStruct(
- &src,
- texX, texY,
- scrX, scrY,
- sx, sy,
- alpha
- );
- BgAffineSet(&src, dest, 1);
+ struct BgAffineSrcData src;
+ SetBgAffineStruct(
+ &src,
+ texX, texY,
+ scrX, scrY,
+ sx, sy,
+ alpha
+ );
+ BgAffineSet(&src, dest, 1);
}
#ifdef NONMATCHING
@@ -48,342 +48,342 @@ void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s
// Functionally equivalent.
// Only the two yflip loops don't match.
void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) {
- u8 x, y;
- s8 i, j;
- u8 xflip[32];
- u8 h = gSpriteDimensions[shape][size][1];
- u8 w = gSpriteDimensions[shape][size][0];
- for (y = 0; y < h; y++) {
- int filler = 32 - w;
- for (x = 0; x < w; x++) {
- int tile = (*tilemap & 0x3ff) * 32;
- int attr = *tilemap & 0xc00;
- if (attr == 0) {
- void *src = tiles + tile;
- void *dest = output;
- int length = 32;
- DmaCopy32(3, src, dest, length);
- } else if (attr == 0x800) { // yflip
- for (i = 0; i < 8; i++) {
- void *src = tiles;
- void *dest = output;
- int length = 4;
- // this is likely wrong, but makes it closer to matching
- src += tile + (7 - i) * 4;
- dest += i * 4;
- DmaCopy32(3, src, dest, length);
- }
- } else { // xflip
- for (i = 0; i < 8; i++) {
- for (j = 0; j < 4; j++) {
- u8 i2 = i * 4;
- xflip[i2 + (3-j)] = (tiles[tile + i2 + j] & 0xf) << 4;
- xflip[i2 + (3-j)] |= tiles[tile + i2 + j] >> 4;
- }
- }
- if (*tilemap & 0x800) { // yflip
- for (i = 0; i < 8; i++) {
- void *src = xflip + (7-i) * 4;
- void *dest = output + i*4;
- int length = 4;
- DmaCopy32(3, src, dest, length);
- }
- } else {
- void *src = xflip;
- void *dest = output;
- int length = 32;
- DmaCopy32(3, src, dest, length);
- }
- }
- tilemap++;
- output += 32;
- }
- tilemap += filler;
- }
+ u8 x, y;
+ s8 i, j;
+ u8 xflip[32];
+ u8 h = gSpriteDimensions[shape][size][1];
+ u8 w = gSpriteDimensions[shape][size][0];
+ for (y = 0; y < h; y++) {
+ int filler = 32 - w;
+ for (x = 0; x < w; x++) {
+ int tile = (*tilemap & 0x3ff) * 32;
+ int attr = *tilemap & 0xc00;
+ if (attr == 0) {
+ void *src = tiles + tile;
+ void *dest = output;
+ int length = 32;
+ DmaCopy32(3, src, dest, length);
+ } else if (attr == 0x800) { // yflip
+ for (i = 0; i < 8; i++) {
+ void *src = tiles;
+ void *dest = output;
+ int length = 4;
+ // this is likely wrong, but makes it closer to matching
+ src += tile + (7 - i) * 4;
+ dest += i * 4;
+ DmaCopy32(3, src, dest, length);
+ }
+ } else { // xflip
+ for (i = 0; i < 8; i++) {
+ for (j = 0; j < 4; j++) {
+ u8 i2 = i * 4;
+ xflip[i2 + (3-j)] = (tiles[tile + i2 + j] & 0xf) << 4;
+ xflip[i2 + (3-j)] |= tiles[tile + i2 + j] >> 4;
+ }
+ }
+ if (*tilemap & 0x800) { // yflip
+ for (i = 0; i < 8; i++) {
+ void *src = xflip + (7-i) * 4;
+ void *dest = output + i*4;
+ int length = 4;
+ DmaCopy32(3, src, dest, length);
+ }
+ } else {
+ void *src = xflip;
+ void *dest = output;
+ int length = 32;
+ DmaCopy32(3, src, dest, length);
+ }
+ }
+ tilemap++;
+ output += 32;
+ }
+ tilemap += filler;
+ }
}
#else
__attribute__((naked)) void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) {
- asm("\n"
- " .syntax unified\n"
- " push {r4-r7,lr}\n"
- " mov r7, r10\n"
- " mov r6, r9\n"
- " mov r5, r8\n"
- " push {r5-r7}\n"
- " sub sp, 0x3C\n"
- " str r2, [sp, 0x20]\n"
- " adds r4, r3, 0\n"
- " ldr r7, [sp, 0x5C]\n"
- " lsls r0, 24\n"
- " lsls r1, 24\n"
- " ldr r2, _08041008 @ =gSpriteDimensions\n"
- " lsrs r1, 23\n"
- " lsrs r0, 21\n"
- " adds r1, r0\n"
- " adds r0, r2, 0x1\n"
- " adds r0, r1, r0\n"
- " ldrb r0, [r0]\n"
- " str r0, [sp, 0x24]\n"
- " adds r1, r2\n"
- " ldrb r1, [r1]\n"
- " str r1, [sp, 0x28]\n"
- " movs r1, 0\n"
- " cmp r1, r0\n"
- " bcc _08040FB4\n"
- " b _08041136\n"
- "_08040FB4:\n"
- " movs r0, 0x20\n"
- " ldr r2, [sp, 0x28]\n"
- " subs r0, r2\n"
- " lsls r0, 1\n"
- " str r0, [sp, 0x2C]\n"
- "_08040FBE:\n"
- " movs r2, 0\n"
- " adds r1, 0x1\n"
- " str r1, [sp, 0x34]\n"
- " ldr r3, [sp, 0x28]\n"
- " cmp r2, r3\n"
- " bcc _08040FCC\n"
- " b _08041124\n"
- "_08040FCC:\n"
- " ldr r0, _0804100C @ =0x040000d4\n"
- " mov r8, r0\n"
- "_08040FD0:\n"
- " ldrh r1, [r4]\n"
- " ldr r0, _08041010 @ =0x000003ff\n"
- " ands r0, r1\n"
- " lsls r0, 5\n"
- " mov r12, r0\n"
- " movs r0, 0xC0\n"
- " lsls r0, 4\n"
- " ands r0, r1\n"
- " mov r3, sp\n"
- " strh r1, [r3, 0x38]\n"
- " cmp r0, 0\n"
- " bne _08041018\n"
- " ldr r0, [sp, 0x20]\n"
- " add r0, r12\n"
- " mov r1, r8\n"
- " str r0, [r1]\n"
- " str r7, [r1, 0x4]\n"
- " ldr r3, _08041014 @ =0x84000008\n"
- " str r3, [r1, 0x8]\n"
- " ldr r0, [r1, 0x8]\n"
- " adds r4, 0x2\n"
- " str r4, [sp, 0x30]\n"
- " adds r7, 0x20\n"
- " mov r10, r7\n"
- " adds r2, 0x1\n"
- " mov r9, r2\n"
- " b _08041112\n"
- " .align 2, 0\n"
- "_08041008: .4byte gSpriteDimensions\n"
- "_0804100C: .4byte 0x040000d4\n"
- "_08041010: .4byte 0x000003ff\n"
- "_08041014: .4byte 0x84000008\n"
- "_08041018:\n"
- " movs r1, 0x80\n"
- " lsls r1, 4\n"
- " cmp r0, r1\n"
- " bne _08041068\n"
- " movs r3, 0\n"
- " adds r4, 0x2\n"
- " str r4, [sp, 0x30]\n"
- " movs r0, 0x20\n"
- " adds r0, r7\n"
- " mov r10, r0\n"
- " adds r2, 0x1\n"
- " mov r9, r2\n"
- " ldr r4, _08041060 @ =0x040000d4\n"
- " ldr r6, _08041064 @ =0x84000001\n"
- " movs r5, 0x7\n"
- "_08041036:\n"
- " lsls r2, r3, 24\n"
- " asrs r2, 24\n"
- " subs r0, r5, r2\n"
- " lsls r0, 2\n"
- " add r0, r12\n"
- " ldr r1, [sp, 0x20]\n"
- " adds r0, r1, r0\n"
- " lsls r1, r2, 2\n"
- " adds r1, r7, r1\n"
- " str r0, [r4]\n"
- " str r1, [r4, 0x4]\n"
- " str r6, [r4, 0x8]\n"
- " ldr r0, [r4, 0x8]\n"
- " adds r2, 0x1\n"
- " lsls r2, 24\n"
- " lsrs r3, r2, 24\n"
- " asrs r2, 24\n"
- " cmp r2, 0x7\n"
- " ble _08041036\n"
- " b _08041112\n"
- " .align 2, 0\n"
- "_08041060: .4byte 0x040000d4\n"
- "_08041064: .4byte 0x84000001\n"
- "_08041068:\n"
- " movs r3, 0\n"
- " adds r4, 0x2\n"
- " str r4, [sp, 0x30]\n"
- " movs r0, 0x20\n"
- " adds r0, r7\n"
- " mov r10, r0\n"
- " adds r2, 0x1\n"
- " mov r9, r2\n"
- "_08041078:\n"
- " movs r2, 0\n"
- " lsls r4, r3, 24\n"
- " lsls r0, r4, 2\n"
- " lsrs r0, 24\n"
- " adds r6, r0, 0x3\n"
- " mov r1, r12\n"
- " adds r5, r1, r0\n"
- "_08041086:\n"
- " lsls r1, r2, 24\n"
- " asrs r1, 24\n"
- " subs r0, r6, r1\n"
- " mov r2, sp\n"
- " adds r3, r2, r0\n"
- " adds r0, r5, r1\n"
- " ldr r2, [sp, 0x20]\n"
- " adds r0, r2, r0\n"
- " ldrb r2, [r0]\n"
- " movs r0, 0xF\n"
- " ands r0, r2\n"
- " lsls r0, 4\n"
- " lsrs r2, 4\n"
- " orrs r0, r2\n"
- " strb r0, [r3]\n"
- " adds r1, 0x1\n"
- " lsls r1, 24\n"
- " lsrs r2, r1, 24\n"
- " asrs r1, 24\n"
- " cmp r1, 0x3\n"
- " ble _08041086\n"
- " movs r3, 0x80\n"
- " lsls r3, 17\n"
- " adds r0, r4, r3\n"
- " lsrs r3, r0, 24\n"
- " asrs r0, 24\n"
- " cmp r0, 0x7\n"
- " ble _08041078\n"
- " movs r0, 0x80\n"
- " lsls r0, 4\n"
- " mov r1, sp\n"
- " ldrh r1, [r1, 0x38]\n"
- " ands r0, r1\n"
- " cmp r0, 0\n"
- " beq _08041104\n"
- " movs r3, 0\n"
- " ldr r4, _080410FC @ =0x040000d4\n"
- " ldr r6, _08041100 @ =0x84000001\n"
- " movs r5, 0x7\n"
- "_080410D4:\n"
- " lsls r1, r3, 24\n"
- " asrs r1, 24\n"
- " subs r0, r5, r1\n"
- " lsls r0, 2\n"
- " mov r3, sp\n"
- " adds r2, r3, r0\n"
- " lsls r0, r1, 2\n"
- " adds r0, r7, r0\n"
- " str r2, [r4]\n"
- " str r0, [r4, 0x4]\n"
- " str r6, [r4, 0x8]\n"
- " ldr r0, [r4, 0x8]\n"
- " adds r1, 0x1\n"
- " lsls r1, 24\n"
- " lsrs r3, r1, 24\n"
- " asrs r1, 24\n"
- " cmp r1, 0x7\n"
- " ble _080410D4\n"
- " b _08041112\n"
- " .align 2, 0\n"
- "_080410FC: .4byte 0x040000d4\n"
- "_08041100: .4byte 0x84000001\n"
- "_08041104:\n"
- " mov r0, sp\n"
- " mov r1, r8\n"
- " str r0, [r1]\n"
- " str r7, [r1, 0x4]\n"
- " ldr r2, _08041148 @ =0x84000008\n"
- " str r2, [r1, 0x8]\n"
- " ldr r0, [r1, 0x8]\n"
- "_08041112:\n"
- " ldr r4, [sp, 0x30]\n"
- " mov r7, r10\n"
- " mov r3, r9\n"
- " lsls r0, r3, 24\n"
- " lsrs r2, r0, 24\n"
- " ldr r0, [sp, 0x28]\n"
- " cmp r2, r0\n"
- " bcs _08041124\n"
- " b _08040FD0\n"
- "_08041124:\n"
- " ldr r1, [sp, 0x2C]\n"
- " adds r4, r1\n"
- " ldr r2, [sp, 0x34]\n"
- " lsls r0, r2, 24\n"
- " lsrs r1, r0, 24\n"
- " ldr r3, [sp, 0x24]\n"
- " cmp r1, r3\n"
- " bcs _08041136\n"
- " b _08040FBE\n"
- "_08041136:\n"
- " add sp, 0x3C\n"
- " pop {r3-r5}\n"
- " mov r8, r3\n"
- " mov r9, r4\n"
- " mov r10, r5\n"
- " pop {r4-r7}\n"
- " pop {r0}\n"
- " bx r0\n"
- " .align 2, 0\n"
- "_08041148: .4byte 0x84000008\n"
- " .syntax divided\n"
- );
+ asm("\n"
+ " .syntax unified\n"
+ " push {r4-r7,lr}\n"
+ " mov r7, r10\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5-r7}\n"
+ " sub sp, 0x3C\n"
+ " str r2, [sp, 0x20]\n"
+ " adds r4, r3, 0\n"
+ " ldr r7, [sp, 0x5C]\n"
+ " lsls r0, 24\n"
+ " lsls r1, 24\n"
+ " ldr r2, _08041008 @ =gSpriteDimensions\n"
+ " lsrs r1, 23\n"
+ " lsrs r0, 21\n"
+ " adds r1, r0\n"
+ " adds r0, r2, 0x1\n"
+ " adds r0, r1, r0\n"
+ " ldrb r0, [r0]\n"
+ " str r0, [sp, 0x24]\n"
+ " adds r1, r2\n"
+ " ldrb r1, [r1]\n"
+ " str r1, [sp, 0x28]\n"
+ " movs r1, 0\n"
+ " cmp r1, r0\n"
+ " bcc _08040FB4\n"
+ " b _08041136\n"
+ "_08040FB4:\n"
+ " movs r0, 0x20\n"
+ " ldr r2, [sp, 0x28]\n"
+ " subs r0, r2\n"
+ " lsls r0, 1\n"
+ " str r0, [sp, 0x2C]\n"
+ "_08040FBE:\n"
+ " movs r2, 0\n"
+ " adds r1, 0x1\n"
+ " str r1, [sp, 0x34]\n"
+ " ldr r3, [sp, 0x28]\n"
+ " cmp r2, r3\n"
+ " bcc _08040FCC\n"
+ " b _08041124\n"
+ "_08040FCC:\n"
+ " ldr r0, _0804100C @ =0x040000d4\n"
+ " mov r8, r0\n"
+ "_08040FD0:\n"
+ " ldrh r1, [r4]\n"
+ " ldr r0, _08041010 @ =0x000003ff\n"
+ " ands r0, r1\n"
+ " lsls r0, 5\n"
+ " mov r12, r0\n"
+ " movs r0, 0xC0\n"
+ " lsls r0, 4\n"
+ " ands r0, r1\n"
+ " mov r3, sp\n"
+ " strh r1, [r3, 0x38]\n"
+ " cmp r0, 0\n"
+ " bne _08041018\n"
+ " ldr r0, [sp, 0x20]\n"
+ " add r0, r12\n"
+ " mov r1, r8\n"
+ " str r0, [r1]\n"
+ " str r7, [r1, 0x4]\n"
+ " ldr r3, _08041014 @ =0x84000008\n"
+ " str r3, [r1, 0x8]\n"
+ " ldr r0, [r1, 0x8]\n"
+ " adds r4, 0x2\n"
+ " str r4, [sp, 0x30]\n"
+ " adds r7, 0x20\n"
+ " mov r10, r7\n"
+ " adds r2, 0x1\n"
+ " mov r9, r2\n"
+ " b _08041112\n"
+ " .align 2, 0\n"
+ "_08041008: .4byte gSpriteDimensions\n"
+ "_0804100C: .4byte 0x040000d4\n"
+ "_08041010: .4byte 0x000003ff\n"
+ "_08041014: .4byte 0x84000008\n"
+ "_08041018:\n"
+ " movs r1, 0x80\n"
+ " lsls r1, 4\n"
+ " cmp r0, r1\n"
+ " bne _08041068\n"
+ " movs r3, 0\n"
+ " adds r4, 0x2\n"
+ " str r4, [sp, 0x30]\n"
+ " movs r0, 0x20\n"
+ " adds r0, r7\n"
+ " mov r10, r0\n"
+ " adds r2, 0x1\n"
+ " mov r9, r2\n"
+ " ldr r4, _08041060 @ =0x040000d4\n"
+ " ldr r6, _08041064 @ =0x84000001\n"
+ " movs r5, 0x7\n"
+ "_08041036:\n"
+ " lsls r2, r3, 24\n"
+ " asrs r2, 24\n"
+ " subs r0, r5, r2\n"
+ " lsls r0, 2\n"
+ " add r0, r12\n"
+ " ldr r1, [sp, 0x20]\n"
+ " adds r0, r1, r0\n"
+ " lsls r1, r2, 2\n"
+ " adds r1, r7, r1\n"
+ " str r0, [r4]\n"
+ " str r1, [r4, 0x4]\n"
+ " str r6, [r4, 0x8]\n"
+ " ldr r0, [r4, 0x8]\n"
+ " adds r2, 0x1\n"
+ " lsls r2, 24\n"
+ " lsrs r3, r2, 24\n"
+ " asrs r2, 24\n"
+ " cmp r2, 0x7\n"
+ " ble _08041036\n"
+ " b _08041112\n"
+ " .align 2, 0\n"
+ "_08041060: .4byte 0x040000d4\n"
+ "_08041064: .4byte 0x84000001\n"
+ "_08041068:\n"
+ " movs r3, 0\n"
+ " adds r4, 0x2\n"
+ " str r4, [sp, 0x30]\n"
+ " movs r0, 0x20\n"
+ " adds r0, r7\n"
+ " mov r10, r0\n"
+ " adds r2, 0x1\n"
+ " mov r9, r2\n"
+ "_08041078:\n"
+ " movs r2, 0\n"
+ " lsls r4, r3, 24\n"
+ " lsls r0, r4, 2\n"
+ " lsrs r0, 24\n"
+ " adds r6, r0, 0x3\n"
+ " mov r1, r12\n"
+ " adds r5, r1, r0\n"
+ "_08041086:\n"
+ " lsls r1, r2, 24\n"
+ " asrs r1, 24\n"
+ " subs r0, r6, r1\n"
+ " mov r2, sp\n"
+ " adds r3, r2, r0\n"
+ " adds r0, r5, r1\n"
+ " ldr r2, [sp, 0x20]\n"
+ " adds r0, r2, r0\n"
+ " ldrb r2, [r0]\n"
+ " movs r0, 0xF\n"
+ " ands r0, r2\n"
+ " lsls r0, 4\n"
+ " lsrs r2, 4\n"
+ " orrs r0, r2\n"
+ " strb r0, [r3]\n"
+ " adds r1, 0x1\n"
+ " lsls r1, 24\n"
+ " lsrs r2, r1, 24\n"
+ " asrs r1, 24\n"
+ " cmp r1, 0x3\n"
+ " ble _08041086\n"
+ " movs r3, 0x80\n"
+ " lsls r3, 17\n"
+ " adds r0, r4, r3\n"
+ " lsrs r3, r0, 24\n"
+ " asrs r0, 24\n"
+ " cmp r0, 0x7\n"
+ " ble _08041078\n"
+ " movs r0, 0x80\n"
+ " lsls r0, 4\n"
+ " mov r1, sp\n"
+ " ldrh r1, [r1, 0x38]\n"
+ " ands r0, r1\n"
+ " cmp r0, 0\n"
+ " beq _08041104\n"
+ " movs r3, 0\n"
+ " ldr r4, _080410FC @ =0x040000d4\n"
+ " ldr r6, _08041100 @ =0x84000001\n"
+ " movs r5, 0x7\n"
+ "_080410D4:\n"
+ " lsls r1, r3, 24\n"
+ " asrs r1, 24\n"
+ " subs r0, r5, r1\n"
+ " lsls r0, 2\n"
+ " mov r3, sp\n"
+ " adds r2, r3, r0\n"
+ " lsls r0, r1, 2\n"
+ " adds r0, r7, r0\n"
+ " str r2, [r4]\n"
+ " str r0, [r4, 0x4]\n"
+ " str r6, [r4, 0x8]\n"
+ " ldr r0, [r4, 0x8]\n"
+ " adds r1, 0x1\n"
+ " lsls r1, 24\n"
+ " lsrs r3, r1, 24\n"
+ " asrs r1, 24\n"
+ " cmp r1, 0x7\n"
+ " ble _080410D4\n"
+ " b _08041112\n"
+ " .align 2, 0\n"
+ "_080410FC: .4byte 0x040000d4\n"
+ "_08041100: .4byte 0x84000001\n"
+ "_08041104:\n"
+ " mov r0, sp\n"
+ " mov r1, r8\n"
+ " str r0, [r1]\n"
+ " str r7, [r1, 0x4]\n"
+ " ldr r2, _08041148 @ =0x84000008\n"
+ " str r2, [r1, 0x8]\n"
+ " ldr r0, [r1, 0x8]\n"
+ "_08041112:\n"
+ " ldr r4, [sp, 0x30]\n"
+ " mov r7, r10\n"
+ " mov r3, r9\n"
+ " lsls r0, r3, 24\n"
+ " lsrs r2, r0, 24\n"
+ " ldr r0, [sp, 0x28]\n"
+ " cmp r2, r0\n"
+ " bcs _08041124\n"
+ " b _08040FD0\n"
+ "_08041124:\n"
+ " ldr r1, [sp, 0x2C]\n"
+ " adds r4, r1\n"
+ " ldr r2, [sp, 0x34]\n"
+ " lsls r0, r2, 24\n"
+ " lsrs r1, r0, 24\n"
+ " ldr r3, [sp, 0x24]\n"
+ " cmp r1, r3\n"
+ " bcs _08041136\n"
+ " b _08040FBE\n"
+ "_08041136:\n"
+ " add sp, 0x3C\n"
+ " pop {r3-r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov r10, r5\n"
+ " pop {r4-r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ " .align 2, 0\n"
+ "_08041148: .4byte 0x84000008\n"
+ " .syntax divided\n"
+ );
}
#endif
int CountTrailingZeroBits(u32 value) {
- u8 i;
- for (i = 0; i < 32; i++) {
- if ((value & 1) == 0) {
- value >>= 1;
- } else {
- return i;
- }
- }
- return 0;
+ u8 i;
+ for (i = 0; i < 32; i++) {
+ if ((value & 1) == 0) {
+ value >>= 1;
+ } else {
+ return i;
+ }
+ }
+ return 0;
}
u16 CalcCRC16(u8 *data, int length) {
- u16 i, j;
- u16 crc = 0x1121;
- for (i = 0; i < length; i++) {
- crc ^= data[i];
- for (j = 0; j < 8; j++) {
- if (crc & 1) {
- crc = (crc >> 1) ^ 0x8408;
- } else {
- crc >>= 1;
- }
- }
- }
- return ~crc;
+ u16 i, j;
+ u16 crc = 0x1121;
+ for (i = 0; i < length; i++) {
+ crc ^= data[i];
+ for (j = 0; j < 8; j++) {
+ if (crc & 1) {
+ crc = (crc >> 1) ^ 0x8408;
+ } else {
+ crc >>= 1;
+ }
+ }
+ }
+ return ~crc;
}
u16 CalcCRC16WithTable(u8 *data, int length) {
- u16 i;
- u16 crc = 0x1121;
- u8 byte;
- for (i = 0; i < length; i++) {
- byte = crc >> 8;
- crc ^= data[i];
- crc = byte ^ gCrc16Table[(u8)crc];
- }
- return ~crc;
+ u16 i;
+ u16 crc = 0x1121;
+ u8 byte;
+ for (i = 0; i < length; i++) {
+ byte = crc >> 8;
+ crc ^= data[i];
+ crc = byte ^ gCrc16Table[(u8)crc];
+ }
+ return ~crc;
}