55 lines
794 B
C
55 lines
794 B
C
#include "grid.h"
|
|
#include "tiles.h"
|
|
#include <gint/display.h>
|
|
|
|
extern bopti_image_t bimg_tileset;
|
|
|
|
static void tile_draw(enum Tile, int x, int y);
|
|
|
|
void
|
|
grid_draw(struct Grid grid, int scr_x, int scr_y)
|
|
{
|
|
int x;
|
|
int y;
|
|
int ix;
|
|
int iy;
|
|
int ry;
|
|
int riy;
|
|
|
|
x = scr_x;
|
|
y = scr_y;
|
|
ix = 0;
|
|
iy = 0;
|
|
|
|
while (x <= -TILE_WIDTH) {
|
|
x += TILE_WIDTH;
|
|
ix += 1;
|
|
}
|
|
|
|
while (y <= -TILE_HEIGHT) {
|
|
y += TILE_HEIGHT;
|
|
iy += 1;
|
|
}
|
|
|
|
ry = y;
|
|
riy = iy;
|
|
while (x < DWIDTH) {
|
|
while (y < DHEIGHT) {
|
|
tile_draw(grid_get(grid, ix, iy), x, y);
|
|
y += TILE_HEIGHT;
|
|
iy += 1;
|
|
}
|
|
y = ry;
|
|
iy = riy;
|
|
x += TILE_WIDTH;
|
|
ix += 1;
|
|
}
|
|
}
|
|
|
|
static void
|
|
tile_draw(enum Tile tile, int x, int y)
|
|
{
|
|
dsubimage(x, y, &bimg_tileset, tile * TILE_WIDTH, 0, TILE_WIDTH,
|
|
TILE_HEIGHT, DIMAGE_NONE);
|
|
}
|