Merge pull request #4246 from marijnvdwerf/clean/data-7

Integrate data
This commit is contained in:
Ted John 2016-08-07 17:35:59 +01:00 committed by GitHub
commit 6644902829
6 changed files with 1062 additions and 13 deletions

View File

@ -1395,8 +1395,8 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
money32 price = RideTrackCosts[ride->type].track_price;
price *= (rideTypeFlags & RIDE_TYPE_FLAG_FLAT_RIDE) ?
RCT2_ADDRESS(0x0099DE34, money32)[type] :
RCT2_ADDRESS(0x0099DA34, money32)[type];
FlatRideTrackPricing[type] :
TrackPricing[type];
price >>= 16;
price = cost + ((price / 2) * 10);
@ -1675,10 +1675,10 @@ static money32 track_remove(uint8 type, uint8 sequence, sint16 originX, sint16 o
money32 price = RideTrackCosts[ride->type].track_price;
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_FLAT_RIDE)) {
price *= RCT2_ADDRESS(0x0099DE34, money32)[type];
price *= FlatRideTrackPricing[type];
}
else {
price *= RCT2_ADDRESS(0x0099DA34, money32)[type];
price *= TrackPricing[type];
}
price >>= 16;
price = (price + cost) / 2;
@ -1833,7 +1833,7 @@ static money32 set_maze_track(uint16 x, uint8 flags, uint8 direction, uint16 y,
rct_ride *ride = get_ride(rideIndex);
money32 price = (((RideTrackCosts[ride->type].track_price * RCT2_GLOBAL(0x0099DBC8, money32)) >> 16));
money32 price = (((RideTrackCosts[ride->type].track_price * TrackPricing[TRACK_ELEM_MAZE]) >> 16));
RCT2_GLOBAL(0x00F4413E, money32) = price / 2 * 10;
if (!(flags & GAME_COMMAND_FLAG_APPLY)) {

File diff suppressed because it is too large Load Diff

View File

@ -60,3 +60,17 @@ typedef struct {
extern const rct_vehicle_info_list **gTrackVehicleInfo[17];
extern const sint16 AlternativeTrackTypes[256];
extern const money32 TrackPricing[256];
extern const money32 FlatRideTrackPricing[256];
typedef struct dodgems_track_size {
uint8 left;
uint8 top;
uint8 right;
uint8 bottom;
} dodgems_track_size;
extern const dodgems_track_size DodgemsTrackSize[256];
extern const uint8 TrackElementMirrorMap[256];

View File

@ -435,7 +435,7 @@ static void track_design_mirror_ride(rct_track_td6 *td6)
{
rct_td6_track_element *track = td6->track_elements;
for (; track->type != 0xFF; track++) {
track->type = RCT2_ADDRESS(0x0099EA1C, uint8)[track->type];
track->type = TrackElementMirrorMap[track->type];
}
rct_td6_entrance_element *entrance = td6->entrance_elements;
@ -1582,7 +1582,7 @@ static money32 place_maze_design(uint8 flags, uint8 rideIndex, uint16 mazeEntry,
// Calculate price
money32 price = 0;
if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) {
price = RideTrackCosts[ride->type].track_price * RCT2_GLOBAL(0x0099DBC8, money32);
price = RideTrackCosts[ride->type].track_price * TrackPricing[TRACK_ELEM_MAZE];
price = (price >> 17) * 10;
}

View File

@ -5458,10 +5458,10 @@ bool vehicle_update_bumper_car_collision(rct_vehicle *vehicle, sint16 x, sint16
uint16 bp = (vehicle->var_44 * 30) >> 9;
uint32 trackType = vehicle->track_type >> 2;
sint16 rideLeft = vehicle->track_x + RCT2_ADDRESS(0x0099E228, uint8)[trackType * 4];
sint16 rideRight = vehicle->track_x + RCT2_ADDRESS(0x0099E22A, uint8)[trackType * 4];
sint16 rideTop = vehicle->track_y + RCT2_ADDRESS(0x0099E229, uint8)[trackType * 4];
sint16 rideBottom = vehicle->track_y + RCT2_ADDRESS(0x0099E22B, uint8)[trackType * 4];
sint16 rideLeft = vehicle->track_x + DodgemsTrackSize[trackType].left;
sint16 rideRight = vehicle->track_x + DodgemsTrackSize[trackType].right;
sint16 rideTop = vehicle->track_y + DodgemsTrackSize[trackType].top;
sint16 rideBottom = vehicle->track_y + DodgemsTrackSize[trackType].bottom;
if (x - bp < rideLeft ||
y - bp < rideTop ||

View File

@ -33,6 +33,7 @@
#include "../world/scenery.h"
#include "../ride/ride_data.h"
#include "../sprites.h"
#include "../ride/track_data.h"
#define _window_new_ride_current_tab RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_RIDE_LIST_SELECTED_TAB, uint8)
@ -912,9 +913,9 @@ static void window_new_ride_paint_ride_information(rct_window *w, rct_drawpixeli
int unk2 = RideConstructionDefaultTrackType[item.type];
money32 price = RideTrackCosts[item.type].track_price;
if (ride_type_has_flag(item.type, RIDE_TYPE_FLAG_FLAT_RIDE)) {
price *= RCT2_ADDRESS(0x0099DE34, uint32)[unk2];
price *= FlatRideTrackPricing[unk2];
} else {
price *= RCT2_ADDRESS(0x0099DA34, uint32)[unk2];
price *= TrackPricing[unk2];
}
price = (price >> 17) * 10 * RideData5[item.type].price;