diff options
-rw-r--r-- | engines/zvision/graphics/render_table.cpp | 5 | ||||
-rw-r--r-- | engines/zvision/graphics/render_table.h | 3 | ||||
-rw-r--r-- | engines/zvision/zvision.cpp | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/engines/zvision/graphics/render_table.cpp b/engines/zvision/graphics/render_table.cpp index 2fc21b7566..9bf40d3745 100644 --- a/engines/zvision/graphics/render_table.cpp +++ b/engines/zvision/graphics/render_table.cpp @@ -199,6 +199,7 @@ void RenderTable::generateTiltLookupTable() { float fovInRadians = (_tiltOptions.fieldOfView * M_PI / 180.0f); float cylinderRadius = halfWidth / tan(fovInRadians); + _tiltOptions.gap = cylinderRadius * atan2(halfHeight / cylinderRadius, 1.0) * _tiltOptions.linearScale; for (uint y = 0; y < _numRows; ++y) { @@ -259,4 +260,8 @@ void RenderTable::setTiltReverse(bool reverse) { _tiltOptions.reverse = reverse; } +float RenderTable::getTiltGap() { + return _tiltOptions.gap; +} + } // End of namespace ZVision diff --git a/engines/zvision/graphics/render_table.h b/engines/zvision/graphics/render_table.h index 0b4d6e3919..a268ee615f 100644 --- a/engines/zvision/graphics/render_table.h +++ b/engines/zvision/graphics/render_table.h @@ -57,6 +57,7 @@ private: float fieldOfView; float linearScale; bool reverse; + float gap; } _tiltOptions; public: @@ -79,6 +80,8 @@ public: void setTiltScale(float scale); void setTiltReverse(bool reverse); + float getTiltGap(); + private: void generatePanoramaLookupTable(); void generateTiltLookupTable(); diff --git a/engines/zvision/zvision.cpp b/engines/zvision/zvision.cpp index 24e15e0c86..a534e49c25 100644 --- a/engines/zvision/zvision.cpp +++ b/engines/zvision/zvision.cpp @@ -332,7 +332,7 @@ void ZVision::updateRotation() { int16 new_pos = st_pos + _velocity * (1 - 2 * 0); int16 scr_height = _renderManager->getBkgSize().y; - int16 tilt_gap = _workingWindow.height() / 2; + int16 tilt_gap = _renderManager->getRenderTable()->getTiltGap(); if (new_pos >= (scr_height - tilt_gap)) new_pos = scr_height - tilt_gap; |