Exemplo n.º 1
0
        private bool LoadScriptLevels(Process process)
        {
            string datFile = Path.Combine(Path.GetDirectoryName(process.MainModule.FileName), "data", "tombpc.dat");

            if (File.Exists(datFile))
            {
                string tmpDatFile = Path.GetTempFileName();
                try
                {
                    Thread.Sleep(1000); // try to allow the game to access the dat file first
                    File.Copy(datFile, tmpDatFile, true);
                    TR23Script script = TRScriptFactory.OpenScript(tmpDatFile) as TR23Script;
                    _scriptLevels = script.Levels.Cast <TR23ScriptedLevel>().ToList();
                }
                finally
                {
                    if (File.Exists(tmpDatFile))
                    {
                        File.Delete(tmpDatFile);
                    }
                }
                return(true);
            }
            return(false);
        }
Exemplo n.º 2
0
        public override void Randomize(int seed)
        {
            _generator = new Random(seed);

            _gameStrings = JsonConvert.DeserializeObject <GameStrings>(File.ReadAllText(@"Resources\Strings\gamestrings.json"));

            TR23Script    script       = ScriptEditor.Script as TR23Script;
            List <string> gamestrings1 = new List <string>(script.GameStrings1);
            List <string> gamestrings2 = new List <string>(script.GameStrings2);

            ProcessGlobalStrings(0, gamestrings1);
            ProcessGlobalStrings(1, gamestrings2);

            script.GameStrings1 = gamestrings1.ToArray();
            script.GameStrings2 = gamestrings2.ToArray();

            foreach (AbstractTRScriptedLevel level in ScriptEditor.ScriptedLevels)
            {
                ProcessLevelStrings(level);
            }
        }