diff --git a/source/enemy/npc.cpp b/source/enemy/npc.cpp index d8467873b..117acb4c7 100644 --- a/source/enemy/npc.cpp +++ b/source/enemy/npc.cpp @@ -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); diff --git a/source/jellfish/jellfish.cpp b/source/jellfish/jellfish.cpp index 8b3826113..f1efe38f7 100644 --- a/source/jellfish/jellfish.cpp +++ b/source/jellfish/jellfish.cpp @@ -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(); diff --git a/source/projectl/projectl.cpp b/source/projectl/projectl.cpp index 5c5a3294f..7c0cae1e8 100644 --- a/source/projectl/projectl.cpp +++ b/source/projectl/projectl.cpp @@ -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