예제 #1
0
 // 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");
 }
예제 #2
0
    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);
    }