diff --git a/source/enemy/npuffa.cpp b/source/enemy/npuffa.cpp new file mode 100644 index 000000000..be1335cb7 --- /dev/null +++ b/source/enemy/npuffa.cpp @@ -0,0 +1,103 @@ +/*========================================================================= + + npuffa.cpp + + Author: CRB + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +#ifndef __ENEMY_NPC_H__ +#include "enemy\npc.h" +#endif + +#ifndef __GAME_GAME_H__ +#include "game\game.h" +#endif + +#ifndef __ANIM_PUFFAFISH_HEADER__ +#include +#endif + + +void CNpcEnemy::processClosePuffaFishInflate( int _frames ) +{ + if ( playerXDistSqr + playerYDistSqr > 15000 ) + { + if ( !m_animPlaying ) + { + switch( m_state ) + { + case PUFFA_FISH_NO_INFLATE: + { + m_animNo = ANIM_PUFFAFISH_SWIM; + + m_controlFunc = NPC_CONTROL_MOVEMENT; + m_timerFunc = NPC_TIMER_ATTACK_DONE; + m_timerTimer = GameState::getOneSecondInFrames(); + m_sensorFunc = NPC_SENSOR_NONE; + + break; + } + + case PUFFA_FISH_TURN: + { + // reverse turn at some point + + m_state = PUFFA_FISH_NO_INFLATE; + m_animNo = ANIM_PUFFAFISH_TURN; + + break; + } + + case PUFFA_FISH_INFLATE: + { + // reverse puff up + + m_state = PUFFA_FISH_TURN; + m_animNo = ANIM_PUFFAFISH_PUFFUP; + + break; + } + } + + m_frame = 0; + m_animPlaying = true; + } + } + else if ( !m_animPlaying ) + { + switch( m_state ) + { + case PUFFA_FISH_NO_INFLATE: + { + m_state = PUFFA_FISH_TURN; + m_animNo = ANIM_PUFFAFISH_TURN; + + break; + } + + case PUFFA_FISH_TURN: + { + m_state = PUFFA_FISH_INFLATE; + m_animNo = ANIM_PUFFAFISH_PUFFUP; + + break; + } + + case PUFFA_FISH_INFLATE: + { + m_animNo = ANIM_PUFFAFISH_PUFFUPIDLE; + + break; + } + } + + m_frame = 0; + m_animPlaying = true; + } +} \ No newline at end of file