MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / zGameModeSwitch

Function zGameModeSwitch

src/SB/Game/zGameState.cpp:254–285  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

252}
253
254void 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}

Callers 8

ZDSP_doCommandFunction · 0.70
zSaveLoad_LoadLoopFunction · 0.70
zSaveLoad_SaveLoopFunction · 0.70
zGameStateSwitchEventFunction · 0.70
zGamePauseFunction · 0.70
zGameStallFunction · 0.70
zMenuLoopFunction · 0.70
xTRCResetFunction · 0.50

Calls 2

zEntEventAllOfTypeFunction · 0.85
xSndPauseAllFunction · 0.50

Tested by

no test coverage detected