This commit is contained in:
Charles 2001-06-04 19:01:17 +00:00
parent 85f401edf0
commit 773d29ea89
16 changed files with 129 additions and 11 deletions

View file

@ -26,7 +26,27 @@ void CFlameEmitterTrigger::setPositionAndSize(int _x,int _y,int _w,int _h)
{
CTrigger::setPositionAndSize( _x, _y, _w, _h );
m_effect = CFX::Create( CFX::FX_TYPE_FLAMES, Pos );
m_effect = CFX::Create( CFX::FX_TYPE_FLAMES, Pos );
CFXBaseAnim *m_animEffect = (CFXBaseAnim *) m_effect;
m_animEffect->SetScaleX( ( _w * ONE ) >> 5 );
m_animEffect->SetScaleY( ( _h * ONE ) >> 5 );
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CFlameEmitterTrigger::setHeading(int newHeading)
{
CFXBaseAnim *m_animEffect = (CFXBaseAnim *) m_effect;
m_animEffect->SetHeading( newHeading );
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CFlameEmitterTrigger::setSize( int _w, int _h )
{
CFXBaseAnim *m_animEffect = (CFXBaseAnim *) m_effect;
m_animEffect->SetScaleX( ( _w * ONE ) >> 5 );
m_animEffect->SetScaleY( ( _h * ONE ) >> 5 );
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View file

@ -27,6 +27,7 @@
#endif
#include "fx\fx.h"
#include "fx\fxbaseanim.h"
/* Std Lib
------- */
@ -43,6 +44,8 @@ class CFlameEmitterTrigger : public CTrigger
{
public:
virtual void setPositionAndSize(int _x,int _y,int _w,int _h);
void setHeading(int newHeading);
void setSize( int _w, int _h );
protected:
virtual void collidedWith(CThing *_thisThing);
CFX *m_effect;

View file

@ -2,7 +2,7 @@
tplatfrm.cpp
Author: PKG
Author: CRB
Created:
Project: Spongebob
Purpose:

View file

@ -67,6 +67,10 @@
#include "triggers\tgstop.h"
#endif
#ifndef __TRIGGERS_THAZARD_H__
#include "triggers\thazard.h"
#endif
#ifndef __GAME_GAME_H__
#include "game\game.h"
#endif
@ -135,6 +139,8 @@ CTrigger *trigger;
break;
case TRIGGER_INTERMITTENTFLAMEEMITTER:
case TRIGGER_INTERMITTENTLEFTFLAMEEMITTER:
case TRIGGER_INTERMITTENTDOWNFLAMEEMITTER:
trigger=(CIntermittentFlameEmitterTrigger*)new( "IntermittentFlameEmitterTrigger") CIntermittentFlameEmitterTrigger();
break;
@ -146,6 +152,11 @@ CTrigger *trigger;
case TRIGGER_PLATFORM:
trigger = (CPlatformTrigger*)new ("PlatformTrigger") CPlatformTrigger();
break;
case TRIGGER_HAZARD:
trigger = (CHazardTrigger*)new("HazardTrigger") CHazardTrigger();
break;
default:
trigger=NULL;
}
@ -161,9 +172,35 @@ CTrigger *trigger;
CTrigger *CTrigger::Create(sThingTrigger *ThisTrigger)
{
CTrigger *trigger=Create(ThisTrigger->Type);
trigger->setPositionAndSize(ThisTrigger->Pos.X<<4,ThisTrigger->Pos.Y<<4,ThisTrigger->Width<<4,ThisTrigger->Height<<4);
trigger->setTargetBox(ThisTrigger->TargetPos.X<<4,ThisTrigger->TargetPos.Y<<4,ThisTrigger->TargetSize.X<<4,ThisTrigger->TargetSize.Y<<4);
switch( ThisTrigger->Type )
{
case TRIGGER_INTERMITTENTLEFTFLAMEEMITTER:
{
CIntermittentFlameEmitterTrigger *m_flameEmitter = (CIntermittentFlameEmitterTrigger *) trigger;
m_flameEmitter->setHeading( 3072 );
m_flameEmitter->setSize( ThisTrigger->Height<<4, ThisTrigger->Width<<4 );
break;
}
case TRIGGER_INTERMITTENTDOWNFLAMEEMITTER:
{
CIntermittentFlameEmitterTrigger *m_flameEmitter = (CIntermittentFlameEmitterTrigger *) trigger;
m_flameEmitter->setHeading( 2048 );
break;
}
default:
break;
}
return( trigger);
}

View file

@ -36,9 +36,12 @@ enum TRIGGER_TYPE
TRIGGER_GARYGOLEFT,
TRIGGER_GARYGORIGHT,
TRIGGER_BUBBLEEMITTER,
TRIGGER_INTERMITTENTLEFTFLAMEEMITTER,
TRIGGER_INTERMITTENTDOWNFLAMEEMITTER,
// Code based triggers
TRIGGER_PLATFORM,
TRIGGER_HAZARD,
TRIGGER_MAX,
};