Refator pass 1
This commit is contained in:
57
archive/rpg/world/map.h
Normal file
57
archive/rpg/world/map.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Dominic Masters
|
||||
*
|
||||
* This software is released under the MIT License.
|
||||
* https://opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "rpg/entity/entity.h"
|
||||
|
||||
#define MAP_ENTITY_COUNT_MAX 32
|
||||
|
||||
#define MAP_WIDTH_MAX 64
|
||||
#define MAP_HEIGHT_MAX 64
|
||||
#define MAP_TILE_COUNT_MAX (MAP_WIDTH_MAX * MAP_HEIGHT_MAX)
|
||||
#define MAP_LAYER_COUNT_MAX 2
|
||||
|
||||
typedef struct {
|
||||
uint8_t id;
|
||||
} tile_t;
|
||||
|
||||
typedef struct {
|
||||
tile_t tiles[MAP_TILE_COUNT_MAX];
|
||||
} maplayer_t;
|
||||
|
||||
typedef struct map_s {
|
||||
entity_t entities[MAP_ENTITY_COUNT_MAX];
|
||||
uint8_t entityCount;
|
||||
|
||||
uint8_t width, height;
|
||||
maplayer_t base;
|
||||
maplayer_t overlay;
|
||||
} map_t;
|
||||
|
||||
extern map_t testMap;
|
||||
|
||||
/**
|
||||
* Initializes a map structure.
|
||||
*
|
||||
* @param map Pointer to the map structure to initialize.
|
||||
*/
|
||||
void mapInit(map_t *map);
|
||||
|
||||
/**
|
||||
* Updates the map and its entities.
|
||||
*
|
||||
* @param map Pointer to the map structure to update.
|
||||
*/
|
||||
void mapUpdate(map_t *map);
|
||||
|
||||
/**
|
||||
* Adds (but does not initialize) an entity on the map.
|
||||
*
|
||||
* @param map Pointer to the map structure.
|
||||
* @return Pointer to the added entity.
|
||||
*/
|
||||
entity_t * mapEntityAdd(map_t *map);
|
Reference in New Issue
Block a user