smfreadmap.h

来自「这是整套横扫千军3D版游戏的源码」· C头文件 代码 · 共 66 行

H
66
字号
#ifndef SMFREADMAP_H
#define SMFREADMAP_H

#include "Map/ReadMap.h"
#include <string>
#include "mapfile.h"

class CBFGroundDrawer;

class CSmfReadMap : public CReadMap
{
public:
	CR_DECLARE(CSmfReadMap)

	CSmfReadMap(std::string mapname);
	~CSmfReadMap(void);

	void HeightmapUpdated(int x1, int x2, int y1, int y2);
	unsigned int GetShadingTexture () { return shadowTex; }
	unsigned int GetGrassShadingTexture () { return minimapTex; }
	void DrawMinimap ();
	void GridVisibility(CCamera *cam, int quadSize, float maxdist, IQuadDrawer *cb, int extraSize);
	CBaseGroundDrawer* GetGroundDrawer();
	float* GetHeightmap() { return heightmap; }
	
	int GetNumFeatureTypes ();
	int GetNumFeatures ();
	void GetFeatureInfo (MapFeatureInfo* f);// returns all feature info in MapFeatureInfo[NumFeatures]
	const char *GetFeatureType (int typeID);
	
	unsigned char *GetInfoMap (const std::string& name, MapBitmapInfo* bm);
	void FreeInfoMap(const std::string& name, unsigned char *data);

	std::string detailTexName;
	unsigned int detailTex;
	MapHeader header;
	CFileHandler *ifs;

	float anisotropy;

	unsigned char waterHeightColors[1024*4];
protected:
	void ReadGrassMap (void *data);
	void ReadFeatureInfo ();

	void ConfigureAnisotropy();

	unsigned int shadowTex;
	unsigned int minimapTex;

	float* heightmap;

	MapFeatureHeader featureHeader;
	std::string* featureTypes;
	int featureFileOffset;

	CBFGroundDrawer *groundDrawer;

	float3 GetLightValue(int x, int y);
	void ParseSMD(std::string filename);

	friend class CBFGroundDrawer;
};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?