This commit is contained in:
parent
389110e981
commit
0f028e60fb
1 changed files with 11 additions and 14 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue