Odyssee/project/src/display_engine.c

31 lines
1.0 KiB
C

#include <gint/display.h>
#include <gint/gray.h>
#include <math.h>
#include "display_engine.h"
void draw_map(const struct game game)
{
extern const bopti_image_t img_tileset;
for (int i = 0; i < SCREEN_HEIGHT; i ++)
{
for (int j = 0; j < SCREEN_WIDTH; j++)
{
if (game.map.data[game.world_y + i][game.world_x + j] != -1 && game.world_y + i < (MAP_HEIGHT) && game.world_y + i >= 0 && game.world_x + j < (MAP_WIDTH) && game.world_x + j >= 0)
{
int tile_x = (TILE_SIZE + 1) * (game.map.data[game.world_y + i][game.world_x + j] % TILESET_WIDTH), tile_y = (TILE_SIZE + 1) * (game.map.data[game.world_y + i][game.world_x + j] / TILESET_WIDTH);
dsubimage(j * TILE_SIZE, i * TILE_SIZE, &img_tileset, tile_x, tile_y, 8, 8, DIMAGE_NONE);
}
}
}
}
void draw_player(const struct game game)
{
extern const bopti_image_t img_player;
dsubimage(56, 35, &img_player, 0, 13 * game.player.direction, 8, 12, DIMAGE_NONE);
}