mirror of https://github.com/OpenRCT2/OpenRCT2.git
Remove rct_object_entry_extended
This commit is contained in:
parent
4d8fe051e8
commit
d22572d0b9
|
@ -690,7 +690,7 @@ static void window_editor_inventions_list_paint(rct_window *w, rct_drawpixelinfo
|
||||||
if (chunk == nullptr)
|
if (chunk == nullptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto entry = (rct_object_entry *)object_entry_get_entry(objectEntryType, researchItem->entryIndex);
|
auto entry = object_entry_get_entry(objectEntryType, researchItem->entryIndex);
|
||||||
|
|
||||||
// Draw preview
|
// Draw preview
|
||||||
widget = &w->widgets[WIDX_PREVIEW];
|
widget = &w->widgets[WIDX_PREVIEW];
|
||||||
|
|
|
@ -88,26 +88,9 @@ typedef struct rct_object_entry {
|
||||||
} rct_object_entry;
|
} rct_object_entry;
|
||||||
assert_struct_size(rct_object_entry, 0x10);
|
assert_struct_size(rct_object_entry, 0x10);
|
||||||
|
|
||||||
/**
|
|
||||||
* Object entry structure extended.
|
|
||||||
* size: 0x14
|
|
||||||
*/
|
|
||||||
typedef struct rct_object_entry_extended {
|
|
||||||
union {
|
|
||||||
rct_object_entry entry;
|
|
||||||
struct {
|
|
||||||
uint32 flags;
|
|
||||||
char name[8];
|
|
||||||
uint32 checksum;
|
|
||||||
uint32 chunk_size;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
} rct_object_entry_extended;
|
|
||||||
assert_struct_size(rct_object_entry_extended, 0x14);
|
|
||||||
|
|
||||||
typedef struct rct_object_entry_group {
|
typedef struct rct_object_entry_group {
|
||||||
void **chunks;
|
void **chunks;
|
||||||
rct_object_entry_extended *entries;
|
rct_object_entry *entries;
|
||||||
} rct_object_entry_group;
|
} rct_object_entry_group;
|
||||||
#ifdef PLATFORM_32BIT
|
#ifdef PLATFORM_32BIT
|
||||||
assert_struct_size(rct_object_entry_group, 8);
|
assert_struct_size(rct_object_entry_group, 8);
|
||||||
|
@ -235,4 +218,4 @@ const rct_object_entry * object_list_find(rct_object_entry *entry);
|
||||||
void object_entry_get_name_fixed(utf8 * buffer, size_t bufferSize, const rct_object_entry * entry);
|
void object_entry_get_name_fixed(utf8 * buffer, size_t bufferSize, const rct_object_entry * entry);
|
||||||
|
|
||||||
void * object_entry_get_chunk(sint32 objectType, size_t index);
|
void * object_entry_get_chunk(sint32 objectType, size_t index);
|
||||||
rct_object_entry_extended * object_entry_get_entry(sint32 objectType, size_t index);
|
rct_object_entry * object_entry_get_entry(sint32 objectType, size_t index);
|
||||||
|
|
|
@ -66,17 +66,17 @@ sint32 object_entry_group_encoding[] = {
|
||||||
rct_water_type *gWaterEntries[MAX_WATER_OBJECTS];
|
rct_water_type *gWaterEntries[MAX_WATER_OBJECTS];
|
||||||
rct_stex_entry *gStexEntries[MAX_SCENARIO_TEXT_OBJECTS];
|
rct_stex_entry *gStexEntries[MAX_SCENARIO_TEXT_OBJECTS];
|
||||||
|
|
||||||
static rct_object_entry_extended _objectEntriesRides[MAX_RIDE_OBJECTS];
|
static rct_object_entry _objectEntriesRides[MAX_RIDE_OBJECTS];
|
||||||
static rct_object_entry_extended _objectEntriesSmallScenery[MAX_SMALL_SCENERY_OBJECTS];
|
static rct_object_entry _objectEntriesSmallScenery[MAX_SMALL_SCENERY_OBJECTS];
|
||||||
static rct_object_entry_extended _objectEntriesLargeScenery[MAX_LARGE_SCENERY_OBJECTS];
|
static rct_object_entry _objectEntriesLargeScenery[MAX_LARGE_SCENERY_OBJECTS];
|
||||||
static rct_object_entry_extended _objectEntriesWalls[MAX_WALL_SCENERY_OBJECTS];
|
static rct_object_entry _objectEntriesWalls[MAX_WALL_SCENERY_OBJECTS];
|
||||||
static rct_object_entry_extended _objectEntriesBanners[MAX_BANNER_OBJECTS];
|
static rct_object_entry _objectEntriesBanners[MAX_BANNER_OBJECTS];
|
||||||
static rct_object_entry_extended _objectEntriesFootpaths[MAX_PATH_OBJECTS];
|
static rct_object_entry _objectEntriesFootpaths[MAX_PATH_OBJECTS];
|
||||||
static rct_object_entry_extended _objectEntriesFootpathAdditions[MAX_PATH_ADDITION_OBJECTS];
|
static rct_object_entry _objectEntriesFootpathAdditions[MAX_PATH_ADDITION_OBJECTS];
|
||||||
static rct_object_entry_extended _objectEntriesSceneryGroups[MAX_SCENERY_GROUP_OBJECTS];
|
static rct_object_entry _objectEntriesSceneryGroups[MAX_SCENERY_GROUP_OBJECTS];
|
||||||
static rct_object_entry_extended _objectEntriesParkEntrances[MAX_PARK_ENTRANCE_OBJECTS];
|
static rct_object_entry _objectEntriesParkEntrances[MAX_PARK_ENTRANCE_OBJECTS];
|
||||||
static rct_object_entry_extended _objectEntriesWaters[MAX_WATER_OBJECTS];
|
static rct_object_entry _objectEntriesWaters[MAX_WATER_OBJECTS];
|
||||||
static rct_object_entry_extended _objectEntriesStexs[MAX_SCENARIO_TEXT_OBJECTS];
|
static rct_object_entry _objectEntriesStexs[MAX_SCENARIO_TEXT_OBJECTS];
|
||||||
|
|
||||||
|
|
||||||
// 0x98D97C chunk address', 0x98D980 object_entries
|
// 0x98D97C chunk address', 0x98D980 object_entries
|
||||||
|
@ -144,7 +144,7 @@ bool find_object_in_entry_group(const rct_object_entry * entry, uint8 * entry_ty
|
||||||
{
|
{
|
||||||
if (object_entry_get_chunk(objectType, i) != nullptr)
|
if (object_entry_get_chunk(objectType, i) != nullptr)
|
||||||
{
|
{
|
||||||
auto thisEntry = (rct_object_entry *)object_entry_get_entry(*entry_type, i);
|
auto thisEntry = object_entry_get_entry(*entry_type, i);
|
||||||
if (object_entry_compare(thisEntry, entry))
|
if (object_entry_compare(thisEntry, entry))
|
||||||
{
|
{
|
||||||
*entry_type = objectType;
|
*entry_type = objectType;
|
||||||
|
@ -178,7 +178,7 @@ const rct_object_entry * get_loaded_object_entry(size_t index)
|
||||||
uint8 objectType, entryIndex;
|
uint8 objectType, entryIndex;
|
||||||
get_type_entry_index(index, &objectType, &entryIndex);
|
get_type_entry_index(index, &objectType, &entryIndex);
|
||||||
|
|
||||||
return (rct_object_entry *)object_entry_get_entry(objectType, entryIndex);
|
return object_entry_get_entry(objectType, entryIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void * get_loaded_object_chunk(size_t index)
|
void * get_loaded_object_chunk(size_t index)
|
||||||
|
@ -200,7 +200,7 @@ void * object_entry_get_chunk(sint32 objectType, size_t index)
|
||||||
return object_entry_groups[objectType].chunks[index];
|
return object_entry_groups[objectType].chunks[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
rct_object_entry_extended * object_entry_get_entry(sint32 objectType, size_t index)
|
rct_object_entry * object_entry_get_entry(sint32 objectType, size_t index)
|
||||||
{
|
{
|
||||||
return &object_entry_groups[objectType].entries[index];
|
return &object_entry_groups[objectType].entries[index];
|
||||||
}
|
}
|
||||||
|
|
|
@ -385,7 +385,7 @@ private:
|
||||||
uint8 objectType, entryIndex;
|
uint8 objectType, entryIndex;
|
||||||
get_type_entry_index(i, &objectType, &entryIndex);
|
get_type_entry_index(i, &objectType, &entryIndex);
|
||||||
|
|
||||||
rct_object_entry_extended * legacyEntry = object_entry_get_entry(objectType, entryIndex);
|
auto legacyEntry = object_entry_get_entry(objectType, entryIndex);
|
||||||
void * * legacyChunk = &object_entry_groups[objectType].chunks[entryIndex];
|
void * * legacyChunk = &object_entry_groups[objectType].chunks[entryIndex];
|
||||||
if (loadedObject == nullptr)
|
if (loadedObject == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -394,8 +394,7 @@ private:
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
legacyEntry->entry = *loadedObject->GetObjectEntry();
|
*legacyEntry = *loadedObject->GetObjectEntry();
|
||||||
legacyEntry->chunk_size = 0;
|
|
||||||
*legacyChunk = loadedObject->GetLegacyData();
|
*legacyChunk = loadedObject->GetLegacyData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -276,7 +276,7 @@ static void track_design_save_push_tile_element_desc(rct_object_entry *entry, si
|
||||||
static void track_design_save_add_scenery(sint32 x, sint32 y, rct_tile_element *tileElement)
|
static void track_design_save_add_scenery(sint32 x, sint32 y, rct_tile_element *tileElement)
|
||||||
{
|
{
|
||||||
sint32 entryType = tileElement->properties.scenery.type;
|
sint32 entryType = tileElement->properties.scenery.type;
|
||||||
rct_object_entry *entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, entryType);
|
rct_object_entry *entry = object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, entryType);
|
||||||
|
|
||||||
uint8 flags = 0;
|
uint8 flags = 0;
|
||||||
flags |= tileElement->type & 3;
|
flags |= tileElement->type & 3;
|
||||||
|
@ -296,7 +296,7 @@ static void track_design_save_add_large_scenery(sint32 x, sint32 y, rct_tile_ele
|
||||||
sint32 direction, sequence;
|
sint32 direction, sequence;
|
||||||
|
|
||||||
sint32 entryType = scenery_large_get_type(tileElement);
|
sint32 entryType = scenery_large_get_type(tileElement);
|
||||||
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_LARGE_SCENERY, entryType);
|
auto entry = object_entry_get_entry(OBJECT_TYPE_LARGE_SCENERY, entryType);
|
||||||
sceneryTiles = get_large_scenery_entry(entryType)->large_scenery.tiles;
|
sceneryTiles = get_large_scenery_entry(entryType)->large_scenery.tiles;
|
||||||
|
|
||||||
z = tileElement->base_height;
|
z = tileElement->base_height;
|
||||||
|
@ -336,7 +336,7 @@ static void track_design_save_add_large_scenery(sint32 x, sint32 y, rct_tile_ele
|
||||||
static void track_design_save_add_wall(sint32 x, sint32 y, rct_tile_element *tileElement)
|
static void track_design_save_add_wall(sint32 x, sint32 y, rct_tile_element *tileElement)
|
||||||
{
|
{
|
||||||
sint32 entryType = tileElement->properties.wall.type;
|
sint32 entryType = tileElement->properties.wall.type;
|
||||||
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_WALLS, entryType);
|
auto entry = object_entry_get_entry(OBJECT_TYPE_WALLS, entryType);
|
||||||
|
|
||||||
uint8 flags = 0;
|
uint8 flags = 0;
|
||||||
flags |= tileElement->type & 3;
|
flags |= tileElement->type & 3;
|
||||||
|
@ -352,7 +352,7 @@ static void track_design_save_add_wall(sint32 x, sint32 y, rct_tile_element *til
|
||||||
static void track_design_save_add_footpath(sint32 x, sint32 y, rct_tile_element *tileElement)
|
static void track_design_save_add_footpath(sint32 x, sint32 y, rct_tile_element *tileElement)
|
||||||
{
|
{
|
||||||
sint32 entryType = tileElement->properties.path.type >> 4;
|
sint32 entryType = tileElement->properties.path.type >> 4;
|
||||||
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_PATHS, entryType);
|
auto entry = object_entry_get_entry(OBJECT_TYPE_PATHS, entryType);
|
||||||
|
|
||||||
uint8 flags = 0;
|
uint8 flags = 0;
|
||||||
flags |= tileElement->properties.path.edges & FOOTPATH_PROPERTIES_EDGES_EDGES_MASK;
|
flags |= tileElement->properties.path.edges & FOOTPATH_PROPERTIES_EDGES_EDGES_MASK;
|
||||||
|
@ -457,7 +457,7 @@ static void track_design_save_pop_tile_element_desc(rct_object_entry *entry, sin
|
||||||
static void track_design_save_remove_scenery(sint32 x, sint32 y, rct_tile_element *tileElement)
|
static void track_design_save_remove_scenery(sint32 x, sint32 y, rct_tile_element *tileElement)
|
||||||
{
|
{
|
||||||
sint32 entryType = tileElement->properties.scenery.type;
|
sint32 entryType = tileElement->properties.scenery.type;
|
||||||
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, entryType);
|
auto entry = object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, entryType);
|
||||||
|
|
||||||
uint8 flags = 0;
|
uint8 flags = 0;
|
||||||
flags |= tileElement->type & 3;
|
flags |= tileElement->type & 3;
|
||||||
|
@ -477,7 +477,7 @@ static void track_design_save_remove_large_scenery(sint32 x, sint32 y, rct_tile_
|
||||||
sint32 direction, sequence;
|
sint32 direction, sequence;
|
||||||
|
|
||||||
sint32 entryType = scenery_large_get_type(tileElement);
|
sint32 entryType = scenery_large_get_type(tileElement);
|
||||||
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_LARGE_SCENERY, entryType);
|
auto entry = object_entry_get_entry(OBJECT_TYPE_LARGE_SCENERY, entryType);
|
||||||
sceneryTiles = get_large_scenery_entry(entryType)->large_scenery.tiles;
|
sceneryTiles = get_large_scenery_entry(entryType)->large_scenery.tiles;
|
||||||
|
|
||||||
z = tileElement->base_height;
|
z = tileElement->base_height;
|
||||||
|
@ -517,7 +517,7 @@ static void track_design_save_remove_large_scenery(sint32 x, sint32 y, rct_tile_
|
||||||
static void track_design_save_remove_wall(sint32 x, sint32 y, rct_tile_element *tileElement)
|
static void track_design_save_remove_wall(sint32 x, sint32 y, rct_tile_element *tileElement)
|
||||||
{
|
{
|
||||||
sint32 entryType = tileElement->properties.wall.type;
|
sint32 entryType = tileElement->properties.wall.type;
|
||||||
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_WALLS, entryType);
|
auto entry = object_entry_get_entry(OBJECT_TYPE_WALLS, entryType);
|
||||||
|
|
||||||
uint8 flags = 0;
|
uint8 flags = 0;
|
||||||
flags |= tileElement->type & 3;
|
flags |= tileElement->type & 3;
|
||||||
|
@ -533,7 +533,7 @@ static void track_design_save_remove_wall(sint32 x, sint32 y, rct_tile_element *
|
||||||
static void track_design_save_remove_footpath(sint32 x, sint32 y, rct_tile_element *tileElement)
|
static void track_design_save_remove_footpath(sint32 x, sint32 y, rct_tile_element *tileElement)
|
||||||
{
|
{
|
||||||
sint32 entryType = tileElement->properties.path.type >> 4;
|
sint32 entryType = tileElement->properties.path.type >> 4;
|
||||||
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_PATHS, entryType);
|
auto entry = object_entry_get_entry(OBJECT_TYPE_PATHS, entryType);
|
||||||
|
|
||||||
uint8 flags = 0;
|
uint8 flags = 0;
|
||||||
flags |= tileElement->properties.path.edges & FOOTPATH_PROPERTIES_EDGES_EDGES_MASK;
|
flags |= tileElement->properties.path.edges & FOOTPATH_PROPERTIES_EDGES_EDGES_MASK;
|
||||||
|
|
|
@ -269,8 +269,8 @@ static void mapgen_place_trees()
|
||||||
|
|
||||||
for (sint32 i = 0; i < object_entry_group_counts[OBJECT_TYPE_SMALL_SCENERY]; i++)
|
for (sint32 i = 0; i < object_entry_group_counts[OBJECT_TYPE_SMALL_SCENERY]; i++)
|
||||||
{
|
{
|
||||||
rct_scenery_entry * sceneryEntry = get_small_scenery_entry(i);
|
auto sceneryEntry = get_small_scenery_entry(i);
|
||||||
rct_object_entry_extended * entry = object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, i);
|
auto entry = object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, i);
|
||||||
|
|
||||||
if (sceneryEntry == nullptr)
|
if (sceneryEntry == nullptr)
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in New Issue