I have a problem with this method:
void CASGame::ClientPrintAll( int iMsgDest, const CASString& szMsgName,
const CASString& szParam1, const CASString& szParam2, const CASString& szParam3, const CASString& szParam4 )
CASString is a string class, which only stores a pointer to a char*.
This function is exposed as:
"void ClientPrintAll(HUD iMsgDest, const string& in szMessage, const string& in szLine2 = \"\", "
"const string& in szLine3 = \"\", const string& in szLine4 = \"\", const string& in szLine5 = \"\")"
Where HUD is an enum.
The function is called like this:
g_Game.ClientPrintAll( HUD_PRINTNOTIFY, "Changing map" );
Where g_Game is an instance of CGame, and HUD_PRINTNOTIFY is one of the HUD values.
For some reason, the last 2 strings are empty. Not empty as in pointing to a string ""; the pointer itself is NULL. The string class is written in such a way that this can never happen, which means that something else must be wrong.
The calling convention is correct, and i can't see what else could possibly be wrong.