From 6deb46042f6b3cda7dd69b5fc805d6b9d0817018 Mon Sep 17 00:00:00 2001 From: Charles Date: Fri, 1 Jun 2001 22:03:24 +0000 Subject: [PATCH] --- makefile.gaz | 7 +- source/hazard/hazard.cpp | 11 --- source/hazard/hazard.h | 1 - source/triggers/tfemit.cpp | 53 +++++++++++++ source/triggers/tfemit.h | 64 +++++++++++++++ source/triggers/tifemit.cpp | 79 +++++++++++++++++++ source/triggers/tifemit.h | 66 ++++++++++++++++ source/triggers/trigger.cpp | 17 ++++ source/triggers/trigger.h | 2 + tools/Data/bin/MkLevel.ini | 5 +- tools/MapEdit/Hazard.ini | 10 --- tools/MapEdit/trigger.ini | 6 +- .../spongebob project/spongebob project.dsp | 24 ++++-- 13 files changed, 309 insertions(+), 36 deletions(-) create mode 100644 source/triggers/tfemit.cpp create mode 100644 source/triggers/tfemit.h create mode 100644 source/triggers/tifemit.cpp create mode 100644 source/triggers/tifemit.h diff --git a/makefile.gaz b/makefile.gaz index 63a83a857..8339c7bb2 100644 --- a/makefile.gaz +++ b/makefile.gaz @@ -152,8 +152,7 @@ hazard_src := hazard \ hrwheel \ hpswitch \ hrckshrd \ - hinert \ - hfemit + hinert fx_src := fx \ fxbaseanim \ @@ -296,7 +295,9 @@ triggers_src := trigger \ tteleprt \ twater \ tplatfrm \ - tgarygo + tgarygo \ + tfemit \ + tifemit utils_src := utils \ sincos \ diff --git a/source/hazard/hazard.cpp b/source/hazard/hazard.cpp index 5601ab119..5ba327e1c 100644 --- a/source/hazard/hazard.cpp +++ b/source/hazard/hazard.cpp @@ -115,10 +115,6 @@ #include "hazard\hinert.h" #endif -#ifndef __HAZARD_HFEMIT_H__ -#include "hazard\hfemit.h" -#endif - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -145,7 +141,6 @@ CNpcHazard::NPC_HAZARD_UNIT_TYPE CNpcHazard::mapEditConvertTable[NPC_HAZARD_TYPE NPC_PRESSURE_SWITCH_HAZARD, NPC_ROCKSHARD_HAZARD, NPC_INERT_HAZARD, - NPC_FLAME_EMITTER_HAZARD, }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -284,12 +279,6 @@ CNpcHazard *hazard; break; } - case NPC_FLAME_EMITTER_HAZARD: - { - hazard = new ("flame emitter hazard") CNpcFlameEmitterHazard; - break; - } - default: { hazard = NULL; diff --git a/source/hazard/hazard.h b/source/hazard/hazard.h index b0adb7329..313ebe6cb 100644 --- a/source/hazard/hazard.h +++ b/source/hazard/hazard.h @@ -60,7 +60,6 @@ public: NPC_PRESSURE_SWITCH_HAZARD, NPC_ROCKSHARD_HAZARD, NPC_INERT_HAZARD, - NPC_FLAME_EMITTER_HAZARD, NPC_HAZARD_TYPE_MAX, }; diff --git a/source/triggers/tfemit.cpp b/source/triggers/tfemit.cpp new file mode 100644 index 000000000..1f0727908 --- /dev/null +++ b/source/triggers/tfemit.cpp @@ -0,0 +1,53 @@ +/*========================================================================= + + tfemit.h + + Author: PKG + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +#ifndef __TRIGGERS_TFEMIT_H__ +#include "triggers\tfemit.h" +#endif + +#ifndef __PLAYER_PLAYER_H__ +#include "player\player.h" +#endif + + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 ); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void CFlameEmitterTrigger::collidedWith(CThing *_thisThing) +{ + switch(_thisThing->getThingType()) + { + case TYPE_PLAYER: + { + CPlayer *player = (CPlayer *) _thisThing; + + if ( !player->isRecoveringFromHit() ) + { + player->takeDamage( DAMAGE__BURN_ENEMY ); + } + + break; + } + + default: + break; + } +} diff --git a/source/triggers/tfemit.h b/source/triggers/tfemit.h new file mode 100644 index 000000000..6e26b45c4 --- /dev/null +++ b/source/triggers/tfemit.h @@ -0,0 +1,64 @@ +/*========================================================================= + + tfemit.h + + Author: PKG + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +#ifndef __TRIGGERS_TFEMIT_H__ +#define __TRIGGERS_TFEMIT_H__ + +/*---------------------------------------------------------------------- + Includes + -------- */ + +#ifndef __THING_THING_H__ +#include "thing/thing.h" +#endif + +#ifndef __TRIGGER_TRIGGER_HEADER__ +#include "triggers\trigger.h" +#endif + +#include "fx\fx.h" + +/* Std Lib + ------- */ + +/*---------------------------------------------------------------------- + Tyepdefs && Defines + ------------------- */ + +/*---------------------------------------------------------------------- + Structure defintions + -------------------- */ + +class CFlameEmitterTrigger : public CTrigger +{ +public: + virtual void setPositionAndSize(int _x,int _y,int _w,int _h); +protected: + virtual void collidedWith(CThing *_thisThing); + CFX *m_effect; +}; + +/*---------------------------------------------------------------------- + Globals + ------- */ + +/*---------------------------------------------------------------------- + Functions + --------- */ + +/*---------------------------------------------------------------------- */ + +#endif /* __TRIGGERS_TLEVEXIT_H__ */ + +/*=========================================================================== + end */ diff --git a/source/triggers/tifemit.cpp b/source/triggers/tifemit.cpp new file mode 100644 index 000000000..415343b1d --- /dev/null +++ b/source/triggers/tifemit.cpp @@ -0,0 +1,79 @@ +/*========================================================================= + + tifemit.h + + Author: PKG + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +#ifndef __TRIGGERS_TIFEMIT_H__ +#include "triggers\tifemit.h" +#endif + +#ifndef __PLAYER_PLAYER_H__ +#include "player\player.h" +#endif + +#ifndef __GAME_GAME_H__ +#include "game\game.h" +#endif + + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void CIntermittentFlameEmitterTrigger::init() +{ + CFlameEmitterTrigger::init(); + + m_timer = 0; + m_isActive = true; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void CIntermittentFlameEmitterTrigger::think(int _frames) +{ + CTrigger::think(_frames); + + if ( m_timer <= 0 ) + { + m_timer = GameState::getOneSecondInFrames() * 2; + m_effect->toggleVisible(); + m_isActive = !m_isActive; + } + else + { + m_timer -= _frames; + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void CIntermittentFlameEmitterTrigger::collidedWith(CThing *_thisThing) +{ + if ( m_isActive ) + { + switch(_thisThing->getThingType()) + { + case TYPE_PLAYER: + { + CPlayer *player = (CPlayer *) _thisThing; + + if ( !player->isRecoveringFromHit() ) + { + player->takeDamage( DAMAGE__BURN_ENEMY ); + } + + break; + } + + default: + break; + } + } +} diff --git a/source/triggers/tifemit.h b/source/triggers/tifemit.h new file mode 100644 index 000000000..a200a9903 --- /dev/null +++ b/source/triggers/tifemit.h @@ -0,0 +1,66 @@ +/*========================================================================= + + tfemit.h + + Author: PKG + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +#ifndef __TRIGGERS_TIFEMIT_H__ +#define __TRIGGERS_TIFEMIT_H__ + +/*---------------------------------------------------------------------- + Includes + -------- */ + +#ifndef __THING_THING_H__ +#include "thing/thing.h" +#endif + +#ifndef __TRIGGER_TFEMIT__ +#include "triggers\tfemit.h" +#endif + +#include "fx\fx.h" + +/* Std Lib + ------- */ + +/*---------------------------------------------------------------------- + Tyepdefs && Defines + ------------------- */ + +/*---------------------------------------------------------------------- + Structure defintions + -------------------- */ + +class CIntermittentFlameEmitterTrigger : public CFlameEmitterTrigger +{ +public: + virtual void init(); + virtual void think(int _frames); +protected: + virtual void collidedWith(CThing *_thisThing); + s32 m_timer; + u8 m_isActive; +}; + +/*---------------------------------------------------------------------- + Globals + ------- */ + +/*---------------------------------------------------------------------- + Functions + --------- */ + +/*---------------------------------------------------------------------- */ + +#endif /* __TRIGGERS_TLEVEXIT_H__ */ + +/*=========================================================================== + end */ diff --git a/source/triggers/trigger.cpp b/source/triggers/trigger.cpp index 604bec18c..6372ef3b0 100644 --- a/source/triggers/trigger.cpp +++ b/source/triggers/trigger.cpp @@ -43,6 +43,14 @@ #include "triggers\tgarygo.h" #endif +#ifndef __TRIGGERS_TFEMIT_H__ +#include "triggers\tfemit.h" +#endif + +#ifndef __TRIGGERS_TIFEMIT_H__ +#include "triggers\tifemit.h" +#endif + #ifndef __GAME_GAME_H__ #include "game\game.h" #endif @@ -90,6 +98,15 @@ CTrigger *trigger; trigger=(CGaryStartTrigger*)new( "GaryStartTrigger") CGaryStartTrigger(); break; + // Flame emitter + case TRIGGER_FLAMEEMITTER: + trigger=(CFlameEmitterTrigger*)new( "FlameEmitterTrigger") CFlameEmitterTrigger(); + break; + + case TRIGGER_INTERMITTENTFLAMEEMITTER: + trigger=(CIntermittentFlameEmitterTrigger*)new( "IntermittentFlameEmitterTrigger") CIntermittentFlameEmitterTrigger(); + break; + case TRIGGER_PLATFORM: trigger = (CPlatformTrigger*)new ("PlatformTrigger") CPlatformTrigger(); break; diff --git a/source/triggers/trigger.h b/source/triggers/trigger.h index 31df2792d..771d932cb 100644 --- a/source/triggers/trigger.h +++ b/source/triggers/trigger.h @@ -30,6 +30,8 @@ enum TRIGGER_TYPE TRIGGER_INWATER, TRIGGER_OUTWATER, TRIGGER_GARYSTART, + TRIGGER_FLAMEEMITTER, + TRIGGER_INTERMITTENTFLAMEEMITTER, // Code based triggers TRIGGER_PLATFORM, diff --git a/tools/Data/bin/MkLevel.ini b/tools/Data/bin/MkLevel.ini index 269fbe3d5..ed14a6375 100644 --- a/tools/Data/bin/MkLevel.ini +++ b/tools/Data/bin/MkLevel.ini @@ -132,6 +132,8 @@ CameraLock=3 InWater=4 OutOfWater=5 GaryStart=6 +FlameEmitter=7 +IntermittentFlameEmitter=8 ################################################ # FX @@ -166,5 +168,4 @@ RisingWeightWheel=17 PressureSwitch=18 SingleSpike=19 CheckPoint=20 -WaterBucket=20 -FlameEmitter=21 \ No newline at end of file +WaterBucket=20 \ No newline at end of file diff --git a/tools/MapEdit/Hazard.ini b/tools/MapEdit/Hazard.ini index f6ff91aa2..0a8cece81 100644 --- a/tools/MapEdit/Hazard.ini +++ b/tools/MapEdit/Hazard.ini @@ -259,13 +259,3 @@ Collision=0 Health=0 AttackStrength=0 Respawn=1 - -[FlameEmitter] -Gfx=..\..\graphics\hazards\fireball\fireball.gin -WayPoints=0 -Speed=0 -TurnRate=0 -Collision=0 -Health=0 -AttackStrength=0 -Respawn=0 diff --git a/tools/MapEdit/trigger.ini b/tools/MapEdit/trigger.ini index 08cfdb3cb..5750813ce 100644 --- a/tools/MapEdit/trigger.ini +++ b/tools/MapEdit/trigger.ini @@ -19,4 +19,8 @@ HasBox=1 [OutOfWater] -[GaryStart] \ No newline at end of file +[GaryStart] + +[FlameEmitter] + +[IntermittentFlameEmitter] \ No newline at end of file diff --git a/users/paul/spongebob project/spongebob project.dsp b/users/paul/spongebob project/spongebob project.dsp index e1228d7a8..a62f91b5f 100644 --- a/users/paul/spongebob project/spongebob project.dsp +++ b/users/paul/spongebob project/spongebob project.dsp @@ -881,14 +881,6 @@ SOURCE=..\..\..\source\hazard\hfan.h # End Source File # Begin Source File -SOURCE=..\..\..\source\hazard\hfemit.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\hazard\hfemit.h -# End Source File -# Begin Source File - SOURCE=..\..\..\source\hazard\hfirebal.cpp # End Source File # Begin Source File @@ -1925,6 +1917,14 @@ SOURCE=..\..\..\source\triggers\tcamlock.h # End Source File # Begin Source File +SOURCE=..\..\..\source\triggers\tfemit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\triggers\tfemit.h +# End Source File +# Begin Source File + SOURCE=..\..\..\source\triggers\tgarygo.cpp # End Source File # Begin Source File @@ -1933,6 +1933,14 @@ SOURCE=..\..\..\source\triggers\tgarygo.h # End Source File # Begin Source File +SOURCE=..\..\..\source\triggers\tifemit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\triggers\tifemit.h +# End Source File +# Begin Source File + SOURCE=..\..\..\source\triggers\tlevexit.cpp # End Source File # Begin Source File