aboutsummaryrefslogtreecommitdiff
path: root/saga/script.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'saga/script.cpp')
-rw-r--r--saga/script.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/saga/script.cpp b/saga/script.cpp
index 5e0f044be1..34f454aa7c 100644
--- a/saga/script.cpp
+++ b/saga/script.cpp
@@ -36,6 +36,7 @@
#include "saga/events.h"
#include "saga/actor.h"
#include "saga/objectmap.h"
+#include "saga/isomap.h"
namespace Saga {
@@ -607,7 +608,7 @@ void Script::playfieldClick(const Point& mousePoint, bool leftButton) {
// tiled stuff
if (_vm->_scene->getFlags() & kSceneFlagISO) {
- //todo: it
+ _vm->_isoMap->screenPointToTileCoords(mousePoint, pickLocation);
} else {
pickLocation.fromScreenPoint(mousePoint);
}
@@ -637,7 +638,9 @@ void Script::playfieldClick(const Point& mousePoint, bool leftButton) {
// tiled stuff
if (_vm->_scene->getFlags() & kSceneFlagISO) {
- //todo: it
+ pickLocation.u() = specialPoint.x;
+ pickLocation.v() = specialPoint.y;
+ pickLocation.z = _vm->_actor->_protagonist->location.z;
} else {
pickLocation.fromScreenPoint(specialPoint);
}
@@ -679,6 +682,7 @@ void Script::whichObject(const Point& mousePoint) {
Location pickLocation;
int hitZoneIndex;
const HitZone * hitZone;
+ Point tempPoint;
objectId = ID_NOTHING;
objectFlags = 0;
@@ -718,7 +722,9 @@ void Script::whichObject(const Point& mousePoint) {
if (newObjectId == ID_NOTHING) {
if (_vm->_scene->getFlags() & kSceneFlagISO) {
- //todo: it
+ tempPoint = mousePoint;
+ tempPoint.y -= _vm->_actor->_protagonist->location.z;
+ _vm->_isoMap->screenPointToTileCoords(tempPoint, pickLocation);
} else {
pickLocation.x = mousePoint.x;
pickLocation.y = mousePoint.y;