shithub: pokecrystal

ref: c34264ddd89c2af4ba1370d4a2789009e9139b48
dir: /home/tilemap.asm/

View raw version
BackUpTiles:: ; 1c00
	callab _BackUpTiles
	ret
; 1c07

ExitMenu:: ; 0x1c07
	push af
	callab Function243e8
	pop af
	ret

Function1c10:: ; 0x1c10
	callab Function2446d
	ret

WriteBackup:: ; 0x1c17
	push af
	call ExitMenu
	call Function321c
	call UpdateSprites
	pop af
	ret

RestoreTileBackup:: ; 0x1c23
	call GetMemTileCoord
	call .copy
	call GetMemAttrCoord
	call .copy
	ret
; 0x1c30

.copy: ; 0x1c30
	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 ; 0x1c3b $fa

	pop hl
	ld bc, SCREEN_WIDTH
	add hl, bc
	pop bc
	dec b
	jr nz, .row ; 0x1c44 $ef

	ret

Function1c47:: ; 0x1c47
	ld b, $10
	ld de, wcf81
.loop
	ld a, [hld]
	ld [de], a
	inc de
	dec b
	jr nz, .loop ; 0x1c50 $fa
	ret

GetMenuBoxDims:: ; 0x1c53
	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
; 0x1c66

Function1c66:: ; 1c66
	push hl
	push de
	push bc
	push af
	ld hl, wcf86
	ld a, [hli]
	ld h, [hl]
	ld l, a
	ld de, wMenuData2Flags
	ld bc, $0010
	call CopyBytes
	pop af
	pop bc
	pop de
	pop hl
	ret
; 1c7e

Function1c7e:: ; 1c7e
	ld hl, wcf71
	ld a, [hli]
	ld h, [hl]
	ld l, a
	inc hl
	ld a, [hli]
	ld h, [hl]
	ld l, a
	ret
; 1c89

Function1c89:: ; 1c89
	call Function1c66
	ld hl, wcf86
	ld e, [hl]
	inc hl
	ld d, [hl]
	call Function1cc6
	call GetTileCoord
	inc de
	ld a, [de]
	inc de
	ld b, a
.asm_1c9c
	push bc
	call PlaceString
	inc de
	ld bc, $0028
	add hl, bc
	pop bc
	dec b
	jr nz, .asm_1c9c
	ld a, [wMenuData2Flags]
	bit 4, a
	ret z
	call GetMemTileCoord
	ld a, [de]
	ld c, a
	inc de
	ld b, $0
	add hl, bc
	jp PlaceString
; 1cbb

MenuBox:: ; 1cbb
	call GetMemTileCoord
	call GetMenuBoxDims
	dec b
	dec c
	jp TextBox
; 1cc6

Function1cc6:: ; 1cc6
	ld a, [wMenuBorderTopCoord]
	ld b, a
	inc b
	ld a, [wMenuBorderLeftCoord]
	ld c, a
	inc c
	ld a, [wMenuData2Flags]
	bit 6, a
	jr nz, .asm_1cd8
	inc b

.asm_1cd8
	ld a, [wMenuData2Flags]
	bit 7, a
	jr z, .asm_1ce0
	inc c

.asm_1ce0
	ret
; 1ce1

Function1ce1:: ; 1ce1
	call GetMemTileCoord
	lb bc, 0, 21
	add hl, bc
	call GetMenuBoxDims
	dec b
	dec c
	call ClearBox
	ret
; 1cf1

Function1cf1:: ; 1cf1
	call GetMemTileCoord
	call GetMenuBoxDims
	inc c
	inc b
	call ClearBox
	ret
; 1cfd


GetMemTileCoord:: ; 1cfd
	ld a, [wMenuBorderLeftCoord]
	ld c, a
	ld a, [wMenuBorderTopCoord]
	ld b, a
; 1d05


GetTileCoord:: ; 1d05
; Return the address of TileMap(c, b) in hl.
	xor a
	ld h, a
	ld l, b
	ld a, c
	ld b, h
	ld c, l
rept 2
	add hl, hl
endr
	add hl, bc
rept 2
	add hl, hl
endr
	ld c, a
	xor a
	ld b, a
	add hl, bc
	bccoord 0, 0
	add hl, bc
	ret
; 1d19

GetMemAttrCoord:: ; 1d19
	ld a, [wMenuBorderLeftCoord]
	ld c, a
	ld a, [wMenuBorderTopCoord]
	ld b, a

GetAttrCoord:: ; 1d21
; Return the address of AttrMap(c, b) in hl.
	xor a
	ld h, a
	ld l, b
	ld a, c
	ld b, h
	ld c, l
rept 2
	add hl, hl
endr
	add hl, bc
rept 2
	add hl, hl
endr
	ld c, a
	xor a
	ld b, a
	add hl, bc
	bccoord 0, 0, AttrMap
	add hl, bc
	ret
; 1d35