diff --git a/assets/opensb/client.config.patch b/assets/opensb/client.config.patch new file mode 100644 index 0000000..88bf328 --- /dev/null +++ b/assets/opensb/client.config.patch @@ -0,0 +1,11 @@ +{ + // Disables scissoring and letterboxing on vanilla and modded warp cinematics + "warpCinematicBase" : { + "scissor" : false, + "letterbox" : false + }, + "deployCinematicBase" : { + "scissor" : false, + "letterbox" : false + } +} \ No newline at end of file diff --git a/source/game/StarUniverseClient.cpp b/source/game/StarUniverseClient.cpp index 9b26416..e025517 100644 --- a/source/game/StarUniverseClient.cpp +++ b/source/game/StarUniverseClient.cpp @@ -183,13 +183,14 @@ void UniverseClient::update() { m_warpDelay.reset(); if (m_warping) { m_warpCinemaCancelTimer = GameTimer(assets->json("/client.config:playerWarpCinemaMinimumTime").toFloat()); - String cinematic; - if (m_mainPlayer->isDeploying()) - cinematic = assets->json("/client.config:deployCinematic").toString(); - else - cinematic = assets->json("/client.config:warpCinematic").toString(); - cinematic = cinematic.replaceTags(StringMap{{"species", m_mainPlayer->species()}}); - m_mainPlayer->setPendingCinematic(Json(move(cinematic))); + + bool isDeploying = m_mainPlayer->isDeploying(); + String cinematicJsonPath = isDeploying ? "/client.config:deployCinematic" : "/client.config:warpCinematic"; + String cinematicAssetPath = assets->json(cinematicJsonPath).toString() + .replaceTags(StringMap{{"species", m_mainPlayer->species()}}); + + Json cinematic = jsonMerge(assets->json(cinematicJsonPath + "Base"), assets->json(cinematicAssetPath)); + m_mainPlayer->setPendingCinematic(cinematic); } } }