From 18d9b799057a64afbfbcc00733f21c3ee410e378 Mon Sep 17 00:00:00 2001 From: Charles Date: Sat, 28 Jul 2001 16:07:56 +0000 Subject: [PATCH] --- source/friend/fgary.cpp | 40 ++++++++++++++++++++++++++++++++-------- source/friend/fgary.h | 3 +++ 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/source/friend/fgary.cpp b/source/friend/fgary.cpp index 493202587..fdbd0dbfe 100644 --- a/source/friend/fgary.cpp +++ b/source/friend/fgary.cpp @@ -36,6 +36,8 @@ #endif +u8 CNpcGaryFriend::m_garySpeech; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CNpcGaryFriend::postInit() @@ -43,15 +45,19 @@ void CNpcGaryFriend::postInit() CNpcFriend::postInit(); m_started = false; + m_startMoving = false; m_fallDeath = false; m_drawRotation = 0; m_obstructed = false; + m_garySB = false; m_garyMeow = false; m_soundId = (int) NOT_PLAYING; setCollisionSize( 40, 27 ); setCollisionCentreOffset( 0, -14 ); + + m_garySpeech = false; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -81,11 +87,15 @@ void CNpcGaryFriend::think( int _frames ) } } - if ( m_started ) + if ( m_garySB && !m_startMoving ) { - if ( !m_garyMeow ) + if ( !CSoundMediator::isSpeechPlaying() ) { - if ( !CSoundMediator::isSpeechPlaying() ) + if ( m_garyMeow ) + { + m_startMoving = true; + } + else { m_garyMeow = true; CSoundMediator::playSpeech( SPEECH_029 ); @@ -113,7 +123,7 @@ void CNpcGaryFriend::think( int _frames ) } else { - if ( m_started ) + if ( m_startMoving ) { m_animNo = ANIM_GARY_SLITHER; } @@ -232,7 +242,7 @@ void CNpcGaryFriend::think( int _frames ) Pos.vy += groundHeight; - if ( m_started ) + if ( m_startMoving ) { if ( canRender() && m_soundId == NOT_PLAYING ) { @@ -264,7 +274,7 @@ void CNpcGaryFriend::think( int _frames ) } else { - if ( m_started ) + if ( m_startMoving ) { if ( m_soundId == NOT_PLAYING ) { @@ -378,11 +388,23 @@ void CNpcGaryFriend::start() { if ( !m_started ) { - m_started = true; m_animNo = ANIM_GARY_SLITHER; m_animPlaying = true; m_frame = 0; - CSoundMediator::playSpeech( SPEECH_028 ); + m_started = true; + + if ( !m_garySpeech ) + { + m_garySpeech = true; + m_garyMeow = false; + m_garySB = true; + CSoundMediator::playSpeech( SPEECH_028 ); + } + else + { + m_startMoving = true; + m_garySB = false; + } } } @@ -393,9 +415,11 @@ void CNpcGaryFriend::stop() if ( m_started ) { m_started = false; + m_startMoving = false; m_animNo = m_data[m_type].idleAnim; m_animPlaying = true; m_frame = 0; m_garyMeow = false; + m_garySB = false; } } diff --git a/source/friend/fgary.h b/source/friend/fgary.h index d258ec603..dd7ecc9fb 100644 --- a/source/friend/fgary.h +++ b/source/friend/fgary.h @@ -37,12 +37,15 @@ public: protected: DVECTOR m_triggerPos; u8 m_started; + u8 m_startMoving; u8 m_fallDeath; s16 m_speed; s16 m_drawRotation; int m_soundId; u8 m_obstructed; + u8 m_garySB; u8 m_garyMeow; + static u8 m_garySpeech; }; #endif \ No newline at end of file