53 lines
1.7 KiB
C++
53 lines
1.7 KiB
C++
|
|
#pragma once
|
|
|
|
#include <toolkit/khash.h>
|
|
//#include <vector>
|
|
|
|
#include "WorldLocation.h"
|
|
#include "K3DTypes.h"
|
|
|
|
struct WORLD_LOCATION_INFO
|
|
{
|
|
int nWLocID;
|
|
std::vector< WorldLocationBase* > vWLocInfo;
|
|
|
|
WorldLocationBase* Find( int nTimeID, int nWeatherID );
|
|
|
|
WorldLocationBase* GetFirst();
|
|
/// 2011.11.09 - prodongi
|
|
bool getPreloadingDistance(int mapX, int mapY, int& preloadingDistance);
|
|
public:
|
|
WORLD_LOCATION_INFO();
|
|
~WORLD_LOCATION_INFO();
|
|
};
|
|
|
|
class SWorldLocationDB
|
|
{
|
|
protected:
|
|
KHash< WORLD_LOCATION_INFO*, hashPr_mod_int> m_hashWorldLocation;
|
|
|
|
void Init();
|
|
void Destroy();
|
|
void Load();
|
|
public:
|
|
const WorldLocationBase* GetWLData( int nID, int nTimeID, int nWeatherID );
|
|
int GetWLTextID( int nID, bool bCheckApplyLocationName=true );
|
|
public:
|
|
void GetSkyColor( K3DColor& color_s, K3DColor& color_m, K3DColor& color_e, const WorldLocationBase* pData );
|
|
void GetFogColor( K3DColor& color, const WorldLocationBase* pData );
|
|
void GetHeightLinear( K3DVector& vHeight, K3DVector& vLinear, const WorldLocationBase* pData );
|
|
void GetLightColor( K3DColor& color_s, K3DColor& color_a, K3DColor& color_d, const WorldLocationBase* pData );
|
|
void GetCloudColor( K3DColor& color, const WorldLocationBase* pData );
|
|
void GetAurora( float & fAuroraTrans, float & fAuroraScale, float & fAuroraAngle, float & fAuroraHeight, const WorldLocationBase* pData );// Aurora. bintitle.
|
|
/// 2011.11.09 map pos로 월드의 preloading distance를 구한다 - prodongi
|
|
int getPreloadingDistance(int mapX, int mapY);
|
|
|
|
public:
|
|
SWorldLocationDB();
|
|
~SWorldLocationDB();
|
|
|
|
static SWorldLocationDB* m_pThis;
|
|
};
|
|
|
|
SWorldLocationDB & GetWorldLocationDB(); |