Суббота, 23.11.2024, 12:45
Приветствую Вас Гость

Каталог статей

Главная » Статьи » S3DecoderLib

S3DecoderLib: Работа с ResType OBJD

Работа с ResType OBJD

 

[ Стабильный билд • ResType: OBJD (eng) ]

 

Програмный модуль и версия

DBPF2OBJD.pas, rev.130204

 

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

 

record TDBPF2OBJDTopicRating

  TDBPF2OBJDTopicRating = packed record
    Topic: DWORD;
    Rating: DWORD;
  end;

array TDBPF2OBJDTopicRatings

  TDBPF2OBJDTopicRatings = packed array[0..4] of TDBPF2OBJDTopicRating;

Основные типы данных

 

class TDBPF2OBJD

Выполняет частичное декодирование данных (чтение общей секции и флагов)
  TDBPF2OBJD = class(TDBPF2CRES)
  // see http://www.modthesims.info/wiki.php?title=Sims_3:0x319E4F1D
    private
      function GetCategorySubFlags: UInt64;
      function GetCategorySubFlags2: UInt64;
      function GetRoomSubFlags: UInt64;

    protected
      FInstanceName: string;
      FObjectTypeFlags, FObjectTypeFlags2: DWORD;
      FWallPlacementFlags: DWORD;
      FMovementFlags: DWORD;
      FScriptEnabled: boolean;

      FRoomFlags: DWORD;
      FCategoryFlags: DWORD;
      FCategorySubFlagsHi, FCategorySubFlagsLo: DWORD; //QWORD;
      FCategorySubFlags2Hi, FCategorySubFlags2Lo: DWORD; //QWORD;
      FRoomSubFlagsHi, FRoomSubFlagsLo: DWORD; //QWORD;
      FBuildCategoryFlags: DWORD;
      FSlotPlacementFlags: DWORD;
      FSurfaceType: string;
      FSourceMaterial: string;
      FMoodletGiven: DWORD;
      FMoodletScore: DWORD;
      FTopicRating: TDBPF2OBJDTopicRatings;

    public
      constructor Create(AStream: TStream = nil); // декодирует данные записи

      procedure Decode(AStream: TStream); override; // декодирует данные записи

      property ObjectTypeFlags: DWORD read FObjectTypeFlags;
      property ObjectTypeFlags2: DWORD read FObjectTypeFlags2;
      property WallPlacementFlags: DWORD read FWallPlacementFlags;
      property MovementFlags: DWORD read FMovementFlags;
      property ScriptEnabled: boolean read FScriptEnabled;

      property RoomFlags: DWORD read FRoomFlags;
      property CategoryFlags: DWORD read FCategoryFlags;
      property CategorySubFlagsHi: DWORD read FCategorySubFlagsHi;
      property CategorySubFlagsLo: DWORD read FCategorySubFlagsLo;
      property CategorySubFlags: UInt64 read GetCategorySubFlags;
      property CategorySubFlags2Hi: DWORD read FCategorySubFlags2Hi;
      property CategorySubFlags2Lo: DWORD read FCategorySubFlags2Lo;
      property CategorySubFlags2: UInt64 read GetCategorySubFlags2;
      property RoomSubFlagsHi: DWORD read FRoomSubFlagsHi;
      property RoomSubFlagsLo: DWORD read FRoomSubFlagsLo;
      property RoomSubFlags: UInt64 read GetRoomSubFlags;
      property BuildCategoryFlags: DWORD read FBuildCategoryFlags;
      property SlotPlacementFlags: DWORD read FSlotPlacementFlags;
      property SurfaceType: string read FSurfaceType;
      property SourceMaterial: string read FSourceMaterial;
      property MoodletGiven: DWORD read FMoodletGiven;
      property MoodletScore: DWORD read FMoodletScore;
      property TopicRating: TDBPF2OBJDTopicRatings read FTopicRating;
  end; // TDBPF2OBJD class

Функции

function IsOBJD(AResourceType: DWORD): boolean; // возвращает true если AResourceType OBJD
Категория: S3DecoderLib | Добавил: crazylab (28.09.2013)
Просмотров: 717