58 lines
2 KiB
C++
58 lines
2 KiB
C++
|
|
#include "Stdafx.h"
|
|
#include "GrowingAreaStateCompleted.h"
|
|
#include "GrowingAreaStateHarvesting.h"
|
|
#include "GrowingArea.h"
|
|
#include "DNDBConnection.h"
|
|
#include "DNFarmGameRoom.h"
|
|
#include "DNUserSession.h"
|
|
|
|
|
|
void CFarmAreaStateCompleted::BeginProcess()
|
|
{
|
|
// Update
|
|
if( m_pArea->GetFarmGameRoom() )
|
|
{
|
|
CDNFarmGameRoom* pFarmGameRoom = m_pArea->GetFarmGameRoom();
|
|
CDNDBConnection* pDBCon = m_pArea->GetFarmGameRoom()->GetDBConnection();
|
|
std::vector<int> vUpdateAreaIndex;
|
|
std::vector<int> vUpdateElapsedTimeSec;
|
|
|
|
vUpdateAreaIndex.push_back( m_pArea->GetIndex() );
|
|
vUpdateElapsedTimeSec.push_back( m_pArea->GetPlantSeed()->GetRequiredTimeSec() );
|
|
|
|
if( m_pArea->bIsPrivateArea() == true )
|
|
pDBCon->QueryModFieldForCharacterElapsedTime( pFarmGameRoom->GetDBThreadID(), pFarmGameRoom->GetWorldSetID(), 0, m_pArea->GetOwnerCharacterDBID(), vUpdateAreaIndex, vUpdateElapsedTimeSec );
|
|
else
|
|
pDBCon->QueryModFieldElapsedTime( pFarmGameRoom->GetDBThreadID(), pFarmGameRoom->GetWorldSetID(), 0, pFarmGameRoom->GetFarmIndex(), vUpdateAreaIndex, vUpdateElapsedTimeSec );
|
|
}
|
|
|
|
m_pArea->GetPlantSeed()->ResetResultItem();
|
|
SendBeginAreaState();
|
|
|
|
#if defined( PRE_ADD_FARM_DOWNSCALE )
|
|
// 강제 수확 상태이거나 개인구역이 아니고 농장 폐쇄 상태라면 자동수확 한다.
|
|
if( m_pArea->GetPlantSeed()->bIsForceComplete() || (m_pArea->GetFarmGameRoom() && m_pArea->GetFarmGameRoom()->GetAttr()&Farm::Attr::DownScale && m_pArea->bIsPrivateArea() == false) )
|
|
{
|
|
m_pArea->QueryCompleteHarvest( NULL, NULL, true );
|
|
}
|
|
#endif // #if defined( PRE_ADD_FARM_DOWNSCALE )
|
|
}
|
|
|
|
void CFarmAreaStateCompleted::Process( float fDelta )
|
|
{
|
|
|
|
}
|
|
|
|
void CFarmAreaStateCompleted::EndProcess()
|
|
{
|
|
if( m_pArea->GetState() == Farm::AreaState::HARVESTING )
|
|
{
|
|
CFarmAreaStateHarvesting* pState = static_cast<CFarmAreaStateHarvesting*>(m_pArea->GetStatePtr());
|
|
|
|
CDNUserSession* pSession = m_pArea->GetUserSession( pState->GetHarvestingCharacterDBID() );
|
|
if( pSession )
|
|
pSession->SendFarmHarvest( ERROR_NONE, Farm::ActionType::START, m_pArea->GetIndex() );
|
|
}
|
|
}
|
|
|