1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-31 10:45:16 +01:00

use overridden object strings

This commit is contained in:
Ted John
2016-07-04 18:53:35 +01:00
parent 13e9a76732
commit 2824224710
24 changed files with 68 additions and 86 deletions

View File

@@ -365,4 +365,13 @@ void language_free_object_string(rct_string_id stringId)
}
}
rct_string_id language_get_object_override_string_id(const char * identifier, uint8 index)
{
if (_languageCurrent == nullptr)
{
return STR_NONE;
}
return _languageCurrent->GetObjectOverrideStringId(identifier, index);
}
}

View File

@@ -82,5 +82,6 @@ utf8 *widechar_to_utf8(const wchar_t *src);
bool language_get_localised_scenario_strings(const utf8 *scenarioFilename, rct_string_id *outStringIds);
rct_string_id language_allocate_object_string(const utf8 * target);
void language_free_object_string(rct_string_id stringId);
rct_string_id language_get_object_override_string_id(const char * identifier, uint8 index);
#endif

View File

@@ -84,9 +84,3 @@ void BannerObject::DrawPreview(rct_drawpixelinfo * dpi) const
gfx_draw_sprite(dpi, imageId + 0, x - 12, y + 8, 0);
gfx_draw_sprite(dpi, imageId + 1, x - 12, y + 8, 0);
}
const utf8 * BannerObject::GetName() const
{
const utf8 * name = GetStringTable()->GetString(OBJ_STRING_ID_NAME);
return name != nullptr ? name : "";
}

View File

@@ -39,6 +39,4 @@ public:
void Unload() override;
void DrawPreview(rct_drawpixelinfo * dpi) const override;
const utf8 * GetName() const override;
};

View File

@@ -63,9 +63,3 @@ void EntranceObject::DrawPreview(rct_drawpixelinfo * dpi) const
gfx_draw_sprite(dpi, imageId + 0, x + 0, y + 28, 0);
gfx_draw_sprite(dpi, imageId + 2, x + 32, y + 44, 0);
}
const utf8 * EntranceObject::GetName() const
{
const utf8 * name = GetStringTable()->GetString(OBJ_STRING_ID_NAME);
return name != nullptr ? name : "";
}

View File

@@ -38,6 +38,4 @@ public:
void Unload() override;
void DrawPreview(rct_drawpixelinfo * dpi) const override;
const utf8 * GetName() const override;
};

View File

@@ -81,9 +81,3 @@ void FootpathItemObject::DrawPreview(rct_drawpixelinfo * dpi) const
int y = dpi->height / 2;
gfx_draw_sprite(dpi, _legacyType.image, x - 22, y - 24, 0);
}
const utf8 * FootpathItemObject::GetName() const
{
const utf8 * name = GetStringTable()->GetString(OBJ_STRING_ID_NAME);
return name != nullptr ? name : "";
}

View File

@@ -39,6 +39,4 @@ public:
void Unload() override;
void DrawPreview(rct_drawpixelinfo * dpi) const override;
const utf8 * GetName() const override;
};

View File

@@ -70,9 +70,3 @@ void FootpathObject::DrawPreview(rct_drawpixelinfo * dpi) const
gfx_draw_sprite(dpi, _legacyType.image + 71, x - 49, y - 17, 0);
gfx_draw_sprite(dpi, _legacyType.image + 72, x + 4, y - 17, 0);
}
const utf8 * FootpathObject::GetName() const
{
const utf8 * name = GetStringTable()->GetString(OBJ_STRING_ID_NAME);
return name != nullptr ? name : "";
}

View File

@@ -38,6 +38,4 @@ public:
void Unload() override;
void DrawPreview(rct_drawpixelinfo * dpi) const override;
const utf8 * GetName() const override;
};

View File

@@ -128,12 +128,6 @@ void LargeSceneryObject::DrawPreview(rct_drawpixelinfo * dpi) const
gfx_draw_sprite(dpi, imageId, x, y, 0);
}
const utf8 * LargeSceneryObject::GetName() const
{
const utf8 * name = GetStringTable()->GetString(OBJ_STRING_ID_NAME);
return name != nullptr ? name : "";
}
rct_large_scenery_tile * LargeSceneryObject::ReadTiles(IStream * stream)
{
auto tiles = std::vector<rct_large_scenery_tile>();

View File

@@ -44,8 +44,6 @@ public:
void DrawPreview(rct_drawpixelinfo * dpi) const override;
const utf8 * GetName() const override;
private:
static rct_large_scenery_tile * ReadTiles(IStream * stream);
};

View File

@@ -14,9 +14,58 @@
*****************************************************************************/
#pragma endregion
#include "../core/Memory.hpp"
#include "../core/String.hpp"
#include "Object.h"
extern "C"
{
#include "../localisation/localisation.h"
}
enum OBJ_STRING_ID
{
OBJ_STRING_ID_NAME,
};
Object::Object(const rct_object_entry &entry)
{
_objectEntry = entry;
char name[9] = { 0 };
Memory::Copy(name, entry.name, 8);
_identifier = String::Duplicate(name);
}
Object::~Object()
{
Memory::Free(_identifier);
}
const utf8 * Object::GetOverrideString(uint8 index) const
{
const char * identifier = GetIdentifier();
rct_string_id stringId = language_get_object_override_string_id(identifier, index);
const utf8 * result = nullptr;
if (stringId != STR_NONE)
{
result = language_get_string(stringId);
}
return result;
}
const utf8 * Object::GetString(uint8 index) const
{
const utf8 * sz = GetOverrideString(index);
if (sz == nullptr)
{
sz = GetStringTable()->GetString(index);
}
return sz != nullptr ? sz : "";
}
const utf8 * Object::GetName() const
{
return GetString(OBJ_STRING_ID_NAME);
}

