mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-16 11:33:03 +01:00
Merge branch 'master' into ride-window
This commit is contained in:
42
src/peep.c
42
src/peep.c
@@ -437,20 +437,20 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + ride.type * 8, uint32) & 0x400000){
|
||||
*argument_1 = STR_IN_RIDE;
|
||||
}
|
||||
*argument_1 |= (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
*argument_1 |= (ride.name << 16);
|
||||
*argument_2 = ride.name_arguments;
|
||||
break;
|
||||
case PEEP_STATE_BUYING:
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_AT_RIDE | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
*argument_1 = STR_AT_RIDE | (ride.name << 16);
|
||||
*argument_2 = ride.name_arguments;
|
||||
break;
|
||||
case PEEP_STATE_WALKING:
|
||||
case 0x14:
|
||||
if (peep->var_C5 != 0xFF){
|
||||
ride = g_ride_list[peep->var_C5];
|
||||
*argument_1 = STR_HEADING_FOR | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
*argument_1 = STR_HEADING_FOR | (ride.name << 16);
|
||||
*argument_2 = ride.name_arguments;
|
||||
}
|
||||
else{
|
||||
*argument_1 = peep->flags & PEEP_FLAGS_LEAVING_PARK ? STR_LEAVING_PARK : STR_WALKING;
|
||||
@@ -460,8 +460,8 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
||||
case PEEP_STATE_QUEUING_FRONT:
|
||||
case PEEP_STATE_QUEUING:
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_QUEUING_FOR | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
*argument_1 = STR_QUEUING_FOR | (ride.name << 16);
|
||||
*argument_2 = ride.name_arguments;
|
||||
break;
|
||||
case PEEP_STATE_SITTING:
|
||||
*argument_1 = STR_SITTING;
|
||||
@@ -470,12 +470,12 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
||||
case PEEP_STATE_WATCHING:
|
||||
if (peep->current_ride != 0xFF){
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_WATCHING_RIDE | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
*argument_1 = STR_WATCHING_RIDE | (ride.name << 16);
|
||||
*argument_2 = ride.name_arguments;
|
||||
if (peep->current_seat & 0x1)
|
||||
*argument_1 = STR_WATCHING_CONSTRUCTION_OF | (ride.var_04A << 16);
|
||||
*argument_1 = STR_WATCHING_CONSTRUCTION_OF | (ride.name << 16);
|
||||
else
|
||||
*argument_1 = STR_WATCHING_RIDE | (ride.var_04A << 16);
|
||||
*argument_1 = STR_WATCHING_RIDE | (ride.name << 16);
|
||||
}
|
||||
else{
|
||||
*argument_1 = peep->current_seat & 0x1 ? STR_WATCHING_NEW_RIDE_BEING_CONSTRUCTED : STR_LOOKING_AT_SCENERY;
|
||||
@@ -519,24 +519,24 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
||||
}
|
||||
else{
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_RESPONDING_TO_RIDE_BREAKDOWN_CALL | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
*argument_1 = STR_RESPONDING_TO_RIDE_BREAKDOWN_CALL | (ride.name << 16);
|
||||
*argument_2 = ride.name_arguments;
|
||||
}
|
||||
break;
|
||||
case PEEP_STATE_FIXING:
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_FIXING_RIDE | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
*argument_1 = STR_FIXING_RIDE | (ride.name << 16);
|
||||
*argument_2 = ride.name_arguments;
|
||||
break;
|
||||
case PEEP_STATE_HEADING_TO_INSPECTION:
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_HEADING_TO_RIDE_FOR_INSPECTION | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
*argument_1 = STR_HEADING_TO_RIDE_FOR_INSPECTION | (ride.name << 16);
|
||||
*argument_2 = ride.name_arguments;
|
||||
break;
|
||||
case PEEP_STATE_INSPECTING:
|
||||
ride = g_ride_list[peep->current_ride];
|
||||
*argument_1 = STR_INSPECTING_RIDE | (ride.var_04A << 16);
|
||||
*argument_2 = ride.var_04C;
|
||||
*argument_1 = STR_INSPECTING_RIDE | (ride.name << 16);
|
||||
*argument_2 = ride.name_arguments;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -554,7 +554,7 @@ void get_arguments_from_thought(rct_peep_thought thought, uint32* argument_1, ui
|
||||
|
||||
if ((RCT2_ADDRESS(0x981DB1, uint16)[thought.type] & 0xFF) & 1){
|
||||
rct_ride* ride = &g_ride_list[thought.item];
|
||||
esi = (int)(&(ride->var_04A));
|
||||
esi = (int)(&(ride->name));
|
||||
}
|
||||
else if ((RCT2_ADDRESS(0x981DB1, uint16)[thought.type] & 0xFF) & 2){
|
||||
if (thought.item < 0x20){
|
||||
|
||||
14
src/ride.c
14
src/ride.c
@@ -242,16 +242,16 @@ void ride_entrance_exit_connected(rct_ride* ride, int ride_idx)
|
||||
continue;
|
||||
if (entrance != -1 && !ride_entrance_exit_is_reachable(entrance, ride, i)) {
|
||||
// name of ride is parameter of the format string
|
||||
RCT2_GLOBAL(0x013CE952, uint16) = ride->var_04A;
|
||||
RCT2_GLOBAL(0x013CE954, uint32) = ride->var_04C;
|
||||
RCT2_GLOBAL(0x013CE952, uint16) = ride->name;
|
||||
RCT2_GLOBAL(0x013CE954, uint32) = ride->name_arguments;
|
||||
news_item_add_to_queue(1, STR_ENTRANCE_NOT_CONNECTED, ride_idx);
|
||||
ride->connected_message_throttle = 3;
|
||||
}
|
||||
|
||||
if (exit != -1 && !ride_entrance_exit_is_reachable(exit, ride, i)) {
|
||||
// name of ride is parameter of the format string
|
||||
RCT2_GLOBAL(0x013CE952, uint16) = ride->var_04A;
|
||||
RCT2_GLOBAL(0x013CE954, uint32) = ride->var_04C;
|
||||
RCT2_GLOBAL(0x013CE952, uint16) = ride->name;
|
||||
RCT2_GLOBAL(0x013CE954, uint32) = ride->name_arguments;
|
||||
news_item_add_to_queue(1, STR_EXIT_NOT_CONNECTED, ride_idx);
|
||||
ride->connected_message_throttle = 3;
|
||||
}
|
||||
@@ -315,8 +315,8 @@ void ride_shop_connected(rct_ride* ride, int ride_idx)
|
||||
}
|
||||
|
||||
// name of ride is parameter of the format string
|
||||
RCT2_GLOBAL(0x013CE952, uint16) = ride->var_04A;
|
||||
RCT2_GLOBAL(0x013CE954, uint32) = ride->var_04C;
|
||||
RCT2_GLOBAL(0x013CE952, uint16) = ride->name;
|
||||
RCT2_GLOBAL(0x013CE954, uint32) = ride->name_arguments;
|
||||
news_item_add_to_queue(1, STR_ENTRANCE_NOT_CONNECTED, ride_idx);
|
||||
|
||||
ride->connected_message_throttle = 3;
|
||||
@@ -520,4 +520,4 @@ void ride_get_status(int rideIndex, int *formatSecondary, int *argument)
|
||||
*formatSecondary = STR_OPEN;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
11
src/ride.h
11
src/ride.h
@@ -49,7 +49,9 @@ typedef struct {
|
||||
uint32 var_008;
|
||||
uint8 var_00C;
|
||||
uint8 var_00D;
|
||||
uint8 pad_00E[0x1A4];
|
||||
uint8 pad_00E[0x5];
|
||||
uint8 var_013;
|
||||
uint8 pad_014[0x19E];
|
||||
sint8 excitement_multipler; // 0x1B2
|
||||
sint8 intensity_multipler; // 0x1B3
|
||||
sint8 nausea_multipler; // 0x1B4
|
||||
@@ -74,8 +76,8 @@ typedef struct {
|
||||
uint8 pad_046[0x03];
|
||||
// 0 = closed, 1 = open, 2 = test
|
||||
uint8 status; // 0x049
|
||||
uint16 var_04A;
|
||||
uint32 var_04C;
|
||||
rct_string_id name; // 0x04A
|
||||
uint32 name_arguments; // 0x04C probably just for when a ride hasn't been named (e.g. Crooked House 1)
|
||||
uint16 overall_view; // 0x050 00XX = X, XX00 = Y (* 32 + 16)
|
||||
uint16 station_starts[4]; // 0x052
|
||||
uint8 station_heights[4]; // 0x05A
|
||||
@@ -149,7 +151,8 @@ typedef struct {
|
||||
uint8 var_1CD;
|
||||
uint16 guests_favourite; // 0x1CE
|
||||
uint32 lifecycle_flags; // 0x1D0
|
||||
uint8 pad_1D4[0x20];
|
||||
uint8 var_1D4;
|
||||
uint8 pad_1D5[0x1F];
|
||||
// Example value for wild mouse ride is d5 (before it's been constructed)
|
||||
// I tried searching the IDA file for "1F4" but couldn't find places where
|
||||
// this is written to.
|
||||
|
||||
@@ -1250,8 +1250,8 @@ static void window_finances_marketing_paint()
|
||||
case ADVERTISING_CAMPAIGN_RIDE_FREE:
|
||||
case ADVERTISING_CAMPAIGN_RIDE:
|
||||
ride = GET_RIDE(campaignRideIndex[i]);
|
||||
RCT2_GLOBAL(0x013CE952, uint16) = ride->var_04A;
|
||||
RCT2_GLOBAL(0x013CE952 + 2, uint32) = ride->var_04C;
|
||||
RCT2_GLOBAL(0x013CE952, uint16) = ride->name;
|
||||
RCT2_GLOBAL(0x013CE952 + 2, uint32) = ride->name_arguments;
|
||||
break;
|
||||
case ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE:
|
||||
shopString = campaignRideIndex[i] + 2016; // STR_BALLOONS+
|
||||
|
||||
@@ -118,8 +118,8 @@ int ride_name_compare(const void *a, const void *b)
|
||||
rideA = GET_RIDE(*((uint8*)a));
|
||||
rideB = GET_RIDE(*((uint8*)b));
|
||||
|
||||
format_string(rideAName, rideA->var_04A, &rideA->var_04C);
|
||||
format_string(rideBName, rideB->var_04A, &rideB->var_04C);
|
||||
format_string(rideAName, rideA->name, &rideA->name_arguments);
|
||||
format_string(rideBName, rideB->name, &rideB->name_arguments);
|
||||
|
||||
return _strcmpi(rideAName, rideBName);
|
||||
}
|
||||
@@ -288,7 +288,7 @@ static void window_new_campaign_mousedown(int widgetIndex, rct_window *w, rct_wi
|
||||
|
||||
rct_ride *ride = GET_RIDE(window_new_campaign_rides[i]);
|
||||
gDropdownItemsFormat[i] = 1142;
|
||||
gDropdownItemsArgs[i] = (ride->var_04C << 16) | ride->var_04A;
|
||||
gDropdownItemsArgs[i] = (ride->name_arguments << 16) | ride->name;
|
||||
numItems++;
|
||||
}
|
||||
|
||||
@@ -364,8 +364,8 @@ static void window_new_campaign_invalidate()
|
||||
window_new_campaign_widgets[WIDX_RIDE_LABEL].image = STR_MARKETING_RIDE;
|
||||
if (w->campaign.ride_id != SELECTED_RIDE_UNDEFINED) {
|
||||
rct_ride *ride = GET_RIDE(w->campaign.ride_id);
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].image = ride->var_04A;
|
||||
RCT2_GLOBAL(0x013CE952, uint32) = ride->var_04C;
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].image = ride->name;
|
||||
RCT2_GLOBAL(0x013CE952, uint32) = ride->name_arguments;
|
||||
}
|
||||
break;
|
||||
case ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE:
|
||||
|
||||
@@ -461,7 +461,7 @@ static void window_ride_list_scrollpaint()
|
||||
ride = &g_ride_list[w->list_item_positions[i]];
|
||||
|
||||
// Ride name
|
||||
gfx_draw_string_left_clipped(dpi, format, &ride->var_04A, 0, 0, y - 1, 159);
|
||||
gfx_draw_string_left_clipped(dpi, format, &ride->name, 0, 0, y - 1, 159);
|
||||
|
||||
// Ride information
|
||||
formatSecondary = 0;
|
||||
@@ -602,12 +602,12 @@ static void window_ride_list_refresh_list(rct_window *w)
|
||||
int current_list_position = list_index;
|
||||
switch (w->list_information_type) {
|
||||
case INFORMATION_TYPE_STATUS:
|
||||
RCT2_GLOBAL(0x013CE952, uint32) = ride->var_04C;
|
||||
RCT2_CALLPROC_X(0x006C2538, ride->var_04A, 0, 0x013CE952, 0, 0, RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, 0);
|
||||
RCT2_GLOBAL(0x013CE952, uint32) = ride->name_arguments;
|
||||
RCT2_CALLPROC_X(0x006C2538, ride->name, 0, 0x013CE952, 0, 0, RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, 0);
|
||||
while (--current_list_position >= 0) {
|
||||
otherRide = &g_ride_list[w->list_item_positions[current_list_position]];
|
||||
RCT2_GLOBAL(0x013CE952, uint32) = otherRide->var_04C;
|
||||
RCT2_CALLPROC_X(0x006C2538, otherRide->var_04A, 0, 0x013CE952, 0, 0, 0x0141EF68, 0);
|
||||
RCT2_GLOBAL(0x013CE952, uint32) = otherRide->name_arguments;
|
||||
RCT2_CALLPROC_X(0x006C2538, otherRide->name, 0, 0x013CE952, 0, 0, 0x0141EF68, 0);
|
||||
if (strcmp((char*)RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, (char*)0x0141EF68) >= 0)
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user