aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/star_control/camera_auto_mover.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2017-08-20 14:31:47 -0400
committerGitHub2017-08-20 14:31:47 -0400
commita32a29a80e8dfc44c5da8a2f872914710a4009ae (patch)
tree15427ed634e960f0cb2fecf4ae70a2de12577367 /engines/titanic/star_control/camera_auto_mover.cpp
parent4ba87013a9d9d50a2866fd23aaf39e546bff9b7b (diff)
parent312d63c3c951ed3781c4f7a1577b62cb862042b3 (diff)
downloadscummvm-rg350-a32a29a80e8dfc44c5da8a2f872914710a4009ae.tar.gz
scummvm-rg350-a32a29a80e8dfc44c5da8a2f872914710a4009ae.tar.bz2
scummvm-rg350-a32a29a80e8dfc44c5da8a2f872914710a4009ae.zip
Merge pull request #995 from dafioram/star_camera_work
TITANIC: CStarCamera Refactoring and CStarCrosshairs logic fix
Diffstat (limited to 'engines/titanic/star_control/camera_auto_mover.cpp')
-rw-r--r--engines/titanic/star_control/camera_auto_mover.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/engines/titanic/star_control/camera_auto_mover.cpp b/engines/titanic/star_control/camera_auto_mover.cpp
index 45e5a9e03e..bcb94d27c2 100644
--- a/engines/titanic/star_control/camera_auto_mover.cpp
+++ b/engines/titanic/star_control/camera_auto_mover.cpp
@@ -21,8 +21,11 @@
*/
#include "titanic/star_control/camera_auto_mover.h"
+#include "titanic/star_control/fmatrix.h"
+#include "titanic/star_control/error_code.h"
#include "common/textconsole.h"
+
namespace Titanic {
CCameraAutoMover::CCameraAutoMover() : _srcPos(0.0, 1000000.0, 0.0) {
@@ -46,8 +49,12 @@ void CCameraAutoMover::proc2(const FVector &oldPos, const FVector &newPos,
_srcPos = oldPos;
_destPos = newPos;
_posDelta = _destPos - _srcPos;
- _distance = _posDelta.normalize();
-
+ float temp = 0.0;
+ if (!_posDelta.normalize(temp)) { // Do the normalization, put the scale amount in temp,
+ // but if it is unsuccessful, crash
+ assert(temp);
+ }
+ _distance = temp;
_active = false;
_field34 = false;
_transitionPercent = 1.0;
@@ -70,8 +77,12 @@ void CCameraAutoMover::setPath(const FVector &srcV, const FVector &destV, const
_srcPos = srcV;
_destPos = destV;
_posDelta = _destPos - _srcPos;
- _distance = _posDelta.normalize();
-
+ float temp = 0.0;
+ if (!_posDelta.normalize(temp)) { // Do the normalization, put the scale amount in temp,
+ // but if it is unsuccessful, crash
+ assert(temp);
+ }
+ _distance = temp;
_active = false;
_field34 = false;
_field40 = -1;