Move length calculation to ImageTable.cpp

This commit is contained in:
Ted John 2017-12-05 20:08:47 +00:00 committed by Gymnasiast
parent 32d588d765
commit f6fd79eca4
4 changed files with 9 additions and 5 deletions

View File

@ -379,7 +379,10 @@ bool gfx_load_csg()
{
_csg.elements[i].offset += (uintptr_t)_csg.data;
// RCT1 used zoomed offsets that counted from the beginning of the file, rather than from the current sprite.
_csg.elements[i].zoomed_offset = i - (SPR_CSG_BEGIN + _csg.elements[i].zoomed_offset);
if (_csg.elements[i].zoomed_offset != 0)
{
_csg.elements[i].zoomed_offset = i - (SPR_CSG_BEGIN + _csg.elements[i].zoomed_offset);
}
}
_csgLoaded = true;
return true;

View File

@ -98,8 +98,9 @@ void ImageTable::Read(IReadObjectContext * context, IStream * stream)
}
}
void ImageTable::AddImage(const rct_g1_element * g1, size_t length)
void ImageTable::AddImage(const rct_g1_element * g1)
{
auto length = g1_calculate_data_size(g1);
auto dstOffset = _dataSize;
_dataSize += length;
_data = Memory::Reallocate(_data, _dataSize);

View File

@ -37,5 +37,5 @@ public:
void Read(IReadObjectContext * context, IStream * stream);
const rct_g1_element * GetImages() const { return _entries.data(); }
uint32 GetCount() const { return (uint32)_entries.size(); }
void AddImage(const rct_g1_element * g1, size_t length);
void AddImage(const rct_g1_element * g1);
};

View File

@ -587,12 +587,12 @@ void RideObject::ReadJson(IReadObjectContext * context, const json_t * root)
for (size_t i = 0; i < MAX_RIDE_TYPES_PER_RIDE_ENTRY; i++)
{
auto g1 = gfx_get_g1_element(previewImg);
imageTable->AddImage(g1, g1_calculate_data_size(g1));
imageTable->AddImage(g1);
}
for (int i = 0; i < 6; i++)
{
auto g1 = gfx_get_g1_element(imageStart + i);
imageTable->AddImage(g1, g1_calculate_data_size(g1));
imageTable->AddImage(g1);
}
rct_ride_entry_vehicle * vehicle0 = &_legacyType.vehicles[0];
vehicle0->sprite_flags |= VEHICLE_SPRITE_FLAG_FLAT;