This commit is contained in:
Daveo 2001-08-13 21:29:12 +00:00
parent 389110e981
commit 0f028e60fb

View file

@ -498,17 +498,12 @@ DVECTOR const &CamPos=CLevel::getCameraPos();
} }
CPlayer *player = GameScene.getPlayer(); CPlayer *player = GameScene.getPlayer();
if ( player )
{
player->clearPlatform();
}
playerThing=s_CollisionLists[CThing::TYPE_PLAYER]; playerThing=s_CollisionLists[CThing::TYPE_PLAYER];
if (player && playerThing) if (player && playerThing)
{ {
// Player -> Platform collision // Player -> Platform collision
player->clearPlatform();
thing1=s_CollisionLists[CThing::TYPE_PLATFORM]; thing1=s_CollisionLists[CThing::TYPE_PLATFORM];
while(thing1) while(thing1)
{ {
@ -531,15 +526,15 @@ DVECTOR const &CamPos=CLevel::getCameraPos();
} }
// Friend -> Pickup collision // Friend -> Pickup collision
thing1=s_CollisionLists[CThing::TYPE_PICKUP]; thing1=s_CollisionLists[CThing::TYPE_NPC];
while(thing1) while(thing1)
{ {
thing2=s_CollisionLists[CThing::TYPE_NPC]; thing2=s_CollisionLists[CThing::TYPE_PICKUP];
while(thing2) while(thing2)
{ {
if(thing1->checkCollisionAgainst(thing2, _frames)) if(thing2->checkCollisionAgainst(thing1, _frames))
{ {
thing1->collidedWith(thing2); thing2->collidedWith(thing1);
} }
thing2=thing2->m_nextCollisionThing; thing2=thing2->m_nextCollisionThing;
} }
@ -1408,16 +1403,18 @@ DVECTOR const &thisThingPos=_thisThing->getCollisionCentre();
radius=getCollisionRadius()+_thisThing->getCollisionRadius(); radius=getCollisionRadius()+_thisThing->getCollisionRadius();
collided=false; collided=false;
if(abs(pos.vx-thisThingPos.vx)<radius&& if(abs(pos.vx-thisThingPos.vx)<radius && abs(pos.vy-thisThingPos.vy)<radius)
abs(pos.vy-thisThingPos.vy)<radius)
{ {
// CRECT thisRect,thatRect; // CRECT thisRect,thatRect;
CRECT const &thisRect=getCollisionArea(); CRECT const &thisRect=getCollisionArea();
CRECT const &thatRect=_thisThing->getCollisionArea(); CRECT const &thatRect=_thisThing->getCollisionArea();
if(((thisRect.x1>=thatRect.x1&&thisRect.x1<=thatRect.x2)||(thisRect.x2>=thatRect.x1&&thisRect.x2<=thatRect.x2)||(thisRect.x1<=thatRect.x1&&thisRect.x2>=thatRect.x2))&& // if(((thisRect.x1>=thatRect.x1&&thisRect.x1<=thatRect.x2)||(thisRect.x2>=thatRect.x1&&thisRect.x2<=thatRect.x2)||(thisRect.x1<=thatRect.x1&&thisRect.x2>=thatRect.x2))&&
((thisRect.y1>=thatRect.y1&&thisRect.y1<=thatRect.y2)||(thisRect.y2>=thatRect.y1&&thisRect.y2<=thatRect.y2)||(thisRect.y1<=thatRect.y1&&thisRect.y2>=thatRect.y2))) // ((thisRect.y1>=thatRect.y1&&thisRect.y1<=thatRect.y2)||(thisRect.y2>=thatRect.y1&&thisRect.y2<=thatRect.y2)||(thisRect.y1<=thatRect.y1&&thisRect.y2>=thatRect.y2)))
if (thisRect.x2<thatRect.x1 || thisRect.x1>thatRect.x2) return(false);
if (thisRect.y2<thatRect.y1 || thisRect.y1>thatRect.y2) return(false);
{ {
collided=true; collided=true;
} }