diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2011-12-29 14:13:21 -0700 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2011-12-29 14:13:21 -0700 |
| commit | 533310f646f1b1a00250a361f627967c420f1eef (patch) | |
| tree | 0ade5ffb70259af7f4e2be56497e4e4707bc079a /src/gamebuilder.cpp | |
| parent | 1bc10d1408eb29b0675a030e029155dd046b1dd8 (diff) | |
| download | stage-533310f646f1b1a00250a361f627967c420f1eef.tar.gz stage-533310f646f1b1a00250a361f627967c420f1eef.tar.bz2 stage-533310f646f1b1a00250a361f627967c420f1eef.tar.xz stage-533310f646f1b1a00250a361f627967c420f1eef.zip | |
Situations & their modes are built.
Diffstat (limited to 'src/gamebuilder.cpp')
| -rw-r--r-- | src/gamebuilder.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/gamebuilder.cpp b/src/gamebuilder.cpp index ee85129..6c42fb0 100644 --- a/src/gamebuilder.cpp +++ b/src/gamebuilder.cpp | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | #include "astleafliteral.h" | 7 | #include "astleafliteral.h" |
| 8 | #include "astfunction.h" | 8 | #include "astfunction.h" |
| 9 | #include "command.h" | 9 | #include "command.h" |
| 10 | #include "situation.h" | ||
| 10 | 11 | ||
| 11 | using namespace Bu; | 12 | using namespace Bu; |
| 12 | 13 | ||
| @@ -16,7 +17,8 @@ GameBuilder::GameBuilder() : | |||
| 16 | pCurNode( NULL ), | 17 | pCurNode( NULL ), |
| 17 | pCurRoot( NULL ), | 18 | pCurRoot( NULL ), |
| 18 | pCurCmd( NULL ), | 19 | pCurCmd( NULL ), |
| 19 | pCurFnc( NULL ) | 20 | pCurFnc( NULL ), |
| 21 | pCurSit( NULL ) | ||
| 20 | { | 22 | { |
| 21 | pGame = new Game(); | 23 | pGame = new Game(); |
| 22 | } | 24 | } |
| @@ -58,11 +60,26 @@ void GameBuilder::endFunction() | |||
| 58 | 60 | ||
| 59 | void GameBuilder::beginSituation( const Bu::String &sName ) | 61 | void GameBuilder::beginSituation( const Bu::String &sName ) |
| 60 | { | 62 | { |
| 63 | pCurSit = new Situation( sName ); | ||
| 61 | sio << "New situation: " << sName << sio.nl; | 64 | sio << "New situation: " << sName << sio.nl; |
| 62 | } | 65 | } |
| 63 | 66 | ||
| 67 | void GameBuilder::beginSituationMode( Situation::Mode m ) | ||
| 68 | { | ||
| 69 | pCurNode = pCurRoot = new AstBranch( AstNode::tScope ); | ||
| 70 | eCurSitMode = m; | ||
| 71 | } | ||
| 72 | |||
| 73 | void GameBuilder::closeSituationMode() | ||
| 74 | { | ||
| 75 | sio << "Set situation mode " << eCurSitMode << " to " << *pCurRoot << sio.nl; | ||
| 76 | pCurSit->setAst( pCurRoot, eCurSitMode ); | ||
| 77 | pCurRoot = pCurNode = NULL; | ||
| 78 | } | ||
| 79 | |||
| 64 | void GameBuilder::endSituation() | 80 | void GameBuilder::endSituation() |
| 65 | { | 81 | { |
| 82 | pGame->hSituation.insert( pCurSit->getName(), pCurSit ); | ||
| 66 | sio << "Situation ended." << sio.nl; | 83 | sio << "Situation ended." << sio.nl; |
| 67 | } | 84 | } |
| 68 | 85 | ||
