mirror of
https://github.com/celisej567/source-sdk-2013.git
synced 2026-09-23 20:09:45 +03:00
Added hook for CBaseAnimating::HandleAnimEvent()
This commit is contained in:
@@ -284,6 +284,7 @@ END_SEND_TABLE()
|
||||
|
||||
#ifdef MAPBASE_VSCRIPT
|
||||
ScriptHook_t CBaseAnimating::g_Hook_OnServerRagdoll;
|
||||
ScriptHook_t CBaseAnimating::g_Hook_HandleAnimEvent;
|
||||
#endif
|
||||
|
||||
BEGIN_ENT_SCRIPTDESC( CBaseAnimating, CBaseEntity, "Animating models" )
|
||||
@@ -342,6 +343,10 @@ BEGIN_ENT_SCRIPTDESC( CBaseAnimating, CBaseEntity, "Animating models" )
|
||||
DEFINE_SCRIPTHOOK_PARAM( "ragdoll", FIELD_HSCRIPT )
|
||||
DEFINE_SCRIPTHOOK_PARAM( "submodel", FIELD_BOOLEAN )
|
||||
END_SCRIPTHOOK()
|
||||
|
||||
BEGIN_SCRIPTHOOK( CBaseAnimating::g_Hook_HandleAnimEvent, "HandleAnimEvent", FIELD_BOOLEAN, "Called when handling animation events. Return false to cancel base handling." )
|
||||
DEFINE_SCRIPTHOOK_PARAM( "event", FIELD_HSCRIPT )
|
||||
END_SCRIPTHOOK()
|
||||
#endif
|
||||
END_SCRIPTDESC();
|
||||
|
||||
@@ -1243,6 +1248,11 @@ void CBaseAnimating::DispatchAnimEvents ( CBaseAnimating *eventHandler )
|
||||
event.eventtime = m_flAnimTime + (flCycle - GetCycle()) / flCycleRate + GetAnimTimeInterval();
|
||||
}
|
||||
|
||||
#ifdef MAPBASE_VSCRIPT
|
||||
if (eventHandler->ScriptHookHandleAnimEvent( &event ) == false)
|
||||
continue;
|
||||
#endif
|
||||
|
||||
/*
|
||||
if (m_debugOverlays & OVERLAY_NPC_SELECTED_BIT)
|
||||
{
|
||||
@@ -1273,6 +1283,29 @@ void CBaseAnimating::DispatchAnimEvents ( CBaseAnimating *eventHandler )
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef MAPBASE_VSCRIPT
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
bool CBaseAnimating::ScriptHookHandleAnimEvent( animevent_t *pEvent )
|
||||
{
|
||||
if (m_ScriptScope.IsInitialized() && g_Hook_HandleAnimEvent.CanRunInScope(m_ScriptScope))
|
||||
{
|
||||
HSCRIPT hEvent = g_pScriptVM->RegisterInstance( pEvent );
|
||||
|
||||
// event
|
||||
ScriptVariant_t args[] = { hEvent };
|
||||
ScriptVariant_t returnValue = true;
|
||||
g_Hook_HandleAnimEvent.Call( m_ScriptScope, &returnValue, args );
|
||||
|
||||
g_pScriptVM->RemoveInstance( hEvent );
|
||||
return returnValue.m_bool;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user