Files
2026-06-01 12:46:52 +02:00

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();