public override void StartModProcess() { string path_RCF_frontend = "DEFAULT.RCF"; basePath = ConsolePipeline.ExtractedPath; RCF_Manager.cachedRCF = null; if (ConsolePipeline.Metadata.Console == ConsoleMode.WII) { path_RCF_frontend = "default.rcf"; } else if (ConsolePipeline.Metadata.Console == ConsoleMode.PSP) { path_RCF_frontend = "default.rcf"; } else if (ConsolePipeline.Metadata.Console == ConsoleMode.XBOX360) { path_RCF_frontend = "default.rcf"; } string path_extr = basePath + @"cml_extr\"; RCF_Manager.Extract(basePath + path_RCF_frontend, path_extr); // Proof of concept mod replacing credits text string[] credits_lines = File.ReadAllLines(path_extr + @"script\CreditsList.txt"); List <string> credits_LineList = new List <string>(); credits_LineList.Add(credits_lines[0]); credits_LineList.Add("false \"Crate Mod Loader " + ModLoaderGlobals.ProgramVersion + "\" false false"); credits_LineList.Add("false \"Seed: " + ModLoaderGlobals.RandomizerSeed + "\" false false"); for (int i = 1; i < credits_lines.Length; i++) { credits_LineList.Add(credits_lines[i]); } credits_lines = new string[credits_LineList.Count]; for (int i = 0; i < credits_LineList.Count; i++) { credits_lines[i] = credits_LineList[i]; } File.WriteAllLines(path_extr + @"script\CreditsList.txt", credits_lines); RCF_Manager.Pack(basePath + path_RCF_frontend, path_extr); }
public override void StartModProcess() { Random rand = new Random(ModLoaderGlobals.RandomizerSeed); string path_RCF_frontend = "DEFAULT.RCF"; basePath = ConsolePipeline.ExtractedPath; RCF_Manager.cachedRCF = null; if (ConsolePipeline.Metadata.Console == ConsoleMode.WII) { path_RCF_frontend = "default.rcf"; } else if (ConsolePipeline.Metadata.Console == ConsoleMode.PSP) { path_RCF_frontend = "default.rcf"; } else if (ConsolePipeline.Metadata.Console == ConsoleMode.XBOX360) { path_RCF_frontend = "default.rcf"; } string path_extr = basePath + @"cml_extr\"; RCF_Manager.Extract(basePath + path_RCF_frontend, path_extr); ModCrates.InstallLayerMods(EnabledModCrates, path_extr, 1); if (Option_TestMod.Enabled) { // Proof of concept mod increasing gameplay FOV in Episode 1 string[] frontend_lines = File.ReadAllLines(path_extr + @"levels\L1_E1\cameraoverrides.blua"); frontend_lines[6] = "cameraManager:SetCameraVolumeFOV( 0, 90.000000 )"; frontend_lines[11] = "cameraManager:SetCameraVolumeFOV( 2, 90.000000 )"; frontend_lines[14] = "cameraManager:SetCameraVolumeFOV( 3, 90.000000 )"; frontend_lines[68] = "cameraManager:SetCameraVolumeFOV( 78, 90.000000 )"; frontend_lines[71] = "cameraManager:SetCameraVolumeFOV( 79, 90.000000 )"; frontend_lines[73] = "cameraManager:SetCameraVolumeFOV( 80, 90.000000 )"; frontend_lines[76] = "cameraManager:SetCameraVolumeFOV( 81, 90.000000 )"; frontend_lines[79] = "cameraManager:SetCameraVolumeFOV( 82, 90.000000 )"; frontend_lines[81] = "cameraManager:SetCameraVolumeFOV( 83, 90.000000 )"; frontend_lines[83] = "cameraManager:SetCameraVolumeFOV( 84, 90.000000 )"; frontend_lines[85] = "cameraManager:SetCameraVolumeFOV( 85, 90.000000 )"; frontend_lines[87] = "cameraManager:SetCameraVolumeFOV( 86, 90.000000 )"; frontend_lines[89] = "cameraManager:SetCameraVolumeFOV( 87, 90.000000 )"; frontend_lines[91] = "cameraManager:SetCameraVolumeFOV( 88, 90.000000 )"; frontend_lines[94] = "cameraManager:SetCameraVolumeFOV( 89, 90.000000 )"; frontend_lines[97] = "cameraManager:SetCameraVolumeFOV( 90, 90.000000 )"; File.WriteAllLines(path_extr + @"levels\L1_E1\cameraoverrides.blua", frontend_lines); } if (Option_RandEpisodeOrder.Enabled) { List <int> LevelsToRand = new List <int>(); for (int i = 0; i < EpisodeFolderNames.Count; i++) { LevelsToRand.Add(i); Directory.Move(path_extr + @"levels\" + EpisodeFolderNames[i], path_extr + @"levels\" + "level" + i); } List <int> LevelsRand = new List <int>(); for (int i = 0; i < EpisodeFolderNames.Count; i++) { int r = rand.Next(LevelsToRand.Count); LevelsRand.Add(LevelsToRand[r]); LevelsToRand.RemoveAt(r); } for (int i = 0; i < EpisodeFolderNames.Count; i++) { Directory.Move(path_extr + @"levels\" + "level" + i, path_extr + @"levels\" + EpisodeFolderNames[LevelsRand[i]]); } } RCF_Manager.Pack(basePath + path_RCF_frontend, path_extr); }