This commit is contained in:
Charles 2001-05-10 14:09:06 +00:00
parent 429e2197f2
commit 313762dc1a
8 changed files with 105 additions and 4 deletions

View file

@ -81,7 +81,8 @@ enemy_src := npc \
ndustdev \ ndustdev \
npbug \ npbug \
nprojjf \ nprojjf \
nmjback nmjback \
nsjback
friend_src := friend \ friend_src := friend \
fdata \ fdata \
@ -181,6 +182,8 @@ gui_src := gbubbles \
gtextbox \ gtextbox \
gui gui
jellfish_src := jellfish
level_src := level \ level_src := level \
layertile \ layertile \
layerback \ layerback \

View file

@ -913,7 +913,7 @@ void CNpcEnemy::collidedWith( CThing *_thisThing )
{ {
CNpcEnemy *enemy = (CNpcEnemy *) _thisThing; CNpcEnemy *enemy = (CNpcEnemy *) _thisThing;
if ( enemy->canCollideWithEnemy() ) if ( canCollideWithEnemy() && enemy->canCollideWithEnemy() )
{ {
processEnemyCollision( _thisThing ); processEnemyCollision( _thisThing );
} }

View file

@ -82,6 +82,7 @@ public:
NPC_SHELL, NPC_SHELL,
NPC_PROJECTILE_JELLYFISH, NPC_PROJECTILE_JELLYFISH,
NPC_MOTHER_JELLYFISH_BACKGROUND, NPC_MOTHER_JELLYFISH_BACKGROUND,
NPC_SMALL_JELLYFISH_BACKGROUND,
NPC_UNIT_TYPE_MAX, NPC_UNIT_TYPE_MAX,
}; };
@ -225,6 +226,7 @@ protected:
u8 canBeNetted; u8 canBeNetted;
u8 respawning; u8 respawning;
u8 canBeSuckedUp; u8 canBeSuckedUp;
u8 canCollideWithEnemy;
} }
NPC_DATA; NPC_DATA;

View file

