universe.cpp: protect also is_spot against hole in the universe

This commit is contained in:
ALONSO Laurent
2022-07-17 15:34:54 +02:00
committed by Celtic Minstrel
parent e36d3f4eb2
commit d6d2af943c

View File

@@ -908,6 +908,9 @@ bool cCurOut::is_spot(int x, int y) {
if(y >= 48) sector_y++, y -= 48;
sector_x += univ.party.outdoor_corner.x;
sector_y += univ.party.outdoor_corner.y;
// can happen if a hole allows to goes out the scenario
if(sector_x < 0 || sector_x >= univ.scenario.outdoors.width() || sector_y < 0 || sector_y >= univ.scenario.outdoors.height())
return false;
return univ.scenario.outdoors[sector_x][sector_y]->special_spot[x][y];
}
@@ -917,9 +920,8 @@ bool cCurOut::is_road(int x, int y) {
if(y >= 48) sector_y++, y -= 48;
sector_x += univ.party.outdoor_corner.x;
sector_y += univ.party.outdoor_corner.y;
// can happens if a hole allows to goes out the scenario...
if (sector_x<0 || sector_x>=univ.scenario.outdoors.width() ||
sector_y<0 || sector_y>=univ.scenario.outdoors.height())
// can happen if a hole allows to goes out the scenario...
if(sector_x < 0 || sector_x >= univ.scenario.outdoors.width() || sector_y < 0 || sector_y >= univ.scenario.outdoors.height())
return false;
return univ.scenario.outdoors[sector_x][sector_y]->roads[x][y];
}