mirror of https://github.com/OpenRCT2/OpenRCT2.git
Tried swaping to a global variable for ride_list
This commit is contained in:
parent
3f91db2109
commit
32624b912c
|
@ -44,7 +44,7 @@ int marketing_get_campaign_guest_generation_probability(int campaign)
|
|||
probability /= 8;
|
||||
break;
|
||||
case ADVERTISING_CAMPAIGN_RIDE_FREE:
|
||||
ride = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[RCT2_ADDRESS(0x01358116, uint8)[campaign]]);
|
||||
ride = &g_ride_list[RCT2_ADDRESS(0x01358116, uint8)[campaign]];
|
||||
if (ride->price < 3)
|
||||
probability /= 8;
|
||||
break;
|
||||
|
|
|
@ -182,7 +182,7 @@ void news_item_get_subject_location(int type, int subject, int *x, int *y, int *
|
|||
|
||||
switch (type) {
|
||||
case NEWS_ITEM_RIDE:
|
||||
ride = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[subject]);
|
||||
ride = &g_ride_list[subject];
|
||||
if (ride->overall_view == 0xFFFF) {
|
||||
*x = SPRITE_LOCATION_NULL;
|
||||
break;
|
||||
|
@ -205,7 +205,7 @@ void news_item_get_subject_location(int type, int subject, int *x, int *y, int *
|
|||
}
|
||||
|
||||
// Find which ride peep is on
|
||||
ride = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride]);
|
||||
ride = &g_ride_list[peep->current_ride];
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK)) {
|
||||
*x = SPRITE_LOCATION_NULL;
|
||||
break;
|
||||
|
|
|
@ -305,7 +305,7 @@ money32 calculate_park_value()
|
|||
// Sum ride values
|
||||
result = 0;
|
||||
for (i = 0; i < 255; i++) {
|
||||
ride = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[i]);
|
||||
ride = &g_ride_list[i];
|
||||
result += calculate_ride_value(ride);
|
||||
}
|
||||
|
||||
|
|
|
@ -181,7 +181,7 @@ void peep_problem_warnings_update()
|
|||
hunger_counter++;
|
||||
break;
|
||||
}
|
||||
ride = &RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->var_C5];
|
||||
ride = &g_ride_list[peep->var_C5];
|
||||
if (!(RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + ride->type * 8, uint32) & 0x80000))
|
||||
hunger_counter++;
|
||||
break;
|
||||
|
@ -191,7 +191,7 @@ void peep_problem_warnings_update()
|
|||
thirst_counter++;
|
||||
break;
|
||||
}
|
||||
ride = &RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->var_C5];
|
||||
ride = &g_ride_list[peep->var_C5];
|
||||
if (!(RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + ride->type * 8, uint32) & 0x1000000))
|
||||
thirst_counter++;
|
||||
break;
|
||||
|
@ -201,7 +201,7 @@ void peep_problem_warnings_update()
|
|||
bathroom_counter++;
|
||||
break;
|
||||
}
|
||||
ride = &RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->var_C5];
|
||||
ride = &g_ride_list[peep->var_C5];
|
||||
if (!(RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + ride->type * 8, uint32) & 0x2000000))
|
||||
bathroom_counter++;
|
||||
break;
|
||||
|
|
|
@ -99,6 +99,8 @@ const uint8 gRideClassifications[255] = {
|
|||
|
||||
#pragma endregion
|
||||
|
||||
rct_ride* g_ride_list = RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride);
|
||||
|
||||
int ride_get_count()
|
||||
{
|
||||
rct_ride *ride;
|
||||
|
@ -139,7 +141,7 @@ void ride_init_all()
|
|||
rct_ride_measurement *ride_measurement;
|
||||
|
||||
for (i = 0; i < MAX_RIDES; i++) {
|
||||
ride = GET_RIDE(i);
|
||||
ride = &g_ride_list[i];
|
||||
ride->type = RIDE_TYPE_NULL;
|
||||
}
|
||||
|
||||
|
@ -183,7 +185,7 @@ void ride_update_favourited_stat()
|
|||
if (peep->var_08 != 4)
|
||||
return;
|
||||
if (peep->favourite_ride != 0xff) {
|
||||
ride = GET_RIDE(peep->favourite_ride);
|
||||
ride = &g_ride_list[peep->favourite_ride];
|
||||
ride->guests_favourite++;
|
||||
ride->var_14D |= 1;
|
||||
|
||||
|
@ -280,7 +282,7 @@ void ride_shop_connected(rct_ride* ride, int ride_idx)
|
|||
}
|
||||
|
||||
uint8 track_type = tile->properties.track.type;
|
||||
ride = GET_RIDE(tile->properties.track.ride_index);
|
||||
ride = &g_ride_list[tile->properties.track.ride_index];
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + ride->type * 8, uint32) & 0x80000) {
|
||||
entrance_directions = RCT2_ADDRESS(0x0099CA64, uint8)[track_type * 16];
|
||||
} else {
|
||||
|
|
|
@ -326,8 +326,10 @@ enum {
|
|||
#define MAX_RIDE_MEASUREMENTS 8
|
||||
#define RIDE_RELIABILITY_UNDEFINED 0xFFFF
|
||||
|
||||
extern rct_ride* g_ride_list;
|
||||
|
||||
/** Helper macros until rides are stored in this module. */
|
||||
#define GET_RIDE(x) (&(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[x]))
|
||||
#define GET_RIDE(x) (&g_ride_list[x])
|
||||
#define GET_RIDE_MEASUREMENT(x) (&(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_MEASUREMENTS, rct_ride_measurement)[x]))
|
||||
|
||||
/**
|
||||
|
@ -335,7 +337,7 @@ enum {
|
|||
*/
|
||||
#define FOR_ALL_RIDES(i, ride) \
|
||||
for (i = 0; i < MAX_RIDES; i++) \
|
||||
if ((ride = GET_RIDE(i))->type != RIDE_TYPE_NULL)
|
||||
if ((ride = &g_ride_list[i])->type != RIDE_TYPE_NULL)
|
||||
|
||||
extern const uint8 gRideClassifications[255];
|
||||
|
||||
|
|
|
@ -501,7 +501,7 @@ void scenario_objectives_check()
|
|||
rct_ride* ride;
|
||||
int rcs = 0;
|
||||
for (int i = 0; i < MAX_RIDES; i++) {
|
||||
ride = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[i]);
|
||||
ride = &g_ride_list[i];
|
||||
if (ride->status && ride->excitement > objective_currency)
|
||||
rcs++;
|
||||
}
|
||||
|
|
|
@ -830,7 +830,7 @@ void get_arguments_from_thought(rct_peep_thought thought, uint32* argument_1, ui
|
|||
int esi = 0x9AC86C;
|
||||
|
||||
if ((RCT2_ADDRESS(0x981DB1, uint16)[thought.type] & 0xFF) & 1){
|
||||
rct_ride* ride = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST,rct_ride)[thought.item]);
|
||||
rct_ride* ride = &g_ride_list[thought.item];
|
||||
esi = &(ride->var_04A);
|
||||
}
|
||||
else if ((RCT2_ADDRESS(0x981DB1, uint16)[thought.type] & 0xFF) & 2){
|
||||
|
@ -880,7 +880,7 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
|||
case PEEP_STATE_LEAVING_RIDE:
|
||||
case PEEP_STATE_ENTERING_RIDE:
|
||||
*argument_1 = STR_ON_RIDE;
|
||||
ride = RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride];
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + ride.type*8, uint32)& 0x400000){
|
||||
*argument_1 = STR_IN_RIDE;
|
||||
}
|
||||
|
@ -888,14 +888,14 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
|||
*argument_2 = ride.var_04C;
|
||||
break;
|
||||
case PEEP_STATE_BUYING:
|
||||
ride = RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride];
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_AT_RIDE | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
break;
|
||||
case PEEP_STATE_WALKING:
|
||||
case 0x14:
|
||||
if (peep->var_C5 != 0xFF){
|
||||
ride = RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->var_C5];
|
||||
ride = g_ride_list[peep->var_C5];
|
||||
*argument_1 = STR_HEADING_FOR | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
}
|
||||
|
@ -906,7 +906,7 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
|||
break;
|
||||
case PEEP_STATE_QUEUING_FRONT:
|
||||
case PEEP_STATE_QUEUING:
|
||||
ride = RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride];
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_QUEUING_FOR | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
break;
|
||||
|
@ -916,7 +916,7 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
|||
break;
|
||||
case PEEP_STATE_WATCHING:
|
||||
if (peep->current_ride != 0xFF){
|
||||
ride = RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride];
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_WATCHING_RIDE | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
if (peep->current_seat & 0x1)
|
||||
|
@ -965,23 +965,23 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
|||
*argument_2 = 0;
|
||||
}
|
||||
else{
|
||||
ride = RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride];
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_RESPONDING_TO_RIDE_BREAKDOWN_CALL | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
}
|
||||
break;
|
||||
case PEEP_STATE_FIXING:
|
||||
ride = RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride];
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_FIXING_RIDE | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
break;
|
||||
case PEEP_STATE_HEADING_TO_INSPECTION:
|
||||
ride = RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride];
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_HEADING_TO_RIDE_FOR_INSPECTION | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
break;
|
||||
case PEEP_STATE_INSPECTING:
|
||||
ride = RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride];
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_INSPECTING_RIDE | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
break;
|
||||
|
|
|
@ -63,9 +63,9 @@ rct_widget window_peep_overview_widgets[] = {
|
|||
{ WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, 1942}, // Tab 4
|
||||
{ WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, 1943}, // Tab 5
|
||||
{ WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, 1944}, // Tab 6
|
||||
{ WWT_12, 1, 3, 166, 45, 56, 0x0FFFFFFFF, STR_NONE}, // Label 1
|
||||
{ WWT_12, 1, 3, 166, 45, 56, 0x0FFFFFFFF, STR_NONE}, // Label Thought marquee
|
||||
{ WWT_VIEWPORT, 1, 3, 166, 57, 143, 0x0FFFFFFFF, STR_NONE }, // Viewport
|
||||
{ WWT_12, 1, 3, 166, 144, 154, 0x0FFFFFFFF, STR_NONE}, // Label 2
|
||||
{ WWT_12, 1, 3, 166, 144, 154, 0x0FFFFFFFF, STR_NONE}, // Label Action
|
||||
{ WWT_FLATBTN, 1, 167, 190, 45, 68, SPR_RENAME, 1706}, // Rename Button
|
||||
{ WWT_FLATBTN, 1, 167, 190, 69, 92, 0x1430, 1055}, // Pickup Button
|
||||
{ WWT_FLATBTN, 1, 167, 190, 93, 116, SPR_LOCATE, STR_LOCATE_SUBJECT_TIP},// Locate Button
|
||||
|
@ -146,7 +146,7 @@ void window_peep_open(rct_peep* peep){
|
|||
window->var_490 = 0;
|
||||
window->var_492 = 0;
|
||||
window->var_494 = 0;
|
||||
//Call 6987a6
|
||||
RCT2_CALLPROC_X(0x006987A6, 0, 0, 0, 0, (int)window, 0, 0);
|
||||
window->min_width = 192;
|
||||
window->min_height = 157;
|
||||
window->max_width = 500;
|
||||
|
@ -169,7 +169,7 @@ void window_peep_open(rct_peep* peep){
|
|||
window->event_handlers = RCT2_GLOBAL(0x981D24,uint32);
|
||||
window->pressed_widgets = 0;
|
||||
|
||||
//call 6987A6
|
||||
RCT2_CALLPROC_X(0x006987A6, 0, 0, 0, 0, (int)window, 0, 0);
|
||||
window_init_scroll_widgets(window);
|
||||
//call 69883c
|
||||
|
||||
|
|
|
@ -557,7 +557,7 @@ static void window_ride_list_scrollpaint()
|
|||
}
|
||||
|
||||
// Get ride
|
||||
ride = &RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[w->var_076[i]];
|
||||
ride = &g_ride_list[w->var_076[i]];
|
||||
|
||||
// Ride name
|
||||
gfx_draw_string_left_clipped(dpi, format, &ride->var_04A, 0, 0, y - 1, 159);
|
||||
|
@ -703,7 +703,7 @@ static void window_ride_list_refresh_list(rct_window *w)
|
|||
RCT2_GLOBAL(0x013CE952, uint32) = ride->var_04C;
|
||||
RCT2_CALLPROC_X(0x006C2538, ride->var_04A, 0, 0x013CE952, 0, 0, 0x0141ED68, 0);
|
||||
while (--k >= 0) {
|
||||
otherRide = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[w->var_076[k]]);
|
||||
otherRide = &g_ride_list[w->var_076[k]];
|
||||
RCT2_GLOBAL(0x013CE952, uint32) = otherRide->var_04C;
|
||||
RCT2_CALLPROC_X(0x006C2538, otherRide->var_04A, 0, 0x013CE952, 0, 0, 0x0141EF68, 0);
|
||||
if (strcmp((char*)0x0141ED68, (char*)0x0141EF68) >= 0)
|
||||
|
@ -716,7 +716,7 @@ static void window_ride_list_refresh_list(rct_window *w)
|
|||
break;
|
||||
case INFORMATION_TYPE_POPULARITY:
|
||||
while (--k >= 0) {
|
||||
otherRide = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[w->var_076[k]]);
|
||||
otherRide = &g_ride_list[w->var_076[k]];
|
||||
if ((ride->var_158 & 0xFF) * 4 <= (otherRide->var_158 & 0xFF) * 4)
|
||||
break;
|
||||
|
||||
|
@ -727,7 +727,7 @@ static void window_ride_list_refresh_list(rct_window *w)
|
|||
break;
|
||||
case INFORMATION_TYPE_SATISFACTION:
|
||||
while (--k >= 0) {
|
||||
otherRide = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[w->var_076[k]]);
|
||||
otherRide = &g_ride_list[w->var_076[k]];
|
||||
if ((ride->var_14A & 0xFF) * 5 <= (otherRide->var_14A & 0xFF) * 5)
|
||||
break;
|
||||
|
||||
|
@ -738,7 +738,7 @@ static void window_ride_list_refresh_list(rct_window *w)
|
|||
break;
|
||||
case INFORMATION_TYPE_PROFIT:
|
||||
while (--k >= 0) {
|
||||
otherRide = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[w->var_076[k]]);
|
||||
otherRide = &g_ride_list[w->var_076[k]];
|
||||
if (ride->profit <= otherRide->profit)
|
||||
break;
|
||||
|
||||
|
@ -749,7 +749,7 @@ static void window_ride_list_refresh_list(rct_window *w)
|
|||
break;
|
||||
case INFORMATION_TYPE_QUEUE_LENGTH:
|
||||
while (--k >= 0) {
|
||||
otherRide = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[w->var_076[k]]);
|
||||
otherRide = &g_ride_list[w->var_076[k]];
|
||||
if (ride_get_total_queue_length(ride) <= ride_get_total_queue_length(otherRide))
|
||||
break;
|
||||
|
||||
|
@ -760,7 +760,7 @@ static void window_ride_list_refresh_list(rct_window *w)
|
|||
break;
|
||||
case INFORMATION_TYPE_QUEUE_TIME:
|
||||
while (--k >= 0) {
|
||||
otherRide = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[w->var_076[k]]);
|
||||
otherRide = &g_ride_list[w->var_076[k]];
|
||||
if (ride_get_max_queue_time(ride) <= ride_get_max_queue_time(otherRide))
|
||||
break;
|
||||
|
||||
|
@ -771,7 +771,7 @@ static void window_ride_list_refresh_list(rct_window *w)
|
|||
break;
|
||||
case INFORMATION_TYPE_RELIABILITY:
|
||||
while (--k >= 0) {
|
||||
otherRide = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[w->var_076[k]]);
|
||||
otherRide = &g_ride_list[w->var_076[k]];
|
||||
if (ride->var_196 >> 8 <= otherRide->var_196 >> 8)
|
||||
break;
|
||||
|
||||
|
@ -782,7 +782,7 @@ static void window_ride_list_refresh_list(rct_window *w)
|
|||
break;
|
||||
case INFORMATION_TYPE_DOWN_TIME:
|
||||
while (--k >= 0) {
|
||||
otherRide = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[w->var_076[k]]);
|
||||
otherRide = &g_ride_list[w->var_076[k]];
|
||||
if (ride->var_199 <= otherRide->var_199)
|
||||
break;
|
||||
|
||||
|
@ -793,7 +793,7 @@ static void window_ride_list_refresh_list(rct_window *w)
|
|||
break;
|
||||
case INFORMATION_TYPE_GUESTS_FAVOURITE:
|
||||
while (--k >= 0) {
|
||||
otherRide = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[w->var_076[k]]);
|
||||
otherRide = &g_ride_list[w->var_076[k]];
|
||||
if (ride->guests_favourite <= otherRide->guests_favourite)
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in New Issue