[Scummvm-git-logs] scummvm master -> 4e67a5ef82a9e711076dddfd28c6b24d5c4fe41d
OMGPizzaGuy
48367439+OMGPizzaGuy at users.noreply.github.com
Mon Jun 15 23:53:18 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
4e67a5ef82 ULTIMA8: Cleanup singletons to fix shutdown and implement return to launcher event
Commit: 4e67a5ef82a9e711076dddfd28c6b24d5c4fe41d
https://github.com/scummvm/scummvm/commit/4e67a5ef82a9e711076dddfd28c6b24d5c4fe41d
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2020-06-15T18:52:53-05:00
Commit Message:
ULTIMA8: Cleanup singletons to fix shutdown and implement return to launcher event
Changed paths:
engines/ultima/ultima8/audio/audio_mixer.cpp
engines/ultima/ultima8/audio/music_process.cpp
engines/ultima/ultima8/audio/music_process.h
engines/ultima/ultima8/games/remorse_game.h
engines/ultima/ultima8/kernel/mouse.cpp
engines/ultima/ultima8/kernel/mouse.h
engines/ultima/ultima8/ultima8.cpp
diff --git a/engines/ultima/ultima8/audio/audio_mixer.cpp b/engines/ultima/ultima8/audio/audio_mixer.cpp
index 1add430ecb..f660fb5874 100644
--- a/engines/ultima/ultima8/audio/audio_mixer.cpp
+++ b/engines/ultima/ultima8/audio/audio_mixer.cpp
@@ -61,6 +61,8 @@ void AudioMixer::createProcesses() {
}
AudioMixer::~AudioMixer(void) {
+ _audioMixer = nullptr;
+
debugN(MM_INFO, "Destroying AudioMixer...\n");
closeMidiOutput();
diff --git a/engines/ultima/ultima8/audio/music_process.cpp b/engines/ultima/ultima8/audio/music_process.cpp
index 07c04a096e..243fdfca58 100644
--- a/engines/ultima/ultima8/audio/music_process.cpp
+++ b/engines/ultima/ultima8/audio/music_process.cpp
@@ -41,6 +41,10 @@ MusicProcess::MusicProcess() {
setRunPaused();
}
+MusicProcess::~MusicProcess() {
+ _theMusicProcess = nullptr;
+}
+
uint32 MusicProcess::I_musicStop(const uint8 * /*args*/,
unsigned int /*argsize*/) {
if (_theMusicProcess) _theMusicProcess->playMusic_internal(0);
diff --git a/engines/ultima/ultima8/audio/music_process.h b/engines/ultima/ultima8/audio/music_process.h
index 51318d8ba1..9b2b4d503e 100644
--- a/engines/ultima/ultima8/audio/music_process.h
+++ b/engines/ultima/ultima8/audio/music_process.h
@@ -46,6 +46,7 @@ protected:
public:
MusicProcess();
+ ~MusicProcess() override;
// p_dynamic_cast stuff
ENABLE_RUNTIME_CLASSTYPE()
diff --git a/engines/ultima/ultima8/games/remorse_game.h b/engines/ultima/ultima8/games/remorse_game.h
index 30012acedc..478b4add6c 100644
--- a/engines/ultima/ultima8/games/remorse_game.h
+++ b/engines/ultima/ultima8/games/remorse_game.h
@@ -50,9 +50,6 @@ public:
ProcId playEndgameMovie(bool fade) override;
void playCredits() override;
void playQuotes() override { };
-
-protected:
- static Game *_game;
};
} // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/kernel/mouse.cpp b/engines/ultima/ultima8/kernel/mouse.cpp
index a281397304..d2a1933305 100644
--- a/engines/ultima/ultima8/kernel/mouse.cpp
+++ b/engines/ultima/ultima8/kernel/mouse.cpp
@@ -37,7 +37,7 @@
namespace Ultima {
namespace Ultima8 {
-Mouse *Mouse::_instance;
+Mouse *Mouse::_instance = nullptr;
Mouse::Mouse() : _flashingCursorTime(0), _mouseOverGump(0), _defaultMouse(nullptr),
_dragging(DRAG_NOT), _dragging_objId(0), _draggingItem_startGump(0),
@@ -45,6 +45,10 @@ Mouse::Mouse() : _flashingCursorTime(0), _mouseOverGump(0), _defaultMouse(nullpt
_instance = this;
}
+Mouse::~Mouse() {
+ _instance = nullptr;
+}
+
void Mouse::setup() {
FileSystem *filesys = FileSystem::get_instance();
Common::SeekableReadStream *dm = filesys->ReadFile("@data/mouse.tga");
diff --git a/engines/ultima/ultima8/kernel/mouse.h b/engines/ultima/ultima8/kernel/mouse.h
index 1e58c03645..c92fa158a8 100644
--- a/engines/ultima/ultima8/kernel/mouse.h
+++ b/engines/ultima/ultima8/kernel/mouse.h
@@ -129,6 +129,7 @@ public:
static Mouse *get_instance() { return _instance; }
public:
Mouse();
+ ~Mouse();
/**
* Setup the mouse cursors
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index b1ca9b3719..e397085083 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -378,6 +378,7 @@ void Ultima8Engine::shutdownGame(bool reloading) {
if (_audioMixer) {
_audioMixer->closeMidiOutput();
_audioMixer->reset();
+ FORGET_OBJECT(_audioMixer);
}
_desktopGump = nullptr;
@@ -730,6 +731,7 @@ void Ultima8Engine::handleEvent(const Common::Event &event) {
return;
case Common::EVENT_QUIT:
+ case Common::EVENT_RETURN_TO_LAUNCHER:
_isRunning = false;
break;
More information about the Scummvm-git-logs
mailing list