diff --git a/source/thing/thing.cpp b/source/thing/thing.cpp index 0c30316fc..0a074e9d3 100644 --- a/source/thing/thing.cpp +++ b/source/thing/thing.cpp @@ -417,7 +417,7 @@ void CThing::init() setCollisionSize(20,20); // Some temporary defaults.. (pkg) setCollisionCentreOffset(0,0); - m_collisionAngle = 0; + setCollisionAngle(0); } /*---------------------------------------------------------------------- @@ -471,6 +471,32 @@ void CThing::render() DVECTOR ofs; CRECT area; + 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) + { + DrawLine(area.x1,area.y1,area.x2,area.y1,255,255,255,0); + DrawLine(area.x2,area.y1,area.x2,area.y2,255,255,255,0); + DrawLine(area.x2,area.y2,area.x1,area.y2,255,255,255,0); + DrawLine(area.x1,area.y2,area.x1,area.y1,255,255,255,0); + + area.x1=Pos.vx-10-ofs.vx; + area.y1=Pos.vy-10-ofs.vy; + area.x2=Pos.vx+10-ofs.vx; + area.y2=Pos.vy+10-ofs.vy; + DrawLine(area.x1,area.y1,area.x2,area.y2,255,0,0,0); + DrawLine(area.x2,area.y1,area.x1,area.y2,255,0,0,0); + } +/* + DVECTOR ofs; + CRECT area; + ofs=CLevel::getCameraPos(); area=getCollisionArea(); @@ -538,6 +564,7 @@ void CThing::render() DrawLine(area.x1,area.y1,area.x2,area.y2,255,0,0,0); DrawLine(area.x2,area.y1,area.x1,area.y2,255,0,0,0); } +*/ } } #else diff --git a/source/thing/thing.h b/source/thing/thing.h index ad168e2de..5a63721e6 100644 --- a/source/thing/thing.h +++ b/source/thing/thing.h @@ -143,8 +143,8 @@ public: DVECTOR getCollisionCentre() {return m_collisionCentre;} int getCollisionRadius() {return m_collisionRadius;} CRECT getCollisionArea() {return m_collisionArea;} - s16 getCollisionAngle() {return m_collisionAngle;} - DVECTOR getNewCollidedPos() {return m_newCollidedPos;} + s16 getCollisionAngle() {return m_collisionAngle;} // pkg - move to CNpcPlatform? + DVECTOR getNewCollidedPos() {return m_newCollidedPos;} // pkg - to be removed? DVECTOR getCollisionSize() {return m_collisionSize;} virtual int canCollide() {return true;} @@ -155,22 +155,22 @@ public: virtual void setHasPlatformCollided( bool newVal ) {;} virtual bool getHasPlatformCollided() {return false;} virtual s32 getNewYPos( CThing *_thisThing ); - void setNewCollidedPos(DVECTOR newPos) {m_newCollidedPos = newPos;} + void setNewCollidedPos(DVECTOR newPos) {m_newCollidedPos = newPos;} // pkg - to be removed? protected: - void setCollisionSize(int _w,int _h); - void setCollisionCentreOffset(int _x,int _y) {m_collisionCentreOffset.vx=_x;m_collisionCentreOffset.vy=_y;} - void setCollisionCentreOffset(DVECTOR xy) {m_collisionCentreOffset=xy;} - void setCollisionAngle(int newAngle) {m_collisionAngle = newAngle;} + virtual void setCollisionSize(int _w,int _h); + virtual void setCollisionCentreOffset(int _x,int _y) {m_collisionCentreOffset.vx=_x;m_collisionCentreOffset.vy=_y;} + virtual void setCollisionCentreOffset(DVECTOR xy) {m_collisionCentreOffset=xy;} + virtual void setCollisionAngle(int newAngle) {m_collisionAngle = newAngle;} // pkg - move to CNpcPlatform? private: DVECTOR m_collisionSize; DVECTOR m_collisionCentreOffset; int m_collisionRadius; CRECT m_collisionArea; DVECTOR m_collisionCentre; - s16 m_collisionAngle; - DVECTOR m_newCollidedPos; + s16 m_collisionAngle; // pkg - move to CNpcPlatform? + DVECTOR m_newCollidedPos; // pkg - to be removed? };