diff options
author | Thanasis Antoniou | 2019-05-21 22:13:45 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-05-21 22:13:45 +0300 |
commit | d4855a64b3bc9f9b2951486589ee8bff26ffabc2 (patch) | |
tree | 96574b1c391b705e80b49ac321b2636194c45afd /engines/bladerunner/debugger.h | |
parent | 203d82a1a0382684884da0d6c285444605153802 (diff) | |
download | scummvm-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.h | 61 |
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 |