DEADSOFTWARE

fixed wadeditor; added nosound mode; fixed codepage problems; fixed pointers; cleanup
[d2df-editor.git] / src / shared / MAPSTRUCT.pas
1 unit MAPSTRUCT;
3 {$INCLUDE ../shared/a_modes.inc}
5 {
6 -----------------------------------
7 MAPSTRUCT.PAS ВЕРСИЯ ОТ 13.11.07
9 Поддержка карт версии 1
10 -----------------------------------
11 }
13 {
14 Карта представляет собою WAD, в котором ресурсы в корне - собственно сами карты
15 (MAP01, MAP02 и т.д.).
17 Блоки заканчиваются нулевым блоком (BlockType=BLOCK_NONE)
19 Структура карты (MAP01, MAP02...):
20 --------------------------------------
21 SIGNATURE | Byte[3] | 'MAP'
22 VERSION | Byte | $01
23 BLOCK1 | TBlock |
24 BLOCK1DATA | RAW |
25 ... | ...... |
26 BLOCKN | TBlock |
27 BLOCKNDATA | RAW |
28 --------------------------------------
30 Структура блока:
31 --------------------------------------
32 BLOCKTYPE | Byte | (BLOCK_TEXTURES, BLOCK_PANELS,...)
33 RESERVED | LongWord | $00000000
34 BLOCKSIZE | LongWord | Сколько этот блок в размере (байт после record'а)
35 --------------------------------------
36 }
38 interface
40 const
41 MAP_SIGNATURE = 'MAP';
42 BLOCK_NONE = 0;
43 BLOCK_TEXTURES = 1;
44 BLOCK_PANELS = 2;
45 BLOCK_ITEMS = 3;
46 BLOCK_AREAS = 4;
47 BLOCK_MONSTERS = 5;
48 BLOCK_TRIGGERS = 6;
49 BLOCK_HEADER = 7;
51 type
52 Char16 = packed array[0..15] of Char;
53 Char32 = packed array[0..31] of Char;
54 Char64 = packed array[0..63] of Char;
55 Char100 = packed array[0..99] of Char;
56 Char256 = packed array[0..255] of Char;
57 Byte128 = packed array[0..127] of Byte;
59 TMapHeaderRec_1 = packed record
60 MapName: Char32;
61 MapAuthor: Char32;
62 MapDescription: Char256;
63 MusicName: Char64;
64 SkyName: Char64;
65 Width: Word;
66 Height: Word;
67 end;
69 TTextureRec_1 = packed record
70 Resource: Char64;
71 Anim: Byte;
72 end;
74 TPanelRec_1 = packed record
75 X, Y: Integer;
76 Width,
77 Height: Word;
78 TextureNum: Word;
79 PanelType: Word;
80 Alpha: Byte;
81 Flags: Byte;
82 end;
84 TItemRec_1 = packed record
85 X, Y: Integer;
86 ItemType: Byte;
87 Options: Byte;
88 end;
90 TMonsterRec_1 = packed record
91 X, Y: Integer;
92 MonsterType: Byte;
93 Direction: Byte;
94 end;
96 TAreaRec_1 = packed record
97 X, Y: Integer;
98 AreaType: Byte;
99 Direction: Byte;
100 end;
102 TTriggerRec_1 = packed record
103 X, Y: Integer;
104 Width,
105 Height: Word;
106 Enabled: Byte;
107 TexturePanel: Integer;
108 TriggerType: Byte;
109 ActivateType: Byte;
110 Keys: Byte;
111 DATA: Byte128;
112 end;
114 TBlock = packed record
115 BlockType: Byte;
116 Reserved: LongWord;
117 BlockSize: LongWord;
118 end;
120 TTexturesRec1Array = array of TTextureRec_1;
121 TPanelsRec1Array = array of TPanelRec_1;
122 TItemsRec1Array = array of TItemRec_1;
123 TMonsterRec1Array = array of TMonsterRec_1;
124 TAreasRec1Array = array of TAreaRec_1;
125 TTriggersRec1Array = array of TTriggerRec_1;
127 implementation
129 end.