From 211da43754f120e543409a964a19d34b4b6a46f2 Mon Sep 17 00:00:00 2001 From: Paul Date: Mon, 4 Jun 2001 14:41:56 +0000 Subject: [PATCH] --- source/player/player.cpp | 19 ++++++++++++++++--- source/player/player.h | 1 + source/player/pmdead.cpp | 3 +++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/source/player/player.cpp b/source/player/player.cpp index 60cdbf383..4605111c2 100644 --- a/source/player/player.cpp +++ b/source/player/player.cpp @@ -805,11 +805,13 @@ if(newmode!=-1) // Think for the current player mode m_currentPlayerModeClass->think(); - // Conveyor belt movement + // Is player stood on any special collision? if(getHeightFromGroundNoPlatform(Pos.vx,Pos.vy,5)==0) { int block; block=CGameScene::getCollision()->getCollisionBlock(Pos.vx,Pos.vy)&COLLISION_TYPE_MASK; + + // Conveyor belt movement if(block==COLLISION_TYPE_FLAG_MOVE_LEFT) { moveHorizontal(-1); @@ -818,6 +820,18 @@ if(newmode!=-1) { moveHorizontal(+1); } + + // Death? + else if(m_currentMode!=PLAYER_MODE_DEAD&& + block==COLLISION_TYPE_FLAG_DEATH_LIQUID) + { + dieYouPorousFreak(DEATHTYPE__LIQUID); + } + else if(m_currentMode!=PLAYER_MODE_DEAD&& + block==COLLISION_TYPE_FLAG_DEATH_INSTANT) + { + dieYouPorousFreak(DEATHTYPE__NORMAL); + } } // Powerups @@ -1861,8 +1875,7 @@ int CPlayer::canDoLookAround() void CPlayer::inSoakUpState() { if(isWearingDivingHelmet()&& -// (CGameScene::getCollision()->getCollisionBlock(Pos.vx,Pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_DEATH_LIQUID) - (CGameScene::getCollision()->getCollisionBlock(Pos.vx,Pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_SOAKUP) + (CGameScene::getCollision()->getCollisionBlock(Pos.vx,Pos.vy)&COLLISION_TYPE_MASK)==COLLISION_TYPE_FLAG_SOAKUP) { m_healthWaterLevel+=waterSoakUpSpeed; if(m_healthWaterLevel>WATERMAXHEALTH) diff --git a/source/player/player.h b/source/player/player.h index 1ae4c5ed5..ce1499f4c 100644 --- a/source/player/player.h +++ b/source/player/player.h @@ -130,6 +130,7 @@ typedef enum DEATHTYPE__NORMAL, DEATHTYPE__DRYUP, DEATHTYPE__SQUASH, + DEATHTYPE__LIQUID, } DEATH_TYPE; typedef enum diff --git a/source/player/pmdead.cpp b/source/player/pmdead.cpp index 69bc4b3e5..1fc895a4d 100644 --- a/source/player/pmdead.cpp +++ b/source/player/pmdead.cpp @@ -73,6 +73,9 @@ void CPlayerModeDead::enter() case DEATHTYPE__SQUASH: deathAnim=ANIM_SPONGEBOB_DEATHSQUASH; break; + case DEATHTYPE__LIQUID: + deathAnim=ANIM_SPONGEBOB_DEATHSPIN; + break; } m_player->setAnimNo(deathAnim); }