From 46a6e47cde48c9741fe0d0d576dbba1a132f47cb Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 9 May 2001 15:45:36 +0000 Subject: [PATCH] --- source/enemy/nmjback.cpp | 76 ++++++++++++++++++++++++++++++++++++++++ source/enemy/nmjback.h | 28 +++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 source/enemy/nmjback.cpp create mode 100644 source/enemy/nmjback.h diff --git a/source/enemy/nmjback.cpp b/source/enemy/nmjback.cpp new file mode 100644 index 000000000..749fd615e --- /dev/null +++ b/source/enemy/nmjback.cpp @@ -0,0 +1,76 @@ +/*========================================================================= + + nmjback.cpp + + Author: CRB + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +#ifndef __ENEMY_NMJBACK_H__ +#include "enemy\nmjback.h" +#endif + +#ifndef __VID_HEADER_ +#include "system\vid.h" +#endif + +#ifndef __GAME_GAME_H__ +#include "game\game.h" +#endif + +#include "fx\fx.h" +#include "fx\fxjfish.h" + + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void CNpcMotherJellyfishBackground::postInit() +{ + CNpcEnemy::postInit(); + + CFXJellyFishLegs *T=(CFXJellyFishLegs*)CFX::Create(CFX::FX_TYPE_JELLYFISH_LEGS,this); + T->SetUp(128,4,8,16); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void CNpcMotherJellyfishBackground::render() +{ + SprFrame = NULL; + + if ( m_isActive ) + { + CEnemyThing::render(); + + // Render + DVECTOR renderPos; + DVECTOR offset = CLevel::getCameraPos(); + + renderPos.vx = Pos.vx - offset.vx; + renderPos.vy = Pos.vy - offset.vy; + + CRECT collisionRect = getCollisionArea(); + collisionRect.x1 -= Pos.vx; + collisionRect.x2 -= Pos.vx; + collisionRect.y1 -= Pos.vy; + collisionRect.y2 -= Pos.vy; + + if ( renderPos.vx + collisionRect.x2 >= 0 && renderPos.vx + collisionRect.x1 <= VidGetScrW() ) + { + if ( renderPos.vy + collisionRect.y2 >= 0 && renderPos.vy + collisionRect.y1 <= VidGetScrH() ) + { + SprFrame = m_actorGfx->Render(renderPos,m_animNo,( m_frame >> 8 ),false); + m_actorGfx->RotateScale( SprFrame, renderPos, m_drawRotation, 8192, 8192 ); + + sBBox boundingBox = m_actorGfx->GetBBox(); + setCollisionSize( ( boundingBox.XMax - boundingBox.XMin ), ( boundingBox.YMax - boundingBox.YMin ) ); + setCollisionCentreOffset( ( boundingBox.XMax + boundingBox.XMin ) >> 1, ( boundingBox.YMax + boundingBox.YMin ) >> 1 ); + } + } + } +} diff --git a/source/enemy/nmjback.h b/source/enemy/nmjback.h new file mode 100644 index 000000000..90b22e1e6 --- /dev/null +++ b/source/enemy/nmjback.h @@ -0,0 +1,28 @@ +/*========================================================================= + + nmjback.h + + Author: CRB + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +#ifndef __ENEMY_NMJBACK_H__ +#define __ENEMY_NMJBACK_H__ + +#ifndef __ENEMY_NPC_H__ +#include "enemy\npc.h" +#endif + +class CNpcMotherJellyfishBackground : public CNpcEnemy +{ +public: + virtual void postInit(); + void render(); +}; + +#endif \ No newline at end of file