View File

@@ -40,6 +40,7 @@ interface IReadObjectContext
class Object
{
private:
char * _identifier;
rct_object_entry _objectEntry;
StringTable _stringTable;
ImageTable _imageTable;
@@ -49,11 +50,15 @@ protected:
const StringTable * GetStringTable() const { return &_stringTable; }
ImageTable * GetImageTable() { return &_imageTable; }
const utf8 * GetOverrideString(uint8 index) const;
const utf8 * GetString(uint8 index) const;
public:
explicit Object(const rct_object_entry &entry);
virtual ~Object() { }
virtual ~Object();
// Legacy data structures
const char * GetIdentifier() const { return _identifier; }
const rct_object_entry * GetObjectEntry() const { return &_objectEntry; }
virtual void * GetLegacyData() abstract;
@@ -64,7 +69,7 @@ public:
virtual void DrawPreview(rct_drawpixelinfo * dpi) const { }
virtual uint8 GetObjectType() const { return _objectEntry.flags & 0x0F; }
virtual const utf8 * GetName() const abstract;
virtual const utf8 * GetName() const;
virtual void SetRepositoryItem(ObjectRepositoryItem * item) const { }
};

View File

@@ -334,22 +334,14 @@ void RideObject::DrawPreview(rct_drawpixelinfo * dpi) const
gfx_draw_sprite(dpi, imageId, 0, 0, 0);
}
const utf8 * RideObject::GetName() const
{
const utf8 * name = GetStringTable()->GetString(OBJ_STRING_ID_NAME);
return name != nullptr ? name : "";
}
const utf8 * RideObject::GetDescription() const
{
const utf8 * description = GetStringTable()->GetString(OBJ_STRING_ID_DESCRIPTION);
return description != nullptr ? description : "";
return GetString(OBJ_STRING_ID_DESCRIPTION);
}
const utf8 * RideObject::GetCapacity() const
{
const utf8 * capacity = GetStringTable()->GetString(OBJ_STRING_ID_CAPACITY);
return capacity != nullptr ? capacity : "";
return GetString(OBJ_STRING_ID_CAPACITY);
}
void RideObject::SetRepositoryItem(ObjectRepositoryItem * item) const

View File

@@ -42,7 +42,6 @@ public:
void DrawPreview(rct_drawpixelinfo * dpi) const override;
const utf8 * GetName() const override;
const utf8 * GetDescription() const;
const utf8 * GetCapacity() const;

View File

@@ -97,12 +97,6 @@ void SceneryGroupObject::DrawPreview(rct_drawpixelinfo * dpi) const
gfx_draw_sprite(dpi, imageId, x - 15, y - 14, 0);
}
const utf8 * SceneryGroupObject::GetName() const
{
const utf8 * name = GetStringTable()->GetString(OBJ_STRING_ID_NAME);
return name != nullptr ? name : "";
}
void SceneryGroupObject::SetRepositoryItem(ObjectRepositoryItem * item) const
{
Memory::Free(item->ThemeObjects);

View File

@@ -44,8 +44,6 @@ public:
void DrawPreview(rct_drawpixelinfo * dpi) const override;
const utf8 * GetName() const override;
void SetRepositoryItem(ObjectRepositoryItem * item) const override;
private:

View File

@@ -152,13 +152,6 @@ void SmallSceneryObject::DrawPreview(rct_drawpixelinfo * dpi) const
}
}
const utf8 * SmallSceneryObject::GetName() const
{
const utf8 * name = GetStringTable()->GetString(OBJ_STRING_ID_NAME);
return name != nullptr ? name : "";
}
uint8 * SmallSceneryObject::ReadVar10(IStream * stream)
{
uint8 b;

View File

@@ -42,8 +42,6 @@ public:
void DrawPreview(rct_drawpixelinfo * dpi) const override;
const utf8 * GetName() const override;
private:
static uint8 * ReadVar10(IStream * stream);
};

View File

@@ -105,9 +105,3 @@ void WallObject::DrawPreview(rct_drawpixelinfo * dpi) const
gfx_draw_sprite(dpi, imageId, x, y, 0);
}
}
const utf8 * WallObject::GetName() const
{
const utf8 * name = GetStringTable()->GetString(OBJ_STRING_ID_NAME);
return name != nullptr ? name : "";
}

View File

@@ -39,6 +39,4 @@ public:
void Unload() override;
void DrawPreview(rct_drawpixelinfo * dpi) const override;
const utf8 * GetName() const override;
};

View File

@@ -64,9 +64,3 @@ void WaterObject::DrawPreview(rct_drawpixelinfo * dpi) const
int y = dpi->height / 2;
gfx_draw_string_centred(dpi, 3326, x, y, 0, nullptr);
}
const utf8 * WaterObject::GetName() const
{
const utf8 * name = GetStringTable()->GetString(OBJ_STRING_ID_NAME);
return name != nullptr ? name : "";
}

View File

@@ -38,6 +38,4 @@ public:
void Unload() override;
void DrawPreview(rct_drawpixelinfo * dpi) const override;
const utf8 * GetName() const override;
};