mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-02-03 01:00:34 +03:00
65 lines
1.5 KiB
C++
65 lines
1.5 KiB
C++
|
//========= Mapbase - https://github.com/mapbase-source/source-sdk-2013 ============//
|
||
|
//
|
||
|
// Purpose: Mapbase-specific user messages.
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================//
|
||
|
|
||
|
#include "cbase.h"
|
||
|
|
||
|
#include "usermessages.h"
|
||
|
#ifdef CLIENT_DLL
|
||
|
#include "hud_macros.h"
|
||
|
#endif
|
||
|
|
||
|
// memdbgon must be the last include file in a .cpp file!!!
|
||
|
#include "tier0/memdbgon.h"
|
||
|
|
||
|
#ifdef CLIENT_DLL
|
||
|
void __MsgFunc_CallClientScriptFunction( bf_read &msg )
|
||
|
{
|
||
|
char szFunction[64];
|
||
|
if (!msg.ReadString( szFunction, sizeof( szFunction ) ))
|
||
|
{
|
||
|
CGMsg( 0, CON_GROUP_VSCRIPT, "Unable to read function string\n" );
|
||
|
}
|
||
|
|
||
|
int idx = msg.ReadByte();
|
||
|
C_BaseEntity *pEntity = CBaseEntity::Instance( idx );
|
||
|
|
||
|
if (pEntity)
|
||
|
{
|
||
|
if (pEntity->m_ScriptScope.IsInitialized())
|
||
|
{
|
||
|
//CGMsg( 0, CON_GROUP_VSCRIPT, "%s calling function \"%s\"\n", pEntity->GetDebugName(), szFunction );
|
||
|
pEntity->CallScriptFunction( szFunction, NULL );
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CGMsg( 0, CON_GROUP_VSCRIPT, "%s scope not initialized\n", pEntity->GetDebugName() );
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CGMsg( 0, CON_GROUP_VSCRIPT, "Clientside entity not found for script function (index %i)\n", idx );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void HookMapbaseUserMessages( void )
|
||
|
{
|
||
|
// VScript
|
||
|
HOOK_MESSAGE( CallClientScriptFunction );
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void RegisterMapbaseUserMessages( void )
|
||
|
{
|
||
|
// VScript
|
||
|
usermessages->Register( "CallClientScriptFunction", -1 );
|
||
|
|
||
|
#ifdef CLIENT_DLL
|
||
|
// TODO: Better placement?
|
||
|
HookMapbaseUserMessages();
|
||
|
#endif
|
||
|
}
|