mirror of https://github.com/OpenRCT2/OpenRCT2.git
bugHunt: correcting code to compile
code does not compile yet
This commit is contained in:
parent
832fd69822
commit
dc93cacbee
|
@ -47,7 +47,7 @@ using namespace OpenRCT2;
|
|||
|
||||
namespace Editor
|
||||
{
|
||||
static std::array<std::vector<uint8_t>, ObjectType::Count> _editorSelectedObjectFlags;
|
||||
static std::array<std::vector<uint8_t>, EnumValue(ObjectType::Count)> _editorSelectedObjectFlags;
|
||||
|
||||
static void ConvertSaveToScenarioCallback(int32_t result, const utf8* path);
|
||||
static void SetAllLandOwned();
|
||||
|
@ -530,10 +530,10 @@ namespace Editor
|
|||
return true;
|
||||
}
|
||||
|
||||
uint8_t GetSelectedObjectFlags(int32_t objectType, size_t index)
|
||||
uint8_t GetSelectedObjectFlags(ObjectType objectType, size_t index)
|
||||
{
|
||||
uint8_t result = 0;
|
||||
auto& list = _editorSelectedObjectFlags[objectType];
|
||||
auto& list = _editorSelectedObjectFlags[EnumValue(objectType)];
|
||||
if (list.size() > index)
|
||||
{
|
||||
result = list[index];
|
||||
|
@ -543,7 +543,7 @@ namespace Editor
|
|||
|
||||
void ClearSelectedObject(ObjectType objectType, size_t index, uint32_t flags)
|
||||
{
|
||||
auto& list = _editorSelectedObjectFlags[objectType];
|
||||
auto& list = _editorSelectedObjectFlags[EnumValue(objectType)];
|
||||
if (list.size() <= index)
|
||||
{
|
||||
list.resize(index + 1);
|
||||
|
@ -553,7 +553,7 @@ namespace Editor
|
|||
|
||||
void SetSelectedObject(ObjectType objectType, size_t index, uint32_t flags)
|
||||
{
|
||||
auto& list = _editorSelectedObjectFlags[objectType];
|
||||
auto& list = _editorSelectedObjectFlags[EnumValue(objectType)];
|
||||
if (list.size() <= index)
|
||||
{
|
||||
list.resize(index + 1);
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace Editor
|
|||
|
||||
void OpenWindowsForCurrentStep();
|
||||
|
||||
uint8_t GetSelectedObjectFlags(int32_t objectType, size_t index);
|
||||
uint8_t GetSelectedObjectFlags(ObjectType objectType, size_t index);
|
||||
void ClearSelectedObject(ObjectType objectType, size_t index, uint32_t flags);
|
||||
void SetSelectedObject(ObjectType objectType, size_t index, uint32_t flags);
|
||||
} // namespace Editor
|
||||
|
|
|
@ -240,7 +240,7 @@ void sub_6AB211()
|
|||
for (int32_t i = 0; i < numObjects; i++)
|
||||
{
|
||||
ObjectType objectType = items[i].ObjectEntry.GetType();
|
||||
_numAvailableObjectsForType[objectType]++;
|
||||
_numAvailableObjectsForType[EnumValue(objectType)]++;
|
||||
}
|
||||
|
||||
if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER)
|
||||
|
@ -368,10 +368,10 @@ void reset_selected_object_count_and_size()
|
|||
const ObjectRepositoryItem* items = object_repository_get_items();
|
||||
for (int32_t i = 0; i < numObjects; i++)
|
||||
{
|
||||
uint8_t objectType = items[i].ObjectEntry.GetType();
|
||||
ObjectType objectType = items[i].ObjectEntry.GetType();
|
||||
if (_objectSelectionFlags[i] & OBJECT_SELECTION_FLAG_SELECTED)
|
||||
{
|
||||
_numSelectedObjectsForType[objectType]++;
|
||||
_numSelectedObjectsForType[EnumValue(objectType)]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -484,7 +484,7 @@ bool window_editor_object_selection_select_object(uint8_t isMasterObject, int32_
|
|||
maxObjects = 4;
|
||||
}
|
||||
|
||||
if (maxObjects <= _numSelectedObjectsForType[objectType])
|
||||
if (maxObjects <= _numSelectedObjectsForType[EnumValue(objectType)])
|
||||
{
|
||||
set_object_selection_error(isMasterObject, STR_OBJECT_SELECTION_ERR_TOO_MANY_OF_TYPE_SELECTED);
|
||||
return false;
|
||||
|
@ -511,7 +511,7 @@ bool window_editor_object_selection_select_object(uint8_t isMasterObject, int32_
|
|||
return false;
|
||||
}
|
||||
|
||||
if (maxObjects <= _numSelectedObjectsForType[objectType])
|
||||
if (maxObjects <= _numSelectedObjectsForType[EnumValue(objectType)])
|
||||
{
|
||||
set_object_selection_error(isMasterObject, STR_OBJECT_SELECTION_ERR_TOO_MANY_OF_TYPE_SELECTED);
|
||||
return false;
|
||||
|
@ -577,7 +577,7 @@ int32_t editor_remove_unused_objects()
|
|||
continue;
|
||||
}
|
||||
|
||||
_numSelectedObjectsForType[objectType]--;
|
||||
_numSelectedObjectsForType[EnumValue(objectType)]--;
|
||||
_objectSelectionFlags[i] &= ~OBJECT_SELECTION_FLAG_SELECTED;
|
||||
numUnselectedObjects++;
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ GameActions::Result::Ptr TrackDesignAction::Query() const
|
|||
|
||||
const rct_object_entry* rideEntryObject = &_td.vehicle_object;
|
||||
|
||||
uint8_t entryType;
|
||||
ObjectType entryType;
|
||||
ObjectEntryIndex entryIndex;
|
||||
if (!find_object_in_entry_group(rideEntryObject, &entryType, &entryIndex))
|
||||
{
|
||||
|
@ -106,7 +106,7 @@ GameActions::Result::Ptr TrackDesignAction::Execute() const
|
|||
|
||||
const rct_object_entry* rideEntryObject = &_td.vehicle_object;
|
||||
|
||||
uint8_t entryType;
|
||||
ObjectType entryType;
|
||||
ObjectEntryIndex entryIndex;
|
||||
if (!find_object_in_entry_group(rideEntryObject, &entryType, &entryIndex))
|
||||
{
|
||||
|
|
|
@ -1129,7 +1129,7 @@ static int32_t cc_object_count(InteractiveConsole& console, [[maybe_unused]] con
|
|||
int32_t entryGroupIndex = 0;
|
||||
for (; entryGroupIndex < object_entry_group_counts[i]; entryGroupIndex++)
|
||||
{
|
||||
if (object_entry_get_chunk(i, entryGroupIndex) == nullptr)
|
||||
if (object_entry_get_chunk(static_cast<ObjectType>(i), entryGroupIndex) == nullptr)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -437,7 +437,7 @@ namespace ObjectFactory
|
|||
std::unique_ptr<Object> result;
|
||||
|
||||
auto objectType = ParseObjectType(Json::GetString(jRoot["objectType"]));
|
||||
if (objectType != 0xFF)
|
||||
if (objectType != ObjectType::None)
|
||||
{
|
||||
auto id = Json::GetString(jRoot["id"]);
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ public:
|
|||
|
||||
Object* GetLoadedObject(ObjectType objectType, size_t index) override
|
||||
{
|
||||
if (index >= static_cast<size_t>(object_entry_group_counts[objectType]))
|
||||
if (index >= static_cast<size_t>(object_entry_group_counts[EnumValue(objectType)]))
|
||||
{
|
||||
#ifdef DEBUG
|
||||
log_warning("Object index %u exceeds maximum for type %d.", index, objectType);
|
||||
|
@ -110,7 +110,7 @@ public:
|
|||
loadedObject = ori->LoadedObject;
|
||||
if (loadedObject == nullptr)
|
||||
{
|
||||
uint8_t objectType = ori->ObjectEntry.GetType();
|
||||
ObjectType objectType = ori->ObjectEntry.GetType();
|
||||
int32_t slot = FindSpareSlot(objectType);
|
||||
if (slot != -1)
|
||||
{
|
||||
|
@ -316,10 +316,10 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
int32_t FindSpareSlot(uint8_t objectType)
|
||||
int32_t FindSpareSlot(ObjectType objectType)
|
||||
{
|
||||
size_t firstIndex = GetIndexFromTypeEntry(objectType, 0);
|
||||
size_t endIndex = firstIndex + object_entry_group_counts[objectType];
|
||||
size_t endIndex = firstIndex + object_entry_group_counts[EnumValue(objectType)];
|
||||
for (size_t i = firstIndex; i < endIndex; i++)
|
||||
{
|
||||
if (_loadedObjects.size() <= i)
|
||||
|
@ -428,30 +428,55 @@ private:
|
|||
switch (loadedObject->GetObjectType())
|
||||
{
|
||||
case ObjectType::SmallScenery:
|
||||
{
|
||||
sceneryEntry = static_cast<rct_scenery_entry*>(loadedObject->GetLegacyData());
|
||||
sceneryEntry->small_scenery.scenery_tab_id = GetPrimarySceneryGroupEntryIndex(loadedObject.get());
|
||||
break;
|
||||
}
|
||||
case ObjectType::LargeScenery:
|
||||
{
|
||||
sceneryEntry = static_cast<rct_scenery_entry*>(loadedObject->GetLegacyData());
|
||||
sceneryEntry->large_scenery.scenery_tab_id = GetPrimarySceneryGroupEntryIndex(loadedObject.get());
|
||||
break;
|
||||
}
|
||||
case ObjectType::Walls:
|
||||
{
|
||||
sceneryEntry = static_cast<rct_scenery_entry*>(loadedObject->GetLegacyData());
|
||||
sceneryEntry->wall.scenery_tab_id = GetPrimarySceneryGroupEntryIndex(loadedObject.get());
|
||||
break;
|
||||
}
|
||||
case ObjectType::Banners:
|
||||
{
|
||||
sceneryEntry = static_cast<rct_scenery_entry*>(loadedObject->GetLegacyData());
|
||||
sceneryEntry->banner.scenery_tab_id = GetPrimarySceneryGroupEntryIndex(loadedObject.get());
|
||||
break;
|
||||
}
|
||||
case ObjectType::PathBits:
|
||||
{
|
||||
sceneryEntry = static_cast<rct_scenery_entry*>(loadedObject->GetLegacyData());
|
||||
sceneryEntry->path_bit.scenery_tab_id = GetPrimarySceneryGroupEntryIndex(loadedObject.get());
|
||||
break;
|
||||
}
|
||||
case ObjectType::SceneryGroup:
|
||||
{
|
||||
auto sgObject = dynamic_cast<SceneryGroupObject*>(loadedObject.get());
|
||||
sgObject->UpdateEntryIndexes();
|
||||
break;
|
||||
}
|
||||
case ObjectType::Ride:
|
||||
case ObjectType::Paths:
|
||||
case ObjectType::ParkEntrance:
|
||||
case ObjectType::Water:
|
||||
case ObjectType::ScenarioText:
|
||||
case ObjectType::TerrainSurface:
|
||||
case ObjectType::TerrainEdge:
|
||||
case ObjectType::Station:
|
||||
case ObjectType::Music:
|
||||
case ObjectType::Count:
|
||||
case ObjectType::None:
|
||||
//This switch handles only ObjectType for sceneries.
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -721,10 +746,10 @@ private:
|
|||
Console::Error::WriteLine("[%s] Object could not be loaded.", objName);
|
||||
}
|
||||
|
||||
static int32_t GetIndexFromTypeEntry(int32_t objectType, size_t entryIndex)
|
||||
static int32_t GetIndexFromTypeEntry(ObjectType objectType, size_t entryIndex)
|
||||
{
|
||||
int32_t result = 0;
|
||||
for (int32_t i = 0; i < objectType; i++)
|
||||
for (int32_t i = 0; i < EnumValue(objectType); i++)
|
||||
{
|
||||
result += object_entry_group_counts[i];
|
||||
}
|
||||
|
|
|
@ -591,9 +591,9 @@ private:
|
|||
}
|
||||
|
||||
// Encode data
|
||||
uint8_t objectType = entry->GetType();
|
||||
ObjectType objectType = entry->GetType();
|
||||
sawyercoding_chunk_header chunkHeader;
|
||||
chunkHeader.encoding = object_entry_group_encoding[objectType];
|
||||
chunkHeader.encoding = object_entry_group_encoding[EnumValue(objectType)];
|
||||
chunkHeader.length = static_cast<uint32_t>(dataSize);
|
||||
uint8_t* encodedDataBuffer = Memory::Allocate<uint8_t>(0x600000);
|
||||
size_t encodedDataSize = sawyercoding_write_chunk_buffer(
|
||||
|
|
|
@ -541,7 +541,7 @@ private:
|
|||
EntryList* entries = GetEntryList(objectType);
|
||||
|
||||
// Check if there are spare entries available
|
||||
size_t maxEntries = static_cast<size_t>(object_entry_group_counts[objectType]);
|
||||
size_t maxEntries = static_cast<size_t>(object_entry_group_counts[EnumValue(objectType)]);
|
||||
if (entries != nullptr && entries->GetCount() < maxEntries)
|
||||
{
|
||||
entries->GetOrAddEntry(objectName);
|
||||
|
@ -1921,7 +1921,7 @@ private:
|
|||
for (const char* objectName : entries)
|
||||
{
|
||||
rct_object_entry entry;
|
||||
entry.flags = 0x00008000 + objectType;
|
||||
entry.flags = 0x00008000 + EnumValue(objectType);
|
||||
std::copy_n(objectName, 8, entry.name);
|
||||
entry.checksum = 0;
|
||||
|
||||
|
@ -1947,7 +1947,7 @@ private:
|
|||
for (const auto objectName : objectNames)
|
||||
{
|
||||
rct_object_entry entry{};
|
||||
entry.flags = ((static_cast<uint8_t>(ObjectSourceGame::RCT2) << 4) & 0xF0) | (objectType & 0x0F);
|
||||
entry.flags = ((static_cast<uint8_t>(ObjectSourceGame::RCT2) << 4) & 0xF0) | (EnumValue(objectType) & 0x0F);
|
||||
entry.SetName(objectName);
|
||||
entries.push_back(entry);
|
||||
}
|
||||
|
@ -1988,7 +1988,7 @@ private:
|
|||
for (const char* objectName : entries)
|
||||
{
|
||||
rct_object_entry entry;
|
||||
entry.flags = 0x00008000 + objectType;
|
||||
entry.flags = 0x00008000 + EnumValue(objectType);
|
||||
std::copy_n(objectName, DAT_NAME_LENGTH, entry.name);
|
||||
entry.checksum = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue