Каталог статей
Главная » Статьи » S3DecoderLib |
S3DecoderLib: Реализация декодирования Common Catalog Resource
|
Реализация декодирования Common Catalog Resource [ Стабильный билд • "Обертывание" вторичного потока • Sims 3:Catalog Resource (eng) ]
Програмный модуль и версия DBPF2CRES.pas, rev.130204
Краткий обзор
Объекты продажи / строительства в The Sims 3 содержат общую структуру данных задающую ряд параметров объекта: - название объекта, ссылку на идентификатор локализации (хэш названия); - описание объекта, ссылку на идентификатор локализации (хэш описания); - цену; - набор флагов описывающий объект;
Реализация на Pascal
Базовым классом обеспечивающим "обертывание" записей базирующихся на на Common Catalog Resource является TDBPF2CRES описанный в DBPF2CRES.pas. Класс является абстрактным т.к. абстрактный метод родительского класса не перекрыт и должен быть реализован в дочерних классах.
class TDBPF2CRES - абстрактный класс реализующий чтение Common Catalog Resource type TDBPF2CRES = class(TDBPF2ItemDecoder) // http://www.modthesims.info/wiki.php?title=Sims_3:Catalog_Resource#Common private protected FVer: DWORD; // версия ресурса FTGIOffset: DWORD; FTGISize: DWORD; FShCommon: integer; // смещение common секции от начала потока FNameHash: UInt64; FDescrHash: UInt64; FNameInt: string; FDescrInt: string; FPrice: single; FNicenessMultiplier: single; // always 1.0 FCrapScore: single; // binary zeros FBuildBuyProductStatusFlags: BYTE; FIID: UInt64; FEnvironmentScore: single; FFireType: DWORD; //0=DoesNotBurn,1=Chars,2=AshPile FIsStealable: boolean; FIsReposessable: boolean; FUISortIndex: DWORD; FIsPlaceableOnRoof: boolean; FIsVisibleInWorldbuilder: boolean; FProductName: DWORD; procedure SkipMaterialList(IsWallFloorStyle: boolean); // пропускает material list procedure DecodeCommon; // читает общую секцию из потока FStream с текущей позиции потока public property Ver: DWORD read FVer; property TGIOffset: DWORD read FTGIOffset; property NameHash: UInt64 read FNameHash; property DescrHash: UInt64 read FDescrHash; property NameInt: string read FNameInt; property DescrInt: string read FDescrInt; property Price: single read FPrice; property Version: cardinal read FVer; end; // TDBPF2CRES class Свойства Ver: DWORD – версия ресурса, чтение/запись; TGIOffset: DWORD – ;
NameHash: UInt64 – хэш имени объекта; DescrHash: UInt64 – хэш описания объекта; NameInt: string – внутреннее имя объекта; DescrInt: string – внутренне описание объекта; Price: single – цена объекта;
Методы procedure SkipMaterialList(IsWallFloorStyle: boolean) – пропускает material list, защищенный метод; procedure DecodeCommon – читает общую секцию из потока FStream с текущей позиции потока, защищенный метод; | |
Категория: S3DecoderLib | Добавил: crazylab (28.09.2013) | |
Просмотров: 755 |