aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--newgui.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/newgui.h b/newgui.h
index 8b52e15fcd..7145699ed9 100644
--- a/newgui.h
+++ b/newgui.h
@@ -21,15 +21,26 @@
#ifndef NEWGUI_H
#define NEWGUI_H
-#include <stack>
-
#include "scummsys.h"
class Scumm;
class Dialog;
-typedef std::stack<Dialog *> DialogStack;
+// Extremly simple stack class, doesn't even do any error checking (for now)
+class DialogStack {
+protected:
+ Dialog *_stack[10]; // Anybody nesting dialogs deeper than 4 is mad anyway
+ int _size;
+public:
+ DialogStack() : _size(0) {}
+
+ bool empty() const { return _size <= 0; }
+ void push(Dialog *d) { _stack[_size++] = d; }
+ Dialog *top() const { return _stack[_size-1]; }
+ void pop() { if (_size > 0) _stack[--_size] = 0; }
+};
+// This class hopefully will replace the old Gui class completly one day
class NewGui {
friend class Dialog;
public:
@@ -50,7 +61,6 @@ public:
protected:
Scumm *_s;
bool _need_redraw;
-// Dialog *_activeDialog;
DialogStack _dialogStack;
Dialog *_pauseDialog;