aboutsummaryrefslogtreecommitdiff
path: root/engines/sword25/input/inputengine_script.cpp
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/input/inputengine_script.cpp
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/input/inputengine_script.cpp')
-rw-r--r--engines/sword25/input/inputengine_script.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/engines/sword25/input/inputengine_script.cpp b/engines/sword25/input/inputengine_script.cpp
index 0580caa983..a7bd39481b 100644
--- a/engines/sword25/input/inputengine_script.cpp
+++ b/engines/sword25/input/inputengine_script.cpp
@@ -57,8 +57,8 @@ using namespace Lua;
// Callback-Objekte
// -----------------------------------------------------------------------------
-static void TheCharacterCallback(unsigned char Character);
-static void TheCommandCallback(BS_InputEngine::KEY_COMMANDS Command);
+static void TheCharacterCallback(int Character);
+static void TheCommandCallback(int Command);
namespace {
class CharacterCallbackClass : public BS_LuaCallback {
@@ -68,8 +68,7 @@ namespace {
Common::String Character;
protected:
- int PreFunctionInvokation(lua_State *L)
- {
+ int PreFunctionInvokation(lua_State *L) {
lua_pushstring(L, Character.c_str());
return 1;
}
@@ -242,8 +241,8 @@ static int SetMouseY(lua_State *L) {
// -----------------------------------------------------------------------------
-static void TheCharacterCallback(unsigned char Character) {
- CharacterCallbackPtr->Character = Character;
+static void TheCharacterCallback(int Character) {
+ CharacterCallbackPtr->Character = static_cast<unsigned char>(Character);
lua_State *L = static_cast<lua_State *>(BS_Kernel::GetInstance()->GetScript()->GetScriptObject());
CharacterCallbackPtr->InvokeCallbackFunctions(L, 1);
}
@@ -268,8 +267,8 @@ static int UnregisterCharacterCallback(lua_State *L) {
// -----------------------------------------------------------------------------
-static void TheCommandCallback(BS_InputEngine::KEY_COMMANDS Command) {
- CommandCallbackPtr->Command = Command;
+static void TheCommandCallback(int Command) {
+ CommandCallbackPtr->Command = static_cast<BS_InputEngine::KEY_COMMANDS>(Command);
lua_State *L = static_cast<lua_State *>(BS_Kernel::GetInstance()->GetScript()->GetScriptObject());
CommandCallbackPtr->InvokeCallbackFunctions(L, 1);
}
@@ -345,10 +344,8 @@ bool BS_InputEngine::_RegisterScriptBindings() {
if (!BS_LuaBindhelper::AddFunctionsToLib(L, PACKAGE_LIBRARY_NAME, PACKAGE_FUNCTIONS)) return false;
if (!BS_LuaBindhelper::AddConstantsToLib(L, PACKAGE_LIBRARY_NAME, PACKAGE_CONSTANTS)) return false;
- Common::SharedPtr<CharacterCallbackClass> p1(new CharacterCallbackClass(L));
- CharacterCallbackPtr = p1;
- Common::SharedPtr<CharacterCallbackClass> p2(new CommandCallbackClass(L));
- CommandCallbackPtr = p2;
+ CharacterCallbackPtr = Common::SharedPtr<CharacterCallbackClass>(new CharacterCallbackClass(L));
+ CommandCallbackPtr = Common::SharedPtr<CommandCallbackClass>(new CommandCallbackClass(L));
return true;
}