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

Function CalculateCamera

TombEngine/Game/camera.cpp:1080–1329  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1078}
1079
1080void CalculateCamera(const CollisionInfo& coll)
1081{
1082 if (ItemCameraOn)
1083 return;
1084
1085 if (!HandlePlayerOptics(*LaraItem))
1086 {
1087 Camera.pos = LastPosition;
1088 Camera.target = LastTarget;
1089 }
1090
1091 if (Lara.Control.Look.IsUsingBinoculars)
1092 {
1093 BinocularCamera(LaraItem);
1094 return;
1095 }
1096 else
1097 {
1098 LastPosition = Camera.pos;
1099 }
1100
1101 if (UseForcedFixedCamera)
1102 {
1103 Camera.type = CameraType::Fixed;
1104 if (Camera.oldType != CameraType::Fixed)
1105 Camera.speed = 1;
1106 }
1107
1108 // Camera is in a water room, play water sound effect.
1109 if (TestEnvironment(ENV_FLAG_WATER, Camera.pos.RoomNumber))
1110 {
1111 SoundEffect(SFX_TR4_UNDERWATER, nullptr, SoundEnvironment::Always);
1112 if (Camera.underwater == false)
1113 Camera.underwater = true;
1114 }
1115 else
1116 {
1117 if (Camera.underwater == true)
1118 Camera.underwater = false;
1119 }
1120
1121 ItemInfo* item = nullptr;
1122 bool isFixedCamera = false;
1123 if (Camera.item != nullptr &&
1124 (Camera.type == CameraType::Fixed || Camera.type == CameraType::Heavy))
1125 {
1126 item = Camera.item;
1127 isFixedCamera = true;
1128 }
1129 else
1130 {
1131 item = LaraItem;
1132 isFixedCamera = false;
1133 }
1134
1135 auto bounds = GameBoundingBox(item);
1136
1137 int x;

Callers 3

CalculateSpotCamerasFunction · 0.85
InitializeCameraFunction · 0.85
UpdateCameraFunction · 0.85

Calls 15

HandlePlayerOpticsFunction · 0.85
BinocularCameraFunction · 0.85
TestEnvironmentFunction · 0.85
SoundEffectFunction · 0.85
phd_atanFunction · 0.85
ANGLEFunction · 0.85
LookCameraFunction · 0.85
CombatCameraFunction · 0.85
phd_sinFunction · 0.85
phd_cosFunction · 0.85
ConfirmCameraTargetPosFunction · 0.85
GetPointCollisionFunction · 0.85

Tested by

no test coverage detected