По полям тайлдаты
тут кое-что есть, но не все поля на 100% изучены.
Брал напрямую из клиента 203, в 6ххх и может даже 7ххх проверял - кроме размера поля Flags ничего не изменилось.
Подкреплю кусочком псевдокода:
Код
char LoadTiledata()
{
FILE *file; // esi@1
char result; // al@2
char landIndex; // bl@3
signed int landOffset; // edi@3
char statiscIndex; // bl@7
signed int staticsOffset; // edi@7
file = OpenFile(aTiledata_mul, g_Text_rb);
if ( file )
{
landIndex = 0;
landOffset = 0;
do
{
if ( !(landIndex & 0x1F) )
SeekFile(file, 4, 1);
ReadFileData(&g_LandTiledata[landOffset], 4u, 1u, file);
ReadFileData(&g_LandTiledata[landOffset].TextureID, 2u, 1u, file);
ReadFileData(g_LandTiledata[landOffset].Name, 20u, 1u, file);
++landOffset;
++landIndex;
}
while ( landOffset < 0x4000 );
statiscIndex = 0;
staticsOffset = 0;
do
{
if ( !(statiscIndex & 0x1F) )
SeekFile(file, 4, 1);
ReadFileData(&g_StaticTiledata[staticsOffset], 4u, 1u, file);
ReadFileData(&g_StaticTiledata[staticsOffset].Weight, 1u, 1u, file);
ReadFileData(&g_StaticTiledata[staticsOffset].QualityOrLayer, 1u, 1u, file);
ReadFileData(&g_StaticTiledata[staticsOffset].Count, 4u, 1u, file);
ReadFileData(&g_StaticTiledata[staticsOffset].AnimID, 2u, 1u, file);
ReadFileData(&g_StaticTiledata[staticsOffset].Hue, 2u, 1u, file);
ReadFileData(&g_StaticTiledata[staticsOffset].LightIndex, 2u, 1u, file);
ReadFileData(&g_StaticTiledata[staticsOffset].Height, 1u, 1u, file);
ReadFileData(g_StaticTiledata[staticsOffset].Name, 20u, 1u, file);
++staticsOffset;
++statiscIndex;
}
while ( staticsOffset < 0x4000 );
result = FileManager__CloseFile(file);
}
else
{
result = TraceUOReportError(aCobjectmanag_0, aTiledata_mul);
}
return result;
}
И чуть подробнее о некоторых полях:
Weight - используется для определения
статуса Locked предметов, на уровне тайлдаты и при
просчете шагаCount, Hue - предположительно, для стандартного количества и цвета (если не задан) для компонент мульти. На 100% не уверен, но использование только в конструкторе объекта статики (в клиенте конечно же).
LightIndex - судя по коду клиента - ИД источника света, но по факту пока не сходится, может быть еще нужно пошаманить с этим значением.