blob: 55fc4703f04471d425a7d6810b20c7d7939fe96b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include <stdint.h>
#include "vga.h"
#include "data.h"
#include "map.h"
static const uint8_t *cmap;
void map_init(const uint8_t map[])
{
cmap = map;
}
void map_render()
{
const uint8_t *tiles = binary_tiles_start;
Rect src = { 0, 0, 160, 48 };
Rect dst = { 0, 0, 8, 8 };
for (uint8_t y = 0; y < MAP_H; y++)
for (uint8_t x = 0; x < MAP_W; x++)
{
dst.x = x * MAP_TILE_W;
dst.y = y * MAP_TILE_H + MAP_OFFS_Y;
uint8_t t = cmap[x + y * MAP_W];
src.x = (t % MAP_TILESET_COLS) * MAP_TILE_W;
src.y = (t / MAP_TILESET_COLS) * MAP_TILE_H;
blitrc(binary_tiles_start, &src, &dst);
}
}
|