feat(mummy): evita tiles amb decal trigger (Hole) en decidir direcció

This commit is contained in:
JailDesigner committed 2026-04-30 16:50:26 +02:00
1 parent 3e5217066f
commit 3bfca35f3a
5 files changed
+111 -27

No files matched your search

@@ -58,23 +58,6 @@ void EntityManager::renderAll() {
for (const auto& e : entities_) { renderEntity(*e); }
}
auto EntityManager::findFloorTriggerAt(const SDL_FRect& rect) const -> const Entity* {
// Cerca lineal sobre `entities_`: cost menyspreable amb poques
// desenes d'entitats per sala i una sola crida per frame i per
// jugador (a l'aterratge). Si esdevé calent, es podria indexar
// per cel·la del tilemap. La doble condició filtra exclusivament
// decals de sòl que volen rebre triggers — avui Hole; en el
// futur pinchos plans, plaques de pressió, charcos.
for (const auto& entity : entities_) {
if (!entity->triggersOnOverlap()) { continue; }
if (!entity->isFloorDecal()) { continue; }
const auto BOX = entity->getCollisionRect();
const bool OVERLAP = rect.x + rect.w > BOX.x && BOX.x + BOX.w > rect.x && rect.y + rect.h > BOX.y && BOX.y + BOX.h > rect.y;
if (OVERLAP) { return entity.get(); }
}
return nullptr;
}
void EntityManager::checkPlayerCollisions(const std::vector<Player*>& players) {
if (players.empty()) { return; }
for (const auto& entity : entities_) {