Вспомогательные типы данных и функции

Вспомогательные типы данных и функции
Автор: AnriRS

Реализация вспомогательных типов данных и утилит содержится в файле siDBPF2Utils.pas

Поддержка типа STBL

type
TSTBLHeader = packed record
Sig: packed array[0..3] of BYTE; // 'STBL' = 0x4C425453
Ver: BYTE; // версия = 2
Reserved1: packed array[0..1] of BYTE; // 0 ???
Count: DWORD; // число записей в таблице
Reserved2: packed array[0..5] of BYTE; // 0 ???
end; // TSTBLHeader record

Sig: packed array[0..3] of BYTE – сигнатура записи, содержит текст "STBL", при сравнении удобно сравнивать сигнатуру не побайтно, а сразу как 32-разрядное целое: (PInt(@Sig[0])^<>$4C425453);

Ver: BYTE – версия формата???, равна 2;

Reserved1: packed array[0..1] of BYTE – неизвестно, равно 0 ???;

Count: DWORD – число записей в таблице;

Reserved2: packed array[0..5] of BYTE– неизвестно, равно 0 ???;

type
TSTBLRecord = packed record
Hash64: UInt64; // QWORD // fnv64 хэш локализуемой строки
Lenght: DWORD; // длина замещающей строки
Str: packed array of char; // замещающая строка
end; // TSTBLRecord record

Hash64: UInt64 – FNV64 хэш локализуемой строки;

Lenght: DWORD – длина замещающей строки в символах;

Str: packed array of char – замещающая (локализующая) строка, содержит Length символов UniCode;

Вычисление хэша FNV

function FNV64(s: string) – вычисляет хэш FNV64 строки символов

function FNV32(s: string): DWORD; overload; // вычисляет хэш FNV32 для ASCII строки

function FNV64(a: TBytes): UInt64; overload; // вычисляет хэш FNV64 для массива байт

function FNV32(a: TBytes): DWORD; overload; // вычисляет хэш FNV32 для массива байт

The Sims 3

The Sims 2

The Sims

MySims

Sims-игры

Даты релизов

the_sims_3_store_saleshymn_bunnersimovod_3simovod2Журнал «Симовод»Prosims - магазин сувениров