diff --git a/src/openrct2/rct1.h b/src/openrct2/rct1.h index 8eeedca9b2..89eaf43166 100644 --- a/src/openrct2/rct1.h +++ b/src/openrct2/rct1.h @@ -822,6 +822,10 @@ enum { RCT1_RIDE_MODE_POWERED_LAUNCH = 3, }; +enum { + RCT1_RIDE_DEPART_PLAY_MUSIC = 1 << 5, +}; + enum { RCT1_SCENERY_THEME_GENERAL, RCT1_SCENERY_THEME_MINE, diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index 28d98df425..03b1513d4d 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -571,13 +571,16 @@ private: // Flags if (src->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO) dst->lifecycle_flags |= RIDE_LIFECYCLE_ON_RIDE_PHOTO; - if (src->lifecycle_flags & RIDE_LIFECYCLE_MUSIC) dst->lifecycle_flags |= RIDE_LIFECYCLE_MUSIC; if (src->lifecycle_flags & RIDE_LIFECYCLE_INDESTRUCTIBLE) dst->lifecycle_flags |= RIDE_LIFECYCLE_INDESTRUCTIBLE; if (src->lifecycle_flags & RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK) dst->lifecycle_flags |= RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK; if (src->lifecycle_flags & RIDE_LIFECYCLE_EVER_BEEN_OPENED) dst->lifecycle_flags |= RIDE_LIFECYCLE_EVER_BEEN_OPENED; if (src->lifecycle_flags & RIDE_LIFECYCLE_TEST_IN_PROGRESS) dst->lifecycle_flags |= RIDE_LIFECYCLE_TEST_IN_PROGRESS; if (src->lifecycle_flags & RIDE_LIFECYCLE_CRASHED) dst->lifecycle_flags |= RIDE_LIFECYCLE_CRASHED; if (src->lifecycle_flags & RIDE_LIFECYCLE_TESTED) dst->lifecycle_flags |= RIDE_LIFECYCLE_TESTED; + if (_gameVersion >= FILE_VERSION_RCT1_AA) + { + if (src->lifecycle_flags & RIDE_LIFECYCLE_MUSIC) dst->lifecycle_flags |= RIDE_LIFECYCLE_MUSIC; + } //dst->lifecycle_flags = src->lifecycle_flags; @@ -628,6 +631,18 @@ private: { // Original RCT had no music settings, take default style dst->music = RideData4[dst->type].default_music; + + // Only merry-go-round and dodgems had music and used + // the same flag as synchronise stations for the option to enable it + if (src->type == RCT1_RIDE_TYPE_MERRY_GO_ROUND || + src->type == RCT1_RIDE_TYPE_DODGEMS) + { + if (src->depart_flags & RCT1_RIDE_DEPART_PLAY_MUSIC) + { + dst->depart_flags &= ~RCT1_RIDE_DEPART_PLAY_MUSIC; + dst->lifecycle_flags |= RIDE_LIFECYCLE_MUSIC; + } + } } else {