forked from metin2/client
Solution refactoring and restructuring, removed Boost dependency, removed unused tools
This commit is contained in:
222
src/GameLib/MapType.h
Normal file
222
src/GameLib/MapType.h
Normal file
@ -0,0 +1,222 @@
|
||||
#ifndef __MapType_Header__
|
||||
#define __MapType_Header__
|
||||
|
||||
class CProperty;
|
||||
|
||||
#include "../eterLib/SkyBox.h"
|
||||
#include "../mileslib/SoundManager.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Property
|
||||
namespace prt
|
||||
{
|
||||
enum EPropertyType
|
||||
{
|
||||
PROPERTY_TYPE_NONE,
|
||||
PROPERTY_TYPE_TREE,
|
||||
PROPERTY_TYPE_BUILDING,
|
||||
PROPERTY_TYPE_EFFECT,
|
||||
PROPERTY_TYPE_AMBIENCE,
|
||||
PROPERTY_TYPE_DUNGEON_BLOCK,
|
||||
PROPERTY_TYPE_MAX_NUM,
|
||||
};
|
||||
|
||||
const char c_szPropertyTypeName[PROPERTY_TYPE_MAX_NUM][32] =
|
||||
{
|
||||
"None",
|
||||
"Tree",
|
||||
"Building",
|
||||
"Effect",
|
||||
"Ambience",
|
||||
"DungeonBlock"
|
||||
};
|
||||
|
||||
const char c_szPropertyExtension[PROPERTY_TYPE_MAX_NUM][16] =
|
||||
{
|
||||
".pr",
|
||||
".prt",
|
||||
".prb",
|
||||
".pre",
|
||||
".pra",
|
||||
".prd"
|
||||
};
|
||||
|
||||
DWORD GetPropertyType(const char * c_szTypeName);
|
||||
const char * GetPropertyExtension(DWORD dwType);
|
||||
|
||||
struct TPropertyTree
|
||||
{
|
||||
std::string strName;
|
||||
std::string strFileName;
|
||||
|
||||
float fSize;
|
||||
float fVariance;
|
||||
};
|
||||
|
||||
struct TPropertyBuilding
|
||||
{
|
||||
std::string strName;
|
||||
std::string strFileName;
|
||||
std::string strAttributeDataFileName;
|
||||
BOOL isShadowFlag;
|
||||
};
|
||||
|
||||
struct TPropertyEffect
|
||||
{
|
||||
std::string strName;
|
||||
std::string strFileName;
|
||||
};
|
||||
|
||||
enum EAmbiencePlayType
|
||||
{
|
||||
AMBIENCE_PLAY_TYPE_ONCE,
|
||||
AMBIENCE_PLAY_TYPE_STEP,
|
||||
AMBIENCE_PLAY_TYPE_LOOP,
|
||||
AMBIENCE_PLAY_TYPE_MAX_NUM,
|
||||
};
|
||||
|
||||
const char c_szPlayTypeName[AMBIENCE_PLAY_TYPE_MAX_NUM][8] =
|
||||
{
|
||||
"ONCE",
|
||||
"STEP",
|
||||
"LOOP",
|
||||
};
|
||||
|
||||
struct TPropertyAmbience
|
||||
{
|
||||
std::string strName;
|
||||
std::string strPlayType;
|
||||
|
||||
float fPlayInterval;
|
||||
float fPlayIntervalVariation;
|
||||
float fMaxVolumeAreaPercentage;
|
||||
std::vector<std::string> AmbienceSoundVector;
|
||||
};
|
||||
|
||||
struct TPropertyDungeonBlock
|
||||
{
|
||||
std::string strName;
|
||||
std::string strFileName;
|
||||
std::string strAttributeDataFileName;
|
||||
};
|
||||
|
||||
bool PropertyTreeDataToString(TPropertyTree * pData, CProperty * pProperty);
|
||||
bool PropertyTreeStringToData(CProperty * pProperty, TPropertyTree * pData);
|
||||
bool PropertyBuildingDataToString(TPropertyBuilding * pData, CProperty * pProperty);
|
||||
bool PropertyBuildingStringToData(CProperty * pProperty, TPropertyBuilding * pData);
|
||||
bool PropertyEffectDataToString(TPropertyEffect * pData, CProperty * pProperty);
|
||||
bool PropertyEffectStringToData(CProperty * pProperty, TPropertyEffect * pData);
|
||||
bool PropertyAmbienceDataToString(TPropertyAmbience * pData, CProperty * pProperty);
|
||||
bool PropertyAmbienceStringToData(CProperty * pProperty, TPropertyAmbience * pData);
|
||||
bool PropertyDungeonBlockDataToString(TPropertyDungeonBlock * pData, CProperty * pProperty);
|
||||
bool PropertyDungeonBlockStringToData(CProperty * pProperty, TPropertyDungeonBlock * pData);
|
||||
};
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Environment
|
||||
//
|
||||
enum
|
||||
{
|
||||
ENV_DIRLIGHT_BACKGROUND,
|
||||
ENV_DIRLIGHT_CHARACTER,
|
||||
ENV_DIRLIGHT_NUM
|
||||
};
|
||||
|
||||
typedef struct SEnvironmentData
|
||||
{
|
||||
// Light
|
||||
BOOL bDirLightsEnable[ENV_DIRLIGHT_NUM];
|
||||
D3DLIGHT8 DirLights[ENV_DIRLIGHT_NUM];
|
||||
|
||||
// Material
|
||||
D3DMATERIAL8 Material;
|
||||
|
||||
// Fog
|
||||
BOOL bFogEnable;
|
||||
BOOL bDensityFog;
|
||||
|
||||
float m_fFogNearDistance;
|
||||
float m_fFogFarDistance;
|
||||
|
||||
float GetFogNearDistance() const;
|
||||
float GetFogFarDistance() const;
|
||||
|
||||
D3DXCOLOR FogColor;
|
||||
|
||||
// Filtering
|
||||
BOOL bFilteringEnable;
|
||||
D3DXCOLOR FilteringColor;
|
||||
BYTE byFilteringAlphaSrc;
|
||||
BYTE byFilteringAlphaDest;
|
||||
|
||||
// Wind
|
||||
float fWindStrength;
|
||||
float fWindRandom;
|
||||
|
||||
// SkyBox
|
||||
D3DXVECTOR3 v3SkyBoxScale;
|
||||
BOOL bSkyBoxTextureRenderMode;
|
||||
|
||||
BYTE bySkyBoxGradientLevelUpper;
|
||||
BYTE bySkyBoxGradientLevelLower;
|
||||
|
||||
std::string strSkyBoxFaceFileName[6]; //order : front/back/left/right/top/bottom
|
||||
|
||||
|
||||
D3DXVECTOR2 v2CloudScale;
|
||||
float fCloudHeight;
|
||||
D3DXVECTOR2 v2CloudTextureScale;
|
||||
D3DXVECTOR2 v2CloudSpeed;
|
||||
std::string strCloudTextureFileName;
|
||||
TGradientColor CloudGradientColor;
|
||||
|
||||
std::vector<TGradientColor> SkyBoxGradientColorVector;
|
||||
|
||||
// LensFlare
|
||||
BOOL bLensFlareEnable;
|
||||
D3DXCOLOR LensFlareBrightnessColor;
|
||||
float fLensFlareMaxBrightness;
|
||||
|
||||
BOOL bMainFlareEnable;
|
||||
std::string strMainFlareTextureFileName;
|
||||
float fMainFlareSize;
|
||||
|
||||
BOOL bReserve; // <20>ܺο<DCBA><CEBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD>
|
||||
} TEnvironmentData;
|
||||
|
||||
typedef std::map<DWORD, TEnvironmentData*> TEnvironmentDataMap;
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef struct SScreenPosition {
|
||||
int x;
|
||||
int y;
|
||||
} TScreenPosition;
|
||||
|
||||
typedef D3DXVECTOR3 TPixelPosition;
|
||||
|
||||
float SPixelPosition_CalculateDistanceSq3d(const TPixelPosition& c_rkPPosLeft, const TPixelPosition& c_rkPPosRight);
|
||||
|
||||
typedef struct SCellPosition
|
||||
{
|
||||
SCellPosition()
|
||||
{
|
||||
this->x = 0;
|
||||
this->y = 0;
|
||||
}
|
||||
|
||||
SCellPosition(int x, int y)
|
||||
{
|
||||
this->x = x;
|
||||
this->y = y;
|
||||
}
|
||||
|
||||
int x, y;
|
||||
} TCellPosition;
|
||||
|
||||
const int c_Section_xAttributeCellSize = 50;
|
||||
const int c_Section_yAttributeCellSize = 50;
|
||||
const int c_Section_xCellSize = 100;
|
||||
const int c_Section_yCellSize = 100;
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user