@@ -261,6 +261,7 @@ class Main extends Sprite
261261
262262 #if windows
263263 WindowColorMode .setDarkMode ();
264+ WindowColorMode .redrawWindowHeader (); // bug fix light window bar.
264265 #end
265266
266267 #if CRASH_HANDLER
@@ -294,24 +295,24 @@ class Main extends Sprite
294295 }
295296 }
296297
297- function saveCrashReport (content : String ): String
298- {
299- var path = " ./crash/HyperCodeEngine_" + Date .now ().toString ().replace (" " , " _" ).replace (" :" , " '" ) + " .txt" ;
300-
301- if (! FileSystem .exists (" ./crash/" )) {
302- FileSystem .createDirectory (" ./crash/" );
303- }
304-
305- File .saveContent (path , content + " \n " );
306- Sys .println (content );
307- Sys .println (" Crash dump saved in " + Path .normalize (path ));
308-
309- return path ;
310- }
311-
312298 // Code was entirely made by sqirra-rng for their fnf engine named "Izzy Engine", big props to them!!!
313299 // very cool person for real they don't get enough credit for their work
314300 #if CRASH_HANDLER
301+ function saveCrashReport (content : String ): String
302+ {
303+ var path = " ./crash/HyperCodeEngine_" + Date .now ().toString ().replace (" " , " _" ).replace (" :" , " '" ) + " .txt" ;
304+
305+ if (! FileSystem .exists (" ./crash/" )) {
306+ FileSystem .createDirectory (" ./crash/" );
307+ }
308+
309+ File .saveContent (path , content + " \n " );
310+ Sys .println (content );
311+ Sys .println (" Crash dump saved in " + Path .normalize (path ));
312+
313+ return path ;
314+ }
315+
315316 function onCrash (e : UncaughtErrorEvent ): Void
316317 {
317318 var errMsg : String = " " ;
@@ -335,25 +336,26 @@ class Main extends Sprite
335336 errMsg + = " Date: " + dateNow + " \n " ;
336337
337338 // Exception stack trace
338- errMsg + = " ==== STACK TRACE ====\n " ;
339- for (stackItem in callStack )
340- {
341- switch (stackItem )
342- {
343- case FilePos (s , file , line , column ):
344- errMsg + = file + " (line " + line + " )\n " ;
345- case CFunction :
346- errMsg + = " C Function\n " ;
347- case Module (m ):
348- errMsg + = " Module: " + m + " \n " ;
349- case Method (classname , method ):
350- errMsg + = " Method: " + classname + " ." + method + " \n " ;
351- case LocalFunction (n ):
352- errMsg + = " Local Function: " + n + " \n " ;
353- default :
354- errMsg + = " Unknown: " + stackItem + " \n " ;
355- }
356- }
339+ var stackBuf = new StringBuf ();
340+ stackBuf .add (" ==== STACK TRACE ====\n " );
341+ var callStack = CallStack .exceptionStack (true );
342+ for (stackItem in callStack ) {
343+ switch (stackItem ) {
344+ case FilePos (s , file , line , column ):
345+ stackBuf .add (" File: " + file + " (line " + line + " )\n " );
346+ case CFunction :
347+ stackBuf .add (" C Function\n " );
348+ case Module (m ):
349+ stackBuf .add (" Module: " + m + " \n " );
350+ case Method (classname , method ):
351+ stackBuf .add (" Method: " + classname + " ." + method + " \n " );
352+ case LocalFunction (n ):
353+ stackBuf .add (" Local Function: " + n + " \n " );
354+ case _ :
355+ stackBuf .add (" Unknown stack item: " + Std .string (stackItem ) + " \n " );
356+ }
357+ }
358+ errMsg + = stackBuf .toString ();
357359
358360 // Error details
359361 errMsg + = " \n ==== ERROR DETAILS ====\n " ;
@@ -407,7 +409,7 @@ class Main extends Sprite
407409 #if LUA_ALLOWED
408410 errMsg + = " \n ==== MOD INFO ====\n " ;
409411 errMsg + = " Current Mod: " + Mods .currentModDirectory + " \n " ;
410- @:privateAccess errMsg + = " Global Mods: " + Mods .globalMods .join (" , " ) + " \n " ;
412+ @:privateAccess errMsg + = " Global Mods:\n " + Mods .globalMods .join (' \n ' ) + " \n " ;
411413 #end
412414 } catch (e : Dynamic ) {
413415 errMsg + = " Failed to get mod info: " + e + " \n " ;
@@ -426,9 +428,16 @@ class Main extends Sprite
426428 var displayMsg = " The game crashed!\n " ;
427429 displayMsg + = " A crash report has been saved to:\n " + Path .normalize (saveCrashReport (errMsg )) + " \n\n " ;
428430 displayMsg + = " Error: " + Std .string (e .error ).split (" \n " )[0 ] + " \n " ;
429- #if officialBuild
430- displayMsg + = " \n Please report this issue on GitHub." ;
431- #end
431+ #if (officialBuild && !NotDeveloper)
432+ displayMsg + = " \n Please restart the game. If the same crash occurs again, please send the crash report to the GitHub Issues page.\n\n " ;
433+ displayMsg + = " How to send the crash report to the GitHub Issues page?\n " ;
434+ displayMsg + = " - Go to the game folder.\n " ;
435+ displayMsg + = " - Go to the 'crash' folder.\n " ;
436+ displayMsg + = " - Send the latest crash report file to the GitHub Issues page.\n " ;
437+ #else
438+ displayMsg + = " \n Hey Developer! Looks like you broke this engine again\n " ;
439+ displayMsg + = " Here's your crash report, enjoy your nightmares! Dev...\n " ;
440+ #end
432441
433442 Application .current .window .alert (displayMsg , " Crash Report" );
434443
0 commit comments