Add one-time spawn camera pan

This commit is contained in:
Kelsi 2026-02-05 18:06:52 -08:00
parent 8bd60c3320
commit 5401683a8d
5 changed files with 81 additions and 7 deletions

View file

@ -1155,7 +1155,28 @@ void Application::startSinglePlayer() {
if (gameHandler && renderer && window) {
game::GameHandler::SinglePlayerSettings settings;
if (gameHandler->getSinglePlayerSettings(settings)) {
bool hasSettings = gameHandler->getSinglePlayerSettings(settings);
if (!hasSettings) {
settings.fullscreen = window->isFullscreen();
settings.vsync = window->isVsyncEnabled();
settings.shadows = renderer->areShadowsEnabled();
settings.resWidth = window->getWidth();
settings.resHeight = window->getHeight();
if (auto* music = renderer->getMusicManager()) {
settings.musicVolume = music->getVolume();
}
if (auto* footstep = renderer->getFootstepManager()) {
settings.sfxVolume = static_cast<int>(footstep->getVolumeScale() * 100.0f + 0.5f);
}
if (auto* cameraController = renderer->getCameraController()) {
settings.mouseSensitivity = cameraController->getMouseSensitivity();
settings.invertMouse = cameraController->isInvertMouse();
}
settings.introSeen = false;
gameHandler->setSinglePlayerSettings(settings);
hasSettings = true;
}
if (hasSettings) {
window->setVsync(settings.vsync);
window->setFullscreen(settings.fullscreen);
if (settings.resWidth > 0 && settings.resHeight > 0) {
@ -1175,6 +1196,11 @@ void Application::startSinglePlayer() {
if (auto* cameraController = renderer->getCameraController()) {
cameraController->setMouseSensitivity(settings.mouseSensitivity);
cameraController->setInvertMouse(settings.invertMouse);
if (!settings.introSeen) {
cameraController->startIntroPan(2.8f, 140.0f);
settings.introSeen = true;
gameHandler->setSinglePlayerSettings(settings);
}
}
}
}