#define MAP_H 14
#define MAP_TILES (MAP_W * MAP_H)
-#define RENDER_BUF_W 16
-#define RENDER_BUF_H 10
- ; 16 bytes per tile
-#define RENDER_BUF_TILE_SIZE 16
+#define RENDER_BUF_W 20
+#define RENDER_BUF_H 14
#define RENDER_BUF_TILES (RENDER_BUF_W * RENDER_BUF_H)
; actor type enum
; draws floor tiles
map_full_draw_floor:
ld hl, render_buffer + RENDER_BUF_W * 5
- ld bc, RENDER_BUF_W * 5
+ ld bc, RENDER_BUF_W * 9
ld d, 0x02
jp memset
- ; pseudo 3d rendering code
- ; draws based on player position into a frame buffer (tiles)
- ; the frame buffer is then copied to the correct tileset
-
- ; draws a pixel into the frame buffer
- ; inputs:
- ; hl: ptr into buffer
- ; $1: color (0-3)
-#macro render_draw_pixel
-
-#endmacro
+ ; renders the visible tiles around the player into the render buffer
- ; inits the viewport
- ; by placing a unique tile in each position
- ; this tile diretly corresponds to the frame buffer
+ ; inits the render view
render_init_view:
; TODO:
ret
ld b, RENDER_BUF_H ; loop counter
ld de, render_buffer
- ; start 2 rows down 1 tile over
- ld hl, SCRN0+2+32*2
+ ld hl, SCRN0
call next_vblank_wait
; copy buffer into SCRN0
update_render_draw
update_render_draw
update_render_draw
+ update_render_draw
+ update_render_draw
+ update_render_draw
+ update_render_draw
call next_vblank_wait
push de
- ld de, 20 - RENDER_BUF_W + 12 ; next row
+ ld de, 12 ; next row
add hl, de
pop de
; combat data
combat: .adv combat_size
-.org 0xD000
-render_buffer: .adv RENDER_BUF_TILES * RENDER_BUF_TILE_SIZE
+render_buffer: .adv RENDER_BUF_TILES
render_canary: .adv 4