diff options
author | Peter Kohaut | 2018-03-17 16:40:33 +0100 |
---|---|---|
committer | Peter Kohaut | 2018-03-17 16:42:25 +0100 |
commit | 19d9e4cec818980a75772a204c96774afbd2b17e (patch) | |
tree | aaf4ae3f0322c0a75418451b50c8e09b424c0a7f /engines/bladerunner/view.cpp | |
parent | b2727018344535789c96b0e9c95c741d0dd054c5 (diff) | |
download | scummvm-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.cpp | 19 |
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() { |