diff options
| author | raysan5 <raysan5@gmail.com> | 2015-08-30 17:46:19 +0200 |
|---|---|---|
| committer | raysan5 <raysan5@gmail.com> | 2015-08-30 17:46:19 +0200 |
| commit | 535b9e606f6571c5d4163481d077ae3d5a79f1b8 (patch) | |
| tree | b337a4db813d4073ca19a165ff09c39f1c9c819d /src/camera.c | |
| parent | 92bcf09c534c4ef204e973a2e7153e2ea557c1ea (diff) | |
| download | raylib-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.c | 20 |
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 |
