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

Function InitializePlayerVehicle

TombEngine/Game/Lara/lara_initialise.cpp:192–264  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

190}
191
192void InitializePlayerVehicle(ItemInfo& playerItem)
193{
194 if (PlayerVehicleObjectID == GAME_OBJECT_ID::ID_NO_OBJECT)
195 return;
196
197 auto* vehicle = FindItem(PlayerVehicleObjectID);
198 if (vehicle == nullptr)
199 return;
200
201 // Restore vehicle.
202 TENLog(fmt::format("Transferring vehicle {} from the previous level.", GetObjectName(PlayerVehicleObjectID)));
203 vehicle->Pose = playerItem.Pose;
204 SetLaraVehicle(&playerItem, vehicle);
205 playerItem.Animation = PlayerAnim;
206
207 // HACK: Reinitialize vehicles which require specific parameters to be reset according to Lara pose.
208
209 switch (vehicle->ObjectNumber)
210 {
211 case GAME_OBJECT_ID::ID_KAYAK:
212 InitializeKayak(vehicle->Index);
213 KayakPaddleTake(GetKayakInfo(&g_Level.Items[vehicle->Index]), &playerItem);
214 break;
215
216 case GAME_OBJECT_ID::ID_MOTORBIKE:
217 InitializeMotorbike(vehicle->Index);
218 break;
219
220 case GAME_OBJECT_ID::ID_JEEP:
221 InitializeJeep(vehicle->Index);
222 break;
223
224 case GAME_OBJECT_ID::ID_QUAD:
225 InitializeQuadBike(vehicle->Index);
226 break;
227
228 case GAME_OBJECT_ID::ID_SNOWMOBILE:
229 InitializeSkidoo(vehicle->Index);
230 break;
231
232 case GAME_OBJECT_ID::ID_MINECART:
233 MinecartWrenchTake(GetMinecartInfo(&g_Level.Items[vehicle->Index]), &playerItem);
234 break;
235
236 case GAME_OBJECT_ID::ID_SPEEDBOAT:
237 InitializeSpeedboat(vehicle->Index);
238 DoSpeedboatMount(&g_Level.Items[vehicle->Index], &playerItem, VehicleMountType::LevelStart);
239 break;
240
241 case GAME_OBJECT_ID::ID_RUBBER_BOAT:
242 InitializeRubberBoat(vehicle->Index);
243 DoRubberBoatMount(&g_Level.Items[vehicle->Index], &playerItem, VehicleMountType::LevelStart);
244 break;
245
246 case GAME_OBJECT_ID::ID_UPV:
247 DoUPVMount(&g_Level.Items[vehicle->Index], &playerItem, VehicleMountType::LevelStart);
248 GetUPVInfo(&g_Level.Items[vehicle->Index])->Flags = UPVFlags::UPV_FLAG_CONTROL;
249 break;

Callers 1

LoadHubMethod · 0.85

Calls 15

FindItemFunction · 0.85
TENLogFunction · 0.85
SetLaraVehicleFunction · 0.85
InitializeKayakFunction · 0.85
KayakPaddleTakeFunction · 0.85
GetKayakInfoFunction · 0.85
InitializeMotorbikeFunction · 0.85
InitializeJeepFunction · 0.85
InitializeQuadBikeFunction · 0.85
InitializeSkidooFunction · 0.85
MinecartWrenchTakeFunction · 0.85
GetMinecartInfoFunction · 0.85

Tested by

no test coverage detected