aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/bladerunner.cpp
diff options
context:
space:
mode:
authorThanasis Antoniou2019-05-27 14:16:03 +0300
committerThanasis Antoniou2019-05-29 12:08:24 +0300
commita041a291112433d014551c409cc48c629a077a09 (patch)
treec915137dd41254dc00dddcab2b0c74f78633e4bb /engines/bladerunner/bladerunner.cpp
parent8999b95053c6a22d4b4d639c584f1ad7513a5785 (diff)
downloadscummvm-rg350-a041a291112433d014551c409cc48c629a077a09.tar.gz
scummvm-rg350-a041a291112433d014551c409cc48c629a077a09.tar.bz2
scummvm-rg350-a041a291112433d014551c409cc48c629a077a09.zip
BLADERUNNER: Added click debugger command
Shows mouse click pos (x,y,z) and detected clickable region/actor/item/object id underneath
Diffstat (limited to 'engines/bladerunner/bladerunner.cpp')
-rw-r--r--engines/bladerunner/bladerunner.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index ec0017e413..6fc8dda67c 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -1358,6 +1358,26 @@ void BladeRunnerEngine::handleMouseAction(int x, int y, bool mainButton, bool bu
int exitIndex = _scene->_exits->getRegionAtXY(x, y);
int regionIndex = _scene->_regions->getRegionAtXY(x, y);
+ if (_debugger->_showMouseClickInfo) {
+ // Region has highest priority when overlapping
+ debug("Mouse: %02.2f, %02.2f, %02.2f", scenePosition.x, scenePosition.y, scenePosition.z);
+ if ((sceneObjectId < kSceneObjectOffsetActors || sceneObjectId >= kSceneObjectOffsetItems) && exitIndex >= 0) {
+ debug("Clicked on Region-Exit=%d", exitIndex);
+ } else if (regionIndex >= 0) {
+ debug("Clicked on Region-Regular=%d", regionIndex);
+ }
+ // In debug mode we're interested in *all* object/actors/items under mouse click
+ if (sceneObjectId >= kSceneObjectOffsetActors && sceneObjectId < kSceneObjectOffsetItems) {
+ debug("Clicked on Actor: %d", sceneObjectId - kSceneObjectOffsetActors);
+ }
+ if (sceneObjectId >= kSceneObjectOffsetItems && sceneObjectId < kSceneObjectOffsetObjects) {
+ debug("Clicked on Item: %d", sceneObjectId - kSceneObjectOffsetItems);
+ }
+ if (sceneObjectId >= kSceneObjectOffsetObjects && sceneObjectId <= (95 + kSceneObjectOffsetObjects) ) {
+ debug("Clicked on Object: %d", sceneObjectId - kSceneObjectOffsetObjects);
+ }
+ }
+
if ((sceneObjectId < kSceneObjectOffsetActors || sceneObjectId >= kSceneObjectOffsetItems) && exitIndex >= 0) {
handleMouseClickExit(exitIndex, x, y, buttonDown);
} else if (regionIndex >= 0) {
@@ -1368,7 +1388,7 @@ void BladeRunnerEngine::handleMouseAction(int x, int y, bool mainButton, bool bu
handleMouseClickActor(sceneObjectId - kSceneObjectOffsetActors, mainButton, buttonDown, scenePosition, x, y);
} else if (sceneObjectId >= kSceneObjectOffsetItems && sceneObjectId < kSceneObjectOffsetObjects) {
handleMouseClickItem(sceneObjectId - kSceneObjectOffsetItems, buttonDown);
- } else if (sceneObjectId >= kSceneObjectOffsetObjects && sceneObjectId <= 293) {
+ } else if (sceneObjectId >= kSceneObjectOffsetObjects && sceneObjectId <= (95 + kSceneObjectOffsetObjects)) {
handleMouseClick3DObject(sceneObjectId - kSceneObjectOffsetObjects, buttonDown, isClickable, isTarget);
}
} else if (buttonDown) {