diff --git a/source/enemy/npc.cpp b/source/enemy/npc.cpp index 8506fb124..5a08799d1 100644 --- a/source/enemy/npc.cpp +++ b/source/enemy/npc.cpp @@ -177,6 +177,10 @@ #include "enemy\noilblob.h" #endif +#ifndef __ENEMY_NSHELL_H__ +#include "enemy\nshell.h" +#endif + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Enemy NPCs @@ -471,6 +475,12 @@ CNpcEnemy *CNpcEnemy::Create(sThingActor *ThisActor) break; } + case CNpcEnemy::NPC_SHELL: + { + enemy = new ("shell") CNpcShellEnemy; + break; + } + default: { printf("UNKNOWN %i\n",enemyType); diff --git a/source/enemy/npc.h b/source/enemy/npc.h index 139187370..adec27680 100644 --- a/source/enemy/npc.h +++ b/source/enemy/npc.h @@ -84,6 +84,7 @@ public: NPC_IRON_DOGFISH, NPC_PARASITIC_WORM_SEGMENT, NPC_BALL_BLOB, + NPC_SHELL, NPC_UNIT_TYPE_MAX, }; diff --git a/source/enemy/npcdata.cpp b/source/enemy/npcdata.cpp index ec4d7db09..055481c95 100644 --- a/source/enemy/npcdata.cpp +++ b/source/enemy/npcdata.cpp @@ -991,6 +991,27 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] = false, false, }, + + { // NPC_SHELL + ACTORS_SPIDERCRAB_SBK, + 0, + NPC_SENSOR_NONE, + NPC_MOVEMENT_STATIC, + NPC_CLOSE_NONE, + NPC_TIMER_NONE, + false, + 3, + 128, + DETECT_NO_COLLISION, + DAMAGE__BURN_ENEMY, + 16, + 0, + NPC_SHOT_GENERIC, + 0, + 0, + false, + false, + }, }; CNpcEnemy::NPC_UNIT_TYPE CNpcEnemy::mapEditConvertTable[NPC_UNIT_TYPE_MAX] = @@ -1024,6 +1045,7 @@ CNpcEnemy::NPC_UNIT_TYPE CNpcEnemy::mapEditConvertTable[NPC_UNIT_TYPE_MAX] = NPC_SKULL_STOMPER, NPC_DUST_DEVIL, NPC_SPIDER_CRAB_SPAWNER, + NPC_SHELL, //NPC_FALLING_ITEM, //NPC_FISH_HOOK, //NPC_PENDULUM, diff --git a/source/game/game.cpp b/source/game/game.cpp index 887479371..37d8834d3 100644 --- a/source/game/game.cpp +++ b/source/game/game.cpp @@ -82,7 +82,7 @@ FontBank *CGameScene::s_genericFont; MATRIX CGameScene::CamMtx; /*****************************************************************************/ -CGameScene::ACTOR_TYPE CGameScene::actorType[39] = +CGameScene::ACTOR_TYPE CGameScene::actorType[40] = { ACTOR_PLAYER, //SpongeBob=0 ACTOR_FRIEND_NPC, //BarnacleBoy=1 @@ -123,6 +123,7 @@ CGameScene::ACTOR_TYPE CGameScene::actorType[39] = ACTOR_ENEMY_NPC, //Stomper=36 ACTOR_ENEMY_NPC, //DustDevil=37 ACTOR_ENEMY_NPC, //SiderCrabSpawner=38 + ACTOR_ENEMY_NPC, //Shell=39 }; /*****************************************************************************/ diff --git a/tools/Data/bin/MkLevel.ini b/tools/Data/bin/MkLevel.ini index 1e91579bd..564cabd78 100644 --- a/tools/Data/bin/MkLevel.ini +++ b/tools/Data/bin/MkLevel.ini @@ -50,6 +50,7 @@ Squiddart=35 Stomper=36 DustDevil=37 SpiderCrabSpawner=38 +Shell=39 ################################################ diff --git a/tools/MapEdit/actor.ini b/tools/MapEdit/actor.ini index 56752fe15..d64bdba07 100644 --- a/tools/MapEdit/actor.ini +++ b/tools/MapEdit/actor.ini @@ -362,3 +362,12 @@ Collision=1 Health=2 # 1st shot stuns, if shot again is killed AttackStrength=20 + +[Shell] +Gfx=..\..\graphics\characters\spidercrab\render\psx\SpiderCrab_Idle0001.bmp +WayPoints=16 +Speed=3 +TurnRate=0 +Collision=1 +Health=2 +AttackStrength=20 diff --git a/users/paul/spongebob project/spongebob project.dsp b/users/paul/spongebob project/spongebob project.dsp index 0b67caa70..7d1261e08 100644 --- a/users/paul/spongebob project/spongebob project.dsp +++ b/users/paul/spongebob project/spongebob project.dsp @@ -301,6 +301,10 @@ SOURCE=..\..\..\source\enemy\nsdart.h # End Source File # Begin Source File +SOURCE=..\..\..\source\enemy\nshell.h +# End Source File +# Begin Source File + SOURCE=..\..\..\source\enemy\nshrkman.cpp # End Source File # Begin Source File