2018-12-31 01:00:38 +00:00
|
|
|
/***
|
|
|
|
*
|
|
|
|
* Copyright (c) 2016-2019 Marco 'eukara' Hladik. All rights reserved.
|
|
|
|
*
|
|
|
|
* See the file LICENSE attached with the sources for usage details.
|
|
|
|
*
|
|
|
|
****/
|
|
|
|
|
|
|
|
// TODO: These are missing
|
|
|
|
enumflags
|
|
|
|
{
|
|
|
|
TO_MONSTERS,
|
|
|
|
TO_NOCLIENTS,
|
|
|
|
TO_PUSHABLES
|
|
|
|
};
|
|
|
|
|
2019-01-03 01:26:39 +00:00
|
|
|
class trigger_once:CBaseTrigger
|
2018-12-31 01:00:38 +00:00
|
|
|
{
|
|
|
|
float m_flDelay;
|
2019-01-03 01:26:39 +00:00
|
|
|
void() trigger_once;
|
2018-12-31 01:00:38 +00:00
|
|
|
virtual void() touch;
|
|
|
|
virtual void() Respawn;
|
|
|
|
};
|
|
|
|
|
2019-01-03 01:26:39 +00:00
|
|
|
void trigger_once::touch(void)
|
2018-12-31 01:00:38 +00:00
|
|
|
{
|
|
|
|
if ( m_flDelay > 0 ) {
|
2019-01-03 01:26:39 +00:00
|
|
|
CBaseTrigger::UseTargets_Delay(m_flDelay);
|
2018-12-31 01:00:38 +00:00
|
|
|
} else {
|
|
|
|
CBaseTrigger::UseTargets();
|
|
|
|
}
|
|
|
|
solid = SOLID_NOT;
|
|
|
|
#ifdef GS_DEVELOPER
|
|
|
|
alpha = 0.001f;
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
2019-01-03 01:26:39 +00:00
|
|
|
void trigger_once::Respawn(void)
|
2018-12-31 01:00:38 +00:00
|
|
|
{
|
|
|
|
solid = SOLID_TRIGGER;
|
|
|
|
#ifdef GS_DEVELOPER
|
|
|
|
alpha = 0.5f;
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
2019-01-03 01:26:39 +00:00
|
|
|
void trigger_once::trigger_once(void)
|
2018-12-31 01:00:38 +00:00
|
|
|
{
|
|
|
|
for ( int i = 1; i < ( tokenize( __fullspawndata ) - 1 ); i += 2 ) {
|
|
|
|
switch ( argv( i ) ) {
|
|
|
|
case "delay":
|
|
|
|
m_flDelay = stof( argv( i + 1 ) );
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2019-01-03 01:26:39 +00:00
|
|
|
trigger_once::Respawn();
|
2018-12-31 01:00:38 +00:00
|
|
|
CBaseEntity::CBaseEntity();
|
|
|
|
CBaseTrigger::InitBrushTrigger();
|
|
|
|
}
|