47 lines
902 B
C++
47 lines
902 B
C++
|
/***
|
||
|
*
|
||
|
* Copyright (c) 2016-2019 Marco 'eukara' Hladik. All rights reserved.
|
||
|
*
|
||
|
* See the file LICENSE attached with the sources for usage details.
|
||
|
*
|
||
|
****/
|
||
|
|
||
|
class CMultiSource : CBaseTrigger
|
||
|
{
|
||
|
void() CMultiSource;
|
||
|
virtual int() GetValue;
|
||
|
virtual void() Trigger;
|
||
|
};
|
||
|
|
||
|
int CMultiSource :: GetValue ( void )
|
||
|
{
|
||
|
int iWillTrigger = TRUE;
|
||
|
|
||
|
for ( entity eTemp = world; ( eTemp = find( eTemp, CBaseTrigger::m_strTarget, m_strTargetName ) ); ) {
|
||
|
CBaseTrigger tTemp = (CBaseTrigger) eTemp;
|
||
|
if ( tTemp.GetValue() == FALSE ) {
|
||
|
iWillTrigger = FALSE;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return iWillTrigger;
|
||
|
}
|
||
|
|
||
|
void CMultiSource :: Trigger ( void )
|
||
|
{
|
||
|
if ( GetValue() == FALSE ) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
//dprint( sprintf( "CMultiSource: Trigger of %s\n", m_strTarget ) );
|
||
|
CBaseTrigger::UseTargets();
|
||
|
}
|
||
|
|
||
|
void CMultiSource :: CMultiSource ( void )
|
||
|
{
|
||
|
CBaseTrigger::CBaseTrigger();
|
||
|
}
|
||
|
|
||
|
CLASSEXPORT( multisource, CMultiSource )
|