diff --git a/makefile.gaz b/makefile.gaz index c3db0b44f..a712f29f1 100644 --- a/makefile.gaz +++ b/makefile.gaz @@ -100,7 +100,8 @@ platform_src := platform \ pbranch \ ppendulm \ pseesaw \ - pbounce + pbounce \ + pdual hazard_src := hazard \ hfalling \ diff --git a/source/platform/platdata.cpp b/source/platform/platdata.cpp index 2b09fefde..92fceb24b 100644 --- a/source/platform/platdata.cpp +++ b/source/platform/platdata.cpp @@ -246,6 +246,20 @@ CNpcPlatform::NPC_PLATFORM_DATA CNpcPlatform::m_data[NPC_PLATFORM_TYPE_MAX] = NPC_PLATFORM_TIMER_NONE, }, + { // NPC_DUAL_PLATFORM + ACTORS_CLAM_SBK, + ANIM_CLAM_SIDESNAP, + 3, + 128, + true, + DAMAGE__NONE, + 0, + 4, + NPC_PLATFORM_INFINITE_LIFE, + 4, + NPC_PLATFORM_TIMER_NONE, + }, + { // NPC_PLAYER_BUBBLE_PLATFORM ACTORS_CLAM_SBK, ANIM_CLAM_SIDESNAP, @@ -279,5 +293,6 @@ CNpcPlatform::NPC_PLATFORM_UNIT_TYPE CNpcPlatform::mapEditConvertTable[NPC_PLATF NPC_OILDRUM_PLATFORM, NPC_CRATE_PLATFORM, NPC_BOUNCE_PLATFORM, + NPC_DUAL_PLATFORM, NPC_PLAYER_BUBBLE_PLATFORM, }; diff --git a/source/platform/platform.cpp b/source/platform/platform.cpp index b1f706d83..1a98b7b42 100644 --- a/source/platform/platform.cpp +++ b/source/platform/platform.cpp @@ -99,6 +99,10 @@ #include "platform\pbounce.h" #endif +#ifndef __PLATFORM_PDUAL_H__ +#include "platform\pdual.h" +#endif + #ifndef __PLATFORM_PPLAYER_H__ #include "platform\pplayer.h" #endif @@ -205,6 +209,24 @@ CNpcPlatform *CNpcPlatform::Create(sThingPlatform *ThisPlatform) break; } + case NPC_DUAL_PLATFORM: + { + CNpcDualPlatform *dualPlatformMaster; + platform = dualPlatformMaster = new ("dual platform master") CNpcDualPlatform; + dualPlatformMaster->setMaster( true ); + CNpcDualPlatform *dualPlatformSlave; + dualPlatformSlave = new ("dual platform slave") CNpcDualPlatform; + dualPlatformSlave->setMaster( false ); + dualPlatformMaster->setOtherPlatform( dualPlatformSlave ); + dualPlatformSlave->setOtherPlatform( dualPlatformMaster ); + + dualPlatformSlave->setType( platformType ); + dualPlatformSlave->setGraphic( ThisPlatform ); + dualPlatformSlave->setTiltable( false ); + + break; + } + default: { ASSERT( 0 ); diff --git a/source/platform/platform.h b/source/platform/platform.h index 62462deff..3713d568e 100644 --- a/source/platform/platform.h +++ b/source/platform/platform.h @@ -68,6 +68,7 @@ public: NPC_OILDRUM_PLATFORM, NPC_CRATE_PLATFORM, NPC_BOUNCE_PLATFORM, + NPC_DUAL_PLATFORM, NPC_PLAYER_BUBBLE_PLATFORM, NPC_PLATFORM_TYPE_MAX, }; diff --git a/users/paul/spongebob project/spongebob project.dsp b/users/paul/spongebob project/spongebob project.dsp index d9a8bad63..600dc361b 100644 --- a/users/paul/spongebob project/spongebob project.dsp +++ b/users/paul/spongebob project/spongebob project.dsp @@ -1105,6 +1105,14 @@ SOURCE=..\..\..\source\platform\pcirculr.h # End Source File # Begin Source File +SOURCE=..\..\..\source\platform\pdual.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\platform\pdual.h +# End Source File +# Begin Source File + SOURCE=..\..\..\source\platform\pfalling.cpp # End Source File # Begin Source File