summaryrefslogtreecommitdiff
path: root/src/gamestate.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gamestate.h')
-rw-r--r--src/gamestate.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/gamestate.h b/src/gamestate.h
index 2754873..cb02322 100644
--- a/src/gamestate.h
+++ b/src/gamestate.h
@@ -1,6 +1,10 @@
1#ifndef GAME_STATE_H 1#ifndef GAME_STATE_H
2#define GAME_STATE_H 2#define GAME_STATE_H
3 3
4#include "astbranch.h"
5#include "variable.h"
6#include "scope.h"
7
4class Game; 8class Game;
5 9
6class GameState 10class GameState
@@ -9,8 +13,25 @@ public:
9 GameState( Game *pGame ); 13 GameState( Game *pGame );
10 virtual ~GameState(); 14 virtual ~GameState();
11 15
16 void parse( class AstBranch *pAst );
17
18 Variable pop() { return lStack.peekPop(); }
19 void push( const Variable &v ) { lStack.push( v ); }
20
21 void callFunction( const Bu::String &sName );
22
12private: 23private:
24 void parse( const AstBranch::NodeList &lCode );
25
26private:
27 typedef Bu::List<Scope *> ScopeList;
28 typedef Bu::Hash<Bu::String, Scope *> ScopeHash;
13 Game *pGame; 29 Game *pGame;
30 Scope sGlobal;
31 ScopeList lsLocal;
32 ScopeHash hsSituation;
33
34 VariableList lStack;
14}; 35};
15 36
16#endif 37#endif