mirror of https://github.com/OpenRCT2/OpenRCT2.git
Remove RCT_GLOBALs from track_design.c
This commit is contained in:
parent
db327d26c8
commit
669396e841
|
@ -17,6 +17,9 @@
|
|||
#pragma once
|
||||
|
||||
#include "../common.h"
|
||||
|
||||
#if __cplusplus
|
||||
|
||||
#include "../core/List.hpp"
|
||||
|
||||
namespace RCT1
|
||||
|
@ -41,5 +44,12 @@ namespace RCT1
|
|||
|
||||
const List<const char *> GetSceneryObjects(uint8 sceneryType);
|
||||
|
||||
const List<const char *> GetPreferedRideEntryOrder(uint8 rideType);
|
||||
const List<const char *> GetPreferedRideEntryOrder(uint8 rideType);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
const char * rct1_get_ride_type_object(uint8 rideType);
|
||||
const char * rct1_get_vehicle_object(uint8 vehicleType);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1110,3 +1110,16 @@ namespace RCT1
|
|||
return map[sceneryType];
|
||||
}
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
const char * rct1_get_ride_type_object(uint8 rideType)
|
||||
{
|
||||
return RCT1::GetRideTypeObject(rideType);
|
||||
}
|
||||
|
||||
const char * rct1_get_vehicle_object(uint8 vehicleType)
|
||||
{
|
||||
return RCT1::GetVehicleObject(vehicleType);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
*****************************************************************************/
|
||||
#pragma endregion
|
||||
|
||||
#include "../addresses.h"
|
||||
#include "../audio/audio.h"
|
||||
#include "../cheats.h"
|
||||
#include "../game.h"
|
||||
|
@ -24,6 +23,7 @@
|
|||
#include "../network/network.h"
|
||||
#include "../object/ObjectManager.h"
|
||||
#include "../rct1.h"
|
||||
#include "../rct1/Tables.h"
|
||||
#include "../util/sawyercoding.h"
|
||||
#include "../util/util.h"
|
||||
#include "../windows/error.h"
|
||||
|
@ -45,7 +45,7 @@ typedef struct map_backup {
|
|||
uint8 current_rotation;
|
||||
} map_backup;
|
||||
|
||||
static rct_track_td6 *track_design_open_from_buffer(uint8 *src, size_t srcLength);
|
||||
static const rct_object_entry DefaultMazeObjectEntry = { 0x80, { "HMAZE " }, 0 };
|
||||
|
||||
rct_track_td6 *gActiveTrackDesign;
|
||||
uint8 gTrackDesignPlaceFlags;
|
||||
|
@ -62,6 +62,7 @@ static money32 _trackDesignPlaceCost;
|
|||
static sint16 _trackDesignPlaceZ;
|
||||
static sint16 word_F44129;
|
||||
|
||||
static rct_track_td6 *track_design_open_from_buffer(uint8 *src, size_t srcLength);
|
||||
static map_backup *track_design_preview_backup_map();
|
||||
static void track_design_preview_restore_map(map_backup *backup);
|
||||
static void track_design_preview_clear_map();
|
||||
|
@ -229,19 +230,17 @@ static rct_track_td6 *track_design_open_from_buffer(uint8 *src, size_t srcLength
|
|||
}
|
||||
|
||||
// Convert RCT1 vehicle type to RCT2 vehicle type
|
||||
rct_object_entry *vehicle_object;
|
||||
rct_object_entry vehicleObject = { 0x80, { " " }, 0 };
|
||||
if (td6->type == RIDE_TYPE_MAZE) {
|
||||
vehicle_object = RCT2_ADDRESS(0x0097F66C, rct_object_entry);
|
||||
const char * name = rct1_get_ride_type_object(td6->type);
|
||||
assert(name != NULL);
|
||||
memcpy(vehicleObject.name, name, min(strlen(name), 8));
|
||||
} else {
|
||||
int vehicle_type = td6->vehicle_type;
|
||||
if (vehicle_type == RCT1_VEHICLE_TYPE_INVERTED_COASTER_TRAIN &&
|
||||
td6->type == RIDE_TYPE_INVERTED_ROLLER_COASTER
|
||||
) {
|
||||
vehicle_type = RCT1_VEHICLE_TYPE_4_ACROSS_INVERTED_COASTER_TRAIN;
|
||||
}
|
||||
vehicle_object = &RCT2_ADDRESS(0x0097F0DC, rct_object_entry)[vehicle_type];
|
||||
const char * name = rct1_get_vehicle_object(td6->vehicle_type);
|
||||
assert(name != NULL);
|
||||
memcpy(vehicleObject.name, name, min(strlen(name), 8));
|
||||
}
|
||||
memcpy(&td6->vehicle_object, vehicle_object, sizeof(rct_object_entry));
|
||||
memcpy(&td6->vehicle_object, &vehicleObject, sizeof(rct_object_entry));
|
||||
|
||||
// Further vehicle colour fixes
|
||||
for (int i = 0; i < 32; i++) {
|
||||
|
@ -1316,8 +1315,7 @@ static bool sub_6D2189(rct_track_td6 *td6, money32 *cost, uint8 *rideId, uint8 *
|
|||
}
|
||||
|
||||
rct_ride *ride = get_ride(rideIndex);
|
||||
const utf8 *ride_name = RCT2_ADDRESS(0x009E3504, const utf8);
|
||||
rct_string_id new_ride_name = user_string_allocate(132, ride_name);
|
||||
rct_string_id new_ride_name = user_string_allocate(132, "");
|
||||
if (new_ride_name != 0) {
|
||||
rct_string_id old_name = ride->name;
|
||||
ride->name = new_ride_name;
|
||||
|
@ -1685,9 +1683,6 @@ void track_design_draw_preview(rct_track_td6 *td6, uint8 *pixels)
|
|||
td6->cost = cost;
|
||||
td6->track_flags = flags & 7;
|
||||
|
||||
rct_viewport* view = RCT2_ADDRESS(0x9D8161, rct_viewport);
|
||||
rct_drawpixelinfo* dpi = RCT2_ADDRESS(0x9D8151, rct_drawpixelinfo);
|
||||
|
||||
rct_xyz32 centre;
|
||||
centre.x = (gTrackPreviewMin.x + gTrackPreviewMax.x) / 2 + 16;
|
||||
centre.y = (gTrackPreviewMin.y + gTrackPreviewMax.y) / 2 + 16;
|
||||
|
@ -1710,22 +1705,24 @@ void track_design_draw_preview(rct_track_td6 *td6, uint8 *pixels)
|
|||
width = 370 << zoom_level;
|
||||
height = 217 << zoom_level;
|
||||
|
||||
view->width = 370;
|
||||
view->height = 217;
|
||||
view->view_width = width;
|
||||
view->view_height = height;
|
||||
view->x = 0;
|
||||
view->y = 0;
|
||||
view->zoom = zoom_level;
|
||||
view->flags = VIEWPORT_FLAG_HIDE_BASE | VIEWPORT_FLAG_INVISIBLE_SPRITES;
|
||||
rct_viewport view;
|
||||
view.width = 370;
|
||||
view.height = 217;
|
||||
view.view_width = width;
|
||||
view.view_height = height;
|
||||
view.x = 0;
|
||||
view.y = 0;
|
||||
view.zoom = zoom_level;
|
||||
view.flags = VIEWPORT_FLAG_HIDE_BASE | VIEWPORT_FLAG_INVISIBLE_SPRITES;
|
||||
|
||||
dpi->zoom_level = zoom_level;
|
||||
dpi->x = 0;
|
||||
dpi->y = 0;
|
||||
dpi->width = 370;
|
||||
dpi->height = 217;
|
||||
dpi->pitch = 0;
|
||||
dpi->bits = pixels;
|
||||
rct_drawpixelinfo dpi;
|
||||
dpi.zoom_level = zoom_level;
|
||||
dpi.x = 0;
|
||||
dpi.y = 0;
|
||||
dpi.width = 370;
|
||||
dpi.height = 217;
|
||||
dpi.pitch = 0;
|
||||
dpi.bits = pixels;
|
||||
|
||||
rct_xy32 offset = { width / 2, height / 2 };
|
||||
for (int i = 0; i < 4; i++) {
|
||||
|
@ -1740,11 +1737,11 @@ void track_design_draw_preview(rct_track_td6 *td6, uint8 *pixels)
|
|||
sint32 right = left + width;
|
||||
sint32 bottom = top + height;
|
||||
|
||||
view->view_x = left;
|
||||
view->view_y = top;
|
||||
viewport_paint(view, dpi, left, top, right, bottom);
|
||||
view.view_x = left;
|
||||
view.view_y = top;
|
||||
viewport_paint(&view, &dpi, left, top, right, bottom);
|
||||
|
||||
dpi->bits += TRACK_PREVIEW_IMAGE_SIZE;
|
||||
dpi.bits += TRACK_PREVIEW_IMAGE_SIZE;
|
||||
}
|
||||
|
||||
ride_delete(rideIndex);
|
||||
|
|
Loading…
Reference in New Issue