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); }
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); } }