This commit is contained in:
Charles 2001-06-04 21:16:15 +00:00
parent 8ba30ea7ea
commit 7c33350c08
2 changed files with 71 additions and 3 deletions

View file

@ -15,11 +15,55 @@
#include "platform\pbubble.h"
#endif
#ifndef __GAME_GAME_H__
#include "game\game.h"
#endif
#ifndef __SPR_SPRITES_H__
#include <sprites.h>
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CNpcBubblePlatform::postInit()
{
CNpcPlatform::postInit();
m_pop = false;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CNpcBubblePlatform::render()
{
if ( m_isActive || m_pop )
{
CPlatformThing::render();
// Render
if (canRender())
{
DVECTOR &renderPos=getRenderPos();
if ( m_pop )
{
POLY_FT4 *SprFrame = CGameScene::getSpriteBank()->printRotatedScaledSprite( FRM__BALLOONBURST, renderPos.vx, renderPos.vy - 16, 4096 << 1, 4096 << 1, 0, 10 );
setRGB0( SprFrame, 128, 128, 255 );
}
else
{
m_modelGfx->Render(renderPos);
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CNpcBubblePlatform::processMovement( int _frames )
{
if ( !isSetToShutdown() )
if ( !isSetToShutdown() && !m_pop )
{
Pos.vy -= m_speed * _frames;
@ -31,15 +75,34 @@ void CNpcBubblePlatform::processMovement( int _frames )
if ( Pos.vy < minY )
{
setToShutdown();
m_lifetime = GameState::getOneSecondInFrames() >> 2;
m_pop = true;
}
}
else
{
if ( Pos.vy < 0 )
{
m_lifetime = GameState::getOneSecondInFrames() >> 2;
m_pop = true;
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CNpcBubblePlatform::processLifetime( int _frames )
{
if ( m_pop )
{
if ( m_lifetime <= 0 )
{
setToShutdown();
}
else
{
m_lifetime = 0;
}
}
}

View file

@ -21,9 +21,14 @@
class CNpcBubblePlatform : public CNpcPlatform
{
public:
virtual void render();
virtual void postInit();
virtual CRECT const *getThinkBBox();
protected:
virtual void processLifetime( int _frames );
virtual void processMovement( int _frames );
u8 m_pop;
};
#endif