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

@ -152,7 +152,8 @@ hazard_src := hazard \
hrwheel \
hpswitch \
hrckshrd \
hinert
hinert \
hcswitch
fx_src := fx \
fxbaseanim \
@ -303,7 +304,8 @@ triggers_src := trigger \
tifemit \
tggleft \
tggright \
tgstop
tgstop \
thazard
utils_src := utils \
sincos \

View File

@ -82,7 +82,7 @@ CFXBaseAnim::sFXAnim FXExplodeData=
CFXBaseAnim::sFXAnim FXFireData=
{
ONE << 1,
ONE,
FRM__FIRE01,FRM__FIRE06,
1,
127,127,127,

View File

@ -19,7 +19,8 @@ void CFXBaseAnim::init(DVECTOR const &_Pos)
{
CFX::init(_Pos);
CurrentFrame=0;
CurrentScale=DataPtr->Scale;
CurrentScaleX=CurrentScaleY=DataPtr->Scale;
CurrentHeading = 0;
MaxFrame=((DataPtr->EndFrame-DataPtr->StartFrame)<<DataPtr->FrameShift)-1;
if (DataPtr->Flags & FXANIM_FLAG_LOOP)
{ // Looping Anim, so let it live forever!
@ -100,7 +101,8 @@ DVECTOR RenderPos;
SpriteBank *SprBank=CGameScene::getSpriteBank();
POLY_FT4 *Ft4=SprBank->printFT4Scaled(renderFrame,RenderPos.vx,RenderPos.vy,0,0,OtPos*0,CurrentScale>>4);
//POLY_FT4 *Ft4=SprBank->printFT4Scaled(renderFrame,RenderPos.vx,RenderPos.vy,0,0,OtPos*0,CurrentScale>>4);
POLY_FT4 *Ft4=SprBank->printRotatedScaledSprite(renderFrame,RenderPos.vx,RenderPos.vy,CurrentScaleX,CurrentScaleY,CurrentHeading,OtPos*0);
Ft4->u1--; Ft4->u3--;
Ft4->v2--; Ft4->v3--;
setShadeTex(Ft4,0);

View File

@ -36,7 +36,10 @@ virtual void killFX();
void setData(void *Data) {DataPtr=(sFXAnim*)Data;}
virtual void SetScale(int S) {CurrentScale=S;}
virtual void SetScale(int S) {CurrentScaleX=CurrentScaleY=S;}
virtual void SetScaleX(int S) {CurrentScaleX=S;}
virtual void SetScaleY(int S) {CurrentScaleY=S;}
virtual void SetHeading(int H) {CurrentHeading=H;}
protected:
sFXAnim *DataPtr;
@ -44,7 +47,9 @@ protected:
s16 MaxFrame;
s16 CurrentFrame;
u16 renderFrame;
s16 CurrentScale;
s32 CurrentScaleX;
s32 CurrentScaleY;
s16 CurrentHeading;
};
#endif

View File

@ -21,7 +21,7 @@ void CFXBubble::init(DVECTOR const &_Pos)
CFXBaseAnim::init(_Pos);
Life=32+getRndRange(63);
VelY=-getRndRange(4)-1;
CurrentScale=getRndRange(DataPtr->Scale/2)+(DataPtr->Scale/2);
CurrentScaleX=CurrentScaleY=getRndRange(DataPtr->Scale/2)+(DataPtr->Scale/2);
Die=0;
XIdx=getRnd()&15;

View File

@ -115,6 +115,10 @@
#include "hazard\hinert.h"
#endif
#ifndef __HAZARD_HCSWITCH_H__
#include "hazard\hcswitch.h"
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -141,6 +145,7 @@ CNpcHazard::NPC_HAZARD_UNIT_TYPE CNpcHazard::mapEditConvertTable[NPC_HAZARD_TYPE
NPC_PRESSURE_SWITCH_HAZARD,
NPC_ROCKSHARD_HAZARD,
NPC_INERT_HAZARD,
NPC_CONVEYOR_SWITCH_HAZARD,
};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -279,6 +284,12 @@ CNpcHazard *hazard;
break;
}
case NPC_CONVEYOR_SWITCH_HAZARD:
{
hazard = new ("conveyor switch hazard") CNpcConveyorSwitchHazard;
break;
}
default:
{
hazard = NULL;

View File

@ -60,6 +60,7 @@ public:
NPC_PRESSURE_SWITCH_HAZARD,
NPC_ROCKSHARD_HAZARD,
NPC_INERT_HAZARD,
NPC_CONVEYOR_SWITCH_HAZARD,
NPC_HAZARD_TYPE_MAX,
};
@ -77,6 +78,7 @@ public:
void setWaypointPtr( u16 *newPtr ) {m_npcPath.setWaypointPtr( newPtr );}
void setWaypointCount( u8 newCount ) {m_npcPath.setWaypointCount( newCount );}
virtual void setRespawnRate( s16 newRespawnRate ) {m_respawnRate=newRespawnRate;}
virtual void trigger() {}
static NPC_HAZARD_UNIT_TYPE getTypeFromMapEdit( u16 newType );
static CNpcHazard *Create(int Type);

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,
};

View File

@ -138,6 +138,8 @@ GaryStop=9
GaryGoLeft=10
GaryGoRight=11
BubbleEmitter=12
IntermittentLeftFlameEmitter=13
IntermittentDownFlameEmitter=14
################################################
# FX
@ -172,4 +174,5 @@ RisingWeightWheel=17
PressureSwitch=18
SingleSpike=19
CheckPoint=20
WaterBucket=20
WaterBucket=20
ConveyorSwitch=21

View File

@ -259,3 +259,13 @@ Collision=0
Health=0
AttackStrength=0
Respawn=1
[ConveyorSwitch]
Gfx=..\..\graphics\hazards\water_bucket\water_bucket.gin
WayPoints=0
Speed=0
TurnRate=0
Collision=0
Health=0
AttackStrength=0
Respawn=1

View File

@ -25,6 +25,10 @@ HasBox=1
[IntermittentFlameEmitter]
[IntermittentLeftFlameEmitter]
[IntermittentDownFlameEmitter]
[BubbleEmitter]
[GaryStop]

View File

@ -857,6 +857,14 @@ SOURCE=..\..\..\source\hazard\hcsaw.h
# End Source File
# Begin Source File
SOURCE=..\..\..\source\hazard\hcswitch.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\source\hazard\hcswitch.h
# End Source File
# Begin Source File
SOURCE=..\..\..\source\hazard\hdbarrel.cpp
# End Source File
# Begin Source File
@ -1965,6 +1973,14 @@ SOURCE=..\..\..\source\triggers\tgstop.h
# End Source File
# Begin Source File
SOURCE=..\..\..\source\triggers\thazard.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\source\triggers\thazard.h
# End Source File
# Begin Source File
SOURCE=..\..\..\source\triggers\tifemit.cpp
# End Source File
# Begin Source File