summaryrefslogtreecommitdiff
path: root/src/camera.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-01-14 18:17:54 -0500
committerJonathan Bradley <jcb@pikum.xyz>2025-01-14 18:17:54 -0500
commit5a7b4a65a1d93744e4a5e6cc6df4244f61b81f68 (patch)
tree4b59cb1d6e513c1caefdc7e4c35955741bcfe206 /src/camera.cpp
parent80a67230fe192287503092a3d256aea3a494409c (diff)
chore: fix compiler warnings + extra includes
Diffstat (limited to 'src/camera.cpp')
-rw-r--r--src/camera.cpp27
1 files changed, 10 insertions, 17 deletions
diff --git a/src/camera.cpp b/src/camera.cpp
index 7ee9408..eadea85 100644
--- a/src/camera.cpp
+++ b/src/camera.cpp
@@ -8,18 +8,8 @@
#include "physics.hpp"
#include <glm/ext/quaternion_geometric.hpp>
-PkeCamera NullCamera {
- .camHandle = CameraHandle_MAX,
- .type = PKE_CAMERA_TYPE_ORTHOGONAL,
- .view = PKE_CAMERA_VIEW_TARGET,
- .stale = PKE_CAMERA_STALE_ALL,
- .phys = {
- .instHandle = InstanceHandle_MAX,
- .targetInstHandle = InstanceHandle_MAX,
- .constraint = nullptr,
- },
-};
-CompInstance NullCameraInstance;
+PkeCamera NullCamera {};
+CompInstance NullCameraInstance{};
PkeCamera *ActiveCamera = &NullCamera;
const pk_handle_item_index_T MAX_CAMERAS_PER_BUCKET = 32;
@@ -93,8 +83,7 @@ void PkeCamera_TargetInstance(CameraHandle cameraHandle, CompInstance *inst) {
CompInstance *selfInstance = ECS_GetInstance(cam.phys.instHandle);
if (cam.phys.constraint != nullptr && cam.phys.constraint != CAFE_BABE(btTypedConstraint)) {
- CompInstance *activeInst = reinterpret_cast<CompInstance *>(cam.phys.constraint->getRigidBodyB().getUserIndex());
- PkeCamera_UntargetInstance(cameraHandle, activeInst);
+ PkeCamera_UntargetInstance(cameraHandle);
}
btVector3 cameraOffset(0.f, -10.f, -10.f);
@@ -137,7 +126,7 @@ void PkeCamera_TargetInstance(CameraHandle cameraHandle, CompInstance *inst) {
cam.stale = PKE_CAMERA_STALE_POSROT;
}
-void PkeCamera_UntargetInstance(CameraHandle cameraHandle, CompInstance *inst) {
+void PkeCamera_UntargetInstance(CameraHandle cameraHandle) {
assert(cameraHandle != CameraHandle_MAX);
auto &cam = Camera_BucketContainer.buckets[cameraHandle.bucketIndex][cameraHandle.itemIndex];
BtDynamicsWorld->removeConstraint(cam.phys.constraint);
@@ -187,7 +176,7 @@ int64_t PkeCamera_GetBucketCount() {
return Camera_BucketContainer.pkeHandle.bucketIndex + 1;
}
-PkeCamera *PkeCamera_GetCameras(int64_t bucketIndex, int64_t &count) {
+PkeCamera *PkeCamera_GetCameras(pk_handle_bucket_index_T bucketIndex, pk_handle_item_index_T &count) {
if (Camera_BucketContainer.pkeHandle.bucketIndex == bucketIndex) {
count = Camera_BucketContainer.pkeHandle.itemIndex;
} else {
@@ -198,8 +187,11 @@ PkeCamera *PkeCamera_GetCameras(int64_t bucketIndex, int64_t &count) {
void PkeCamera_Init() {
Buckets_Init(Camera_BucketContainer, MAX_CAMERAS_PER_BUCKET);
- memset(&NullCameraInstance, 0, sizeof(NullCameraInstance));
+ NullCamera.type = PKE_CAMERA_TYPE_ORTHOGONAL;
+ NullCamera.view = PKE_CAMERA_VIEW_TARGET;
+ NullCamera.stale = PKE_CAMERA_STALE_ALL;
InstPos instPos{
+ .posRot = {},
.scale = btVector3(1.f, 1.f, 1.f),
.mass = 1.f,
};
@@ -226,6 +218,7 @@ void PkeCamera_Tick(double delta) {
* could be that removing pos and rot from the camera would make this unnecessary?
* See the camera serializer for more.
*/
+ (void)delta;
for (pk_handle_bucket_index_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;