@ -134,6 +134,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_SMALL_JELLYFISH_1 { // NPC_SMALL_JELLYFISH_1
@ -156,6 +157,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
true, true,
true, true,
false, false,
false,
}, },
{ // NPC_SMALL_JELLYFISH_2 { // NPC_SMALL_JELLYFISH_2
@ -178,6 +180,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
true, true,
false, false,
false,
}, },
{ // NPC_ANEMONE_1 { // NPC_ANEMONE_1
@ -200,6 +203,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_ANEMONE_2 { // NPC_ANEMONE_2
@ -222,6 +226,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_ANEMONE_3 { // NPC_ANEMONE_3
@ -244,6 +249,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_SKELETAL_FISH { // NPC_SKELETAL_FISH
@ -266,6 +272,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_CLAM_JUMP { // NPC_CLAM_JUMP
@ -288,6 +295,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_CLAM_STATIC { // NPC_CLAM_STATIC
@ -310,6 +318,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_SQUID_DART { // NPC_SQUID_DART
@ -332,6 +341,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_FISH_FOLK { // NPC_FISH_FOLK
@ -354,6 +364,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_PRICKLY_BUG { // NPC_PRICKLY_BUG
@ -376,6 +387,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_SEA_SNAKE { // NPC_SEA_SNAKE
@ -398,6 +410,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_PUFFA_FISH { // NPC_PUFFA_FISH
@ -420,6 +433,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_ANGLER_FISH { // NPC_ANGLER_FISH
@ -442,6 +456,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_HERMIT_CRAB { // NPC_HERMIT_CRAB
@ -464,6 +479,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_MINE { // NPC_MINE
@ -486,6 +502,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_BOOGER_MONSTER { // NPC_BOOGER_MONSTER
@ -508,6 +525,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_SPIDER_CRAB { // NPC_SPIDER_CRAB
@ -530,6 +548,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_SPIDER_CRAB_SPAWNER { // NPC_SPIDER_CRAB_SPAWNER
@ -552,6 +571,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_EYEBALL { // NPC_EYEBALL
@ -574,6 +594,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_BABY_OCTOPUS { // NPC_BABY_OCTOPUS
@ -596,6 +617,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_ZOMBIE_FISH_FOLK { // NPC_ZOMBIE_FISH_FOLK
@ -618,6 +640,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_NINJA_STARFISH { // NPC_NINJA_STARFISH
@ -640,6 +663,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_GHOST { // NPC_GHOST
@ -662,6 +686,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_GHOST_PIRATE { // NPC_GHOST_PIRATE
@ -684,6 +709,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_FLAMING_SKULL { // NPC_FLAMING_SKULL
@ -706,6 +732,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_SHARK_MAN { // NPC_SHARK_MAN
@ -728,6 +755,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_OIL_BLOB { // NPC_OIL_BLOB
@ -750,6 +778,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_SKULL_STOMPER { // NPC_SKULL_STOMPER
@ -772,6 +801,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_MOTHER_JELLYFISH { // NPC_MOTHER_JELLYFISH
@ -794,6 +824,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_SUB_SHARK { // NPC_SUB_SHARK
@ -816,6 +847,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_PARASITIC_WORM { // NPC_PARASITIC_WORM
@ -838,6 +870,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_FLYING_DUTCHMAN { // NPC_FLYING_DUTCHMAN
@ -860,6 +893,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_IRON_DOGFISH { // NPC_IRON_DOGFISH
@ -882,6 +916,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_PARASITIC_WORM_SEGMENT { // NPC_PARASITIC_WORM_SEGMENT
@ -904,6 +939,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
}, },
{ // NPC_BALL_BLOB { // NPC_BALL_BLOB
@ -926,6 +962,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
true,
}, },
{ // NPC_SHELL { // NPC_SHELL
@ -948,6 +985,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
true, true,
true, true,
false,
}, },
{ // NPC_PROJECTILE_JELLYFISH { // NPC_PROJECTILE_JELLYFISH
@ -970,9 +1008,10 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
true, true,
true, true,
false, false,
false,
}, },
{ // NPC_SMALL_JELLYFISH_1 { // NPC_MOTHER_JELLYFISH_BACKGROUND
ACTORS_MOTHERJELLYFISH_SBK, ACTORS_MOTHERJELLYFISH_SBK,
ANIM_CLAM_SIDESNAP, ANIM_CLAM_SIDESNAP,
NPC_SENSOR_NONE, NPC_SENSOR_NONE,
@ -992,6 +1031,30 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
false, false,
false, false,
false, false,
false,
},
{ // NPC_SMALL_JELLYFISH_BACKGROUND
0,//ACTORS_JELLYFISH1_SBK,
FRM_JELLYFISH1_SWIM1,
NPC_SENSOR_USER_CLOSE,
NPC_MOVEMENT_FIXED_PATH,
NPC_CLOSE_NONE,
NPC_TIMER_NONE,
false,
2,
128,
DETECT_ALL_COLLISION,
DAMAGE__SHOCK_ENEMY,
16,
FRM_JELLYFISH1_SWIM1,
NPC_SHOT_GENERIC,
0,
FRM_JELLYFISH1_SWIM1,
true,
false,
false,
false,
}, },
}; };

View file

@ -25,7 +25,7 @@
class CNpcSmallJellyfishEnemy : public CNpcEnemy class CNpcSmallJellyfishEnemy : public CNpcEnemy
{ {
public: public:
void render(); virtual void render();
virtual int getFrameCount() {return( FRM_JELLYFISH1_SWIM6 - FRM_JELLYFISH1_SWIM1 + 1 );} virtual int getFrameCount() {return( FRM_JELLYFISH1_SWIM6 - FRM_JELLYFISH1_SWIM1 + 1 );}
virtual u8 canCollideWithEnemy() {return( false );} virtual u8 canCollideWithEnemy() {return( false );}
protected: protected:

View file

@ -43,6 +43,10 @@
#include "projectl\projectl.h" #include "projectl\projectl.h"
#endif #endif
#ifndef __JELLFISH_JELLFISH_H__
#include "jellfish\jellfish.h"
#endif
#ifndef __GFX_FADER_H__ #ifndef __GFX_FADER_H__
#include "gfx\fader.h" #include "gfx\fader.h"
#endif #endif
@ -249,6 +253,7 @@ void CGameScene::think(int _frames)
if(!CConversation::isActive()&& !m_pauseMenu->isActive()) if(!CConversation::isActive()&& !m_pauseMenu->isActive())
{ {
DVECTOR camPos; DVECTOR camPos;
CJellyfishGenerator::think( _frames, &Level );
/* if (!s_levelFinished) */CThingManager::thinkAllThings(_frames); /* if (!s_levelFinished) */CThingManager::thinkAllThings(_frames);
/* if (!s_levelFinished) */camPos=m_player->getCameraPos(); /* if (!s_levelFinished) */camPos=m_player->getCameraPos();
/* if (!s_levelFinished) */CBubicleFactory::setMapOffset(&camPos); /* if (!s_levelFinished) */CBubicleFactory::setMapOffset(&camPos);

View file

@ -77,6 +77,10 @@
#include "projectl\projectl.h" #include "projectl\projectl.h"
#endif #endif
#ifndef __JELLFISH_JELLFISH_H__
#include "jellfish\jellfish.h"
#endif
#ifndef __GAME_GAMESLOT_H__ #ifndef __GAME_GAMESLOT_H__
#include "game\gameslot.h" #include "game\gameslot.h"
#endif #endif
@ -525,6 +529,10 @@ void CLevel::initThings(int _respawningLevel)
hazard->setLayerCollision( getCollisionLayer() ); hazard->setLayerCollision( getCollisionLayer() );
} }
} }
// initialise jellyfish generator
CJellyfishGenerator::init();
} }

View file

@ -329,6 +329,14 @@ SOURCE=..\..\..\source\enemy\nshrkman.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\source\enemy\nsjback.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\source\enemy\nsjback.h
# End Source File
# Begin Source File
SOURCE=..\..\..\source\enemy\nsjfish.cpp SOURCE=..\..\..\source\enemy\nsjfish.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -1868,6 +1876,18 @@ SOURCE=..\..\..\source\fx\fxjfish.cpp
SOURCE=..\..\..\source\fx\fxjfish.h SOURCE=..\..\..\source\fx\fxjfish.h
# End Source File # End Source File
# End Group # End Group
# Begin Group "jellfish"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\..\source\jellfish\jellfish.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\source\jellfish\jellfish.h
# End Source File
# End Group
# End Group # End Group
# Begin Group "makefiles" # Begin Group "makefiles"