//MapGridPacket private static void HandlePacket(MapGridPacket packet) { Globals.MapGridWidth = packet.Grid.GetLength(0); Globals.MapGridHeight = packet.Grid.GetLength(1); var clearKnownMaps = packet.ClearKnownMaps; Globals.MapGrid = new Guid[Globals.MapGridWidth, Globals.MapGridHeight]; if (clearKnownMaps) { foreach (var map in MapInstance.Lookup.Values.ToArray()) { ((MapInstance)map).Dispose(); } } Globals.NeedsMaps = true; Globals.GridMaps.Clear(); for (var x = 0; x < Globals.MapGridWidth; x++) { for (var y = 0; y < Globals.MapGridHeight; y++) { Globals.MapGrid[x, y] = packet.Grid[x, y]; if (Globals.MapGrid[x, y] != Guid.Empty) { Globals.GridMaps.Add(Globals.MapGrid[x, y]); if (MapInstance.MapRequests.ContainsKey(Globals.MapGrid[x, y])) { MapInstance.MapRequests[Globals.MapGrid[x, y]] = Globals.System.GetTimeMs() + 2000; } else { MapInstance.MapRequests.Add(Globals.MapGrid[x, y], Globals.System.GetTimeMs() + 2000); } } } } if (Globals.Me != null) { Globals.Me.FetchNewMaps(); } Graphics.GridSwitched = true; }
//MapGridPacket private static void HandlePacket(MapGridPacket packet) { if (Globals.MapGrid != null) { Globals.MapGrid.Load(packet.EditorGrid); if (Globals.CurrentMap != null && Globals.MapGrid != null && Globals.MapGrid.Loaded) { for (var y = Globals.CurrentMap.MapGridY + 1; y >= Globals.CurrentMap.MapGridY - 1; y--) { for (var x = Globals.CurrentMap.MapGridX - 1; x <= Globals.CurrentMap.MapGridX + 1; x++) { if (x >= 0 && x < Globals.MapGrid.GridWidth && y >= 0 && y < Globals.MapGrid.GridHeight) { var needMap = MapInstance.Get(Globals.MapGrid.Grid[x, y].MapId); if (needMap == null && Globals.MapGrid.Grid[x, y].MapId != Guid.Empty) { PacketSender.SendNeedMap(Globals.MapGrid.Grid[x, y].MapId); } } } } } } }