diff options
author | Paul Gilbert | 2017-08-20 14:31:47 -0400 |
---|---|---|
committer | GitHub | 2017-08-20 14:31:47 -0400 |
commit | a32a29a80e8dfc44c5da8a2f872914710a4009ae (patch) | |
tree | 15427ed634e960f0cb2fecf4ae70a2de12577367 /engines/titanic/star_control/camera_auto_mover.cpp | |
parent | 4ba87013a9d9d50a2866fd23aaf39e546bff9b7b (diff) | |
parent | 312d63c3c951ed3781c4f7a1577b62cb862042b3 (diff) | |
download | scummvm-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.cpp | 19 |
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; |