From 7ea3e301624f1c494ac54dc22a0a5b74700d9d2b Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 18 Jan 2001 21:18:53 +0000 Subject: [PATCH] --- source/enemy/nclam.cpp | 78 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 source/enemy/nclam.cpp diff --git a/source/enemy/nclam.cpp b/source/enemy/nclam.cpp new file mode 100644 index 000000000..0b47bcb2b --- /dev/null +++ b/source/enemy/nclam.cpp @@ -0,0 +1,78 @@ +/*========================================================================= + + nclam.cpp + + Author: CRB + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2000 Climax Development Ltd + +===========================================================================*/ + +#ifndef __ENEMY_NPC_H__ +#include "enemy\npc.h" +#endif + +#ifndef __GAME_GAME_H__ +#include "game\game.h" +#endif + +#ifndef __PLAYER_PLAYER_H__ +#include "player\player.h" +#endif + + +void CNpc::processCloseClamAttack( int _frames ) +{ + s32 velocity; + + if ( m_extendOut ) + { + m_movementTimer -= _frames; + + if ( m_movementTimer > 0 ) + { + // extend + + velocity = m_velocity * _frames; + + m_extension += velocity; + + Pos.vx += ( velocity * rcos( m_heading ) ) >> 12; + Pos.vy += ( velocity * rsin( m_heading ) ) >> 12; + } + else + { + m_extendOut = false; + } + } + else + { + // retract + + if ( m_extension > 0 ) + { + velocity = -_frames; + + if ( m_extension < _frames ) + { + velocity = m_extension - _frames; + } + + m_extension += velocity; + + + Pos.vx += ( velocity * rcos( m_heading ) ) >> 12; + Pos.vy += ( velocity * rsin( m_heading ) ) >> 12; + } + else + { + this->m_controlFunc = NPC_CONTROL_MOVEMENT; + this->m_timerFunc = NPC_TIMER_ATTACK_DONE; + this->m_timerTimer = GameState::getOneSecondInFrames(); + this->m_sensorFunc = NPC_SENSOR_NONE; + } + } +} \ No newline at end of file