forked from jaildesigner-jailgames/jaildoctors_dilemma
Haciendo las superficies verticales
This commit is contained in:
@@ -762,6 +762,36 @@ void Room::setTopSurfaces()
|
|||||||
// Calcula las superficies laterales izquierdas
|
// Calcula las superficies laterales izquierdas
|
||||||
void Room::setLeftSurfaces()
|
void Room::setLeftSurfaces()
|
||||||
{
|
{
|
||||||
|
std::vector<int> tile;
|
||||||
|
|
||||||
|
// Busca todos los tiles de tipo wall (excepto los de la primera columna) que a su izquierda
|
||||||
|
// tienen un tile de tipo vacio
|
||||||
|
for (int i = 0; i < tilemap.size(); i++)
|
||||||
|
{
|
||||||
|
if (i % mapWidth != 0)
|
||||||
|
{
|
||||||
|
if (getTile(i) == t_wall && getTile(i - 1) == t_empty)
|
||||||
|
{
|
||||||
|
tile.push_back(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Recorre el vector de tiles buscando tiles consecutivos para localizar las superficies
|
||||||
|
int i = 0;
|
||||||
|
while (i < tile.size())
|
||||||
|
{
|
||||||
|
v_line_t line;
|
||||||
|
line.x = (tile[i] % mapWidth) * tileSize;
|
||||||
|
line.y1 = ((tile[i] / mapWidth) * tileSize);
|
||||||
|
while (tile[i] + 1 == tile[i + mapWidth])
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
line.x2 = ((tile[i] % mapWidth) * tileSize) + tileSize - 1;
|
||||||
|
leftSurfaces.push_back(line);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calcula las superficies laterales derechas
|
// Calcula las superficies laterales derechas
|
||||||
|
|||||||
Reference in New Issue
Block a user