diff options
Diffstat (limited to 'src/gamestate.cpp')
| -rw-r--r-- | src/gamestate.cpp | 40 | 
1 files changed, 40 insertions, 0 deletions
| diff --git a/src/gamestate.cpp b/src/gamestate.cpp index 902d0a9..a3758ce 100644 --- a/src/gamestate.cpp +++ b/src/gamestate.cpp | |||
| @@ -65,6 +65,46 @@ void GameState::callFunction( const Bu::String &sName ) | |||
| 65 | pGame->getFunction( sName )->call( *this ); | 65 | pGame->getFunction( sName )->call( *this ); | 
| 66 | } | 66 | } | 
| 67 | 67 | ||
| 68 | bool GameState::hasVariable( const Bu::String &sName, ScopeId id ) | ||
| 69 | { | ||
| 70 | switch( id ) | ||
| 71 | { | ||
| 72 | case sidLocal: | ||
| 73 | return lsLocal.peek()->has( sName ); | ||
| 74 | |||
| 75 | case sidGlobal: | ||
| 76 | return sGlobal.has( sName ); | ||
| 77 | |||
| 78 | case sidPlayer: | ||
| 79 | return sPlayer.has( sName ); | ||
| 80 | |||
| 81 | case sidSituation: | ||
| 82 | return hsSituation.get( sCurSituation )->has( sName ); | ||
| 83 | } | ||
| 84 | |||
| 85 | throw Bu::ExceptionBase("Really bad scopeid passed into getVariable"); | ||
| 86 | } | ||
| 87 | |||
| 88 | void GameState::delVariable( const Bu::String &sName, ScopeId id ) | ||
| 89 | { | ||
| 90 | switch( id ) | ||
| 91 | { | ||
| 92 | case sidLocal: | ||
| 93 | return lsLocal.peek()->erase( sName ); | ||
| 94 | |||
| 95 | case sidGlobal: | ||
| 96 | return sGlobal.erase( sName ); | ||
| 97 | |||
| 98 | case sidPlayer: | ||
| 99 | return sPlayer.erase( sName ); | ||
| 100 | |||
| 101 | case sidSituation: | ||
| 102 | return hsSituation.get( sCurSituation )->erase( sName ); | ||
| 103 | } | ||
| 104 | |||
| 105 | throw Bu::ExceptionBase("Really bad scopeid passed into getVariable"); | ||
| 106 | } | ||
| 107 | |||
| 68 | Variable GameState::getVariable( const Bu::String &sName, ScopeId id ) | 108 | Variable GameState::getVariable( const Bu::String &sName, ScopeId id ) | 
| 69 | { | 109 | { | 
| 70 | try | 110 | try | 
