This commit is contained in:
Paul 2001-04-06 21:25:18 +00:00
parent 461123580e
commit 0cb7d8d491
5 changed files with 159 additions and 28 deletions

View file

@ -38,6 +38,14 @@
Structure defintions
-------------------- */
// Collision rectangle definition
typedef struct
{
int x1,y1,x2,y2;
}
CRECT;
// Thing manager class
class CThingManager
{
@ -49,6 +57,8 @@ public:
static void renderAllThings();
static void processEventAllThings(GAME_EVENT _event,class CThing *_sourceThing);
static CThing* checkCollisionAreaAgainstThings(CRECT *_area,int _type,int _continue);
protected:
static void addToThingList(class CThing *_this);
static void removeFromThingList(CThing *_this);
@ -126,13 +136,6 @@ public:
// -- Collision --
public:
typedef struct
{
int x1,y1,x2,y2;
}
CRECT;
DVECTOR getCollisionCentre() {return m_collisionCentre;}
int getCollisionRadius() {return m_collisionRadius;}
CRECT getCollisionArea() {return m_collisionArea;}
@ -143,6 +146,7 @@ public:
virtual int canCollide() {return true;}
virtual int checkCollisionAgainst(CThing *_thisThing, int _frames);
int checkCollisionAgainstArea(CRECT *_rect);
void updateCollisionArea();
virtual void collidedWith(CThing *_thisThing) {;}
virtual void setHasPlatformCollided( bool newVal ) {;}
@ -150,6 +154,8 @@ public:
virtual s32 getNewYPos( CThing *_thisThing );
void setNewCollidedPos(DVECTOR newPos) {m_newCollidedPos = newPos;}
void setCentreCollision(bool newCentreCollision) {m_centreCollision = newCentreCollision;}
protected:
void setCollisionSize(int _w,int _h);
void setCollisionCentreOffset(int _x,int _y) {m_collisionCentreOffset.vx=_x;m_collisionCentreOffset.vy=_y;}