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" #include "enemy\nmjback.h"
#endif #endif
#ifndef __ENEMY_NSJBACK_H__
#include "enemy\nsjback.h"
#endif
#ifndef __ENEMY_NBUTTFLY_H__
#include "enemy\nbuttfly.h"
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Enemy NPCs // Enemy NPCs
@ -430,6 +438,18 @@ CNpcEnemy *CNpcEnemy::Create(int enemyType)
break; 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: default:
{ {
SYSTEM_DBGMSG("UNKNOWN %i\n",enemyType); SYSTEM_DBGMSG("UNKNOWN %i\n",enemyType);

View file

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

View file

@ -496,24 +496,24 @@ void CPlayerProjectile::think(int _frames)
{ {
if ( !m_hitTarget ) 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; 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 // destroy destructable tiles