This commit is contained in:
parent
16c139d989
commit
26aa7ecc90
9 changed files with 191 additions and 56 deletions
11
makefile.gaz
11
makefile.gaz
|
@ -68,7 +68,6 @@ enemy_src := npc \
|
||||||
nfdutch \
|
nfdutch \
|
||||||
nsshark \
|
nsshark \
|
||||||
ndogfish \
|
ndogfish \
|
||||||
nhazard \
|
|
||||||
nffolk \
|
nffolk \
|
||||||
nocto \
|
nocto \
|
||||||
nfskull \
|
nfskull \
|
||||||
|
@ -79,7 +78,8 @@ enemy_src := npc \
|
||||||
nbblob \
|
nbblob \
|
||||||
npuffa \
|
npuffa \
|
||||||
ngen \
|
ngen \
|
||||||
nsdart
|
nsdart \
|
||||||
|
ndustdev
|
||||||
|
|
||||||
platform_src := platform \
|
platform_src := platform \
|
||||||
platdata \
|
platdata \
|
||||||
|
@ -93,6 +93,13 @@ platform_src := platform \
|
||||||
pcart \
|
pcart \
|
||||||
pretract
|
pretract
|
||||||
|
|
||||||
|
hazard_src := hazard \
|
||||||
|
hfalling \
|
||||||
|
hpendulm \
|
||||||
|
hfirebal \
|
||||||
|
hsaw \
|
||||||
|
hbarrel
|
||||||
|
|
||||||
projectl_src := projectl
|
projectl_src := projectl
|
||||||
|
|
||||||
fileio_src := fileio \
|
fileio_src := fileio \
|
||||||
|
|
|
@ -142,8 +142,8 @@
|
||||||
#include "enemy\ndogfish.h"
|
#include "enemy\ndogfish.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __ENEMY_NHAZARD_H__
|
#ifndef __ENEMY_NDUSTDEV_H__
|
||||||
#include "enemy\nhazard.h"
|
#include "enemy\ndustdev.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __ENEMY_NSDART_H__
|
#ifndef __ENEMY_NSDART_H__
|
||||||
|
@ -507,45 +507,45 @@ CNpcEnemy *CNpcEnemy::Create(sThingActor *ThisActor)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CNpcEnemy::NPC_FALLING_ITEM:
|
/*case CNpcEnemy::NPC_FALLING_ITEM:
|
||||||
{
|
{
|
||||||
printf("NPC_FALLING_ITEM\n");
|
printf("NPC_FALLING_ITEM\n");
|
||||||
enemy = new ("falling item") CNpcFallingItemHazard;
|
enemy = new ("falling item") CNpcFallingItemHazard;
|
||||||
break;
|
break;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
case CNpcEnemy::NPC_FISH_HOOK:
|
/*case CNpcEnemy::NPC_FISH_HOOK:
|
||||||
{
|
{
|
||||||
printf("NPC_FISH_HOOK\n");
|
printf("NPC_FISH_HOOK\n");
|
||||||
enemy = new ("fish hook") CNpcFishHookHazard;
|
enemy = new ("fish hook") CNpcFishHookHazard;
|
||||||
break;
|
break;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
case CNpcEnemy::NPC_PENDULUM:
|
/*case CNpcEnemy::NPC_PENDULUM:
|
||||||
{
|
{
|
||||||
printf("NPC_PENDULUM\n");
|
printf("NPC_PENDULUM\n");
|
||||||
enemy = new ("pendulum") CNpcPendulumHazard;
|
enemy = new ("pendulum") CNpcPendulumHazard;
|
||||||
break;
|
break;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
case CNpcEnemy::NPC_FIREBALL:
|
/*case CNpcEnemy::NPC_FIREBALL:
|
||||||
{
|
{
|
||||||
printf("NPC_FIREBALL\n");
|
printf("NPC_FIREBALL\n");
|
||||||
enemy = new ("fireball") CNpcFireballHazard;
|
enemy = new ("fireball") CNpcFireballHazard;
|
||||||
break;
|
break;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
case CNpcEnemy::NPC_SAW_BLADE:
|
/*case CNpcEnemy::NPC_SAW_BLADE:
|
||||||
{
|
{
|
||||||
printf("NPC_SAW_BLADE\n");
|
printf("NPC_SAW_BLADE\n");
|
||||||
enemy = new ("saw blade") CNpcReturningHazard;
|
enemy = new ("saw blade") CNpcReturningHazard;
|
||||||
break;
|
break;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
case CNpcEnemy::NPC_DUST_DEVIL:
|
case CNpcEnemy::NPC_DUST_DEVIL:
|
||||||
{
|
{
|
||||||
printf("NPC_DUST_DEVIL\n");
|
printf("NPC_DUST_DEVIL\n");
|
||||||
enemy = new ("dust devil") CNpcReturningGroundHazard;
|
enemy = new ("dust devil") CNpcDustDevilEnemy;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -601,6 +601,7 @@ CNpcEnemy *CNpcEnemy::Create(sThingActor *ThisActor)
|
||||||
{
|
{
|
||||||
printf("UNKNOWN %i\n",enemyType);
|
printf("UNKNOWN %i\n",enemyType);
|
||||||
enemy = new ("npc enemy") CNpcEnemy;
|
enemy = new ("npc enemy") CNpcEnemy;
|
||||||
|
ASSERT(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,13 +113,13 @@ class CNpcEnemy : public CEnemyThing
|
||||||
public:
|
public:
|
||||||
enum NPC_UNIT_TYPE
|
enum NPC_UNIT_TYPE
|
||||||
{
|
{
|
||||||
NPC_FALLING_ITEM = 0,
|
//NPC_FALLING_ITEM = 0,
|
||||||
NPC_FISH_HOOK = 1,
|
//NPC_FISH_HOOK = 1,
|
||||||
NPC_DUST_DEVIL,
|
NPC_DUST_DEVIL = 0,
|
||||||
NPC_PENDULUM,
|
//NPC_PENDULUM,
|
||||||
NPC_FIREBALL,
|
//NPC_FIREBALL,
|
||||||
NPC_SAW_BLADE,
|
//NPC_SAW_BLADE,
|
||||||
NPC_SMALL_JELLYFISH_1,
|
NPC_SMALL_JELLYFISH_1 = 1,
|
||||||
NPC_SMALL_JELLYFISH_2,
|
NPC_SMALL_JELLYFISH_2,
|
||||||
NPC_ANEMONE_1,
|
NPC_ANEMONE_1,
|
||||||
NPC_ANEMONE_2,
|
NPC_ANEMONE_2,
|
||||||
|
|
|
@ -145,7 +145,7 @@ CNpcFriend::NPC_FRIEND_DATA CNpcFriend::m_data[NPC_FRIEND_UNIT_TYPE_MAX] =
|
||||||
|
|
||||||
CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
{
|
{
|
||||||
{ // NPC_FALLING_ITEM
|
/*{ // NPC_FALLING_ITEM
|
||||||
ACTORS_CLAM_SBK,
|
ACTORS_CLAM_SBK,
|
||||||
ANIM_CLAM_SIDESNAP,
|
ANIM_CLAM_SIDESNAP,
|
||||||
NPC_SENSOR_USER_CLOSE,
|
NPC_SENSOR_USER_CLOSE,
|
||||||
|
@ -185,7 +185,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
},
|
},*/
|
||||||
|
|
||||||
{ // NPC_DUST_DEVIL
|
{ // NPC_DUST_DEVIL
|
||||||
ACTORS_DUSTDEVIL_SBK,
|
ACTORS_DUSTDEVIL_SBK,
|
||||||
|
@ -208,7 +208,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
false,
|
false,
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // NPC_PENDULUM
|
/*{ // NPC_PENDULUM
|
||||||
ACTORS_CLAM_SBK,
|
ACTORS_CLAM_SBK,
|
||||||
ANIM_CLAM_SIDESNAP,
|
ANIM_CLAM_SIDESNAP,
|
||||||
NPC_SENSOR_NONE,
|
NPC_SENSOR_NONE,
|
||||||
|
@ -227,9 +227,9 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
},
|
},*/
|
||||||
|
|
||||||
{ // NPC_FIREBALL
|
/*{ // NPC_FIREBALL
|
||||||
ACTORS_CLAM_SBK,
|
ACTORS_CLAM_SBK,
|
||||||
ANIM_CLAM_SIDESNAP,
|
ANIM_CLAM_SIDESNAP,
|
||||||
NPC_SENSOR_NONE,
|
NPC_SENSOR_NONE,
|
||||||
|
@ -248,9 +248,9 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
},
|
},*/
|
||||||
|
|
||||||
{ // NPC_SAW_BLADE
|
/*{ // NPC_SAW_BLADE
|
||||||
ACTORS_CLAM_SBK,
|
ACTORS_CLAM_SBK,
|
||||||
ANIM_CLAM_SIDESNAP,
|
ANIM_CLAM_SIDESNAP,
|
||||||
NPC_SENSOR_NONE,
|
NPC_SENSOR_NONE,
|
||||||
|
@ -269,7 +269,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
},
|
},*/
|
||||||
|
|
||||||
{ // NPC_SMALL_JELLYFISH_1
|
{ // NPC_SMALL_JELLYFISH_1
|
||||||
0,//ACTORS_JELLYFISH1_SBK,
|
0,//ACTORS_JELLYFISH1_SBK,
|
||||||
|
@ -1059,11 +1059,11 @@ CNpcEnemy::NPC_UNIT_TYPE CNpcEnemy::mapEditConvertTable[NPC_UNIT_TYPE_MAX] =
|
||||||
NPC_SKULL_STOMPER,
|
NPC_SKULL_STOMPER,
|
||||||
NPC_DUST_DEVIL,
|
NPC_DUST_DEVIL,
|
||||||
NPC_SPIDER_CRAB_SPAWNER,
|
NPC_SPIDER_CRAB_SPAWNER,
|
||||||
NPC_FALLING_ITEM,
|
//NPC_FALLING_ITEM,
|
||||||
NPC_FISH_HOOK,
|
//NPC_FISH_HOOK,
|
||||||
NPC_PENDULUM,
|
//NPC_PENDULUM,
|
||||||
NPC_FIREBALL,
|
//NPC_FIREBALL,
|
||||||
NPC_SAW_BLADE,
|
//NPC_SAW_BLADE,
|
||||||
NPC_FISH_FOLK,
|
NPC_FISH_FOLK,
|
||||||
NPC_ANGLER_FISH,
|
NPC_ANGLER_FISH,
|
||||||
NPC_MINE,
|
NPC_MINE,
|
||||||
|
|
|
@ -36,6 +36,16 @@ void CNpcHazard::init()
|
||||||
|
|
||||||
Pos.vx = 300;
|
Pos.vx = 300;
|
||||||
Pos.vy = 300;
|
Pos.vy = 300;
|
||||||
|
|
||||||
|
m_base = Pos;
|
||||||
|
|
||||||
|
m_timer = 0;
|
||||||
|
m_timerActive = false;
|
||||||
|
m_isActive = true;
|
||||||
|
|
||||||
|
m_extension = 0;
|
||||||
|
m_extendDir = 0;
|
||||||
|
m_heading = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -57,11 +67,35 @@ void CNpcHazard::shutdown()
|
||||||
void CNpcHazard::think(int _frames)
|
void CNpcHazard::think(int _frames)
|
||||||
{
|
{
|
||||||
CHazardThing::think(_frames);
|
CHazardThing::think(_frames);
|
||||||
|
|
||||||
|
if ( m_isActive )
|
||||||
|
{
|
||||||
|
processMovement( _frames );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( m_timerActive )
|
||||||
|
{
|
||||||
|
processTimer( _frames );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void CNpcHazard::processMovement( int _frames )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void CNpcHazard::processTimer( int _frames )
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
void CNpcHazard::render()
|
void CNpcHazard::render()
|
||||||
|
{
|
||||||
|
if ( m_isActive )
|
||||||
{
|
{
|
||||||
CHazardThing::render();
|
CHazardThing::render();
|
||||||
|
|
||||||
|
@ -80,3 +114,4 @@ void CNpcHazard::render()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -34,15 +34,36 @@
|
||||||
class CNpcHazard : public CHazardThing
|
class CNpcHazard : public CHazardThing
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void init();
|
virtual void init();
|
||||||
void shutdown();
|
void shutdown();
|
||||||
void think(int _frames);
|
void think(int _frames);
|
||||||
void render();
|
void render();
|
||||||
|
void setLayerCollision( class CLayerCollision *_layer ) {m_layerCollision=_layer;}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
EXTEND_UP = true,
|
||||||
|
EXTEND_DOWN = false,
|
||||||
|
EXTEND_RIGHT = true,
|
||||||
|
EXTEND_LEFT = false,
|
||||||
|
EXTEND_CLOCKWISE = true,
|
||||||
|
EXTEND_ANTICLOCKWISE = false,
|
||||||
|
};
|
||||||
|
|
||||||
|
virtual void processMovement( int _frames );
|
||||||
|
virtual void processTimer( int _frames );
|
||||||
CNpcPath m_npcPath;
|
CNpcPath m_npcPath;
|
||||||
CActorGfx *m_actorGfx;
|
CActorGfx *m_actorGfx;
|
||||||
SpriteBank *m_spriteBank;
|
SpriteBank *m_spriteBank;
|
||||||
|
DVECTOR m_base;
|
||||||
|
s32 m_timer;
|
||||||
|
bool m_timerActive;
|
||||||
|
bool m_isActive;
|
||||||
|
class CLayerCollision *m_layerCollision;
|
||||||
|
s32 m_extension;
|
||||||
|
bool m_extendDir;
|
||||||
|
s32 m_heading;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -172,6 +172,19 @@ void CThingManager::thinkAllThings(int _frames)
|
||||||
thing1=thing1->m_nextThing;
|
thing1=thing1->m_nextThing;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Player -> Hazard collision
|
||||||
|
thing1=s_thingLists[CThing::TYPE_HAZARD];
|
||||||
|
thing2=s_thingLists[CThing::TYPE_PLAYER];
|
||||||
|
while(thing1&&thing2)
|
||||||
|
{
|
||||||
|
if(thing1->canCollide()&&
|
||||||
|
thing1->checkCollisionAgainst(thing2, _frames))
|
||||||
|
{
|
||||||
|
thing1->collidedWith(thing2);
|
||||||
|
}
|
||||||
|
thing1=thing1->m_nextThing;
|
||||||
|
}
|
||||||
|
|
||||||
// Player -> Enemy projectile collision
|
// Player -> Enemy projectile collision
|
||||||
thing1=s_thingLists[CThing::TYPE_ENEMYPROJECTILE];
|
thing1=s_thingLists[CThing::TYPE_ENEMYPROJECTILE];
|
||||||
thing2=s_thingLists[CThing::TYPE_PLAYER];
|
thing2=s_thingLists[CThing::TYPE_PLAYER];
|
||||||
|
|
|
@ -85,6 +85,7 @@ public:
|
||||||
TYPE_ENEMY,
|
TYPE_ENEMY,
|
||||||
TYPE_ENEMYPROJECTILE,
|
TYPE_ENEMYPROJECTILE,
|
||||||
TYPE_TRIGGER,
|
TYPE_TRIGGER,
|
||||||
|
TYPE_HAZARD,
|
||||||
|
|
||||||
MAX_TYPE,
|
MAX_TYPE,
|
||||||
}
|
}
|
||||||
|
@ -217,6 +218,11 @@ public:
|
||||||
virtual TYPE getThingType() {return TYPE_TRIGGER;}
|
virtual TYPE getThingType() {return TYPE_TRIGGER;}
|
||||||
virtual void setPositionAndSize(int _x,int _y,int _w,int _h); // Wonder if this might be better in CThing? (pkg)
|
virtual void setPositionAndSize(int _x,int _y,int _w,int _h); // Wonder if this might be better in CThing? (pkg)
|
||||||
};
|
};
|
||||||
|
class CHazardThing : public CThing
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual TYPE getThingType() {return TYPE_HAZARD;}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
|
|
|
@ -153,6 +153,14 @@ SOURCE=..\..\..\source\enemy\ndogfish.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\enemy\ndustdev.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\enemy\ndustdev.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\..\source\enemy\neyeball.cpp
|
SOURCE=..\..\..\source\enemy\neyeball.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -213,14 +221,6 @@ SOURCE=..\..\..\source\enemy\ngpirate.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\..\source\enemy\nhazard.cpp
|
|
||||||
# End Source File
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=..\..\..\source\enemy\nhazard.h
|
|
||||||
# End Source File
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=..\..\..\source\enemy\nhcrab.cpp
|
SOURCE=..\..\..\source\enemy\nhcrab.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -1452,6 +1452,58 @@ SOURCE=..\..\..\source\platform\pretract.cpp
|
||||||
SOURCE=..\..\..\source\platform\pretract.h
|
SOURCE=..\..\..\source\platform\pretract.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# End Group
|
# End Group
|
||||||
|
# Begin Group "hazard"
|
||||||
|
|
||||||
|
# PROP Default_Filter ""
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hazard.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hazard.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hbarrel.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hbarrel.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hfalling.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hfalling.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hfirebal.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hfirebal.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hpendulm.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hpendulm.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hsaw.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\hazard\hsaw.h
|
||||||
|
# End Source File
|
||||||
|
# End Group
|
||||||
# End Group
|
# End Group
|
||||||
# Begin Group "makefiles"
|
# Begin Group "makefiles"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue