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
|
#pragma once
|
||||||
|
|
||||||
#include "../common.h"
|
#include "../common.h"
|
||||||
|
|
||||||
|
#if __cplusplus
|
||||||
|
|
||||||
#include "../core/List.hpp"
|
#include "../core/List.hpp"
|
||||||
|
|
||||||
namespace RCT1
|
namespace RCT1
|
||||||
|
@ -43,3 +46,10 @@ namespace RCT1
|
||||||
|
|
||||||
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];
|
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
|
#pragma endregion
|
||||||
|
|
||||||
#include "../addresses.h"
|
|
||||||
#include "../audio/audio.h"
|
#include "../audio/audio.h"
|
||||||
#include "../cheats.h"
|
#include "../cheats.h"
|
||||||
#include "../game.h"
|
#include "../game.h"
|
||||||
|
@ -24,6 +23,7 @@
|
||||||
#include "../network/network.h"
|
#include "../network/network.h"
|
||||||
#include "../object/ObjectManager.h"
|
#include "../object/ObjectManager.h"
|
||||||
#include "../rct1.h"
|
#include "../rct1.h"
|
||||||
|
#include "../rct1/Tables.h"
|
||||||
#include "../util/sawyercoding.h"
|
#include "../util/sawyercoding.h"
|
||||||
#include "../util/util.h"
|
#include "../util/util.h"
|
||||||
#include "../windows/error.h"
|
#include "../windows/error.h"
|
||||||
|
@ -45,7 +45,7 @@ typedef struct map_backup {
|
||||||
uint8 current_rotation;
|
uint8 current_rotation;
|
||||||
} map_backup;
|
} 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;
|
rct_track_td6 *gActiveTrackDesign;
|
||||||
uint8 gTrackDesignPlaceFlags;
|
uint8 gTrackDesignPlaceFlags;
|
||||||
|
@ -62,6 +62,7 @@ static money32 _trackDesignPlaceCost;
|
||||||
static sint16 _trackDesignPlaceZ;
|
static sint16 _trackDesignPlaceZ;
|
||||||
static sint16 word_F44129;
|
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 map_backup *track_design_preview_backup_map();
|
||||||
static void track_design_preview_restore_map(map_backup *backup);
|
static void track_design_preview_restore_map(map_backup *backup);
|
||||||
static void track_design_preview_clear_map();
|
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
|
// 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) {
|
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 {
|
} else {
|
||||||
int vehicle_type = td6->vehicle_type;
|
const char * name = rct1_get_vehicle_object(td6->vehicle_type);
|
||||||
if (vehicle_type == RCT1_VEHICLE_TYPE_INVERTED_COASTER_TRAIN &&
|
assert(name != NULL);
|
||||||
td6->type == RIDE_TYPE_INVERTED_ROLLER_COASTER
|
memcpy(vehicleObject.name, name, min(strlen(name), 8));
|
||||||
) {
|
|
||||||
vehicle_type = RCT1_VEHICLE_TYPE_4_ACROSS_INVERTED_COASTER_TRAIN;
|
|
||||||
}
|
}
|
||||||
vehicle_object = &RCT2_ADDRESS(0x0097F0DC, rct_object_entry)[vehicle_type];
|
memcpy(&td6->vehicle_object, &vehicleObject, sizeof(rct_object_entry));
|
||||||
}
|
|
||||||
memcpy(&td6->vehicle_object, vehicle_object, sizeof(rct_object_entry));
|
|
||||||
|
|
||||||
// Further vehicle colour fixes
|
// Further vehicle colour fixes
|
||||||
for (int i = 0; i < 32; i++) {
|
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);
|
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, "");
|
||||||
rct_string_id new_ride_name = user_string_allocate(132, ride_name);
|
|
||||||
if (new_ride_name != 0) {
|
if (new_ride_name != 0) {
|
||||||
rct_string_id old_name = ride->name;
|
rct_string_id old_name = ride->name;
|
||||||
ride->name = new_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->cost = cost;
|
||||||
td6->track_flags = flags & 7;
|
td6->track_flags = flags & 7;
|
||||||
|
|
||||||
rct_viewport* view = RCT2_ADDRESS(0x9D8161, rct_viewport);
|
|
||||||
rct_drawpixelinfo* dpi = RCT2_ADDRESS(0x9D8151, rct_drawpixelinfo);
|
|
||||||
|
|
||||||
rct_xyz32 centre;
|
rct_xyz32 centre;
|
||||||
centre.x = (gTrackPreviewMin.x + gTrackPreviewMax.x) / 2 + 16;
|
centre.x = (gTrackPreviewMin.x + gTrackPreviewMax.x) / 2 + 16;
|
||||||
centre.y = (gTrackPreviewMin.y + gTrackPreviewMax.y) / 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;
|
width = 370 << zoom_level;
|
||||||
height = 217 << zoom_level;
|
height = 217 << zoom_level;
|
||||||
|
|
||||||
view->width = 370;
|
rct_viewport view;
|
||||||
view->height = 217;
|
view.width = 370;
|
||||||
view->view_width = width;
|
view.height = 217;
|
||||||
view->view_height = height;
|
view.view_width = width;
|
||||||
view->x = 0;
|
view.view_height = height;
|
||||||
view->y = 0;
|
view.x = 0;
|
||||||
view->zoom = zoom_level;
|
view.y = 0;
|
||||||
view->flags = VIEWPORT_FLAG_HIDE_BASE | VIEWPORT_FLAG_INVISIBLE_SPRITES;
|
view.zoom = zoom_level;
|
||||||
|
view.flags = VIEWPORT_FLAG_HIDE_BASE | VIEWPORT_FLAG_INVISIBLE_SPRITES;
|
||||||
|
|
||||||
dpi->zoom_level = zoom_level;
|
rct_drawpixelinfo dpi;
|
||||||
dpi->x = 0;
|
dpi.zoom_level = zoom_level;
|
||||||
dpi->y = 0;
|
dpi.x = 0;
|
||||||
dpi->width = 370;
|
dpi.y = 0;
|
||||||
dpi->height = 217;
|
dpi.width = 370;
|
||||||
dpi->pitch = 0;
|
dpi.height = 217;
|
||||||
dpi->bits = pixels;
|
dpi.pitch = 0;
|
||||||
|
dpi.bits = pixels;
|
||||||
|
|
||||||
rct_xy32 offset = { width / 2, height / 2 };
|
rct_xy32 offset = { width / 2, height / 2 };
|
||||||
for (int i = 0; i < 4; i++) {
|
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 right = left + width;
|
||||||
sint32 bottom = top + height;
|
sint32 bottom = top + height;
|
||||||
|
|
||||||
view->view_x = left;
|
view.view_x = left;
|
||||||
view->view_y = top;
|
view.view_y = top;
|
||||||
viewport_paint(view, dpi, left, top, right, bottom);
|
viewport_paint(&view, &dpi, left, top, right, bottom);
|
||||||
|
|
||||||
dpi->bits += TRACK_PREVIEW_IMAGE_SIZE;
|
dpi.bits += TRACK_PREVIEW_IMAGE_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ride_delete(rideIndex);
|
ride_delete(rideIndex);
|
||||||
|
|
Loading…
Reference in New Issue