diff options
Diffstat (limited to 'src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java')
-rwxr-xr-x | src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java index 30db7a2..2daefab 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java | |||
@@ -63,21 +63,27 @@ public class SpecialEvent { | |||
63 | public void DisplayMessage(String message) throws InterruptedException | 63 | public void DisplayMessage(String message) throws InterruptedException |
64 | { | 64 | { |
65 | MessageWindow mw; | 65 | MessageWindow mw; |
66 | 66 | ||
67 | if (faceSet.equals("")) | 67 | if (faceSet.equals("")) |
68 | { | 68 | { |
69 | mw = new MessageWindow(message); | 69 | mw = new MessageWindow(message); |
70 | } else { | 70 | } else { |
71 | mw = new MessageWindow(message, faceSet, face); | 71 | mw = new MessageWindow(message, faceSet, face); |
72 | } | 72 | } |
73 | 73 | ||
74 | Display.registerRenderable(mw); | 74 | Display.registerRenderable(mw); |
75 | KeyboardInput.registerInputable(mw); | 75 | KeyboardInput.registerInputable(mw); |
76 | |||
77 | mw.waitForCompletion(); | ||
78 | 76 | ||
79 | Display.unregisterRenderable(mw); | 77 | try { |
80 | KeyboardInput.unregisterInputable(mw); | 78 | mw.waitForCompletion(); |
79 | } catch (InterruptedException ex) { | ||
80 | /* The special event has been cancelled, kill the message and then | ||
81 | * propogate the exception to the EventHandler */ | ||
82 | throw ex; | ||
83 | } finally { | ||
84 | Display.unregisterRenderable(mw); | ||
85 | KeyboardInput.unregisterInputable(mw); | ||
86 | } | ||
81 | } | 87 | } |
82 | 88 | ||
83 | /** | 89 | /** |