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

Function MoveCamera

TombEngine/Game/camera.cpp:316–438  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

314}
315
316void MoveCamera(GameVector* ideal, int speed, bool force)
317{
318 if (Lara.Control.Look.IsUsingBinoculars)
319 speed = 1;
320
321 if (OldCam.pos.Orientation != LaraItem->Pose.Orientation ||
322 OldCam.pos2.Orientation.x != Lara.ExtraHeadRot.x ||
323 OldCam.pos2.Orientation.y != Lara.ExtraHeadRot.y ||
324 OldCam.pos2.Position.x != Lara.ExtraTorsoRot.x ||
325 OldCam.pos2.Position.y != Lara.ExtraTorsoRot.y ||
326 OldCam.pos.Position != LaraItem->Pose.Position ||
327 OldCam.ActiveState != LaraItem->Animation.ActiveState ||
328 OldCam.TargetState != LaraItem->Animation.TargetState ||
329 OldCam.targetDistance != Camera.targetDistance ||
330 OldCam.targetElevation != Camera.targetElevation ||
331 OldCam.actualElevation != Camera.actualElevation ||
332 OldCam.actualAngle != Camera.actualAngle ||
333 OldCam.target.x != Camera.target.x ||
334 OldCam.target.y != Camera.target.y ||
335 OldCam.target.z != Camera.target.z ||
336 Camera.oldType != Camera.type ||
337 Lara.Control.Look.IsUsingBinoculars ||
338 force)
339 {
340 OldCam.pos.Orientation = LaraItem->Pose.Orientation;
341 OldCam.pos2.Orientation.x = Lara.ExtraHeadRot.x;
342 OldCam.pos2.Orientation.y = Lara.ExtraHeadRot.y;
343 OldCam.pos2.Position.x = Lara.ExtraTorsoRot.x;
344 OldCam.pos2.Position.y = Lara.ExtraTorsoRot.y;
345 OldCam.pos.Position = LaraItem->Pose.Position;
346 OldCam.ActiveState = LaraItem->Animation.ActiveState;
347 OldCam.TargetState = LaraItem->Animation.TargetState;
348 OldCam.targetDistance = Camera.targetDistance;
349 OldCam.targetElevation = Camera.targetElevation;
350 OldCam.actualElevation = Camera.actualElevation;
351 OldCam.actualAngle = Camera.actualAngle;
352 OldCam.target.x = Camera.target.x;
353 OldCam.target.y = Camera.target.y;
354 OldCam.target.z = Camera.target.z;
355 LastIdeal.x = ideal->x;
356 LastIdeal.y = ideal->y;
357 LastIdeal.z = ideal->z;
358 LastIdeal.RoomNumber = ideal->RoomNumber;
359 }
360 else
361 {
362 ideal->x = LastIdeal.x;
363 ideal->y = LastIdeal.y;
364 ideal->z = LastIdeal.z;
365 ideal->RoomNumber = LastIdeal.RoomNumber;
366 }
367
368 Camera.pos.x += (ideal->x - Camera.pos.x) / speed;
369 Camera.pos.y += (ideal->y - Camera.pos.y) / speed;
370 Camera.pos.z += (ideal->z - Camera.pos.z) / speed;
371 Camera.pos.RoomNumber = ideal->RoomNumber;
372
373 CalculateBounce(false);

Callers 5

LookCameraFunction · 0.85
RefreshFixedCameraFunction · 0.85
ChaseCameraFunction · 0.85
CombatCameraFunction · 0.85
FixedCameraFunction · 0.85

Calls 12

CalculateBounceFunction · 0.85
TestEnvironmentFunction · 0.85
GetPointCollisionFunction · 0.85
LOSAndReturnTargetFunction · 0.85
ItemsCollideCameraFunction · 0.85
LookAtFunction · 0.85
UpdateMikePosFunction · 0.85
Vector3iClass · 0.70
GetCeilingHeightMethod · 0.45
GetFloorHeightMethod · 0.45
ToVector3iMethod · 0.45
GetRoomNumberMethod · 0.45

Tested by

no test coverage detected