SBSPSS/source/hazard/hazard.h

94 lines
1.9 KiB
C
Raw Normal View History

2001-04-24 15:24:26 +02:00
/*=========================================================================
hazard.h
Author: CRB
Created:
Project: Spongebob
Purpose:
Copyright (c) 2001 Climax Development Ltd
===========================================================================*/
#ifndef __HAZARD_HAZARD_H__
#define __HAZARD_HAZARD_H__
#ifndef __THING_THING_H__
#include "thing/thing.h"
#endif
#ifndef __ENEMY_NPCPATH_H__
#include "enemy\npcpath.h"
#endif
#ifndef __GFX_SPRBANK_H__
#include "gfx\sprbank.h"
#endif
#ifndef __ACTOR_HEADER__
#include "gfx\actor.h"
#endif
class CNpcHazard : public CHazardThing
{
public:
2001-05-01 15:28:11 +02:00
enum NPC_HAZARD_UNIT_TYPE
{
NPC_FALLING_HAZARD = 0,
NPC_PENDULUM_HAZARD = 1,
NPC_BOAT_HAZARD,
2001-05-03 16:51:14 +02:00
NPC_BARREL_HAZARD,
NPC_STATIC_HAZARD,
NPC_CIRCULAR_SAW_HAZARD,
2001-05-01 15:28:11 +02:00
NPC_HAZARD_TYPE_MAX,
};
2001-04-24 17:01:42 +02:00
virtual void init();
2001-05-01 15:28:11 +02:00
void setGraphic( sThingHazard *ThisHazard );
2001-04-24 15:24:26 +02:00
void shutdown();
void think(int _frames);
2001-05-03 16:51:14 +02:00
virtual void render();
2001-04-24 17:01:42 +02:00
void setLayerCollision( class CLayerCollision *_layer ) {m_layerCollision=_layer;}
2001-05-01 15:28:11 +02:00
virtual void setWaypoints( sThingHazard *ThisHazard );
void addWaypoint( s32 xPos, s32 yPos );
static NPC_HAZARD_UNIT_TYPE getTypeFromMapEdit( u16 newType );
static CNpcHazard *Create(sThingHazard *ThisHazard);
2001-04-24 15:24:26 +02:00
protected:
2001-04-24 17:01:42 +02:00
enum
{
EXTEND_UP = true,
EXTEND_DOWN = false,
EXTEND_RIGHT = true,
EXTEND_LEFT = false,
EXTEND_CLOCKWISE = true,
EXTEND_ANTICLOCKWISE = false,
};
virtual void processMovement( int _frames );
virtual void processTimer( int _frames );
2001-05-01 18:28:51 +02:00
virtual void collidedWith(CThing *_thisThing);
2001-04-24 15:24:26 +02:00
CNpcPath m_npcPath;
2001-05-01 15:28:11 +02:00
//CActorGfx *m_actorGfx;
//SpriteBank *m_spriteBank;
2001-04-24 17:01:42 +02:00
DVECTOR m_base;
s32 m_timer;
bool m_timerActive;
bool m_isActive;
class CLayerCollision *m_layerCollision;
s32 m_extension;
bool m_extendDir;
s32 m_heading;
2001-05-01 15:28:11 +02:00
CModelGfx *m_modelGfx;
static NPC_HAZARD_UNIT_TYPE mapEditConvertTable[NPC_HAZARD_TYPE_MAX];
2001-04-24 15:24:26 +02:00
};
#endif