From 39e379747d186a22847241d4206710c98432c7cd Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 6 Mar 2018 13:33:10 +1100 Subject: [PATCH] auto hide entrance circle --- .../sapphire_zone/Zone/InstanceContent.cpp | 15 +++++++++++++-- src/servers/sapphire_zone/Zone/InstanceContent.h | 4 ++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Zone/InstanceContent.cpp b/src/servers/sapphire_zone/Zone/InstanceContent.cpp index bbdc2f56..39f02174 100644 --- a/src/servers/sapphire_zone/Zone/InstanceContent.cpp +++ b/src/servers/sapphire_zone/Zone/InstanceContent.cpp @@ -36,7 +36,8 @@ Core::InstanceContent::InstanceContent( boost::shared_ptr< Core::Data::InstanceC m_instanceContentInfo( pInstanceContent ), m_instanceContentId( instanceContentId ), m_state( Created ), - m_pEntranceEObj( nullptr ) + m_pEntranceEObj( nullptr ), + m_instanceCommenceTime( 0 ) { } @@ -107,10 +108,19 @@ void Core::InstanceContent::onUpdate( uint32_t currTime ) { if( !playerIt.second->isLoadingComplete() || !playerIt.second->isDirectorInitialized() || - !playerIt.second->isOnEnterEventDone() ) + !playerIt.second->isOnEnterEventDone() || + playerIt.second->hasStateFlag( PlayerStateFlag::WatchingCutscene ) ) return; } + if( m_instanceCommenceTime == 0 ) + { + m_instanceCommenceTime = Util::getTimeMs() + INSTANCE_COMMENCE_DELAY; + return; + } + else if( Util::getTimeMs() < m_instanceCommenceTime ) + return; + for( const auto& playerIt : m_playerMap ) { auto pPlayer = playerIt.second; @@ -119,6 +129,7 @@ void Core::InstanceContent::onUpdate( uint32_t currTime ) getDirectorId(), 0x40000001, m_instanceContentInfo->timeLimitmin * 60u ) ); } + m_pEntranceEObj->setState( 7 ); m_state = DutyInProgress; m_instanceExpireTime = Util::getTimeSeconds() + ( m_instanceContentInfo->timeLimitmin * 60u ); break; diff --git a/src/servers/sapphire_zone/Zone/InstanceContent.h b/src/servers/sapphire_zone/Zone/InstanceContent.h index d487f86f..8f210f9b 100644 --- a/src/servers/sapphire_zone/Zone/InstanceContent.h +++ b/src/servers/sapphire_zone/Zone/InstanceContent.h @@ -22,6 +22,9 @@ public: DutyFinished }; + /*! number of milliseconds after all players are ready for the instance to commence (spawn circle removed) */ + const uint32_t INSTANCE_COMMENCE_DELAY = 1250; + InstanceContent( boost::shared_ptr< Core::Data::InstanceContent > pInstanceContent, uint32_t guId, const std::string& internalName, @@ -59,6 +62,7 @@ private: InstanceContentState m_state; int64_t m_instanceExpireTime; + int64_t m_instanceCommenceTime; Entity::EventObjectPtr m_pEntranceEObj;