MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / FreezePhase

Function FreezePhase

TombEngine/Game/control/control.cpp:283–349  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

281}
282
283GameStatus FreezePhase()
284{
285 // If needed when first entering freeze mode, do initialization.
286 if (g_GameFlow->LastFreezeMode == FreezeMode::None)
287 {
288 // Capture the screen for drawing it as a background.
289 if (g_GameFlow->CurrentFreezeMode == FreezeMode::Full)
290 g_Renderer.DumpGameScene(SceneRenderMode::NoHud);
291
292 StopRumble();
293 }
294
295 // Update last freeze mode here, so that items won't update inside freeze loop.
296 g_GameFlow->LastFreezeMode = g_GameFlow->CurrentFreezeMode;
297
298 g_Renderer.PrepareScene();
299 g_Renderer.SaveOldState();
300
301 ClearLensFlares();
302 ClearAllDisplaySprites();
303
304 SetupInterpolation();
305 PrepareCamera();
306
307 g_DrawItems.Prepare();
308 g_GameStringsHandler->ProcessDisplayStrings(DELTA_TIME);
309
310 // Track previous player animation to queue hair update if needed.
311 int lastAnimNumber = LaraItem->Animation.AnimNumber;
312
313 // Poll controls and call scripting events.
314 HandleControls(false);
315 g_GameScript->OnFreeze();
316 HandleAllGlobalEvents(EventType::Freeze, (Activator)short(LaraItem->Index));
317
318 // Partially update scene if not using full freeze mode.
319 if (g_GameFlow->LastFreezeMode != FreezeMode::Full)
320 {
321 if (g_GameFlow->LastFreezeMode == FreezeMode::Player)
322 UpdateLara(LaraItem, false);
323
324 UpdateAllItems();
325 UpdateGlobalLensFlare();
326
327 UpdateCamera();
328
329 PlaySoundSources();
330 Sound_UpdateScene();
331 }
332
333 g_DrawItems.Update();
334
335 // HACK: Update player hair if animation was switched in spectator mode.
336 // Needed for photo mode and other similar functionality.
337 if (g_GameFlow->LastFreezeMode == FreezeMode::Spectator &&
338 lastAnimNumber != LaraItem->Animation.AnimNumber)
339 {
340 lastAnimNumber = LaraItem->Animation.AnimNumber;

Callers 1

ControlPhaseFunction · 0.85

Calls 15

StopRumbleFunction · 0.85
ClearLensFlaresFunction · 0.85
ClearAllDisplaySpritesFunction · 0.85
SetupInterpolationFunction · 0.85
PrepareCameraFunction · 0.85
HandleControlsFunction · 0.85
HandleAllGlobalEventsFunction · 0.85
UpdateLaraFunction · 0.85
UpdateAllItemsFunction · 0.85
UpdateGlobalLensFlareFunction · 0.85
UpdateCameraFunction · 0.85
PlaySoundSourcesFunction · 0.85

Tested by

no test coverage detected