summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-06-13 22:01:30 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-06-13 22:01:30 -0400
commit212bb0566f12c44685e39e3285d4332a88a8feb1 (patch)
tree169d21413d481de3f18e5509df0b0addc3882dd1
parent355498d85b71536580025364ccaa5ceb94c4194d (diff)
parent134cb1c9ec1d1a3a82a88d5065bf0758f9d906a6 (diff)
Merge branch 'decoration' into decoration_inventory
-rwxr-xr-xdata/decoration.s265
-rwxr-xr-xdata/decorations.inc2432
-rwxr-xr-xinclude/decoration.h123
-rw-r--r--[-rwxr-xr-x]include/global.fieldmap.h0
-rwxr-xr-xinclude/menu.h8
-rwxr-xr-xinclude/sprite.h4
-rwxr-xr-xld_script.txt2
-rwxr-xr-xsrc/decoration.c1792
-rwxr-xr-xsrc/decoration_inventory.c10
-rwxr-xr-xsrc/menu.c2
-rwxr-xr-xsrc/scrcmd.c1
11 files changed, 1758 insertions, 2881 deletions
diff --git a/data/decoration.s b/data/decoration.s
deleted file mode 100755
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 100755
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/decoration.h b/include/decoration.h
index abeb43086..01a00ee91 100755
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -1,17 +1,6 @@
#ifndef GUARD_DECORATION_H
#define GUARD_DECORATION_H
-enum DecoCat {
- /*0*/ DECOCAT_DESK,
- /*1*/ DECOCAT_CHAIR,
- /*2*/ DECOCAT_PLANT,
- /*3*/ DECOCAT_ORNAMENT,
- /*4*/ DECOCAT_MAT,
- /*5*/ DECOCAT_POSTER,
- /*6*/ DECOCAT_DOLL,
- /*7*/ DECOCAT_CUSHION
-};
-
enum DecoId {
/*000*/ DECOR_NONE,
/*001*/ DECOR_SMALL_DESK,
@@ -136,16 +125,57 @@ enum DecoId {
/*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
@@ -164,9 +194,9 @@ struct DecorationInventory
struct UnkStruct_803EC860
{
- u8 *var0;
- u8 *var4;
- u8 *var8;
+ const u8 *tiles;
+ const u8 *y;
+ const u8 *x;
u8 size;
};
@@ -177,38 +207,36 @@ extern u8 ewram[];
struct UnkStruct_02038900
{
- /*0x000; 0x02038900*/ struct Decoration *decoration;
- /*0x004; 0x02038904*/ u16 unk_004[0x40];
- /*0x084; 0x02038984*/ u8 unk_084[0x800];
- /*0x884; 0x02039184*/ u16 unk_884[16];
+ /*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 unk_0;
- u8 unk_1;
- u8 unk_2;
- u8 unk_3;
+ u8 shape;
+ u8 size;
+ u8 x;
+ u8 y;
};
struct UnkStruct_020391B4
{
- u8 var00;
- u8 var01;
- u8 var02;
- u8 var03;
- u16 var04;
- u8 pad06[2];
+ u8 decorId;
+ u8 width;
+ u8 height;
+ u16 flagId;
};
-extern const struct UnkStruct_083EC900 gUnknown_083EC900[10];
+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 struct Decoration gDecorations[0x77];
+extern const struct Decoration gDecorations[];
extern struct UnkStruct_02038900 gUnknown_02038900;
extern u8 *gUnknown_020388D0;
extern u8 gUnknown_081A2F7B[];
@@ -235,13 +263,13 @@ extern u8 gUnknown_020391A9;
extern u8 gUnknown_020391AA;
extern u8 gUnknown_02039234;
extern void (*gUnknown_0300485C)(void);
-extern void (*gUnknown_083EC96C[2][2])(u8);
+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 *gUnknown_083EC5E4[];
-extern const u8 *gUnknown_083EC624[];
+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[];
@@ -326,4 +354,23 @@ 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/global.fieldmap.h b/include/global.fieldmap.h
index b8bab45d8..b8bab45d8 100755..100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
diff --git a/include/menu.h b/include/menu.h
index 04ab78b27..98d7afcc3 100755
--- a/include/menu.h
+++ b/include/menu.h
@@ -12,13 +12,13 @@ struct MenuAction
struct MenuAction2
{
const u8 *text;
- u8 (*func)(u8);
+ void (*func)(u8);
};
struct MenuAction3
{
- u8 (*func1)(u8);
- u8 (*func2)(u8);
+ void (*func1)(u8);
+ void (*func2)(u8);
};
void CloseMenu(void);
@@ -64,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/sprite.h b/include/sprite.h
index bda635885..13c03ab51 100755
--- 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/ld_script.txt b/ld_script.txt
index 884b886d6..6a3cc86f9 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -434,7 +434,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 3fa230cd5..73a2a6749 100755
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "asm.h"
+#include "map_object_constants.h"
#include "rom4.h"
#include "sound.h"
#include "songs.h"
@@ -17,7 +18,1534 @@
#include "field_weather.h"
#include "decoration.h"
-extern Script gUnknown_0815F399;
+#define DECORATION(_id, _name, _permission, _shape, _category, _price, _description, _tiles) {\
+.id = _id,\
+.name = _name,\
+.permission = _permission,\
+.shape = _shape,\
+.category = _category,\
+.price = _price,\
+.description = _description,\
+.tiles = _tiles\
+}
+
+#define MENUACTION2(_text, _func) {.text = _text, .func = _func}
+#define MENUACTION3(_func1, _func2) {.func1 = _func1, .func2 = _func2}
+#define STRUCT_803EC860(_data1, _data2, _data3, _size) {.tiles = _data1, .y = _data2, .x = _data3, .size = _size}
+#define DECOSPRITETEMPLATE(_shape, _size, _x, _y) {.shape = _shape, .size = _size, .x = _x, .y = _y}
+
+const u8 DecorDesc_SMALL_DESK[] = _(
+ "A small desk built\n"
+ "for one.");
+
+const u8 DecorDesc_POKEMON_DESK[] = _(
+ "A small desk built in\n"
+ "the shape of a POKé\n"
+ "BALL.");
+
+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[] = {
+ DECORATION(DECOR_NONE, _("SMALL DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_DESK, 0, DecorDesc_SMALL_DESK, DecorGfx_SMALL_DESK),
+ DECORATION(DECOR_SMALL_DESK, _("SMALL DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_DESK, 3000, DecorDesc_SMALL_DESK, DecorGfx_SMALL_DESK),
+ DECORATION(DECOR_POKEMON_DESK, _("POKéMON DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_DESK, 3000, DecorDesc_POKEMON_DESK, DecorGfx_POKEMON_DESK),
+ DECORATION(DECOR_HEAVY_DESK, _("HEAVY DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x2, DECORCAT_DESK, 6000, DecorDesc_HEAVY_DESK, DecorGfx_HEAVY_DESK),
+ DECORATION(DECOR_RAGGED_DESK, _("RAGGED DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x2, DECORCAT_DESK, 6000, DecorDesc_RAGGED_DESK, DecorGfx_RAGGED_DESK),
+ DECORATION(DECOR_COMFORT_DESK, _("COMFORT DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x2, DECORCAT_DESK, 6000, DecorDesc_COMFORT_DESK, DecorGfx_COMFORT_DESK),
+ DECORATION(DECOR_PRETTY_DESK, _("PRETTY DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_PRETTY_DESK, DecorGfx_PRETTY_DESK),
+ DECORATION(DECOR_BRICK_DESK, _("BRICK DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_BRICK_DESK, DecorGfx_BRICK_DESK),
+ DECORATION(DECOR_CAMP_DESK, _("CAMP DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_CAMP_DESK, DecorGfx_CAMP_DESK),
+ DECORATION(DECOR_HARD_DESK, _("HARD DESK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_3x3, DECORCAT_DESK, 9000, DecorDesc_HARD_DESK, DecorGfx_HARD_DESK),
+ DECORATION(DECOR_SMALL_CHAIR, _("SMALL CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_SMALL_CHAIR, DecorGfx_SMALL_CHAIR),
+ DECORATION(DECOR_POKEMON_CHAIR, _("POKéMON CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_POKEMON_CHAIR, DecorGfx_POKEMON_CHAIR),
+ DECORATION(DECOR_HEAVY_CHAIR, _("HEAVY CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_HEAVY_CHAIR, DecorGfx_HEAVY_CHAIR),
+ DECORATION(DECOR_PRETTY_CHAIR, _("PRETTY CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_PRETTY_CHAIR, DecorGfx_PRETTY_CHAIR),
+ DECORATION(DECOR_COMFORT_CHAIR, _("COMFORT CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_COMFORT_CHAIR, DecorGfx_COMFORT_CHAIR),
+ DECORATION(DECOR_RAGGED_CHAIR, _("RAGGED CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_RAGGED_CHAIR, DecorGfx_RAGGED_CHAIR),
+ DECORATION(DECOR_BRICK_CHAIR, _("BRICK CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_BRICK_CHAIR, DecorGfx_BRICK_CHAIR),
+ DECORATION(DECOR_CAMP_CHAIR, _("CAMP CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_CAMP_CHAIR, DecorGfx_CAMP_CHAIR),
+ DECORATION(DECOR_HARD_CHAIR, _("HARD CHAIR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_CHAIR, 2000, DecorDesc_HARD_CHAIR, DecorGfx_HARD_CHAIR),
+ DECORATION(DECOR_RED_PLANT, _("RED PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_PLANT, 3000, DecorDesc_RED_PLANT, DecorGfx_RED_PLANT),
+ DECORATION(DECOR_TROPICAL_PLANT, _("TROPICAL PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_PLANT, 3000, DecorDesc_TROPICAL_PLANT, DecorGfx_TROPICAL_PLANT),
+ DECORATION(DECOR_PRETTY_FLOWERS, _("PRETTY FLOWERS"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_PLANT, 3000, DecorDesc_PRETTY_FLOWERS, DecorGfx_PRETTY_FLOWERS),
+ DECORATION(DECOR_COLORFUL_PLANT, _("COLORFUL PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_2x2, DECORCAT_PLANT, 5000, DecorDesc_COLORFUL_PLANT, DecorGfx_COLORFUL_PLANT),
+ DECORATION(DECOR_BIG_PLANT, _("BIG PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_2x2, DECORCAT_PLANT, 5000, DecorDesc_BIG_PLANT, DecorGfx_BIG_PLANT),
+ DECORATION(DECOR_GORGEOUS_PLANT, _("GORGEOUS PLANT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_2x2, DECORCAT_PLANT, 5000, DecorDesc_GORGEOUS_PLANT, DecorGfx_GORGEOUS_PLANT),
+ DECORATION(DECOR_RED_BRICK, _("RED BRICK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 500, DecorDesc_RED_BRICK, DecorGfx_RED_BRICK),
+ DECORATION(DECOR_YELLOW_BRICK, _("YELLOW BRICK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 500, DecorDesc_YELLOW_BRICK, DecorGfx_YELLOW_BRICK),
+ DECORATION(DECOR_BLUE_BRICK, _("BLUE BRICK"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 500, DecorDesc_BLUE_BRICK, DecorGfx_BLUE_BRICK),
+ DECORATION(DECOR_RED_BALLOON, _("RED BALLOON"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_RED_BALLOON, DecorGfx_RED_BALLOON),
+ DECORATION(DECOR_BLUE_BALLOON, _("BLUE BALLOON"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_BLUE_BALLOON, DecorGfx_BLUE_BALLOON),
+ DECORATION(DECOR_YELLOW_BALLOON, _("YELLOW BALLOON"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_YELLOW_BALLOON, DecorGfx_YELLOW_BALLOON),
+ DECORATION(DECOR_RED_TENT, _("RED TENT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_ORNAMENT, 10000, DecorDesc_RED_TENT, DecorGfx_RED_TENT),
+ DECORATION(DECOR_BLUE_TENT, _("BLUE TENT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_ORNAMENT, 10000, DecorDesc_BLUE_TENT, DecorGfx_BLUE_TENT),
+ DECORATION(DECOR_SOLID_BOARD, _("SOLID BOARD"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 3000, DecorDesc_SOLID_BOARD, DecorGfx_SOLID_BOARD),
+ DECORATION(DECOR_SLIDE, _("SLIDE"), DECORPERM_PASS_FLOOR, DECORSHAPE_2x4, DECORCAT_ORNAMENT, 8000, DecorDesc_SLIDE, DecorGfx_SLIDE),
+ DECORATION(DECOR_FENCE_LENGTH, _("FENCE LENGTH"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_FENCE_LENGTH, DecorGfx_FENCE_LENGTH),
+ DECORATION(DECOR_FENCE_WIDTH, _("FENCE WIDTH"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 500, DecorDesc_FENCE_WIDTH, DecorGfx_FENCE_WIDTH),
+ DECORATION(DECOR_TIRE, _("TIRE"), DECORPERM_SOLID_FLOOR, DECORSHAPE_2x2, DECORCAT_ORNAMENT, 800, DecorDesc_TIRE, DecorGfx_TIRE),
+ DECORATION(DECOR_STAND, _("STAND"), DECORPERM_PASS_FLOOR, DECORSHAPE_4x2, DECORCAT_ORNAMENT, 7000, DecorDesc_STAND, DecorGfx_STAND),
+ DECORATION(DECOR_MUD_BALL, _("MUD BALL"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 200, DecorDesc_MUD_BALL, DecorGfx_MUD_BALL),
+ DECORATION(DECOR_BREAKABLE_DOOR, _("BREAKABLE DOOR"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 3000, DecorDesc_BREAKABLE_DOOR, DecorGfx_BREAKABLE_DOOR),
+ DECORATION(DECOR_SAND_ORNAMENT, _("SAND ORNAMENT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 3000, DecorDesc_SAND_ORNAMENT, DecorGfx_SAND_ORNAMENT),
+ DECORATION(DECOR_SILVER_SHIELD, _("SILVER SHIELD"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 0, DecorDesc_SILVER_SHIELD, DecorGfx_SILVER_SHIELD),
+ DECORATION(DECOR_GOLD_SHIELD, _("GOLD SHIELD"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 0, DecorDesc_GOLD_SHIELD, DecorGfx_GOLD_SHIELD),
+ DECORATION(DECOR_GLASS_ORNAMENT, _("GLASS ORNAMENT"), DECORPERM_BEHIND_FLOOR, DECORSHAPE_1x2, DECORCAT_ORNAMENT, 0, DecorDesc_GLASS_ORNAMENT, DecorGfx_GLASS_ORNAMENT),
+ DECORATION(DECOR_TV, _("TV"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 3000, DecorDesc_TV, DecorGfx_TV),
+ DECORATION(DECOR_ROUND_TV, _("ROUND TV"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 4000, DecorDesc_ROUND_TV, DecorGfx_ROUND_TV),
+ DECORATION(DECOR_CUTE_TV, _("CUTE TV"), DECORPERM_SOLID_FLOOR, DECORSHAPE_1x1, DECORCAT_ORNAMENT, 4000, DecorDesc_CUTE_TV, DecorGfx_CUTE_TV),
+ DECORATION(DECOR_GLITTER_MAT, _("GLITTER MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 2000, DecorDesc_GLITTER_MAT, DecorGfx_GLITTER_MAT),
+ DECORATION(DECOR_JUMP_MAT, _("JUMP MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 2000, DecorDesc_JUMP_MAT, DecorGfx_JUMP_MAT),
+ DECORATION(DECOR_SPIN_MAT, _("SPIN MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 2000, DecorDesc_SPIN_MAT, DecorGfx_SPIN_MAT),
+ DECORATION(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),
+ DECORATION(DECOR_D_NOTE_MAT, _("D NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_D_NOTE_MAT, DecorGfx_D_NOTE_MAT),
+ DECORATION(DECOR_E_NOTE_MAT, _("E NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_E_NOTE_MAT, DecorGfx_E_NOTE_MAT),
+ DECORATION(DECOR_F_NOTE_MAT, _("F NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_F_NOTE_MAT, DecorGfx_F_NOTE_MAT),
+ DECORATION(DECOR_G_NOTE_MAT, _("G NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_G_NOTE_MAT, DecorGfx_G_NOTE_MAT),
+ DECORATION(DECOR_A_NOTE_MAT, _("A NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_A_NOTE_MAT, DecorGfx_A_NOTE_MAT),
+ DECORATION(DECOR_B_NOTE_MAT, _("B NOTE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_1x1, DECORCAT_MAT, 500, DecorDesc_B_NOTE_MAT, DecorGfx_B_NOTE_MAT),
+ DECORATION(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),
+ DECORATION(DECOR_SURF_MAT, _("SURF MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_SURF_MAT, DecorGfx_SURF_MAT),
+ DECORATION(DECOR_THUNDER_MAT, _("THUNDER MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_THUNDER_MAT, DecorGfx_THUNDER_MAT),
+ DECORATION(DECOR_FIRE_BLAST_MAT, _("FIRE BLAST MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_FIRE_BLAST_MAT, DecorGfx_FIRE_BLAST_MAT),
+ DECORATION(DECOR_POWDER_SNOW_MAT, _("POWDER SNOW MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_POWDER_SNOW_MAT, DecorGfx_POWDER_SNOW_MAT),
+ DECORATION(DECOR_ATTRACT_MAT, _("ATTRACT MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_ATTRACT_MAT, DecorGfx_ATTRACT_MAT),
+ DECORATION(DECOR_FISSURE_MAT, _("FISSURE MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_FISSURE_MAT, DecorGfx_FISSURE_MAT),
+ DECORATION(DECOR_SPIKES_MAT, _("SPIKES MAT"), DECORPERM_PASS_FLOOR, DECORSHAPE_3x3, DECORCAT_MAT, 4000, DecorDesc_SPIKES_MAT, DecorGfx_SPIKES_MAT),
+ DECORATION(DECOR_BALL_POSTER, _("BALL POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_BALL_POSTER, DecorGfx_BALL_POSTER),
+ DECORATION(DECOR_GREEN_POSTER, _("GREEN POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_GREEN_POSTER, DecorGfx_GREEN_POSTER),
+ DECORATION(DECOR_RED_POSTER, _("RED POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_RED_POSTER, DecorGfx_RED_POSTER),
+ DECORATION(DECOR_BLUE_POSTER, _("BLUE POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_BLUE_POSTER, DecorGfx_BLUE_POSTER),
+ DECORATION(DECOR_CUTE_POSTER, _("CUTE POSTER"), DECORPERM_NA_WALL, DECORSHAPE_1x1, DECORCAT_POSTER, 1000, DecorDesc_CUTE_POSTER, DecorGfx_CUTE_POSTER),
+ DECORATION(DECOR_PIKA_POSTER, _("PIKA POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_PIKA_POSTER, DecorGfx_PIKA_POSTER),
+ DECORATION(DECOR_LONG_POSTER, _("LONG POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_LONG_POSTER, DecorGfx_LONG_POSTER),
+ DECORATION(DECOR_SEA_POSTER, _("SEA POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_SEA_POSTER, DecorGfx_SEA_POSTER),
+ DECORATION(DECOR_SKY_POSTER, _("SKY POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_SKY_POSTER, DecorGfx_SKY_POSTER),
+ DECORATION(DECOR_KISS_POSTER, _("KISS POSTER"), DECORPERM_NA_WALL, DECORSHAPE_2x1, DECORCAT_POSTER, 1500, DecorDesc_KISS_POSTER, DecorGfx_KISS_POSTER),
+ DECORATION(DECOR_PICHU_DOLL, _("PICHU DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_PICHU_DOLL, DecorGfx_PICHU_DOLL),
+ DECORATION(DECOR_PIKACHU_DOLL, _("PIKACHU DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_PIKACHU_DOLL, DecorGfx_PIKACHU_DOLL),
+ DECORATION(DECOR_MARILL_DOLL, _("MARILL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_MARILL_DOLL, DecorGfx_MARILL_DOLL),
+ DECORATION(DECOR_TOGEPI_DOLL, _("TOGEPI DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TOGEPI_DOLL, DecorGfx_TOGEPI_DOLL),
+ DECORATION(DECOR_CYNDAQUIL_DOLL, _("CYNDAQUIL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_CYNDAQUIL_DOLL, DecorGfx_CYNDAQUIL_DOLL),
+ DECORATION(DECOR_CHIKORITA_DOLL, _("CHIKORITA DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_CHIKORITA_DOLL, DecorGfx_CHIKORITA_DOLL),
+ DECORATION(DECOR_TOTODILE_DOLL, _("TOTODILE DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TOTODILE_DOLL, DecorGfx_TOTODILE_DOLL),
+ DECORATION(DECOR_JIGGLYPUFF_DOLL, _("JIGGLYPUFF DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_JIGGLYPUFF_DOLL, DecorGfx_JIGGLYPUFF_DOLL),
+ DECORATION(DECOR_MEOWTH_DOLL, _("MEOWTH DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_MEOWTH_DOLL, DecorGfx_MEOWTH_DOLL),
+ DECORATION(DECOR_CLEFAIRY_DOLL, _("CLEFAIRY DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_CLEFAIRY_DOLL, DecorGfx_CLEFAIRY_DOLL),
+ DECORATION(DECOR_DITTO_DOLL, _("DITTO DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_DITTO_DOLL, DecorGfx_DITTO_DOLL),
+ DECORATION(DECOR_SMOOCHUM_DOLL, _("SMOOCHUM DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SMOOCHUM_DOLL, DecorGfx_SMOOCHUM_DOLL),
+ DECORATION(DECOR_TREECKO_DOLL, _("TREECKO DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TREECKO_DOLL, DecorGfx_TREECKO_DOLL),
+ DECORATION(DECOR_TORCHIC_DOLL, _("TORCHIC DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_TORCHIC_DOLL, DecorGfx_TORCHIC_DOLL),
+ DECORATION(DECOR_MUDKIP_DOLL, _("MUDKIP DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_MUDKIP_DOLL, DecorGfx_MUDKIP_DOLL),
+ DECORATION(DECOR_DUSKULL_DOLL, _("DUSKULL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_DUSKULL_DOLL, DecorGfx_DUSKULL_DOLL),
+ DECORATION(DECOR_WYNAUT_DOLL, _("WYNAUT DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_WYNAUT_DOLL, DecorGfx_WYNAUT_DOLL),
+ DECORATION(DECOR_BALTOY_DOLL, _("BALTOY DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_BALTOY_DOLL, DecorGfx_BALTOY_DOLL),
+ DECORATION(DECOR_KECLEON_DOLL, _("KECLEON DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_KECLEON_DOLL, DecorGfx_KECLEON_DOLL),
+ DECORATION(DECOR_AZURILL_DOLL, _("AZURILL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_AZURILL_DOLL, DecorGfx_AZURILL_DOLL),
+ DECORATION(DECOR_SKITTY_DOLL, _("SKITTY DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SKITTY_DOLL, DecorGfx_SKITTY_DOLL),
+ DECORATION(DECOR_SWABLU_DOLL, _("SWABLU DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SWABLU_DOLL, DecorGfx_SWABLU_DOLL),
+ DECORATION(DECOR_GULPIN_DOLL, _("GULPIN DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_GULPIN_DOLL, DecorGfx_GULPIN_DOLL),
+ DECORATION(DECOR_LOTAD_DOLL, _("LOTAD DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_LOTAD_DOLL, DecorGfx_LOTAD_DOLL),
+ DECORATION(DECOR_SEEDOT_DOLL, _("SEEDOT DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, DecorDesc_SEEDOT_DOLL, DecorGfx_SEEDOT_DOLL),
+ DECORATION(DECOR_PIKA_CUSHION, _("PIKA CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_PIKA_CUSHION, DecorGfx_PIKA_CUSHION),
+ DECORATION(DECOR_ROUND_CUSHION, _("ROUND CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_ROUND_CUSHION, DecorGfx_ROUND_CUSHION),
+ DECORATION(DECOR_KISS_CUSHION, _("KISS CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_KISS_CUSHION, DecorGfx_KISS_CUSHION),
+ DECORATION(DECOR_ZIGZAG_CUSHION, _("ZIGZAG CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_ZIGZAG_CUSHION, DecorGfx_ZIGZAG_CUSHION),
+ DECORATION(DECOR_SPIN_CUSHION, _("SPIN CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_SPIN_CUSHION, DecorGfx_SPIN_CUSHION),
+ DECORATION(DECOR_DIAMOND_CUSHION, _("DIAMOND CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_DIAMOND_CUSHION, DecorGfx_DIAMOND_CUSHION),
+ DECORATION(DECOR_BALL_CUSHION, _("BALL CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_BALL_CUSHION, DecorGfx_BALL_CUSHION),
+ DECORATION(DECOR_GRASS_CUSHION, _("GRASS CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_GRASS_CUSHION, DecorGfx_GRASS_CUSHION),
+ DECORATION(DECOR_FIRE_CUSHION, _("FIRE CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_FIRE_CUSHION, DecorGfx_FIRE_CUSHION),
+ DECORATION(DECOR_WATER_CUSHION, _("WATER CUSHION"), DECORPERM_SOLID_MAT, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, DecorDesc_WATER_CUSHION, DecorGfx_WATER_CUSHION),
+ DECORATION(DECOR_SNORLAX_DOLL, _("SNORLAX DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_SNORLAX_DOLL, DecorGfx_SNORLAX_DOLL),
+ DECORATION(DECOR_RHYDON_DOLL, _("RHYDON DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_RHYDON_DOLL, DecorGfx_RHYDON_DOLL),
+ DECORATION(DECOR_LAPRAS_DOLL, _("LAPRAS DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_LAPRAS_DOLL, DecorGfx_LAPRAS_DOLL),
+ DECORATION(DECOR_VENUSAUR_DOLL, _("VENUSAUR DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_VENUSAUR_DOLL, DecorGfx_VENUSAUR_DOLL),
+ DECORATION(DECOR_CHARIZARD_DOLL, _("CHARIZARD DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_CHARIZARD_DOLL, DecorGfx_CHARIZARD_DOLL),
+ DECORATION(DECOR_BLASTOISE_DOLL, _("BLASTOISE DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_BLASTOISE_DOLL, DecorGfx_BLASTOISE_DOLL),
+ DECORATION(DECOR_WAILMER_DOLL, _("WAILMER DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_WAILMER_DOLL, DecorGfx_WAILMER_DOLL),
+ DECORATION(DECOR_REGIROCK_DOLL, _("REGIROCK DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_REGIROCK_DOLL, DecorGfx_REGIROCK_DOLL),
+ DECORATION(DECOR_REGICE_DOLL, _("REGICE DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_REGICE_DOLL, DecorGfx_REGICE_DOLL),
+ DECORATION(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[] = {
+ MENUACTION2(SecretBaseText_Decorate, sub_80FF160),
+ MENUACTION2(SecretBaseText_PutAway, sub_8100A0C),
+ MENUACTION2(SecretBaseText_Toss, sub_8101700),
+ MENUACTION2(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[] = {
+ MENUACTION3(sub_80FF5BC, sub_80FF058),
+ MENUACTION3(sub_81017A0, sub_80FF058),
+ MENUACTION3(sub_81017A0, sub_80FF058),
+ MENUACTION3(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[] = {
+ STRUCT_803EC860(Unknown_3EC660, Unknown_3EC6F0, Unknown_3EC7A8, 0x4),
+ STRUCT_803EC860(Unknown_3EC68C, Unknown_3EC6F4, Unknown_3EC7AC, 0x8),
+ STRUCT_803EC860(Unknown_3EC664, Unknown_3EC6FC, Unknown_3EC7B4, 0xc),
+ STRUCT_803EC860(Unknown_3EC694, Unknown_3EC708, Unknown_3EC7C0, 0x20),
+ STRUCT_803EC860(Unknown_3EC670, Unknown_3EC728, Unknown_3EC7E0, 0x10),
+ STRUCT_803EC860(Unknown_3EC68C, Unknown_3EC738, Unknown_3EC7F0, 0x8),
+ STRUCT_803EC860(Unknown_3EC680, Unknown_3EC740, Unknown_3EC7F8, 0xc),
+ STRUCT_803EC860(Unknown_3EC694, Unknown_3EC74C, Unknown_3EC804, 0x20),
+ STRUCT_803EC860(Unknown_3EC6B4, Unknown_3EC76C, Unknown_3EC824, 0x24),
+ STRUCT_803EC860(Unknown_3EC6D8, Unknown_3EC790, Unknown_3EC848, 0x18)
+};
+
+const struct UnkStruct_083EC900 gUnknown_083EC900[] = {
+ DECOSPRITETEMPLATE(0, 1, 0x78, 0x4e),
+ DECOSPRITETEMPLATE(1, 2, 0x80, 0x4e),
+ DECOSPRITETEMPLATE(1, 3, 0x90, 0x56),
+ DECOSPRITETEMPLATE(1, 3, 0x90, 0x46),
+ DECOSPRITETEMPLATE(0, 2, 0x80, 0x46),
+ DECOSPRITETEMPLATE(2, 2, 0x78, 0x46),
+ DECOSPRITETEMPLATE(2, 3, 0x80, 0x56),
+ DECOSPRITETEMPLATE(2, 3, 0x80, 0x36),
+ DECOSPRITETEMPLATE(0, 3, 0x90, 0x46),
+ DECOSPRITETEMPLATE(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)
{
@@ -130,7 +1658,7 @@ void sub_80FE428(u8 taskId)
gTasks[taskId].func = Task_DecorationPCProcessMenuInput;
}
-void sub_80FE470(u8 decoCat, u8 a1, u8 a2, u8 palIdx)
+void sub_80FE470(u8 decoCat, u8 left, u8 top, u8 palIdx) // PrintDecorationCategorySelectionMenuString
{
u8 *strptr;
u8 v0;
@@ -149,21 +1677,21 @@ void sub_80FE470(u8 decoCat, u8 a1, u8 a2, u8 palIdx)
strptr[1] = 5;
strptr[2] = v0;
strptr[3] = EOS;
- MenuPrint(gStringVar4, a1, a2);
+ MenuPrint(gStringVar4, left, top);
}
-void sub_80FE528(u8 taskId)
+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 != DECOCAT_DOLL && decoCat != DECOCAT_CUSHION)
+ if (ewram_1f000.isPlayerRoom == 1 && gTasks[taskId].data[11] == 0 && decoCat != DECORCAT_DOLL && decoCat != DECORCAT_CUSHION)
{
- sub_80FE470(decoCat, 1, 2 * decoCat + 1, 13);
+ sub_80FE470(decoCat, 1, 2 * decoCat + 1, 13); // Selectable
} else
{
- sub_80FE470(decoCat, 1, 2 * decoCat + 1, 255);
+ sub_80FE470(decoCat, 1, 2 * decoCat + 1, 255); // Unselectable
}
}
MenuPrint(gUnknownText_Exit, 1, 17);
@@ -388,7 +1916,7 @@ void sub_80FEABC(u8 taskId, u8 dummy1)
}
if (gUnknown_020388D0[i])
{
- if (ewram_1f000.isPlayerRoom == 1 && gUnknown_020388F6 != DECOCAT_DOLL && gUnknown_020388F6 != DECOCAT_CUSHION && gTasks[taskId].data[11] == 0)
+ 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);
@@ -656,14 +2184,14 @@ void sub_80FF1EC(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decIdx)
{
x = mapX + j;
behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decIdx].tiles[i * decWidth + j]);
- if (sub_8057288(behavior) == 1 || (gDecorations[decIdx].decor_field_11 != 1 && (behavior >> 12)))
+ if (sub_8057288(behavior) == 1 || (gDecorations[decIdx].permission != DECORPERM_PASS_FLOOR && (behavior >> 12)))
{
flags = 0xc00;
} else
{
flags = 0x000;
}
- if (gDecorations[decIdx].decor_field_11 != 3 && sub_80572B0(MapGridGetMetatileBehaviorAt(x, decBottom)) == 1)
+ if (gDecorations[decIdx].permission != DECORPERM_NA_WALL && sub_80572B0(MapGridGetMetatileBehaviorAt(x, decBottom)) == 1)
{
v0 = 1;
} else
@@ -684,36 +2212,36 @@ void sub_80FF1EC(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decIdx)
void sub_80FF394(u16 mapX, u16 mapY, u16 decIdx)
{
- switch (gDecorations[decIdx].decor_field_12)
+ switch (gDecorations[decIdx].shape)
{
- case 0:
+ case DECORSHAPE_1x1:
sub_80FF1EC(mapX, mapY, 1, 1, decIdx);
break;
- case 1:
+ case DECORSHAPE_2x1:
sub_80FF1EC(mapX, mapY, 2, 1, decIdx);
break;
- case 2:
+ case DECORSHAPE_3x1: // unused
sub_80FF1EC(mapX, mapY, 3, 1, decIdx);
break;
- case 3:
+ case DECORSHAPE_4x2:
sub_80FF1EC(mapX, mapY, 4, 2, decIdx);
break;
- case 4:
+ case DECORSHAPE_2x2:
sub_80FF1EC(mapX, mapY, 2, 2, decIdx);
break;
- case 5:
+ case DECORSHAPE_1x2:
sub_80FF1EC(mapX, mapY, 1, 2, decIdx);
break;
- case 6:
+ case DECORSHAPE_1x3: // unused
sub_80FF1EC(mapX, mapY, 1, 3, decIdx);
break;
- case 7:
+ case DECORSHAPE_2x4:
sub_80FF1EC(mapX, mapY, 2, 4, decIdx);
break;
- case 8:
+ case DECORSHAPE_3x3:
sub_80FF1EC(mapX, mapY, 3, 3, decIdx);
break;
- case 9:
+ case DECORSHAPE_3x2:
sub_80FF1EC(mapX, mapY, 3, 2, decIdx);
break;
}
@@ -762,7 +2290,7 @@ bool8 sub_80FF58C/*IsThereRoomForMoreDecorations*/(void)
void sub_80FF5BC(u8 taskId)
{
- if (ewram_1f000.isPlayerRoom == 1 && gUnknown_020388F6 != DECOCAT_DOLL && gUnknown_020388F6 != DECOCAT_CUSHION)
+ if (ewram_1f000.isPlayerRoom == 1 && gUnknown_020388F6 != DECORCAT_DOLL && gUnknown_020388F6 != DECORCAT_CUSHION)
{
sub_80FEF74();
sub_80FED1C();
@@ -836,19 +2364,19 @@ void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 * unk_0203
sub_80FED1C();
sub_81006D0(unk_02038900);
unk_02038900->decoration = &gDecorations[decoIdx];
- if (gDecorations[decoIdx].decor_field_11 != 4)
+ if (gDecorations[decoIdx].permission != DECORPERM_SOLID_MAT)
{
sub_81008BC(unk_02038900);
- sub_8100930(unk_02038900->decoration->decor_field_12);
+ sub_8100930(unk_02038900->decoration->shape);
sub_8100874(unk_02038900);
- sub_810070C(unk_02038900->unk_884, ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles + 8 * unk_02038900->decoration->tiles[0])[7] >> 12);
+ 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->decor_field_12].unk_2, gUnknown_083EC900[unk_02038900->decoration->decor_field_12].unk_3, 0);
+ 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->decor_field_12].unk_2, gUnknown_083EC900[unk_02038900->decoration->decor_field_12].unk_3, 1);
+ 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;
}
}
@@ -856,8 +2384,8 @@ void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 * unk_0203
void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct UnkStruct_02038900 *unk_02038900)
{
u8 v0;
- v0 = 16 * (u8)gTasks[taskId].data[5] + gUnknown_083EC900[unk_02038900->decoration->decor_field_12].unk_2 - 8 * ((u8)gTasks[taskId].data[5] - 1);
- if (unk_02038900->decoration->decor_field_12 == 2 || unk_02038900->decoration->decor_field_12 == 8 || unk_02038900->decoration->decor_field_12 == 9)
+ 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;
}
@@ -875,46 +2403,46 @@ void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct UnkStruct_02038900 *un
void sub_80FF960(u8 taskId)
{
- switch (gDecorations[gUnknown_020388D0[gUnknown_020388F5]].decor_field_12)
+ switch (gDecorations[gUnknown_020388D0[gUnknown_020388F5]].shape)
{
- case 0:
+ case DECORSHAPE_1x1:
gTasks[taskId].data[5] = 1;
gTasks[taskId].data[6] = 1;
break;
- case 1:
+ case DECORSHAPE_2x1:
gTasks[taskId].data[5] = 2;
gTasks[taskId].data[6] = 1;
break;
- case 2:
+ case DECORSHAPE_3x1:
gTasks[taskId].data[5] = 3;
gTasks[taskId].data[6] = 1;
break;
- case 3:
+ case DECORSHAPE_4x2:
gTasks[taskId].data[5] = 4;
gTasks[taskId].data[6] = 2;
break;
- case 4:
+ case DECORSHAPE_2x2:
gTasks[taskId].data[5] = 2;
gTasks[taskId].data[6] = 2;
break;
- case 5:
+ case DECORSHAPE_1x2:
gTasks[taskId].data[5] = 1;
gTasks[taskId].data[6] = 2;
break;
- case 6:
+ case DECORSHAPE_1x3:
gTasks[taskId].data[5] = 1;
gTasks[taskId].data[6] = 3;
gTasks[taskId].data[1]++;
break;
- case 7:
+ case DECORSHAPE_2x4:
gTasks[taskId].data[5] = 2;
gTasks[taskId].data[6] = 4;
break;
- case 8:
+ case DECORSHAPE_3x3:
gTasks[taskId].data[5] = 3;
gTasks[taskId].data[6] = 3;
break;
- case 9:
+ case DECORSHAPE_3x2:
gTasks[taskId].data[5] = 3;
gTasks[taskId].data[6] = 2;
break;
@@ -957,7 +2485,7 @@ bool8 sub_80FFB94(u8 taskId, s16 x, s16 y, u16 decoId)
return TRUE;
}
-bool8 sub_80FFBDC(u16 a0, struct Decoration *decoration)
+bool8 sub_80FFBDC(u16 a0, const struct Decoration *decoration)
{
if (sub_8057274(a0) != 1)
{
@@ -973,24 +2501,24 @@ bool8 sub_80FFBDC(u16 a0, struct Decoration *decoration)
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, struct Decoration *decoration)
+bool8 sub_80FFC24(u8 taskId, const struct Decoration *decoration)
{
u8 i;
u8 j;
u8 behaviorAt;
u16 behaviorBy;
- u8 fieldObjectId;
u8 mapY;
u8 mapX;
s16 curY;
s16 curX;
mapY = gTasks[taskId].data[6];
mapX = gTasks[taskId].data[5];
- switch (decoration->decor_field_11)
+ switch (decoration->permission)
{
- case 0:
- case 1:
+ case DECORPERM_SOLID_FLOOR:
+ case DECORPERM_PASS_FLOOR:
for (i=0; i<mapY; i++)
{
curY = gTasks[taskId].data[1] - i;
@@ -998,7 +2526,7 @@ bool8 sub_80FFC24(u8 taskId, struct Decoration *decoration)
{
curX = gTasks[taskId].data[0] + j;
behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
- behaviorBy = 0xf000 & GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]);
+ behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000;
if (!sub_80FFBDC(behaviorAt, decoration))
{
return FALSE;
@@ -1007,15 +2535,15 @@ bool8 sub_80FFC24(u8 taskId, struct Decoration *decoration)
{
return FALSE;
}
- fieldObjectId = GetFieldObjectIdByXYZ(curX, curY, 0);
- if (fieldObjectId != 0 && fieldObjectId != 16)
+ behaviorAt = GetFieldObjectIdByXYZ(curX, curY, 0);
+ if (behaviorAt != 0 && behaviorAt != 16)
{
return FALSE;
}
}
}
break;
- case 2:
+ case DECORPERM_BEHIND_FLOOR:
for (i=0; i<mapY-1; i++)
{
curY = gTasks[taskId].data[1] - i;
@@ -1023,7 +2551,7 @@ bool8 sub_80FFC24(u8 taskId, struct Decoration *decoration)
{
curX = gTasks[taskId].data[0] + j;
behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
- behaviorBy = 0xf000 & GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - i) * mapX + j]);
+ behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000;
if (!sub_805729C(behaviorAt) && !sub_80FFB6C(behaviorAt, behaviorBy))
{
return FALSE;
@@ -1032,8 +2560,7 @@ bool8 sub_80FFC24(u8 taskId, struct Decoration *decoration)
{
return FALSE;
}
- fieldObjectId = GetFieldObjectIdByXYZ(curX, curY, 0);
- if (fieldObjectId != 16)
+ if (GetFieldObjectIdByXYZ(curX, curY, 0) != 16)
{
return FALSE;
}
@@ -1044,7 +2571,7 @@ bool8 sub_80FFC24(u8 taskId, struct Decoration *decoration)
{
curX = gTasks[taskId].data[0] + j;
behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
- behaviorBy = 0xf000 & GetBehaviorByMetatileId(0x200 + decoration->tiles[j]);
+ behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & 0xf000;
if (!sub_805729C(behaviorAt) && !sub_80572B0(behaviorAt))
{
return FALSE;
@@ -1053,34 +2580,38 @@ bool8 sub_80FFC24(u8 taskId, struct Decoration *decoration)
{
return FALSE;
}
- fieldObjectId = GetFieldObjectIdByXYZ(curX, curY, 0);
- if (fieldObjectId != 0 && fieldObjectId != 16)
+ behaviorAt = GetFieldObjectIdByXYZ(curX, curY, 0);
+ if (behaviorAt != 0 && behaviorAt != 16)
{
return FALSE;
}
}
break;
- case 3:
+ 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)) || MapGridGetMetatileIdAt(curX, curY) == 0x28c)
+ if (!sub_80572B0(MapGridGetMetatileBehaviorAt(curX, curY)))
+ {
+ return FALSE;
+ }
+ if (MapGridGetMetatileIdAt(curX, curY + 1) == 0x28c)
{
return FALSE;
}
}
}
break;
- case 4:
+ 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->decor_field_12 == 5)
+ if (decoration->shape == DECORSHAPE_1x2)
{
if (!sub_80572EC(behaviorAt))
{
@@ -1094,8 +2625,7 @@ bool8 sub_80FFC24(u8 taskId, struct Decoration *decoration)
return FALSE;
}
}
- fieldObjectId = GetFieldObjectIdByXYZ(curX, curY, 0);
- if (fieldObjectId != 16)
+ if (GetFieldObjectIdByXYZ(curX, curY, 0) != 16)
{
return FALSE;
}
@@ -1106,7 +2636,7 @@ bool8 sub_80FFC24(u8 taskId, struct Decoration *decoration)
}
#else
__attribute__((naked))
-bool8 sub_80FFC24(u8 taskId, struct Decoration *decoration)
+bool8 sub_80FFC24(u8 taskId, const struct Decoration *decoration)
{
asm(".syntax unified\n"
"\tpush {r4-r7,lr}\n"
@@ -1661,7 +3191,7 @@ void sub_81000C4(u8 taskId)
{
MenuZeroFillWindowRect(0, 0, 29, 19);
sub_8100174(taskId);
- if (gDecorations[gUnknown_020388D0[gUnknown_020388F5]].decor_field_11 != 4)
+ 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
@@ -1812,11 +3342,11 @@ void sub_8100494(u8 taskId)
{
if (gTasks[taskId].data[10] == 1)
{
- gUnknown_083EC96C[gTasks[taskId].data[12]][0](taskId);
+ gUnknown_083EC96C[gTasks[taskId].data[12]].yesFunc(taskId);
return;
} else if (gTasks[taskId].data[10] == 2)
{
- gUnknown_083EC96C[gTasks[taskId].data[12]][1](taskId);
+ gUnknown_083EC96C[gTasks[taskId].data[12]].noFunc(taskId);
return;
}
if ((gMain.heldKeys & DPAD_ANY) == DPAD_UP)
@@ -1891,11 +3421,11 @@ void sub_81006D0(struct UnkStruct_02038900 *unk_02038900)
u16 i;
for (i=0; i<0x800; i++)
{
- unk_02038900->unk_084[i] = 0;
+ unk_02038900->image[i] = 0;
}
for (i=0; i<0x40; i++)
{
- unk_02038900->unk_004[i] = 0;
+ unk_02038900->tiles[i] = 0;
}
}
@@ -1961,7 +3491,7 @@ void sub_8100874(struct UnkStruct_02038900 *unk_02038900)
{
u16 i;
for (i=0; i<0x40; i++)
- sub_8100740(&unk_02038900->unk_084[i * 32], unk_02038900->unk_004[i]);
+ sub_8100740(&unk_02038900->image[i * 32], unk_02038900->tiles[i]);
}
u16 sub_810089C(u16 a0)
@@ -1972,29 +3502,25 @@ u16 sub_810089C(u16 a0)
void sub_81008BC(struct UnkStruct_02038900 *unk_02038900)
{
u8 i;
- u8 idx;
- idx = unk_02038900->decoration->decor_field_12;
- for (i=0; i<gUnknown_083EC860[idx].size; i++)
+ u8 shape;
+ shape = unk_02038900->decoration->shape;
+ for (i=0; i<gUnknown_083EC860[shape].size; i++)
{
- unk_02038900->unk_004[gUnknown_083EC860[idx].var0[i]] = sub_810089C(unk_02038900->decoration->tiles[gUnknown_083EC860[idx].var4[i]] * 8 + gUnknown_083EC860[idx].var8[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 unk12)
-/*
- * This function sets an OAM object not directly referenced anywhere else
- * in the source.
- */
+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[unk12].unk_0;
+ gUnknown_020391AC.shape = gUnknown_083EC900[decoShape].shape;
gUnknown_020391AC.x = 0;
gUnknown_020391AC.matrixNum = 0;
- gUnknown_020391AC.size = gUnknown_083EC900[unk12].unk_1;
+ gUnknown_020391AC.size = gUnknown_083EC900[decoShape].size;
gUnknown_020391AC.tileNum = 0;
gUnknown_020391AC.priority = 1;
gUnknown_020391AC.paletteNum = 0;
@@ -2056,10 +3582,10 @@ void sub_8100A7C(void)
if (gSpecialVar_0x8004 == gUnknown_02039234)
{
gScriptResult = 1;
- } else if (gDecorations[ewram_1f000.items[gUnknown_020391B4[gSpecialVar_0x8004].var00]].decor_field_11 == 4)
+ } else if (gDecorations[ewram_1f000.items[gUnknown_020391B4[gSpecialVar_0x8004].decorId]].permission == DECORPERM_SOLID_MAT)
{
- gSpecialVar_0x8005 = gUnknown_020391B4[gSpecialVar_0x8004].var04;
- sub_8100A60(gUnknown_020391B4[gSpecialVar_0x8004].var00);
+ 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)
@@ -2091,26 +3617,26 @@ void sub_8100B6C(void)
u8 k;
u8 x;
u8 y;
- u8 unk11;
+ u8 permission;
for (i=0; i<gUnknown_02039234; i++)
{
- unk11 = gDecorations[ewram_1f000.items[gUnknown_020391B4[i].var00]].decor_field_11;
- x = ewram_1f000.pos[gUnknown_020391B4[i].var00] >> 4;
- y = ewram_1f000.pos[gUnknown_020391B4[i].var00] & 0xf;
- if (unk11 != 4)
+ 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].var00] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(x + 7, y + 7) == 0x28c)
+ if (ewram_1f000.items[gUnknown_020391B4[i].decorId] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(x + 7, y + 7) == 0x28c)
{
- gUnknown_020391B4[i].var02++;
+ gUnknown_020391B4[i].height++;
}
- for (j=0; j<gUnknown_020391B4[i].var02; j++)
+ 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].var00);
+ sub_8100A60(gUnknown_020391B4[i].decorId);
}
}
}
@@ -2275,46 +3801,46 @@ void sub_81010F0(u8 taskId)
void sub_8101118(u8 decorIdx, struct UnkStruct_020391B4 *unk_020391B4)
{
- if (gDecorations[decorIdx].decor_field_12 == 0)
+ if (gDecorations[decorIdx].shape == DECORSHAPE_1x1)
{
unk_020391B4->width = 1;
- unk_020391B4->var02 = 1;
- } else if (gDecorations[decorIdx].decor_field_12 == 1)
+ unk_020391B4->height = 1;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_2x1)
{
unk_020391B4->width = 2;
- unk_020391B4->var02 = 1;
- } else if (gDecorations[decorIdx].decor_field_12 == 2)
+ unk_020391B4->height = 1;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_3x1)
{
unk_020391B4->width = 3;
- unk_020391B4->var02 = 1;
- } else if (gDecorations[decorIdx].decor_field_12 == 3)
+ unk_020391B4->height = 1;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_4x2)
{
unk_020391B4->width = 4;
- unk_020391B4->var02 = 2;
- } else if (gDecorations[decorIdx].decor_field_12 == 4)
+ unk_020391B4->height = 2;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_2x2)
{
unk_020391B4->width = 2;
- unk_020391B4->var02 = 2;
- } else if (gDecorations[decorIdx].decor_field_12 == 5)
+ unk_020391B4->height = 2;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_1x2)
{
unk_020391B4->width = 1;
- unk_020391B4->var02 = 2;
- } else if (gDecorations[decorIdx].decor_field_12 == 6)
+ unk_020391B4->height = 2;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_1x3)
{
unk_020391B4->width = 1;
- unk_020391B4->var02 = 3;
- } else if (gDecorations[decorIdx].decor_field_12 == 7)
+ unk_020391B4->height = 3;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_2x4)
{
unk_020391B4->width = 2;
- unk_020391B4->var02 = 4;
- } else if (gDecorations[decorIdx].decor_field_12 == 8)
+ unk_020391B4->height = 4;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_3x3)
{
unk_020391B4->width = 3;
- unk_020391B4->var02 = 3;
- } else if (gDecorations[decorIdx].decor_field_12 == 9)
+ unk_020391B4->height = 3;
+ } else if (gDecorations[decorIdx].shape == DECORSHAPE_3x2)
{
unk_020391B4->width = 3;
- unk_020391B4->var02 = 2;
+ unk_020391B4->height = 2;
}
}
@@ -2338,9 +3864,9 @@ bool8 sub_8101200(u8 taskId, u8 decorIdx, struct UnkStruct_020391B4 *unk_020391B
yOff = ewram_1f000.pos[decorIdx] & 0xf;
if (ewram_1f000.items[decorIdx] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(xOff + 7, yOff + 7) == 0x28c)
{
- unk_020391B4->var02--;
+ unk_020391B4->height--;
}
- if (x >= xOff && x < xOff + unk_020391B4->width && y > yOff - unk_020391B4->var02 && y <= yOff)
+ 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;
@@ -2353,13 +3879,13 @@ void sub_81012A0(void)
u8 xOff;
u8 yOff;
u16 i;
- xOff = ewram_1f000.pos[gUnknown_020391B4[gUnknown_02039234].var00] >> 4;
- yOff = ewram_1f000.pos[gUnknown_020391B4[gUnknown_02039234].var00] & 0xf;
+ 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].var04 = gSaveBlock1.mapObjectTemplates[i].flagId;
+ gUnknown_020391B4[gUnknown_02039234].flagId = gSaveBlock1.mapObjectTemplates[i].flagId;
break;
}
}
@@ -2372,12 +3898,12 @@ bool8 sub_8101340(u8 taskId)
{
if (ewram_1f000.items[i] != 0)
{
- if (gDecorations[ewram_1f000.items[i]].decor_field_11 == 4)
+ 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->var00 = i;
+ gUnknown_020391B4->decorId = i;
sub_81012A0();
gUnknown_02039234 = 1;
return TRUE;
@@ -2399,9 +3925,9 @@ void sub_81013B8(u8 a0, u8 a1, u8 a2, u8 a3)
decorIdx = ewram_1f000.items[i];
xOff = ewram_1f000.pos[i] >> 4;
yOff = ewram_1f000.pos[i] & 0xf;
- if (decorIdx != 0 && gDecorations[decorIdx].decor_field_11 == 4 && a0 <= xOff && a1 <= yOff && a2 >= xOff && a3 >= yOff)
+ if (decorIdx != 0 && gDecorations[decorIdx].permission == DECORPERM_SOLID_MAT && a0 <= xOff && a1 <= yOff && a2 >= xOff && a3 >= yOff)
{
- gUnknown_020391B4[gUnknown_02039234].var00 = i;
+ gUnknown_020391B4[gUnknown_02039234].decorId = i;
sub_81012A0();
gUnknown_02039234++;
}
@@ -2419,28 +3945,28 @@ void sub_8101460(u8 taskId)
{
for (i=0; i<ewram_1f000.size; i++)
{
- if (ewram_1f000.items[i] != 0) // This is using the wrong register!
+ if (ewram_1f000.items[i] == 0) // This is using the wrong register!
{
- sub_8101118(ewram_1f000.items[i], gUnknown_020391B4);
- if (sub_8101200(taskId, i, gUnknown_020391B4) == TRUE)
- {
- gUnknown_020391B4[0].var00 = i;
- gUnknown_02039234++;
- break;
- }
+ 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].var00] >> 4;
- yOff = ewram_1f000.pos[gUnknown_020391B4[0].var00] & 0xf;
- sub_81013B8(xOff, yOff - gUnknown_020391B4[0].var02 + 1, xOff + gUnknown_020391B4[0].width - 1, yOff);
+ 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"
diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c
index c3dfdb2a8..6463f50dc 100755
--- a/src/decoration_inventory.c
+++ b/src/decoration_inventory.c
@@ -56,7 +56,7 @@ bool8 sub_8133FE4(u8 decorIdx)
{
u8 invIdx;
u8 i;
- invIdx = gDecorations[decorIdx].decor_field_13;
+ invIdx = gDecorations[decorIdx].category;
for (i=0; i<gDecorationInventories[invIdx].size; i++)
{
if (gDecorationInventories[invIdx].items[i] == decorIdx)
@@ -75,7 +75,7 @@ bool8 IsThereStorageSpaceForDecoration(u8 decorIdx)
{
return FALSE;
}
- invIdx = gDecorations[decorIdx].decor_field_13;
+ invIdx = gDecorations[decorIdx].category;
invSlot = sub_8133F9C(invIdx);
if (invSlot == -1)
{
@@ -92,7 +92,7 @@ bool8 sub_8134074(u8 decorIdx)
{
return FALSE;
}
- invIdx = gDecorations[decorIdx].decor_field_13;
+ invIdx = gDecorations[decorIdx].category;
if (sub_8133F9C(invIdx) == -1)
{
return FALSE;
@@ -109,9 +109,9 @@ bool8 sub_81340A8(u8 decorIdx)
{
return FALSE;
}
- for (i=0; i<gDecorationInventories[gDecorations[decorIdx].decor_field_13].size; i++)
+ for (i=0; i<gDecorationInventories[gDecorations[decorIdx].category].size; i++)
{
- invIdx = gDecorations[decorIdx].decor_field_13;
+ invIdx = gDecorations[decorIdx].category;
if (gDecorationInventories[invIdx].items[i] == decorIdx)
{
gDecorationInventories[invIdx].items[i] = DECOR_NONE;
diff --git a/src/menu.c b/src/menu.c
index 61eaebb6f..3acac88a0 100755
--- 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 100755
--- 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.