/** * @brief Enables or disables the dynamic tiles related to these stairs. * * The dynamic tiles impacted by this function are the ones whose prefix is the stairs's name * followed by "_enabled" or "_disabled", depending on the stairs state. */ void Stairs::update_dynamic_tiles() { std::list<MapEntity*> tiles = get_entities().get_entities_with_prefix(DYNAMIC_TILE, get_name() + "_enabled"); std::list<MapEntity*>::iterator it; for (it = tiles.begin(); it != tiles.end(); it++) { DynamicTile *tile = (DynamicTile*) *it; tile->set_enabled(is_enabled()); } tiles = get_entities().get_entities_with_prefix(DYNAMIC_TILE, get_name() + "_disabled"); for (it = tiles.begin(); it != tiles.end(); it++) { DynamicTile *tile = (DynamicTile*) *it; tile->set_enabled(!is_enabled()); } }
/** * @brief Enables or disables the dynamic tiles related to this door. * * The dynamic tiles impacted by this function are the ones whose prefix is the door's name * followed by "_closed" or "_open", depending on the door state. */ void Door::update_dynamic_tiles() { std::list<MapEntity*> tiles = get_entities().get_entities_with_prefix(DYNAMIC_TILE, get_name() + "_closed"); std::list<MapEntity*>::iterator it; for (it = tiles.begin(); it != tiles.end(); it++) { DynamicTile* tile = static_cast<DynamicTile*>(*it); tile->set_enabled(is_closed() || is_opening()); } tiles = get_entities().get_entities_with_prefix(DYNAMIC_TILE, get_name() + "_open"); for (it = tiles.begin(); it != tiles.end(); it++) { DynamicTile* tile = static_cast<DynamicTile*>(*it); tile->set_enabled(is_open() || is_closing()); } }