mirror of https://github.com/OpenRCT2/OpenRCT2.git
Integrate g_music_tracking_viewport
This commit is contained in:
parent
fd339d29b1
commit
601f344b40
|
@ -40,6 +40,7 @@
|
|||
//#define DEBUG_SHOW_DIRTY_BOX
|
||||
|
||||
rct_viewport g_viewport_list[MAX_VIEWPORT_COUNT];
|
||||
rct_viewport *g_music_tracking_viewport;
|
||||
|
||||
#ifdef NO_RCT2
|
||||
paint_struct *unk_EE7884;
|
||||
|
|
|
@ -96,6 +96,7 @@ typedef struct viewport_interaction_info {
|
|||
|
||||
// rct2: 0x014234BC
|
||||
extern rct_viewport g_viewport_list[MAX_VIEWPORT_COUNT];
|
||||
extern rct_viewport *g_music_tracking_viewport;
|
||||
#ifdef NO_RCT2
|
||||
extern paint_struct *unk_EE7884;
|
||||
extern paint_struct *unk_EE7888;
|
||||
|
|
|
@ -2241,14 +2241,14 @@ void window_update_viewport_ride_music()
|
|||
rct_window *w;
|
||||
|
||||
gRideMusicParamsListEnd = &gRideMusicParamsList[0];//RCT2_GLOBAL(0x009AF42C, rct_ride_music_params*) = (rct_ride_music_params*)0x009AF430;
|
||||
RCT2_GLOBAL(0x00F438A4, rct_viewport*) = (rct_viewport*)-1;
|
||||
g_music_tracking_viewport = (rct_viewport*)-1;
|
||||
|
||||
for (w = RCT2_LAST_WINDOW; w >= g_window_list; w--) {
|
||||
viewport = w->viewport;
|
||||
if (viewport == NULL || !(viewport->flags & VIEWPORT_FLAG_SOUND_ON))
|
||||
continue;
|
||||
|
||||
RCT2_GLOBAL(0x00F438A4, rct_viewport*) = viewport;
|
||||
g_music_tracking_viewport = viewport;
|
||||
RCT2_GLOBAL(0x00F438A8, rct_window*) = w;
|
||||
|
||||
switch (viewport->zoom) {
|
||||
|
|
|
@ -6156,7 +6156,7 @@ void peep_update_crowd_noise()
|
|||
if (gScreenFlags & 2)
|
||||
return;
|
||||
|
||||
viewport = RCT2_GLOBAL(0x00F438A4, rct_viewport*);
|
||||
viewport = g_music_tracking_viewport;
|
||||
if (viewport == (rct_viewport*)-1)
|
||||
return;
|
||||
|
||||
|
|
|
@ -3393,7 +3393,7 @@ void ride_set_map_tooltip(rct_map_element *mapElement)
|
|||
*/
|
||||
int ride_music_params_update(sint16 x, sint16 y, sint16 z, uint8 rideIndex, uint16 sampleRate, uint32 position, uint8 *tuneId)
|
||||
{
|
||||
if (!(gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) && !gGameSoundsOff && RCT2_GLOBAL(0x00F438A4, rct_viewport*) != (rct_viewport*)-1) {
|
||||
if (!(gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) && !gGameSoundsOff && g_music_tracking_viewport != (rct_viewport*)-1) {
|
||||
rct_xy16 rotatedCoords;
|
||||
|
||||
switch (get_current_rotation()) {
|
||||
|
@ -3414,7 +3414,7 @@ int ride_music_params_update(sint16 x, sint16 y, sint16 z, uint8 rideIndex, uint
|
|||
rotatedCoords.y = ((x - y) / 2) - z;
|
||||
break;
|
||||
}
|
||||
rct_viewport* viewport = RCT2_GLOBAL(0x00F438A4, rct_viewport*);
|
||||
rct_viewport* viewport = g_music_tracking_viewport;
|
||||
sint16 view_width = viewport->view_width;
|
||||
sint16 view_width2 = view_width * 2;
|
||||
sint16 view_x = viewport->view_x - view_width2;
|
||||
|
|
|
@ -467,17 +467,17 @@ static void vehicle_update_sound_params(rct_vehicle* vehicle)
|
|||
if (!(gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) && (!(gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER) || gS6Info->editor_step == EDITOR_STEP_ROLLERCOASTER_DESIGNER)) {
|
||||
if (vehicle->sound1_id != (uint8)-1 || vehicle->sound2_id != (uint8)-1) {
|
||||
if (vehicle->sprite_left != (sint16)0x8000) {
|
||||
sint16 x = RCT2_GLOBAL(0x00F438A4, rct_viewport*)->view_x;
|
||||
sint16 y = RCT2_GLOBAL(0x00F438A4, rct_viewport*)->view_y;
|
||||
sint16 w = RCT2_GLOBAL(0x00F438A4, rct_viewport*)->view_width / 4;
|
||||
sint16 h = RCT2_GLOBAL(0x00F438A4, rct_viewport*)->view_height / 4;
|
||||
sint16 x = g_music_tracking_viewport->view_x;
|
||||
sint16 y = g_music_tracking_viewport->view_y;
|
||||
sint16 w = g_music_tracking_viewport->view_width / 4;
|
||||
sint16 h = g_music_tracking_viewport->view_height / 4;
|
||||
if (!RCT2_GLOBAL(0x00F438A8, rct_window*)->classification) {
|
||||
x -= w;
|
||||
y -= h;
|
||||
}
|
||||
if (x < vehicle->sprite_right && y < vehicle->sprite_bottom) {
|
||||
sint16 w2 = RCT2_GLOBAL(0x00F438A4, rct_viewport*)->view_width + x;
|
||||
sint16 h2 = RCT2_GLOBAL(0x00F438A4, rct_viewport*)->view_height + y;
|
||||
sint16 w2 = g_music_tracking_viewport->view_width + x;
|
||||
sint16 h2 = g_music_tracking_viewport->view_height + y;
|
||||
if (!RCT2_GLOBAL(0x00F438A8, rct_window*)->classification) {
|
||||
w2 += w + w;
|
||||
h2 += h + h;
|
||||
|
@ -496,9 +496,9 @@ static void vehicle_update_sound_params(rct_vehicle* vehicle)
|
|||
*(j + 1) = *j;
|
||||
}
|
||||
i->var_A = v9;
|
||||
int pan_x = (vehicle->sprite_left / 2) + (vehicle->sprite_right / 2) - RCT2_GLOBAL(0x00F438A4, rct_viewport*)->view_x;
|
||||
pan_x >>= RCT2_GLOBAL(0x00F438A4, rct_viewport*)->zoom;
|
||||
pan_x += RCT2_GLOBAL(0x00F438A4, rct_viewport*)->x;
|
||||
int pan_x = (vehicle->sprite_left / 2) + (vehicle->sprite_right / 2) - g_music_tracking_viewport->view_x;
|
||||
pan_x >>= g_music_tracking_viewport->zoom;
|
||||
pan_x += g_music_tracking_viewport->x;
|
||||
|
||||
uint16 screenwidth = gScreenWidth;
|
||||
if (screenwidth < 64) {
|
||||
|
@ -506,9 +506,9 @@ static void vehicle_update_sound_params(rct_vehicle* vehicle)
|
|||
}
|
||||
i->pan_x = ((((pan_x * 65536) / screenwidth) - 0x8000) >> 4);
|
||||
|
||||
int pan_y = (vehicle->sprite_top / 2) + (vehicle->sprite_bottom / 2) - RCT2_GLOBAL(0x00F438A4, rct_viewport*)->view_y;
|
||||
pan_y >>= RCT2_GLOBAL(0x00F438A4, rct_viewport*)->zoom;
|
||||
pan_y += RCT2_GLOBAL(0x00F438A4, rct_viewport*)->y;
|
||||
int pan_y = (vehicle->sprite_top / 2) + (vehicle->sprite_bottom / 2) - g_music_tracking_viewport->view_y;
|
||||
pan_y >>= g_music_tracking_viewport->zoom;
|
||||
pan_y += g_music_tracking_viewport->y;
|
||||
|
||||
uint16 screenheight = gScreenHeight;
|
||||
if (screenheight < 64) {
|
||||
|
@ -584,7 +584,7 @@ int sub_6BC2F3(rct_vehicle* vehicle)
|
|||
void vehicle_sounds_update()
|
||||
{
|
||||
if (gAudioCurrentDevice != -1 && !gGameSoundsOff && gConfigSound.sound_enabled && !gOpenRCT2Headless) {
|
||||
RCT2_GLOBAL(0x00F438A4, rct_viewport*) = (rct_viewport*)-1;
|
||||
g_music_tracking_viewport = (rct_viewport*)-1;
|
||||
rct_viewport* viewport = (rct_viewport*)-1;
|
||||
rct_window* window = gWindowNextSlot;
|
||||
while (1) {
|
||||
|
@ -597,7 +597,7 @@ void vehicle_sounds_update()
|
|||
break;
|
||||
}
|
||||
}
|
||||
RCT2_GLOBAL(0x00F438A4, rct_viewport*) = viewport;
|
||||
g_music_tracking_viewport = viewport;
|
||||
if (viewport != (rct_viewport*)-1) {
|
||||
if (window) {
|
||||
RCT2_GLOBAL(0x00F438A8, rct_window*) = window;
|
||||
|
|
Loading…
Reference in New Issue