Changeset 207 for oup


Ignore:
Timestamp:
May 29, 2007, 9:39:15 PM (17 years ago)
Author:
alloc
Message:
 
Location:
oup/current/FileClasses
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • oup/current/FileClasses/TXMP.pas

    r206 r207  
    44
    55uses
    6   TypeDefs, _DataTypes, _FileTypes;
     6  TypeDefs, _FileTypes, _DataTypes;
    77
    88type
     
    1717
    1818uses
    19   ConnectionManager, Math;
     19  ConnectionManager, Math, Classes;
    2020
    2121{ TFile_SNDD }
     
    3737  tempi: Integer;
    3838  temps: String;
     39  templist: TStringList;
    3940begin
    4041  FDataFields := TBlock.Create(Self, 0, 'Base', '', nil);
     42  templist := TStringList.Create;
    4143  with FDataFields do
    4244  begin
    4345    AddField(TFileID, $00, 'FileID', '', nil);
     46
    4447    AddField(TLevelID, $04, 'LevelID', '', nil);
     48
    4549    tempi := 128;
    4650    AddField(TString, $08, 'FileName', '', @tempi);
    47     tempi := 4;
    48     AddField(TInt, $88, 'Flags', '', @tempi);
     51
     52    templist.Add('MipMapping enabled');
     53    templist.Add('unknown');
     54    templist.Add('U wrapping disabled');
     55    templist.Add('V wrapping disabled');
     56    templist.Add('EnvMapped/EnvMap');
     57    templist.Add('unused');
     58    templist.Add('Play anim back to back');
     59    templist.Add('Random anim order + frame time');
     60    AddField(TBitSet, $88, 'Flags1', '', @templist);
     61
     62    templist.Clear;
     63    templist.Add('Random anim time offset');
     64    templist.Add('High byte as EnvMap');
     65    templist.Add('High byte as alpha');
     66    templist.Add('Different alpha formula');
     67    templist.Add('Data swapping (always set)');
     68    templist.Add('used at runtime');
     69    templist.Add('TXAN looping on/off');
     70    templist.Add('16 bit blue');
     71    AddField(TBitSet, $89, 'Flags2', '', @templist);
     72
     73    templist.Clear;
     74    templist.Add('16 bit alpha');
     75    templist.Add('16 bit red');
     76    templist.Add('unknown');
     77    templist.Add('unknown');
     78    templist.Add('unknown');
     79    templist.Add('unknown');
     80    templist.Add('unknown');
     81    templist.Add('unknown');
     82    AddField(TBitSet, $8A, 'Flags3', '', @templist);
     83
     84    templist.Clear;
     85    templist.Add('unknown');
     86    templist.Add('unknown');
     87    templist.Add('unknown');
     88    templist.Add('unknown');
     89    templist.Add('unknown');
     90    templist.Add('unknown');
     91    templist.Add('unknown');
     92    templist.Add('unknown');
     93    AddField(TBitSet, $8B, 'Flags4', '', @templist);
     94
    4995    tempi := 2;
    5096    AddField(TInt, $8C, 'Width', '', @tempi);
     97
    5198    tempi := 2;
    5299    AddField(TInt, $8E, 'Height', '', @tempi);
     100
    53101    tempi := 4;
    54102    AddField(TInt, $90, 'StoreType', '', @tempi);
    55     temps := 'TXAN';
     103
     104    temps := '*';
    56105    AddField(TLinkByID, $94, 'TXAN', '', @temps);
     106
    57107    temps := 'TXMP';
    58108    AddField(TLinkByID, $98, 'TXMP', '', @temps);
     109
    59110    AddField(TRawLink, $9C, 'RawLink', '', nil);
     111
    60112    AddField(TRawLink, $A0, 'SepLink', '', nil);
     113
    61114    tempi := $1C;
    62115    AddField(TUnused, $A4, 'Unused', '', @tempi);
    63116  end;
     117  templist.Free;
    64118end;
    65119
  • oup/current/FileClasses/_DataTypes.pas

    r206 r207  
    22
    33interface
     4
     5uses
     6  Classes;
    47
    58type
    69  TDataField = class
    7     private
     10    protected
    811      FOffset: Integer;
    912      FName:   String;
     
    2831  TFieldType = class of TDataField;
    2932
     33
    3034  TBlock = class(TDataField)
    3135    private
     
    3539      function GetFieldCount: Integer;
    3640    public
    37       // ExtraArgs: Pointer auf 2 Integer: Length+Count
     41      // ExtraArgs: keine
    3842      constructor Create(ParentFile: TObject; Offset: Integer;
    3943          Name, Description: String; ExtraArgs: Pointer); override;
     
    5458    public
    5559      // ExtraArgs: Pointer auf Integer: Bytes of TInt
     60      constructor Create(ParentFile: TObject; Offset: Integer;
     61          Name, Description: String; ExtraArgs: Pointer); override;
     62      procedure Update(Offset, Length: Integer); override;
     63  end;
     64
     65
     66  TBitSet = class(TDataField)
     67    private
     68      FBits: Byte;
     69      FNames: TStringList;
     70      function GetValueAsString: String; override;
     71    public
     72      // ExtraArgs: Pointer auf TStringList
    5673      constructor Create(ParentFile: TObject; Offset: Integer;
    5774          Name, Description: String; ExtraArgs: Pointer); override;
     
    116133      function GetFieldCount: Integer;
    117134    public
    118       // ExtraArgs: Pointer auf 2 Integer: Length+Count
     135      // ExtraArgs: Pointer auf 2 Integer: Length+Count (packed record...)
    119136      constructor Create(ParentFile: TObject; Offset: Integer;
    120137          Name, Description: String; ExtraArgs: Pointer); override;
     
    152169
    153170
     171
     172
    154173implementation
    155174
    156175uses
    157   SysUtils, Dialogs, _FileTypes, Classes, ConnectionManager;
    158 
     176  SysUtils, Dialogs, _FileTypes, ConnectionManager;
     177
     178
     179 
    159180
    160181{ TDataType }
     
    167188  FDescription := Description;
    168189  FParentFile := ParentFile;
    169 end;
    170 
    171 
    172 
    173 { TInt32 }
    174 
    175 constructor TInt.Create(ParentFile: TObject; Offset: Integer;
    176     Name, Description: String; ExtraArgs: Pointer);
    177 var
    178   fstream: TMemoryStream;
    179 begin
    180   inherited Create(ParentFile, Offset, Name, Description, ExtraArgs);
    181   FDataLength := Integer(ExtraArgs^);
    182   FInt := 0;
    183   fstream := TFile(ParentFile).FileStream;
    184   fstream.Seek(Offset, soFromBeginning);
    185   fstream.Read(FInt, FDataLength);
    186 end;
    187 
    188 function TInt.GetValueAsString: String;
    189 begin
    190   Result := IntToStr(FInt);
    191 end;
    192 
    193 procedure TInt.Update(Offset, Length: Integer);
    194 begin
    195   Exit;
    196190end;
    197191
     
    226220
    227221procedure TString.Update(Offset, Length: Integer);
     222begin
     223  Exit;
     224end;
     225
     226
     227
     228{ TInt }
     229
     230constructor TInt.Create(ParentFile: TObject; Offset: Integer;
     231    Name, Description: String; ExtraArgs: Pointer);
     232var
     233  fstream: TMemoryStream;
     234begin
     235  inherited Create(ParentFile, Offset, Name, Description, ExtraArgs);
     236  FDataLength := Integer(ExtraArgs^);
     237  FInt := 0;
     238  fstream := TFile(ParentFile).FileStream;
     239  fstream.Seek(Offset, soFromBeginning);
     240  fstream.Read(FInt, FDataLength);
     241end;
     242
     243function TInt.GetValueAsString: String;
     244begin
     245  Result := IntToStr(FInt);
     246end;
     247
     248procedure TInt.Update(Offset, Length: Integer);
    228249begin
    229250  Exit;
     
    466487end;
    467488
     489
     490
     491{ TBitSet }
     492
     493constructor TBitSet.Create(ParentFile: TObject; Offset: Integer; Name,
     494  Description: String; ExtraArgs: Pointer);
     495var
     496  fstream: TMemoryStream;
     497begin
     498  inherited Create(ParentFile, Offset, Name, Description, ExtraArgs);
     499  FNames := TStringList.Create;
     500  FNames.AddStrings(TStringList(ExtraArgs^));
     501  FDataLength := 1;
     502  FBits := 0;
     503  fstream := TFile(ParentFile).FileStream;
     504  fstream.Seek(Offset, soFromBeginning);
     505  fstream.Read(FBits, FDataLength);
     506end;
     507
     508function TBitSet.GetValueAsString: String;
     509begin
     510  Result := IntToStr(FBits);
     511end;
     512
     513procedure TBitSet.Update(Offset, Length: Integer);
     514begin
     515  Exit;
     516end;
     517
    468518end.
  • oup/current/FileClasses/_FileTypes.pas

    r206 r207  
    4747
    4848
     49  TFileType = class of TFile;
     50
     51
    4952implementation
    5053
     
    7982  FFile.Free;
    8083  FFile := nil;
    81 
    82 //  FDatLinks := DatLinksManager.GetDatLinks(ConnectionID, FileID);
    83 //  FRawParts := RawLists.GetRawList(ConnectionID, FileID);
    8484end;
    8585
Note: See TracChangeset for help on using the changeset viewer.