aboutsummaryrefslogtreecommitdiff
path: root/engines/sword25/kernel/callbackregistry.h
diff options
context:
space:
mode:
authorPaul Gilbert2010-08-05 10:16:21 +0000
committerEugene Sandulenko2010-10-12 22:23:24 +0000
commit49ea23c532cb0d8ab6e27d290484a1e2daadb347 (patch)
tree97dff77ee4deeb81f600288d30abb3413300180f /engines/sword25/kernel/callbackregistry.h
parent1e3b3af5c09ef5b9168436b2276bce612f74c0d2 (diff)
downloadscummvm-rg350-49ea23c532cb0d8ab6e27d290484a1e2daadb347.tar.gz
scummvm-rg350-49ea23c532cb0d8ab6e27d290484a1e2daadb347.tar.bz2
scummvm-rg350-49ea23c532cb0d8ab6e27d290484a1e2daadb347.zip
SWORD25: Fix for void * conversion errors
It turns out that strict C++ doesn't allow function pointers to be converted to void pointers and vice versa. Since there are two callback function pointer types - one with a KEY_COMMANDS enum parameter, and the other with an unsigned char type, I changed all void * occurances to a function pointer type with an 'int' parameter, and changed all implementation methods to take in an int parameter. svn-id: r53208
Diffstat (limited to 'engines/sword25/kernel/callbackregistry.h')
-rw-r--r--engines/sword25/kernel/callbackregistry.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/engines/sword25/kernel/callbackregistry.h b/engines/sword25/kernel/callbackregistry.h
index 4197930ae0..38e917cf15 100644
--- a/engines/sword25/kernel/callbackregistry.h
+++ b/engines/sword25/kernel/callbackregistry.h
@@ -51,6 +51,8 @@ namespace Sword25 {
// Klassendeklaration
// -----------------------------------------------------------------------------
+typedef void (*CallbackPtr)(int Command);
+
class BS_CallbackRegistry {
public:
static BS_CallbackRegistry & GetInstance() {
@@ -58,19 +60,19 @@ public:
return Instance;
}
- bool RegisterCallbackFunction(const Common::String &Name, void * Ptr);
- void * ResolveCallbackFunction(const Common::String &Name) const;
- Common::String ResolveCallbackPointer(void *Ptr) const;
+ bool RegisterCallbackFunction(const Common::String &Name, CallbackPtr Ptr);
+ CallbackPtr ResolveCallbackFunction(const Common::String &Name) const;
+ Common::String ResolveCallbackPointer(CallbackPtr Ptr) const;
private:
- typedef Common::HashMap<Common::String, void *, Common::CaseSensitiveString_Hash, Common::CaseSensitiveString_EqualTo> NameToPtrMap;
+ typedef Common::HashMap<Common::String, CallbackPtr, Common::CaseSensitiveString_Hash, Common::CaseSensitiveString_EqualTo> NameToPtrMap;
NameToPtrMap m_NameToPtrMap;
- typedef Common::HashMap<void *, Common::String, Common::CaseSensitiveString_Hash, Common::CaseSensitiveString_EqualTo> PtrToNameMap;
+ typedef Common::HashMap<CallbackPtr, Common::String, Common::CaseSensitiveString_Hash, Common::CaseSensitiveString_EqualTo> PtrToNameMap;
PtrToNameMap m_PtrToNameMap;
- void * FindPtrByName(const Common::String &Name) const;
- Common::String FindNameByPtr(void * Ptr) const;
- void StoreCallbackFunction(const Common::String & Name, void * Ptr);
+ CallbackPtr FindPtrByName(const Common::String &Name) const;
+ Common::String FindNameByPtr(CallbackPtr Ptr) const;
+ void StoreCallbackFunction(const Common::String &Name, CallbackPtr Ptr);
};
} // End of namespace Sword25