summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm2116
1 files changed, 60 insertions, 2056 deletions
diff --git a/main.asm b/main.asm
index 15b4aa3d0..d373463e2 100644
--- a/main.asm
+++ b/main.asm
@@ -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