mirror of https://github.com/OpenRCT2/OpenRCT2.git
Remove remnants of STEX support
This commit is contained in:
parent
64b923e5c1
commit
5cd4057c76
|
@ -455,7 +455,6 @@
|
|||
F76C86741EC4E88400FA49E2 /* RideObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C84261EC4E7CC00FA49E2 /* RideObject.cpp */; };
|
||||
F76C86761EC4E88400FA49E2 /* SceneryGroupObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C84281EC4E7CC00FA49E2 /* SceneryGroupObject.cpp */; };
|
||||
F76C86791EC4E88400FA49E2 /* SmallSceneryObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C842B1EC4E7CC00FA49E2 /* SmallSceneryObject.cpp */; };
|
||||
F76C867B1EC4E88400FA49E2 /* StexObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C842D1EC4E7CC00FA49E2 /* StexObject.cpp */; };
|
||||
F76C867D1EC4E88400FA49E2 /* StringTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C842F1EC4E7CC00FA49E2 /* StringTable.cpp */; };
|
||||
F76C867F1EC4E88400FA49E2 /* WallObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C84311EC4E7CC00FA49E2 /* WallObject.cpp */; };
|
||||
F76C86811EC4E88400FA49E2 /* WaterObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C84331EC4E7CC00FA49E2 /* WaterObject.cpp */; };
|
||||
|
@ -1541,8 +1540,6 @@
|
|||
F76C842A1EC4E7CC00FA49E2 /* SceneryObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneryObject.h; sourceTree = "<group>"; };
|
||||
F76C842B1EC4E7CC00FA49E2 /* SmallSceneryObject.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SmallSceneryObject.cpp; sourceTree = "<group>"; };
|
||||
F76C842C1EC4E7CC00FA49E2 /* SmallSceneryObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmallSceneryObject.h; sourceTree = "<group>"; };
|
||||
F76C842D1EC4E7CC00FA49E2 /* StexObject.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = StexObject.cpp; sourceTree = "<group>"; };
|
||||
F76C842E1EC4E7CC00FA49E2 /* StexObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StexObject.h; sourceTree = "<group>"; };
|
||||
F76C842F1EC4E7CC00FA49E2 /* StringTable.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = StringTable.cpp; sourceTree = "<group>"; };
|
||||
F76C84301EC4E7CC00FA49E2 /* StringTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StringTable.h; sourceTree = "<group>"; };
|
||||
F76C84311EC4E7CC00FA49E2 /* WallObject.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WallObject.cpp; sourceTree = "<group>"; };
|
||||
|
@ -2648,8 +2645,6 @@
|
|||
F76C842A1EC4E7CC00FA49E2 /* SceneryObject.h */,
|
||||
F76C842B1EC4E7CC00FA49E2 /* SmallSceneryObject.cpp */,
|
||||
F76C842C1EC4E7CC00FA49E2 /* SmallSceneryObject.h */,
|
||||
F76C842D1EC4E7CC00FA49E2 /* StexObject.cpp */,
|
||||
F76C842E1EC4E7CC00FA49E2 /* StexObject.h */,
|
||||
F76C842F1EC4E7CC00FA49E2 /* StringTable.cpp */,
|
||||
F76C84301EC4E7CC00FA49E2 /* StringTable.h */,
|
||||
F76C84311EC4E7CC00FA49E2 /* WallObject.cpp */,
|
||||
|
@ -3878,7 +3873,6 @@
|
|||
C68878CD20289B9B0084B384 /* DefaultObjects.cpp in Sources */,
|
||||
939A359A20C12FC800630B3F /* Paint.Litter.cpp in Sources */,
|
||||
C688788220289ADE0084B384 /* Rect.cpp in Sources */,
|
||||
F76C867B1EC4E88400FA49E2 /* StexObject.cpp in Sources */,
|
||||
93F9DA3920B46FB800D1BE92 /* ObjectJsonHelpers.cpp in Sources */,
|
||||
C688787320289A780084B384 /* RideRatings.cpp in Sources */,
|
||||
C688790D20289B9B0084B384 /* CircusShow.cpp in Sources */,
|
||||
|
|
|
@ -25,9 +25,9 @@
|
|||
#include <openrct2/object/ObjectManager.h>
|
||||
#include <openrct2/object/ObjectRepository.h>
|
||||
#include <openrct2/object/RideObject.h>
|
||||
#include <openrct2/object/StexObject.h>
|
||||
#include <openrct2/platform/platform.h>
|
||||
#include <openrct2/ride/RideGroupManager.h>
|
||||
#include <openrct2/scenario/Scenario.h>
|
||||
#include <openrct2/sprites.h>
|
||||
#include <openrct2/util/Util.h>
|
||||
#include <openrct2/windows/Intent.h>
|
||||
|
@ -841,7 +841,7 @@ static void window_editor_object_selection_invalidate(rct_window* w)
|
|||
for (int32_t i = 0; i < OBJECT_TYPE_COUNT; i++)
|
||||
{
|
||||
auto widget = &w->widgets[WIDX_TAB_1 + i];
|
||||
if ((!advancedMode && ObjectSelectionPages[i].IsAdvanced) || i == OBJECT_TYPE_SCENARIO_TEXT)
|
||||
if (!advancedMode && ObjectSelectionPages[i].IsAdvanced)
|
||||
{
|
||||
widget->type = WWT_EMPTY;
|
||||
}
|
||||
|
|
|
@ -837,12 +837,6 @@ static void window_editor_objective_options_main_invalidate(rct_window* w)
|
|||
|
||||
window_editor_objective_options_set_pressed_tab(w);
|
||||
|
||||
auto stex = (rct_stex_entry*)object_entry_get_chunk(OBJECT_TYPE_SCENARIO_TEXT, 0);
|
||||
if (stex == nullptr)
|
||||
w->disabled_widgets &= ~((1 << WIDX_PARK_NAME) | (1 << WIDX_SCENARIO_NAME));
|
||||
else
|
||||
w->disabled_widgets |= ((1 << WIDX_PARK_NAME) | (1 << WIDX_SCENARIO_NAME));
|
||||
|
||||
switch (gScenarioObjectiveType)
|
||||
{
|
||||
case OBJECTIVE_GUESTS_BY:
|
||||
|
@ -997,15 +991,7 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi
|
|||
y = w->y + w->widgets[WIDX_PARK_NAME].top;
|
||||
width = w->widgets[WIDX_PARK_NAME].left - 16;
|
||||
|
||||
auto stex = (rct_stex_entry*)object_entry_get_chunk(OBJECT_TYPE_SCENARIO_TEXT, 0);
|
||||
if (stex != nullptr)
|
||||
{
|
||||
set_format_arg(0, rct_string_id, stex->park_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_format_arg(0, rct_string_id, gParkName);
|
||||
}
|
||||
set_format_arg(0, rct_string_id, gParkName);
|
||||
set_format_arg(2, uint32_t, gParkNameArgs);
|
||||
gfx_draw_string_left_clipped(dpi, STR_WINDOW_PARK_NAME, gCommonFormatArgs, COLOUR_BLACK, x, y, width);
|
||||
|
||||
|
@ -1014,16 +1000,8 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi
|
|||
y = w->y + w->widgets[WIDX_SCENARIO_NAME].top;
|
||||
width = w->widgets[WIDX_SCENARIO_NAME].left - 16;
|
||||
|
||||
if (stex != nullptr)
|
||||
{
|
||||
set_format_arg(0, rct_string_id, stex->scenario_name);
|
||||
set_format_arg(2, uint32_t, gParkNameArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_format_arg(0, rct_string_id, STR_STRING);
|
||||
set_format_arg(2, const char*, gS6Info.name);
|
||||
}
|
||||
set_format_arg(0, rct_string_id, STR_STRING);
|
||||
set_format_arg(2, const char*, gS6Info.name);
|
||||
|
||||
gfx_draw_string_left_clipped(dpi, STR_WINDOW_SCENARIO_NAME, gCommonFormatArgs, COLOUR_BLACK, x, y, width);
|
||||
|
||||
|
@ -1037,16 +1015,9 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi
|
|||
y = w->y + w->widgets[WIDX_DETAILS].top + 10;
|
||||
width = w->widgets[WIDX_DETAILS].left - 4;
|
||||
|
||||
if (stex != nullptr)
|
||||
{
|
||||
set_format_arg(0, rct_string_id, stex->details);
|
||||
set_format_arg(2, uint32_t, gParkNameArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_format_arg(0, rct_string_id, STR_STRING);
|
||||
set_format_arg(2, const char*, gS6Info.details);
|
||||
}
|
||||
set_format_arg(0, rct_string_id, STR_STRING);
|
||||
set_format_arg(2, const char*, gS6Info.details);
|
||||
|
||||
gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, width, STR_BLACK_STRING, COLOUR_BLACK);
|
||||
|
||||
// Scenario category label
|
||||
|
|
|
@ -138,9 +138,6 @@ static rct_string_id get_object_type_string(const rct_object_entry* entry)
|
|||
case OBJECT_TYPE_WATER:
|
||||
result = STR_OBJECT_SELECTION_WATER;
|
||||
break;
|
||||
case OBJECT_TYPE_SCENARIO_TEXT:
|
||||
result = STR_OBJECT_SELECTION_SCENARIO_DESCRIPTION;
|
||||
break;
|
||||
default:
|
||||
result = STR_UNKNOWN_OBJECT_TYPE;
|
||||
}
|
||||
|
|
|
@ -544,8 +544,8 @@ int32_t editor_remove_unused_objects()
|
|||
const ObjectRepositoryItem* item = &items[i];
|
||||
uint8_t objectType = object_entry_get_type(&item->ObjectEntry);
|
||||
|
||||
if (objectType == OBJECT_TYPE_PARK_ENTRANCE || objectType == OBJECT_TYPE_SCENARIO_TEXT
|
||||
|| objectType == OBJECT_TYPE_WATER || objectType == OBJECT_TYPE_SCENERY_GROUP)
|
||||
if (objectType == OBJECT_TYPE_PARK_ENTRANCE || objectType == OBJECT_TYPE_WATER
|
||||
|| objectType == OBJECT_TYPE_SCENERY_GROUP)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
#include "RideObject.h"
|
||||
#include "SceneryGroupObject.h"
|
||||
#include "SmallSceneryObject.h"
|
||||
#include "StexObject.h"
|
||||
#include "WallObject.h"
|
||||
#include "WaterObject.h"
|
||||
|
||||
|
@ -200,23 +199,27 @@ namespace ObjectFactory
|
|||
auto chunkReader = SawyerChunkReader(&fs);
|
||||
|
||||
rct_object_entry entry = fs.ReadValue<rct_object_entry>();
|
||||
result = CreateObject(entry);
|
||||
|
||||
utf8 objectName[DAT_NAME_LENGTH + 1] = { 0 };
|
||||
object_entry_get_name_fixed(objectName, sizeof(objectName), &entry);
|
||||
log_verbose(" entry: { 0x%08X, \"%s\", 0x%08X }", entry.flags, objectName, entry.checksum);
|
||||
|
||||
auto chunk = chunkReader.ReadChunk();
|
||||
log_verbose(" size: %zu", chunk->GetLength());
|
||||
|
||||
auto chunkStream = MemoryStream(chunk->GetData(), chunk->GetLength());
|
||||
auto readContext = ReadObjectContext(objectRepository, objectName, !gOpenRCT2Headless, nullptr);
|
||||
ReadObjectLegacy(result, &readContext, &chunkStream);
|
||||
if (readContext.WasError())
|
||||
if (object_entry_get_type(&entry) != OBJECT_TYPE_SCENARIO_TEXT)
|
||||
{
|
||||
throw std::runtime_error("Object has errors");
|
||||
result = CreateObject(entry);
|
||||
|
||||
utf8 objectName[DAT_NAME_LENGTH + 1] = { 0 };
|
||||
object_entry_get_name_fixed(objectName, sizeof(objectName), &entry);
|
||||
log_verbose(" entry: { 0x%08X, \"%s\", 0x%08X }", entry.flags, objectName, entry.checksum);
|
||||
|
||||
auto chunk = chunkReader.ReadChunk();
|
||||
log_verbose(" size: %zu", chunk->GetLength());
|
||||
|
||||
auto chunkStream = MemoryStream(chunk->GetData(), chunk->GetLength());
|
||||
auto readContext = ReadObjectContext(objectRepository, objectName, !gOpenRCT2Headless, nullptr);
|
||||
ReadObjectLegacy(result, &readContext, &chunkStream);
|
||||
if (readContext.WasError())
|
||||
{
|
||||
throw std::runtime_error("Object has errors");
|
||||
}
|
||||
result->SetSourceGames({ object_entry_get_source_game_legacy(&entry) });
|
||||
}
|
||||
result->SetSourceGames({ object_entry_get_source_game_legacy(&entry) });
|
||||
}
|
||||
catch (const std::exception&)
|
||||
{
|
||||
|
@ -292,7 +295,7 @@ namespace ObjectFactory
|
|||
result = new WaterObject(entry);
|
||||
break;
|
||||
case OBJECT_TYPE_SCENARIO_TEXT:
|
||||
result = new StexObject(entry);
|
||||
result = nullptr;
|
||||
break;
|
||||
default:
|
||||
throw std::runtime_error("Invalid object type");
|
||||
|
|
|
@ -440,7 +440,6 @@ private:
|
|||
}
|
||||
else
|
||||
{
|
||||
log_info("Ignoring missing STEX entry.");
|
||||
entry = {};
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
#include "ObjectList.h"
|
||||
#include "ObjectManager.h"
|
||||
#include "RideObject.h"
|
||||
#include "StexObject.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
|
@ -671,7 +670,7 @@ void* object_repository_load_object(const rct_object_entry* objectEntry)
|
|||
return (void*)object;
|
||||
}
|
||||
|
||||
void scenario_translate(scenario_index_entry* scenarioEntry, const rct_object_entry* stexObjectEntry)
|
||||
void scenario_translate(scenario_index_entry* scenarioEntry)
|
||||
{
|
||||
rct_string_id localisedStringIds[3];
|
||||
if (language_get_localised_scenario_strings(scenarioEntry->name, localisedStringIds))
|
||||
|
@ -685,30 +684,6 @@ void scenario_translate(scenario_index_entry* scenarioEntry, const rct_object_en
|
|||
String::Set(scenarioEntry->details, sizeof(scenarioEntry->details), language_get_string(localisedStringIds[2]));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Checks for a scenario string object (possibly for localisation)
|
||||
if ((stexObjectEntry->flags & 0xFF) != 255)
|
||||
{
|
||||
auto objectRepository = GetContext()->GetObjectRepository();
|
||||
const ObjectRepositoryItem* ori = objectRepository->FindObject(stexObjectEntry);
|
||||
if (ori != nullptr)
|
||||
{
|
||||
Object* object = objectRepository->LoadObject(ori);
|
||||
if (object != nullptr)
|
||||
{
|
||||
auto stexObject = static_cast<StexObject*>(object);
|
||||
auto scenarioName = stexObject->GetScenarioName();
|
||||
auto scenarioDetails = stexObject->GetScenarioDetails();
|
||||
|
||||
String::Set(scenarioEntry->name, sizeof(scenarioEntry->name), scenarioName.c_str());
|
||||
String::Set(scenarioEntry->details, sizeof(scenarioEntry->details), scenarioDetails.c_str());
|
||||
|
||||
delete object;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
size_t object_repository_get_items_count()
|
||||
|
|
|
@ -1,71 +0,0 @@
|
|||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2018 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
*
|
||||
* OpenRCT2 is licensed under the GNU General Public License version 3.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "StexObject.h"
|
||||
|
||||
#include "../core/IStream.hpp"
|
||||
#include "../localisation/Localisation.h"
|
||||
|
||||
void StexObject::ReadLegacy(IReadObjectContext* context, IStream* stream)
|
||||
{
|
||||
stream->Seek(6, STREAM_SEEK_CURRENT);
|
||||
_legacyType.var_06 = stream->ReadValue<uint8_t>();
|
||||
stream->Seek(1, STREAM_SEEK_CURRENT);
|
||||
|
||||
GetStringTable().Read(context, stream, OBJ_STRING_ID_SCENARIO_NAME);
|
||||
GetStringTable().Read(context, stream, OBJ_STRING_ID_PARK_NAME);
|
||||
GetStringTable().Read(context, stream, OBJ_STRING_ID_SCENARIO_DETAILS);
|
||||
}
|
||||
|
||||
void StexObject::Load()
|
||||
{
|
||||
GetStringTable().Sort();
|
||||
_legacyType.scenario_name = language_allocate_object_string(GetScenarioName());
|
||||
_legacyType.park_name = language_allocate_object_string(GetParkName());
|
||||
_legacyType.details = language_allocate_object_string(GetScenarioDetails());
|
||||
}
|
||||
|
||||
void StexObject::Unload()
|
||||
{
|
||||
language_free_object_string(_legacyType.scenario_name);
|
||||
language_free_object_string(_legacyType.park_name);
|
||||
language_free_object_string(_legacyType.details);
|
||||
|
||||
_legacyType.scenario_name = 0;
|
||||
_legacyType.park_name = 0;
|
||||
_legacyType.details = 0;
|
||||
}
|
||||
|
||||
void StexObject::DrawPreview(rct_drawpixelinfo* dpi, int32_t width, int32_t height) const
|
||||
{
|
||||
// Write (no image)
|
||||
int32_t x = width / 2;
|
||||
int32_t y = height / 2;
|
||||
gfx_draw_string_centred(dpi, STR_WINDOW_NO_IMAGE, x, y, COLOUR_BLACK, nullptr);
|
||||
}
|
||||
|
||||
std::string StexObject::GetName() const
|
||||
{
|
||||
return GetScenarioName();
|
||||
}
|
||||
|
||||
std::string StexObject::GetScenarioName() const
|
||||
{
|
||||
return GetStringTable().GetString(OBJ_STRING_ID_SCENARIO_NAME);
|
||||
}
|
||||
|
||||
std::string StexObject::GetScenarioDetails() const
|
||||
{
|
||||
return GetStringTable().GetString(OBJ_STRING_ID_SCENARIO_DETAILS);
|
||||
}
|
||||
|
||||
std::string StexObject::GetParkName() const
|
||||
{
|
||||
return GetStringTable().GetString(OBJ_STRING_ID_PARK_NAME);
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
/*****************************************************************************
|
||||
* Copyright (c) 2014-2018 OpenRCT2 developers
|
||||
*
|
||||
* For a complete list of all authors, please refer to contributors.md
|
||||
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
||||
*
|
||||
* OpenRCT2 is licensed under the GNU General Public License version 3.
|
||||
*****************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../scenario/Scenario.h"
|
||||
#include "Object.h"
|
||||
|
||||
class StexObject final : public Object
|
||||
{
|
||||
private:
|
||||
rct_stex_entry _legacyType = {};
|
||||
|
||||
public:
|
||||
explicit StexObject(const rct_object_entry& entry)
|
||||
: Object(entry)
|
||||
{
|
||||
}
|
||||
|
||||
void* GetLegacyData() override
|
||||
{
|
||||
return &_legacyType;
|
||||
}
|
||||
|
||||
void ReadLegacy(IReadObjectContext* context, IStream* stream) override;
|
||||
void Load() override;
|
||||
void Unload() override;
|
||||
|
||||
void DrawPreview(rct_drawpixelinfo* dpi, int32_t width, int32_t height) const override;
|
||||
|
||||
std::string GetName() const override;
|
||||
|
||||
std::string GetScenarioName() const;
|
||||
std::string GetScenarioDetails() const;
|
||||
std::string GetParkName() const;
|
||||
};
|
|
@ -131,26 +131,6 @@ void scenario_begin()
|
|||
safe_strcpy(gScenarioDetails, language_get_string(localisedStringIds[2]), 256);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
auto stex = (rct_stex_entry*)object_entry_get_chunk(OBJECT_TYPE_SCENARIO_TEXT, 0);
|
||||
if (stex != nullptr)
|
||||
{
|
||||
char* buffer = gCommonStringFormatBuffer;
|
||||
|
||||
// Set localised park name
|
||||
format_string(buffer, 256, stex->park_name, nullptr);
|
||||
park_set_name(buffer);
|
||||
|
||||
// Set localised scenario name
|
||||
format_string(buffer, 256, stex->scenario_name, nullptr);
|
||||
safe_strcpy(gScenarioName, buffer, 64);
|
||||
|
||||
// Set localised scenario details
|
||||
format_string(buffer, 256, stex->details, nullptr);
|
||||
safe_strcpy(gScenarioDetails, buffer, 256);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set the last saved game path
|
||||
|
@ -665,16 +645,6 @@ bool scenario_prepare_for_save()
|
|||
{
|
||||
gS6Info.entry.flags = 255;
|
||||
|
||||
auto stex = (rct_stex_entry*)object_entry_get_chunk(OBJECT_TYPE_SCENARIO_TEXT, 0);
|
||||
if (stex != nullptr)
|
||||
{
|
||||
char buffer[256];
|
||||
format_string(buffer, 256, stex->scenario_name, nullptr);
|
||||
safe_strcpy(gS6Info.name, buffer, sizeof(gS6Info.name));
|
||||
|
||||
memcpy(&gS6Info.entry, object_entry_get_entry(OBJECT_TYPE_SCENARIO_TEXT, 0), sizeof(rct_object_entry));
|
||||
}
|
||||
|
||||
if (gS6Info.name[0] == 0)
|
||||
format_string(gS6Info.name, 64, gParkName, &gParkNameArgs);
|
||||
|
||||
|
|
|
@ -320,7 +320,7 @@ private:
|
|||
}
|
||||
}
|
||||
|
||||
scenario_translate(&entry, &s6Info->entry);
|
||||
scenario_translate(&entry);
|
||||
return entry;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -80,4 +80,4 @@ void scenario_repository_scan();
|
|||
size_t scenario_repository_get_count();
|
||||
const scenario_index_entry* scenario_repository_get_by_index(size_t index);
|
||||
bool scenario_repository_try_record_highscore(const utf8* scenarioFileName, money32 companyValue, const utf8* name);
|
||||
void scenario_translate(scenario_index_entry* scenarioEntry, const struct rct_object_entry* stexObjectEntry);
|
||||
void scenario_translate(scenario_index_entry* scenarioEntry);
|
||||
|
|
Loading…
Reference in New Issue