aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/debugger.h
diff options
context:
space:
mode:
authorThanasis Antoniou2019-05-21 22:13:45 +0300
committerThanasis Antoniou2019-05-21 22:13:45 +0300
commitd4855a64b3bc9f9b2951486589ee8bff26ffabc2 (patch)
tree96574b1c391b705e80b49ac321b2636194c45afd /engines/bladerunner/debugger.h
parent203d82a1a0382684884da0d6c285444605153802 (diff)
downloadscummvm-rg350-d4855a64b3bc9f9b2951486589ee8bff26ffabc2.tar.gz
scummvm-rg350-d4855a64b3bc9f9b2951486589ee8bff26ffabc2.tar.bz2
scummvm-rg350-d4855a64b3bc9f9b2951486589ee8bff26ffabc2.zip
BLADERUNNER: Add methods to skip screen effects
Also enhanced functionality for debugger's cmdDraw, allowing to draw isolated objects
Diffstat (limited to 'engines/bladerunner/debugger.h')
-rw-r--r--engines/bladerunner/debugger.h61
1 files changed, 56 insertions, 5 deletions
diff --git a/engines/bladerunner/debugger.h b/engines/bladerunner/debugger.h
index 96fa76473d..5368286bfc 100644
--- a/engines/bladerunner/debugger.h
+++ b/engines/bladerunner/debugger.h
@@ -36,21 +36,50 @@ namespace BladeRunner {
class BladeRunnerEngine;
class View;
+enum DebuggerDrawnObjectType {
+ debuggerObjTypeUndefined = 99,
+ debuggerObjTypeActor = 0,
+ debuggerObjType3dObject = 1,
+ debuggerObjTypeItem = 2,
+ debuggerObjTypeRegionNormal = 3,
+ debuggerObjTypeRegionExit = 4,
+ debuggerObjTypeWaypointNorm = 5,
+ debuggerObjTypeWaypoingFlee = 6,
+ debuggerObjTypeWaypointCover = 7,
+ debuggerObjTypeWalkbox = 8,
+ debuggerObjTypeEffect = 9,
+ debuggerObjTypeLight = 10,
+ debuggerObjTypeFog = 11
+};
+
class Debugger : public GUI::Debugger{
BladeRunnerEngine *_vm;
+ static const int kMaxSpecificObjectsDrawnCount = 100;
+
+ struct DebuggerDrawnObject {
+ int sceneId;
+ int setId;
+ int objId;
+ DebuggerDrawnObjectType type;
+ };
+
public:
bool _isDebuggerOverlay;
- bool _viewActorsOnly;
+ bool _viewActorsToggle;
+ bool _view3dObjectsToggle;
+ bool _viewItemsToggle;
bool _viewFogs;
bool _viewLights;
bool _viewScreenEffects;
- bool _viewSceneObjects;
bool _viewObstacles;
- bool _viewRegions;
+ bool _viewRegionsNormalToggle;
+ bool _viewRegionsExitsToggle;
bool _viewUI;
- bool _viewWaypoints;
+ bool _viewWaypointsNormalToggle;
+ bool _viewWaypointsFleeToggle;
+ bool _viewWaypointsCoverToggle;
bool _viewWalkboxes;
bool _viewZBuffer;
bool _playFullVk;
@@ -81,6 +110,10 @@ public:
bool cmdObject(int argc, const char **argv);
bool cmdItem(int argc, const char **argv);
bool cmdRegion(int argc, const char **argv);
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+ bool cmdEffect(int argc, const char **argv);
+#endif // BLADERUNNER_ORIGINAL_BUGS
bool cmdList(int argc, const char **argv);
bool cmdVk(int argc, const char **argv);
@@ -88,13 +121,31 @@ public:
void drawBBox(Vector3 start, Vector3 end, View *view, Graphics::Surface *surface, int color);
void drawSceneObjects();
- void drawActors();
void drawLights();
void drawFogs();
void drawRegions();
void drawWaypoints();
void drawWalkboxes();
void drawScreenEffects();
+
+private:
+ Common::Array<DebuggerDrawnObject> _specificDrawnObjectsList;
+ bool _specificActorsDrawn;
+ bool _specific3dObjectsDrawn;
+ bool _specificItemsDrawn;
+ bool _specificEffectsDrawn;
+ bool _specificLightsDrawn;
+ bool _specificFogsDrawn;
+ bool _specificRegionNormalDrawn;
+ bool _specificRegionExitsDrawn;
+ bool _specificWaypointNormalDrawn;
+ bool _specificWaypointFleeDrawn;
+ bool _specificWaypointCoverDrawn;
+ bool _specificWalkboxesDrawn;
+
+ void toggleObjectInDbgDrawList(DebuggerDrawnObject &drObj);
+ int findInDbgDrawList(DebuggerDrawnObjectType objType, int objId, int setId, int sceneId);
+ void updateTogglesForDbgDrawListInCurrentSetAndScene();
};
} // End of namespace BladeRunner