aboutsummaryrefslogtreecommitdiff
path: root/engines/sludge/newfatal.cpp
diff options
context:
space:
mode:
authorSimei Yin2018-05-28 21:04:05 +0200
committerSimei Yin2018-05-29 22:37:10 +0200
commit0548765479b69f2aaaf153e6370ed262a80c1d2d (patch)
tree784063c1d5876e26e1f40ecced22592fd47b3ad1 /engines/sludge/newfatal.cpp
parentb6c2dc385a2eb186026266c6eb015920b443cf81 (diff)
downloadscummvm-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.cpp84
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