Browse Source

Temporarily guard error state so we don't great a pile of modal windows

Josh Engebretson 10 years ago
parent
commit
00a6a04696
1 changed files with 16 additions and 9 deletions
  1. 16 9
      Script/AtomicEditor/ui/playmode/PlayMode.ts

+ 16 - 9
Script/AtomicEditor/ui/playmode/PlayMode.ts

@@ -3,22 +3,29 @@ import EditorEvents = require("../../editor/EditorEvents");
 
 
 class PlayMode extends Atomic.ScriptObject {
 class PlayMode extends Atomic.ScriptObject {
 
 
-  constructor() {
+    inErrorState: boolean;
 
 
-    super();
+    constructor() {
 
 
-    this.subscribeToEvent("IPCJSError", (ev:Atomic.IPCJSErrorEvent) => this.handleIPCJSError(ev));
+        super();
 
 
-  }
+        this.subscribeToEvent("IPCJSError", (ev: Atomic.IPCJSErrorEvent) => this.handleIPCJSError(ev));
 
 
-  handleIPCJSError(ev:Atomic.IPCJSErrorEvent) {
+    }
 
 
-    var errorMessage = ev.errorFileName + " - " + ev.errorLineNumber + " : " + ev.errorMessage;
-    this.sendEvent(EditorEvents.ModalError, { title: "Player JavaScript Error", message: errorMessage});
+    handleIPCJSError(ev: Atomic.IPCJSErrorEvent) {
 
 
-    Atomic.graphics.raiseWindow();
+        if (this.inErrorState)
+            return;
 
 
-  }
+        this.inErrorState = true;
+
+        var errorMessage = ev.errorFileName + " - " + ev.errorLineNumber + " : " + ev.errorMessage;
+        this.sendEvent(EditorEvents.ModalError, { title: "Player JavaScript Error", message: errorMessage });
+
+        Atomic.graphics.raiseWindow();
+
+    }
 
 
 }
 }