diff options
Diffstat (limited to 'home/menu_window.asm')
-rw-r--r-- | home/menu_window.asm | 242 |
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 |