diff options
Diffstat (limited to 'engines/wintermute/debugger/debugger_controller.cpp')
-rw-r--r-- | engines/wintermute/debugger/debugger_controller.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/engines/wintermute/debugger/debugger_controller.cpp b/engines/wintermute/debugger/debugger_controller.cpp index a7f7c2ea4a..c7c88be034 100644 --- a/engines/wintermute/debugger/debugger_controller.cpp +++ b/engines/wintermute/debugger/debugger_controller.cpp @@ -33,17 +33,19 @@ #include "engines/wintermute/debugger/breakpoint.h" #include "engines/wintermute/debugger/debugger_controller.h" #include "engines/wintermute/debugger/listing_providers/blank_listing_provider.h" +#include "engines/wintermute/debugger/listing_providers/cached_source_listing_provider.h" +#include "engines/wintermute/debugger/listing_providers/source_listing.h" #define SCENGINE _engine->_game->_scEngine #define DEBUGGER _engine->_debugger namespace Wintermute { DebuggerController::~DebuggerController() { - delete _listingProvider; + delete _sourceListingProvider; } DebuggerController::DebuggerController(WintermuteEngine *vm) : _engine(vm) { - _listingProvider = new BlankListingProvider(); + _sourceListingProvider = new CachedSourceListingProvider(); clear(); } @@ -162,6 +164,15 @@ uint32 DebuggerController::getLastLine() const { return _lastLine; } +Common::String DebuggerController::getSourcePath() const { + return _sourceListingProvider->getPath(); +} + +Error DebuggerController::setSourcePath(const Common::String &sourcePath) { + ErrorCode err = _sourceListingProvider->setPath(sourcePath); + return Error((err == OK ? SUCCESS : ERROR), err); +} + Listing* DebuggerController::getListing(Error* &error) { delete (error); if (_lastScript == nullptr) { @@ -169,7 +180,7 @@ Listing* DebuggerController::getListing(Error* &error) { return nullptr; } ErrorCode err; - Listing* res = _listingProvider->getListing(SCENGINE->_currentScript->_filename, err); + Listing* res = _sourceListingProvider->getListing(SCENGINE->_currentScript->_filename, err); error = new Error(err == OK ? SUCCESS : ERROR, err); return res; } |