Fixed east/west direction vectors.
./tools/tmx2map.py assets/maps/far_center_right_wall.tmx 1 > maps/far_center_right_wall.inc
./tools/tmx2map.py assets/maps/far_center_left_wall.tmx 1 > maps/far_center_left_wall.inc
+
+ ./tools/tmx2map.py assets/maps/near_right_center_wall.tmx 1 > maps/near_right_center_wall.inc
+ ./tools/tmx2map.py assets/maps/near_left_center_wall.tmx 1 > maps/near_left_center_wall.inc
; this map was generated by tmx2map.py
-.db 0x15, 0x21, 0x21, 0x21, 0x10, 0x12, 0x12, 0x12, 0x25, 0x22, 0x22, 0x22
+.db 0x48, 0x49, 0x4a, 0x3, 0x15, 0x21, 0x21, 0x21, 0x10, 0x12, 0x12, 0x12, 0x25, 0x22, 0x22, 0x22
; this map was generated by tmx2map.py
-.db 0x21, 0x21, 0x21, 0x16, 0x12, 0x12, 0x12, 0x20, 0x22, 0x22, 0x22, 0x26
+.db 0x4, 0x4d, 0x4e, 0x4f, 0x21, 0x21, 0x21, 0x16, 0x12, 0x12, 0x12, 0x20, 0x22, 0x22, 0x22, 0x26
--- /dev/null
+; this map was generated by tmx2map.py
+
+.db 0x48, 0x49, 0x4a, 0x3, 0x21, 0x21, 0x21, 0x21, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+.db 0x22, 0x22, 0x22, 0x22
+
--- /dev/null
+; this map was generated by tmx2map.py
+
+.db 0x4, 0x4d, 0x4e, 0x4f, 0x21, 0x21, 0x21, 0x21, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+.db 0x22, 0x22, 0x22, 0x22
+
; back
.db 0, -1
; left
- .db 1, 0
- ; right
.db -1, 0
+ ; right
+ .db 1, 0
_dir_vectors_west:
; forward
; back
.db 0, 1
; left
- .db -1, 0
- ; right
.db 1, 0
+ ; right
+ .db -1, 0
_dir_vectors_north:
; forward
ld de, near_left_door
ld bc, RENDER_BUF_W - 4
ld a, 7
- jp tiles_block_copy
+ call tiles_block_copy
+
+ ; draw a near left wall if needed
+ jp map_full_draw_near_left_wall
@no_door:
ld hl, render_buffer + RENDER_BUF_W * 3
ld de, near_left_wall
ld a, 7
jp tiles_block_copy
+ ; draws a near left wall if
+ ; the near left tile has a forward wall
+ ; otherwise does nothing
+map_full_draw_near_left_wall:
+ ; get left tile
+ ld de, player
+ map_load_march_vec dir_vector_left
+ ld a, 1
+ call map_get_tile_march
+ ; hl = tile to the left
+ ld de, t_flags0
+ add hl, de
+
+ ld b, [hl]
+ ld a, [dir_tf_forward]
+ and a, b
+ ret nz ; bail if door
+
+ ld hl, render_buffer + RENDER_BUF_W * 3
+ ld de, near_center_left_wall
+ ld bc, RENDER_BUF_W-4
+ ld a, 6
+ call tiles_block_copy
+
+ ret
+
; draws near right wall or door
map_full_draw_near_right:
ld de, near_right_door
ld bc, RENDER_BUF_W - 4
ld a, 7
- jp tiles_block_copy
+ call tiles_block_copy
+
+ jp map_full_draw_near_right_wall
@no_door:
ld hl, render_buffer + RENDER_BUF_W * 3 + 16
ld de, near_right_wall
jp tiles_block_copy
+ ; draws a near right wall if
+ ; the near right tile has a forward wall
+ ; otherwise does nothing
+map_full_draw_near_right_wall:
+ ; get left tile
+ ld de, player
+ map_load_march_vec dir_vector_right
+ ld a, 1
+ call map_get_tile_march
+ ; hl = tile to the left
+ ld de, t_flags0
+ add hl, de
+
+ ld b, [hl]
+ ld a, [dir_tf_forward]
+ and a, b
+ ret nz ; bail if door
+
+ ld hl, render_buffer + RENDER_BUF_W * 3 + 16
+ ld de, near_center_right_wall
+ ld bc, RENDER_BUF_W-4
+ ld a, 6
+ call tiles_block_copy
+
+ ret
+
+
; draws far left wall or door
map_full_draw_far_left:
_map_full_draw_load_far_tile
far_right_wall:
#include "far_right_wall.inc"
- ; 4x3 tiles
+ ; 4x4 tiles
far_center_left_wall:
#include "far_center_left_wall.inc"
- ; 4x3 tiles
+ ; 4x4 tiles
far_center_right_wall:
#include "far_center_right_wall.inc"
+
+ ; 4x6 tiles
+near_center_left_wall:
+#include "near_left_center_wall.inc"
+
+ ; 4x6 tiles
+near_center_right_wall:
+#include "near_right_center_wall.inc"
; copies a row of tiles
; from a linear buffer into a new block
.chr 00000000
.chr 00000000
; tile 72
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 33111111
+.chr 31333311
+.chr 31111133
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
; tile 73
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11111111
+.chr 11111111
+.chr 33111111
+.chr 11333111
+.chr 11111333
+.chr 11111111
+.chr 11111111
+.chr 11111111
; tile 74
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11111111
+.chr 11111111
+.chr 11111111
+.chr 11111111
+.chr 31111111
+.chr 13333111
+.chr 11111333
+.chr 11111111
; tile 75
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
; tile 77
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11111111
+.chr 11111111
+.chr 11111111
+.chr 11111111
+.chr 11111113
+.chr 11133331
+.chr 33311111
+.chr 11111111
; tile 78
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11111111
+.chr 11111111
+.chr 11111133
+.chr 11133311
+.chr 33311111
+.chr 11111111
+.chr 11111111
+.chr 11111111
; tile 79
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11111133
+.chr 11333313
+.chr 33111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
; tile 80
.chr 30222222
.chr 30222222
.chr 00000000
.chr 00000000
; tile 72
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 33111111
+.chr 31333311
+.chr 31111133
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
+.chr 31111111
; tile 73
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11111111
+.chr 11111111
+.chr 33111111
+.chr 11333111
+.chr 11111333
+.chr 11111111
+.chr 11111111
+.chr 11111111
; tile 74
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11111111
+.chr 11111111
+.chr 11111111
+.chr 11111111
+.chr 31111111
+.chr 13333111
+.chr 11111333
+.chr 11111111
; tile 75
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
; tile 77
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11111111
+.chr 11111111
+.chr 11111111
+.chr 11111111
+.chr 11111113
+.chr 11133331
+.chr 33311111
+.chr 11111111
; tile 78
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11111111
+.chr 11111111
+.chr 11111133
+.chr 11133311
+.chr 33311111
+.chr 11111111
+.chr 11111111
+.chr 11111111
; tile 79
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 11111133
+.chr 11333313
+.chr 33111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
+.chr 11111113
; tile 80
.chr 30222222
.chr 30222222