mirror of https://github.com/OpenRCT2/OpenRCT2.git
Use unique_ptr for TitleSequenceParkHandle Stream
Co-authored-by: Gabriel Guedes <gabriel.guedesaz@gmail.com>
This commit is contained in:
parent
e3a4d6a245
commit
f765ed2f94
|
@ -279,7 +279,7 @@ private:
|
|||
auto parkHandle = TitleSequenceGetParkHandle(*_sequence, saveIndex);
|
||||
if (parkHandle != nullptr)
|
||||
{
|
||||
loadSuccess = LoadParkFromStream(static_cast<OpenRCT2::IStream*>(parkHandle->Stream), parkHandle->HintPath);
|
||||
loadSuccess = LoadParkFromStream(parkHandle->Stream.get(), parkHandle->HintPath);
|
||||
}
|
||||
if (!loadSuccess)
|
||||
{
|
||||
|
|
|
@ -344,13 +344,12 @@ static void window_title_editor_mouseup(rct_window* w, rct_widgetindex widgetInd
|
|||
if (w->selected_list_item >= 0 && w->selected_list_item < static_cast<int16_t>(_editingTitleSequence->Saves.size()))
|
||||
{
|
||||
auto handle = TitleSequenceGetParkHandle(*_editingTitleSequence, w->selected_list_item);
|
||||
auto stream = static_cast<OpenRCT2::IStream*>(handle->Stream);
|
||||
bool isScenario = ParkImporter::ExtensionIsScenario(handle->HintPath);
|
||||
try
|
||||
{
|
||||
auto& objectMgr = OpenRCT2::GetContext()->GetObjectManager();
|
||||
auto parkImporter = std::unique_ptr<IParkImporter>(ParkImporter::Create(handle->HintPath));
|
||||
auto result = parkImporter->LoadFromStream(stream, isScenario);
|
||||
auto result = parkImporter->LoadFromStream(handle->Stream.get(), isScenario);
|
||||
objectMgr.LoadObjects(result.RequiredObjects.data(), result.RequiredObjects.size());
|
||||
parkImporter->Import();
|
||||
|
||||
|
|
|
@ -114,11 +114,11 @@ std::unique_ptr<TitleSequenceParkHandle> TitleSequenceGetParkHandle(TitleSequenc
|
|||
auto data = zip->GetFileData(filename);
|
||||
auto dataForMs = Memory::Allocate<uint8_t>(data.size());
|
||||
std::copy_n(data.data(), data.size(), dataForMs);
|
||||
auto ms = new OpenRCT2::MemoryStream(
|
||||
auto ms = std::make_unique<OpenRCT2::MemoryStream>(
|
||||
dataForMs, data.size(), OpenRCT2::MEMORY_ACCESS::READ | OpenRCT2::MEMORY_ACCESS::OWNER);
|
||||
|
||||
handle = std::make_unique<TitleSequenceParkHandle>();
|
||||
handle->Stream = ms;
|
||||
handle->Stream = std::move(ms);
|
||||
handle->HintPath = filename;
|
||||
}
|
||||
else
|
||||
|
@ -129,10 +129,10 @@ std::unique_ptr<TitleSequenceParkHandle> TitleSequenceGetParkHandle(TitleSequenc
|
|||
else
|
||||
{
|
||||
auto absolutePath = Path::Combine(seq.Path, filename);
|
||||
OpenRCT2::FileStream* fileStream = nullptr;
|
||||
std::unique_ptr<OpenRCT2::IStream> fileStream = nullptr;
|
||||
try
|
||||
{
|
||||
fileStream = new OpenRCT2::FileStream(absolutePath, OpenRCT2::FILE_MODE_OPEN);
|
||||
fileStream = std::make_unique<OpenRCT2::FileStream>(absolutePath, OpenRCT2::FILE_MODE_OPEN);
|
||||
}
|
||||
catch (const IOException& exception)
|
||||
{
|
||||
|
@ -142,7 +142,7 @@ std::unique_ptr<TitleSequenceParkHandle> TitleSequenceGetParkHandle(TitleSequenc
|
|||
if (fileStream != nullptr)
|
||||
{
|
||||
handle = std::make_unique<TitleSequenceParkHandle>();
|
||||
handle->Stream = fileStream;
|
||||
handle->Stream = std::move(fileStream);
|
||||
handle->HintPath = filename;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
#include "../common.h"
|
||||
#include "../localisation/Localisation.h"
|
||||
#include "../openrct2/core/IStream.hpp"
|
||||
|
||||
#include <memory>
|
||||
|
||||
|
@ -54,7 +55,7 @@ struct TitleSequence
|
|||
struct TitleSequenceParkHandle
|
||||
{
|
||||
std::string HintPath;
|
||||
void* Stream;
|
||||
std::unique_ptr<OpenRCT2::IStream> Stream;
|
||||
};
|
||||
|
||||
enum TITLE_SCRIPT
|
||||
|
|
Loading…
Reference in New Issue