aboutsummaryrefslogtreecommitdiff
path: root/src/camera.c
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2015-08-30 17:46:19 +0200
committerraysan5 <raysan5@gmail.com>2015-08-30 17:46:19 +0200
commit535b9e606f6571c5d4163481d077ae3d5a79f1b8 (patch)
treeb337a4db813d4073ca19a165ff09c39f1c9c819d /src/camera.c
parent92bcf09c534c4ef204e973a2e7153e2ea557c1ea (diff)
downloadraylib-535b9e606f6571c5d4163481d077ae3d5a79f1b8.tar.gz
raylib-535b9e606f6571c5d4163481d077ae3d5a79f1b8.zip
Redesigned UpdateCamera() function
Splitted into: UpdateCamera() // Update only camera UpdateCameraPlayer() // Update camera and player position
Diffstat (limited to 'src/camera.c')
-rw-r--r--src/camera.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/camera.c b/src/camera.c
index 40885140..b637b1e4 100644
--- a/src/camera.c
+++ b/src/camera.c
@@ -162,14 +162,24 @@ void SetCameraMode(int mode)
cameraMode = mode;
}
-// Update camera with position
-// TODO: I don't like how this function works right now... not clear enough...
-Camera UpdateCamera(Vector3 *position)
+// Update camera (player position is ignored)
+void UpdateCamera(Camera *camera)
{
- // Calculate camera
+ Vector3 position = { 0, 0, 0 };
+
+ // Process internal camera and player position (if required)
+ if (cameraMode != CAMERA_CUSTOM) ProcessCamera(&internalCamera, &position);
+
+ *camera = internalCamera;
+}
+
+// Update camera and player position (1st person and 3rd person cameras)
+void UpdateCameraPlayer(Camera *camera, Vector3 *position)
+{
+ // Process internal camera and player position (if required)
if (cameraMode != CAMERA_CUSTOM) ProcessCamera(&internalCamera, position);
- return internalCamera;
+ *camera = internalCamera;
}
// Set internal camera position