MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / xCameraLookYPR

Function xCameraLookYPR

src/SB/Core/x/xCamera.cpp:1317–1351  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1315}
1316
1317void xCameraLookYPR(xCamera* cam, U32 flags, F32 yaw, F32 pitch, F32 roll, F32 tm, F32 tm_acc,
1318 F32 tm_dec)
1319{
1320 cam->flags = (cam->flags & ~0xF80) | (flags & 0xF80) | 0x80;
1321 cam->yaw_goal = yaw;
1322 cam->pitch_goal = pitch;
1323 cam->roll_goal = roll;
1324
1325 if (tm <= 0.0f)
1326 {
1327 if (cam->tgt_mat)
1328 {
1329 cam->yaw_cur = yaw;
1330 cam->pitch_cur = pitch;
1331 cam->roll_cur = roll;
1332
1333 xMat3x3Euler(&cam->mat, yaw, pitch, roll);
1334
1335 *(xMat3x3*)&cam->omat = *(xMat3x3*)&cam->mat;
1336 }
1337 }
1338 else
1339 {
1340 cam->flags |= 0x40;
1341 cam->ltm_acc = tm - tm_acc;
1342 cam->ltm_dec = tm_dec;
1343 cam->ltmr = tm;
1344
1345 F32 s = 1.0f / (tm - 0.5f * (tm_acc - tm_dec));
1346
1347 cam->yaw_epv = s * xDangleClamp(yaw - cam->yaw_cur);
1348 cam->pitch_epv = s * xDangleClamp(pitch - cam->pitch_cur);
1349 cam->roll_epv = s * xDangleClamp(roll - cam->roll_cur);
1350 }
1351}
1352
1353void xCameraRotate(xCamera* cam, const xMat3x3& m, F32 time, F32 accel, F32 decl)
1354{

Callers 3

set_cameraFunction · 0.50
startMethod · 0.50
zCameraRewardUpdateFunction · 0.50

Calls 2

xMat3x3EulerFunction · 0.85
xDangleClampFunction · 0.70

Tested by

no test coverage detected