scen.graphics.cpp: correct the coordinate display in zoom's mode...
This commit is contained in:
@@ -933,12 +933,12 @@ void draw_terrain(){
|
|||||||
|
|
||||||
else {
|
else {
|
||||||
// fixme: the bounds are now correct and the scrolling must be fluid,
|
// fixme: the bounds are now correct and the scrolling must be fluid,
|
||||||
// however, the procedure which displays is still bad
|
// however, the select procedure is bad
|
||||||
tileImage(mainPtr, terrain_rect,bg[17]);
|
tileImage(mainPtr, terrain_rect,bg[17]);
|
||||||
frame_rect(mainPtr, terrain_rect, sf::Color::Black);
|
frame_rect(mainPtr, terrain_rect, sf::Color::Black);
|
||||||
// Width available: 64 4x4 tiles, 42 6x6 tiles, or 21 12x12 tiles -- 256 pixels
|
// Width available: 64 4x4 tiles, 42 6x6 tiles, or 21 12x12 tiles -- 256 pixels
|
||||||
// Height available: 81 4x4 tiles, 54 6x6 tiles, or 27 12x12 tiles -- 324 pixels
|
// Height available: 81 4x4 tiles, 54 6x6 tiles, or 27 12x12 tiles -- 324 pixels
|
||||||
short const size = cur_viewing_mode<3 ? mini_map_scales[cur_viewing_mode - 1] : 12;
|
short const size = cur_viewing_mode<=3 ? mini_map_scales[cur_viewing_mode - 1] : 12;
|
||||||
int const max_dim = (editing_town ? town->max_dim : 48);
|
int const max_dim = (editing_town ? town->max_dim : 48);
|
||||||
int const xNumTiles=(256 / size);
|
int const xNumTiles=(256 / size);
|
||||||
int xMin = cen_x-(xNumTiles/2), xMax = xMin+xNumTiles;
|
int xMin = cen_x-(xNumTiles/2), xMax = xMin+xNumTiles;
|
||||||
@@ -952,6 +952,8 @@ void draw_terrain(){
|
|||||||
xMin=std::max(0, xMax-xNumTiles);
|
xMin=std::max(0, xMax-xNumTiles);
|
||||||
cen_x=xMin+(xNumTiles/2);
|
cen_x=xMin+(xNumTiles/2);
|
||||||
}
|
}
|
||||||
|
if (xMax-xMin!=xNumTiles)
|
||||||
|
cen_x=(xNumTiles/2)-xMin;
|
||||||
int const yNumTiles=(324 / size);
|
int const yNumTiles=(324 / size);
|
||||||
int yMin = cen_y-(yNumTiles/2), yMax = yMin+yNumTiles;
|
int yMin = cen_y-(yNumTiles/2), yMax = yMin+yNumTiles;
|
||||||
if (yMin<0) {
|
if (yMin<0) {
|
||||||
@@ -964,6 +966,8 @@ void draw_terrain(){
|
|||||||
yMin=std::max(0, yMax-yNumTiles);
|
yMin=std::max(0, yMax-yNumTiles);
|
||||||
cen_y=yMin+(yNumTiles/2);
|
cen_y=yMin+(yNumTiles/2);
|
||||||
}
|
}
|
||||||
|
if (yMax-yMin!=yNumTiles)
|
||||||
|
cen_y=(yNumTiles/2);
|
||||||
for(short q = xMin; q < xMax; q++)
|
for(short q = xMin; q < xMax; q++)
|
||||||
for(short r = yMin; r < yMax; r++) {
|
for(short r = yMin; r < yMax; r++) {
|
||||||
if(q < 0 || q >= max_dim || r < 0 || r >= max_dim)
|
if(q < 0 || q >= max_dim || r < 0 || r >= max_dim)
|
||||||
@@ -1230,9 +1234,16 @@ void place_location() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(mouse.in(terrain_rect) && mouse_spot.x >= 0)
|
} else if(mouse.in(terrain_rect) && mouse_spot.x >= 0) {
|
||||||
sout << "Under mouse: x = " << (cen_x - 4 + mouse_spot.x)
|
if(cur_viewing_mode <= 0 || cur_viewing_mode>=4)
|
||||||
<< ", y = " << (cen_y - 4 + mouse_spot.y);
|
sout << "Under mouse: x = " << (cen_x - 4 + mouse_spot.x)
|
||||||
|
<< ", y = " << (cen_y - 4 + mouse_spot.y);
|
||||||
|
else {
|
||||||
|
short const &scale = mini_map_scales[cur_viewing_mode - 1];
|
||||||
|
sout << "Under mouse: x = " << (cen_x-256/scale/2 + mouse_spot.x)
|
||||||
|
<< ", y = " << (cen_y-324/scale/2 + mouse_spot.y);
|
||||||
|
}
|
||||||
|
}
|
||||||
if(sout.str().empty())
|
if(sout.str().empty())
|
||||||
sout << "Center: x = " << cen_x << ", y = " << cen_y;
|
sout << "Center: x = " << cen_x << ", y = " << cen_y;
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user