mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
fix get capacity string for vehicles
This commit is contained in:
@@ -53,6 +53,7 @@ void BannerObject::ReadLegacy(IReadObjectContext * context, IStream * stream)
|
||||
|
||||
void BannerObject::Load()
|
||||
{
|
||||
GetStringTable()->Sort();
|
||||
_legacyType.name = language_allocate_object_string(GetName());
|
||||
_legacyType.image = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ void EntranceObject::ReadLegacy(IReadObjectContext * context, IStream * stream)
|
||||
|
||||
void EntranceObject::Load()
|
||||
{
|
||||
GetStringTable()->Sort();
|
||||
_legacyType.string_idx = language_allocate_object_string(GetName());
|
||||
_legacyType.image_id = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ void FootpathItemObject::ReadLegacy(IReadObjectContext * context, IStream * stre
|
||||
|
||||
void FootpathItemObject::Load()
|
||||
{
|
||||
GetStringTable()->Sort();
|
||||
_legacyType.name = language_allocate_object_string(GetName());
|
||||
_legacyType.image = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ void FootpathObject::ReadLegacy(IReadObjectContext * context, IStream * stream)
|
||||
|
||||
void FootpathObject::Load()
|
||||
{
|
||||
GetStringTable()->Sort();
|
||||
_legacyType.string_idx = language_allocate_object_string(GetName());
|
||||
_legacyType.image = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
_legacyType.bridge_image = _legacyType.image + 109;
|
||||
|
||||
@@ -81,6 +81,7 @@ void LargeSceneryObject::ReadLegacy(IReadObjectContext * context, IStream * stre
|
||||
|
||||
void LargeSceneryObject::Load()
|
||||
{
|
||||
GetStringTable()->Sort();
|
||||
_legacyType.name = language_allocate_object_string(GetName());
|
||||
_baseImageId = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
_legacyType.image = _baseImageId;
|
||||
|
||||
@@ -528,6 +528,13 @@ IObjectManager * GetObjectManager()
|
||||
|
||||
extern "C"
|
||||
{
|
||||
void * object_manager_get_loaded_object_by_index(size_t index)
|
||||
{
|
||||
IObjectManager * objectManager = GetObjectManager();
|
||||
Object * loadedObject = objectManager->GetLoadedObject(index);
|
||||
return (void *)loadedObject;
|
||||
}
|
||||
|
||||
void * object_manager_get_loaded_object(const rct_object_entry * entry)
|
||||
{
|
||||
IObjectManager * objectManager = GetObjectManager();
|
||||
|
||||
@@ -51,6 +51,7 @@ IObjectManager * GetObjectManager();
|
||||
|
||||
#else
|
||||
|
||||
void * object_manager_get_loaded_object_by_index(size_t index);
|
||||
void * object_manager_get_loaded_object(const rct_object_entry * entry);
|
||||
uint8 object_manager_get_loaded_object_entry_index(const void * loadedObject);
|
||||
void * object_manager_load_object(const rct_object_entry * entry);
|
||||
|
||||
@@ -903,6 +903,20 @@ extern "C"
|
||||
}
|
||||
}
|
||||
|
||||
const utf8 * object_get_capacity(const void * object)
|
||||
{
|
||||
const Object * baseObject = (const Object *)object;
|
||||
switch (baseObject->GetObjectType()) {
|
||||
case OBJECT_TYPE_RIDE:
|
||||
{
|
||||
auto rideObject = static_cast<const RideObject *>(baseObject);
|
||||
return rideObject->GetCapacity();
|
||||
}
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
void object_draw_preview(const void * object, rct_drawpixelinfo * dpi, sint32 width, sint32 height)
|
||||
{
|
||||
const Object * baseObject = (const Object *)object;
|
||||
|
||||
@@ -89,6 +89,7 @@ void * object_repository_load_object(const rct_object_e
|
||||
|
||||
void object_delete(void * object);
|
||||
const utf8 * object_get_description(const void * object);
|
||||
const utf8 * object_get_capacity(const void * object);
|
||||
void object_draw_preview(const void * object, rct_drawpixelinfo * dpi, sint32 width, sint32 height);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -129,6 +129,7 @@ void RideObject::ReadLegacy(IReadObjectContext * context, IStream * stream)
|
||||
|
||||
void RideObject::Load()
|
||||
{
|
||||
GetStringTable()->Sort();
|
||||
_legacyType.name = language_allocate_object_string(GetName());
|
||||
_legacyType.description = language_allocate_object_string(GetDescription());
|
||||
_legacyType.images_offset = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
|
||||
@@ -55,6 +55,7 @@ void SceneryGroupObject::ReadLegacy(IReadObjectContext * context, IStream * stre
|
||||
|
||||
void SceneryGroupObject::Load()
|
||||
{
|
||||
GetStringTable()->Sort();
|
||||
_legacyType.name = language_allocate_object_string(GetName());
|
||||
_legacyType.image = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
_legacyType.entry_count = 0;
|
||||
|
||||
@@ -79,6 +79,7 @@ void SmallSceneryObject::ReadLegacy(IReadObjectContext * context, IStream * stre
|
||||
|
||||
void SmallSceneryObject::Load()
|
||||
{
|
||||
GetStringTable()->Sort();
|
||||
_legacyType.name = language_allocate_object_string(GetName());
|
||||
_legacyType.image = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ void StexObject::ReadLegacy(IReadObjectContext * context, IStream * stream)
|
||||
|
||||
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());
|
||||
|
||||
@@ -38,8 +38,6 @@ public:
|
||||
~StringTable();
|
||||
|
||||
void Read(IReadObjectContext * context, IStream * stream, uint8 id);
|
||||
void Sort();
|
||||
const utf8 * GetString(uint8 id) const;
|
||||
|
||||
private:
|
||||
void Sort();
|
||||
};
|
||||
@@ -56,6 +56,7 @@ void WallObject::ReadLegacy(IReadObjectContext * context, IStream * stream)
|
||||
|
||||
void WallObject::Load()
|
||||
{
|
||||
GetStringTable()->Sort();
|
||||
_legacyType.name = language_allocate_object_string(GetName());
|
||||
_legacyType.image = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ void WaterObject::ReadLegacy(IReadObjectContext * context, IStream * stream)
|
||||
|
||||
void WaterObject::Load()
|
||||
{
|
||||
GetStringTable()->Sort();
|
||||
_legacyType.string_idx = language_allocate_object_string(GetName());
|
||||
_legacyType.image_id = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
_legacyType.var_06 = _legacyType.image_id + 1;
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
#include "../interface/window.h"
|
||||
#include "../localisation/date.h"
|
||||
#include "../localisation/localisation.h"
|
||||
#include "../object/ObjectManager.h"
|
||||
#include "../object/ObjectRepository.h"
|
||||
#include "../peep/staff.h"
|
||||
#include "../ride/ride.h"
|
||||
#include "../ride/ride_data.h"
|
||||
@@ -2590,7 +2592,6 @@ static void window_ride_vehicle_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
{
|
||||
rct_ride *ride;
|
||||
rct_ride_entry *rideEntry;
|
||||
rct_string_id stringId;
|
||||
int x, y;
|
||||
sint16 factor;
|
||||
|
||||
@@ -2608,8 +2609,14 @@ static void window_ride_vehicle_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
y += 5;
|
||||
|
||||
// Capacity
|
||||
stringId = rideEntry->description + 1;
|
||||
gfx_draw_string_left(dpi, STR_CAPACITY, &stringId, 0, x, y);
|
||||
void * loadedObject = object_manager_get_loaded_object_by_index(ride->subtype);
|
||||
if (loadedObject != NULL)
|
||||
{
|
||||
const utf8 * capacity = object_get_capacity(loadedObject);
|
||||
set_format_arg(0, rct_string_id, STR_STRING);
|
||||
set_format_arg(2, utf8 *, capacity);
|
||||
gfx_draw_string_left(dpi, STR_CAPACITY, gCommonFormatArgs, 0, x, y);
|
||||
}
|
||||
y += 15;
|
||||
|
||||
if ((!(rideEntry->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE) || rideTypeShouldLoseSeparateFlag(rideEntry)) && var_496(w) > 1) {
|
||||
|
||||
Reference in New Issue
Block a user