mirror of
https://github.com/libretro/scummvm.git
synced 2025-04-01 06:14:07 +00:00
ULTIMA: Refactor to use Engine debugger
This commit is contained in:
parent
85b469ff5d
commit
c811d4c658
@ -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);
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -134,11 +134,6 @@ public:
|
||||
*/
|
||||
virtual bool autoSaveCheck(int lastSaveTime) = 0;
|
||||
|
||||
/**
|
||||
* Get the debugger
|
||||
*/
|
||||
virtual GUI::Debugger *getDebugger() = 0;
|
||||
|
||||
/**
|
||||
* Get the screen
|
||||
*/
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user