diff options
| -rw-r--r-- | constants/deco_constants.asm | 12 | ||||
| -rwxr-xr-x | engine/decorations.asm | 1437 | ||||
| -rwxr-xr-x | engine/trainer_card.asm | 611 | ||||
| -rw-r--r-- | event/buena.asm | 2 | ||||
| -rwxr-xr-x | event/elevator.asm | 2 | ||||
| -rw-r--r-- | event/kurt.asm | 2 | ||||
| -rw-r--r-- | home.asm | 4 | ||||
| -rw-r--r-- | main.asm | 2116 | 
8 files changed, 2119 insertions, 2067 deletions
| diff --git a/constants/deco_constants.asm b/constants/deco_constants.asm index 6f15b5f35..d48f0b997 100644 --- a/constants/deco_constants.asm +++ b/constants/deco_constants.asm @@ -52,12 +52,12 @@ const_value = 1  	const PUT_AWAY_ORNAMENT  const_value = 1 -	const DECO_01 +	const DECO_BEDS  	const DECO_FEATHERY_BED ; 2  	const DECO_PINK_BED ; 3  	const DECO_POLKADOT_BED ; 4  	const DECO_PIKACHU_BED ; 5 -	const DECO_06 +	const DECO_CARPETS  	const DECO_RED_CARPET ; 7  	const DECO_BLUE_CARPET ; 8  	const DECO_YELLOW_CARPET ; 9 @@ -66,21 +66,21 @@ const_value = 1  	const DECO_MAGNAPLANT ; c  	const DECO_TROPICPLANT ; d  	const DECO_JUMBOPLANT ; e -	const DECO_0F +	const DECO_POSTERS  	const DECO_TOWN_MAP ; 10  	const DECO_PIKACHU_POSTER ; 11  	const DECO_CLEFAIRY_POSTER ; 12  	const DECO_JIGGLYPUFF_POSTER ; 13 -	const DECO_14 +	const DECO_CONSOLES  	const DECO_FAMICOM ; 15  	const DECO_SNES ; 16  	const DECO_N64 ; 17  	const DECO_VIRTUAL_BOY ; 18 -	const DECO_19 +	const DECO_BIG_DOLLS  	const DECO_BIG_SNORLAX_DOLL ; 1a  	const DECO_BIG_ONIX_DOLL ; 1b  	const DECO_BIG_LAPRAS_DOLL ; 1c -	const DECO_1D +	const DECO_DOLLS  	const DECO_PIKACHU_DOLL ; 1e  	const DECO_SURF_PIKACHU_DOLL ; 1f  	const DECO_CLEFAIRY_DOLL ; 20 diff --git a/engine/decorations.asm b/engine/decorations.asm new file mode 100755 index 000000000..a46d359a5 --- /dev/null +++ b/engine/decorations.asm @@ -0,0 +1,1437 @@ +InitDecorations: ; 26751 (9:6751) +	ld a, DECO_FEATHERY_BED +	ld [Bed], a +	ld a, DECO_TOWN_MAP +	ld [Poster], a +	ret + +_KrisDecorationMenu: ; 0x2675c +	ld a, [wcf76] +	push af +	ld hl, .MenuDataHeader +	call LoadMenuDataHeader +	xor a +	ld [wd1ee], a +	ld a, $1 +	ld [wd1ef], a +.top_loop +	ld a, [wd1ef] +	ld [wMenuCursorBuffer], a +	call .FindCategoriesWithOwnedDecos +	call DoNthMenu +	ld a, [MenuSelection2] +	ld [wd1ef], a +	jr c, .exit_menu +	ld a, [MenuSelection] +	ld hl, .pointers +	call MenuJumptable +	jr nc, .top_loop + +.exit_menu +	call ExitMenu +	pop af +	ld [wcf76], a +	ld a, [wd1ee] +	ld c, a +	ret +; 0x2679a + +.MenuDataHeader: ; 0x2679a +	db $40 ; flags +	db 00, 05 ; start coords +	db 17, 19 ; end coords +	dw .MenuData2 +	db 1 ; default option +; 0x267a2 + +.MenuData2: ; 0x267a2 +	db $a0 ; flags +	db 0 ; items +	dw wd002 +	dw PlaceNthMenuStrings +	dw .pointers +; 0x267aa + +.pointers: ; 267aa +	dw DecoBedMenu, .bed +	dw DecoCarpetMenu, .carpet +	dw DecoPlantMenu, .plant +	dw DecoPosterMenu, .poster +	dw DecoConsoleMenu, .game +	dw DecoOrnamentMenu, .ornament +	dw DecoBigDollMenu, .big_doll +	dw DecoExitMenu, .exit + +.bed      db "BED@" +.carpet   db "CARPET@" +.plant    db "PLANT@" +.poster   db "POSTER@" +.game     db "GAME CONSOLE@" +.ornament db "ORNAMENT@" +.big_doll db "BIG DOLL@" +.exit     db "EXIT@" +; 26806 + +.FindCategoriesWithOwnedDecos: ; 26806 +	xor a +	ld [wcf76], a +	call .ClearStringBuffer2 +	call .FindOwndDecos +	ld a, 7 +	call .AppendToStringBuffer2 +	ld hl, StringBuffer2 +	ld de, wd002 +	ld bc, ITEM_NAME_LENGTH +	call CopyBytes +	ret + +.ClearStringBuffer2: ; 26822 (9:6822) +	ld hl, StringBuffer2 +	xor a +	ld [hli], a +	ld bc, ITEM_NAME_LENGTH - 1 +	ld a, -1 +	call ByteFill +	ret + +.AppendToStringBuffer2: ; 26830 (9:6830) +	ld hl, StringBuffer2 +	inc [hl] +	ld e, [hl] +	ld d, 0 +	add hl, de +	ld [hl], a +	ret + +.FindOwndDecos: ; 2683a (9:683a) +	ld hl, .jumptable +.loop +	ld a, [hli] +	ld e, a +	ld a, [hli] +	ld d, a +	or e +	jr z, .done +	push hl +	call _de_ +	pop hl +	jr nc, .next +	ld a, [hl] +	push hl +	call .AppendToStringBuffer2 +	pop hl +.next +	inc hl +	jr .loop +.done +	ret +; 26855 (9:6855) + +.jumptable: ; 26855 +	dwb FindOwnedBeds, 0 ; bed +	dwb FindOwnedCarpets, 1 ; carpet +	dwb FindOwnedPlants, 2 ; plant +	dwb FindOwnedPosters, 3 ; poster +	dwb FindOwnedConsoles, 4 ; game console +	dwb FindOwnedOrnaments, 5 ; ornament +	dwb FindOwnedBigDolls, 6 ; big doll +	dw 0 ; end +; 2686c + +Deco_FillTempWithMinusOne: ; 2686c +	xor a +	ld hl, wd002 +	ld [hli], a +	ld a, -1 +	ld bc, $10 +	call ByteFill +	ret +; 2687a + +CheckAllDecorationFlags: ; 2687a +.loop +	ld a, [hli] +	cp -1 +	jr z, .done +	push hl +	push af +	ld b, CHECK_FLAG +	call DecorationFlagAction +	ld a, c +	and a +	pop bc +	ld a, b +	call nz, AppendDecoIndex +	pop hl +	jr .loop + +.done +	ret +; 26891 + +AppendDecoIndex: ; 26891 +	ld hl, wd002 +	inc [hl] +	ld e, [hl] +	ld d, $0 +	add hl, de +	ld [hl], a +	ret +; 2689b + +FindOwnedDecosInCategory: ; 2689b +	push bc +	push hl +	call Deco_FillTempWithMinusOne +	pop hl +	call CheckAllDecorationFlags +	pop bc +	ld a, [wd002] +	and a +	ret z + +	ld a, c +	call AppendDecoIndex +	ld a, 0 +	call AppendDecoIndex +	scf +	ret +; 268b5 + +DecoBedMenu: ; 268b5 +	call FindOwnedBeds +	call PopulateDecoCategoryMenu +	xor a +	ret +; 268bd + +FindOwnedBeds: ; 268bd +	ld hl, .beds +	ld c, DECO_BEDS +	jp FindOwnedDecosInCategory +; 268c5 + +.beds: ; 268c5 +	db DECO_FEATHERY_BED ; 2 +	db DECO_PINK_BED ; 3 +	db DECO_POLKADOT_BED ; 4 +	db DECO_PIKACHU_BED ; 5 +	db -1 +; 268ca + +DecoCarpetMenu: ; 268ca +	call FindOwnedCarpets +	call PopulateDecoCategoryMenu +	xor a +	ret +; 268d2 + +FindOwnedCarpets: ; 268d2 +	ld hl, .carpets +	ld c, DECO_CARPETS +	jp FindOwnedDecosInCategory +; 268da + +.carpets: ; 268da +	db DECO_RED_CARPET ; 7 +	db DECO_BLUE_CARPET ; 8 +	db DECO_YELLOW_CARPET ; 9 +	db DECO_GREEN_CARPET ; a +	db -1 +; 268df + +DecoPlantMenu: ; 268df +	call FindOwnedPlants +	call PopulateDecoCategoryMenu +	xor a +	ret +; 268e7 + +FindOwnedPlants: ; 268e7 +	ld hl, .plants +	ld c, DECO_0B +	jp FindOwnedDecosInCategory +; 268ef + +.plants: ; 268ef +	db DECO_MAGNAPLANT ; c +	db DECO_TROPICPLANT ; d +	db DECO_JUMBOPLANT ; e +	db -1 +; 268f3 + +DecoPosterMenu: ; 268f3 +	call FindOwnedPosters +	call PopulateDecoCategoryMenu +	xor a +	ret +; 268fb + +FindOwnedPosters: ; 268fb +	ld hl, .posters +	ld c, DECO_POSTERS +	jp FindOwnedDecosInCategory +; 26903 + +.posters: ; 26903 +	db DECO_TOWN_MAP ; 10 +	db DECO_PIKACHU_POSTER ; 11 +	db DECO_CLEFAIRY_POSTER ; 12 +	db DECO_JIGGLYPUFF_POSTER ; 13 +	db -1 +; 26908 + +DecoConsoleMenu: ; 26908 +	call FindOwnedConsoles +	call PopulateDecoCategoryMenu +	xor a +	ret +; 26910 + +FindOwnedConsoles: ; 26910 +	ld hl, .consoles +	ld c, DECO_CONSOLES +	jp FindOwnedDecosInCategory +; 26918 + +.consoles: ; 26918 +	db DECO_FAMICOM ; 15 +	db DECO_SNES ; 16 +	db DECO_N64 ; 17 +	db DECO_VIRTUAL_BOY ; 18 +	db -1 +; 2691d + +DecoOrnamentMenu: ; 2691d +	call FindOwnedOrnaments +	call PopulateDecoCategoryMenu +	xor a +	ret +; 26925 + +FindOwnedOrnaments: ; 26925 +	ld hl, .ornaments +	ld c, DECO_DOLLS +	jp FindOwnedDecosInCategory +; 2692d + +.ornaments: ; 2692d +	db DECO_PIKACHU_DOLL ; 1e +	db DECO_SURF_PIKACHU_DOLL ; 1f +	db DECO_CLEFAIRY_DOLL ; 20 +	db DECO_JIGGLYPUFF_DOLL ; 21 +	db DECO_BULBASAUR_DOLL ; 22 +	db DECO_CHARMANDER_DOLL ; 23 +	db DECO_SQUIRTLE_DOLL ; 24 +	db DECO_POLIWAG_DOLL ; 25 +	db DECO_DIGLETT_DOLL ; 26 +	db DECO_STARMIE_DOLL ; 27 +	db DECO_MAGIKARP_DOLL ; 28 +	db DECO_ODDISH_DOLL ; 29 +	db DECO_GENGAR_DOLL ; 2a +	db DECO_SHELLDER_DOLL ; 2b +	db DECO_GRIMER_DOLL ; 2c +	db DECO_VOLTORB_DOLL ; 2d +	db DECO_WEEDLE_DOLL ; 2e +	db DECO_UNOWN_DOLL ; 2f +	db DECO_GEODUDE_DOLL ; 30 +	db DECO_MACHOP_DOLL ; 31 +	db DECO_TENTACOOL_DOLL ; 32 +	db DECO_GOLD_TROPHY_DOLL ; 33 +	db DECO_SILVER_TROPHY_DOLL ; 34 +	db -1 +; 26945 + +DecoBigDollMenu: ; 26945 +	call FindOwnedBigDolls +	call PopulateDecoCategoryMenu +	xor a +	ret +; 2694d + +FindOwnedBigDolls: ; 2694d +	ld hl, .big_dolls +	ld c, DECO_BIG_DOLLS +	jp FindOwnedDecosInCategory +; 26955 + +.big_dolls: ; 26955 +	db DECO_BIG_SNORLAX_DOLL ; 1a +	db DECO_BIG_ONIX_DOLL ; 1b +	db DECO_BIG_LAPRAS_DOLL ; 1c +	db -1 +; 26959 + +DecoExitMenu: ; 26959 +	scf +	ret +; 2695b + +PopulateDecoCategoryMenu: ; 2695b +	ld a, [wd002] +	and a +	jr z, .empty +	cp 8 +	jr nc, .beyond_eight +	xor a +	ld [wcf76], a +	ld hl, .NonscrollingMenuDataHeader +	call LoadMenuDataHeader +	call DoNthMenu +	jr c, .no_action_1 +	call DoDecorationAction2 + +.no_action_1 +	call ExitMenu +	ret + +.beyond_eight +	ld hl, wd002 +	ld e, [hl] +	dec [hl] +	ld d, 0 +	add hl, de +	ld [hl], -1 +	call LoadStandardMenuDataHeader +	ld hl, .ScrollingMenuDataHeader +	call CopyMenuDataHeader +	xor a +	ld [hBGMapMode], a +	call InitScrollingMenu +	xor a +	ld [wd0e4], a +	call HandleScrollingMenu +	ld a, [wcf73] +	cp 2 +	jr z, .no_action_2 +	call DoDecorationAction2 + +.no_action_2 +	call ExitMenu +	ret + +.empty +	ld hl, .Text_nothing_to_choose +	call MenuTextBoxBackup +	ret +; 269b0 + +.Text_nothing_to_choose: ; 0x269b0 +	; There's nothing to choose. +	text_jump UnknownText_0x1bc471 +	db "@" +; 0x269b5 + +.NonscrollingMenuDataHeader: ; 0x269b5 +	db $40 ; flags +	db 00, 00 ; start coords +	db 17, 19 ; end coords +	dw .NonscrollingMenuData2 +	db 1 ; default option +; 0x269bd + +.NonscrollingMenuData2: ; 0x269bd +	db $a0 ; flags +	db 0 ; items +	dw wd002 +	dw DecorationMenuFunction +	dw DecorationAttributes +; 0x269c5 + +.ScrollingMenuDataHeader: ; 0x269c5 +	db $40 ; flags +	db 01, 01 ; start coords +	db 16, 18 ; end coords +	dw .ScrollingMenuData2 +	db 1 ; default option +; 0x269cd + +.ScrollingMenuData2: ; 0x269cd +	db $10 ; flags +	db 8, 0 ; rows, columns +	db 1 ; horizontal spacing +	dbw 0, wd002 ; text pointer +	dba DecorationMenuFunction +	dbw 0, 0 +	dbw 0, 0 +; 269dd + + +GetDecorationData: ; 269dd +	ld hl, DecorationAttributes +	ld bc, 6 +	call AddNTimes +	ret +; 269e7 + +GetDecorationName: ; 269e7 +	push hl +	call GetDecorationData +	call GetDecoName +	pop hl +	call CopyName2 +	ret +; 269f3 + +DecorationMenuFunction: ; 269f3 +	ld a, [MenuSelection] +	push de +	call GetDecorationData +	call GetDecoName +	pop hl +	call PlaceString +	ret +; 26a02 + +DoDecorationAction2: ; 26a02 +	ld a, [MenuSelection] +	call GetDecorationData +	ld de, 2 ; function 2 +	add hl, de +	ld a, [hl] +	ld hl, .DecoActions +	rst JumpTable +	ret +; 26a12 + +.DecoActions: ; 26a12 +	dw DecoAction_nothing +	dw DecoAction_setupbed +	dw DecoAction_putawaybed +	dw DecoAction_setupcarpet +	dw DecoAction_putawaycarpet +	dw DecoAction_setupplant +	dw DecoAction_putawayplant +	dw DecoAction_setupposter +	dw DecoAction_putawayposter +	dw DecoAction_setupconsole +	dw DecoAction_putawayconsole +	dw DecoAction_setupbigdoll +	dw DecoAction_putawaybigdoll +	dw DecoAction_setupornament +	dw DecoAction_putawayornament +; 26a30 + + +GetDecorationFlag: ; 26a30 +	call GetDecorationData +	ld de, 3 ; event flag +	add hl, de +	ld a, [hli] +	ld d, [hl] +	ld e, a +	ret +; 26a3b + +DecorationFlagAction: ; 26a3b +	push bc +	call GetDecorationFlag +	pop bc +	call EventFlagAction +	ret +; 26a44 + +GetDecorationSprite: ; 26a44 +	ld a, c +	call GetDecorationData +	ld de, 5 ; sprite +	add hl, de +	ld a, [hl] +	ld c, a +	ret +; 26a4f + +decoration: MACRO +	; type, name, command, event flag, tile/sprite +	db \1, \2, \3 +	dw \4 +	db \5 +ENDM + +DecorationAttributes: ; 26a4f +	decoration DECO_PLANT,    $00,               $0,                 EVENT_GAVE_KURT_APRICORNS,                         $00 +	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_BED,       EVENT_GAVE_KURT_APRICORNS,                         $00 +	decoration DECO_BED,      FEATHERY_BED,      SET_UP_BED,         EVENT_DECO_BED_1,                  $1b +	decoration DECO_BED,      PINK_BED,          SET_UP_BED,         EVENT_DECO_BED_2,                  $1c +	decoration DECO_BED,      POLKADOT_BED,      SET_UP_BED,         EVENT_DECO_BED_3,                  $1d +	decoration DECO_BED,      PIKACHU_BED,       SET_UP_BED,         EVENT_DECO_BED_4,                  $1e +	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_CARPET,    EVENT_GAVE_KURT_APRICORNS,                         $00 +	decoration DECO_CARPET,   RED_CARPET,        SET_UP_CARPET,      EVENT_DECO_CARPET_1,               $08 +	decoration DECO_CARPET,   BLUE_CARPET,       SET_UP_CARPET,      EVENT_DECO_CARPET_2,               $0b +	decoration DECO_CARPET,   YELLOW_CARPET,     SET_UP_CARPET,      EVENT_DECO_CARPET_3,               $0e +	decoration DECO_CARPET,   GREEN_CARPET,      SET_UP_CARPET,      EVENT_DECO_CARPET_4,               $11 +	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_PLANT,     EVENT_GAVE_KURT_APRICORNS,                         $00 +	decoration DECO_PLANT,    MAGNAPLANT,        SET_UP_PLANT,       EVENT_DECO_PLANT_1,                $20 +	decoration DECO_PLANT,    TROPICPLANT,       SET_UP_PLANT,       EVENT_DECO_PLANT_2,                $21 +	decoration DECO_PLANT,    JUMBOPLANT,        SET_UP_PLANT,       EVENT_DECO_PLANT_3,                $22 +	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_POSTER,    EVENT_GAVE_KURT_APRICORNS,                         $00 +	decoration DECO_PLANT,    TOWN_MAP_D,        SET_UP_POSTER,      EVENT_DECO_PLANT_4,                $1f +	decoration DECO_POSTER,   PIKACHU,           SET_UP_POSTER,      EVENT_DECO_POSTER_1,               $23 +	decoration DECO_POSTER,   CLEFAIRY,          SET_UP_POSTER,      EVENT_DECO_POSTER_2,               $24 +	decoration DECO_POSTER,   JIGGLYPUFF,        SET_UP_POSTER,      EVENT_DECO_POSTER_3,               $25 +	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_CONSOLE,   EVENT_GAVE_KURT_APRICORNS,                         $00 +	decoration DECO_PLANT,    FAMICOM,           SET_UP_CONSOLE,     EVENT_DECO_FAMICOM,                SPRITE_FAMICOM +	decoration DECO_PLANT,    SUPER_NES,         SET_UP_CONSOLE,     EVENT_DECO_SNES,                   SPRITE_SNES +	decoration DECO_PLANT,    NINTENDO_64,       SET_UP_CONSOLE,     EVENT_DECO_N64,                    SPRITE_N64 +	decoration DECO_PLANT,    VIRTUAL_BOY,       SET_UP_CONSOLE,     EVENT_DECO_VIRTUAL_BOY,            SPRITE_VIRTUAL_BOY +	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_BIG_DOLL,  EVENT_GAVE_KURT_APRICORNS,                         $00 +	decoration DECO_BIGDOLL,  SNORLAX,           SET_UP_BIG_DOLL,    EVENT_DECO_BIG_SNORLAX_DOLL,       SPRITE_BIG_SNORLAX +	decoration DECO_BIGDOLL,  ONIX,              SET_UP_BIG_DOLL,    EVENT_DECO_BIG_ONIX_DOLL,          SPRITE_BIG_ONIX +	decoration DECO_BIGDOLL,  LAPRAS,            SET_UP_BIG_DOLL,    EVENT_DECO_BIG_LAPRAS_DOLL,        SPRITE_BIG_LAPRAS +	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_DOLL,      EVENT_GAVE_KURT_APRICORNS,                         $00 +	decoration DECO_DOLL,     PIKACHU,           SET_UP_DOLL,        EVENT_DECO_PIKACHU_DOLL,           SPRITE_PIKACHU +	decoration DECO_PLANT,    SURF_PIKA_DOLL,    SET_UP_DOLL,        EVENT_DECO_SURFING_PIKACHU_DOLL,   SPRITE_SURFING_PIKACHU +	decoration DECO_DOLL,     CLEFAIRY,          SET_UP_DOLL,        EVENT_DECO_CLEFAIRY_DOLL,          SPRITE_CLEFAIRY +	decoration DECO_DOLL,     JIGGLYPUFF,        SET_UP_DOLL,        EVENT_DECO_JIGGLYPUFF_DOLL,        SPRITE_JIGGLYPUFF +	decoration DECO_DOLL,     BULBASAUR,         SET_UP_DOLL,        EVENT_DECO_BULBASAUR_DOLL,         SPRITE_BULBASAUR +	decoration DECO_DOLL,     CHARMANDER,        SET_UP_DOLL,        EVENT_DECO_CHARMANDER_DOLL,        SPRITE_CHARMANDER +	decoration DECO_DOLL,     SQUIRTLE,          SET_UP_DOLL,        EVENT_DECO_SQUIRTLE_DOLL,          SPRITE_SQUIRTLE +	decoration DECO_DOLL,     POLIWAG,           SET_UP_DOLL,        EVENT_DECO_POLIWAG_DOLL,           SPRITE_POLIWAG +	decoration DECO_DOLL,     DIGLETT,           SET_UP_DOLL,        EVENT_DECO_DIGLETT_DOLL,           SPRITE_DIGLETT +	decoration DECO_DOLL,     STARYU,            SET_UP_DOLL,        EVENT_DECO_STARMIE_DOLL,           SPRITE_STARMIE +	decoration DECO_DOLL,     MAGIKARP,          SET_UP_DOLL,        EVENT_DECO_MAGIKARP_DOLL,          SPRITE_MAGIKARP +	decoration DECO_DOLL,     ODDISH,            SET_UP_DOLL,        EVENT_DECO_ODDISH_DOLL,            SPRITE_ODDISH +	decoration DECO_DOLL,     GENGAR,            SET_UP_DOLL,        EVENT_DECO_GENGAR_DOLL,            SPRITE_GENGAR +	decoration DECO_DOLL,     SHELLDER,          SET_UP_DOLL,        EVENT_DECO_SHELLDER_DOLL,          SPRITE_SHELLDER +	decoration DECO_DOLL,     GRIMER,            SET_UP_DOLL,        EVENT_DECO_GRIMER_DOLL,            SPRITE_GRIMER +	decoration DECO_DOLL,     VOLTORB,           SET_UP_DOLL,        EVENT_DECO_VOLTORB_DOLL,           SPRITE_VOLTORB +	decoration DECO_DOLL,     WEEDLE,            SET_UP_DOLL,        EVENT_DECO_WEEDLE_DOLL,            SPRITE_WEEDLE +	decoration DECO_DOLL,     UNOWN,             SET_UP_DOLL,        EVENT_DECO_UNOWN_DOLL,             SPRITE_UNOWN +	decoration DECO_DOLL,     GEODUDE,           SET_UP_DOLL,        EVENT_DECO_GEODUDE_DOLL,           SPRITE_GEODUDE +	decoration DECO_DOLL,     MACHOP,            SET_UP_DOLL,        EVENT_DECO_MACHOP_DOLL,            SPRITE_MACHOP +	decoration DECO_DOLL,     TENTACOOL,         SET_UP_DOLL,        EVENT_DECO_TENTACOOL_DOLL,         SPRITE_TENTACOOL +	decoration DECO_PLANT,    GOLD_TROPHY,       SET_UP_DOLL,        EVENT_DECO_GOLD_TROPHY,            SPRITE_GOLD_TROPHY +	decoration DECO_PLANT,    SILVER_TROPHY,     SET_UP_DOLL,        EVENT_DECO_SILVER_TROPHY,          SPRITE_SILVER_TROPHY +; 26b8d + + +DecorationNames: ; 26b8d +	db "CANCEL@" +	db "PUT IT AWAY@" +	db "MAGNAPLANT@" +	db "TROPICPLANT@" +	db "JUMBOPLANT@" +	db "TOWN MAP@" +	db "NES@" +	db "SUPER NES@" +	db "NINTENDO 64@" +	db "VIRTUAL BOY@" +	db "GOLD TROPHY@" +	db "SILVER TROPHY@" +	db "SURF PIKACHU DOLL@" +	db " BED@" +	db " CARPET@" +	db " POSTER@" +	db " DOLL@" +	db "BIG @" +	db "FEATHERY@" +	db "PIKACHU@" +	db "PINK@" +	db "POLKADOT@" +	db "RED@" +	db "BLUE@" +	db "YELLOW@" +	db "GREEN@" +; 26c72 + +GetDecoName: ; 26c72 +	ld a, [hli] +	ld e, [hl] +	ld bc, StringBuffer2 +	push bc +	ld hl, .NameFunctions +	rst JumpTable +	pop de +	ret +; 26c7e + +.NameFunctions: ; 26c7e +	dw .invalid +	dw .plant +	dw .bed +	dw .carpet +	dw .poster +	dw .doll +	dw .bigdoll +; 26c8c + + +.invalid: ; 26c8c +	ret +; 26c8d + +.plant: ; 26c8d +	ld a, e +	jr .getdeconame + +.bed: ; 26c90 +	call .plant +	ld a, _BED +	jr .getdeconame + +.carpet: ; 26c97 +	call .plant +	ld a, _CARPET +	jr .getdeconame + +.poster: ; 26c9e +	ld a, e +	call .getpokename +	ld a, _POSTER +	jr .getdeconame + +.doll: ; 26ca6 +	ld a, e +	call .getpokename +	ld a, _DOLL +	jr .getdeconame + +.bigdoll: ; 26cae +	push de +	ld a, BIG_ +	call .getdeconame +	pop de +	ld a, e +	jr .getpokename + +.unused: ; 26cb8 +	push de +	call .getdeconame +	pop de +	ld a, e +	jr .getdeconame + +.getpokename: ; 26cc0 +	push bc +	ld [wd265], a +	call GetPokemonName +	pop bc +	jr .copy + +.getdeconame: ; 26cca +	call ._getdeconame +	jr .copy + +._getdeconame: ; 26ccf +	push bc +	ld hl, DecorationNames +	call GetNthString +	ld d, h +	ld e, l +	pop bc +	ret + +.copy: ; 26cda +	ld h, b +	ld l, c +	call CopyName2 +	dec hl +	ld b, h +	ld c, l +	ret +; 26ce3 + +DecoAction_nothing: ; 26ce3 +	scf +	ret +; 26ce5 + +DecoAction_setupbed: ; 26ce5 +	ld hl, Bed +	jp DecoAction_TrySetItUp +; 26ceb + +DecoAction_putawaybed: ; 26ceb +	ld hl, Bed +	jp DecoAction_TryPutItAway +; 26cf1 + +DecoAction_setupcarpet: ; 26cf1 +	ld hl, Carpet +	jp DecoAction_TrySetItUp +; 26cf7 + +DecoAction_putawaycarpet: ; 26cf7 +	ld hl, Carpet +	jp DecoAction_TryPutItAway +; 26cfd + +DecoAction_setupplant: ; 26cfd +	ld hl, Plant +	jp DecoAction_TrySetItUp +; 26d03 + +DecoAction_putawayplant: ; 26d03 +	ld hl, Plant +	jp DecoAction_TryPutItAway +; 26d09 + +DecoAction_setupposter: ; 26d09 +	ld hl, Poster +	jp DecoAction_TrySetItUp +; 26d0f + +DecoAction_putawayposter: ; 26d0f +	ld hl, Poster +	jp DecoAction_TryPutItAway +; 26d15 + +DecoAction_setupconsole: ; 26d15 +	ld hl, Console +	jp DecoAction_TrySetItUp +; 26d1b + +DecoAction_putawayconsole: ; 26d1b +	ld hl, Console +	jp DecoAction_TryPutItAway +; 26d21 + +DecoAction_setupbigdoll: ; 26d21 +	ld hl, BigDoll +	jp DecoAction_TrySetItUp +; 26d27 + +DecoAction_putawaybigdoll: ; 26d27 +	ld hl, BigDoll +	jp DecoAction_TryPutItAway +; 26d2d + +DecoAction_TrySetItUp: ; 26d2d +	ld a, [hl] +	ld [Buffer1], a +	push hl +	call DecoAction_SetItUp +	jr c, .failed +	ld a, 1 +	ld [wd1ee], a +	pop hl +	ld a, [MenuSelection] +	ld [hl], a +	xor a +	ret + +.failed +	pop hl +	xor a +	ret +; 26d46 + +DecoAction_SetItUp: ; 26d46 +; See if there's anything of the same type already out +	ld a, [Buffer1] +	and a +	jr z, .nothingthere +; See if that item is already out +	ld b, a +	ld a, [MenuSelection] +	cp b +	jr z, .alreadythere +; Put away the item that's already out, and set up the new one +	ld a, [MenuSelection] +	ld hl, StringBuffer4 +	call GetDecorationName +	ld a, [Buffer1] +	ld hl, StringBuffer3 +	call GetDecorationName +	ld hl, DecoText_PutAwayAndSetUp +	call MenuTextBoxBackup +	xor a +	ret + +.nothingthere +	ld a, [MenuSelection] +	ld hl, StringBuffer3 +	call GetDecorationName +	ld hl, DecoText_SetUpTheDeco +	call MenuTextBoxBackup +	xor a +	ret + +.alreadythere +	ld hl, DecoText_AlreadySetUp +	call MenuTextBoxBackup +	scf +	ret +; 26d86 + +DecoAction_TryPutItAway: ; 26d86 +; If there is no item of that type already set, there is nothing to put away. +	ld a, [hl] +	ld [Buffer1], a +	xor a +	ld [hl], a +	ld a, [Buffer1] +	and a +	jr z, .nothingthere +; Put it away. +	ld a, $1 +	ld [wd1ee], a +	ld a, [Buffer1] +	ld [MenuSelection], a +	ld hl, StringBuffer3 +	call GetDecorationName +	ld hl, DecoText_PutAwayTheDeco +	call MenuTextBoxBackup +	xor a +	ret + +.nothingthere +	ld hl, DecoText_NothingToPutAway +	call MenuTextBoxBackup +	xor a +	ret +; 26db3 + +DecoAction_setupornament: ; 26db3 +	ld hl, UnknownText_0x26e41 +	call DecoAction_AskWhichSide +	jr c, .cancel +	call DecoAction_SetItUp_Ornament +	jr c, .cancel +	ld a, $1 +	ld [wd1ee], a +	jr DecoAction_FinishUp_Ornament + +.cancel +	xor a +	ret + +DecoAction_putawayornament: ; 26dc9 +	ld hl, DecoText_WhichSide +	call DecoAction_AskWhichSide +	jr nc, .incave +	xor a +	ret + +.incave +	call DecoAction_PutItAway_Ornament + +DecoAction_FinishUp_Ornament: ; 26dd6 +	call QueryWhichSide +	ld a, [wd1ec] +	ld [hl], a +	ld a, [wd1ed] +	ld [de], a +	xor a +	ret +; 26de3 + +DecoAction_SetItUp_Ornament: ; 26de3 +	ld a, [wd1ec] +	and a +	jr z, .nothingthere +	ld b, a +	ld a, [MenuSelection] +	cp b +	jr z, .failed +	ld a, b +	ld hl, StringBuffer3 +	call GetDecorationName +	ld a, [MenuSelection] +	ld hl, StringBuffer4 +	call GetDecorationName +	ld a, [MenuSelection] +	ld [wd1ec], a +	call .getwhichside +	ld hl, DecoText_PutAwayAndSetUp +	call MenuTextBoxBackup +	xor a +	ret + +.nothingthere +	ld a, [MenuSelection] +	ld [wd1ec], a +	call .getwhichside +	ld a, [MenuSelection] +	ld hl, StringBuffer3 +	call GetDecorationName +	ld hl, DecoText_SetUpTheDeco +	call MenuTextBoxBackup +	xor a +	ret + +.failed +	ld hl, DecoText_AlreadySetUp +	call MenuTextBoxBackup +	scf +	ret +; 26e33 + +.getwhichside: ; 26e33 +	ld a, [MenuSelection] +	ld b, a +	ld a, [wd1ed] +	cp b +	ret nz +	xor a +	ld [wd1ed], a +	ret +; 26e41 + +UnknownText_0x26e41: ; 0x26e41 +	; Which side do you want to put it on? +	text_jump UnknownText_0x1bc48c +	db "@" +; 0x26e46 + +DecoAction_PutItAway_Ornament: ; 26e46 +	ld a, [wd1ec] +	and a +	jr z, .nothingthere +	ld hl, StringBuffer3 +	call GetDecorationName +	ld a, $1 +	ld [wd1ee], a +	xor a +	ld [wd1ec], a +	ld hl, DecoText_PutAwayTheDeco +	call MenuTextBoxBackup +	xor a +	ret + +.nothingthere +	ld hl, DecoText_NothingToPutAway +	call MenuTextBoxBackup +	xor a +	ret +; 26e6b + +DecoText_WhichSide: ; 0x26e6b +	; Which side do you want to put away? +	text_jump UnknownText_0x1bc4b2 +	db "@" +; 0x26e70 + +DecoAction_AskWhichSide: ; 26e70 +	call MenuTextBox +	ld hl, MenuDataHeader_0x26eab +	call GetMenu2 +	call ExitMenu +	call CopyMenuData2 +	jr c, .nope +	ld a, [MenuSelection2] +	cp 3 +	jr z, .nope +	ld [Buffer2], a +	call QueryWhichSide +	ld a, [hl] +	ld [wd1ec], a +	ld a, [de] +	ld [wd1ed], a +	xor a +	ret + +.nope +	scf +	ret +; 26e9a + +QueryWhichSide: ; 26e9a +	ld hl, RightOrnament +	ld de, LeftOrnament +	ld a, [Buffer2] +	cp 1 +	ret z +	push hl +	ld h, d +	ld l, e +	pop de +	ret +; 26eab + +MenuDataHeader_0x26eab: ; 0x26eab +	db $40 ; flags +	db 00, 00 ; start coords +	db 07, 13 ; end coords +	dw MenuData2_0x26eb3 +	db 1 ; default option +; 0x26eb3 + +MenuData2_0x26eb3: ; 0x26eb3 +	db $80 ; flags +	db 3 ; items +	db "RIGHT SIDE@" +	db "LEFT SIDE@" +	db "CANCEL@" +; 0x26ed1 + +DecoText_PutAwayTheDeco: ; 0x26ed1 +	; Put away the @ . +	text_jump UnknownText_0x1bc4d7 +	db "@" +; 0x26ed6 + +DecoText_NothingToPutAway: ; 0x26ed6 +	; There's nothing to put away. +	text_jump UnknownText_0x1bc4ec +	db "@" +; 0x26edb + +DecoText_SetUpTheDeco: ; 0x26edb +	; Set up the @ . +	text_jump UnknownText_0x1bc509 +	db "@" +; 0x26ee0 + +DecoText_PutAwayAndSetUp: ; 0x26ee0 +	; Put away the @ and set up the @ . +	text_jump UnknownText_0x1bc51c +	db "@" +; 0x26ee5 + +DecoText_AlreadySetUp: ; 0x26ee5 +	; That's already set up. +	text_jump UnknownText_0x1bc546 +	db "@" +; 0x26eea + +GetDecorationName_c_de: ; 26eea +	ld a, c +	ld h, d +	ld l, e +	call GetDecorationName +	ret +; 26ef1 + +DecorationFlagAction_c: ; 26ef1 +	ld a, c +	jp DecorationFlagAction +; 26ef5 + + +GetDecorationName_c: ; 26ef5 (9:6ef5) +	ld a, c +	call GetDecorationID +	ld hl, StringBuffer1 +	push hl +	call GetDecorationName +	pop de +	ret + + +SetSpecificDecorationFlag: ; 26f02 +	ld a, c +	call GetDecorationID +	ld b, SET_FLAG +	call DecorationFlagAction +	ret +; 26f0c + +GetDecorationID: ; 26f0c +	push hl +	push de +	ld e, a +	ld d, 0 +	ld hl, DecorationIDs +	add hl, de +	ld a, [hl] +	pop de +	pop hl +	ret +; 26f19 + +SetAllDecorationFlags: ; 26f19 +	ld hl, DecorationIDs +.loop +	ld a, [hli] +	cp -1 +	jr z, .done +	push hl +	ld b, SET_FLAG +	call DecorationFlagAction +	pop hl +	jr .loop + +.done +	ret +; 26f2b + +DecorationIDs: ; 26f2b +	db DECO_FEATHERY_BED ; 2 +	db DECO_PINK_BED ; 3 +	db DECO_POLKADOT_BED ; 4 +	db DECO_PIKACHU_BED ; 5 + +	db DECO_RED_CARPET ; 7 +	db DECO_BLUE_CARPET ; 8 +	db DECO_YELLOW_CARPET ; 9 +	db DECO_GREEN_CARPET ; a + +	db DECO_MAGNAPLANT ; c +	db DECO_TROPICPLANT ; d +	db DECO_JUMBOPLANT ; e + +	db DECO_TOWN_MAP ; 10 +	db DECO_PIKACHU_POSTER ; 11 +	db DECO_CLEFAIRY_POSTER ; 12 +	db DECO_JIGGLYPUFF_POSTER ; 13 + +	db DECO_FAMICOM ; 15 +	db DECO_SNES ; 16 +	db DECO_N64 ; 17 +	db DECO_VIRTUAL_BOY ; 18 + +	db DECO_PIKACHU_DOLL ; 1e +	db DECO_SURF_PIKACHU_DOLL ; 1f +	db DECO_CLEFAIRY_DOLL ; 20 +	db DECO_JIGGLYPUFF_DOLL ; 21 +	db DECO_BULBASAUR_DOLL ; 22 +	db DECO_CHARMANDER_DOLL ; 23 +	db DECO_SQUIRTLE_DOLL ; 24 +	db DECO_POLIWAG_DOLL ; 25 +	db DECO_DIGLETT_DOLL ; 26 +	db DECO_STARMIE_DOLL ; 27 +	db DECO_MAGIKARP_DOLL ; 28 +	db DECO_ODDISH_DOLL ; 29 +	db DECO_GENGAR_DOLL ; 2a +	db DECO_SHELLDER_DOLL ; 2b +	db DECO_GRIMER_DOLL ; 2c +	db DECO_VOLTORB_DOLL ; 2d +	db DECO_WEEDLE_DOLL ; 2e +	db DECO_UNOWN_DOLL ; 2f +	db DECO_GEODUDE_DOLL ; 30 +	db DECO_MACHOP_DOLL ; 31 +	db DECO_TENTACOOL_DOLL ; 32 +	db DECO_BIG_SNORLAX_DOLL ; 1a +	db DECO_BIG_ONIX_DOLL ; 1b +	db DECO_BIG_LAPRAS_DOLL ; 1c +	db DECO_GOLD_TROPHY_DOLL ; 33 +	db DECO_SILVER_TROPHY_DOLL ; 34 +	db -1 +; 26f59 + +DescribeDecoration:: ; 26f59 +	ld a, b +	ld hl, JumpTable_DecorationDesc +	rst JumpTable +	ret +; 26f5f + +JumpTable_DecorationDesc: ; 26f5f +	dw DecorationDesc_Poster +	dw DecorationDesc_LeftOrnament +	dw DecorationDesc_RightOrnament +	dw DecorationDesc_GiantOrnament +	dw DecorationDesc_Console +; 26f69 + +DecorationDesc_Poster: ; 26f69 +	ld a, [Poster] +	ld hl, DecorationDesc_PosterPointers +	ld de, 3 +	call IsInArray +	jr c, .nope +	ld de, DecorationDesc_NullPoster +	ld b, BANK(DecorationDesc_NullPoster) +	ret + +.nope +	ld b, BANK(DecorationDesc_TownMapPoster) +	inc hl +	ld a, [hli] +	ld d, [hl] +	ld e, a +	ret +; 26f84 + +DecorationDesc_PosterPointers: ; 26f84 +	dbw DECO_TOWN_MAP, DecorationDesc_TownMapPoster +	dbw DECO_PIKACHU_POSTER, DecorationDesc_PikachuPoster +	dbw DECO_CLEFAIRY_POSTER, DecorationDesc_ClefairyPoster +	dbw DECO_JIGGLYPUFF_POSTER, DecorationDesc_JigglypuffPoster +	db -1 +; 26f91 + +DecorationDesc_TownMapPoster: ; 0x26f91 +	loadfont +	writetext .TownMapText +	closetext +	special Special_TownMap +	loadmovesprites +	end +; 0x26f9b + +.TownMapText: ; 0x26f9b +	; It's the TOWN MAP. +	text_jump UnknownText_0x1bc55d +	db "@" +; 0x26fa0 + +DecorationDesc_PikachuPoster: ; 0x26fa0 +	jumptext .PikaPosterText +; 0x26fa3 + +.PikaPosterText: ; 0x26fa3 +	; It's a poster of a cute PIKACHU. +	text_jump UnknownText_0x1bc570 +	db "@" +; 0x26fa8 + +DecorationDesc_ClefairyPoster: ; 0x26fa8 +	jumptext .ClefairyPosterText +; 0x26fab + +.ClefairyPosterText: ; 0x26fab +	; It's a poster of a cute CLEFAIRY. +	text_jump UnknownText_0x1bc591 +	db "@" +; 0x26fb0 + +DecorationDesc_JigglypuffPoster: ; 0x26fb0 +	jumptext .JigglypuffPosterText +; 0x26fb3 + +.JigglypuffPosterText: ; 0x26fb3 +	; It's a poster of a cute JIGGLYPUFF. +	text_jump UnknownText_0x1bc5b3 +	db "@" +; 0x26fb8 + +DecorationDesc_NullPoster: ; 26fb8 +	end +; 26fb9 + +DecorationDesc_LeftOrnament: ; 26fb9 +	ld a, [LeftOrnament] +	jr DecorationDesc_OrnamentOrConsole + +DecorationDesc_RightOrnament: ; 26fbe +	ld a, [RightOrnament] +	jr DecorationDesc_OrnamentOrConsole + +DecorationDesc_Console: ; 26fc3 +	ld a, [Console] +	jr DecorationDesc_OrnamentOrConsole + +DecorationDesc_OrnamentOrConsole: ; 26fc8 +	ld c, a +	ld de, StringBuffer3 +	call GetDecorationName_c_de +	ld b, BANK(.OrnamentConsoleScript) +	ld de, .OrnamentConsoleScript +	ret +; 26fd5 + +.OrnamentConsoleScript: ; 26fd5 +	jumptext .OrnamentConsoleText +; 26fd8 + +.OrnamentConsoleText: ; 0x26fd8 +	; It's an adorable @ . +	text_jump UnknownText_0x1bc5d7 +	db "@" +; 0x26fdd + +DecorationDesc_GiantOrnament: ; 26fdd +	ld b, BANK(.BigDollScript) +	ld de, .BigDollScript +	ret +; 26fe3 + +.BigDollScript: ; 26fe3 +	jumptext .BigDollText +; 26fe6 + +.BigDollText: ; 0x26fe6 +	; A giant doll! It's fluffy and cuddly. +	text_jump UnknownText_0x1bc5ef +	db "@" +; 0x26feb + +ToggleMaptileDecorations: ; 26feb +	lb de, 0, 4 +	ld a, [Bed] +	call SetDecorationTile +	lb de, 7, 4 +	ld a, [Plant] +	call SetDecorationTile +	lb de, 6, 0 +	ld a, [Poster] +	call SetDecorationTile +	call SetPosterVisibility +	lb de, 0, 0 +	call PadCoords_de +	ld a, [Carpet] +	and a +	ret z +	call _GetDecorationSprite +	ld [hl], a +	push af +	lb de, 0, 2 +	call PadCoords_de +	pop af +	inc a +	ld [hli], a +	inc a +	ld [hli], a +	dec a +	ld [hl], a +	ret +; 27027 + +SetPosterVisibility: ; 27027 +	ld b, SET_FLAG +	ld a, [Poster] +	and a +	jr nz, .ok +	ld b, RESET_FLAG + +.ok +	ld de, EVENT_KRISS_ROOM_POSTER +	jp EventFlagAction +; 27037 + +SetDecorationTile: ; 27037 +	push af +	call PadCoords_de +	pop af +	and a +	ret z +	call _GetDecorationSprite +	ld [hl], a +	ret +; 27043 + +ToggleDecorationsVisibility: ; 27043 +	ld de, EVENT_KRISS_HOUSE_2F_CONSOLE +	ld hl, VariableSprites + SPRITE_CONSOLE - SPRITE_VARS +	ld a, [Console] +	call ToggleDecorationVisibility +	ld de, EVENT_KRISS_HOUSE_2F_DOLL_1 +	ld hl, VariableSprites + SPRITE_DOLL_1 - SPRITE_VARS +	ld a, [LeftOrnament] +	call ToggleDecorationVisibility +	ld de, EVENT_KRISS_HOUSE_2F_DOLL_2 +	ld hl, VariableSprites + SPRITE_DOLL_2 - SPRITE_VARS +	ld a, [RightOrnament] +	call ToggleDecorationVisibility +	ld de, EVENT_KRISS_HOUSE_2F_BIG_DOLL +	ld hl, VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS +	ld a, [BigDoll] +	call ToggleDecorationVisibility +	ret +; 27074 + +ToggleDecorationVisibility: ; 27074 +	and a +	jr z, .hide +	call _GetDecorationSprite +	ld [hl], a +	ld b, RESET_FLAG +	jp EventFlagAction + +.hide +	ld b, SET_FLAG +	jp EventFlagAction +; 27085 + +_GetDecorationSprite: ; 27085 +	ld c, a +	push de +	push hl +	callba GetDecorationSprite +	pop hl +	pop de +	ld a, c +	ret +; 27092 diff --git a/engine/trainer_card.asm b/engine/trainer_card.asm new file mode 100755 index 000000000..53acdbf53 --- /dev/null +++ b/engine/trainer_card.asm @@ -0,0 +1,611 @@ +Function25105: ; 25105 +	ld a, [VramState] +	push af +	xor a +	ld [VramState], a +	ld hl, Options +	ld a, [hl] +	push af +	set 4, [hl] +	call Function2513b +.asm_25117 +	call UpdateTime +	call JoyTextDelay +	ld a, [wJumptableIndex] +	bit 7, a +	jr nz, .asm_25132 +	ld a, [hJoyLast] +	and B_BUTTON +	jr nz, .asm_25132 +	call Function2518e +	call DelayFrame +	jr .asm_25117 +.asm_25132 +	pop af +	ld [Options], a +	pop af +	ld [VramState], a +	ret + +Function2513b: ; 2513b (9:513b) +	call ClearBGPalettes +	call ClearSprites +	call ClearTileMap +	call DisableLCD + +	callba Function8833e + +	ld hl, CardRightCornerGFX +	ld de, VTiles2 tile $1c +	ld bc, 1 tiles +	ld a, BANK(CardRightCornerGFX) +	call FarCopyBytes + +	ld hl, CardStatusGFX +	ld de, VTiles2 tile $29 +	ld bc, $56 tiles +	ld a, BANK(CardStatusGFX) +	call FarCopyBytes + +	call Function25299 + +	hlcoord 0, 8 +	ld d, $6 +	call Function253b0 + +	call EnableLCD +	call WaitBGMap +	ld b, SCGB_15 +	call GetSGBLayout +	call SetPalettes +	call WaitBGMap +	ld hl, wJumptableIndex +	xor a +rept 3 +	ld [hli], a +endr +	ld [hl], a +	ret + +Function2518e: ; 2518e (9:518e) +	ld a, [wJumptableIndex] +	ld e, a +	ld d, $0 +	ld hl, Jumptable_2519d +rept 2 +	add hl, de +endr +	ld a, [hli] +	ld h, [hl] +	ld l, a +	jp [hl] + +Jumptable_2519d: ; 2519d (9:519d) +	dw Function251b6 +	dw Function251d7 +	dw Function251f4 +	dw Function25221 +	dw Function2524c +	dw Function25279 +	dw Function251b0 + + +Function251ab: ; 251ab (9:51ab) +	ld hl, wJumptableIndex +	inc [hl] +	ret + +Function251b0: ; 251b0 (9:51b0) +	ld hl, wJumptableIndex +	set 7, [hl] +	ret + +Function251b6: ; 251b6 (9:51b6) +	call ClearSprites +	hlcoord 0, 8 +	ld d, $6 +	call Function253b0 +	call WaitBGMap +	ld de, CardStatusGFX +	ld hl, VTiles2 tile $29 +	lb bc, BANK(CardStatusGFX), $56 +	call Request2bpp +	call Function2530a +	call Function251ab +	ret + +Function251d7: ; 251d7 (9:51d7) +	call Function25415 +	ld hl, hJoyLast +	ld a, [hl] +	and D_RIGHT | A_BUTTON +	jr nz, .pressed_right_a +	ret + +.pressed_right_a +	ld a, $2 +	ld [wJumptableIndex], a +	ret +; 251e9 (9:51e9) + +Function251e9: ; 251e9 +	ld a, [KantoBadges] +	and a +	ret z + +	ld a, $4 +	ld [wJumptableIndex], a +	ret +; 251f4 + +Function251f4: ; 251f4 (9:51f4) +	call ClearSprites +	hlcoord 0, 8 +	ld d, $6 +	call Function253b0 +	call WaitBGMap +	ld de, LeaderGFX +	ld hl, VTiles2 tile $29 +	lb bc, BANK(LeaderGFX), $56 +	call Request2bpp +	ld de, BadgeGFX +	ld hl, VTiles0 tile $00 +	lb bc, BANK(BadgeGFX), $2c +	call Request2bpp +	call Function2536c +	call Function251ab +	ret + +Function25221: ; 25221 (9:5221) +	ld hl, Unknown_254c9 +	call Function25438 +	ld hl, hJoyLast +	ld a, [hl] +	and A_BUTTON +	jr nz, Function25246 +	ld a, [hl] +	and D_LEFT +	jr nz, .asm_25235 +	ret +.asm_25235 +	ld a, $0 +	ld [wJumptableIndex], a +	ret +; 2523b (9:523b) + +Function2523b: ; 2523b +	ld a, [KantoBadges] +	and a +	ret z +	ld a, $4 +	ld [wJumptableIndex], a +	ret +; 25246 + +Function25246: ; 25246 +	ld a, $6 +	ld [wJumptableIndex], a +	ret + +Function2524c: ; 2524c (9:524c) +	call ClearSprites +	hlcoord 0, 8 +	ld d, $6 +	call Function253b0 +	call WaitBGMap +	ld de, LeaderGFX2 +	ld hl, VTiles2 tile $29 +	lb bc, BANK(LeaderGFX2), $56 +	call Request2bpp +	ld de, BadgeGFX2 +	ld hl, VTiles0 tile $00 +	lb bc, BANK(BadgeGFX2), $2c +	call Request2bpp +	call Function2536c +	call Function251ab +	ret + +Function25279: ; 25279 (9:5279) +	ld hl, Unknown_254c9 +	call Function25438 +	ld hl, hJoyLast +	ld a, [hl] +	and D_LEFT +	jr nz, .asm_2528d +	ld a, [hl] +	and D_RIGHT +	jr nz, .asm_25293 +	ret +.asm_2528d +	ld a, $2 +	ld [wJumptableIndex], a +	ret +.asm_25293 +	ld a, $0 +	ld [wJumptableIndex], a +	ret + +Function25299: ; 25299 (9:5299) +	hlcoord 0, 0 +	ld d, $5 +	call Function253b0 +	hlcoord 2, 2 +	ld de, String_252ec +	call PlaceString +	hlcoord 2, 4 +	ld de, Tilemap_252f9 +	call Function253a8 +	hlcoord 7, 2 +	ld de, PlayerName +	call PlaceString +	hlcoord 5, 4 +	ld de, PlayerID +	lb bc, PRINTNUM_LEADINGZEROS | 2, 5 +	call PrintNum +	hlcoord 7, 6 +	ld de, Money +	lb bc, PRINTNUM_MONEY | 3, 6 +	call PrintNum +	hlcoord 1, 3 +	ld de, Tilemap_252fc +	call Function253a8 +	hlcoord 14, 1 +	lb bc, 5, 7 +	xor a +	ld [hFillBox], a +	predef FillBox +	ret +; 252ec (9:52ec) + +String_252ec: ; 252ec +	db   "NAME/" +	next "" +	next "MONEY@" + +Tilemap_252f9: ; 252f9 +	db $27, $28, $ff ; ID NO + +Tilemap_252fc: ; 252fc +	db $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $26, $ff ; ____________> +; 2530a + +Function2530a: ; 2530a (9:530a) +	hlcoord 2, 10 +	ld de, String_2534c +	call PlaceString +	hlcoord 10, 15 +	ld de, String_2535c +	call PlaceString +	ld hl, PokedexCaught +	ld b, $20 +	call CountSetBits +	ld de, wd265 +	hlcoord 15, 10 +	lb bc, 1, 3 +	call PrintNum +	call Function25415 +	hlcoord 2, 8 +	ld de, Tilemap_25366 +	call Function253a8 +	ld a, [StatusFlags] ; pokedex +	bit 0, a +	ret nz +	hlcoord 1, 9 +	lb bc, 2, 17 +	call ClearBox +	ret +; 2534c (9:534c) + +String_2534c: ; 2534c +	db   "#DEX" +	next "PLAY TIME" +	db   "@" + +String_2535b: ; 2535b +	db "@" + +String_2535c: ; 2535c +	db "  BADGES▶@" + +Tilemap_25366: ; 25366 +	db $29, $2a, $2b, $2c, $2d, $ff +; 2536c + +Function2536c: ; 2536c (9:536c) +	hlcoord 2, 8 +	ld de, Tilemap_253a2 +	call Function253a8 +	hlcoord 2, 10 +	ld a, $29 +	ld c, $4 +.asm_2537c +	call Function253f4 +rept 4 +	inc hl +endr +	dec c +	jr nz, .asm_2537c +	hlcoord 2, 13 +	ld a, $51 +	ld c, $4 +.asm_2538d +	call Function253f4 +rept 4 +	inc hl +endr +	dec c +	jr nz, .asm_2538d +	xor a +	ld [wcf64], a +	ld hl, Unknown_254c9 +	call Function25448 +	ret +; 253a2 (9:53a2) + +Tilemap_253a2: ; 253a2 +	db $79, $7a, $7b, $7c, $7d, $ff ; "BADGES" +; 253a8 + +Function253a8: ; 253a8 (9:53a8) +	ld a, [de] +	cp $ff +	ret z +	ld [hli], a +	inc de +	jr Function253a8 + +Function253b0: ; 253b0 (9:53b0) +	ld e, $14 +.asm_253b2 +	ld a, $23 +	ld [hli], a +	dec e +	jr nz, .asm_253b2 +	ld a, $23 +	ld [hli], a +	ld e, $11 +	ld a, $7f +.asm_253bf +	ld [hli], a +	dec e +	jr nz, .asm_253bf +	ld a, $1c +	ld [hli], a +	ld a, $23 +	ld [hli], a +.asm_253c9 +	ld a, $23 +	ld [hli], a +	ld e, $12 +	ld a, $7f +.asm_253d0 +	ld [hli], a +	dec e +	jr nz, .asm_253d0 +	ld a, $23 +	ld [hli], a +	dec d +	jr nz, .asm_253c9 +	ld a, $23 +	ld [hli], a +	ld a, $24 +	ld [hli], a +	ld e, $11 +	ld a, $7f +.asm_253e4 +	ld [hli], a +	dec e +	jr nz, .asm_253e4 +	ld a, $23 +	ld [hli], a +	ld e, $14 +.asm_253ed +	ld a, $23 +	ld [hli], a +	dec e +	jr nz, .asm_253ed +	ret + +Function253f4: ; 253f4 (9:53f4) +	push de +	push hl +	ld [hli], a +	inc a +	ld [hli], a +	inc a +	ld [hli], a +	inc a +	ld [hli], a +	inc a +	ld de, $11 +	add hl, de +	ld [hli], a +	inc a +	ld [hli], a +	inc a +	ld [hli], a +	inc a +	ld de, $11 +	add hl, de +	ld [hli], a +	inc a +	ld [hli], a +	inc a +	ld [hli], a +	inc a +	pop hl +	pop de +	ret + +Function25415: ; 25415 (9:5415) +	hlcoord 11, 12 +	ld de, GameTimeHours +	lb bc, 2, 4 +	call PrintNum +	inc hl +	ld de, GameTimeMinutes +	lb bc, PRINTNUM_LEADINGZEROS | 1, 2 +	call PrintNum +	ld a, [hVBlankCounter] +	and $1f +	ret nz +	hlcoord 15, 12 +	ld a, [hl] +	xor $51 +	ld [hl], a +	ret + +Function25438: ; 25438 (9:5438) +	ld a, [hVBlankCounter] +	and $7 +	ret nz +	ld a, [wcf64] +	inc a +	and $7 +	ld [wcf64], a +	jr Function25448 + +Function25448: ; 25448 (9:5448) +	ld a, [hli] +	ld e, a +	ld a, [hli] +	ld d, a +	ld a, [de] +	ld c, a +	ld de, Sprites +	ld b, 8 +.asm_25453 +	srl c +	push bc +	jr nc, .asm_25472 +	push hl +	ld a, [hli] +	ld b, a +	ld a, [hli] +	ld c, a +	ld a, [hli] +	ld [wcf66], a +	ld a, [wcf64] +	add l +	ld l, a +	ld a, 0 +	adc h +	ld h, a +	ld a, [hl] +	ld [wcf65], a +	call Function2547b +	pop hl +.asm_25472 +	ld bc, $b +	add hl, bc +	pop bc +	dec b +	jr nz, .asm_25453 +	ret + +Function2547b: ; 2547b (9:547b) +	ld a, [wcf65] +	and $80 +	jr nz, .asm_25487 +	ld hl, Unknown_254a7 +	jr .asm_2548a +.asm_25487 +	ld hl, Unknown_254b8 +.asm_2548a +	ld a, [hli] +	cp $ff +	ret z +	add b +	ld [de], a +	inc de +	ld a, [hli] +	add c +	ld [de], a +	inc de +	ld a, [wcf65] +	and $7f +	add [hl] +	ld [de], a +	inc hl +	inc de +	ld a, [wcf66] +	add [hl] +	ld [de], a +	inc hl +	inc de +	jr .asm_2548a +; 254a7 (9:54a7) + +Unknown_254a7: ; 254a7 +	db $00, $00, $00, $00 +	db $00, $08, $01, $00 +	db $08, $00, $02, $00 +	db $08, $08, $03, $00 +	db $ff + +Unknown_254b8: ; 254b8 +	db $00, $00, $01, $20 +	db $00, $08, $00, $20 +	db $08, $00, $03, $20 +	db $08, $08, $02, $20 +	db $ff + +Unknown_254c9: ; 254c9 +; Template OAM data for each badge on the trainer card. +; Format: +	; y, x, palette +	; cycle 1: face tile, in1 tile, in2 tile, in3 tile +	; cycle 2: face tile, in1 tile, in2 tile, in3 tile + +	dw JohtoBadges + +	; Zephyrbadge +	db $68, $18, $00 +	db $00, $20, $24, $20 | $80 +	db $00, $20, $24, $20 | $80 + +	; Hivebadge +	db $68, $38, $00 +	db $04, $20, $24, $20 | $80 +	db $04, $20, $24, $20 | $80 + +	; Plainbadge +	db $68, $58, $00 +	db $08, $20, $24, $20 | $80 +	db $08, $20, $24, $20 | $80 + +	; Fogbadge +	db $68, $78, $00 +	db $0c, $20, $24, $20 | $80 +	db $0c, $20, $24, $20 | $80 + +	; Mineralbadge +	db $80, $38, $00 +	db $10, $20, $24, $20 | $80 +	db $10, $20, $24, $20 | $80 + +	; Stormbadge +	db $80, $18, $00 +	db $14, $20, $24, $20 | $80 +	db $14, $20, $24, $20 | $80 + +	; Glacierbadge +	db $80, $58, $00 +	db $18, $20, $24, $20 | $80 +	db $18, $20, $24, $20 | $80 + +	; Risingbadge +	; X-flips on alternate cycles. +	db $80, $78, $00 +	db $1c, $20, $24, $20 | $80 +	db $1c | $80, $20, $24, $20 | $80 +; 25523 + +CardStatusGFX: INCBIN "gfx/misc/card_status.2bpp" + +LeaderGFX:  INCBIN "gfx/misc/leaders.w24.2bpp" +LeaderGFX2: INCBIN "gfx/misc/leaders.w24.2bpp" +BadgeGFX:   INCBIN "gfx/misc/badges.2bpp" +BadgeGFX2:  INCBIN "gfx/misc/badges.2bpp" + +CardRightCornerGFX: INCBIN "gfx/misc/card_right_corner.2bpp" diff --git a/event/buena.asm b/event/buena.asm index 0443d962d..ca3fad630 100644 --- a/event/buena.asm +++ b/event/buena.asm @@ -250,7 +250,7 @@ Function8b0e2: ; 8b0e2  	xor a  	ld [wcf76], a  	ld [hBGMapMode], a -	call Function352f +	call InitScrollingMenu  	call UpdateSprites  	call HandleScrollingMenu  	ld a, [MenuSelection] diff --git a/event/elevator.asm b/event/elevator.asm index d43bc9d54..4e522c276 100755 --- a/event/elevator.asm +++ b/event/elevator.asm @@ -127,7 +127,7 @@ Function134dd: ; 134dd  	call Elevator_GetCurrentFloorText  	ld hl, Elevator_MenuDataHeader  	call CopyMenuDataHeader -	call Function352f +	call InitScrollingMenu  	call UpdateSprites  	xor a  	ld [wd0e4], a diff --git a/event/kurt.asm b/event/kurt.asm index 8f9dd4fd6..dcbff8bd4 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -65,7 +65,7 @@ Kurt_SelectApricorn: ; 88055  	ld [wMenuCursorBuffer], a  	xor a  	ld [hBGMapMode], a -	call Function352f +	call InitScrollingMenu  	call UpdateSprites  	call HandleScrollingMenu  	ld a, [wcf73] @@ -1173,7 +1173,7 @@ Function3524:: ; 3524  	jp SetPalettes  ; 352f -Function352f:: ; 352f +InitScrollingMenu:: ; 352f  	ld a, [wMenuBorderTopCoord]  	dec a  	ld b, a @@ -1192,7 +1192,7 @@ Function352f:: ; 352f  	jp TextBox  ; 354b -Function354b:: ; 354b +Function354b:: ; 354b joypad  	call DelayFrame  	ld a, [hInMenu] @@ -13429,12 +13429,12 @@ MenuData_0x24f34: ; 0x24f34  	dn 2, 2 ; rows, columns  	db 6 ; spacing  	dba Strings24f3d -	dbw $09, 0 +	dbw BANK(MenuData_0x24f34), 0  ; 0x24f3d  Strings24f3d: ; 0x24f3d  	db "FIGHT@" -	db $4a, "@" +	db "<PKMN>@"  	db "PACK@"  	db "RUN@"  ; 24f4e @@ -13540,95 +13540,95 @@ Function24fe1: ; 24fe1  Function24ff9: ; 24ff9  	ld a, $1  	ld [wItemQuantityChangeBuffer], a -.asm_24ffe -	call Function25072 -	call Function2500e -	jr nc, .asm_24ffe -	cp $ff -	jr nz, .asm_2500c +.loop +	call Function25072 ; update display +	call Function2500e ; joy action +	jr nc, .loop +	cp -1 +	jr nz, .nope  	scf  	ret -.asm_2500c +.nope  	and a  	ret  ; 2500e  Function2500e: ; 2500e -	call Function354b -	bit 1, c -	jr nz, .asm_2502b -	bit 0, c -	jr nz, .asm_2502f -	bit 7, c -	jr nz, .asm_25033 -	bit 6, c -	jr nz, .asm_2503f -	bit 5, c -	jr nz, .asm_2504d -	bit 4, c -	jr nz, .asm_2505f +	call Function354b ; get joypad +	bit B_BUTTON_F, c +	jr nz, .b +	bit A_BUTTON_F, c +	jr nz, .a +	bit D_DOWN_F, c +	jr nz, .down +	bit D_UP_F, c +	jr nz, .up +	bit D_LEFT_F, c +	jr nz, .left +	bit D_RIGHT_F, c +	jr nz, .right  	and a  	ret -.asm_2502b -	ld a, $ff +.b +	ld a, -1  	scf  	ret -.asm_2502f -	ld a, $0 +.a +	ld a, 0  	scf  	ret -.asm_25033 +.down  	ld hl, wItemQuantityChangeBuffer  	dec [hl] -	jr nz, .asm_2503d +	jr nz, .finish_down  	ld a, [wItemQuantityBuffer]  	ld [hl], a -.asm_2503d +.finish_down  	and a  	ret -.asm_2503f +.up  	ld hl, wItemQuantityChangeBuffer  	inc [hl]  	ld a, [wItemQuantityBuffer]  	cp [hl] -	jr nc, .asm_2504b +	jr nc, .finish_up  	ld [hl], $1 -.asm_2504b +.finish_up  	and a  	ret -.asm_2504d +.left  	ld a, [wItemQuantityChangeBuffer]  	sub $a -	jr c, .asm_25058 -	jr z, .asm_25058 -	jr .asm_2505a +	jr c, .load_1 +	jr z, .load_1 +	jr .finish_left -.asm_25058 +.load_1  	ld a, $1 -.asm_2505a +.finish_left  	ld [wItemQuantityChangeBuffer], a  	and a  	ret -.asm_2505f +.right  	ld a, [wItemQuantityChangeBuffer]  	add $a  	ld b, a  	ld a, [wItemQuantityBuffer]  	cp b -	jr nc, .asm_2506c +	jr nc, .finish_right  	ld b, a -.asm_2506c +.finish_right  	ld a, b  	ld [wItemQuantityChangeBuffer], a  	and a @@ -13745,610 +13745,7 @@ MenuDataHeader_0x250fd: ; 0x250fd  	db 0 ; default option  ; 0x25105 -Function25105: ; 25105 -	ld a, [VramState] -	push af -	xor a -	ld [VramState], a -	ld hl, Options -	ld a, [hl] -	push af -	set 4, [hl] -	call Function2513b -.asm_25117 -	call UpdateTime -	call JoyTextDelay -	ld a, [wJumptableIndex] -	bit 7, a -	jr nz, .asm_25132 -	ld a, [hJoyLast] -	and B_BUTTON -	jr nz, .asm_25132 -	call Function2518e -	call DelayFrame -	jr .asm_25117 -.asm_25132 -	pop af -	ld [Options], a -	pop af -	ld [VramState], a -	ret - -Function2513b: ; 2513b (9:513b) -	call ClearBGPalettes -	call ClearSprites -	call ClearTileMap -	call DisableLCD -	callba Function8833e -	ld hl, CardRightCornerGFX -	ld de, VTiles2 tile $1c -	ld bc, $10 -	ld a, BANK(CardRightCornerGFX) -	call FarCopyBytes -	ld hl, CardStatusGFX -	ld de, VTiles2 tile $29 -	ld bc, $60 + $500 -	ld a, BANK(CardStatusGFX) -	call FarCopyBytes -	call Function25299 -	hlcoord 0, 8 -	ld d, $6 -	call Function253b0 -	call EnableLCD -	call WaitBGMap -	ld b, SCGB_15 -	call GetSGBLayout -	call SetPalettes -	call WaitBGMap -	ld hl, wJumptableIndex -	xor a -rept 3 -	ld [hli], a -endr -	ld [hl], a -	ret - -Function2518e: ; 2518e (9:518e) -	ld a, [wJumptableIndex] -	ld e, a -	ld d, $0 -	ld hl, Jumptable_2519d -rept 2 -	add hl, de -endr -	ld a, [hli] -	ld h, [hl] -	ld l, a -	jp [hl] - -Jumptable_2519d: ; 2519d (9:519d) -	dw Function251b6 -	dw Function251d7 -	dw Function251f4 -	dw Function25221 -	dw Function2524c -	dw Function25279 -	dw Function251b0 - - -Function251ab: ; 251ab (9:51ab) -	ld hl, wJumptableIndex -	inc [hl] -	ret - -Function251b0: ; 251b0 (9:51b0) -	ld hl, wJumptableIndex -	set 7, [hl] -	ret - -Function251b6: ; 251b6 (9:51b6) -	call ClearSprites -	hlcoord 0, 8 -	ld d, $6 -	call Function253b0 -	call WaitBGMap -	ld de, CardStatusGFX -	ld hl, VTiles2 tile $29 -	lb bc, BANK(CardStatusGFX), $6 + $50 -	call Request2bpp -	call Function2530a -	call Function251ab -	ret - -Function251d7: ; 251d7 (9:51d7) -	call Function25415 -	ld hl, hJoyLast -	ld a, [hl] -	and D_RIGHT | A_BUTTON -	jr nz, .asm_251e3 -	ret -.asm_251e3 -	ld a, $2 -	ld [wJumptableIndex], a -	ret -; 251e9 (9:51e9) - -Function251e9: ; 251e9 -	ld a, [KantoBadges] -	and a -	ret z -	ld a, $4 -	ld [wJumptableIndex], a -	ret -; 251f4 - -Function251f4: ; 251f4 (9:51f4) -	call ClearSprites -	hlcoord 0, 8 -	ld d, $6 -	call Function253b0 -	call WaitBGMap -	ld de, LeaderGFX -	ld hl, VTiles2 tile $29 -	lb bc, BANK(LeaderGFX), $56 -	call Request2bpp -	ld de, BadgeGFX -	ld hl, VTiles0 tile $00 -	lb bc, BANK(BadgeGFX), $2c -	call Request2bpp -	call Function2536c -	call Function251ab -	ret - -Function25221: ; 25221 (9:5221) -	ld hl, Unknown_254c9 -	call Function25438 -	ld hl, hJoyLast -	ld a, [hl] -	and A_BUTTON -	jr nz, Function25246 -	ld a, [hl] -	and D_LEFT -	jr nz, .asm_25235 -	ret -.asm_25235 -	ld a, $0 -	ld [wJumptableIndex], a -	ret -; 2523b (9:523b) - -Function2523b: ; 2523b -	ld a, [KantoBadges] -	and a -	ret z -	ld a, $4 -	ld [wJumptableIndex], a -	ret -; 25246 - -Function25246: ; 25246 -	ld a, $6 -	ld [wJumptableIndex], a -	ret - -Function2524c: ; 2524c (9:524c) -	call ClearSprites -	hlcoord 0, 8 -	ld d, $6 -	call Function253b0 -	call WaitBGMap -	ld de, LeaderGFX2 -	ld hl, VTiles2 tile $29 -	lb bc, BANK(LeaderGFX2), $56 -	call Request2bpp -	ld de, BadgeGFX2 -	ld hl, VTiles0 tile $00 -	lb bc, BANK(BadgeGFX2), $2c -	call Request2bpp -	call Function2536c -	call Function251ab -	ret - -Function25279: ; 25279 (9:5279) -	ld hl, Unknown_254c9 -	call Function25438 -	ld hl, hJoyLast -	ld a, [hl] -	and D_LEFT -	jr nz, .asm_2528d -	ld a, [hl] -	and D_RIGHT -	jr nz, .asm_25293 -	ret -.asm_2528d -	ld a, $2 -	ld [wJumptableIndex], a -	ret -.asm_25293 -	ld a, $0 -	ld [wJumptableIndex], a -	ret - -Function25299: ; 25299 (9:5299) -	hlcoord 0, 0 -	ld d, $5 -	call Function253b0 -	hlcoord 2, 2 -	ld de, String_252ec -	call PlaceString -	hlcoord 2, 4 -	ld de, Tilemap_252f9 -	call Function253a8 -	hlcoord 7, 2 -	ld de, PlayerName -	call PlaceString -	hlcoord 5, 4 -	ld de, PlayerID -	lb bc, PRINTNUM_LEADINGZEROS | 2, 5 -	call PrintNum -	hlcoord 7, 6 -	ld de, Money -	lb bc, PRINTNUM_MONEY | 3, 6 -	call PrintNum -	hlcoord 1, 3 -	ld de, Tilemap_252fc -	call Function253a8 -	hlcoord 14, 1 -	lb bc, 5, 7 -	xor a -	ld [hFillBox], a -	predef FillBox -	ret -; 252ec (9:52ec) - -String_252ec: ; 252ec -	db   "NAME/" -	next "" -	next "MONEY@" - -Tilemap_252f9: ; 252f9 -	db $27, $28, $ff ; ID NO - -Tilemap_252fc: ; 252fc -	db $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $26, $ff ; ____________> -; 2530a - -Function2530a: ; 2530a (9:530a) -	hlcoord 2, 10 -	ld de, String_2534c -	call PlaceString -	hlcoord 10, 15 -	ld de, String_2535c -	call PlaceString -	ld hl, PokedexCaught -	ld b, $20 -	call CountSetBits -	ld de, wd265 -	hlcoord 15, 10 -	lb bc, 1, 3 -	call PrintNum -	call Function25415 -	hlcoord 2, 8 -	ld de, Tilemap_25366 -	call Function253a8 -	ld a, [StatusFlags] ; pokedex -	bit 0, a -	ret nz -	hlcoord 1, 9 -	lb bc, 2, 17 -	call ClearBox -	ret -; 2534c (9:534c) - -String_2534c: ; 2534c -	db   "#DEX" -	next "PLAY TIME" -	db   "@" - -String_2535b: ; 2535b -	db "@" - -String_2535c: ; 2535c -	db "  BADGES▶@" - -Tilemap_25366: ; 25366 -	db $29, $2a, $2b, $2c, $2d, $ff -; 2536c - -Function2536c: ; 2536c (9:536c) -	hlcoord 2, 8 -	ld de, Tilemap_253a2 -	call Function253a8 -	hlcoord 2, 10 -	ld a, $29 -	ld c, $4 -.asm_2537c -	call Function253f4 -rept 4 -	inc hl -endr -	dec c -	jr nz, .asm_2537c -	hlcoord 2, 13 -	ld a, $51 -	ld c, $4 -.asm_2538d -	call Function253f4 -rept 4 -	inc hl -endr -	dec c -	jr nz, .asm_2538d -	xor a -	ld [wcf64], a -	ld hl, Unknown_254c9 -	call Function25448 -	ret -; 253a2 (9:53a2) - -Tilemap_253a2: ; 253a2 -	db $79, $7a, $7b, $7c, $7d, $ff ; "BADGES" -; 253a8 - -Function253a8: ; 253a8 (9:53a8) -	ld a, [de] -	cp $ff -	ret z -	ld [hli], a -	inc de -	jr Function253a8 - -Function253b0: ; 253b0 (9:53b0) -	ld e, $14 -.asm_253b2 -	ld a, $23 -	ld [hli], a -	dec e -	jr nz, .asm_253b2 -	ld a, $23 -	ld [hli], a -	ld e, $11 -	ld a, $7f -.asm_253bf -	ld [hli], a -	dec e -	jr nz, .asm_253bf -	ld a, $1c -	ld [hli], a -	ld a, $23 -	ld [hli], a -.asm_253c9 -	ld a, $23 -	ld [hli], a -	ld e, $12 -	ld a, $7f -.asm_253d0 -	ld [hli], a -	dec e -	jr nz, .asm_253d0 -	ld a, $23 -	ld [hli], a -	dec d -	jr nz, .asm_253c9 -	ld a, $23 -	ld [hli], a -	ld a, $24 -	ld [hli], a -	ld e, $11 -	ld a, $7f -.asm_253e4 -	ld [hli], a -	dec e -	jr nz, .asm_253e4 -	ld a, $23 -	ld [hli], a -	ld e, $14 -.asm_253ed -	ld a, $23 -	ld [hli], a -	dec e -	jr nz, .asm_253ed -	ret - -Function253f4: ; 253f4 (9:53f4) -	push de -	push hl -	ld [hli], a -	inc a -	ld [hli], a -	inc a -	ld [hli], a -	inc a -	ld [hli], a -	inc a -	ld de, $11 -	add hl, de -	ld [hli], a -	inc a -	ld [hli], a -	inc a -	ld [hli], a -	inc a -	ld de, $11 -	add hl, de -	ld [hli], a -	inc a -	ld [hli], a -	inc a -	ld [hli], a -	inc a -	pop hl -	pop de -	ret - -Function25415: ; 25415 (9:5415) -	hlcoord 11, 12 -	ld de, GameTimeHours -	lb bc, 2, 4 -	call PrintNum -	inc hl -	ld de, GameTimeMinutes -	lb bc, PRINTNUM_LEADINGZEROS | 1, 2 -	call PrintNum -	ld a, [hVBlankCounter] -	and $1f -	ret nz -	hlcoord 15, 12 -	ld a, [hl] -	xor $51 -	ld [hl], a -	ret - -Function25438: ; 25438 (9:5438) -	ld a, [hVBlankCounter] -	and $7 -	ret nz -	ld a, [wcf64] -	inc a -	and $7 -	ld [wcf64], a -	jr Function25448 - -Function25448: ; 25448 (9:5448) -	ld a, [hli] -	ld e, a -	ld a, [hli] -	ld d, a -	ld a, [de] -	ld c, a -	ld de, Sprites -	ld b, 8 -.asm_25453 -	srl c -	push bc -	jr nc, .asm_25472 -	push hl -	ld a, [hli] -	ld b, a -	ld a, [hli] -	ld c, a -	ld a, [hli] -	ld [wcf66], a -	ld a, [wcf64] -	add l -	ld l, a -	ld a, 0 -	adc h -	ld h, a -	ld a, [hl] -	ld [wcf65], a -	call Function2547b -	pop hl -.asm_25472 -	ld bc, $b -	add hl, bc -	pop bc -	dec b -	jr nz, .asm_25453 -	ret - -Function2547b: ; 2547b (9:547b) -	ld a, [wcf65] -	and $80 -	jr nz, .asm_25487 -	ld hl, Unknown_254a7 -	jr .asm_2548a -.asm_25487 -	ld hl, Unknown_254b8 -.asm_2548a -	ld a, [hli] -	cp $ff -	ret z -	add b -	ld [de], a -	inc de -	ld a, [hli] -	add c -	ld [de], a -	inc de -	ld a, [wcf65] -	and $7f -	add [hl] -	ld [de], a -	inc hl -	inc de -	ld a, [wcf66] -	add [hl] -	ld [de], a -	inc hl -	inc de -	jr .asm_2548a -; 254a7 (9:54a7) - -Unknown_254a7: ; 254a7 -	db $00, $00, $00, $00 -	db $00, $08, $01, $00 -	db $08, $00, $02, $00 -	db $08, $08, $03, $00 -	db $ff - -Unknown_254b8: ; 254b8 -	db $00, $00, $01, $20 -	db $00, $08, $00, $20 -	db $08, $00, $03, $20 -	db $08, $08, $02, $20 -	db $ff - -Unknown_254c9: ; 254c9 -; Template OAM data for each badge on the trainer card. -; Format: -	; y, x, palette -	; cycle 1: face tile, in1 tile, in2 tile, in3 tile -	; cycle 2: face tile, in1 tile, in2 tile, in3 tile - -	dw JohtoBadges - -	; Zephyrbadge -	db $68, $18, $00 -	db $00, $20, $24, $20 | $80 -	db $00, $20, $24, $20 | $80 - -	; Hivebadge -	db $68, $38, $00 -	db $04, $20, $24, $20 | $80 -	db $04, $20, $24, $20 | $80 - -	; Plainbadge -	db $68, $58, $00 -	db $08, $20, $24, $20 | $80 -	db $08, $20, $24, $20 | $80 - -	; Fogbadge -	db $68, $78, $00 -	db $0c, $20, $24, $20 | $80 -	db $0c, $20, $24, $20 | $80 - -	; Mineralbadge -	db $80, $38, $00 -	db $10, $20, $24, $20 | $80 -	db $10, $20, $24, $20 | $80 - -	; Stormbadge -	db $80, $18, $00 -	db $14, $20, $24, $20 | $80 -	db $14, $20, $24, $20 | $80 - -	; Glacierbadge -	db $80, $58, $00 -	db $18, $20, $24, $20 | $80 -	db $18, $20, $24, $20 | $80 - -	; Risingbadge -	; X-flips on alternate cycles. -	db $80, $78, $00 -	db $1c, $20, $24, $20 | $80 -	db $1c | $80, $20, $24, $20 | $80 -; 25523 - -CardStatusGFX: INCBIN "gfx/misc/card_status.2bpp" - -LeaderGFX:  INCBIN "gfx/misc/leaders.w24.2bpp" -LeaderGFX2: INCBIN "gfx/misc/leaders.w24.2bpp" -BadgeGFX:   INCBIN "gfx/misc/badges.2bpp" -BadgeGFX2:  INCBIN "gfx/misc/badges.2bpp" - -CardRightCornerGFX: INCBIN "gfx/misc/card_right_corner.2bpp" - +INCLUDE "engine/trainer_card.asm"  ProfOaksPC: ; 0x265d3  	ld hl, OakPCText1 @@ -14630,1400 +14027,7 @@ OakPCText4: ; 0x2674c  	text_jump _OakPCText4  	db "@" - -InitDecorations: ; 26751 (9:6751) -	ld a, DECO_FEATHERY_BED -	ld [Bed], a -	ld a, DECO_TOWN_MAP -	ld [Poster], a -	ret - -_KrisDecorationMenu: ; 0x2675c -	ld a, [wcf76] -	push af -	ld hl, MenuDataHeader_0x2679a -	call LoadMenuDataHeader -	xor a -	ld [wd1ee], a -	ld a, $1 -	ld [wd1ef], a -.asm_2676f -	ld a, [wd1ef] -	ld [wMenuCursorBuffer], a -	call Function26806 -	call DoNthMenu -	ld a, [MenuSelection2] -	ld [wd1ef], a -	jr c, .asm_2678e -	ld a, [MenuSelection] -	ld hl, Unknown_267aa -	call MenuJumptable -	jr nc, .asm_2676f - -.asm_2678e -	call ExitMenu -	pop af -	ld [wcf76], a -	ld a, [wd1ee] -	ld c, a -	ret -; 0x2679a - -MenuDataHeader_0x2679a: ; 0x2679a -	db $40 ; flags -	db 00, 05 ; start coords -	db 17, 19 ; end coords -	dw MenuData2_0x267a2 -	db 1 ; default option -; 0x267a2 - -MenuData2_0x267a2: ; 0x267a2 -	db $a0 ; flags -	db 0 ; items -	dw wd002 -	dw PlaceNthMenuStrings -	dw Unknown_267aa -; 0x267aa - -Unknown_267aa: ; 267aa -	dw Function268b5, .bed -	dw Function268ca, .carpet -	dw Function268df, .plant -	dw Function268f3, .poster -	dw Function26908, .game -	dw Function2691d, .ornament -	dw Function26945, .big_doll -	dw Function26959, .exit - -.bed      db "BED@" -.carpet   db "CARPET@" -.plant    db "PLANT@" -.poster   db "POSTER@" -.game     db "GAME CONSOLE@" -.ornament db "ORNAMENT@" -.big_doll db "BIG DOLL@" -.exit     db "EXIT@" -; 26806 - -Function26806: ; 26806 -	xor a -	ld [wcf76], a -	call Function26822 -	call Function2683a -	ld a, $7 -	call Function26830 -	ld hl, StringBuffer2 -	ld de, wd002 -	ld bc, $d -	call CopyBytes -	ret - -Function26822: ; 26822 (9:6822) -	ld hl, StringBuffer2 -	xor a -	ld [hli], a -	ld bc, ITEM_NAME_LENGTH - 1 -	ld a, -1 -	call ByteFill -	ret - -Function26830: ; 26830 (9:6830) -	ld hl, StringBuffer2 -	inc [hl] -	ld e, [hl] -	ld d, 0 -	add hl, de -	ld [hl], a -	ret - -Function2683a: ; 2683a (9:683a) -	ld hl, Jumptable_26855 -.loop -	ld a, [hli] -	ld e, a -	ld a, [hli] -	ld d, a -	or e -	jr z, .done -	push hl -	call _de_ -	pop hl -	jr nc, .next -	ld a, [hl] -	push hl -	call Function26830 -	pop hl -.next -	inc hl -	jr .loop -.done -	ret -; 26855 (9:6855) - -Jumptable_26855: ; 26855 -	dwb Function268bd, 0 ; bed -	dwb Function268d2, 1 ; carpet -	dwb Function268e7, 2 ; plant -	dwb Function268fb, 3 ; poster -	dwb Function26910, 4 ; game console -	dwb Function26925, 5 ; ornament -	dwb Function2694d, 6 ; big doll -	dw 0 ; end -; 2686c - -Function2686c: ; 2686c -	xor a -	ld hl, wd002 -	ld [hli], a -	ld a, -1 -	ld bc, $10 -	call ByteFill -	ret -; 2687a - -CheckAllDecorationFlags: ; 2687a -.loop -	ld a, [hli] -	cp -1 -	jr z, .done -	push hl -	push af -	ld b, CHECK_FLAG -	call DecorationFlagAction -	ld a, c -	and a -	pop bc -	ld a, b -	call nz, Function26891 -	pop hl -	jr .loop - -.done -	ret -; 26891 - -Function26891: ; 26891 -	ld hl, wd002 -	inc [hl] -	ld e, [hl] -	ld d, $0 -	add hl, de -	ld [hl], a -	ret -; 2689b - -Function2689b: ; 2689b -	push bc -	push hl -	call Function2686c -	pop hl -	call CheckAllDecorationFlags -	pop bc -	ld a, [wd002] -	and a -	ret z -	ld a, c -	call Function26891 -	ld a, $0 -	call Function26891 -	scf -	ret -; 268b5 - -Function268b5: ; 268b5 -	call Function268bd -	call Function2695b -	xor a -	ret -; 268bd - -Function268bd: ; 268bd -	ld hl, Unknown_268c5 -	ld c, 1 -	jp Function2689b -; 268c5 - -Unknown_268c5: ; 268c5 -	db 2, 3, 4, 5, $ff -; 268ca - -Function268ca: ; 268ca -	call Function268d2 -	call Function2695b -	xor a -	ret -; 268d2 - -Function268d2: ; 268d2 -	ld hl, Unknown_268da -	ld c, 6 -	jp Function2689b -; 268da - -Unknown_268da: ; 268da -	db 7, 8, 9, 10, $ff -; 268df - -Function268df: ; 268df -	call Function268e7 -	call Function2695b -	xor a -	ret -; 268e7 - -Function268e7: ; 268e7 -	ld hl, Unknown_268ef -	ld c, 11 -	jp Function2689b -; 268ef - -Unknown_268ef: ; 268ef -	db 12, 13, 14, $ff -; 268f3 - -Function268f3: ; 268f3 -	call Function268fb -	call Function2695b -	xor a -	ret -; 268fb - -Function268fb: ; 268fb -	ld hl, Unknown_26903 -	ld c, 15 -	jp Function2689b -; 26903 - -Unknown_26903: ; 26903 -	db 16, 17, 18, 19, $ff -; 26908 - -Function26908: ; 26908 -	call Function26910 -	call Function2695b -	xor a -	ret -; 26910 - -Function26910: ; 26910 -	ld hl, Unknown_26918 -	ld c, 20 -	jp Function2689b -; 26918 - -Unknown_26918: ; 26918 -	db 21, 22, 23, 24, $ff -; 2691d - -Function2691d: ; 2691d -	call Function26925 -	call Function2695b -	xor a -	ret -; 26925 - -Function26925: ; 26925 -	ld hl, Unknown_2692d -	ld c, 29 -	jp Function2689b -; 2692d - -Unknown_2692d: ; 2692d -	db 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 -	db 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 -	db 50, 51, 52, -1 -; 26945 - -Function26945: ; 26945 -	call Function2694d -	call Function2695b -	xor a -	ret -; 2694d - -Function2694d: ; 2694d -	ld hl, Unknown_26955 -	ld c, 25 -	jp Function2689b -; 26955 - -Unknown_26955: ; 26955 -	db 26, 27, 28, -1 -; 26959 - -Function26959: ; 26959 -	scf -	ret -; 2695b - -Function2695b: ; 2695b -	ld a, [wd002] -	and a -	jr z, .empty -	cp 8 -	jr nc, .beyond_eight -	xor a -	ld [wcf76], a -	ld hl, MenuDataHeader_0x269b5 -	call LoadMenuDataHeader -	call DoNthMenu -	jr c, .no_action_1 -	call DoDecorationAction2 - -.no_action_1 -	call ExitMenu -	ret - -.beyond_eight -	ld hl, wd002 -	ld e, [hl] -	dec [hl] -	ld d, 0 -	add hl, de -	ld [hl], -1 -	call LoadStandardMenuDataHeader -	ld hl, MenuDataHeader_0x269c5 -	call CopyMenuDataHeader -	xor a -	ld [hBGMapMode], a -	call Function352f -	xor a -	ld [wd0e4], a -	call HandleScrollingMenu -	ld a, [wcf73] -	cp 2 -	jr z, .no_action_2 -	call DoDecorationAction2 - -.no_action_2 -	call ExitMenu -	ret - -.empty -	ld hl, UnknownText_0x269b0 -	call MenuTextBoxBackup -	ret -; 269b0 - -UnknownText_0x269b0: ; 0x269b0 -	; There's nothing to choose. -	text_jump UnknownText_0x1bc471 -	db "@" -; 0x269b5 - -MenuDataHeader_0x269b5: ; 0x269b5 -	db $40 ; flags -	db 00, 00 ; start coords -	db 17, 19 ; end coords -	dw MenuData2_0x269bd -	db 1 ; default option -; 0x269bd - -MenuData2_0x269bd: ; 0x269bd -	db $a0 ; flags -	db 0 ; items -	dw wd002 -	dw DecorationMenuFunction -	dw DecorationAttributes -; 0x269c5 - -MenuDataHeader_0x269c5: ; 0x269c5 -	db $40 ; flags -	db 01, 01 ; start coords -	db 16, 18 ; end coords -	dw MenuData2_0x269cd -	db 1 ; default option -; 0x269cd - -MenuData2_0x269cd: ; 0x269cd -	db $10 ; flags -	db 8, 0 ; rows, columns -	db 1 ; horizontal spacing -	dbw 0, wd002 ; text pointer -	dba DecorationMenuFunction -	dbw 0, 0 -	dbw 0, 0 -; 269dd - - -GetDecorationData: ; 269dd -	ld hl, DecorationAttributes -	ld bc, 6 -	call AddNTimes -	ret -; 269e7 - -GetDecorationName: ; 269e7 -	push hl -	call GetDecorationData -	call GetDecoName -	pop hl -	call CopyName2 -	ret -; 269f3 - -DecorationMenuFunction: ; 269f3 -	ld a, [MenuSelection] -	push de -	call GetDecorationData -	call GetDecoName -	pop hl -	call PlaceString -	ret -; 26a02 - -DoDecorationAction2: ; 26a02 -	ld a, [MenuSelection] -	call GetDecorationData -	ld de, 2 ; function 2 -	add hl, de -	ld a, [hl] -	ld hl, .DecoActions -	rst JumpTable -	ret -; 26a12 - -.DecoActions: ; 26a12 -	dw DecoAction_nothing -	dw DecoAction_setupbed -	dw DecoAction_putawaybed -	dw DecoAction_setupcarpet -	dw DecoAction_putawaycarpet -	dw DecoAction_setupplant -	dw DecoAction_putawayplant -	dw DecoAction_setupposter -	dw DecoAction_putawayposter -	dw DecoAction_setupconsole -	dw DecoAction_putawayconsole -	dw DecoAction_setupbigdoll -	dw DecoAction_putawaybigdoll -	dw DecoAction_setupornament -	dw DecoAction_putawayornament -; 26a30 - - -GetDecorationFlag: ; 26a30 -	call GetDecorationData -	ld de, 3 ; event flag -	add hl, de -	ld a, [hli] -	ld d, [hl] -	ld e, a -	ret -; 26a3b - -DecorationFlagAction: ; 26a3b -	push bc -	call GetDecorationFlag -	pop bc -	call EventFlagAction -	ret -; 26a44 - -GetDecorationSprite: ; 26a44 -	ld a, c -	call GetDecorationData -	ld de, 5 ; sprite -	add hl, de -	ld a, [hl] -	ld c, a -	ret -; 26a4f - -decoration: MACRO -	; type, name, command, event flag, tile/sprite -	db \1, \2, \3 -	dw \4 -	db \5 -ENDM - -DecorationAttributes: ; 26a4f -	decoration DECO_PLANT,    $00,               $0,                 EVENT_GAVE_KURT_APRICORNS,                         $00 -	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_BED,       EVENT_GAVE_KURT_APRICORNS,                         $00 -	decoration DECO_BED,      FEATHERY_BED,      SET_UP_BED,         EVENT_DECO_BED_1,                  $1b -	decoration DECO_BED,      PINK_BED,          SET_UP_BED,         EVENT_DECO_BED_2,                  $1c -	decoration DECO_BED,      POLKADOT_BED,      SET_UP_BED,         EVENT_DECO_BED_3,                  $1d -	decoration DECO_BED,      PIKACHU_BED,       SET_UP_BED,         EVENT_DECO_BED_4,                  $1e -	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_CARPET,    EVENT_GAVE_KURT_APRICORNS,                         $00 -	decoration DECO_CARPET,   RED_CARPET,        SET_UP_CARPET,      EVENT_DECO_CARPET_1,               $08 -	decoration DECO_CARPET,   BLUE_CARPET,       SET_UP_CARPET,      EVENT_DECO_CARPET_2,               $0b -	decoration DECO_CARPET,   YELLOW_CARPET,     SET_UP_CARPET,      EVENT_DECO_CARPET_3,               $0e -	decoration DECO_CARPET,   GREEN_CARPET,      SET_UP_CARPET,      EVENT_DECO_CARPET_4,               $11 -	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_PLANT,     EVENT_GAVE_KURT_APRICORNS,                         $00 -	decoration DECO_PLANT,    MAGNAPLANT,        SET_UP_PLANT,       EVENT_DECO_PLANT_1,                $20 -	decoration DECO_PLANT,    TROPICPLANT,       SET_UP_PLANT,       EVENT_DECO_PLANT_2,                $21 -	decoration DECO_PLANT,    JUMBOPLANT,        SET_UP_PLANT,       EVENT_DECO_PLANT_3,                $22 -	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_POSTER,    EVENT_GAVE_KURT_APRICORNS,                         $00 -	decoration DECO_PLANT,    TOWN_MAP_D,        SET_UP_POSTER,      EVENT_DECO_PLANT_4,                $1f -	decoration DECO_POSTER,   PIKACHU,           SET_UP_POSTER,      EVENT_DECO_POSTER_1,               $23 -	decoration DECO_POSTER,   CLEFAIRY,          SET_UP_POSTER,      EVENT_DECO_POSTER_2,               $24 -	decoration DECO_POSTER,   JIGGLYPUFF,        SET_UP_POSTER,      EVENT_DECO_POSTER_3,               $25 -	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_CONSOLE,   EVENT_GAVE_KURT_APRICORNS,                         $00 -	decoration DECO_PLANT,    FAMICOM,           SET_UP_CONSOLE,     EVENT_DECO_FAMICOM,                SPRITE_FAMICOM -	decoration DECO_PLANT,    SUPER_NES,         SET_UP_CONSOLE,     EVENT_DECO_SNES,                   SPRITE_SNES -	decoration DECO_PLANT,    NINTENDO_64,       SET_UP_CONSOLE,     EVENT_DECO_N64,                    SPRITE_N64 -	decoration DECO_PLANT,    VIRTUAL_BOY,       SET_UP_CONSOLE,     EVENT_DECO_VIRTUAL_BOY,            SPRITE_VIRTUAL_BOY -	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_BIG_DOLL,  EVENT_GAVE_KURT_APRICORNS,                         $00 -	decoration DECO_BIGDOLL,  SNORLAX,           SET_UP_BIG_DOLL,    EVENT_DECO_BIG_SNORLAX_DOLL,       SPRITE_BIG_SNORLAX -	decoration DECO_BIGDOLL,  ONIX,              SET_UP_BIG_DOLL,    EVENT_DECO_BIG_ONIX_DOLL,          SPRITE_BIG_ONIX -	decoration DECO_BIGDOLL,  LAPRAS,            SET_UP_BIG_DOLL,    EVENT_DECO_BIG_LAPRAS_DOLL,        SPRITE_BIG_LAPRAS -	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_DOLL,      EVENT_GAVE_KURT_APRICORNS,                         $00 -	decoration DECO_DOLL,     PIKACHU,           SET_UP_DOLL,        EVENT_DECO_PIKACHU_DOLL,           SPRITE_PIKACHU -	decoration DECO_PLANT,    SURF_PIKA_DOLL,    SET_UP_DOLL,        EVENT_DECO_SURFING_PIKACHU_DOLL,   SPRITE_SURFING_PIKACHU -	decoration DECO_DOLL,     CLEFAIRY,          SET_UP_DOLL,        EVENT_DECO_CLEFAIRY_DOLL,          SPRITE_CLEFAIRY -	decoration DECO_DOLL,     JIGGLYPUFF,        SET_UP_DOLL,        EVENT_DECO_JIGGLYPUFF_DOLL,        SPRITE_JIGGLYPUFF -	decoration DECO_DOLL,     BULBASAUR,         SET_UP_DOLL,        EVENT_DECO_BULBASAUR_DOLL,         SPRITE_BULBASAUR -	decoration DECO_DOLL,     CHARMANDER,        SET_UP_DOLL,        EVENT_DECO_CHARMANDER_DOLL,        SPRITE_CHARMANDER -	decoration DECO_DOLL,     SQUIRTLE,          SET_UP_DOLL,        EVENT_DECO_SQUIRTLE_DOLL,          SPRITE_SQUIRTLE -	decoration DECO_DOLL,     POLIWAG,           SET_UP_DOLL,        EVENT_DECO_POLIWAG_DOLL,           SPRITE_POLIWAG -	decoration DECO_DOLL,     DIGLETT,           SET_UP_DOLL,        EVENT_DECO_DIGLETT_DOLL,           SPRITE_DIGLETT -	decoration DECO_DOLL,     STARYU,            SET_UP_DOLL,        EVENT_DECO_STARMIE_DOLL,           SPRITE_STARMIE -	decoration DECO_DOLL,     MAGIKARP,          SET_UP_DOLL,        EVENT_DECO_MAGIKARP_DOLL,          SPRITE_MAGIKARP -	decoration DECO_DOLL,     ODDISH,            SET_UP_DOLL,        EVENT_DECO_ODDISH_DOLL,            SPRITE_ODDISH -	decoration DECO_DOLL,     GENGAR,            SET_UP_DOLL,        EVENT_DECO_GENGAR_DOLL,            SPRITE_GENGAR -	decoration DECO_DOLL,     SHELLDER,          SET_UP_DOLL,        EVENT_DECO_SHELLDER_DOLL,          SPRITE_SHELLDER -	decoration DECO_DOLL,     GRIMER,            SET_UP_DOLL,        EVENT_DECO_GRIMER_DOLL,            SPRITE_GRIMER -	decoration DECO_DOLL,     VOLTORB,           SET_UP_DOLL,        EVENT_DECO_VOLTORB_DOLL,           SPRITE_VOLTORB -	decoration DECO_DOLL,     WEEDLE,            SET_UP_DOLL,        EVENT_DECO_WEEDLE_DOLL,            SPRITE_WEEDLE -	decoration DECO_DOLL,     UNOWN,             SET_UP_DOLL,        EVENT_DECO_UNOWN_DOLL,             SPRITE_UNOWN -	decoration DECO_DOLL,     GEODUDE,           SET_UP_DOLL,        EVENT_DECO_GEODUDE_DOLL,           SPRITE_GEODUDE -	decoration DECO_DOLL,     MACHOP,            SET_UP_DOLL,        EVENT_DECO_MACHOP_DOLL,            SPRITE_MACHOP -	decoration DECO_DOLL,     TENTACOOL,         SET_UP_DOLL,        EVENT_DECO_TENTACOOL_DOLL,         SPRITE_TENTACOOL -	decoration DECO_PLANT,    GOLD_TROPHY,       SET_UP_DOLL,        EVENT_DECO_GOLD_TROPHY,            SPRITE_GOLD_TROPHY -	decoration DECO_PLANT,    SILVER_TROPHY,     SET_UP_DOLL,        EVENT_DECO_SILVER_TROPHY,          SPRITE_SILVER_TROPHY -; 26b8d - - -DecorationNames: ; 26b8d -	db "CANCEL@" -	db "PUT IT AWAY@" -	db "MAGNAPLANT@" -	db "TROPICPLANT@" -	db "JUMBOPLANT@" -	db "TOWN MAP@" -	db "NES@" -	db "SUPER NES@" -	db "NINTENDO 64@" -	db "VIRTUAL BOY@" -	db "GOLD TROPHY@" -	db "SILVER TROPHY@" -	db "SURF PIKACHU DOLL@" -	db " BED@" -	db " CARPET@" -	db " POSTER@" -	db " DOLL@" -	db "BIG @" -	db "FEATHERY@" -	db "PIKACHU@" -	db "PINK@" -	db "POLKADOT@" -	db "RED@" -	db "BLUE@" -	db "YELLOW@" -	db "GREEN@" -; 26c72 - -GetDecoName: ; 26c72 -	ld a, [hli] -	ld e, [hl] -	ld bc, StringBuffer2 -	push bc -	ld hl, .NameFunctions -	rst JumpTable -	pop de -	ret -; 26c7e - -.NameFunctions: ; 26c7e -	dw .invalid -	dw .plant -	dw .bed -	dw .carpet -	dw .poster -	dw .doll -	dw .bigdoll -; 26c8c - - -.invalid: ; 26c8c -	ret -; 26c8d - -.plant: ; 26c8d -	ld a, e -	jr .getdeconame - -.bed: ; 26c90 -	call .plant -	ld a, _BED -	jr .getdeconame - -.carpet: ; 26c97 -	call .plant -	ld a, _CARPET -	jr .getdeconame - -.poster: ; 26c9e -	ld a, e -	call .getpokename -	ld a, _POSTER -	jr .getdeconame - -.doll: ; 26ca6 -	ld a, e -	call .getpokename -	ld a, _DOLL -	jr .getdeconame - -.bigdoll: ; 26cae -	push de -	ld a, BIG_ -	call .getdeconame -	pop de -	ld a, e -	jr .getpokename - -.unused: ; 26cb8 -	push de -	call .getdeconame -	pop de -	ld a, e -	jr .getdeconame - -.getpokename: ; 26cc0 -	push bc -	ld [wd265], a -	call GetPokemonName -	pop bc -	jr .copy - -.getdeconame: ; 26cca -	call ._getdeconame -	jr .copy - -._getdeconame: ; 26ccf -	push bc -	ld hl, DecorationNames -	call GetNthString -	ld d, h -	ld e, l -	pop bc -	ret - -.copy: ; 26cda -	ld h, b -	ld l, c -	call CopyName2 -	dec hl -	ld b, h -	ld c, l -	ret -; 26ce3 - -DecoAction_nothing: ; 26ce3 -	scf -	ret -; 26ce5 - -DecoAction_setupbed: ; 26ce5 -	ld hl, Bed -	jp DecoAction_TrySetItUp -; 26ceb - -DecoAction_putawaybed: ; 26ceb -	ld hl, Bed -	jp DecoAction_TryPutItAway -; 26cf1 - -DecoAction_setupcarpet: ; 26cf1 -	ld hl, Carpet -	jp DecoAction_TrySetItUp -; 26cf7 - -DecoAction_putawaycarpet: ; 26cf7 -	ld hl, Carpet -	jp DecoAction_TryPutItAway -; 26cfd - -DecoAction_setupplant: ; 26cfd -	ld hl, Plant -	jp DecoAction_TrySetItUp -; 26d03 - -DecoAction_putawayplant: ; 26d03 -	ld hl, Plant -	jp DecoAction_TryPutItAway -; 26d09 - -DecoAction_setupposter: ; 26d09 -	ld hl, Poster -	jp DecoAction_TrySetItUp -; 26d0f - -DecoAction_putawayposter: ; 26d0f -	ld hl, Poster -	jp DecoAction_TryPutItAway -; 26d15 - -DecoAction_setupconsole: ; 26d15 -	ld hl, Console -	jp DecoAction_TrySetItUp -; 26d1b - -DecoAction_putawayconsole: ; 26d1b -	ld hl, Console -	jp DecoAction_TryPutItAway -; 26d21 - -DecoAction_setupbigdoll: ; 26d21 -	ld hl, BigDoll -	jp DecoAction_TrySetItUp -; 26d27 - -DecoAction_putawaybigdoll: ; 26d27 -	ld hl, BigDoll -	jp DecoAction_TryPutItAway -; 26d2d - -DecoAction_TrySetItUp: ; 26d2d -	ld a, [hl] -	ld [Buffer1], a -	push hl -	call DecoAction_SetItUp -	jr c, .failed -	ld a, 1 -	ld [wd1ee], a -	pop hl -	ld a, [MenuSelection] -	ld [hl], a -	xor a -	ret - -.failed -	pop hl -	xor a -	ret -; 26d46 - -DecoAction_SetItUp: ; 26d46 -; See if there's anything of the same type already out -	ld a, [Buffer1] -	and a -	jr z, .nothingthere -; See if that item is already out -	ld b, a -	ld a, [MenuSelection] -	cp b -	jr z, .alreadythere -; Put away the item that's already out, and set up the new one -	ld a, [MenuSelection] -	ld hl, StringBuffer4 -	call GetDecorationName -	ld a, [Buffer1] -	ld hl, StringBuffer3 -	call GetDecorationName -	ld hl, UnknownText_0x26ee0 -	call MenuTextBoxBackup -	xor a -	ret - -.nothingthere -	ld a, [MenuSelection] -	ld hl, StringBuffer3 -	call GetDecorationName -	ld hl, UnknownText_0x26edb -	call MenuTextBoxBackup -	xor a -	ret - -.alreadythere -	ld hl, UnknownText_0x26ee5 -	call MenuTextBoxBackup -	scf -	ret -; 26d86 - -DecoAction_TryPutItAway: ; 26d86 -; If there is no item of that type already set, there is nothing to put away. -	ld a, [hl] -	ld [Buffer1], a -	xor a -	ld [hl], a -	ld a, [Buffer1] -	and a -	jr z, .nothingthere -; Put it away. -	ld a, $1 -	ld [wd1ee], a -	ld a, [Buffer1] -	ld [MenuSelection], a -	ld hl, StringBuffer3 -	call GetDecorationName -	ld hl, UnknownText_0x26ed1 -	call MenuTextBoxBackup -	xor a -	ret - -.nothingthere -	ld hl, UnknownText_0x26ed6 -	call MenuTextBoxBackup -	xor a -	ret -; 26db3 - -DecoAction_setupornament: ; 26db3 -	ld hl, UnknownText_0x26e41 -	call DecoAction_AskWhichSide -	jr c, .cancel -	call DecoAction_SetItUp_Ornament -	jr c, .cancel -	ld a, $1 -	ld [wd1ee], a -	jr DecoAction_FinishUp_Ornament - -.cancel -	xor a -	ret - -DecoAction_putawayornament: ; 26dc9 -	ld hl, UnknownText_0x26e6b -	call DecoAction_AskWhichSide -	jr nc, .incave -	xor a -	ret - -.incave -	call DecoAction_PutItAway_Ornament - -DecoAction_FinishUp_Ornament: ; 26dd6 -	call QueryWhichSide -	ld a, [wd1ec] -	ld [hl], a -	ld a, [wd1ed] -	ld [de], a -	xor a -	ret -; 26de3 - -DecoAction_SetItUp_Ornament: ; 26de3 -	ld a, [wd1ec] -	and a -	jr z, .nothingthere -	ld b, a -	ld a, [MenuSelection] -	cp b -	jr z, .failed -	ld a, b -	ld hl, StringBuffer3 -	call GetDecorationName -	ld a, [MenuSelection] -	ld hl, StringBuffer4 -	call GetDecorationName -	ld a, [MenuSelection] -	ld [wd1ec], a -	call .getwhichside -	ld hl, UnknownText_0x26ee0 -	call MenuTextBoxBackup -	xor a -	ret - -.nothingthere -	ld a, [MenuSelection] -	ld [wd1ec], a -	call .getwhichside -	ld a, [MenuSelection] -	ld hl, StringBuffer3 -	call GetDecorationName -	ld hl, UnknownText_0x26edb -	call MenuTextBoxBackup -	xor a -	ret - -.failed -	ld hl, UnknownText_0x26ee5 -	call MenuTextBoxBackup -	scf -	ret -; 26e33 - -.getwhichside: ; 26e33 -	ld a, [MenuSelection] -	ld b, a -	ld a, [wd1ed] -	cp b -	ret nz -	xor a -	ld [wd1ed], a -	ret -; 26e41 - -UnknownText_0x26e41: ; 0x26e41 -	; Which side do you want to put it on? -	text_jump UnknownText_0x1bc48c -	db "@" -; 0x26e46 - -DecoAction_PutItAway_Ornament: ; 26e46 -	ld a, [wd1ec] -	and a -	jr z, .nothingthere -	ld hl, StringBuffer3 -	call GetDecorationName -	ld a, $1 -	ld [wd1ee], a -	xor a -	ld [wd1ec], a -	ld hl, UnknownText_0x26ed1 -	call MenuTextBoxBackup -	xor a -	ret - -.nothingthere -	ld hl, UnknownText_0x26ed6 -	call MenuTextBoxBackup -	xor a -	ret -; 26e6b - -UnknownText_0x26e6b: ; 0x26e6b -	; Which side do you want to put away? -	text_jump UnknownText_0x1bc4b2 -	db "@" -; 0x26e70 - -DecoAction_AskWhichSide: ; 26e70 -	call MenuTextBox -	ld hl, MenuDataHeader_0x26eab -	call GetMenu2 -	call ExitMenu -	call CopyMenuData2 -	jr c, .nope -	ld a, [MenuSelection2] -	cp 3 -	jr z, .nope -	ld [Buffer2], a -	call QueryWhichSide -	ld a, [hl] -	ld [wd1ec], a -	ld a, [de] -	ld [wd1ed], a -	xor a -	ret - -.nope -	scf -	ret -; 26e9a - -QueryWhichSide: ; 26e9a -	ld hl, RightOrnament -	ld de, LeftOrnament -	ld a, [Buffer2] -	cp 1 -	ret z -	push hl -	ld h, d -	ld l, e -	pop de -	ret -; 26eab - -MenuDataHeader_0x26eab: ; 0x26eab -	db $40 ; flags -	db 00, 00 ; start coords -	db 07, 13 ; end coords -	dw MenuData2_0x26eb3 -	db 1 ; default option -; 0x26eb3 - -MenuData2_0x26eb3: ; 0x26eb3 -	db $80 ; flags -	db 3 ; items -	db "RIGHT SIDE@" -	db "LEFT SIDE@" -	db "CANCEL@" -; 0x26ed1 - -UnknownText_0x26ed1: ; 0x26ed1 -	; Put away the @ . -	text_jump UnknownText_0x1bc4d7 -	db "@" -; 0x26ed6 - -UnknownText_0x26ed6: ; 0x26ed6 -	; There's nothing to put away. -	text_jump UnknownText_0x1bc4ec -	db "@" -; 0x26edb - -UnknownText_0x26edb: ; 0x26edb -	; Set up the @ . -	text_jump UnknownText_0x1bc509 -	db "@" -; 0x26ee0 - -UnknownText_0x26ee0: ; 0x26ee0 -	; Put away the @ and set up the @ . -	text_jump UnknownText_0x1bc51c -	db "@" -; 0x26ee5 - -UnknownText_0x26ee5: ; 0x26ee5 -	; That's already set up. -	text_jump UnknownText_0x1bc546 -	db "@" -; 0x26eea - -GetDecorationName_c_de: ; 26eea -	ld a, c -	ld h, d -	ld l, e -	call GetDecorationName -	ret -; 26ef1 - -DecorationFlagAction_c: ; 26ef1 -	ld a, c -	jp DecorationFlagAction -; 26ef5 - - -GetDecorationName_c: ; 26ef5 (9:6ef5) -	ld a, c -	call GetDecorationID -	ld hl, StringBuffer1 -	push hl -	call GetDecorationName -	pop de -	ret - - -SetSpecificDecorationFlag: ; 26f02 -	ld a, c -	call GetDecorationID -	ld b, SET_FLAG -	call DecorationFlagAction -	ret -; 26f0c - -GetDecorationID: ; 26f0c -	push hl -	push de -	ld e, a -	ld d, 0 -	ld hl, DecorationIDs -	add hl, de -	ld a, [hl] -	pop de -	pop hl -	ret -; 26f19 - -SetAllDecorationFlags: ; 26f19 -	ld hl, DecorationIDs -.loop -	ld a, [hli] -	cp -1 -	jr z, .done -	push hl -	ld b, SET_FLAG -	call DecorationFlagAction -	pop hl -	jr .loop - -.done -	ret -; 26f2b - -DecorationIDs: ; 26f2b -	db DECO_FEATHERY_BED ; 2 -	db DECO_PINK_BED ; 3 -	db DECO_POLKADOT_BED ; 4 -	db DECO_PIKACHU_BED ; 5 - -	db DECO_RED_CARPET ; 7 -	db DECO_BLUE_CARPET ; 8 -	db DECO_YELLOW_CARPET ; 9 -	db DECO_GREEN_CARPET ; a - -	db DECO_MAGNAPLANT ; c -	db DECO_TROPICPLANT ; d -	db DECO_JUMBOPLANT ; e - -	db DECO_TOWN_MAP ; 10 -	db DECO_PIKACHU_POSTER ; 11 -	db DECO_CLEFAIRY_POSTER ; 12 -	db DECO_JIGGLYPUFF_POSTER ; 13 - -	db DECO_FAMICOM ; 15 -	db DECO_SNES ; 16 -	db DECO_N64 ; 17 -	db DECO_VIRTUAL_BOY ; 18 - -	db DECO_PIKACHU_DOLL ; 1e -	db DECO_SURF_PIKACHU_DOLL ; 1f -	db DECO_CLEFAIRY_DOLL ; 20 -	db DECO_JIGGLYPUFF_DOLL ; 21 -	db DECO_BULBASAUR_DOLL ; 22 -	db DECO_CHARMANDER_DOLL ; 23 -	db DECO_SQUIRTLE_DOLL ; 24 -	db DECO_POLIWAG_DOLL ; 25 -	db DECO_DIGLETT_DOLL ; 26 -	db DECO_STARMIE_DOLL ; 27 -	db DECO_MAGIKARP_DOLL ; 28 -	db DECO_ODDISH_DOLL ; 29 -	db DECO_GENGAR_DOLL ; 2a -	db DECO_SHELLDER_DOLL ; 2b -	db DECO_GRIMER_DOLL ; 2c -	db DECO_VOLTORB_DOLL ; 2d -	db DECO_WEEDLE_DOLL ; 2e -	db DECO_UNOWN_DOLL ; 2f -	db DECO_GEODUDE_DOLL ; 30 -	db DECO_MACHOP_DOLL ; 31 -	db DECO_TENTACOOL_DOLL ; 32 -	db DECO_BIG_SNORLAX_DOLL ; 1a -	db DECO_BIG_ONIX_DOLL ; 1b -	db DECO_BIG_LAPRAS_DOLL ; 1c -	db DECO_GOLD_TROPHY_DOLL ; 33 -	db DECO_SILVER_TROPHY_DOLL ; 34 -	db -1 -; 26f59 - -DescribeDecoration:: ; 26f59 -	ld a, b -	ld hl, JumpTable_DecorationDesc -	rst JumpTable -	ret -; 26f5f - -JumpTable_DecorationDesc: ; 26f5f -	dw DecorationDesc_Poster -	dw DecorationDesc_LeftOrnament -	dw DecorationDesc_RightOrnament -	dw DecorationDesc_GiantDoll -	dw DecorationDesc_Console -; 26f69 - -DecorationDesc_Poster: ; 26f69 -	ld a, [Poster] -	ld hl, DecorationDesc_PosterPointers -	ld de, 3 -	call IsInArray -	jr c, .nope -	ld de, DecorationDesc_NullPoster -	ld b, BANK(DecorationDesc_NullPoster) -	ret - -.nope -	ld b, BANK(DecorationDesc_TownMapPoster) -	inc hl -	ld a, [hli] -	ld d, [hl] -	ld e, a -	ret -; 26f84 - -DecorationDesc_PosterPointers: ; 26f84 -	dbw DECO_TOWN_MAP, DecorationDesc_TownMapPoster -	dbw DECO_PIKACHU_POSTER, DecorationDesc_PikachuPoster -	dbw DECO_CLEFAIRY_POSTER, DecorationDesc_ClefairyPoster -	dbw DECO_JIGGLYPUFF_POSTER, DecorationDesc_JigglypuffPoster -	db -1 -; 26f91 - -DecorationDesc_TownMapPoster: ; 0x26f91 -	loadfont -	writetext UnknownText_0x26f9b -	closetext -	special Special_TownMap -	loadmovesprites -	end -; 0x26f9b - -UnknownText_0x26f9b: ; 0x26f9b -	; It's the TOWN MAP. -	text_jump UnknownText_0x1bc55d -	db "@" -; 0x26fa0 - -DecorationDesc_PikachuPoster: ; 0x26fa0 -	jumptext UnknownText_0x26fa3 -; 0x26fa3 - -UnknownText_0x26fa3: ; 0x26fa3 -	; It's a poster of a cute PIKACHU. -	text_jump UnknownText_0x1bc570 -	db "@" -; 0x26fa8 - -DecorationDesc_ClefairyPoster: ; 0x26fa8 -	jumptext UnknownText_0x26fab -; 0x26fab - -UnknownText_0x26fab: ; 0x26fab -	; It's a poster of a cute CLEFAIRY. -	text_jump UnknownText_0x1bc591 -	db "@" -; 0x26fb0 - -DecorationDesc_JigglypuffPoster: ; 0x26fb0 -	jumptext UnknownText_0x26fb3 -; 0x26fb3 - -UnknownText_0x26fb3: ; 0x26fb3 -	; It's a poster of a cute JIGGLYPUFF. -	text_jump UnknownText_0x1bc5b3 -	db "@" -; 0x26fb8 - -DecorationDesc_NullPoster: ; 26fb8 -	end -; 26fb9 - -DecorationDesc_LeftOrnament: ; 26fb9 -	ld a, [LeftOrnament] -	jr DecorationDesc_OrnamentOrConsole - -DecorationDesc_RightOrnament: ; 26fbe -	ld a, [RightOrnament] -	jr DecorationDesc_OrnamentOrConsole - -DecorationDesc_Console: ; 26fc3 -	ld a, [Console] -	jr DecorationDesc_OrnamentOrConsole - -DecorationDesc_OrnamentOrConsole: ; 26fc8 -	ld c, a -	ld de, StringBuffer3 -	call GetDecorationName_c_de -	ld b, BANK(Unknown_26fd5) -	ld de, Unknown_26fd5 -	ret -; 26fd5 - -Unknown_26fd5: ; 26fd5 -	dbw $53, UnknownText_0x26fd8 -; 26fd8 - -UnknownText_0x26fd8: ; 0x26fd8 -	; It's an adorable @ . -	text_jump UnknownText_0x1bc5d7 -	db "@" -; 0x26fdd - -DecorationDesc_GiantDoll: ; 26fdd -	ld b, BANK(Unknown_26fe3) -	ld de, Unknown_26fe3 -	ret -; 26fe3 - -Unknown_26fe3: ; 26fe3 -	dbw $53, UnknownText_0x26fe6 -; 26fe6 - -UnknownText_0x26fe6: ; 0x26fe6 -	; A giant doll! It's fluffy and cuddly. -	text_jump UnknownText_0x1bc5ef -	db "@" -; 0x26feb - -ToggleMaptileDecorations: ; 26feb -	lb de, 0, 4 -	ld a, [Bed] -	call SetDecorationTile -	lb de, 7, 4 -	ld a, [Plant] -	call SetDecorationTile -	lb de, 6, 0 -	ld a, [Poster] -	call SetDecorationTile -	call SetPosterVisibility -	lb de, 0, 0 -	call PadCoords_de -	ld a, [Carpet] -	and a -	ret z -	call _GetDecorationSprite -	ld [hl], a -	push af -	lb de, 0, 2 -	call PadCoords_de -	pop af -	inc a -	ld [hli], a -	inc a -	ld [hli], a -	dec a -	ld [hl], a -	ret -; 27027 - -SetPosterVisibility: ; 27027 -	ld b, SET_FLAG -	ld a, [Poster] -	and a -	jr nz, .ok -	ld b, RESET_FLAG - -.ok -	ld de, EVENT_KRISS_ROOM_POSTER -	jp EventFlagAction -; 27037 - -SetDecorationTile: ; 27037 -	push af -	call PadCoords_de -	pop af -	and a -	ret z -	call _GetDecorationSprite -	ld [hl], a -	ret -; 27043 - -ToggleDecorationsVisibility: ; 27043 -	ld de, EVENT_KRISS_HOUSE_2F_CONSOLE -	ld hl, VariableSprites + SPRITE_CONSOLE - SPRITE_VARS -	ld a, [Console] -	call ToggleDecorationVisibility -	ld de, EVENT_KRISS_HOUSE_2F_DOLL_1 -	ld hl, VariableSprites + SPRITE_DOLL_1 - SPRITE_VARS -	ld a, [LeftOrnament] -	call ToggleDecorationVisibility -	ld de, EVENT_KRISS_HOUSE_2F_DOLL_2 -	ld hl, VariableSprites + SPRITE_DOLL_2 - SPRITE_VARS -	ld a, [RightOrnament] -	call ToggleDecorationVisibility -	ld de, EVENT_KRISS_HOUSE_2F_BIG_DOLL -	ld hl, VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS -	ld a, [BigDoll] -	call ToggleDecorationVisibility -	ret -; 27074 - -ToggleDecorationVisibility: ; 27074 -	and a -	jr z, .hide -	call _GetDecorationSprite -	ld [hl], a -	ld b, RESET_FLAG -	jp EventFlagAction - -.hide -	ld b, SET_FLAG -	jp EventFlagAction -; 27085 - -_GetDecorationSprite: ; 27085 -	ld c, a -	push de -	push hl -	callba GetDecorationSprite -	pop hl -	pop de -	ld a, c -	ret -; 27092 +INCLUDE "engine/decorations.asm"  PadCoords_de: ; 27092  	ld a, d @@ -17117,7 +15121,7 @@ Unknown_2c74a: ; 2c74a  	db DECO_BIG_SNORLAX_DOLL  	db DECO_BIG_ONIX_DOLL  	db DECO_BIG_LAPRAS_DOLL -	db DECO_1D +	db DECO_DOLLS  	db DECO_PIKACHU_DOLL  	db DECO_SURF_PIKACHU_DOLL  	db DECO_CLEFAIRY_DOLL @@ -17131,22 +15135,22 @@ Unknown_2c74a: ; 2c74a  	db DECO_DIGLETT_DOLL  	db DECO_BLUE_CARPET  	db DECO_YELLOW_CARPET -	db DECO_0F +	db DECO_POSTERS  	db DECO_PIKACHU_POSTER  	db DECO_N64 -	db DECO_19 -	db DECO_01 +	db DECO_BIG_DOLLS +	db DECO_BEDS  	db DECO_FEATHERY_BED  	db DECO_POLKADOT_BED  	db DECO_PIKACHU_BED -	db DECO_06 +	db DECO_CARPETS  	db DECO_RED_CARPET  	db DECO_GREEN_CARPET  	db DECO_CLEFAIRY_POSTER  	db DECO_ODDISH_DOLL  	db DECO_MAGNAPLANT  	db DECO_GENGAR_DOLL -	db DECO_14 +	db DECO_CONSOLES  	db DECO_PINK_BED  	db DECO_SQUIRTLE_DOLL  	db DECO_STARMIE_DOLL @@ -20343,7 +18347,7 @@ Function44806: ; 0x44806  	call CopyMenuDataHeader  	xor a  	ld [hBGMapMode], a -	call Function352f +	call InitScrollingMenu  	call UpdateSprites  	ld a, [wd0f1]  	ld [wMenuCursorBuffer], a @@ -32411,16 +30415,16 @@ ChrisNameMenuHeader: ; 882b5  	db $40 ; flags  	db 00, 00 ; start coords  	db 11, 10 ; end coords -	dw MenuData2_0x882be +	dw .MaleNames  	db 1 ; ????  	db 0 ; default option  ; 882be -MenuData2_0x882be: ; 882be +.MaleNames: ; 882be  	db $91 ; flags  	db 5 ; items  	db "NEW NAME@" -Unknown_882c9: ; 882c9 +MalePlayerNameArray: ; 882c9  	db "CHRIS@"  	db "MAT@"  	db "ALLAN@" @@ -32433,16 +30437,16 @@ KrisNameMenuHeader: ; 882e5  	db $40 ; flags  	db 00, 00 ; start coords  	db 11, 10 ; end coords -	dw MenuData2_0x882ee +	dw .FemaleNames  	db 1 ; ????  	db 0 ; default option  ; 882ee -MenuData2_0x882ee: ; 882ee +.FemaleNames: ; 882ee  	db $91 ; flags  	db 5 ; items  	db "NEW NAME@" -Unknown_882f9: ; 882f9 +FemalePlayerNameArray: ; 882f9  	db "KRIS@"  	db "AMANDA@"  	db "JUANA@" @@ -32453,11 +30457,11 @@ Unknown_882f9: ; 882f9  GetPlayerNameArray: ; 88318 This Function is never called  	ld hl, PlayerName -	ld de, Unknown_882c9 +	ld de, MalePlayerNameArray  	ld a, [PlayerGender]  	bit 0, a  	jr z, .done -	ld de, Unknown_882f9 +	ld de, FemalePlayerNameArray  .done  	call InitName @@ -32491,12 +30495,12 @@ Function8833e: ; 8833e  	ld hl, KrisCardPic  .GotClass  	ld de, VTiles2 tile $00 -	ld bc, $230 +	ld bc, $23 tiles  	ld a, BANK(ChrisCardPic) ; BANK(KrisCardPic)  	call FarCopyBytes  	ld hl, CardGFX  	ld de, VTiles2 tile $23 -	ld bc, $60 +	ld bc, 6 tiles  	ld a, BANK(CardGFX)  	call FarCopyBytes  	ret | 
