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

Function zGameUpdateMode

src/SB/Game/zGame.cpp:641–848  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

639iColor_tag black = { 0x00, 0x00, 0x00, 0xFF };
640
641static void zGameUpdateMode()
642{
643 xPortalAsset* passet;
644 char* id;
645 U32 nextSceneID;
646 xBase* sendTo;
647 xMarkerAsset* m;
648 U32 size;
649
650 if (gGameMode != 0x0C)
651 {
652 return;
653 }
654
655 if ((gSoak != 0) && (gGameState == eGameState_Play) && (globals.cmgr == NULL))
656 {
657 soaktime -= (1.0f / 30.0f);
658 if (soaktime < 0.0f)
659 {
660 id = xUtil_idtag2string(globals.sceneCur->sceneID, 0);
661 xMemDebug_SoakLog(id);
662 gGameState = eGameState_SceneSwitch;
663 dummyPortalAsset.assetCameraID = 0;
664 dummyPortalAsset.assetMarkerID = 0;
665 dummyPortalAsset.ang = 0.0f;
666 dummyPortalAsset.sceneID = PickNextSoak();
667 dummyPortal.passet = &dummyPortalAsset;
668 globals.sceneCur->pendingPortal = &dummyPortal;
669 soaktime = (xurand() * 4.0f) + 0.2f;
670 }
671 }
672
673 if (gGameState == eGameState_Play)
674 {
675 iTimeGameAdvance(sTimeElapsed);
676 if (globals.pad0->pressed & 1)
677 {
678 switch (zGameOkToPause())
679 {
680 case 0:
681 xTRCReset();
682 startPressed = 1;
683 break;
684 case 1:
685 zGamePause();
686 break;
687 case 2:
688 zGameStall();
689 break;
690 }
691 }
692 else
693 {
694 startPressed = 0;
695 }
696 }
697 else if (gGameState == eGameState_GameStats)
698 {

Callers

nothing calls this directly

Calls 15

xMemDebug_SoakLogFunction · 0.85
xurandFunction · 0.85
iTimeGameAdvanceFunction · 0.85
zGameOkToPauseFunction · 0.85
xTRCResetFunction · 0.85
zGamePauseFunction · 0.85
zGameStallFunction · 0.85
zGameExitFunction · 0.85
zGameInitFunction · 0.85
zSaveLoadPreAutoSaveFunction · 0.85
zSceneFindObjectFunction · 0.85
xVec3CopyFunction · 0.85

Tested by

no test coverage detected