diff --git a/source/enemy/nshell.cpp b/source/enemy/nshell.cpp new file mode 100644 index 000000000..bd5b9b4ab --- /dev/null +++ b/source/enemy/nshell.cpp @@ -0,0 +1,74 @@ +/*========================================================================= + + nshell.h + + Author: CRB + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +#ifndef __ENEMY_NSHELL_H__ +#include "enemy\nshell.h" +#endif + +#ifndef __SPR_SPRITES_H__ +#include +#endif + + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void CNpcShellEnemy::render() +{ + SprFrame = NULL; + + if ( m_isActive ) + { + CEnemyThing::render(); + + if (canRender()) + { + DVECTOR &renderPos=getRenderPos(); + + SprFrame = m_spriteBank->printRotatedScaledSprite( FRM_SHELL_STATIC0000,renderPos.vx,renderPos.vy,4096,4096,m_drawRotation,10); + + // get xmax, xmin, ymax, ymin + + s32 XMax; + s32 XMin; + + s32 YMax; + s32 YMin; + + XMin=SprFrame->x0; + if (XMin>SprFrame->x1) XMin=SprFrame->x1; + if (XMin>SprFrame->x2) XMin=SprFrame->x2; + if (XMin>SprFrame->x3) XMin=SprFrame->x3; + XMax=SprFrame->x0; + if (XMaxx1) XMax=SprFrame->x1; + if (XMaxx2) XMax=SprFrame->x2; + if (XMaxx3) XMax=SprFrame->x3; + YMin=SprFrame->y0; + if (YMin>SprFrame->y1) YMin=SprFrame->y1; + if (YMin>SprFrame->y2) YMin=SprFrame->y2; + if (YMin>SprFrame->y3) YMin=SprFrame->y3; + YMax=SprFrame->y0; + if (YMaxy1) YMax=SprFrame->y1; + if (YMaxy2) YMax=SprFrame->y2; + if (YMaxy3) YMax=SprFrame->y3; + + XMax -= renderPos.vx; + XMin -= renderPos.vx; + YMax -= renderPos.vy; + YMin -= renderPos.vy; + + setCollisionSize( ( XMax - XMin ), ( YMax - YMin ) ); + setCollisionCentreOffset( ( XMax + XMin ) >> 1, ( YMax + YMin ) >> 1 ); + } + } +} +