private static void DeserializeFilters(GenericReader reader) { reader.GetVersion(); reader.ReadDictionary( r => { var m = r.ReadMobile <PlayerMobile>(); var f = r.ReadBlockList( r2 => { var t = r2.ReadType(); var o = t.CreateInstanceSafe <IFilter>(r2); if (o != null) { return(o); } o = t.CreateInstanceSafe <IFilter>(); if (o != null) { o.Deserialize(r2); } return(o); }); return(new KeyValuePair <PlayerMobile, List <IFilter> >(m, f)); }, _Filters); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.GetVersion(); switch (version) { case 3: Level = reader.ReadFlag<SecureLevel>(); goto case 2; case 2: RemoveLocked = reader.ReadBool(); goto case 1; case 1: { EditLocked = reader.ReadBool(); AddLocked = reader.ReadBool(); CloneEntryChargeCost = reader.ReadInt(); ChargeTypes = reader.ReadDictionary( () => { Type k = reader.ReadType(); int v = reader.ReadInt(); return new KeyValuePair<Type, int>(k, v); }); } goto case 0; case 0: { Charges = reader.ReadInt(); RecallChargeCost = reader.ReadInt(); GateChargeCost = reader.ReadInt(); _Descripton = reader.ReadString(); Categories = new RuneCodexCategoryGrid(reader); } break; } if (version > 0) { return; } Charges = 1000; CloneEntryChargeCost = 5; RecallChargeCost = 1; GateChargeCost = 2; ChargeTypes = new Dictionary<Type, int> { {typeof(Gold), 100} }; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.GetVersion(); switch (version) { case 0: { Flag = reader.ReadItem<CTFFlag>(); if (Flag != null) { Flag.Team = this; } FlagPodium = reader.ReadItem<CTFPodium>(); if (FlagPodium != null) { FlagPodium.Team = this; } Caps = reader.ReadInt(); FlagRespawnDelay = reader.ReadTimeSpan(); SolidHueOverride = reader.ReadBool(); reader.ReadDictionary( () => new KeyValuePair<PlayerMobile, int>(reader.ReadMobile<PlayerMobile>(), reader.ReadInt()), Attackers); reader.ReadDictionary( () => new KeyValuePair<PlayerMobile, int>(reader.ReadMobile<PlayerMobile>(), reader.ReadInt()), Defenders); } break; } }