public static T ReadDungeon <T>(this GenericReader reader) where T : Dungeon { if (reader.ReadBool()) { return(FindDungeon(reader.ReadHashCode <DungeonSerial>()) as T); } return(null); }
public static T ReadInstanceRegion <T>(this GenericReader reader) where T : InstanceRegion { if (reader.ReadBool()) { return(FindRegion(reader.ReadHashCode <InstanceRegionSerial>()) as T); } return(null); }
public static InstanceMap ReadInstanceMap(this GenericReader reader) { if (reader.ReadBool()) { return(FindMap(reader.ReadHashCode <InstanceMapSerial>())); } return(null); }
private void DeserializeDefaults(GenericReader reader) { reader.GetVersion(); Serial = reader.ReadHashCode <DungeonSerial>(); Options.Deserialize(reader); Deleted = reader.ReadBool(); Generated = reader.ReadBool(); Created = reader.ReadDateTime(); Map = reader.ReadInstanceMap(); reader.ReadBlockList(r => r.ReadInstanceRegion <DungeonZone>(), Zones); Zones.ForEach( z => { z.Dungeon = this; if ((Map == null || Map.Deleted) && z.InstanceMap != null && !z.InstanceMap.Deleted) { Map = z.InstanceMap; } }); Group = reader.ReadStrongMobileList <PlayerMobile>(); ActiveGroup = reader.ReadStrongMobileList <PlayerMobile>(); MobileSpawns = reader.ReadStrongMobileList(); ItemSpawns = reader.ReadStrongItemList(); reader.ReadBlockList(r => r.ReadTypeCreate <DungeonLootEntry>(this, r), Loot); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); #region Critical Non-Versioned Values Owner = reader.ReadMobile <PlayerMobile>(); Templates = new TemplateCollection(reader); Selected = Templates.Find(reader.ReadHashCode <TemplateSerial>()); #endregion switch (version) { case 0: { PackItems = reader.ReadBlockList(reader.ReadItem); Equipment = reader.ReadBlockList(reader.ReadItem); } break; } }