DEADSOFTWARE

put "{$MODE ...}" directive in each source file; removed trailing spaces, and convert...
[d2df-sdl.git] / src / shared / MAPSTRUCT.pas
1 {$MODE DELPHI}
2 unit MAPSTRUCT;
4 {
5 -----------------------------------
6 MAPSTRUCT.PAS ÂÅÐÑÈß ÎÒ 13.11.07
8 Ïîääåðæêà êàðò âåðñèè 1
9 -----------------------------------
10 }
12 {
13 Êàðòà ïðåäñòàâëÿåò ñîáîþ WAD, â êîòîðîì ðåñóðñû â êîðíå - ñîáñòâåííî ñàìè êàðòû
14 (MAP01, MAP02 è ò.ä.).
16 Áëîêè çàêàí÷èâàþòñÿ íóëåâûì áëîêîì (BlockType=BLOCK_NONE)
18 Ñòðóêòóðà êàðòû (MAP01, MAP02...):
19 --------------------------------------
20 SIGNATURE | Byte[3] | 'MAP'
21 VERSION | Byte | $01
22 BLOCK1 | TBlock |
23 BLOCK1DATA | RAW |
24 ... | ...... |
25 BLOCKN | TBlock |
26 BLOCKNDATA | RAW |
27 --------------------------------------
29 Ñòðóêòóðà áëîêà:
30 --------------------------------------
31 BLOCKTYPE | Byte | (BLOCK_TEXTURES, BLOCK_PANELS,...)
32 RESERVED | LongWord | $00000000
33 BLOCKSIZE | LongWord | Ñêîëüêî ýòîò áëîê â ðàçìåðå (áàéò ïîñëå record'à)
34 --------------------------------------
35 }
37 interface
39 const
40 MAP_SIGNATURE = 'MAP';
41 BLOCK_NONE = 0;
42 BLOCK_TEXTURES = 1;
43 BLOCK_PANELS = 2;
44 BLOCK_ITEMS = 3;
45 BLOCK_AREAS = 4;
46 BLOCK_MONSTERS = 5;
47 BLOCK_TRIGGERS = 6;
48 BLOCK_HEADER = 7;
50 type
51 Char16 = packed array[0..15] of Char;
52 Char32 = packed array[0..31] of Char;
53 Char64 = packed array[0..63] of Char;
54 Char100 = packed array[0..99] of Char;
55 Char256 = packed array[0..255] of Char;
56 Byte128 = packed array[0..127] of Byte;
58 TMapHeaderRec_1 = packed record
59 MapName: Char32;
60 MapAuthor: Char32;
61 MapDescription: Char256;
62 MusicName: Char64;
63 SkyName: Char64;
64 Width: Word;
65 Height: Word;
66 end;
68 TTextureRec_1 = packed record
69 Resource: Char64;
70 Anim: Byte;
71 end;
73 TPanelRec_1 = packed record
74 X, Y: Integer;
75 Width,
76 Height: Word;
77 TextureNum: Word;
78 PanelType: Word;
79 Alpha: Byte;
80 Flags: Byte;
81 end;
83 TItemRec_1 = packed record
84 X, Y: Integer;
85 ItemType: Byte;
86 Options: Byte;
87 end;
89 TMonsterRec_1 = packed record
90 X, Y: Integer;
91 MonsterType: Byte;
92 Direction: Byte;
93 end;
95 TAreaRec_1 = packed record
96 X, Y: Integer;
97 AreaType: Byte;
98 Direction: Byte;
99 end;
101 TTriggerRec_1 = packed record
102 X, Y: Integer;
103 Width,
104 Height: Word;
105 Enabled: Byte;
106 TexturePanel: Integer;
107 TriggerType: Byte;
108 ActivateType: Byte;
109 Keys: Byte;
110 DATA: Byte128;
111 end;
113 TBlock = packed record
114 BlockType: Byte;
115 Reserved: LongWord;
116 BlockSize: LongWord;
117 end;
119 TTexturesRec1Array = array of TTextureRec_1;
120 TPanelsRec1Array = array of TPanelRec_1;
121 TItemsRec1Array = array of TItemRec_1;
122 TMonsterRec1Array = array of TMonsterRec_1;
123 TAreasRec1Array = array of TAreaRec_1;
124 TTriggersRec1Array = array of TTriggerRec_1;
126 implementation
128 end.