aboutsummaryrefslogtreecommitdiff
path: root/src/map_manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map_manager.c')
-rw-r--r--src/map_manager.c115
1 files changed, 0 insertions, 115 deletions
diff --git a/src/map_manager.c b/src/map_manager.c
deleted file mode 100644
index bcb9063..0000000
--- a/src/map_manager.c
+++ /dev/null
@@ -1,115 +0,0 @@
-#include "map_manager.h"
-#include "entity.h"
-#include "raytmx.h"
-#include "globals.h"
-
-// Forward declaration of internal raytmx function
-void DrawTMXLayerTile(const TmxMap* map, Rectangle viewport, uint32_t rawGid, Rectangle destRect, Color tint);
-
-MapManager LoadGameMap(const char *fileName) {
- MapManager mgr = {0};
- mgr.map = LoadTMX(fileName);
-
- // Cache layers for faster access
- if (mgr.map) {
- for (uint32_t i = 0; i < mgr.map->layersLength; i++) {
- if (strcmp(mgr.map->layers[i].name, "Walls") == 0 &&
- mgr.map->layers[i].type == LAYER_TYPE_TILE_LAYER) {
- mgr.wallLayer = &mgr.map->layers[i];
- }
- if (strcmp(mgr.map->layers[i].name, "Solid") == 0 &&
- mgr.map->layers[i].type == LAYER_TYPE_TILE_LAYER) {
- mgr.solidLayer = &mgr.map->layers[i];
- }
- if (strcmp(mgr.map->layers[i].name, "Collectible") == 0 ||
- strcmp(mgr.map->layers[i].name, "Pickups") == 0)
- mgr.pickupLayer = &mgr.map->layers[i];
- }
- }
- return mgr;
-}
-
-void UnloadGameMap(MapManager *mgr) {
- if (mgr->map) {
- UnloadTMX(mgr->map);
- mgr->map = NULL;
- }
-}
-
-bool IsWallCollision(MapManager *mgr, Rectangle rect) {
- // Check main walls
- if (mgr->wallLayer && CheckCollisionTMXTileLayersRec(mgr->map, mgr->wallLayer, 1, rect, NULL))
- return true;
-
- // Check additional solid layer (props, etc)
- if (mgr->solidLayer && CheckCollisionTMXTileLayersRec(mgr->map, mgr->solidLayer, 1, rect, NULL))
- return true;
-
- return false;
-}
-
-// Internal helper for debug rendering
-static void DrawDebugTileCollision(TmxMap *map, TmxLayer *layer, Color color) {
- if (!layer || layer->type != LAYER_TYPE_TILE_LAYER) return;
-
- TmxTileLayer *tileLayer = &layer->exact.tileLayer;
- for (uint32_t y = 0; y < tileLayer->height; y++) {
- for (uint32_t x = 0; x < tileLayer->width; x++) {
- uint32_t gid = tileLayer->tiles[y * tileLayer->width + x];
- if (gid != 0 && gid < map->gidsToTilesLength) {
- TmxTile tileData = map->gidsToTiles[gid];
- for (uint32_t objIdx = 0; objIdx < tileData.objectGroup.objectsLength; objIdx++) {
- TmxObject obj = tileData.objectGroup.objects[objIdx];
- DrawRectangleLinesEx((Rectangle){
- (float)x * TILE_SIZE + (float)obj.x,
- (float)y * TILE_SIZE + (float)obj.y,
- (float)obj.width,
- (float)obj.height
- }, 0.5f, color);
- }
- }
- }
- }
-}
-
-void DrawMap(MapManager *mgr) {
- AnimateTMX(mgr->map);
- DrawTMX(mgr->map, NULL, NULL, 0, 0, WHITE);
-
- if (debugMode) {
- DrawDebugTileCollision(mgr->map, mgr->wallLayer, RED);
- DrawDebugTileCollision(mgr->map, mgr->solidLayer, RED);
- }
-}
-
-void DrawEntities(EntityManager *mgr, TmxMap *map) {
- Rectangle drawViewport = {-1000, -1000, 5000, 5000};
-
- for (int i = 0; i < mgr->collectiblesCount; i++) {
- if (mgr->collectibles[i].active) {
- // Pickups are drawn by the map renderer (DrawTMX).
- // We only draw the debug hitbox here.
- if (debugMode) {
- DrawRectangleLinesEx(mgr->collectibles[i].bounds, 0.5f, GREEN);
- }
- }
- }
-
- for (int i = 0; i < mgr->movablesCount; i++) {
- DrawTMXLayerTile(map, drawViewport, mgr->movables[i].gid,
- mgr->movables[i].bounds, WHITE);
- if (debugMode) {
- DrawRectangleLinesEx(mgr->movables[i].bounds, 0.5f, GREEN);
- }
- }
-
- for (int i = 0; i < mgr->enemiesCount; i++) {
- if (mgr->enemies[i].active) {
- DrawTMXLayerTile(map, drawViewport, mgr->enemies[i].gid,
- mgr->enemies[i].bounds, WHITE);
- if (debugMode) {
- DrawRectangleLinesEx(mgr->enemies[i].bounds, 0.5f, RED);
- }
- }
- }
-}