diff --git a/makefile.gaz b/makefile.gaz index f7365dc56..37308624c 100644 --- a/makefile.gaz +++ b/makefile.gaz @@ -299,6 +299,7 @@ triggers_src := trigger \ tfemit \ tifemit \ tggleft \ + tggright \ tgstop utils_src := utils \ diff --git a/source/friend/fgary.cpp b/source/friend/fgary.cpp index 6057b7580..fc750aa55 100644 --- a/source/friend/fgary.cpp +++ b/source/friend/fgary.cpp @@ -179,3 +179,13 @@ void CNpcGaryFriend::startLeft() m_extension = EXTEND_LEFT; m_reversed = true; } + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void CNpcGaryFriend::startRight() +{ + start(); + + m_extension = EXTEND_RIGHT; + m_reversed = false; +} diff --git a/source/friend/fgary.h b/source/friend/fgary.h index b9c50ba8c..4fabe3b98 100644 --- a/source/friend/fgary.h +++ b/source/friend/fgary.h @@ -28,6 +28,7 @@ public: void start() {m_started = true;} void stop() {m_started = false;} void startLeft(); + void startRight(); virtual void render(); protected: diff --git a/source/triggers/tfemit.h b/source/triggers/tfemit.h index 6e26b45c4..4751c985c 100644 --- a/source/triggers/tfemit.h +++ b/source/triggers/tfemit.h @@ -58,7 +58,7 @@ protected: /*---------------------------------------------------------------------- */ -#endif /* __TRIGGERS_TLEVEXIT_H__ */ +#endif /*=========================================================================== end */ diff --git a/source/triggers/tgarygo.h b/source/triggers/tgarygo.h index 8fe8424d6..62ba1f8c6 100644 --- a/source/triggers/tgarygo.h +++ b/source/triggers/tgarygo.h @@ -62,7 +62,7 @@ protected: /*---------------------------------------------------------------------- */ -#endif /* __TRIGGERS_TPLATFRM_H__ */ +#endif /*=========================================================================== end */ diff --git a/source/triggers/tggleft.h b/source/triggers/tggleft.h index 313f009d5..8305c9f75 100644 --- a/source/triggers/tggleft.h +++ b/source/triggers/tggleft.h @@ -54,7 +54,7 @@ protected: /*---------------------------------------------------------------------- */ -#endif /* __TRIGGERS_TPLATFRM_H__ */ +#endif /*=========================================================================== end */ diff --git a/source/triggers/tggright.cpp b/source/triggers/tggright.cpp new file mode 100644 index 000000000..11ca0c53a --- /dev/null +++ b/source/triggers/tggright.cpp @@ -0,0 +1,127 @@ +/*========================================================================= + + tggright.cpp + + Author: CRB + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +/*---------------------------------------------------------------------- + Includes + -------- */ + +#include "triggers\trigger.h" +#include "triggers\tggright.h" + +#ifndef __GAME_GAME_H__ +#include "game\game.h" +#endif + +#ifndef __FRIEND_FRIEND_H__ +#include "friend\friend.h" +#endif + +#ifndef __FRIEND_FGARY_H__ +#include "friend\fgary.h" +#endif + + +/* Std Lib + ------- */ + +/* Data + ---- */ + +/*---------------------------------------------------------------------- + Tyepdefs && Defines + ------------------- */ + +/*---------------------------------------------------------------------- + Structure defintions + -------------------- */ + +/*---------------------------------------------------------------------- + Function Prototypes + ------------------- */ + +/*---------------------------------------------------------------------- + Vars + ---- */ + + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +#if defined (__USER_art__) || defined (__USER_sbart__) +#include "gfx\prim.h" +void CGaryGoRightTrigger::render() +{ + DVECTOR ofs; + CRECT area; + + CTriggerThing::render(); + + ofs=CLevel::getCameraPos(); + area=getCollisionArea(); + area.x1-=ofs.vx; + area.y1-=ofs.vy; + area.x2-=ofs.vx; + area.y2-=ofs.vy; + + if(area.x1<=511&&area.x2>=0&& + area.y1<=255&&area.y2>=0) + { + POLY_F4 *f4; + f4=GetPrimF4(); + setXY4(f4,area.x1,area.y1, + area.x2,area.y1, + area.x1,area.y2, + area.x2,area.y2); + setRGB0(f4,0,255,0); + setSemiTrans(f4,true); + AddPrimToList(f4,0); + DrawLine(area.x1,area.y1,area.x2,area.y1,0,255,0,0); + DrawLine(area.x2,area.y1,area.x2,area.y2,0,255,0,0); + DrawLine(area.x2,area.y2,area.x1,area.y2,0,255,0,0); + DrawLine(area.x1,area.y2,area.x1,area.y1,0,255,0,0); + } +} +#endif + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +void CGaryGoRightTrigger::collidedWith(CThing *_thisThing) +{ + switch( _thisThing->getThingType() ) + { + case TYPE_NPC: + { + if ( _thisThing->getThingSubType() == CNpcFriend::NPC_FRIEND_GARY ) + { + CNpcGaryFriend *gary = (CNpcGaryFriend *) _thisThing; + + gary->startRight(); + } + + break; + } + + default: + break; + } +} + +/*=========================================================================== +end */ diff --git a/source/triggers/tggright.h b/source/triggers/tggright.h new file mode 100644 index 000000000..f59296322 --- /dev/null +++ b/source/triggers/tggright.h @@ -0,0 +1,60 @@ +/*========================================================================= + + tggright.h + + Author: Charles Blair + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +#ifndef __TRIGGERS_TGGRIGHT_H__ +#define __TRIGGERS_TGGRIGHT_H__ + +/*---------------------------------------------------------------------- + Includes + -------- */ + +#ifndef __THING_THING_H__ +#include "thing/thing.h" +#endif + + +/* Std Lib + ------- */ + +/*---------------------------------------------------------------------- + Tyepdefs && Defines + ------------------- */ + +/*---------------------------------------------------------------------- + Structure defintions + -------------------- */ + +class CGaryGoRightTrigger : public CTrigger +{ +public: +#if defined (__USER_art__) || defined (__USER_sbart__) + virtual void render(); +#endif +protected: + virtual void collidedWith(CThing *_thisThing); +}; + +/*---------------------------------------------------------------------- + Globals + ------- */ + +/*---------------------------------------------------------------------- + Functions + --------- */ + +/*---------------------------------------------------------------------- */ + +#endif + +/*=========================================================================== + end */ diff --git a/source/triggers/tgstop.h b/source/triggers/tgstop.h index 08720073f..4c044dd70 100644 --- a/source/triggers/tgstop.h +++ b/source/triggers/tgstop.h @@ -54,7 +54,7 @@ protected: /*---------------------------------------------------------------------- */ -#endif /* __TRIGGERS_TPLATFRM_H__ */ +#endif /*=========================================================================== end */ diff --git a/source/triggers/trigger.cpp b/source/triggers/trigger.cpp index 3557b6f5a..eb986481b 100644 --- a/source/triggers/trigger.cpp +++ b/source/triggers/trigger.cpp @@ -55,6 +55,10 @@ #include "triggers\tggleft.h" #endif +#ifndef __TRIGGERS_TGGRIGHT_H__ +#include "triggers\tggright.h" +#endif + #ifndef __TRIGGERS_TGSTOP_H__ #include "triggers\tgstop.h" #endif @@ -121,6 +125,11 @@ CTrigger *trigger; trigger=(CGaryGoLeftTrigger*)new("GaryGoLeftTrigger") CGaryGoLeftTrigger(); break; + // Gary go right trigger + case TRIGGER_GARYGORIGHT: + trigger=(CGaryGoRightTrigger*)new("GaryGoRightTrigger") CGaryGoRightTrigger(); + break; + case TRIGGER_INTERMITTENTFLAMEEMITTER: trigger=(CIntermittentFlameEmitterTrigger*)new( "IntermittentFlameEmitterTrigger") CIntermittentFlameEmitterTrigger(); break; diff --git a/source/triggers/trigger.h b/source/triggers/trigger.h index 802ba29ce..cfce8205a 100644 --- a/source/triggers/trigger.h +++ b/source/triggers/trigger.h @@ -34,6 +34,7 @@ enum TRIGGER_TYPE TRIGGER_INTERMITTENTFLAMEEMITTER, TRIGGER_GARYSTOP, TRIGGER_GARYGOLEFT, + TRIGGER_GARYGORIGHT, // Code based triggers TRIGGER_PLATFORM, diff --git a/tools/Data/bin/MkLevel.ini b/tools/Data/bin/MkLevel.ini index 373ce1b53..ebc534c5c 100644 --- a/tools/Data/bin/MkLevel.ini +++ b/tools/Data/bin/MkLevel.ini @@ -136,6 +136,7 @@ FlameEmitter=7 IntermittentFlameEmitter=8 GaryStop=9 GaryGoLeft=10 +GaryGoRight=11 ################################################ # FX diff --git a/tools/MapEdit/trigger.ini b/tools/MapEdit/trigger.ini index 6c6161876..c433d8fce 100644 --- a/tools/MapEdit/trigger.ini +++ b/tools/MapEdit/trigger.ini @@ -27,4 +27,6 @@ HasBox=1 [GaryStop] -[GaryGoLeft] \ No newline at end of file +[GaryGoLeft] + +[GaryGoRight] \ 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 c844ad230..4b1661dca 100644 --- a/users/paul/spongebob project/spongebob project.dsp +++ b/users/paul/spongebob project/spongebob project.dsp @@ -1941,6 +1941,14 @@ SOURCE=..\..\..\source\triggers\tggleft.h # End Source File # Begin Source File +SOURCE=..\..\..\source\triggers\tggright.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\triggers\tggright.h +# End Source File +# Begin Source File + SOURCE=..\..\..\source\triggers\tgstop.cpp # End Source File # Begin Source File