From 34f18c82f66b3b4564aebb15c38a5efc3e980d95 Mon Sep 17 00:00:00 2001 From: Charles Date: Fri, 19 Jan 2001 20:18:54 +0000 Subject: [PATCH] --- source/enemy/ngpirate.cpp | 80 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 source/enemy/ngpirate.cpp diff --git a/source/enemy/ngpirate.cpp b/source/enemy/ngpirate.cpp new file mode 100644 index 000000000..dfcda608e --- /dev/null +++ b/source/enemy/ngpirate.cpp @@ -0,0 +1,80 @@ +/*========================================================================= + + ngpirate.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::processCloseGhostPirateAttack( int _frames ) +{ + s32 velocity; + + if ( m_extendDir == EXTEND_UP ) + { + 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_extendDir = EXTEND_DOWN; + + // fire too + } + } + else if ( m_extendDir == EXTEND_DOWN ) + { + // retract + + if ( m_extension > 0 ) + { + velocity = - ( m_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