// general idea is Plain Old Data before objects. protected Session(SerializationInfo info, StreamingContext context) { info.read(ref m_Scoring, "Scoring"); info.read(ref m_Event_Raids, "Event_Raids"); GameMode = (GameMode)info.GetSByte("GameMode"); ScriptStage_PoliceStationPrisoner = (int)info.GetSByte("ScriptStage_PoliceStationPrisoner"); ScriptStage_PoliceCHARrelations = (int)info.GetSByte("ScriptStage_PoliceCHARrelations"); ScriptStage_HospitalPowerup = (int)info.GetSByte("ScriptStage_HospitalPowerup"); s_seed = info.GetInt32("Seed"); LastTurnPlayerActed = info.GetInt32("LastTurnPlayerActed"); PlayerKnows_CHARUndergroundFacilityLocation = info.GetBoolean("PlayerKnows_CHARUndergroundFacilityLocation"); info.read_nullsafe(ref m_CommandLineOptions, "CommandLineOptions"); ActorModel.Load(info, context); Actor.Load(info, context); Rules.Get.Load(info, context); PlayerController.Load(info, context); World = (World)info.GetValue("World", typeof(World)); RogueGame.Load(info, context); UniqueActors = (UniqueActors)info.GetValue("UniqueActors", typeof(UniqueActors)); UniqueItems = (UniqueItems)info.GetValue("UniqueItems", typeof(UniqueItems)); UniqueMaps = (UniqueMaps)info.GetValue("UniqueMaps", typeof(UniqueMaps)); info.read(ref m_PoliceItemMemory, "m_PoliceItemMemory"); info.read(ref m_PoliceThreatTracking, "m_PoliceThreatTracking"); info.read(ref m_PoliceInvestigate, "m_PoliceInvestigate"); }
public static Actor Load(IArchiveDirectory dataDir, Device device, ShaderCache shaderCache, ControllerManager controllerManager, FigureLoader figureLoader) { var mainFigure = figureLoader.Load(InitialSettings.Main, null); var actorModel = ActorModel.Load(mainFigure.Definition, InitialSettings.Animation); var hairFigure = InitialSettings.Hair != null?figureLoader.Load(InitialSettings.Hair, mainFigure.Definition) : null; var behavior = ActorBehavior.Load(controllerManager, mainFigure.Definition.Directory, actorModel); var outfits = Outfit.LoadList(dataDir); var actor = new Actor(device, outfits, actorModel, figureLoader, mainFigure, hairFigure, behavior); var clothingFigures = InitialSettings.Clothing .Select(clothingFigureName => figureLoader.Load(clothingFigureName, mainFigure.Definition)) .ToArray(); actor.SetClothingFigures(clothingFigures); return(actor); }