From 6d63729a403eb4611ae21484ff52ad7bf4e8a295 Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 18 Jan 2018 22:59:30 +0000 Subject: [PATCH] Fix MSVC --- src/openrct2-ui/windows/Ride.cpp | 4 +- src/openrct2/audio/Audio.cpp | 10 ++--- src/openrct2/audio/audio.h | 2 +- src/openrct2/ride/MusicList.cpp | 8 ++-- src/openrct2/ride/MusicList.h | 12 +----- src/openrct2/ride/Ride.cpp | 12 +++--- src/openrct2/ride/RideRatings.cpp | 62 ++++++++++++++------------- src/openrct2/ride/TrackDesignSave.cpp | 8 ++-- 8 files changed, 56 insertions(+), 62 deletions(-) diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index 8b4b44b38c..d00233a39b 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -4813,9 +4813,9 @@ static void window_ride_music_mousedown(rct_window *w, rct_widgetindex widgetInd for (size_t n = 0; n < Util::CountOf(MusicStyleOrder); n++) window_ride_current_music_style_order[numItems++] = MusicStyleOrder[n]; - if (gRideMusicInfoList[36]->length != 0) + if (gRideMusicInfoList[36].length != 0) window_ride_current_music_style_order[numItems++] = MUSIC_STYLE_CUSTOM_MUSIC_1; - if (gRideMusicInfoList[37]->length != 0) + if (gRideMusicInfoList[37].length != 0) window_ride_current_music_style_order[numItems++] = MUSIC_STYLE_CUSTOM_MUSIC_2; } diff --git a/src/openrct2/audio/Audio.cpp b/src/openrct2/audio/Audio.cpp index 363f16947f..bf5487d9d8 100644 --- a/src/openrct2/audio/Audio.cpp +++ b/src/openrct2/audio/Audio.cpp @@ -347,9 +347,9 @@ void audio_init_ride_sounds_and_info() sint32 deviceNum = 0; audio_init_ride_sounds(deviceNum); - for (auto * rideMusicInfo : gRideMusicInfoList) + for (auto &rideMusicInfo : gRideMusicInfoList) { - const utf8 * path = context_get_path_legacy(rideMusicInfo->path_id); + const utf8 * path = context_get_path_legacy(rideMusicInfo.path_id); if (File::Exists(path)) { try @@ -358,12 +358,12 @@ void audio_init_ride_sounds_and_info() uint32 head = fs.ReadValue(); if (head == 0x78787878) { - rideMusicInfo->length = 0; + rideMusicInfo.length = 0; } // The length used to be hardcoded, but we stopped doing that to allow replacement. - if (rideMusicInfo->length == 0) + if (rideMusicInfo.length == 0) { - rideMusicInfo->length = fs.GetLength(); + rideMusicInfo.length = fs.GetLength(); } } catch (const std::exception &) diff --git a/src/openrct2/audio/audio.h b/src/openrct2/audio/audio.h index decce49a3c..6f99ac0f78 100644 --- a/src/openrct2/audio/audio.h +++ b/src/openrct2/audio/audio.h @@ -168,7 +168,7 @@ extern void * gTitleMusicChannel; extern void * gRainSoundChannel; extern rct_ride_music gRideMusicList[AUDIO_MAX_RIDE_MUSIC]; -extern rct_ride_music_info * gRideMusicInfoList[NUM_DEFAULT_MUSIC_TRACKS]; +extern rct_ride_music_info gRideMusicInfoList[NUM_DEFAULT_MUSIC_TRACKS]; extern rct_ride_music_params gRideMusicParamsList[6]; extern rct_ride_music_params * gRideMusicParamsListEnd; diff --git a/src/openrct2/ride/MusicList.cpp b/src/openrct2/ride/MusicList.cpp index 7323ab2700..f8c22cd712 100644 --- a/src/openrct2/ride/MusicList.cpp +++ b/src/openrct2/ride/MusicList.cpp @@ -21,10 +21,10 @@ #include "MusicList.h" -#define MAKE_TUNEID_LIST(...) (uint8[]){(Util::CountOf(((uint8[]){__VA_ARGS__}))), __VA_ARGS__} +#define MAKE_TUNEID_LIST(...) std::vector({__VA_ARGS__}) // 0x009AEF28 -uint8 * gRideMusicStyleTuneIds[] = +std::vector gRideMusicStyleTuneIds[] = { MAKE_TUNEID_LIST(TUNE_DODGEMS_BEAT), // MUSIC_STYLE_DODGEMS_BEAT MAKE_TUNEID_LIST( // MUSIC_STYLE_FAIRGROUND_ORGAN @@ -74,10 +74,10 @@ uint8 * gRideMusicStyleTuneIds[] = MAKE_TUNEID_LIST(TUNE_SWEAT_DREAMS), // MUSIC_STYLE_CANDY_STYLE }; -#define INIT_MUSIC_INFO(path_id, offset) (rct_ride_music_info[]){path_id, offset, 0} +#define INIT_MUSIC_INFO(path_id, offset) { path_id, offset, 0 } //0x009AF1C8 -rct_ride_music_info * gRideMusicInfoList[NUM_DEFAULT_MUSIC_TRACKS] = { +rct_ride_music_info gRideMusicInfoList[NUM_DEFAULT_MUSIC_TRACKS] = { INIT_MUSIC_INFO(PATH_ID_CSS4, 1378), INIT_MUSIC_INFO(PATH_ID_CSS5, 1378), INIT_MUSIC_INFO(PATH_ID_CSS6, 1378), diff --git a/src/openrct2/ride/MusicList.h b/src/openrct2/ride/MusicList.h index 98c6d1315b..42813c8d7f 100644 --- a/src/openrct2/ride/MusicList.h +++ b/src/openrct2/ride/MusicList.h @@ -16,6 +16,7 @@ #pragma once +#include #include "../audio/audio.h" #include "../common.h" @@ -69,13 +70,4 @@ enum TUNE_SWEAT_DREAMS, // 45, (sic) }; -#ifdef __cplusplus -extern "C" -{ -#endif - -extern uint8 * gRideMusicStyleTuneIds[]; - -#ifdef __cplusplus -} -#endif \ No newline at end of file +extern std::vector gRideMusicStyleTuneIds[]; diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index a77fd4c146..a0556eb159 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -2806,8 +2806,8 @@ static void ride_music_update(sint32 rideIndex) // Select random tune from available tunes for a music style (of course only merry-go-rounds have more than one tune) if (ride->music_tune_id == 255) { - uint8 *musicStyleTunes = gRideMusicStyleTuneIds[ride->music]; - uint8 numTunes = *musicStyleTunes++; + const auto &musicStyleTunes = gRideMusicStyleTuneIds[ride->music]; + auto numTunes = musicStyleTunes.size(); ride->music_tune_id = musicStyleTunes[util_rand() % numTunes]; ride->music_position = 0; return; @@ -3431,7 +3431,7 @@ void ride_set_map_tooltip(rct_tile_element *tileElement) static sint32 ride_music_params_update_label_51(uint32 a1, uint8 * tuneId, uint8 rideIndex, sint32 v32, sint32 pan_x, uint16 sampleRate) { - if (a1 < gRideMusicInfoList[*tuneId]->length) + if (a1 < gRideMusicInfoList[*tuneId].length) { rct_ride_music_params * ride_music_params = gRideMusicParamsListEnd; if (ride_music_params < &gRideMusicParamsList[Util::CountOf(gRideMusicParamsList)]) @@ -3456,7 +3456,7 @@ static sint32 ride_music_params_update_label_51(uint32 a1, uint8 * tuneId, uint8 static sint32 ride_music_params_update_label_58(uint32 position, uint8 * tuneId) { - rct_ride_music_info * ride_music_info = gRideMusicInfoList[*tuneId]; + rct_ride_music_info * ride_music_info = &gRideMusicInfoList[*tuneId]; position += ride_music_info->offset; if (position < ride_music_info->length) { @@ -3594,7 +3594,7 @@ sint32 ride_music_params_update(sint16 x, sint16 y, sint16 z, uint8 rideIndex, u channel++; if (channel >= AUDIO_MAX_RIDE_MUSIC) { - rct_ride_music_info * ride_music_info = gRideMusicInfoList[*tuneId]; + rct_ride_music_info * ride_music_info = &gRideMusicInfoList[*tuneId]; a1 = position + ride_music_info->offset; return ride_music_params_update_label_51(a1, tuneId, rideIndex, v32, pan_x, sampleRate); @@ -3702,7 +3702,7 @@ void ride_music_update_final() channel2++; if (channel2 >= AUDIO_MAX_RIDE_MUSIC) { - rct_ride_music_info * ride_music_info = gRideMusicInfoList[ride_music_params->tune_id]; + rct_ride_music_info * ride_music_info = &gRideMusicInfoList[ride_music_params->tune_id]; rct_ride_music * ride_music_3 = &gRideMusicList[ebx]; ride_music_3->sound_channel = Mixer_Play_Music(ride_music_info->path_id, MIXER_LOOP_NONE, true); if (ride_music_3->sound_channel) diff --git a/src/openrct2/ride/RideRatings.cpp b/src/openrct2/ride/RideRatings.cpp index 566822c627..876387efa1 100644 --- a/src/openrct2/ride/RideRatings.cpp +++ b/src/openrct2/ride/RideRatings.cpp @@ -222,9 +222,9 @@ static void ride_ratings_update_state_2() ride_ratings_score_close_proximity(tileElement); rct_xy_element trackElement = { - .x = gRideRatingsCalcData.proximity_x, - .y = gRideRatingsCalcData.proximity_y, - .element = tileElement + /* .x = */ gRideRatingsCalcData.proximity_x, + /* .y = */ gRideRatingsCalcData.proximity_y, + /* .element = */ tileElement }; rct_xy_element nextTrackElement; if (!track_block_get_next(&trackElement, &nextTrackElement, NULL, NULL)) { @@ -696,7 +696,7 @@ static void ride_ratings_calculate_value(Ride *ride) } const row *age_table = age_table_new; - sint32 table_size = Util::CountOf(age_table_new); + size_t table_size = Util::CountOf(age_table_new); #ifdef ORIGINAL_RATINGS age_table = age_table_old; @@ -711,7 +711,7 @@ static void ride_ratings_calculate_value(Ride *ride) } else { // Find the first hit in the table that matches this ride's age - for(sint32 it = 0; it < table_size; it++) { + for(size_t it = 0; it < table_size; it++) { row curr = age_table[it]; if(monthsOld < curr.months) { @@ -1196,9 +1196,9 @@ static rating_tuple ride_ratings_get_sheltered_ratings(Ride *ride) static rating_tuple ride_ratings_get_gforce_ratings(Ride *ride) { rating_tuple result = { - .excitement = 0, - .intensity = 0, - .nausea = 0 + /* .excitement = */ 0, + /* .intensity = */ 0, + /* .nausea = */ 0 }; // Apply maximum positive G force factor @@ -1240,9 +1240,9 @@ static rating_tuple ride_ratings_get_gforce_ratings(Ride *ride) static rating_tuple ride_ratings_get_drop_ratings(Ride *ride) { rating_tuple result = { - .excitement = 0, - .intensity = 0, - .nausea = 0 + /* .excitement = */ 0, + /* .intensity = */ 0, + /* .nausea = */ 0 }; // Apply number of drops factor @@ -1317,7 +1317,9 @@ static sint32 ride_ratings_get_scenery_score(Ride *ride) static void ride_ratings_set(rating_tuple *ratings, sint32 excitement, sint32 intensity, sint32 nausea) { - *ratings = (rating_tuple){ 0 }; + ratings->excitement = 0; + ratings->intensity = 0; + ratings->nausea = 0; ride_ratings_add(ratings, excitement, intensity, nausea); } @@ -1329,9 +1331,9 @@ static void ride_ratings_add(rating_tuple * rating, sint32 excitement, sint32 in sint32 newExcitement = rating->excitement + excitement; sint32 newIntensity = rating->intensity + intensity; sint32 newNausea = rating->nausea + nausea; - rating->excitement = Math::Clamp(0, newExcitement, INT16_MAX); - rating->intensity = Math::Clamp(0, newIntensity, INT16_MAX); - rating->nausea = Math::Clamp(0, newNausea, INT16_MAX); + rating->excitement = Math::Clamp(0, newExcitement, INT16_MAX); + rating->intensity = Math::Clamp(0, newIntensity, INT16_MAX); + rating->nausea = Math::Clamp(0, newNausea, INT16_MAX); } static void ride_ratings_apply_length(rating_tuple *ratings, Ride *ride, sint32 maxLength, sint32 excitementMultiplier) @@ -2966,9 +2968,9 @@ static void ride_ratings_calculate_haunted_house(Ride *ride) set_unreliability_factor(ride); rating_tuple ratings = { - .excitement = RIDE_RATING(3,41), - .intensity = RIDE_RATING(1,53), - .nausea = RIDE_RATING(0,10) + /* .excitement = */ RIDE_RATING(3,41), + /* .intensity = */ RIDE_RATING(1,53), + /* .nausea = */ RIDE_RATING(0,10) }; ride_ratings_apply_intensity_penalty(&ratings); @@ -3367,9 +3369,9 @@ static void ride_ratings_calculate_circus_show(Ride *ride) set_unreliability_factor(ride); rating_tuple ratings = { - .excitement = RIDE_RATING(2,10), - .intensity = RIDE_RATING(0,30), - .nausea = RIDE_RATING(0,0) + /* .excitement = */ RIDE_RATING(2,10), + /* .intensity = */ RIDE_RATING(0,30), + /* .nausea = */ RIDE_RATING(0,0) }; ride_ratings_apply_intensity_penalty(&ratings); @@ -3718,9 +3720,9 @@ static void ride_ratings_calculate_flying_saucers(Ride *ride) set_unreliability_factor(ride); rating_tuple ratings = { - .excitement = RIDE_RATING(2,40), - .intensity = RIDE_RATING(0,55), - .nausea = RIDE_RATING(0,39) + /* .excitement = */ RIDE_RATING(2,40), + /* .intensity = */ RIDE_RATING(0,55), + /* .nausea = */ RIDE_RATING(0,39) }; if (ride->num_vehicles >= 4) { @@ -3764,9 +3766,9 @@ static void ride_ratings_calculate_crooked_house(Ride *ride) set_unreliability_factor(ride); rating_tuple ratings = { - .excitement = RIDE_RATING(2,15), - .intensity = RIDE_RATING(0,62), - .nausea = RIDE_RATING(0,34) + /* .excitement = */ RIDE_RATING(2,15), + /* .intensity = */ RIDE_RATING(0,62), + /* .nausea = */ RIDE_RATING(0,34) }; ride_ratings_apply_intensity_penalty(&ratings); @@ -4070,9 +4072,9 @@ static void ride_ratings_calculate_enterprise(Ride *ride) // Base ratings rating_tuple ratings = { - .excitement = RIDE_RATING(3,60), - .intensity = RIDE_RATING(4,55), - .nausea = RIDE_RATING(5,72) + /* .excitement = */ RIDE_RATING(3,60), + /* .intensity = */ RIDE_RATING(4,55), + /* .nausea = */ RIDE_RATING(5,72) }; ride_ratings_add(&ratings, diff --git a/src/openrct2/ride/TrackDesignSave.cpp b/src/openrct2/ride/TrackDesignSave.cpp index df1e72dd3a..58b6d94ffa 100644 --- a/src/openrct2/ride/TrackDesignSave.cpp +++ b/src/openrct2/ride/TrackDesignSave.cpp @@ -829,7 +829,7 @@ static bool track_design_save_to_td6_for_maze(uint8 rideIndex, rct_track_td6 *td return false; } - gTrackPreviewOrigin = (LocationXYZ16) { startX, startY, (sint16)(tileElement->base_height * 8) }; + gTrackPreviewOrigin = { startX, startY, (sint16)(tileElement->base_height * 8) }; size_t numMazeElements = 0; td6->maze_elements = (rct_td6_maze_element *)calloc(8192, sizeof(rct_td6_maze_element)); @@ -928,7 +928,7 @@ static bool track_design_save_to_td6_for_maze(uint8 rideIndex, rct_track_td6 *td // Save global vars as they are still used by scenery sint16 startZ = gTrackPreviewOrigin.z; place_virtual_track(td6, PTD_OPERATION_DRAW_OUTLINES, true, 0, 4096, 4096, 0); - gTrackPreviewOrigin = (LocationXYZ16) { startX, startY, startZ }; + gTrackPreviewOrigin = { startX, startY, startZ }; gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_CONSTRUCT; gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_ARROW; @@ -992,7 +992,7 @@ static bool track_design_save_to_td6_for_tracked_ride(uint8 rideIndex, rct_track sint16 start_x = trackElement.x; sint16 start_y = trackElement.y; sint16 start_z = z + trackCoordinates->z_begin; - gTrackPreviewOrigin = (LocationXYZ16) { start_x, start_y, start_z }; + gTrackPreviewOrigin = { start_x, start_y, start_z }; size_t numTrackElements = 0; td6->track_elements = (rct_td6_track_element *)calloc(TRACK_TD6_MAX_ELEMENTS, sizeof(rct_td6_track_element)); @@ -1124,7 +1124,7 @@ static bool track_design_save_to_td6_for_tracked_ride(uint8 rideIndex, rct_track place_virtual_track(td6, PTD_OPERATION_DRAW_OUTLINES, true, 0, 4096, 4096, 0); // Resave global vars for scenery reasons. - gTrackPreviewOrigin = (LocationXYZ16) { start_x, start_y, start_z }; + gTrackPreviewOrigin = { start_x, start_y, start_z }; gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_CONSTRUCT; gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_ARROW;