summaryrefslogtreecommitdiff
path: root/home/menu_window.asm
diff options
context:
space:
mode:
Diffstat (limited to 'home/menu_window.asm')
-rw-r--r--home/menu_window.asm242
1 files changed, 0 insertions, 242 deletions
diff --git a/home/menu_window.asm b/home/menu_window.asm
deleted file mode 100644
index d66485041..000000000
--- a/home/menu_window.asm
+++ /dev/null
@@ -1,242 +0,0 @@
-PushWindow::
- callfar _PushWindow
- ret
-
-ExitMenu::
- push af
- callfar _ExitMenu
- pop af
- ret
-
-InitVerticalMenuCursor::
- callfar _InitVerticalMenuCursor
- ret
-
-CloseWindow::
- push af
- call ExitMenu
- call ApplyTilemap
- call UpdateSprites
- pop af
- ret
-
-RestoreTileBackup::
- call MenuBoxCoord2Tile
- call .copy
- call MenuBoxCoord2Attr
- call .copy
- ret
-
-.copy
- call GetMenuBoxDims
- inc b
- inc c
-
-.row
- push bc
- push hl
-
-.col
- ld a, [de]
- ld [hli], a
- dec de
- dec c
- jr nz, .col
-
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
-
- ret
-
-PopWindow::
- ld b, $10
- ld de, wMenuFlags
-.loop
- ld a, [hld]
- ld [de], a
- inc de
- dec b
- jr nz, .loop
- ret
-
-GetMenuBoxDims::
- ld a, [wMenuBorderTopCoord] ; top
- ld b, a
- ld a, [wMenuBorderBottomCoord] ; bottom
- sub b
- ld b, a
- ld a, [wMenuBorderLeftCoord] ; left
- ld c, a
- ld a, [wMenuBorderRightCoord] ; right
- sub c
- ld c, a
- ret
-
-CopyMenuData::
- push hl
- push de
- push bc
- push af
- ld hl, wMenuDataPointer
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, wMenuDataFlags
- ld bc, wMenuDataEnd - wMenuDataFlags
- call CopyBytes
- pop af
- pop bc
- pop de
- pop hl
- ret
-
-GetWindowStackTop::
- ld hl, wWindowStackPointer
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-PlaceVerticalMenuItems::
- call CopyMenuData
- ld hl, wMenuDataPointer
- ld e, [hl]
- inc hl
- ld d, [hl]
- call GetMenuTextStartCoord
- call Coord2Tile ; hl now contains the tilemap address where we will start printing text.
- inc de
- ld a, [de] ; Number of items
- inc de
- ld b, a
-.loop
- push bc
- call PlaceString
- inc de
- ld bc, 2 * SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .loop
-
- ld a, [wMenuDataFlags]
- bit 4, a
- ret z
-
- call MenuBoxCoord2Tile
- ld a, [de]
- ld c, a
- inc de
- ld b, $0
- add hl, bc
- jp PlaceString
-
-MenuBox::
- call MenuBoxCoord2Tile
- call GetMenuBoxDims
- dec b
- dec c
- jp Textbox
-
-GetMenuTextStartCoord::
- ld a, [wMenuBorderTopCoord]
- ld b, a
- inc b
- ld a, [wMenuBorderLeftCoord]
- ld c, a
- inc c
-; bit 6: if not set, leave extra room on top
- ld a, [wMenuDataFlags]
- bit 6, a
- jr nz, .bit_6_set
- inc b
-
-.bit_6_set
-; bit 7: if set, leave extra room on the left
- ld a, [wMenuDataFlags]
- bit 7, a
- jr z, .bit_7_clear
- inc c
-
-.bit_7_clear
- ret
-
-ClearMenuBoxInterior::
- call MenuBoxCoord2Tile
- ld bc, SCREEN_WIDTH + 1
- add hl, bc
- call GetMenuBoxDims
- dec b
- dec c
- call ClearBox
- ret
-
-ClearWholeMenuBox::
- call MenuBoxCoord2Tile
- call GetMenuBoxDims
- inc c
- inc b
- call ClearBox
- ret
-
-MenuBoxCoord2Tile::
- ld a, [wMenuBorderLeftCoord]
- ld c, a
- ld a, [wMenuBorderTopCoord]
- ld b, a
-
-Coord2Tile::
-; Return the address of wTilemap(c, b) in hl.
- xor a
- ld h, a
- ld l, b
- ld a, c
- ld b, h
- ld c, l
- add hl, hl
- add hl, hl
- add hl, bc
- add hl, hl
- add hl, hl
- ld c, a
- xor a
- ld b, a
- add hl, bc
- bccoord 0, 0
- add hl, bc
- ret
-
-MenuBoxCoord2Attr::
- ld a, [wMenuBorderLeftCoord]
- ld c, a
- ld a, [wMenuBorderTopCoord]
- ld b, a
-
-Coord2Attr::
-; Return the address of wAttrmap(c, b) in hl.
- xor a
- ld h, a
- ld l, b
- ld a, c
- ld b, h
- ld c, l
- add hl, hl
- add hl, hl
- add hl, bc
- add hl, hl
- add hl, hl
- ld c, a
- xor a
- ld b, a
- add hl, bc
- bccoord 0, 0, wAttrmap
- add hl, bc
- ret