diff options
author | Simei Yin | 2018-05-28 21:04:05 +0200 |
---|---|---|
committer | Simei Yin | 2018-05-29 22:37:10 +0200 |
commit | 0548765479b69f2aaaf153e6370ed262a80c1d2d (patch) | |
tree | 784063c1d5876e26e1f40ecced22592fd47b3ad1 /engines/sludge/newfatal.cpp | |
parent | b6c2dc385a2eb186026266c6eb015920b443cf81 (diff) | |
download | scummvm-rg350-0548765479b69f2aaaf153e6370ed262a80c1d2d.tar.gz scummvm-rg350-0548765479b69f2aaaf153e6370ed262a80c1d2d.tar.bz2 scummvm-rg350-0548765479b69f2aaaf153e6370ed262a80c1d2d.zip |
SLUDGE: Objectify FatalMsgManager
Diffstat (limited to 'engines/sludge/newfatal.cpp')
-rw-r--r-- | engines/sludge/newfatal.cpp | 84 |
1 files changed, 49 insertions, 35 deletions
diff --git a/engines/sludge/newfatal.cpp b/engines/sludge/newfatal.cpp index edd4a88073..820b497e8e 100644 --- a/engines/sludge/newfatal.cpp +++ b/engines/sludge/newfatal.cpp @@ -24,74 +24,88 @@ #include "sludge/allfiles.h" #include "sludge/errors.h" +#include "sludge/newfatal.h" #include "sludge/sludge.h" #include "sludge/sound.h" #include "sludge/version.h" -namespace Sludge { +namespace Common { +DECLARE_SINGLETON(Sludge::FatalMsgManager); +} -const char emergencyMemoryMessage[] = "Out of memory displaying error message!"; +namespace Sludge { extern int numResourceNames /* = 0*/; extern Common::String *allResourceNames /*= ""*/; -int resourceForFatal = -1; +int inFatal(const Common::String &str) { + g_sludge->_soundMan->killSoundStuff(); + error("%s", str.c_str()); + return true; +} -const Common::String resourceNameFromNum(int i) { - if (i == -1) - return NULL; - if (numResourceNames == 0) - return "RESOURCE"; - if (i < numResourceNames) - return allResourceNames[i]; - return "Unknown resource"; +FatalMsgManager::FatalMsgManager() { + reset(); } -bool hasFatal() { - if (!g_sludge->fatalMessage.empty()) - return true; - return false; +FatalMsgManager::~FatalMsgManager() { } -int inFatal(const Common::String &str) { - g_sludge->_soundMan->killSoundStuff(); - error("%s", str.c_str()); - return true; +void FatalMsgManager::reset() { + _fatalMessage = ""; + _fatalInfo = "Initialisation error! Something went wrong before we even got started!"; + _resourceForFatal = -1; } -int checkNew(const void *mem) { - if (mem == NULL) { - inFatal(ERROR_OUT_OF_MEMORY); - return 0; - } - return 1; +bool FatalMsgManager::hasFatal() { + if (!_fatalMessage.empty()) + return true; + return false; } -void setFatalInfo(const Common::String &userFunc, const Common::String &BIF) { - g_sludge->fatalInfo = "Currently in this sub: " + userFunc + "\nCalling: " + BIF; - debugC(0, kSludgeDebugFatal, "%s", g_sludge->fatalInfo.c_str()); +void FatalMsgManager::setFatalInfo(const Common::String &userFunc, const Common::String &BIF) { + _fatalInfo = "Currently in this sub: " + userFunc + "\nCalling: " + BIF; + debugC(0, kSludgeDebugFatal, "%s", _fatalInfo.c_str()); } -void setResourceForFatal(int n) { - resourceForFatal = n; +void FatalMsgManager::setResourceForFatal(int n) { + _resourceForFatal = n; } -int fatal(const Common::String &str1) { - if (numResourceNames && resourceForFatal != -1) { - Common::String r = resourceNameFromNum(resourceForFatal); - Common::String newStr = g_sludge->fatalInfo + "\nResource: " + r + "\n\n" + str1; +int FatalMsgManager::fatal(const Common::String &str1) { + if (numResourceNames && _resourceForFatal != -1) { + Common::String r = resourceNameFromNum(_resourceForFatal); + Common::String newStr = _fatalInfo + "\nResource: " + r + "\n\n" + str1; inFatal(newStr); } else { - Common::String newStr = g_sludge->fatalInfo + "\n\n" + str1; + Common::String newStr = _fatalInfo + "\n\n" + str1; inFatal(newStr); } return 0; } +int checkNew(const void *mem) { + if (mem == NULL) { + inFatal(ERROR_OUT_OF_MEMORY); + return 0; + } + return 1; +} + int fatal(const Common::String &str1, const Common::String &str2) { Common::String newStr = str1 + " " + str2; fatal(newStr); return 0; } +const Common::String resourceNameFromNum(int i) { + if (i == -1) + return NULL; + if (numResourceNames == 0) + return "RESOURCE"; + if (i < numResourceNames) + return allResourceNames[i]; + return "Unknown resource"; +} + } // End of namespace Sludge |