SBSPSS/source/level/layercollision.h
2001-03-13 16:45:31 +00:00

48 lines
949 B
C++

/******************************/
/*** Collision Layer Class ***/
/******************************/
#ifndef __LAYER_COLLISION_H__
#define __LAYER_COLLISION_H__
#include <dstructs.h>
#ifdef __VERSION_DEBUG__
#define __SHOW_COLLISION__
#endif
/*****************************************************************************/
class CLayerCollision
{
public:
CLayerCollision(sLayerHdr *Hdr);
virtual ~CLayerCollision();
virtual void shutdown();
u8 Get(int X,int Y) {return(Map[X+(Y*MapWidth)]&COLLISION_MASK);}
int getHeightFromGround(int _x,int _y,int _maxHeight=32);
int getCollisionBlock(int _x,int _y) {return Map[(_x>>4)+((_y>>4)*MapWidth)];}
#ifdef __SHOW_COLLISION__
void render(DVECTOR &MapPos);
#endif
protected:
sLayerHdr *LayerHdr;
int MapWidth,MapHeight;
u8 *Map;
static u8 s_collisionTable[];
};
/*****************************************************************************/
#endif