From 2bab792e4a0972a4dcb807a426a4f8467373271c Mon Sep 17 00:00:00 2001 From: Charles Date: Tue, 17 Jul 2001 20:15:28 +0000 Subject: [PATCH] --- makefile.gaz | 3 +- makefile.gfx | 2 +- source/hazard/hazard.cpp | 11 ++++++ source/hazard/hazard.h | 1 + source/hazard/hcheck.cpp | 39 ++++++++++++++++++- source/hazard/hcheck.h | 1 + tools/Data/bin/MkLevel.ini | 2 +- .../spongebob project/spongebob project.dsp | 8 ++++ 8 files changed, 63 insertions(+), 4 deletions(-) diff --git a/makefile.gaz b/makefile.gaz index eb8976933..8348bbeeb 100644 --- a/makefile.gaz +++ b/makefile.gaz @@ -165,7 +165,8 @@ hazard_src := hazard \ hcswitch \ hbrock \ hlog \ - hsrdfish + hsrdfish \ + hcheck fx_src := fx \ fxbaseanim \ diff --git a/makefile.gfx b/makefile.gfx index e0bbae269..8fcac7ddb 100644 --- a/makefile.gfx +++ b/makefile.gfx @@ -197,7 +197,7 @@ PICKUP_GFX_IN := $(foreach FILE,$(PICKUP_GFX),$(PICKUP_GFX_DIR)/$(FILE).bmp) INGAMEFX_GFX_DIR := $(GRAF_DIR)/ingamefx INGAMEFX_GFX_TRANS := +watermeter +waterhilight +netblob \ - +spike +sharkmine +snakebile + +spike +sharkmine +snakebile +checkpoint INGAMEFX_GFX_TRANS_NONROT_NONCLIP := +bubble_1 +bubble_2 +bubble_3 \ +water +aim_arrow diff --git a/source/hazard/hazard.cpp b/source/hazard/hazard.cpp index 05f2136b0..d9b81bfca 100644 --- a/source/hazard/hazard.cpp +++ b/source/hazard/hazard.cpp @@ -131,6 +131,10 @@ #include "hazard\hlog.h" #endif +#ifndef __HAZARD_HCHECK_H__ +#include "hazard\hcheck.h" +#endif + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -161,6 +165,7 @@ CNpcHazard::NPC_HAZARD_UNIT_TYPE CNpcHazard::mapEditConvertTable[NPC_HAZARD_TYPE NPC_BOUNCING_ROCK_HAZARD, NPC_SWORDFISH_HAZARD, NPC_LOG_HAZARD, + NPC_CHECKPOINT_HAZARD, }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -323,6 +328,12 @@ CNpcHazard *hazard; break; } + case NPC_CHECKPOINT_HAZARD: + { + hazard = new ("checkpoint hazard") CNpcCheckpointHazard; + break; + } + default: { hazard = NULL; diff --git a/source/hazard/hazard.h b/source/hazard/hazard.h index eecfbc92b..c8cde9e8c 100644 --- a/source/hazard/hazard.h +++ b/source/hazard/hazard.h @@ -64,6 +64,7 @@ public: NPC_BOUNCING_ROCK_HAZARD, NPC_SWORDFISH_HAZARD, NPC_LOG_HAZARD, + NPC_CHECKPOINT_HAZARD, NPC_HAZARD_TYPE_MAX, }; diff --git a/source/hazard/hcheck.cpp b/source/hazard/hcheck.cpp index adce36199..80a5a15f9 100644 --- a/source/hazard/hcheck.cpp +++ b/source/hazard/hcheck.cpp @@ -19,6 +19,14 @@ #include "player\player.h" #endif +#ifndef __SPR_SPRITES_H__ +#include +#endif + +#ifndef __GAME_GAME_H__ +#include "game\game.h" +#endif + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -27,13 +35,42 @@ void CNpcCheckpointHazard::init() CNpcHazard::init(); m_triggered = false; + m_spriteFrame = FRM__CHECKPOINT; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CNpcCheckpointHazard::render() { - CNpcHazard::render(); + sFrameHdr *frameHdr; + + if ( m_isActive ) + { + CHazardThing::render(); + + if (canRender()) + { + DVECTOR &renderPos=getRenderPos(); + + m_modelGfx->Render(renderPos); + + if ( m_triggered ) + { + int x,y; + + DVECTOR offset = CLevel::getCameraPos(); + + int spriteWidth = CGameScene::getSpriteBank()->getFrameWidth(m_spriteFrame); + int spriteHeight = CGameScene::getSpriteBank()->getFrameHeight(m_spriteFrame); + + x = Pos.vx - offset.vx - ( spriteWidth >> 1 ); + y = Pos.vy - 100 - offset.vy - ( spriteHeight >> 1 ); + + frameHdr = CGameScene::getSpriteBank()->getFrameHeader( m_spriteFrame ); + CGameScene::getSpriteBank()->printFT4( frameHdr, x, y, 0, 0, 10 ); + } + } + } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/source/hazard/hcheck.h b/source/hazard/hcheck.h index e2deb22c0..094465872 100644 --- a/source/hazard/hcheck.h +++ b/source/hazard/hcheck.h @@ -27,6 +27,7 @@ protected: void collidedWith(CThing *_thisThing); u8 m_triggered; + int m_spriteFrame; }; #endif \ No newline at end of file diff --git a/tools/Data/bin/MkLevel.ini b/tools/Data/bin/MkLevel.ini index 3b86c684b..32778e420 100644 --- a/tools/Data/bin/MkLevel.ini +++ b/tools/Data/bin/MkLevel.ini @@ -208,7 +208,7 @@ RisingWeight=16 RisingWeightWheel=17 PressureSwitch=18 SingleSpike=19 -CheckPoint=20 +CheckPoint=25 WaterBucket=20 ConveyorSwitch=21 ExitMarker=20 diff --git a/users/paul/spongebob project/spongebob project.dsp b/users/paul/spongebob project/spongebob project.dsp index a31be250a..462c0f6f2 100644 --- a/users/paul/spongebob project/spongebob project.dsp +++ b/users/paul/spongebob project/spongebob project.dsp @@ -985,6 +985,14 @@ SOURCE=..\..\..\source\hazard\hbwheel.h # End Source File # Begin Source File +SOURCE=..\..\..\source\hazard\hcheck.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\hazard\hcheck.h +# End Source File +# Begin Source File + SOURCE=..\..\..\source\hazard\hcsaw.cpp # End Source File # Begin Source File