Пример #1
0
	void Load()
	{

	  char filename[1024];
	  if ( LoadVMap ( mapid,gx,gy ) != VMAP::VMAP_LOAD_RESULT_OK )
	  {
		printf("Cannot load vmap: Map %d , GridX %d, GridY %d\n",mapid,gx,gy);
		return;
	  }
	  sprintf ( filename,"maps/%03u%02d%02d.map",mapid, gx,gy);
	  map = new GridMap;
	  cout << "Loading " << filename << endl;
	  bool r = map->loadData ( filename );
	  if ( !r )
	  {
		cout << "Failed to load map " << filename << endl;
		delete map;
		VMAP::VMapFactory::createOrGetVMapManager()->unloadMap(mapid,gx,gy);
		map = NULL;
		return;
	  }
	  loaded = true;
	  loadedmaps++;

	}
Пример #2
0
GridMap * TerrainInfo::LoadMapAndVMap( const uint32 x, const uint32 y )
{
    //double checked lock pattern
    if(!m_GridMaps[x][y])
    {
        LOCK_GUARD lock(m_mutex);

        if(!m_GridMaps[x][y])
        {
            GridMap * map = new GridMap();

            // map file name
            char *tmp=NULL;
            int len = sWorld.GetDataPath().length()+strlen("maps/%03u%02u%02u.map")+1;
            tmp = new char[len];
            snprintf(tmp, len, (char *)(sWorld.GetDataPath()+"maps/%03u%02u%02u.map").c_str(),m_mapId, x, y);
            sLog.outDetail("Loading map %s",tmp);

            if(!map->loadData(tmp))
            {
                sLog.outError("Error load map file: \n %s\n", tmp);
                //ASSERT(false);
            }

            delete [] tmp;
            m_GridMaps[x][y] = map;

            //load VMAPs for current map/grid...
            const MapEntry * i_mapEntry = sMapStore.LookupEntry(m_mapId);
            const char* mapName = i_mapEntry ? i_mapEntry->name[sWorld.GetDefaultDbcLocale()] : "UNNAMEDMAP\x0";

            int vmapLoadResult = VMAP::VMapFactory::createOrGetVMapManager()->loadMap((sWorld.GetDataPath()+ "vmaps").c_str(),  m_mapId, x, y);
            switch(vmapLoadResult)
            {
            case VMAP::VMAP_LOAD_RESULT_OK:
                sLog.outDetail("VMAP loaded name:%s, id:%d, x:%d, y:%d (vmap rep.: x:%d, y:%d)", mapName, m_mapId, x,y,x,y);
                break;
            case VMAP::VMAP_LOAD_RESULT_ERROR:
                sLog.outDetail("Could not load VMAP name:%s, id:%d, x:%d, y:%d (vmap rep.: x:%d, y:%d)", mapName, m_mapId, x,y,x,y);
                break;
            case VMAP::VMAP_LOAD_RESULT_IGNORED:
                DEBUG_LOG("Ignored VMAP name:%s, id:%d, x:%d, y:%d (vmap rep.: x:%d, y:%d)", mapName, m_mapId, x,y,x,y);
                break;
            }

            // load navmesh
            MMAP::MMapFactory::createOrGetMMapManager()->loadMap(m_mapId, x, y);
        }
    }

    return  m_GridMaps[x][y];
}
Пример #3
0
int main(int argc,char ** argv)
{
GridMap * map;
map = new GridMap;
char filename[1024];
float x= atof(argv[1]);float y = atof(argv[2]);
sprintf(filename,"maps/%03u%02d%02d.map",1,(int)(32-x/SIZE_OF_GRIDS),(int)(32-y/SIZE_OF_GRIDS));
cout << "Loading " << filename << endl;
bool r = map->loadData(filename);
if (!r)
  cout << "Cannot load " << filename << " Replacing with blackmap" << endl;
else{
  printf("%f\n",map->getHeight(x,y));
  
    
  
  
  
}
}
Пример #4
0
MapTerrain2::MapTerrain2(uint32 MapId)
{
	m_MapId = MapId;
	memset( GridMaps, NULL, sizeof( GridMaps ) );
	for(uint32 y=0;y<MAX_NUMBER_OF_GRIDS;y++)
		for(uint32 x=0;x<MAX_NUMBER_OF_GRIDS;x++)
		{
			//gen filename
			char filename[500];
		    snprintf(filename, 500, "maps2/%03u%02u%02u.map",m_MapId,x,y);
			//see if file exist
		    FILE *pf=fopen(filename,"rb");
			if( pf == NULL )
				continue;
			fclose( pf );
			//load content into mem
			GridMap *gm = new GridMap();
			gm->loadData(filename);
			//store the struct 
			GridMaps[ x ] [ y ] = gm;
		}
}