This commit is contained in:
parent
cc21912c1a
commit
5fe1a58de3
7 changed files with 39 additions and 32 deletions
|
@ -70,9 +70,9 @@ CLayerCollision::CLayerCollision(sLayerHdr *Hdr)
|
|||
map=Map;
|
||||
for(i=0;i<MapWidth*MapHeight;i++)
|
||||
{
|
||||
originalTile=*map;
|
||||
finalTile=(originalTile&0xe0)|s_collisionTileRemapTable[originalTile&0x1f];
|
||||
*map++=finalTile;
|
||||
// originalTile=*map;
|
||||
// finalTile=(originalTile&0xe0)|s_collisionTileRemapTable[originalTile&0x1f];
|
||||
// *map++=finalTile;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -636,14 +636,14 @@ sLayerHdr *layer;
|
|||
void CLevel::destroyMapArea(DVECTOR const &Pos)
|
||||
{
|
||||
DVECTOR TL,BR;
|
||||
const int ColT=COLLISION_TYPE_DESTRUCTABLE;
|
||||
const int ColT=COLLISION_TYPE_DESTRUCTABLE_WALL;
|
||||
|
||||
|
||||
TL.vx=Pos.vx&-16;;
|
||||
TL.vy=Pos.vy&-16;;
|
||||
BR=TL;
|
||||
|
||||
if (CollisionLayer->getCollisionBlock(TL.vx,TL.vy)>>COLLISION_TYPE_FLAG_SHIFT==ColT)printf ("!!");
|
||||
// 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;
|
||||
|
|
|
@ -60,7 +60,7 @@ void CNpcFallingNoRespawnPlatform::processMovement( int _frames )
|
|||
|
||||
if ( groundHeight < moveY )
|
||||
{
|
||||
if ( ( CGameScene::getCollision()->getCollisionBlock( Pos.vx, Pos.vy + groundHeight + 8 ) & COLLISION_TYPE_MASK ) != COLLISION_TYPE_FLAG_DEATH )
|
||||
if ( ( CGameScene::getCollision()->getCollisionBlock( Pos.vx, Pos.vy + groundHeight + 8 ) & COLLISION_TYPE_MASK ) != COLLISION_TYPE_FLAG_DEATH_FALL )
|
||||
{
|
||||
moveY = groundHeight;
|
||||
moveX = 2 * _frames;
|
||||
|
|
|
@ -1838,7 +1838,7 @@ int CPlayer::canDoLookAround()
|
|||
void CPlayer::inSoakUpState()
|
||||
{
|
||||
if(isWearingDivingHelmet()&&
|
||||
(CGameScene::getCollision()->getCollisionBlock(Pos.vx,Pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_WATER)
|
||||
(CGameScene::getCollision()->getCollisionBlock(Pos.vx,Pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_DEATH_LIQUID)
|
||||
{
|
||||
m_healthWaterLevel+=waterSoakUpSpeed;
|
||||
if(m_healthWaterLevel>WATERMAXHEALTH)
|
||||
|
@ -2344,7 +2344,7 @@ int CPlayer::moveVertical(int _moveDistance)
|
|||
if(colHeightBefore>=0&&colHeightAfter<=0)
|
||||
{
|
||||
// About to hit a 'fall to death' block?
|
||||
if((CGameScene::getCollision()->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_DEATH)
|
||||
if((CGameScene::getCollision()->getCollisionBlock(pos.vx,pos.vy+_moveDistance)&COLLISION_TYPE_MASK)!=COLLISION_TYPE_FLAG_DEATH_FALL)
|
||||
{
|
||||
// No
|
||||
// Stick at ground level
|
||||
|
|
|
@ -297,7 +297,7 @@ void CPlayerModeBase::thinkVerticalMovement()
|
|||
playerHasHitGround();
|
||||
pos=m_player->getPlayerPos();
|
||||
if(m_player->getHeightFromGround(pos.vx,pos.vy,5)==0&&
|
||||
(CGameScene::getCollision()->getCollisionBlock(pos.vx,pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_WATER&&
|
||||
(CGameScene::getCollision()->getCollisionBlock(pos.vx,pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_DEATH_LIQUID&&
|
||||
!m_player->getIsHealthSoFullThatIDontNeedToSoakUp())
|
||||
{
|
||||
// Hit water - Go into soakup mode
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue