INNER CODE UNIT · C++

orient

TombEngine/TombEngine · TombEngine/Game/camera.cpp:183

	auto orient = player.Control.Look.Orientation +
		EulerAngles(item.Pose.Orientation.x, item.Pose.Orientation.y, 0) +
		EulerAngles(0, Camera.targetAngle, 0);
	orient.x = std::clamp(orient.x, LOOKCAM_ORIENT_CONSTRAINT.first.x, LOOKCAM_ORIENT_CONSTRAINT.second.x);

	// Determine base position.
	bool isInSwamp = TestEnvironment(ENV_FLAG_SWAMP, item.RoomNumber);
	auto basePos = Vector3i(
		item.Pose.Position.x,
		isInSwamp ? g_Level.Rooms[item.RoomNumber].TopHeight : item.Pose.Position.y,
		item.Pose.Position.z);

	// Define landmarks.
	auto pivotPos = Geometry::TranslatePoint(basePos, item.Pose.Orientation.y, pivotOffset);
	auto idealPos = Geometry::TranslatePoint(pivotPos, orient, idealDist);
	auto lookAtPos = Geometry::TranslatePoint(pivotPos, orient, LOOK_AT_DIST);

	// Determine best position.

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…