ref: e88c88ff2015a55ff0d04f9ac1dc55d7f0567f7c
parent: 4bfe086ef6412e5fdba99e6143db6de75c7c9458
author: PikalaxALT <[email protected]>
date: Tue Nov 17 10:54:03 EST 2015
engine/decorations.asm
--- a/constants/deco_constants.asm
+++ b/constants/deco_constants.asm
@@ -52,12 +52,12 @@
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 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
--- /dev/null
+++ b/engine/decorations.asm
@@ -1,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
--- /dev/null
+++ b/engine/trainer_card.asm
@@ -1,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"
--- a/event/buena.asm
+++ b/event/buena.asm
@@ -250,7 +250,7 @@
xor a
ld [wcf76], a
ld [hBGMapMode], a
- call Function352f
+ call InitScrollingMenu
call UpdateSprites
call HandleScrollingMenu
ld a, [MenuSelection]
--- a/event/elevator.asm
+++ b/event/elevator.asm
@@ -127,7 +127,7 @@
call Elevator_GetCurrentFloorText
ld hl, Elevator_MenuDataHeader
call CopyMenuDataHeader
- call Function352f
+ call InitScrollingMenu
call UpdateSprites
xor a
ld [wd0e4], a
--- a/event/kurt.asm
+++ b/event/kurt.asm
@@ -65,7 +65,7 @@
ld [wMenuCursorBuffer], a
xor a
ld [hBGMapMode], a
- call Function352f
+ call InitScrollingMenu
call UpdateSprites
call HandleScrollingMenu
ld a, [wcf73]
--- a/home.asm
+++ b/home.asm
@@ -1173,7 +1173,7 @@
jp SetPalettes
; 352f
-Function352f:: ; 352f
+InitScrollingMenu:: ; 352f
ld a, [wMenuBorderTopCoord]
dec a
ld b, a
@@ -1192,7 +1192,7 @@
jp TextBox
; 354b
-Function354b:: ; 354b
+Function354b:: ; 354b joypad
call DelayFrame
ld a, [hInMenu]
--- a/main.asm
+++ b/main.asm
@@ -13429,12 +13429,12 @@
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 @@
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,611 +13745,8 @@
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
+INCLUDE "engine/trainer_card.asm"
-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"
-
-
ProfOaksPC: ; 0x265d3
ld hl, OakPCText1
call MenuTextBox
@@ -14630,1401 +14027,8 @@
text_jump _OakPCText4
db "@"
+INCLUDE "engine/decorations.asm"
-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
-
PadCoords_de: ; 27092
ld a, d
add 4
@@ -17117,7 +15121,7 @@
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,15 +15135,15 @@
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
@@ -17146,7 +15150,7 @@
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 @@
call CopyMenuDataHeader
xor a
ld [hBGMapMode], a
- call Function352f
+ call InitScrollingMenu
call UpdateSprites
ld a, [wd0f1]
ld [wMenuCursorBuffer], a
@@ -32411,16 +30415,16 @@
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 @@
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 @@
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 @@
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