diff --git a/source/main/main.cpp b/source/main/main.cpp index eeb7bf29f9..5ea8dc4f85 100644 --- a/source/main/main.cpp +++ b/source/main/main.cpp @@ -812,6 +812,7 @@ int main(int argc, char *argv[]) if (App::app_state->getEnum() == AppState::SIMULATION) { + App::GetGameContext()->GetCharacterFactory()->Update(dt); // Character MUST be updated before CameraManager, otherwise camera position is always 1 frame behind the character position, causing stuttering. App::GetCameraManager()->UpdateInputEvents(dt); App::GetOverlayWrapper()->update(dt); if (App::sim_state->getEnum() == SimState::EDITOR_MODE) @@ -821,7 +822,7 @@ int main(int argc, char *argv[]) } else if (App::sim_state->getEnum() == SimState::RUNNING) { - App::GetGameContext()->GetCharacterFactory()->Update(dt); + if (App::GetCameraManager()->GetCurrentBehavior() != CameraManager::CAMERA_BEHAVIOR_FREE) { App::GetGameContext()->UpdateSimInputEvents(dt);