1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-21 05:53:02 +01:00

Smart pointers (#11852)

* Part of #11159 Added smart pointers to a few functions

* Use camelCase for variables

Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
This commit is contained in:
Sohil Adwani
2020-06-15 14:47:07 -04:00
committed by GitHub
parent feb3fcfd6e
commit 03f016e9ef
2 changed files with 17 additions and 21 deletions

View File

@@ -59,6 +59,7 @@
#include <algorithm>
#include <iterator>
#include <memory>
using namespace OpenRCT2;
using namespace OpenRCT2::Drawing;
@@ -93,7 +94,7 @@ static bool _trackDesignPlaceStateHasScenery = false;
static bool _trackDesignPlaceStatePlaceScenery = true;
static bool _trackDesignPlaceIsReplay = false;
static map_backup* track_design_preview_backup_map();
static std::unique_ptr<map_backup> track_design_preview_backup_map();
static void track_design_preview_restore_map(map_backup* backup);
@@ -2000,7 +2001,7 @@ static bool track_design_place_preview(TrackDesign* td6, money32* cost, Ride** o
void track_design_draw_preview(TrackDesign* td6, uint8_t* pixels)
{
// Make a copy of the map
map_backup* mapBackup = track_design_preview_backup_map();
auto mapBackup = track_design_preview_backup_map();
if (mapBackup == nullptr)
{
return;
@@ -2018,7 +2019,7 @@ void track_design_draw_preview(TrackDesign* td6, uint8_t* pixels)
if (!track_design_place_preview(td6, &cost, &ride, &flags))
{
std::fill_n(pixels, TRACK_PREVIEW_IMAGE_SIZE * 4, 0x00);
track_design_preview_restore_map(mapBackup);
track_design_preview_restore_map(mapBackup.get());
return;
}
td6->cost = cost;
@@ -2101,7 +2102,7 @@ void track_design_draw_preview(TrackDesign* td6, uint8_t* pixels)
}
ride->Delete();
track_design_preview_restore_map(mapBackup);
track_design_preview_restore_map(mapBackup.get());
}
/**
@@ -2109,9 +2110,9 @@ void track_design_draw_preview(TrackDesign* td6, uint8_t* pixels)
* design preview.
* rct2: 0x006D1C68
*/
static map_backup* track_design_preview_backup_map()
static std::unique_ptr<map_backup> track_design_preview_backup_map()
{
map_backup* backup = static_cast<map_backup*>(malloc(sizeof(map_backup)));
auto backup = std::make_unique<map_backup>();
if (backup != nullptr)
{
std::memcpy(backup->tile_elements, gTileElements, sizeof(backup->tile_elements));
@@ -2138,8 +2139,6 @@ static void track_design_preview_restore_map(map_backup* backup)
gMapSizeMinus2 = backup->map_size_units_minus_2;
gMapSize = backup->map_size;
gCurrentRotation = backup->current_rotation;
free(backup);
}
/**