コード例 #1
0
ファイル: TerrainMgr.cpp プロジェクト: DebugProject/Lua-Other
void TileMap::Load(char* filename)
{
	sLog.Debug("Terrain", "Loading %s", filename);
	FILE* f = fopen(filename, "rb");

	if(f == NULL)
	{
		sLog.Error("Terrain", "%s does not exist", filename);
		return;
	}

	TileMapHeader header;

	fread(&header, 1, sizeof(header), f);

	if(header.buildMagic != 12340)  //wow version
	{
		sLog.Error("Terrain", "%s: from incorrect client (you: %u us: %u)", filename, header.buildMagic, 12340);
		fclose(f);
		return;
	}


	if(header.areaMapOffset != 0)
		LoadAreaData(f, header);

	if(header.heightMapOffset != 0)
		LoadHeightData(f, header);

	if(header.liquidMapOffset != 0)
		LoadLiquidData(f, header);

	fclose(f);
}
コード例 #2
0
ファイル: MapTerrain.cpp プロジェクト: mark711/Cafu
MapTerrainT::MapTerrainT(const BoundingBox3fT& Box, const wxString& HeightMapFile, EditorMaterialI* Material)
    : MapPrimitiveT(wxColour(50 + (rand() % 50), 150 + (rand() % 106), 30)),
      m_Resolution(65),
      m_HeightData(),
      m_TerrainBounds(Box),
      m_Material(Material),
      m_ToolBounds(Vector3fT()),
      m_RenderEyeDropper(false),
      m_NeedsUpdate(true),
      m_Terrain(),
      m_TerrainMesh(MatSys::MeshT::TriangleStrip)
{
    // Try to load the height data from the passed height map file. Create empty terrain if it fails.
    try
    {
        //XXX Hmmmmm.  Evtl. sollten wir eine TerrainLoaderT Klasse machen (die später auch speichern kann)...
        LoadHeightData(HeightMapFile);
    }
    catch (const BitmapT::LoadErrorT& /*E*/)
    {
        // Set default resolution in case LoadHeightData has already changed it.
        m_Resolution=65;

        for (unsigned int i=0; i<m_Resolution*m_Resolution; i++)
            m_HeightData.PushBack(0);
    }
}