Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

51 lines
1.2 KiB

//=========== (C) Copyright Valve, L.L.C. All rights reserved. ===========
#include "cbase.h"
#include "ui_nugget.h"
class CUiNuggetSemaphore : public CUiNuggetBase
{
DECLARE_NUGGET_FN_MAP( CUiNuggetSemaphore, CUiNuggetBase );
NUGGET_FN( Configure )
{
m_pUiNuggetData->MergeFrom( args, KeyValues::MERGE_KV_UPDATE );
return NULL;
}
NUGGET_FN( Signal )
{
char const *szSemaphoreSignal = m_pUiNuggetData->GetString( "signal" );
if ( !*szSemaphoreSignal )
return NULL;
KeyValues *pEvent = m_pUiNuggetData->MakeCopy();
pEvent->SetName( szSemaphoreSignal );
KeyValues::AutoDelete autodelete_pEvent( pEvent );
char const *szEventData = m_pUiNuggetData->GetString( "eventdata" );
if ( *szEventData )
{
if ( KeyValues *pSub = pEvent->FindKey( szEventData ) )
{
pEvent->RemoveSubKey( pSub );
pSub->deleteThis();
}
KeyValues *pParams = args->MakeCopy();
pParams->SetName( szEventData );
pEvent->AddSubKey( pParams );
}
BroadcastEventToScreens( pEvent );
return NULL;
}
public:
CUiNuggetSemaphore()
{
m_pUiNuggetData->SetString( "signal", "OnSemaphore" );
m_pUiNuggetData->SetString( "eventdata", "eventdata" );
}
};
UI_NUGGET_FACTORY_INSTANCES( CUiNuggetSemaphore, "semaphore" );