diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index 8f0fa47df9..ffe238ef46 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -3691,6 +3691,8 @@ STR_6583 :{WINDOW_COLOUR_2}Reversed Trains STR_6584 :Select to run trains backwards STR_6585 :Can’t make changes… +STR_6586 :OpenRCT2 + ############# # Scenarios # ################ diff --git a/src/openrct2-ui/windows/Options.cpp b/src/openrct2-ui/windows/Options.cpp index a45c659922..93e6b272fc 100644 --- a/src/openrct2-ui/windows/Options.cpp +++ b/src/openrct2-ui/windows/Options.cpp @@ -1357,6 +1357,8 @@ private: gDropdownItems[numItems++].Args = TitleMusicNames[0]; gDropdownItems[numItems].Format = STR_DROPDOWN_MENU_LABEL; gDropdownItems[numItems++].Args = TitleMusicNames[2]; + gDropdownItems[numItems].Format = STR_DROPDOWN_MENU_LABEL; + gDropdownItems[numItems++].Args = TitleMusicNames[3]; ShowDropdown(widget, numItems); if (gConfigSound.TitleMusic == TitleMusicKind::None) Dropdown::SetChecked(0, true); @@ -1408,9 +1410,9 @@ private: case WIDX_TITLE_MUSIC_DROPDOWN: { auto titleMusic = static_cast(dropdownIndex); - if (!IsRCT1TitleMusicAvailable() && dropdownIndex != 0) + if (!IsRCT1TitleMusicAvailable() && dropdownIndex >= EnumValue(TitleMusicKind::RCT1)) { - titleMusic = TitleMusicKind::RCT2; + titleMusic = static_cast(EnumValue(titleMusic) + 1); } gConfigSound.TitleMusic = titleMusic; @@ -2147,10 +2149,8 @@ private: }; static constexpr StringId TitleMusicNames[] = { - STR_OPTIONS_MUSIC_VALUE_NONE, - STR_ROLLERCOASTER_TYCOON_1_DROPDOWN, - STR_ROLLERCOASTER_TYCOON_2_DROPDOWN, - STR_OPTIONS_MUSIC_VALUE_RANDOM, + STR_OPTIONS_MUSIC_VALUE_NONE, STR_ROLLERCOASTER_TYCOON_1_DROPDOWN, STR_ROLLERCOASTER_TYCOON_2_DROPDOWN, + STR_OPENRCT2_DROPDOWN, STR_OPTIONS_MUSIC_VALUE_RANDOM, }; static constexpr StringId FullscreenModeNames[] = { diff --git a/src/openrct2/audio/Audio.cpp b/src/openrct2/audio/Audio.cpp index e9ef18924c..fbcbccefa1 100644 --- a/src/openrct2/audio/Audio.cpp +++ b/src/openrct2/audio/Audio.cpp @@ -269,9 +269,9 @@ namespace OpenRCT2::Audio } } - static ObjectEntryDescriptor GetTitleMusicDescriptor() + static ObjectEntryDescriptor GetTitleMusicDescriptor(TitleMusicKind kind) { - switch (gConfigSound.TitleMusic) + switch (kind) { default: return {}; @@ -279,13 +279,27 @@ namespace OpenRCT2::Audio return ObjectEntryDescriptor(ObjectType::Audio, AudioObjectIdentifiers::RCT1Title); case TitleMusicKind::RCT2: return ObjectEntryDescriptor(ObjectType::Audio, AudioObjectIdentifiers::RCT2Title); + case TitleMusicKind::OpenRCT2: + return ObjectEntryDescriptor(ObjectType::Audio, AudioObjectIdentifiers::OpenRCT2Title); case TitleMusicKind::Random: - return ObjectEntryDescriptor( - ObjectType::Audio, - (UtilRand() & 1) ? AudioObjectIdentifiers::RCT1Title : AudioObjectIdentifiers::RCT2Title); + switch (UtilRand() % 3) + { + case 0: + return GetTitleMusicDescriptor(TitleMusicKind::RCT1); + case 1: + return GetTitleMusicDescriptor(TitleMusicKind::RCT2); + case 2: + default: + return GetTitleMusicDescriptor(TitleMusicKind::OpenRCT2); + } } } + static ObjectEntryDescriptor GetTitleMusicDescriptor() + { + return GetTitleMusicDescriptor(gConfigSound.TitleMusic); + } + void PlayTitleMusic() { if (gGameSoundsOff || !(gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) || gIntroState != IntroState::None) diff --git a/src/openrct2/audio/audio.h b/src/openrct2/audio/audio.h index 34849ad5f2..583d6019ff 100644 --- a/src/openrct2/audio/audio.h +++ b/src/openrct2/audio/audio.h @@ -142,6 +142,7 @@ namespace OpenRCT2::Audio constexpr std::string_view RCT2Base = "rct2.audio.base"; constexpr std::string_view RCTCBase = "rct2.audio.base.rctc"; constexpr std::string_view RCT2Title = "rct2.audio.title"; + constexpr std::string_view OpenRCT2Title = "openrct2.audio.title"; constexpr std::string_view RCT2Circus = "rct2.audio.circus"; constexpr std::string_view OpenRCT2Additional = "openrct2.audio.additional"; } // namespace AudioObjectIdentifiers diff --git a/src/openrct2/config/Config.h b/src/openrct2/config/Config.h index 9992cf0f49..b014976130 100644 --- a/src/openrct2/config/Config.h +++ b/src/openrct2/config/Config.h @@ -253,6 +253,7 @@ enum class TitleMusicKind : int32_t None, RCT1, RCT2, + OpenRCT2, Random }; diff --git a/src/openrct2/localisation/StringIds.h b/src/openrct2/localisation/StringIds.h index 5ae21eff8b..8622a89686 100644 --- a/src/openrct2/localisation/StringIds.h +++ b/src/openrct2/localisation/StringIds.h @@ -3990,6 +3990,8 @@ enum : uint16_t STR_OPTION_REVERSE_TRAINS_TIP = 6584, STR_RIDE_SET_VEHICLE_REVERSED_FAIL = 6585, + STR_OPENRCT2_DROPDOWN = 6586, + // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working /* MAX_STR_COUNT = 32768 */ // MAX_STR_COUNT - upper limit for number of strings, not the current count strings };