DragonNest/Server/DNGameServer/DnWorldSector.h
2024-12-19 09:48:26 +08:00

67 lines
No EOL
2.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include "DnWorld.h"
#include "EtWorldSector.h"
#include "EtQuadtree.h"
#ifdef PRE_FIX_GAMESERVER_OPTIMIZE
#include "FrameSync.h"
#endif
class CEtWorldProp;
class CDnWorldProp;
class CDnWorldSector : public CEtWorldSector, public TBoostMemoryPool< CDnWorldSector >
{
public:
CDnWorldSector();
virtual ~CDnWorldSector();
protected:
#ifdef PRE_FIX_GAMESERVER_OPTIMIZE
std::vector<CDnWorldProp *> m_pVecProcessProp[2];
#else
std::vector<CDnWorldProp *> m_pVecProcessProp;
#endif
std::map<DWORD,std::vector<CEtWorldEventArea*>> m_mPrevEventArea;
std::map<DWORD,std::vector<CEtWorldEventArea*>> m_mCurEventArea;
#ifdef PRE_FIX_GAMESERVER_OPTIMIZE
static int s_nProcessAllowCount[2];
int m_nProcessAllowed[2];
float *m_fProcessAllowedDelta[2];
#else
int m_nProcessAllowed;
#endif
protected:
virtual void InitializeTerrain( DWORD *pAlphaTable, std::vector<int> &nVecBlockType, std::vector< std::vector<std::string> > &szVecLayerTexture, std::vector< std::vector<float> > &fVecLayerTextureDistance, std::vector< std::vector<float> > &fVecLayerTextureRotation, char *szGrassTexture, char *pGrassTable, float *fGrassWidth, float *fGrassHeightMin, float *fGrassHeightMax, float fShakeMin, float fShakeMax );
virtual int GetPropClassID( const char *szFileName );
void ProcessEventAreaTriggerEventCheck( LOCAL_TIME LocalTime, float fDelta );
public:
virtual void Process( LOCAL_TIME LocalTime, float fDelta );
virtual void Free();
virtual CEtWorldProp *AllocProp( int nClass );
virtual CEtWorldSound *AllocSound();
virtual CEtWorldWater *AllocWater();
virtual CEtWorldDecal *AllocDecal();
virtual bool LoadSound( const char *szSectorPath );
virtual bool LoadProp( const char *szSectorPath, int nBlockIndex = -1, bool bThreadLoad = true );
virtual bool LoadWater( const char *szSectorPath );
virtual bool LoadDecal( const char *szSectorPath );
void InsertProcessProp( CDnWorldProp *pProp );
void RemoveProcessProp( CDnWorldProp *pProp );
int GetPropTableID( const char *szFileName );
virtual CEtTrigger *AllocTrigger();
// <20><>ġ<EFBFBD><C4A1> <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Update <20><> ȣ<><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ش<EFBFBD>.
CEtOctree<CEtWorldProp*>* GetOctree( void ) { return m_pPropOctree; };
};