source: oup/current/FileClasses/TXAN.pas@ 213

Last change on this file since 213 was 213, checked in by alloc, 18 years ago
File size: 1.7 KB
Line 
1unit TXAN;
2
3interface
4
5uses
6 _FileTypes;
7
8type
9 TFile_TXAN = class(TFile)
10 protected
11 procedure InitDatLinks; override;
12 procedure InitDataFields; override;
13 procedure InitRawList; override;
14 end;
15
16implementation
17
18uses
19 ConnectionManager, Math, Classes, TypeDefs, _DataTypes;
20
21procedure TFile_TXAN.InitDataFields;
22var
23 tempi: Integer;
24 temps: String;
25 templist: TStringList;
26begin
27 inherited;
28 FDataFields := TBlock.Create(Self, nil, 0, 'Base', '', nil);
29 templist := TStringList.Create;
30 with FDataFields do
31 begin
32 AddField(TFileID, $00, 'FileID', '', nil);
33
34 AddField(TLevelID, $04, 'LevelID', '', nil);
35
36 tempi := 12;
37 AddField(TUnused, $08, 'Unused data', '', @tempi);
38
39 tempi := 2;
40 AddField(TInt, $14, 'Loop speed', '', @tempi);
41
42 tempi := 2;
43 AddField(TInt, $16, 'Unknown', '', @tempi);
44
45 tempi := 2;
46 AddField(TInt, $18, 'Unknown', '', @tempi);
47
48 tempi := 2;
49 AddField(TUnused, $1A, 'Unused', '', @tempi);
50
51 with AddField(TArray, $1C, 'AnimTextures array', '', @tempi) do
52 begin
53 AddField(TLinkByID, $00, 'Texture', '', nil);
54 end;
55 end;
56 templist.Free;
57end;
58
59
60procedure TFile_TXAN.InitDatLinks;
61var
62 links: Integer;
63 i: Integer;
64begin
65 ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $1C, SizeOf(links), @links);
66 SetLength(FDatLinks, links);
67 for i := 0 to links - 1 do
68 begin
69 FDatLinks[i].SrcOffset := $20 + $4 * i;
70 FDatLinks[i].DestID := GetDatLinkValue(FFileStream, FDatLinks[i].SrcOffset);
71 FDatLinks[i].PosDestExts := 'TXMP';
72 end;
73end;
74
75
76procedure TFile_TXAN.InitRawList;
77begin
78 SetLength(FRawParts, 0);
79end;
80
81end.
82
Note: See TracBrowser for help on using the repository browser.