| 56 | } |
| 57 | |
| 58 | void 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 | |
| 107 | void InitializeLaraMeshes(ItemInfo* item) |
| 108 | { |
no test coverage detected