diff options
author | Thanasis Antoniou | 2019-05-27 14:16:03 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-05-29 12:08:24 +0300 |
commit | a041a291112433d014551c409cc48c629a077a09 (patch) | |
tree | c915137dd41254dc00dddcab2b0c74f78633e4bb /engines/bladerunner/bladerunner.cpp | |
parent | 8999b95053c6a22d4b4d639c584f1ad7513a5785 (diff) | |
download | scummvm-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.cpp | 22 |
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) { |