This commit is contained in:
Charles 2001-06-13 16:04:46 +00:00
parent 3883c18a6f
commit 478ea22848
3 changed files with 31 additions and 52 deletions

View File

@ -191,6 +191,14 @@
#include "enemy\nmjback.h"
#endif
#ifndef __ENEMY_NSJBACK_H__
#include "enemy\nsjback.h"
#endif
#ifndef __ENEMY_NBUTTFLY_H__
#include "enemy\nbuttfly.h"
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Enemy NPCs
@ -430,6 +438,18 @@ CNpcEnemy *CNpcEnemy::Create(int enemyType)
break;
}
case CNpcEnemy::NPC_SMALL_JELLYFISH_BACKGROUND:
{
enemy = new ("small jellyfish background") CNpcSmallJellyfishBackgroundEnemy;
break;
}
case CNpcEnemy::NPC_BUTTERFLY_BACKGROUND:
{
enemy = new ("butterfly background") CNpcButterflyBackgroundEnemy;
break;
}
default:
{
SYSTEM_DBGMSG("UNKNOWN %i\n",enemyType);

View File

@ -109,61 +109,20 @@ void CJellyfishGenerator::think( int _frames, CLevel *level )
switch( m_level )
{
case 1:
{
enemy = (CNpcEnemy*)CThingManager::GetThing(CThing::TYPE_ENEMY,CNpcEnemy::NPC_SMALL_JELLYFISH_BACKGROUND);
if (!enemy)
{
enemy = new( "jellyfish" ) CNpcSmallJellyfishBackgroundEnemy;
ASSERT(enemy);
}
enemy->setType( CNpcEnemy::NPC_SMALL_JELLYFISH_BACKGROUND );
enemy->setThingSubType(CNpcEnemy::NPC_SMALL_JELLYFISH_BACKGROUND);
break;
}
case 2:
{
if ( getRnd() % 4 == 0 )
{
enemy = (CNpcEnemy*)CThingManager::GetThing(CThing::TYPE_ENEMY,CNpcEnemy::NPC_SMALL_JELLYFISH_2_BACKGROUND);
if (!enemy)
{
enemy = new( "jellyfish" ) CNpcSmallJellyfish2BackgroundEnemy;
ASSERT(enemy);
}
enemy->setType( CNpcEnemy::NPC_SMALL_JELLYFISH_2_BACKGROUND );
enemy->setThingSubType(CNpcEnemy::NPC_SMALL_JELLYFISH_2_BACKGROUND);
}
else
{
enemy = (CNpcEnemy*)CThingManager::GetThing(CThing::TYPE_ENEMY,CNpcEnemy::NPC_SMALL_JELLYFISH_BACKGROUND);
if (!enemy)
{
enemy = new( "jellyfish" ) CNpcSmallJellyfishBackgroundEnemy;
ASSERT(enemy);
}
enemy->setType( CNpcEnemy::NPC_SMALL_JELLYFISH_BACKGROUND );
enemy->setThingSubType(CNpcEnemy::NPC_SMALL_JELLYFISH_BACKGROUND);
}
enemy=CNpcEnemy::Create( CNpcEnemy::NPC_SMALL_JELLYFISH_BACKGROUND );
break;
}
case 3:
{
enemy = (CNpcEnemy*)CThingManager::GetThing(CThing::TYPE_ENEMY,CNpcEnemy::NPC_BUTTERFLY_BACKGROUND);
if (!enemy)
{
enemy = new( "butterfly" ) CNpcButterflyBackgroundEnemy;
ASSERT(enemy);
}
enemy->setType( CNpcEnemy::NPC_BUTTERFLY_BACKGROUND );
enemy->setThingSubType(CNpcEnemy::NPC_BUTTERFLY_BACKGROUND);
enemy=CNpcEnemy::Create( CNpcEnemy::NPC_BUTTERFLY_BACKGROUND );
break;
}
}
enemy->init();
//enemy->init();
DVECTOR offset = CLevel::getCameraPos();

View File

@ -496,24 +496,24 @@ void CPlayerProjectile::think(int _frames)
{
if ( !m_hitTarget )
{
Pos.vx += ( _frames * 4 * rcos( m_heading ) ) >> 12;
Pos.vx += ( _frames * 5 * rcos( m_heading ) ) >> 12;
m_vertVelocity += 192;
m_vertVelocity += 3 << 7;
if ( m_vertVelocity > ( 5 << 8 ) )
if ( m_vertVelocity > ( 7 << 8 ) )
{
m_vertVelocity = 5 << 8;
m_vertVelocity = 7 << 8;
}
else if ( m_vertVelocity < -( 5 << 8 ) )
else if ( m_vertVelocity < -( 7 << 8 ) )
{
m_vertVelocity = -( 5 << 8 );
m_vertVelocity = -( 7 << 8 );
}
s16 moveY = ( m_vertVelocity >> 8 ) * _frames;
s32 groundHeight = CGameScene::getCollision()->getHeightFromGround( Pos.vx, Pos.vy + moveY, 32 );
s32 groundHeight = CGameScene::getCollision()->getHeightFromGround( Pos.vx, Pos.vy, moveY );
if ( groundHeight < 0 )
if ( groundHeight < moveY )
{
// destroy destructable tiles