diff --git a/source/pickups/pkelp.cpp b/source/pickups/pkelp.cpp index a5dbddbe8..9e962e12e 100644 --- a/source/pickups/pkelp.cpp +++ b/source/pickups/pkelp.cpp @@ -80,6 +80,8 @@ void CKelpTokenPickup::init() fh=CGameScene::getSpriteBank()->getFrameHeader(FRM__TOKEN); setCollisionSize(fh->W,fh->H); + + m_collectedFlag=false; } /*---------------------------------------------------------------------- @@ -109,6 +111,7 @@ void CKelpTokenPickup::collect(class CPlayer *_player) { CBasePickup::collect(_player); CGameSlotManager::getSlotData()->collectKelpToken(GameScene.getChapterNumber()-1,GameScene.getLevelNumber()-1,m_tokenNumber); + m_collectedFlag=true; } /*---------------------------------------------------------------------- @@ -138,7 +141,7 @@ void CKelpTokenPickup::renderPickup(DVECTOR *_pos) ---------------------------------------------------------------------- */ void CKelpTokenPickup::collidedWith(CThing *_thisThing) { - if(!isSetToShutdown()) + if(!m_collectedFlag) { switch(_thisThing->getThingType()) { diff --git a/source/pickups/pkelp.h b/source/pickups/pkelp.h index cf89bf9a8..9eac9535b 100644 --- a/source/pickups/pkelp.h +++ b/source/pickups/pkelp.h @@ -52,6 +52,7 @@ private: virtual CSoundMediator::SFXID sfxToPlayWhenCollected(){return CSoundMediator::SFX_ITEM__ANY_OTHER_ITEM;}//SFX_ITEM__SKILL_ITEM;} int m_tokenNumber; + int m_collectedFlag; };