aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kmovement.cpp
diff options
context:
space:
mode:
authorMartin Kiewitz2010-09-05 13:51:47 +0000
committerMartin Kiewitz2010-09-05 13:51:47 +0000
commit4766cc5bb5c872e7ba7e787ec512bc16388e3b24 (patch)
tree5fb9524553dadee519497a8468ed2ea82cd8e957 /engines/sci/engine/kmovement.cpp
parentd5d5dde56be6d7ff6c0b180f9f49df9bb95724e7 (diff)
downloadscummvm-rg350-4766cc5bb5c872e7ba7e787ec512bc16388e3b24.tar.gz
scummvm-rg350-4766cc5bb5c872e7ba7e787ec512bc16388e3b24.tar.bz2
scummvm-rg350-4766cc5bb5c872e7ba7e787ec512bc16388e3b24.zip
SCI: reuse kGetAngle from kDoAvoider
svn-id: r52560
Diffstat (limited to 'engines/sci/engine/kmovement.cpp')
-rw-r--r--engines/sci/engine/kmovement.cpp24
1 files changed, 2 insertions, 22 deletions
diff --git a/engines/sci/engine/kmovement.cpp b/engines/sci/engine/kmovement.cpp
index fe8b4e4da3..db54705694 100644
--- a/engines/sci/engine/kmovement.cpp
+++ b/engines/sci/engine/kmovement.cpp
@@ -387,26 +387,7 @@ reg_t kDoBresen(EngineState *s, int argc, reg_t *argv) {
}
extern void kDirLoopWorker(reg_t obj, uint16 angle, EngineState *s, int argc, reg_t *argv);
-
-int getAngle(int xrel, int yrel) {
- if ((xrel == 0) && (yrel == 0))
- return 0;
- else {
- int val = (int)(180.0 / PI * atan2((double)xrel, (double) - yrel));
- if (val < 0)
- val += 360;
-
- // Take care of OB1 differences between SSCI and
- // FSCI. SCI games sometimes check for equality with
- // "round" angles
- if (val % 45 == 44)
- val++;
- else if (val % 45 == 1)
- val--;
-
- return val;
- }
-}
+extern uint16 kGetAngleWorker(int16 x1, int16 y1, int16 x2, int16 y2);
reg_t kDoAvoider(EngineState *s, int argc, reg_t *argv) {
SegManager *segMan = s->_segMan;
@@ -446,8 +427,7 @@ reg_t kDoAvoider(EngineState *s, int argc, reg_t *argv) {
return SIGNAL_REG;
avoiderHeading = -1;
- // TODO: reverse this
- uint16 angle = getAngle(moverX - clientX, moverY - clientY);
+ uint16 angle = kGetAngleWorker(clientX, clientY, moverX, moverY);
reg_t clientLooper = readSelector(segMan, client, SELECTOR(looper));
if (clientLooper.isNull()) {