DEADSOFTWARE

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