This commit is contained in:
parent
75ca3377af
commit
a3a37c47b5
2 changed files with 161 additions and 0 deletions
110
source/triggers/trigger.cpp
Normal file
110
source/triggers/trigger.cpp
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
/*=========================================================================
|
||||||
|
|
||||||
|
trigger source file
|
||||||
|
|
||||||
|
Author: Davey Boy
|
||||||
|
Created:
|
||||||
|
Project: Spongebob
|
||||||
|
Purpose:
|
||||||
|
|
||||||
|
Copyright (c) 2001 Climax Development Ltd
|
||||||
|
|
||||||
|
===========================================================================*/
|
||||||
|
|
||||||
|
#ifndef __TRIGGER_TRIGGER_HEADER__
|
||||||
|
#include "triggers\trigger.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __TRIGGERS_TLEVEXIT_H__
|
||||||
|
#include "triggers\tlevexit.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __TRIGGERS_TRESTART_H__
|
||||||
|
#include "triggers\trestart.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __TRIGGERS_TTELEPRT_H__
|
||||||
|
#include "triggers\tteleprt.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __TRIGGERS_TCAMLOCK_H__
|
||||||
|
#include "triggers\tcamlock.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __TRIGGERS_TWATER_H__
|
||||||
|
#include "triggers\twater.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __GAME_GAME_H__
|
||||||
|
#include "game\game.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
CTrigger *CTrigger::Create(int Type)
|
||||||
|
{
|
||||||
|
CTrigger *trigger;
|
||||||
|
printf("Trig Type %i\n",Type);
|
||||||
|
trigger = (CTrigger*)CThingManager::GetThing(CThing::TYPE_TRIGGER,Type);
|
||||||
|
if (!trigger)
|
||||||
|
switch( Type )
|
||||||
|
{
|
||||||
|
// Exit trigger
|
||||||
|
case TRIGGER_EXIT:
|
||||||
|
trigger=(CTrigger*)new ("LevelExitTrigger") CLevelExitTrigger();
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Level respawn trigger
|
||||||
|
case TRIGGER_RESPAWN:
|
||||||
|
trigger=(CRestartPointTrigger*)new ("RestartTrigger") CRestartPointTrigger();
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Teleport trigger
|
||||||
|
case TRIGGER_TELEPORT:
|
||||||
|
trigger=(CTeleportTrigger*)new ("TeleportTrigger") CTeleportTrigger();
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Camera lock trigger
|
||||||
|
case TRIGGER_CAMLOCK:
|
||||||
|
trigger=NULL;
|
||||||
|
break;
|
||||||
|
|
||||||
|
// In/Out of water triggers
|
||||||
|
case TRIGGER_WATER:
|
||||||
|
trigger=(CInWaterTrigger*)new ("InWaterTrigger") CInWaterTrigger();
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
trigger=(COutOfWaterTrigger*)new ("OutOfWaterTrigger") COutOfWaterTrigger();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
trigger=NULL;
|
||||||
|
}
|
||||||
|
printf("TriggerDone\n");
|
||||||
|
ASSERT( trigger);
|
||||||
|
|
||||||
|
trigger->setThingSubType(Type);
|
||||||
|
trigger->init();
|
||||||
|
|
||||||
|
return( 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);
|
||||||
|
|
||||||
|
return( trigger);
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void CTrigger::init()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void CTrigger::shutdown()
|
||||||
|
{
|
||||||
|
}
|
51
source/triggers/trigger.h
Normal file
51
source/triggers/trigger.h
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/*=========================================================================
|
||||||
|
|
||||||
|
trigger.h
|
||||||
|
|
||||||
|
Author: dave
|
||||||
|
Created:
|
||||||
|
Project: Spongebob
|
||||||
|
Purpose:
|
||||||
|
|
||||||
|
Copyright (c) 2001 Climax Development Ltd
|
||||||
|
|
||||||
|
===========================================================================*/
|
||||||
|
|
||||||
|
#ifndef __TRIGGER_TRIGGER_HEADER__
|
||||||
|
#define __TRIGGER_TRIGGER_HEADER__
|
||||||
|
|
||||||
|
#ifndef __THING_THING_H__
|
||||||
|
#include "thing/thing.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class CTrigger : public CTriggerThing
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
enum TRIGGER_TYPE
|
||||||
|
{
|
||||||
|
TRIGGER_EXIT=0,
|
||||||
|
TRIGGER_RESPAWN,
|
||||||
|
TRIGGER_TELEPORT,
|
||||||
|
TRIGGER_CAMLOCK,
|
||||||
|
TRIGGER_WATER,
|
||||||
|
TRIGGER_MAX,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{ // For Dynamic ThingCache
|
||||||
|
MAX_SUBTYPE =TRIGGER_MAX,
|
||||||
|
};
|
||||||
|
|
||||||
|
virtual void init();
|
||||||
|
virtual void shutdown();
|
||||||
|
|
||||||
|
static CTrigger *Create(int Type);
|
||||||
|
static CTrigger *Create(sThingTrigger *ThisTrigger);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void collidedWith(CThing *_thisThing){};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue