Your compiler is rightfully complaining that your function pointer isn't of the correct type ie "void *".
The error lies within the declaration of System::AddHook() which has "void *" as the second parameter. AddHook should expect a function pointer of type void NOT a void pointer as they are in fact two completely different things and this should be classified as a typo bug.
The correct declaration for System::AddHook() should have been this....
typdef void (*vFunc)(Leadwerks::Entity *);
AddHook(int hookid, vFunc hook) {
...
}
As a temporary measure you call cast all your function pointers to void pointers but generally speaking this is considered dangerous in the C++ world and some compilers may not allow you even to do that. In a case were compilation has been successful you will often run into instability issues, memory address violations or other runtime errors... Avoid!
See this discussion on the subject...
http://stackoverflow...er-as-parameter