예제 #1
0
		private static void DeserializeChannels(GenericReader reader)
		{
			reader.GetVersion();

			int idx = 0;

			reader.ReadBlockArray(
				r =>
				{
					var c = _PermaChannels[idx++];

					if (c != null)
					{
						c.Deserialize(r);
					}

					return c;
				},
				_PermaChannels);

			reader.ReadBlockList(r => r.ReadTypeCreate<WorldChatChannel>(r), _Channels);
		}
		private static bool DeserializeProfiles(GenericReader reader)
		{
			var list = reader.ReadBlockArray(() => new TrashProfile(reader));
			
			foreach (var p in list)
			{
				Profiles.AddOrReplace(p.Owner, p);
			}

			return true;
		}
예제 #3
0
		public void Deserialize(GenericReader reader)
		{
			int version = reader.GetVersion();

			switch (version)
			{
				case 0:
					{
						Owner = reader.ReadMobile<PlayerMobile>();
						Deleted = reader.ReadBool();

						if (!Deleted)
						{
							History = reader.ReadBlockDictionary(
								() =>
								{
									TimeStamp k = reader.ReadDouble();
									var v = reader.ReadBlockArray(() => new VoteProfileEntry(reader)).Where(e => (e.VoteSite != null)).ToList();

									return new KeyValuePair<TimeStamp, List<VoteProfileEntry>>(k, v);
								});
						}
					}
					break;
			}
		}
		private static bool DeserializeHandlers(GenericReader reader)
		{
			var list = reader.ReadBlockArray(() => reader.ReadTypeCreate<BaseTrashHandler>(reader));

			list.ForEach(
				h =>
				{
					if (!Handlers.ContainsKey(h.UID))
					{
						Handlers.Add(h.UID, h);
					}
					else
					{
						Handlers[h.UID] = h;
					}
				});

			InternalHandlerSort();
			return true;
		}