aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/debugger/debugger_controller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/wintermute/debugger/debugger_controller.cpp')
-rw-r--r--engines/wintermute/debugger/debugger_controller.cpp17
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;
}