This commit is contained in:
Charles 2001-03-22 19:10:19 +00:00
parent c7bd25dabd
commit c846365a1b
3 changed files with 21 additions and 4 deletions

View file

@ -79,6 +79,13 @@ void CNpcFriend::init()
m_type = NPC_FRIEND_GARY; m_type = NPC_FRIEND_GARY;
DVECTOR ofs = getCollisionSize();
m_drawOffset.vx = 0;
m_drawOffset.vy = -( ofs.vy >> 1 );
setCollisionCentreOffset( 0, -( ofs.vy >> 1 ) );
//m_spriteBank=new ("enemy sprites") SpriteBank(); //m_spriteBank=new ("enemy sprites") SpriteBank();
//m_spriteBank->load(UI_UIGFX_SPR); //m_spriteBank->load(UI_UIGFX_SPR);
} }
@ -125,8 +132,8 @@ void CNpcFriend::render()
DVECTOR renderPos; DVECTOR renderPos;
DVECTOR offset = CLevel::getCameraPos(); DVECTOR offset = CLevel::getCameraPos();
renderPos.vx = ( Pos.vx - offset.vx - ( VidGetScrW() >> 1 ) ) * 20; renderPos.vx = ( Pos.vx + m_drawOffset.vx - offset.vx - ( VidGetScrW() >> 1 ) ) * 20;
renderPos.vy = ( Pos.vy - offset.vy - ( VidGetScrH() >> 1 ) ) * 20; renderPos.vy = ( Pos.vy + m_drawOffset.vy - offset.vy - ( VidGetScrH() >> 1 ) ) * 20;
m_skel.setPos( renderPos ); m_skel.setPos( renderPos );
m_skel.setFrame(m_frame); m_skel.setFrame(m_frame);
@ -249,6 +256,13 @@ void CNpcEnemy::init()
m_npcPath.initPath(); m_npcPath.initPath();
DVECTOR ofs = getCollisionSize();
m_drawOffset.vx = 0;
m_drawOffset.vy = -( ofs.vy >> 1 );
setCollisionCentreOffset( 0, -( ofs.vy >> 1 ) );
switch ( m_data[this->m_type].initFunc ) switch ( m_data[this->m_type].initFunc )
{ {
case NPC_INIT_DEFAULT: case NPC_INIT_DEFAULT:
@ -1170,8 +1184,8 @@ void CNpcEnemy::render()
DVECTOR renderPos; DVECTOR renderPos;
DVECTOR offset = CLevel::getCameraPos(); DVECTOR offset = CLevel::getCameraPos();
renderPos.vx = ( Pos.vx - offset.vx - ( VidGetScrW() >> 1 ) ) * 20; renderPos.vx = ( Pos.vx + m_drawOffset.vx - offset.vx - ( VidGetScrW() >> 1 ) ) * 20;
renderPos.vy = ( Pos.vy - offset.vy - ( VidGetScrH() >> 1 ) ) * 20; renderPos.vy = ( Pos.vy + m_drawOffset.vy - offset.vy - ( VidGetScrH() >> 1 ) ) * 20;
if ( m_reversed ) if ( m_reversed )
{ {

View file

@ -103,6 +103,7 @@ protected:
int m_animNo; int m_animNo;
CSkel m_skel; CSkel m_skel;
TPAGE_DESC m_actorTPage; TPAGE_DESC m_actorTPage;
DVECTOR m_drawOffset;
}; };
class CNpcEnemy : public CEnemyThing class CNpcEnemy : public CEnemyThing
@ -490,6 +491,7 @@ protected:
int m_animNo; int m_animNo;
CSkel m_skel; CSkel m_skel;
TPAGE_DESC m_actorTPage; TPAGE_DESC m_actorTPage;
DVECTOR m_drawOffset;
virtual void collidedWith(CThing *_thisThing); virtual void collidedWith(CThing *_thisThing);
}; };

View file

@ -144,6 +144,7 @@ protected:
void setCollisionAngle(int newAngle) {m_collisionAngle = newAngle;} void setCollisionAngle(int newAngle) {m_collisionAngle = newAngle;}
int getCollisionRadius() {return m_collisionRadius;} int getCollisionRadius() {return m_collisionRadius;}
CRECT getCollisionArea() {return m_collisionArea;} CRECT getCollisionArea() {return m_collisionArea;}
DVECTOR getCollisionSize() {return m_collisionSize;}
DVECTOR getCollisionCentre() {return m_collisionCentre;} DVECTOR getCollisionCentre() {return m_collisionCentre;}
s16 getCollisionAngle() {return m_collisionAngle;} s16 getCollisionAngle() {return m_collisionAngle;}
bool getCentreCollision() {return m_centreCollision;} bool getCentreCollision() {return m_centreCollision;}