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

Function BinocularCamera

TombEngine/Game/camera.cpp:979–1023  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

977}
978
979void BinocularCamera(ItemInfo* item)
980{
981 auto& player = GetLaraInfo(*item);
982
983 AlterFOV(7 * (ANGLE(11.5f) - player.Control.Look.OpticRange), false);
984
985 int x = item->Pose.Position.x;
986 int y = item->Pose.Position.y + GameBoundingBox(item).Y1;
987 int z = item->Pose.Position.z;
988
989 auto pointColl = GetPointCollision(Vector3i(x, y, z), item->RoomNumber);
990
991 Camera.pos.x = x;
992 Camera.pos.y = y;
993 Camera.pos.z = z;
994 Camera.pos.RoomNumber = pointColl.GetRoomNumber();
995
996 float l = BLOCK(20.25f) * phd_cos(player.Control.Look.Orientation.x);
997 float tx = x + l * phd_sin(item->Pose.Orientation.y + player.Control.Look.Orientation.y);
998 float ty = y - BLOCK(20.25f) * phd_sin(player.Control.Look.Orientation.x);
999 float tz = z + l * phd_cos(item->Pose.Orientation.y + player.Control.Look.Orientation.y);
1000
1001 if (Camera.oldType == CameraType::Fixed)
1002 {
1003 Camera.target.x = tx;
1004 Camera.target.y = ty;
1005 Camera.target.z = tz;
1006 Camera.target.RoomNumber = item->RoomNumber;
1007 }
1008 else
1009 {
1010 Camera.target.x += (tx - Camera.target.x) / 4;
1011 Camera.target.y += (ty - Camera.target.y) / 4;
1012 Camera.target.z += (tz - Camera.target.z) / 4;
1013 Camera.target.RoomNumber = item->RoomNumber;
1014 }
1015
1016 if (Camera.type == Camera.oldType)
1017 CalculateBounce(true);
1018
1019 Camera.target.RoomNumber = GetPointCollision(Camera.pos.ToVector3i(), Camera.target.RoomNumber).GetRoomNumber();
1020 LookAt(&Camera, 0);
1021 UpdateMikePos(*item);
1022 Camera.oldType = Camera.type;
1023}
1024
1025void ConfirmCameraTargetPos()
1026{

Callers 1

CalculateCameraFunction · 0.85

Calls 12

AlterFOVFunction · 0.85
ANGLEFunction · 0.85
GetPointCollisionFunction · 0.85
phd_cosFunction · 0.85
phd_sinFunction · 0.85
CalculateBounceFunction · 0.85
LookAtFunction · 0.85
UpdateMikePosFunction · 0.85
GameBoundingBoxClass · 0.70
Vector3iClass · 0.70
GetRoomNumberMethod · 0.45
ToVector3iMethod · 0.45

Tested by

no test coverage detected