aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/view.cpp
diff options
context:
space:
mode:
authorPeter Kohaut2018-03-17 16:40:33 +0100
committerPeter Kohaut2018-03-17 16:42:25 +0100
commit19d9e4cec818980a75772a204c96774afbd2b17e (patch)
treeaaf4ae3f0322c0a75418451b50c8e09b424c0a7f /engines/bladerunner/view.cpp
parentb2727018344535789c96b0e9c95c741d0dd054c5 (diff)
downloadscummvm-rg350-19d9e4cec818980a75772a204c96774afbd2b17e.tar.gz
scummvm-rg350-19d9e4cec818980a75772a204c96774afbd2b17e.tar.bz2
scummvm-rg350-19d9e4cec818980a75772a204c96774afbd2b17e.zip
BLADERUNNER: Added combat
Math cleanup Fixed obstacle detection
Diffstat (limited to 'engines/bladerunner/view.cpp')
-rw-r--r--engines/bladerunner/view.cpp19
1 files changed, 7 insertions, 12 deletions
diff --git a/engines/bladerunner/view.cpp b/engines/bladerunner/view.cpp
index d304b92bb1..72c070ecc0 100644
--- a/engines/bladerunner/view.cpp
+++ b/engines/bladerunner/view.cpp
@@ -31,8 +31,9 @@ bool View::readVqa(Common::ReadStream *stream) {
_frame = stream->readUint32LE();
float d[12];
- for (int i = 0; i != 12; ++i)
+ for (int i = 0; i != 12; ++i) {
d[i] = stream->readFloatLE();
+ }
_frameViewMatrix = Matrix4x3(d);
@@ -54,17 +55,11 @@ void View::setFovX(float fovX) {
}
void View::calculateSliceViewMatrix() {
- Matrix4x3 m = _frameViewMatrix;
-
- m = m * rotationMatrixX(float(M_PI) / 2.0f);
-
- Matrix4x3 a(-1.0f, 0.0f, 0.0f, 0.0f,
- 0.0f, -1.0f, 0.0f, 0.0f,
- 0.0f, 0.0f, 1.0f, 0.0f);
-
- m = a * m;
-
- _sliceViewMatrix = m;
+ Matrix4x3 mRotation = rotationMatrixX(float(M_PI) / 2.0f);
+ Matrix4x3 mInvert(-1.0f, 0.0f, 0.0f, 0.0f,
+ 0.0f, -1.0f, 0.0f, 0.0f,
+ 0.0f, 0.0f, 1.0f, 0.0f);
+ _sliceViewMatrix = mInvert * (_frameViewMatrix * mRotation);
}
void View::calculateCameraPosition() {