ULTIMA: Refactor to use Engine debugger

This commit is contained in:
Paul Gilbert 2020-02-09 09:02:15 -08:00 committed by Filippos Karapetis
parent 85b469ff5d
commit c811d4c658
10 changed files with 8 additions and 52 deletions

View File

@ -49,7 +49,7 @@ NuvieEngine *g_engine;
NuvieEngine::NuvieEngine(OSystem *syst, const Ultima::UltimaGameDescription *gameDesc) :
Ultima::Shared::UltimaEngine(syst, gameDesc), _config(nullptr), _savegame(nullptr),
_screen(nullptr), _script(nullptr), _game(nullptr), _debugger(nullptr) {
_screen(nullptr), _script(nullptr), _game(nullptr) {
g_engine = this;
}
@ -60,7 +60,6 @@ NuvieEngine::~NuvieEngine() {
delete _screen;
delete _script;
delete _game;
delete _debugger;
g_engine = nullptr;
}
@ -108,7 +107,7 @@ bool NuvieEngine::initialize() {
_savegame = new SaveGame(_config);
// Setup debugger
_debugger = new Debugger();
setDebugger(new Debugger());
// Setup screen
_screen = new Screen(_config);

View File

@ -46,7 +46,6 @@ private:
Script *_script;
Game *_game;
SaveGame *_savegame;
::GUI::Debugger *_debugger;
private:
void initConfig();
void assignGameConfigValues(uint8 game_type);
@ -100,10 +99,6 @@ public:
*/
Common::Error saveGameState(int slot, const Common::String &desc, bool isAutosave) override;
::GUI::Debugger *getDebugger() override {
return _debugger;
}
/**
* Either starts the most recently saved game, or falls back on starting a new game
*/

View File

@ -51,7 +51,6 @@ UltimaEarlyEngine::UltimaEarlyEngine(OSystem *syst, const UltimaGameDescription
}
UltimaEarlyEngine::~UltimaEarlyEngine() {
delete _debugger;
delete _events;
delete _game;
delete _mouseCursor;
@ -70,7 +69,7 @@ bool UltimaEarlyEngine::initialize() {
}
SearchMan.add("ultima", res);
_debugger = new Debugger();
setDebugger(new Debugger());
_events = new EventsManager(this);
_screen = new Gfx::Screen();

View File

@ -131,8 +131,6 @@ public:
* Creates a new hierarchy for the game, that contains all the logic for playing that particular game.
*/
Game *createGame() const;
GUI::Debugger *getDebugger() override { return nullptr; }
};
} // End of namespace Shared

View File

@ -78,16 +78,6 @@ bool EventsManager::pollEvent(Common::Event &event) {
switch (event.type) {
case Common::EVENT_KEYDOWN: {
handleKbdSpecial(event.kbd);
// Check for debugger
GUI::Debugger *debugger = _callback->getDebugger();
if (debugger != nullptr && event.kbd.keycode == Common::KEYCODE_d
&& (event.kbd.flags & Common::KBD_CTRL)) {
// Attach to the debugger
debugger->attach();
debugger->onFrame();
return false;
}
break;
}
case Common::EVENT_KEYUP:
@ -167,11 +157,6 @@ void EventsManager::nextFrame() {
if (!_eventTargets.empty())
eventTarget()->onIdle();
// Handle debugger updates
GUI::Debugger *debugger = _callback->getDebugger();
if (debugger)
debugger->onFrame();
// Render anything pending for the screen
Graphics::Screen *screen = _callback->getScreen();
if (screen)

View File

@ -134,11 +134,6 @@ public:
*/
virtual bool autoSaveCheck(int lastSaveTime) = 0;
/**
* Get the debugger
*/
virtual GUI::Debugger *getDebugger() = 0;
/**
* Get the screen
*/

View File

@ -36,7 +36,7 @@ UltimaEngine * g_ultima;
UltimaEngine::UltimaEngine(OSystem *syst, const Ultima::UltimaGameDescription *gameDesc) :
Engine(syst), _gameDescription(gameDesc), _randomSource("Ultima"),
_dataArchive(nullptr), _debugger(nullptr), _events(nullptr) {
_dataArchive(nullptr), _events(nullptr) {
g_ultima = this;
}

View File

@ -44,7 +44,6 @@ private:
protected:
const UltimaGameDescription *_gameDescription;
Common::Archive *_dataArchive;
Debugger *_debugger;
protected:
/**
* Initializes needed data for the engine
@ -137,13 +136,6 @@ public:
*/
bool autoSaveCheck(int lastSaveTime) override;
/**
* Return the debugger
*/
GUI::Debugger *getDebugger() override {
return _debugger;
}
/**
* Returns a file system node for the game directory
*/

View File

@ -127,9 +127,9 @@ DEFINE_RUNTIME_CLASSTYPE_CODE(Ultima8Engine, CoreApp)
Ultima8Engine::Ultima8Engine(OSystem *syst, const Ultima::UltimaGameDescription *gameDesc) :
Shared::UltimaEngine(syst, gameDesc), CoreApp(gameDesc), _saveCount(0), _game(0),
_kernel(0), _objectManager(0), _debugger(0), _hidManager(0), _mouse(0), _ucMachine(0),
_screen(0), _fontManager(0), _fullScreen(false), _paletteManager(0), _gameData(0),
_world(0), _desktopGump(0), _consoleGump(0), _gameMapGump(0), _avatarMoverProcess(0),
_kernel(0), _objectManager(0), _hidManager(0), _mouse(0), _ucMachine(0), _screen(0),
_fontManager(0), _fullScreen(false), _paletteManager(0), _gameData(0), _world(0),
_desktopGump(0), _consoleGump(0), _gameMapGump(0), _avatarMoverProcess(0),
_frameSkip(false), _frameLimit(true), _interpolate(true), _animationRate(100),
_avatarInStasis(false), _paintEditorItems(false), _inversion(0), _painting(false),
_showTouching(false), _timeOffset(0), _hasCheated(false), _cheatsEnabled(false),
@ -157,7 +157,6 @@ Ultima8Engine::~Ultima8Engine() {
FORGET_OBJECT(_fontManager);
FORGET_OBJECT(_screen);
FORGET_OBJECT(_memoryManager);
FORGET_OBJECT(_debugger);
}
Common::Error Ultima8Engine::run() {
@ -344,7 +343,7 @@ void Ultima8Engine::startup() {
_kernel = new Kernel();
_memoryManager = new MemoryManager();
_debugger = new Debugger();
setDebugger(new Debugger());
//!! move this elsewhere
_kernel->addProcessLoader("DelayProcess",
@ -2029,10 +2028,6 @@ bool Ultima8Engine::isDataRequired(Common::String &folder, int &majorVersion, in
return true;
}
GUI::Debugger *Ultima8Engine::getDebugger() {
return _debugger;
}
Graphics::Screen *Ultima8Engine::getScreen() const {
Graphics::Screen *scr = dynamic_cast<Graphics::Screen *>(_screen->getRawSurface());
assert(scr);

View File

@ -93,7 +93,6 @@ private:
Kernel *_kernel;
MemoryManager *_memoryManager;
ObjectManager *_objectManager;
GUI::Debugger *_debugger;
HIDManager *_hidManager;
UCMachine *_ucMachine;
RenderSurface *_screen;
@ -241,7 +240,6 @@ public:
return _screen;
}
GUI::Debugger *getDebugger() override;
Graphics::Screen *getScreen() const override;
void runGame() override;