resize changes
This commit is contained in:
parent
7b965a27af
commit
deedef235d
|
@ -59,7 +59,7 @@ void MapView::draw(const Rect& rect)
|
||||||
if(isNearView())
|
if(isNearView())
|
||||||
tileDrawFlags = Otc::DrawGround | Otc::DrawWalls | Otc::DrawCommonItems | Otc::DrawCreatures | Otc::DrawEffects;
|
tileDrawFlags = Otc::DrawGround | Otc::DrawWalls | Otc::DrawCommonItems | Otc::DrawCreatures | Otc::DrawEffects;
|
||||||
else if(isMidView())
|
else if(isMidView())
|
||||||
tileDrawFlags = Otc::DrawGround | Otc::DrawWalls | Otc::DrawCommonItems | Otc::DrawCreatures;
|
tileDrawFlags = Otc::DrawGround | Otc::DrawWalls | Otc::DrawCommonItems;
|
||||||
else if(isFarView())
|
else if(isFarView())
|
||||||
tileDrawFlags = Otc::DrawGround | Otc::DrawWalls;
|
tileDrawFlags = Otc::DrawGround | Otc::DrawWalls;
|
||||||
else // huge far view
|
else // huge far view
|
||||||
|
@ -137,6 +137,10 @@ void MapView::draw(const Rect& rect)
|
||||||
if(pos.z < m_cachedFirstVisibleFloor || pos.z > m_cachedLastVisibleFloor)
|
if(pos.z < m_cachedFirstVisibleFloor || pos.z > m_cachedLastVisibleFloor)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// dont draw animated texts from covered tiles
|
||||||
|
if(pos.z != cameraPosition.z && g_map.isCovered(pos, m_cachedFirstVisibleFloor))
|
||||||
|
continue;
|
||||||
|
|
||||||
Point p = transformPositionTo2D(pos) - drawOffset;
|
Point p = transformPositionTo2D(pos) - drawOffset;
|
||||||
p.x = p.x * horizontalStretchFactor;
|
p.x = p.x * horizontalStretchFactor;
|
||||||
p.y = p.y * verticalStretchFactor;
|
p.y = p.y * verticalStretchFactor;
|
||||||
|
@ -286,7 +290,7 @@ int MapView::getFirstVisibleFloor()
|
||||||
Position cameraPosition = getCameraPosition();
|
Position cameraPosition = getCameraPosition();
|
||||||
|
|
||||||
// avoid rendering multile floors on far views
|
// avoid rendering multile floors on far views
|
||||||
if(!isNearView())
|
if(!isNearView() && !isMidView())
|
||||||
return cameraPosition.z;
|
return cameraPosition.z;
|
||||||
|
|
||||||
// if nothing is limiting the view, the first visible floor is 0
|
// if nothing is limiting the view, the first visible floor is 0
|
||||||
|
@ -294,7 +298,7 @@ int MapView::getFirstVisibleFloor()
|
||||||
|
|
||||||
// limits to underground floors while under sea level
|
// limits to underground floors while under sea level
|
||||||
if(cameraPosition.z > Otc::SEA_FLOOR)
|
if(cameraPosition.z > Otc::SEA_FLOOR)
|
||||||
firstFloor = cameraPosition.z - Otc::AWARE_UNDEGROUND_FLOOR_RANGE;
|
firstFloor = std::max(cameraPosition.z - Otc::AWARE_UNDEGROUND_FLOOR_RANGE, (int)Otc::UNDERGROUND_FLOOR);
|
||||||
|
|
||||||
// loop in 3x3 tiles around the camera
|
// loop in 3x3 tiles around the camera
|
||||||
for(int ix = -1; ix <= 1 && firstFloor < cameraPosition.z; ++ix) {
|
for(int ix = -1; ix <= 1 && firstFloor < cameraPosition.z; ++ix) {
|
||||||
|
@ -302,7 +306,7 @@ int MapView::getFirstVisibleFloor()
|
||||||
Position pos = cameraPosition.translated(ix, iy);
|
Position pos = cameraPosition.translated(ix, iy);
|
||||||
|
|
||||||
// process tiles that we can look through, e.g. windows, doors
|
// process tiles that we can look through, e.g. windows, doors
|
||||||
if((ix == 0 && iy == 0) || g_map.isLookPossible(pos)) {
|
if((ix == 0 && iy == 0) || (/*(std::abs(ix) != std::abs(iy)) && */g_map.isLookPossible(pos))) {
|
||||||
Position upperPos = pos;
|
Position upperPos = pos;
|
||||||
Position coveredPos = pos;
|
Position coveredPos = pos;
|
||||||
|
|
||||||
|
@ -336,7 +340,7 @@ int MapView::getLastVisibleFloor()
|
||||||
Position cameraPosition = getCameraPosition();
|
Position cameraPosition = getCameraPosition();
|
||||||
|
|
||||||
// avoid rendering multile floors on far views
|
// avoid rendering multile floors on far views
|
||||||
if(!isNearView())
|
if(!isNearView() && !isMidView())
|
||||||
return cameraPosition.z;
|
return cameraPosition.z;
|
||||||
|
|
||||||
// view only underground floors when below sea level
|
// view only underground floors when below sea level
|
||||||
|
|
|
@ -30,10 +30,10 @@
|
||||||
class MapView : public LuaObject
|
class MapView : public LuaObject
|
||||||
{
|
{
|
||||||
enum {
|
enum {
|
||||||
DEFAULT_FRAMBUFFER_SIZE = 2048,
|
DEFAULT_FRAMBUFFER_SIZE = 3840,
|
||||||
NEAR_VIEW_AREA = 64*64,
|
NEAR_VIEW_AREA = 64*64,
|
||||||
MID_VIEW_AREA = 128*128,
|
MID_VIEW_AREA = 128*128,
|
||||||
FAR_VIEW_AREA = 192*192
|
FAR_VIEW_AREA = 256*256
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -56,7 +56,16 @@ void UIMap::draw()
|
||||||
|
|
||||||
void UIMap::zoomIn()
|
void UIMap::zoomIn()
|
||||||
{
|
{
|
||||||
m_mapView->setVisibleDimension(m_mapView->getVisibleDimension() + Size(2,2));
|
int dimensionHeight = m_mapView->getVisibleDimension().height() * 0.99;
|
||||||
|
if(dimensionHeight == m_mapView->getVisibleDimension().height())
|
||||||
|
dimensionHeight -= 1;
|
||||||
|
if(dimensionHeight % 2 == 0)
|
||||||
|
dimensionHeight -= 1;
|
||||||
|
int dimensionWidth = dimensionHeight * getSize().ratio();
|
||||||
|
if(dimensionWidth % 2 == 0)
|
||||||
|
dimensionWidth -= 1;
|
||||||
|
|
||||||
|
m_mapView->setVisibleDimension(Size(dimensionWidth, dimensionHeight));
|
||||||
|
|
||||||
Rect mapRect = getChildrenRect().expanded(-1);
|
Rect mapRect = getChildrenRect().expanded(-1);
|
||||||
Size mapSize = m_mapView->getVisibleSize();
|
Size mapSize = m_mapView->getVisibleSize();
|
||||||
|
@ -68,7 +77,16 @@ void UIMap::zoomIn()
|
||||||
|
|
||||||
void UIMap::zoomOut()
|
void UIMap::zoomOut()
|
||||||
{
|
{
|
||||||
m_mapView->setVisibleDimension(m_mapView->getVisibleDimension() - Size(2,2));
|
int dimensionHeight = m_mapView->getVisibleDimension().height() * 1.01;
|
||||||
|
if(dimensionHeight == m_mapView->getVisibleDimension().height())
|
||||||
|
dimensionHeight += 1;
|
||||||
|
if(dimensionHeight % 2 == 0)
|
||||||
|
dimensionHeight += 1;
|
||||||
|
int dimensionWidth = dimensionHeight * getSize().ratio();
|
||||||
|
if(dimensionWidth % 2 == 0)
|
||||||
|
dimensionWidth += 1;
|
||||||
|
|
||||||
|
m_mapView->setVisibleDimension(Size(dimensionWidth, dimensionHeight));
|
||||||
|
|
||||||
Rect mapRect = getChildrenRect().expanded(-1);
|
Rect mapRect = getChildrenRect().expanded(-1);
|
||||||
Size mapSize = m_mapView->getVisibleSize();
|
Size mapSize = m_mapView->getVisibleSize();
|
||||||
|
|
Loading…
Reference in New Issue