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 | var |
---|
97 | { |
---|
98 | opened_state:Byte=0; |
---|
99 | dat_filename:String=''; |
---|
100 | raw_filename:String=''; |
---|
101 | dat_os_mac:Boolean=False; |
---|
102 | dat_header:Theader; |
---|
103 | dat_filesmap:Tfilesmap; |
---|
104 | dat_files:Tfiles; |
---|
105 | dat_namedfilesmap:Tnamedfilesmap; |
---|
106 | dat_extensionsmap:Textensionsmap; |
---|
107 | } |
---|
108 | AppSettings: TAppSettings; |
---|
109 | AppSettingsFile: file of TAppSettings; |
---|
110 | { |
---|
111 | database_level:LongWord; |
---|
112 | database_ident:Array[0..$13] of Byte; |
---|
113 | } |
---|
114 | const |
---|
115 | { header_ident1_pc:Array[0..$13] of Byte= |
---|
116 | ($1F,$27,$DC,$33,$DF,$BC,$03,$00,$31,$33,$52,$56,$40,$00,$14,$00,$10,$00,$08,$00); |
---|
117 | header_ident1_mac:Array[0..$13] of Byte= |
---|
118 | ($61,$30,$C1,$23,$DF,$BC,$03,$00,$31,$33,$52,$56,$40,$00,$14,$00,$10,$00,$08,$00); |
---|
119 | header_ident2:Array[0..$F] of Byte= |
---|
120 | ($99,$CF,$40,$00,$90,$4F,$63,$00,$F4,$55,$5F,$00,$90,$4F,$63,$00); |
---|
121 | } |
---|
122 | export_noerror: Integer = 0; |
---|
123 | export_nohandler: Integer = 1; |
---|
124 | export_handlererror: Integer = 2; |
---|
125 | export_error: Integer = 3; |
---|
126 | { |
---|
127 | opened_nothing:Byte=0; |
---|
128 | opened_dat:Byte=1; |
---|
129 | opened_db:Byte=2; |
---|
130 | } |
---|
131 | implementation |
---|
132 | |
---|
133 | end. |
---|