This commit is contained in:
Charles 2001-06-06 13:27:46 +00:00
parent c3a34bf180
commit 4411c013b1
14 changed files with 209 additions and 32 deletions

View file

@ -83,6 +83,10 @@
#include "triggers\tsemit.h"
#endif
#ifndef __TRIGGERS_TSSWITCH_H__
#include "triggers\tsswitch.h"
#endif
#ifndef __GAME_GAME_H__
#include "game\game.h"
#endif
@ -183,6 +187,11 @@ CTrigger *trigger;
trigger = (CHazardWalkTrigger*)new("HazardWalkTrigger") CHazardWalkTrigger();
break;
// Steam switch emitter
case TRIGGER_STEAM_SWITCH_EMITTER:
trigger=(CSteamSwitchEmitterTrigger*)new("SteamSwitchEmitterTrigger") CSteamSwitchEmitterTrigger();
break;
default:
trigger=NULL;
}

View file

@ -45,6 +45,7 @@ enum TRIGGER_TYPE
TRIGGER_PLATFORM,
TRIGGER_HAZARD,
TRIGGER_HAZARD_WALK,
TRIGGER_STEAM_SWITCH_EMITTER,
TRIGGER_MAX,
};

View file

@ -19,6 +19,10 @@
#include "game\game.h"
#endif
#ifndef __ENEMY_NPC_H__
#include "enemy\npc.h"
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -27,6 +31,7 @@ void CSteamSwitchEmitterTrigger::setPositionAndSize(int _x,int _y,int _w,int _h)
CTrigger::setPositionAndSize( _x, _y, _w, _h );
m_effect = CFX::Create( CFX::FX_TYPE_STEAM, Pos );
m_active = true;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -34,4 +39,28 @@ void CSteamSwitchEmitterTrigger::setPositionAndSize(int _x,int _y,int _w,int _h)
void CSteamSwitchEmitterTrigger::toggleVisible()
{
m_effect->toggleVisible();
m_active = !m_active;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CSteamSwitchEmitterTrigger::collidedWith(CThing *_thisThing)
{
if ( m_active )
{
switch(_thisThing->getThingType())
{
case TYPE_ENEMY:
{
CNpcEnemy *enemy = (CNpcEnemy *) _thisThing;
enemy->hasBeenSteamed( Pos );
break;
}
default:
break;
}
}
}

View file

@ -46,7 +46,10 @@ public:
virtual void setPositionAndSize(int _x,int _y,int _w,int _h);
void toggleVisible();
protected:
virtual void collidedWith(CThing *_thisThing);
CFX *m_effect;
u8 m_active;
};
/*----------------------------------------------------------------------