Make map rendering centered
This commit is contained in:
@ -82,6 +82,18 @@ entity_t * mapEntityGetByPosition(
|
||||
return NULL;
|
||||
}
|
||||
|
||||
entity_t * mapEntityGetByType(
|
||||
map_t *map,
|
||||
const uint8_t type
|
||||
) {
|
||||
for(uint8_t i = 0; i < map->entityCount; i++) {
|
||||
entity_t *entity = &map->entities[i];
|
||||
if(entity->type == type) return entity;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
tile_t mapTileGetByPosition(
|
||||
const map_t *map,
|
||||
const uint16_t x,
|
||||
|
@ -68,6 +68,18 @@ entity_t * mapEntityGetByPosition(
|
||||
const uint16_t y
|
||||
);
|
||||
|
||||
/**
|
||||
* Gets the entity of the specified type.
|
||||
*
|
||||
* @param map Map to get the entity from.
|
||||
* @param type Type of entity to get.
|
||||
* @return Entity of the specified type, or NULL if no entity is found.
|
||||
*/
|
||||
entity_t * mapEntityGetByType(
|
||||
map_t *map,
|
||||
const uint8_t type
|
||||
);
|
||||
|
||||
/**
|
||||
* Gets the tile at the specified position.
|
||||
*
|
||||
|
@ -9,19 +9,23 @@
|
||||
#include "rpg/world/map.h"
|
||||
#include "assert/assert.h"
|
||||
|
||||
#define TEST_MAP_WIDTH 50
|
||||
#define TEST_MAP_HEIGHT 50
|
||||
#define TEST_MAP_LAYERS 1
|
||||
|
||||
void testMapInit(map_t *map) {
|
||||
mapInit(map, 20, 20, 1);
|
||||
mapInit(map, TEST_MAP_WIDTH, TEST_MAP_HEIGHT, TEST_MAP_LAYERS);
|
||||
|
||||
entity_t *player = mapEntityAdd(map);
|
||||
entityInit(player, ENTITY_TYPE_PLAYER, map);
|
||||
entityPositionSet(player, 5, 5);
|
||||
|
||||
entity_t *npc = mapEntityAdd(map);
|
||||
entityInit(npc, ENTITY_TYPE_NPC, map);
|
||||
entityPositionSet(npc, 10, 10);
|
||||
// entity_t *npc = mapEntityAdd(map);
|
||||
// entityInit(npc, ENTITY_TYPE_NPC, map);
|
||||
// entityPositionSet(npc, 10, 10);
|
||||
|
||||
tile_t tiles[42 * 42];
|
||||
for(uint32_t i = 0; i < 42 * 42; i++) {
|
||||
tile_t tiles[TEST_MAP_WIDTH * TEST_MAP_HEIGHT];
|
||||
for(uint32_t i = 0; i < TEST_MAP_WIDTH * TEST_MAP_HEIGHT; i++) {
|
||||
tiles[i].id = TILE_ID_GRASS;
|
||||
}
|
||||
|
||||
@ -31,22 +35,22 @@ void testMapInit(map_t *map) {
|
||||
tiles[14].id = TILE_ID_WATER;
|
||||
tiles[15].id = TILE_ID_WATER;
|
||||
|
||||
tiles[30].id = TILE_ID_WATER;
|
||||
tiles[31].id = TILE_ID_WATER;
|
||||
tiles[32].id = TILE_ID_WATER;
|
||||
tiles[33].id = TILE_ID_WATER;
|
||||
tiles[34].id = TILE_ID_WATER;
|
||||
tiles[35].id = TILE_ID_WATER;
|
||||
// tiles[30].id = TILE_ID_WATER;
|
||||
// tiles[31].id = TILE_ID_WATER;
|
||||
// tiles[32].id = TILE_ID_WATER;
|
||||
// tiles[33].id = TILE_ID_WATER;
|
||||
// tiles[34].id = TILE_ID_WATER;
|
||||
// tiles[35].id = TILE_ID_WATER;
|
||||
|
||||
tiles[50].id = TILE_ID_WATER;
|
||||
tiles[51].id = TILE_ID_WATER;
|
||||
tiles[52].id = TILE_ID_WATER;
|
||||
tiles[53].id = TILE_ID_WATER;
|
||||
// tiles[50].id = TILE_ID_WATER;
|
||||
// tiles[51].id = TILE_ID_WATER;
|
||||
// tiles[52].id = TILE_ID_WATER;
|
||||
// tiles[53].id = TILE_ID_WATER;
|
||||
|
||||
tiles[70].id = TILE_ID_WATER;
|
||||
tiles[71].id = TILE_ID_WATER;
|
||||
tiles[72].id = TILE_ID_WATER;
|
||||
tiles[73].id = TILE_ID_WATER;
|
||||
// tiles[70].id = TILE_ID_WATER;
|
||||
// tiles[71].id = TILE_ID_WATER;
|
||||
// tiles[72].id = TILE_ID_WATER;
|
||||
// tiles[73].id = TILE_ID_WATER;
|
||||
|
||||
|
||||
mapTilesSet(map, tiles, 0);
|
||||
|
Reference in New Issue
Block a user