Пример #1
0
        public override void Convert(byte[] rawData)
        {
            WorldMapOverlayEntry val = new WorldMapOverlayEntry();

            val.WorldMapOverlayId = (WorldMapOverlayId)DBCRecordConverter.GetUInt32(rawData, 0);
            for (int index = 0; index < val.ZoneTemplateId.Length; ++index)
            {
                ZoneId uint32 = (ZoneId)DBCRecordConverter.GetUInt32(rawData, 2 + index);
                if (uint32 != ZoneId.None)
                {
                    val.ZoneTemplateId[index] = uint32;
                    ZoneTemplate zoneTemplate = WCell.RealmServer.Global.World.s_ZoneTemplates[(int)uint32];
                    if (zoneTemplate == null)
                    {
                        LogManager.GetCurrentClassLogger().Warn(string.Format(
                                                                    "Invalid ZoneId #{0} found at WorldMapOverlay #{1} during the DBC loading.",
                                                                    (object)uint32, (object)val.WorldMapOverlayId));
                    }
                    else
                    {
                        zoneTemplate.WorldMapOverlays.Add(val.WorldMapOverlayId);
                    }
                }
                else
                {
                    break;
                }
            }

            ArrayUtil.Set <WorldMapOverlayEntry>(ref WCell.RealmServer.Global.World.s_WorldMapOverlayEntries,
                                                 (uint)val.WorldMapOverlayId, val);
        }
Пример #2
0
 public Zone(Map rgn, ZoneTemplate template)
 {
     Map      = rgn;
     Template = template;
     if (template.WorldStates != null)
     {
         WorldStates = new WorldStateCollection(this, template.WorldStates);
     }
     CreateChatChannels();
 }
Пример #3
0
 public Zone(Map rgn, ZoneTemplate template)
 {
     this.Map      = rgn;
     this.Template = template;
     if (template.WorldStates != null)
     {
         this.WorldStates = new WorldStateCollection((IWorldSpace)this, template.WorldStates);
     }
     this.CreateChatChannels();
 }
Пример #4
0
        public void FinalizeDataHolder()
        {
            WorldLocationMgr.WorldLocations[this.DefaultName] = (INamedWorldZoneLocation)this;
            ZoneTemplate zoneInfo = WCell.RealmServer.Global.World.GetZoneInfo(this.ZoneId);

            if (zoneInfo == null)
            {
                return;
            }
            if (zoneInfo.Site is WorldZoneLocation)
            {
                ((WorldZoneLocation)zoneInfo.Site).ZoneTemplate = (ZoneTemplate)null;
            }
            else if (zoneInfo.Site != null)
            {
                return;
            }
            zoneInfo.Site     = (IWorldLocation)this;
            this.ZoneTemplate = zoneInfo;
        }
Пример #5
0
        public void FinalizeDataHolder()
        {
            WorldLocationMgr.WorldLocations[DefaultName] = this;
            ZoneTemplate zoneInfo = World.GetZoneInfo(ZoneId);

            if (zoneInfo == null)
            {
                return;
            }
            if (zoneInfo.Site is WorldZoneLocation)
            {
                ((WorldZoneLocation)zoneInfo.Site).ZoneTemplate = null;
            }
            else if (zoneInfo.Site != null)
            {
                return;
            }
            zoneInfo.Site = this;
            ZoneTemplate  = zoneInfo;
        }
Пример #6
0
 public Zone DefaultCreator(Map map, ZoneTemplate templ)
 {
     return(new Zone(map, templ));
 }