mirror of https://github.com/OpenRCT2/OpenRCT2.git
improve RCT1 ride import
This commit is contained in:
parent
a90a59c39c
commit
0e1f0cbbe8
42
src/rct1.c
42
src/rct1.c
|
@ -1993,11 +1993,15 @@ static void rct1_import_map_elements(rct1_s4 *s4)
|
|||
|
||||
static void rct1_import_ride(rct1_s4 *s4, rct_ride *dst, rct1_ride *src)
|
||||
{
|
||||
rct_ride_type *rideEntry;
|
||||
|
||||
memset(dst, 0, sizeof(rct_ride));
|
||||
|
||||
dst->type = RCT1RideTypeConversionTable[src->type];
|
||||
dst->subtype = src->type;
|
||||
|
||||
rideEntry = GET_RIDE_ENTRY(dst->subtype);
|
||||
|
||||
// Ride name
|
||||
dst->name = 0;
|
||||
if (is_user_string_id(src->name)) {
|
||||
|
@ -2024,12 +2028,24 @@ static void rct1_import_ride(rct1_s4 *s4, rct_ride *dst, rct1_ride *src)
|
|||
dst->overall_view = src->overall_view;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
dst->station_starts[i] = src->station_starts[i];
|
||||
dst->station_heights[i] = src->station_height[i];
|
||||
dst->station_heights[i] = src->station_height[i] / 2;
|
||||
dst->station_length[i] = src->station_length[i];
|
||||
dst->station_depart[i] = src->station_depart[i];
|
||||
dst->station_depart[i] = src->station_light[i];
|
||||
dst->var_066[i] = src->station_depart[i];
|
||||
dst->entrances[i] = src->entrance[i];
|
||||
dst->exits[i] = src->exit[i];
|
||||
dst->queue_time[i] = src->queue_time[i];
|
||||
}
|
||||
dst->num_stations = src->num_stations;
|
||||
|
||||
for (int i = 0; i < 32; i++) {
|
||||
dst->vehicles[i] = 0xFFFF;
|
||||
}
|
||||
dst->num_vehicles = src->num_trains;
|
||||
dst->num_cars_per_train = src->num_cars_per_train;
|
||||
dst->var_0CA = 32;
|
||||
dst->max_trains = 32;
|
||||
dst->var_0CB = 12;
|
||||
|
||||
// Operation
|
||||
dst->mode = src->operating_mode;
|
||||
|
@ -2038,6 +2054,9 @@ static void rct1_import_ride(rct1_s4 *s4, rct_ride *dst, rct1_ride *src)
|
|||
dst->max_waiting_time = src->max_waiting_time;
|
||||
dst->operation_option = src->operation_option;
|
||||
dst->music = src->music;
|
||||
dst->num_circuits = 1;
|
||||
dst->min_max_cars_per_train = (rideEntry->min_cars_in_train << 4) | rideEntry->max_cars_in_train;
|
||||
dst->lift_hill_speed = RCT2_ADDRESS(0x0097D7C9, uint8)[dst->type * 4];
|
||||
|
||||
// Colours
|
||||
dst->colour_scheme_type = src->colour_scheme;
|
||||
|
@ -2054,6 +2073,7 @@ static void rct1_import_ride(rct1_s4 *s4, rct_ride *dst, rct1_ride *src)
|
|||
}
|
||||
|
||||
// Maintenance
|
||||
dst->build_date = src->build_date;
|
||||
dst->inspection_interval = src->inspection_interval;
|
||||
dst->last_inspection = src->last_inspection;
|
||||
dst->reliability = src->reliability;
|
||||
|
@ -2061,7 +2081,21 @@ static void rct1_import_ride(rct1_s4 *s4, rct_ride *dst, rct1_ride *src)
|
|||
dst->breakdown_reason = src->breakdown_reason;
|
||||
|
||||
// Finance
|
||||
dst->upkeep_cost = src->upkeep_cost;
|
||||
dst->price = src->price;
|
||||
dst->income_per_hour = src->income_per_hour;
|
||||
|
||||
dst->value = src->value;
|
||||
dst->satisfaction = 255;
|
||||
dst->satisfaction_time_out = 0;
|
||||
dst->satisfaction_next = 0;
|
||||
dst->popularity = src->popularity;
|
||||
dst->popularity_next = src->popularity_next;
|
||||
dst->popularity_time_out = src->popularity_time_out;
|
||||
|
||||
dst->music_tune_id = 255;
|
||||
dst->measurement_index = 255;
|
||||
dst->excitement = (ride_rating)-1;
|
||||
}
|
||||
|
||||
static void rct1_import_s4_properly(rct1_s4 *s4)
|
||||
|
@ -2104,6 +2138,10 @@ static void rct1_import_s4_properly(rct1_s4 *s4)
|
|||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
gPeepSpawns[i] = s4->peep_spawn[i];
|
||||
}
|
||||
|
||||
// Finance
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_MONEY_ENCRYPTED, uint32) = ENCRYPT_MONEY(s4->cash);
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_PARK_ENTRANCE_FEE, money16) = s4->park_entrance_fee;
|
||||
|
|
Loading…
Reference in New Issue