about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2022-08-22 10:05:21 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2022-08-22 10:05:21 -0400
commit0e2323e18ae8fc989d19602baf06d159e85001c1 (patch)
tree1b25c78831c05b57b674e6903dea3a047fc852a1
parent7c34f89a5999ade8e4583a51a9c7d373324723d1 (diff)
downloadautosplitters-0e2323e18ae8fc989d19602baf06d159e85001c1.tar.gz
autosplitters-0e2323e18ae8fc989d19602baf06d159e85001c1.tar.bz2
autosplitters-0e2323e18ae8fc989d19602baf06d159e85001c1.zip
[Manifold Garden] Added logging to file
I had to move stuff back into "start" because it was breaking in "onStart" for some reason.
-rw-r--r--Manifold Garden.asl62
1 files changed, 36 insertions, 26 deletions
diff --git a/Manifold Garden.asl b/Manifold Garden.asl index c076972..3968955 100644 --- a/Manifold Garden.asl +++ b/Manifold Garden.asl
@@ -29,6 +29,15 @@
29state("ManifoldGarden") {} 29state("ManifoldGarden") {}
30 30
31startup { 31startup {
32 // Relative to Livesplit.exe
33 vars.logFilePath = Directory.GetCurrentDirectory() + "\\autosplitter_manifold.log";
34 vars.log = (Action<string>)((string logLine) => {
35 print("[Manifold Garden ASL] " + logLine);
36 string time = System.DateTime.Now.ToString("dd/MM/yy hh:mm:ss.fff");
37 // AppendAllText will create the file if it doesn't exist.
38 System.IO.File.AppendAllText(vars.logFilePath, time + ": " + logLine + "\r\n");
39 });
40
32 var bytes = File.ReadAllBytes(@"Components\LiveSplit.ASLHelper.bin"); 41 var bytes = File.ReadAllBytes(@"Components\LiveSplit.ASLHelper.bin");
33 var type = Assembly.Load(bytes).GetType("ASLHelper.Unity"); 42 var type = Assembly.Load(bytes).GetType("ASLHelper.Unity");
34 vars.Helper = Activator.CreateInstance(type, timer, this); 43 vars.Helper = Activator.CreateInstance(type, timer, this);
@@ -105,12 +114,12 @@ startup {
105 var findConfigFiles = (Action<string>)((string folder) => { 114 var findConfigFiles = (Action<string>)((string folder) => {
106 var files = new List<string>(); 115 var files = new List<string>();
107 if (folder != null) { 116 if (folder != null) {
108 print("Searching for config files in '" + folder + "'"); 117 vars.log("Searching for config files in '" + folder + "'");
109 files.AddRange(System.IO.Directory.GetFiles(folder, "*.mg_config")); 118 files.AddRange(System.IO.Directory.GetFiles(folder, "*.mg_config"));
110 files.AddRange(System.IO.Directory.GetFiles(folder, "*.mg_config.txt")); 119 files.AddRange(System.IO.Directory.GetFiles(folder, "*.mg_config.txt"));
111 files.AddRange(System.IO.Directory.GetFiles(folder, "*.mg_conf")); 120 files.AddRange(System.IO.Directory.GetFiles(folder, "*.mg_conf"));
112 files.AddRange(System.IO.Directory.GetFiles(folder, "*.mg_confi")); 121 files.AddRange(System.IO.Directory.GetFiles(folder, "*.mg_confi"));
113 print("Found " + files.Count + " config files"); 122 vars.log("Found " + files.Count + " config files");
114 } 123 }
115 124
116 // Only add the parent setting the first time we call this function 125 // Only add the parent setting the first time we call this function
@@ -132,6 +141,8 @@ startup {
132 findConfigFiles(System.IO.Path.GetDirectoryName(timer.Layout.FilePath)); 141 findConfigFiles(System.IO.Path.GetDirectoryName(timer.Layout.FilePath));
133 // Search for config files relative to the current splits 142 // Search for config files relative to the current splits
134 findConfigFiles(System.IO.Path.GetDirectoryName(timer.Run.FilePath)); 143 findConfigFiles(System.IO.Path.GetDirectoryName(timer.Run.FilePath));
144
145 vars.log("Autosplitter loaded");
135} 146}
136 147
137init { 148init {
@@ -159,8 +170,8 @@ init {
159 if (settings[configFile]) { 170 if (settings[configFile]) {
160 // Full path is saved in the dictionary. 171 // Full path is saved in the dictionary.
161 vars.configWaypoints = System.IO.File.ReadAllLines(vars.configFiles[configFile]); 172 vars.configWaypoints = System.IO.File.ReadAllLines(vars.configFiles[configFile]);
162 print("Selected config file: " + configFile); 173 vars.log("Selected config file: " + configFile);
163 print("Config contains " + vars.configWaypoints.Length + " lines"); 174 vars.log("Config contains " + vars.configWaypoints.Length + " lines");
164 break; 175 break;
165 } 176 }
166 } 177 }
@@ -176,7 +187,7 @@ update {
176 187
177 if (!vars.doneFirstLook) { 188 if (!vars.doneFirstLook) {
178 vars.doneFirstLook = true; 189 vars.doneFirstLook = true;
179 print(String.Format("Connected to Manifold Garden version {0}", vars.Helper["version"].Current)); 190 vars.log(String.Format("Connected to Manifold Garden version {0}", vars.Helper["version"].Current));
180 191
181 current.onStartScreen = vars.startScreens.Contains(vars.Helper.Scenes.Active.Name); 192 current.onStartScreen = vars.startScreens.Contains(vars.Helper.Scenes.Active.Name);
182 193
@@ -208,25 +219,24 @@ start {
208 // moment you click a save slot to start a new game in, although it will 219 // moment you click a save slot to start a new game in, although it will
209 // also start if you just load a file). This boolean is set to true during 220 // also start if you just load a file). This boolean is set to true during
210 // the studio logo when the game starts up, so we check for that as well. 221 // the studio logo when the game starts up, so we check for that as well.
211 return (vars.studioScreenDone && current.isLoadingGameFromUI); 222 if (vars.studioScreenDone && current.isLoadingGameFromUI) {
212} 223 vars.log("START based on file load");
213 224 if (settings["zero"]) {
214onStart { 225 vars.waypoints = vars.zeroPercentPoints;
215 print("START based on file load"); 226 } else if (settings["allGodCubes"]) {
216 if (settings["zero"]) { 227 vars.waypoints = vars.mandalaScenes;
217 vars.waypoints = vars.zeroPercentPoints; 228 } else if (settings["configs"] && vars.configWaypoints != null) {
218 } else if (settings["allGodCubes"]) { 229 vars.waypoints = new List<string>(vars.configWaypoints);
219 vars.waypoints = vars.mandalaScenes; 230 } else {
220 } else if (settings["configs"] && vars.configWaypoints != null) { 231 vars.waypoints = null;
221 vars.waypoints = new List<string>(vars.configWaypoints); 232 }
222 } else { 233 vars.prevLevel = current.level;
223 vars.waypoints = null; 234 vars.stopwatch = Stopwatch.StartNew();
235 vars.prev.Clear();
236 vars.firstRoom = false;
237 vars.inEnding = false;
238 return true;
224 } 239 }
225 vars.prevLevel = current.level;
226 vars.stopwatch = Stopwatch.StartNew();
227 vars.prev.Clear();
228 vars.firstRoom = false;
229 vars.inEnding = false;
230} 240}
231 241
232split { 242split {
@@ -237,7 +247,7 @@ split {
237 && current.level != vars.prevLevel 247 && current.level != vars.prevLevel
238 && current.level > 0 248 && current.level > 0
239 && !vars.noSplitScenes.Contains(vars.Helper.Scenes.Active.Name)) { 249 && !vars.noSplitScenes.Contains(vars.Helper.Scenes.Active.Name)) {
240 print(String.Format("{0}: '{1}'", current.level, vars.Helper.Scenes.Active.Name)); 250 vars.log(String.Format("{0}: '{1}'", current.level, vars.Helper.Scenes.Active.Name));
241 251
242 string action = "NO SPLIT"; 252 string action = "NO SPLIT";
243 253
@@ -260,7 +270,7 @@ split {
260 vars.prev.Add(current.level); 270 vars.prev.Add(current.level);
261 } 271 }
262 272
263 print(String.Format("Level changed from {0} to {1}: {2}", vars.prevLevel, current.level, action)); 273 vars.log(String.Format("Level changed from {0} to {1}: {2}", vars.prevLevel, current.level, action));
264 } 274 }
265 275
266 if (vars.endings.Contains(vars.Helper.Scenes.Active.Name)) { 276 if (vars.endings.Contains(vars.Helper.Scenes.Active.Name)) {
@@ -282,7 +292,7 @@ split {
282 && vars.inEnding 292 && vars.inEnding
283 && vars.stopwatch != null 293 && vars.stopwatch != null
284 && vars.stopwatch.ElapsedMilliseconds >= 1100) { 294 && vars.stopwatch.ElapsedMilliseconds >= 1100) {
285 print("SPLIT on Raymarchitecture"); 295 vars.log("SPLIT on Raymarchitecture");
286 vars.stopwatch = null; 296 vars.stopwatch = null;
287 return true; 297 return true;
288 } 298 }