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

Function InitializeLara

TombEngine/Game/Lara/lara_initialise.cpp:58–105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

56}
57
58void InitializeLara(bool restore)
59{
60 if (LaraItem == nullptr || LaraItem->Index == NO_VALUE)
61 return;
62
63 ZeroMemory(&Lara, sizeof(LaraInfo));
64
65 LaraItem->Data = &Lara;
66 LaraItem->Collidable = false;
67
68 Lara.Context = PlayerContext(*LaraItem, LaraCollision);
69
70 LaraItem->HitPoints = LARA_HEALTH_MAX;
71 Lara.Status.Air = LARA_AIR_MAX;
72 Lara.Status.Exposure = LARA_EXPOSURE_MAX;
73 Lara.Status.Poison = 0;
74 Lara.Status.Stamina = LARA_STAMINA_MAX;
75
76 Lara.Control.Look.Mode = LookMode::None;
77 Lara.HitDirection = NO_VALUE;
78 Lara.Control.Weapon.WeaponItem = NO_VALUE;
79 Lara.Context.WaterSurfaceDist = 100;
80
81 Lara.ExtraAnim = NO_VALUE;
82 Lara.Context.Vehicle = NO_VALUE;
83 Lara.Location = NO_VALUE;
84 Lara.HighestLocation = NO_VALUE;
85 Lara.Control.Rope.Ptr = NO_VALUE;
86 Lara.Control.HandStatus = HandStatus::Free;
87
88 InitializePlayerStateMachine();
89 InitializeLaraMeshes(LaraItem);
90 InitializeLaraStartPosition(*LaraItem);
91
92 if (restore)
93 {
94 InitializeLaraLevelJump(LaraItem, &PlayerBackup);
95 }
96 else
97 {
98 InitializeLaraDefaultInventory(*LaraItem);
99 }
100
101 // Player anim init should happen after leveljump init.
102 InitializeLaraAnims(LaraItem);
103
104 g_Hud.StatusBars.Initialize(*LaraItem);
105}
106
107void InitializeLaraMeshes(ItemInfo* item)
108{

Callers 1

LoadLevelFunction · 0.85

Calls 8

PlayerContextClass · 0.85
InitializeLaraMeshesFunction · 0.85
InitializeLaraLevelJumpFunction · 0.85
InitializeLaraAnimsFunction · 0.85
InitializeMethod · 0.45

Tested by

no test coverage detected