

GameState installs own InputHandler in init phase.
To change state, use m_manager->pushState(topState) or m_manager->changeState(newState)
Definition at line 21 of file GameState.h.
Public Member Functions | ||||
| GameState () | ||||
| virtual | ~GameState () | |||
| virtual bool | allowBg () const | |||
| bool | isRunning () const | |||
| bool | isOnBg () const | |||
| void | setNextState (GameState *nextState) | |||
| void | initState (StateManager *manager) | |||
| void | updateState () | |||
| ||||
| void | pauseState () | |||
| ||||
| void | resumeState () | |||
| Reactivate state after pause. | ||||
| void | cleanState () | |||
| Clean state after run. | ||||
| void | quitState () | |||
| void | pushState (GameState *new_state) | |||
| void | noteBg () | |||
| void | noteFg () | |||
| void | installHandlers () | |||
| Install own video and input handler. | ||||
| void | unHandlers () | |||
| Uninstall own video and input handler. | ||||
| void | receiveSimple (const SimpleMsg *msg) | |||
| Handle incoming message. | ||||
Protected Member Functions | ||||
| void | takeHandler (InputHandler *new_handler) | |||
| Obtain input handler. | ||||
| const InputProvider * | getInput () | |||
| Returns wrapped input. | ||||
| virtual void | own_initState ()=0 | |||
| virtual void | own_updateState ()=0 | |||
| virtual void | own_pauseState ()=0 | |||
| virtual void | own_resumeState ()=0 | |||
| virtual void | own_cleanState ()=0 | |||
| virtual void | own_noteBg () | |||
| virtual void | own_noteFg () | |||
| void | changeState (GameState *new_state) | |||
| void | registerDrawable (Drawable *drawable) | |||
| Add new drawable to drawers fifo. | ||||
| void | deregisterDrawable (const Drawable *drawable) | |||
|
|
Definition at line 23 of file GameState.cpp. 00024 {
00025 m_nextState = NULL;
00026 m_handler = NULL;
00027 m_active = false;
00028 m_onBg = false;
00029 m_drawer = new MultiDrawer();
00030 }
|
|
|
Definition at line 32 of file GameState.cpp. 00033 {
00034 if (m_handler) {
00035 delete m_handler;
00036 }
00037 delete m_drawer;
00038 }
|
|
|
Reimplemented in MenuHelp, MenuOptions, KeyConsole, and PosterScroller. Definition at line 48 of file GameState.h. 00048 { return false; }
|
|
|
Definition at line 158 of file GameState.cpp. 00159 {
00160 m_manager->changeState(this, new_state);
00161 }
|
|
|
Clean state after run.
Definition at line 123 of file GameState.cpp. 00124 {
00125 LOG_DEBUG(ExInfo("cleanState").addInfo("name", getName()));
00126 if (!m_active) {
00127 throw LogicException(ExInfo("clean - state is not active")
00128 .addInfo("name", getName()));
00129 }
00130 own_cleanState();
00131 unHandlers();
00132
00133 m_active = false;
00134 m_onBg = false;
00135 m_manager = NULL;
00136 removeWatchers();
00137 MessagerAgent::agent()->removeListener(getName());
00138 }
|
|
|
Definition at line 213 of file GameState.cpp. 00214 {
00215 m_drawer->removeDrawer(drawable);
00216 }
|
|
|
Returns wrapped input.
Definition at line 57 of file GameState.cpp. 00058 {
00059 return m_handler;
00060 }
|
|
|
Definition at line 63 of file GameState.cpp. 00064 {
00065 LOG_DEBUG(ExInfo("initState").addInfo("name", getName()));
00066 MessagerAgent::agent()->addListener(this);
00067 m_manager = manager;
00068 m_active = true;
00069 m_onBg = false;
00070 own_initState();
00071 }
|
|
|
Install own video and input handler.
Definition at line 183 of file GameState.cpp. 00184 {
00185 LOG_DEBUG(ExInfo("installHandlers").addInfo("state", getName()));
00186 InputAgent::agent()->installHandler(m_handler);
00187 VideoAgent::agent()->acceptDrawer(m_drawer);
00188 }
|
|
|
Definition at line 50 of file GameState.h. 00050 { return m_onBg; }
|
|
|
Definition at line 49 of file GameState.h. 00049 { return m_active; }
|
|
|
Definition at line 164 of file GameState.cpp. 00165 {
00166 LOG_DEBUG(ExInfo("noteBg").addInfo("name", getName()));
00167 own_noteBg();
00168 m_onBg = true;
00169 }
|
|
|
Definition at line 172 of file GameState.cpp. 00173 {
00174 LOG_DEBUG(ExInfo("noteFg").addInfo("name", getName()));
00175 m_onBg = false;
00176 own_noteFg();
00177 }
|
|
|
Implemented in Level, Pedometer, WorldMap, MenuHelp, MenuOptions, KeyConsole, DemoMode, and PosterState. |
|
|
Implemented in Level, Pedometer, WorldMap, MenuHelp, MenuOptions, KeyConsole, DemoMode, PosterScroller, and PosterState. |
|
|
Reimplemented in Level. Definition at line 39 of file GameState.h. 00039 {}
|
|
|
Reimplemented in Level. Definition at line 40 of file GameState.h. 00040 {}
|
|
|
Implemented in Level, Pedometer, WorldMap, MenuHelp, MenuOptions, KeyConsole, DemoMode, and PosterState. |
|
|
Implemented in Level, Pedometer, WorldMap, MenuHelp, MenuOptions, KeyConsole, DemoMode, and PosterState. |
|
|
Implemented in Level, Pedometer, WorldMap, MenuHelp, MenuOptions, KeyConsole, DemoMode, PosterScroller, and PosterState. |
|
|
Definition at line 91 of file GameState.cpp. 00092 {
00093 if (!m_active) {
00094 throw LogicException(ExInfo("pause - state is not active")
00095 .addInfo("name", getName()));
00096 }
00097
00098 own_pauseState();
00099 m_active = false;
00100 m_onBg = false;
00101 }
|
|
|
Definition at line 152 of file GameState.cpp. 00153 {
00154 m_manager->pushState(this, new_state);
00155 }
|
|
|
Definition at line 141 of file GameState.cpp. 00142 {
00143 if (m_nextState) {
00144 changeState(m_nextState);
00145 }
00146 else {
00147 m_manager->popState(this);
00148 }
00149 }
|
|
|
Handle incoming message. Messages:
Reimplemented from BaseListener. Definition at line 224 of file GameState.cpp. 00225 {
00226 if (msg->equalsName("quit")) {
00227 quitState();
00228 }
00229 else {
00230 LOG_WARNING(ExInfo("unknown msg")
00231 .addInfo("msg", msg->toString()));
00232 }
00233 }
|
|
|
Add new drawable to drawers fifo. NOTE: order is important, the first inserted drawer will be on background Definition at line 207 of file GameState.cpp. 00208 {
00209 m_drawer->acceptDrawer(drawable);
00210 }
|
|
|
Reactivate state after pause.
Definition at line 108 of file GameState.cpp. 00109 {
00110 if (m_active) {
00111 throw LogicException(ExInfo("resume - state is already active")
00112 .addInfo("name", getName()));
00113 }
00114 m_active = true;
00115 own_resumeState();
00116 }
|
|
|
Definition at line 51 of file GameState.h. 00051 { m_nextState = nextState; }
|
|
|
Obtain input handler.
Definition at line 45 of file GameState.cpp. 00046 {
00047 if (m_handler) {
00048 delete m_handler;
00049 }
00050 m_handler = new_handler;
00051 }
|
|
|
Uninstall own video and input handler.
Definition at line 194 of file GameState.cpp. 00195 {
00196 InputAgent::agent()->installHandler(NULL);
00197 VideoAgent::agent()->removeDrawer(m_drawer);
00198 }
|
|
|
Definition at line 77 of file GameState.cpp. 00078 {
00079 if (!m_active) {
00080 throw LogicException(ExInfo("update - state is not active")
00081 .addInfo("name", getName()));
00082 }
00083
00084 own_updateState();
00085 }
|
1.4.2