1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-20 21:43:06 +01:00
This commit is contained in:
Ted John
2018-01-18 22:59:30 +00:00
parent a17aeed161
commit 6d63729a40
8 changed files with 56 additions and 62 deletions

View File

@@ -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;
}

View File

@@ -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<uint32>();
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 &)

View File

@@ -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;

View File

@@ -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<uint8>({__VA_ARGS__})
// 0x009AEF28
uint8 * gRideMusicStyleTuneIds[] =
std::vector<uint8> 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),

View File

@@ -16,6 +16,7 @@
#pragma once
#include <vector>
#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
extern std::vector<uint8> gRideMusicStyleTuneIds[];

View File

@@ -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)

View File

@@ -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<sint32>(0, newExcitement, INT16_MAX);
rating->intensity = Math::Clamp<sint32>(0, newIntensity, INT16_MAX);
rating->nausea = Math::Clamp<sint32>(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,

View File

@@ -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;