summaryrefslogtreecommitdiff
path: root/src/situation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/situation.cpp')
-rw-r--r--src/situation.cpp52
1 files changed, 51 insertions, 1 deletions
diff --git a/src/situation.cpp b/src/situation.cpp
index 0d24aa4..d7f98aa 100644
--- a/src/situation.cpp
+++ b/src/situation.cpp
@@ -1,10 +1,60 @@
1#include "situation.h" 1#include "situation.h"
2 2
3Situation::Situation() 3#include "astbranch.h"
4#include "gamestate.h"
5
6#include <bu/formatter.h>
7
8Situation::Situation( const Bu::String &sName ) :
9 sName( sName ),
10 pAstSetup( NULL ),
11 pAstEnter( NULL )
4{ 12{
5} 13}
6 14
7Situation::~Situation() 15Situation::~Situation()
8{ 16{
17 delete pAstSetup;
18 delete pAstEnter;
19}
20
21void Situation::setAst( class AstBranch *pAst, Situation::Mode m )
22{
23 switch( m )
24 {
25 case modeSetup:
26 pAstSetup = pAst;
27 break;
28
29 case modeEnter:
30 pAstEnter = pAst;
31 break;
32 }
33}
34
35void Situation::exec( class GameState &gState, Situation::Mode m )
36{
37 switch( m )
38 {
39 case modeSetup:
40 gState.parse( pAstSetup );
41 break;
42
43 case modeEnter:
44 gState.parse( pAstEnter );
45 break;
46 }
47}
48
49Bu::Formatter &operator<<( Bu::Formatter &f, Situation::Mode m )
50{
51 switch( m )
52 {
53 case Situation::modeSetup:
54 return f << "Setup";
55
56 case Situation::modeEnter:
57 return f << "Enter";
58 }
9} 59}
10 60