1 |
unit Data; |
2 |
|
3 |
interface |
4 |
|
5 |
uses Classes, Graphics; |
6 |
|
7 |
const |
8 |
Version: String = 'v0.33a'; |
9 |
DBVersion: String = '0.3'; |
10 |
CrLf: String[2] = #13 + #10; |
11 |
|
12 |
type |
13 |
TData = array of Byte; |
14 |
|
15 |
THeader = packed record |
16 |
Ident: array[0..$13] of Byte; |
17 |
Files: LongWord; |
18 |
NamedFiles: LongWord; |
19 |
Extensions: LongWord; |
20 |
DataAddr: LongWord; |
21 |
DataSize: LongWord; |
22 |
NamesAddr: LongWord; |
23 |
NamesSize: LongWord; |
24 |
Ident2: array[0..$F] of Byte; |
25 |
end; |
26 |
TFilesMap = array of packed record |
27 |
Extension: array[0..$3] of Char; |
28 |
DataAddr: LongWord; |
29 |
NameAddr: LongWord; |
30 |
FileSize: LongWord; |
31 |
FileType: LongWord; |
32 |
end; |
33 |
|
34 |
TFileInfo = packed record |
35 |
ID: Integer; |
36 |
FileName: String; |
37 |
FileNameHex: String; |
38 |
Extension: String[4]; |
39 |
Name: String; |
40 |
Size: LongWord; |
41 |
FileType: LongWord; |
42 |
DatAddr: LongWord; |
43 |
opened: Boolean; |
44 |
end; |
45 |
TFiles = array of TFileInfo; |
46 |
|
47 |
TNamedFilesMap = array of packed record |
48 |
FileNumber: LongWord; |
49 |
blubb: LongWord; |
50 |
end; |
51 |
TExtensionsMap = array of packed record |
52 |
Ident: array[0..$7] of Byte; |
53 |
Extension: array[0..$3] of Char; |
54 |
ExtCount: LongWord; |
55 |
end; |
56 |
|
57 |
TLevelInfo = record |
58 |
Ident: array[0..$13] of Byte; |
59 |
LevelNumber: Byte; |
60 |
end; |
61 |
|
62 |
TAppSettings = record |
63 |
DatPath: String[250]; |
64 |
ExtractPath: String[250]; |
65 |
FilenumbersAsHex: Boolean; |
66 |
CharSet: TFontCharSet; |
67 |
HideUnusedData: Boolean; |
68 |
end; |
69 |
|
70 |
TExportHandlers = record |
71 |
Ext: String[4]; |
72 |
needed: Boolean; |
73 |
Handler: function(fileid: LongWord; filename: String; convert: Boolean): Integer; |
74 |
end; |
75 |
|
76 |
TStringArray = array of String; |
77 |
TExtList = array of record |
78 |
Ext: String; |
79 |
Count: LongWord; |
80 |
end; |
81 |
|
82 |
TRawInfo = record |
83 |
src_id: LongWord; |
84 |
src_offset: LongWord; |
85 |
raw_addr: LongWord; |
86 |
raw_size: LongWord; |
87 |
loc_sep: Boolean; |
88 |
end; |
89 |
TRawList = array of TRawInfo; |
90 |
|
91 |
TDatLinks = array of record |
92 |
Src_Offset: LongWord; |
93 |
Target: LongWord; |
94 |
end; |
95 |
|
96 |
TToolList = array of record |
97 |
context: String; |
98 |
name: String; |
99 |
exts: String; |
100 |
end; |
101 |
|
102 |
TSortType = (stIDAsc, stIDDesc, stNameAsc, stNameDesc, stExtAsc, stExtDesc); |
103 |
|
104 |
var |
105 |
{ |
106 |
opened_state:Byte=0; |
107 |
dat_filename:String=''; |
108 |
raw_filename:String=''; |
109 |
dat_os_mac:Boolean=False; |
110 |
dat_header:Theader; |
111 |
dat_filesmap:Tfilesmap; |
112 |
dat_files:Tfiles; |
113 |
dat_namedfilesmap:Tnamedfilesmap; |
114 |
dat_extensionsmap:Textensionsmap; |
115 |
} |
116 |
AppSettings: TAppSettings; |
117 |
AppSettingsFile: file of TAppSettings; |
118 |
{ |
119 |
database_level:LongWord; |
120 |
database_ident:Array[0..$13] of Byte; |
121 |
} |
122 |
const |
123 |
{ header_ident1_pc:Array[0..$13] of Byte= |
124 |
($1F,$27,$DC,$33,$DF,$BC,$03,$00,$31,$33,$52,$56,$40,$00,$14,$00,$10,$00,$08,$00); |
125 |
header_ident1_mac:Array[0..$13] of Byte= |
126 |
($61,$30,$C1,$23,$DF,$BC,$03,$00,$31,$33,$52,$56,$40,$00,$14,$00,$10,$00,$08,$00); |
127 |
header_ident2:Array[0..$F] of Byte= |
128 |
($99,$CF,$40,$00,$90,$4F,$63,$00,$F4,$55,$5F,$00,$90,$4F,$63,$00); |
129 |
} |
130 |
export_noerror: Integer = 0; |
131 |
export_nohandler: Integer = 1; |
132 |
export_handlererror: Integer = 2; |
133 |
export_error: Integer = 3; |
134 |
{ |
135 |
opened_nothing:Byte=0; |
136 |
opened_dat:Byte=1; |
137 |
opened_db:Byte=2; |
138 |
} |
139 |
implementation |
140 |
|
141 |
end. |