From 34df6121dd625b233159e919139d4e223532e4de Mon Sep 17 00:00:00 2001 From: Steve Date: Wed, 7 Mar 2018 21:38:18 +0000 Subject: [PATCH] Warn about entities that are stuck in walls at start of level. --- src/world/entities.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/world/entities.c b/src/world/entities.c index 7c49ff2..c16feda 100644 --- a/src/world/entities.c +++ b/src/world/entities.c @@ -36,6 +36,7 @@ static int hasHitWorld(int mx, int my); static void compareEnvironments(void); static int getMarkerType(void); static int drawComparator(const void *a, const void *b); +static void checkStuckInWall(void); static Entity *riders[MAX_RIDERS]; static Entity *touched[MAX_TOUCHED]; @@ -70,6 +71,8 @@ void initEntities(void) } addToQuadtree(self, &world.quadtree); + + checkStuckInWall(); } } @@ -446,6 +449,29 @@ static void moveEntity(void) } } +static void checkStuckInWall(void) +{ + int mx, my; + + switch (self->type) + { + case ET_PRESSURE_PLATE: + case ET_TELEPORTER: + case ET_DOOR: + break; + + default: + mx = self->x / MAP_TILE_SIZE; + my = self->y / MAP_TILE_SIZE; + + if (hasHitWorld(mx, my)) + { + SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_WARN, "%s (%d): in wall at %d,%d", self->name, self->type, mx, my); + } + break; + } +} + static void haltAtEdge(void) { float x, y;