diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2024-05-30 21:47:05 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2024-05-30 21:47:05 -0400 |
| commit | 7c73f70312def33a74f1f90d0dbbceb84cd46eae (patch) | |
| tree | 44c8f015c5083f3937c914907db379b7aec44224 /src/camera.cpp | |
| parent | 1b48d1382d2d57a822201f34743a51813798b348 (diff) | |
first-pass update camera
Diffstat (limited to 'src/camera.cpp')
| -rw-r--r-- | src/camera.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/camera.cpp b/src/camera.cpp index f033824..3982642 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -124,6 +124,22 @@ void PkeCamera_DetachFromInstance(CameraHandle cameraHandle, CompInstance *inst) cam.stale = PKE_CAMERA_STALE_POSROT; } +void PkeCamera_SetPrimary(CameraHandle cameraHandle) { + assert(cameraHandle != CameraHandle_MAX); + auto &primaryCam = Camera_BucketContainer.buckets[cameraHandle.bucketIndex][cameraHandle.itemIndex]; + for (PkeHandleBucketIndex_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) { + auto &bkt = Camera_BucketContainer.buckets[b]; + long itemCount = Camera_BucketContainer.pkeHandle.bucketIndex == b ? Camera_BucketContainer.pkeHandle.itemIndex : Camera_BucketContainer.limits.itemIndex; + for (PkeHandleItemIndex_T i = 0; i < itemCount; ++i) { + auto *cam = &bkt[i]; + if (cam->parentHandle != primaryCam.parentHandle) { + continue; + } + cam->isPrimary = cam->camHandle == cameraHandle; + } + } +} + void PkeCamera_Destroy(CameraHandle cameraHandle) { assert(cameraHandle != CameraHandle_MAX); auto *camPtr = &Camera_BucketContainer.buckets[cameraHandle.bucketIndex][cameraHandle.itemIndex]; |
