From e1e781bb2135ef78592226f1a3eaba4925702f1f Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 3 May 2021 16:38:41 -0700 Subject: :star: --- NET/worlds/scape/UndoStack.java | 66 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 NET/worlds/scape/UndoStack.java (limited to 'NET/worlds/scape/UndoStack.java') diff --git a/NET/worlds/scape/UndoStack.java b/NET/worlds/scape/UndoStack.java new file mode 100644 index 0000000..2243772 --- /dev/null +++ b/NET/worlds/scape/UndoStack.java @@ -0,0 +1,66 @@ +/* */ package NET.worlds.scape; +/* */ +/* */ import NET.worlds.console.Console; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ class UndoStack +/* */ { +/* 18 */ private Undoable[] stack = new Undoable[100]; +/* */ +/* */ +/* */ private int stackPtr; +/* */ +/* */ +/* */ +/* */ Undoable peek() +/* */ { +/* 27 */ return this.stackPtr - 1 >= 0 ? this.stack[(this.stackPtr - 1)] : +/* 28 */ this.stack[(this.stack.length - 1)]; +/* */ } +/* */ +/* */ void push(Undoable undo) +/* */ { +/* */ for (;;) { +/* */ try { +/* 35 */ this.stack[(this.stackPtr++)] = undo; +/* 36 */ return; +/* */ } catch (IndexOutOfBoundsException e) { +/* 38 */ this.stackPtr = 0; +/* */ } +/* */ } +/* */ } +/* */ +/* */ boolean undo() +/* */ { +/* */ for (;;) { +/* */ try { +/* 47 */ Undoable u = this.stack[(--this.stackPtr)]; +/* 48 */ if (u != null) { +/* 49 */ u.undo(); +/* 50 */ this.stack[this.stackPtr] = null; +/* 51 */ return true; +/* */ } +/* 53 */ Console.println(Console.message("No-undo")); +/* 54 */ return false; +/* */ } catch (IndexOutOfBoundsException e) { +/* 56 */ this.stackPtr = this.stack.length; +/* */ } +/* */ } +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\UndoStack.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */ \ No newline at end of file -- cgit v1.2.3