This commit is contained in:
parent
c871631cc0
commit
40f3d3d6cc
10 changed files with 42 additions and 73 deletions
|
@ -739,50 +739,29 @@ sTileMapElem *MapElem=TileLayers[CLayerTile::LAYER_TILE_TYPE_ACTION]->getMapPtr(
|
|||
/*****************************************************************************/
|
||||
/*****************************************************************************/
|
||||
/*****************************************************************************/
|
||||
void CLevel::reverseMapConveyor(DVECTOR const &Pos)
|
||||
void CLevel::reverseMapConveyor()
|
||||
{
|
||||
DVECTOR TL,BR;
|
||||
|
||||
|
||||
TL.vx=Pos.vx&-16;;
|
||||
TL.vy=Pos.vy&-16;;
|
||||
BR=TL;
|
||||
|
||||
int ColT=CollisionLayer->getCollisionBlock(TL.vx,TL.vy)>>COLLISION_TYPE_FLAG_SHIFT;
|
||||
|
||||
// if (CollisionLayer->getCollisionBlock(TL.vx,TL.vy)>>COLLISION_TYPE_FLAG_SHIFT==ColT)printf ("!!");
|
||||
|
||||
// Left
|
||||
while (CollisionLayer->getCollisionBlock(TL.vx-16,TL.vy)>>COLLISION_TYPE_FLAG_SHIFT==ColT) TL.vx-=16;
|
||||
// Top
|
||||
while (CollisionLayer->getCollisionBlock(TL.vx,TL.vy-16)>>COLLISION_TYPE_FLAG_SHIFT==ColT) TL.vy-=16;
|
||||
// Right
|
||||
while (CollisionLayer->getCollisionBlock(BR.vx+16,BR.vy)>>COLLISION_TYPE_FLAG_SHIFT==ColT) BR.vx+=16;
|
||||
// Bottom
|
||||
while (CollisionLayer->getCollisionBlock(BR.vx,BR.vy+16)>>COLLISION_TYPE_FLAG_SHIFT==ColT) BR.vy+=16;
|
||||
DVECTOR size = getMapSize();
|
||||
int ColT;
|
||||
|
||||
DVECTOR DP;
|
||||
|
||||
for (DP.vy=TL.vy; DP.vy<=BR.vy; DP.vy+=16)
|
||||
for (DP.vy=0; DP.vy<=(size.vy<<4); DP.vy+=16)
|
||||
{
|
||||
for (DP.vx=TL.vx; DP.vx<=BR.vx; DP.vx+=16)
|
||||
for (DP.vx=0; DP.vx<=(size.vx<<4); DP.vx+=16)
|
||||
{
|
||||
u8 *ColElem=CollisionLayer->getMapPtr(DP.vx,DP.vy);
|
||||
|
||||
if (*ColElem>>COLLISION_TYPE_FLAG_SHIFT==ColT)
|
||||
if ( (*ColElem)>>COLLISION_TYPE_FLAG_SHIFT == COLLISION_TYPE_MOVE_LEFT )
|
||||
{
|
||||
if ( ColT == COLLISION_TYPE_MOVE_LEFT )
|
||||
{
|
||||
*ColElem &= ~COLLISION_TYPE_FLAG_MOVE_LEFT;
|
||||
*ColElem |= COLLISION_TYPE_FLAG_MOVE_RIGHT;
|
||||
}
|
||||
else if ( ColT == COLLISION_TYPE_MOVE_RIGHT )
|
||||
{
|
||||
*ColElem &= ~COLLISION_TYPE_FLAG_MOVE_RIGHT;
|
||||
*ColElem |= COLLISION_TYPE_FLAG_MOVE_LEFT;
|
||||
}
|
||||
*ColElem &= ~COLLISION_TYPE_FLAG_MOVE_LEFT;
|
||||
*ColElem |= COLLISION_TYPE_FLAG_MOVE_RIGHT;
|
||||
}
|
||||
else if ( (*ColElem)>>COLLISION_TYPE_FLAG_SHIFT == COLLISION_TYPE_MOVE_RIGHT )
|
||||
{
|
||||
*ColElem &= ~COLLISION_TYPE_FLAG_MOVE_RIGHT;
|
||||
*ColElem |= COLLISION_TYPE_FLAG_MOVE_LEFT;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue