Map CreateBaseMap_i(MapRecord mapEntry) { Map map; if (mapEntry.Instanceable()) { map = new MapInstanced(mapEntry.Id, i_gridCleanUpDelay); } else { map = new Map(mapEntry.Id, i_gridCleanUpDelay, 0, Difficulty.None); } map.DiscoverGridMapFiles(); i_maps[mapEntry.Id] = map; foreach (uint childMapId in _parentMapData[mapEntry.Id]) { map.AddChildTerrainMap(CreateBaseMap_i(CliDB.MapStorage.LookupByKey(childMapId))); } if (!mapEntry.Instanceable()) { map.LoadRespawnTimes(); map.LoadCorpseData(); } return(map); }
public Map CreateBaseMap(uint id) { Map map = FindBaseMap(id); if (map == null) { lock (this) { var entry = CliDB.MapStorage.LookupByKey(id); Contract.Assert(entry != null); if (entry.Instanceable()) { map = new MapInstanced(id, i_gridCleanUpDelay); } else { map = new Map(id, i_gridCleanUpDelay, 0, Difficulty.None); map.LoadRespawnTimes(); map.LoadCorpseData(); } i_maps[id] = map; } } Contract.Assert(map != null); return(map); }
public void DoForAllMaps(Action <Map> worker) { foreach (var map in i_maps.Values) { MapInstanced mapInstanced = map.ToMapInstanced(); if (mapInstanced) { var instances = mapInstanced.GetInstancedMaps(); foreach (var instance in instances.Values) { worker(instance); } } else { worker(map); } } }
public void DoForAllMapsWithMapId(uint mapId, Action <Map> worker) { var map = i_maps.LookupByKey(mapId); if (map != null) { MapInstanced mapInstanced = map.ToMapInstanced(); if (mapInstanced) { var instances = mapInstanced.GetInstancedMaps(); foreach (var instance in instances) { worker(instance.Value); } } else { worker(map); } } }