| 252 | } |
| 253 | |
| 254 | void zGameModeSwitch(eGameMode modeNew) |
| 255 | { |
| 256 | eGameMode modeOld = gGameMode; |
| 257 | |
| 258 | bool pausing = |
| 259 | (modeNew == eGameMode_Save || modeNew == eGameMode_Pause || modeNew == eGameMode_Stall); |
| 260 | |
| 261 | bool unpausing = |
| 262 | (modeOld == eGameMode_Save || modeOld == eGameMode_Pause || modeOld == eGameMode_Stall); |
| 263 | |
| 264 | if (modeOld == eGameMode_Game && pausing) |
| 265 | { |
| 266 | xSndPauseAll(1, 1); |
| 267 | } |
| 268 | else if (modeNew == eGameMode_Game && unpausing) |
| 269 | { |
| 270 | xSndPauseAll(0, 0); |
| 271 | |
| 272 | globals.pad0->pressed = 0; |
| 273 | globals.pad0->released = 0; |
| 274 | globals.pad0->analog1.x = 0; |
| 275 | globals.pad0->analog1.y = 0; |
| 276 | globals.pad0->analog2.x = 0; |
| 277 | globals.pad0->analog2.y = 0; |
| 278 | } |
| 279 | |
| 280 | // non-matching: scheduling |
| 281 | |
| 282 | gGameMode = modeNew; |
| 283 | |
| 284 | zEntEventAllOfType(sGameMode_DispatchTable[modeNew], eBaseTypeDispatcher); |
| 285 | } |
no test coverage detected