From 5c1b8a7c3cfc70e5610c34a0254fdaabd4418625 Mon Sep 17 00:00:00 2001 From: IntelOrca Date: Fri, 5 Sep 2014 19:33:51 +0100 Subject: [PATCH] fix various bugs with ride window --- src/window.c | 8 ++++---- src/window_ride.c | 11 +++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/window.c b/src/window.c index af22ebfc4a..92560fa328 100644 --- a/src/window.c +++ b/src/window.c @@ -1575,13 +1575,13 @@ void RCT2_CALLPROC_WE_MOUSE_DOWN(int address, int widgetIndex, rct_window*w, rc } /* Based on rct2: 0x6987ED and another version from window_park */ -void window_align_tabs( rct_window *w, uint8 start_tab_id, uint8 end_tab_id ) +void window_align_tabs(rct_window *w, uint8 start_tab_id, uint8 end_tab_id) { - int x = w->widgets[start_tab_id].left; + int i, x = w->widgets[start_tab_id].left; int tab_width = w->widgets[start_tab_id].right - w->widgets[start_tab_id].left; - for (int i = start_tab_id; i < end_tab_id; ++i){ - if ( !(w->disabled_widgets & (1LL << i)) ){ + for (i = start_tab_id; i <= end_tab_id; i++) { + if (!(w->disabled_widgets & (1LL << i))) { w->widgets[i].left = x; w->widgets[i].right = x + tab_width; x += tab_width + 1; diff --git a/src/window_ride.c b/src/window_ride.c index 1a301eaa5f..5ac33e1996 100644 --- a/src/window_ride.c +++ b/src/window_ride.c @@ -580,7 +580,7 @@ static void window_ride_draw_tab_vehicle(rct_drawpixelinfo *dpi, rct_window *w) height += RCT2_GLOBAL(ebp + 0x24, sint8); RCT2_GLOBAL(0x00F43480, uint32) = ride->var_1D4; - colour = (ride->vehicle_colours[1] << 24) | (ride->vehicle_colours[0] << 19); + colour = ((ride->vehicle_colours[0] & 0xFF00) << 16) | ((ride->vehicle_colours[0] & 0xFF) << 19); spriteIndex = 32; if (w->page == WINDOW_PARK_PAGE_VEHICLE) spriteIndex += w->frame_no; @@ -1273,12 +1273,11 @@ static void window_ride_main_invalidate() window_ride_set_pressed_tab(w); rct_ride *ride = GET_RIDE(w->number); - w->disabled_widgets &= 0xFFB7FFFF; - if (ride->lifecycle_flags & (RIDE_LIFECYCLE_INDESTRUCTIBLE | RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK)) { - w->disabled_widgets |= 0x00400000; - } + w->disabled_widgets &= ~((1 << 22) | (1 << 19)); + if (ride->lifecycle_flags & (RIDE_LIFECYCLE_INDESTRUCTIBLE | RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK)) + w->disabled_widgets |= (1 << 22); if (ride->lifecycle_flags & RIDE_LIFECYCLE_19) - w->disabled_widgets |= 0x80000; + w->disabled_widgets |= (1 << 19); RCT2_GLOBAL(0x013CE952 + 0, uint16) = ride->name; RCT2_GLOBAL(0x013CE952 + 2, uint32) = ride->name_arguments;