DEADSOFTWARE

b39b5fabb3ba64de636e9564036d96d1dc8c5736
[d2df-editor.git] / src / shared / MAPDEF.pas
1 unit MAPDEF;
3 {$INCLUDE ../shared/a_modes.inc}
5 {
6 -----------------------------------
7 MAPDEF.PAS ВЕРСИЯ ОТ 22.03.09
9 Поддержка карт версии 1
10 -----------------------------------
11 }
13 interface
15 uses
16 MAPSTRUCT;
18 const
19 PANEL_NONE = 0;
20 PANEL_WALL = 1;
21 PANEL_BACK = 2;
22 PANEL_FORE = 4;
23 PANEL_WATER = 8;
24 PANEL_ACID1 = 16;
25 PANEL_ACID2 = 32;
26 PANEL_STEP = 64;
27 PANEL_LIFTUP = 128;
28 PANEL_LIFTDOWN = 256;
29 PANEL_OPENDOOR = 512;
30 PANEL_CLOSEDOOR = 1024;
31 PANEL_BLOCKMON = 2048;
32 PANEL_LIFTLEFT = 4096;
33 PANEL_LIFTRIGHT = 8192;
35 PANEL_FLAG_BLENDING = 1;
36 PANEL_FLAG_HIDE = 2;
37 PANEL_FLAG_WATERTEXTURES = 4;
39 EFFECT_NONE = 0;
40 EFFECT_TELEPORT = 1;
41 EFFECT_RESPAWN = 2;
42 EFFECT_FIRE = 3;
44 ITEM_NONE = 0;
45 ITEM_MEDKIT_SMALL = 1;
46 ITEM_MEDKIT_LARGE = 2;
47 ITEM_MEDKIT_BLACK = 3;
48 ITEM_ARMOR_GREEN = 4;
49 ITEM_ARMOR_BLUE = 5;
50 ITEM_SPHERE_BLUE = 6;
51 ITEM_SPHERE_WHITE = 7;
52 ITEM_SUIT = 8;
53 ITEM_OXYGEN = 9;
54 ITEM_INVUL = 10;
55 ITEM_WEAPON_SAW = 11;
56 ITEM_WEAPON_SHOTGUN1 = 12;
57 ITEM_WEAPON_SHOTGUN2 = 13;
58 ITEM_WEAPON_CHAINGUN = 14;
59 ITEM_WEAPON_ROCKETLAUNCHER = 15;
60 ITEM_WEAPON_PLASMA = 16;
61 ITEM_WEAPON_BFG = 17;
62 ITEM_WEAPON_SUPERPULEMET = 18;
63 ITEM_AMMO_BULLETS = 19;
64 ITEM_AMMO_BULLETS_BOX = 20;
65 ITEM_AMMO_SHELLS = 21;
66 ITEM_AMMO_SHELLS_BOX = 22;
67 ITEM_AMMO_ROCKET = 23;
68 ITEM_AMMO_ROCKET_BOX = 24;
69 ITEM_AMMO_CELL = 25;
70 ITEM_AMMO_CELL_BIG = 26;
71 ITEM_AMMO_BACKPACK = 27;
72 ITEM_KEY_RED = 28;
73 ITEM_KEY_GREEN = 29;
74 ITEM_KEY_BLUE = 30;
75 ITEM_WEAPON_KASTET = 31;
76 ITEM_WEAPON_PISTOL = 32;
77 ITEM_BOTTLE = 33;
78 ITEM_HELMET = 34;
79 ITEM_JETPACK = 35;
80 ITEM_INVIS = 36;
81 ITEM_WEAPON_FLAMETHROWER = 37;
82 ITEM_AMMO_FUELCAN = 38;
84 ITEM_MAX = 38; // store the last item's id in here
85 // use this in for loops
87 ITEM_OPTION_ONLYDM = 1;
88 ITEM_OPTION_FALL = 2;
90 AREA_NONE = 0;
91 AREA_PLAYERPOINT1 = 1;
92 AREA_PLAYERPOINT2 = 2;
93 AREA_DMPOINT = 3;
94 AREA_REDFLAG = 4;
95 AREA_BLUEFLAG = 5;
96 AREA_DOMFLAG = 6;
97 AREA_REDTEAMPOINT = 7;
98 AREA_BLUETEAMPOINT = 8;
100 MONSTER_NONE = 0;
101 MONSTER_DEMON = 1;
102 MONSTER_IMP = 2;
103 MONSTER_ZOMBY = 3;
104 MONSTER_SERG = 4;
105 MONSTER_CYBER = 5;
106 MONSTER_CGUN = 6;
107 MONSTER_BARON = 7;
108 MONSTER_KNIGHT = 8;
109 MONSTER_CACO = 9;
110 MONSTER_SOUL = 10;
111 MONSTER_PAIN = 11;
112 MONSTER_SPIDER = 12;
113 MONSTER_BSP = 13;
114 MONSTER_MANCUB = 14;
115 MONSTER_SKEL = 15;
116 MONSTER_VILE = 16;
117 MONSTER_FISH = 17;
118 MONSTER_BARREL = 18;
119 MONSTER_ROBO = 19;
120 MONSTER_MAN = 20;
122 TRIGGER_NONE = 0;
123 TRIGGER_EXIT = 1;
124 TRIGGER_TELEPORT = 2;
125 TRIGGER_OPENDOOR = 3;
126 TRIGGER_CLOSEDOOR = 4;
127 TRIGGER_DOOR = 5;
128 TRIGGER_DOOR5 = 6;
129 TRIGGER_CLOSETRAP = 7;
130 TRIGGER_TRAP = 8;
131 TRIGGER_PRESS = 9;
132 TRIGGER_SECRET = 10;
133 TRIGGER_LIFTUP = 11;
134 TRIGGER_LIFTDOWN = 12;
135 TRIGGER_LIFT = 13;
136 TRIGGER_TEXTURE = 14;
137 TRIGGER_ON = 15;
138 TRIGGER_OFF = 16;
139 TRIGGER_ONOFF = 17;
140 TRIGGER_SOUND = 18;
141 TRIGGER_SPAWNMONSTER = 19;
142 TRIGGER_SPAWNITEM = 20;
143 TRIGGER_MUSIC = 21;
144 TRIGGER_PUSH = 22;
145 TRIGGER_SCORE = 23;
146 TRIGGER_MESSAGE = 24;
147 TRIGGER_DAMAGE = 25;
148 TRIGGER_HEALTH = 26;
149 TRIGGER_SHOT = 27;
150 TRIGGER_EFFECT = 28;
151 TRIGGER_MAX = 28;
153 TRIGGER_SHOT_PISTOL = 0;
154 TRIGGER_SHOT_BULLET = 1;
155 TRIGGER_SHOT_SHOTGUN = 2;
156 TRIGGER_SHOT_SSG = 3;
157 TRIGGER_SHOT_IMP = 4;
158 TRIGGER_SHOT_PLASMA = 5;
159 TRIGGER_SHOT_SPIDER = 6;
160 TRIGGER_SHOT_CACO = 7;
161 TRIGGER_SHOT_BARON = 8;
162 TRIGGER_SHOT_MANCUB = 9;
163 TRIGGER_SHOT_REV = 10;
164 TRIGGER_SHOT_ROCKET = 11;
165 TRIGGER_SHOT_BFG = 12;
166 TRIGGER_SHOT_EXPL = 13;
167 TRIGGER_SHOT_BFGEXPL = 14;
168 TRIGGER_SHOT_FLAME = 15;
169 TRIGGER_SHOT_MAX = 15;
171 TRIGGER_SHOT_TARGET_NONE = 0;
172 TRIGGER_SHOT_TARGET_MON = 1;
173 TRIGGER_SHOT_TARGET_PLR = 2;
174 TRIGGER_SHOT_TARGET_RED = 3;
175 TRIGGER_SHOT_TARGET_BLUE = 4;
176 TRIGGER_SHOT_TARGET_MONPLR = 5;
177 TRIGGER_SHOT_TARGET_PLRMON = 6;
179 TRIGGER_SHOT_AIM_DEFAULT = 0;
180 TRIGGER_SHOT_AIM_ALLMAP = 1;
181 TRIGGER_SHOT_AIM_TRACE = 2;
182 TRIGGER_SHOT_AIM_TRACEALL = 3;
184 TRIGGER_EFFECT_PARTICLE = 0;
185 TRIGGER_EFFECT_ANIMATION = 1;
187 TRIGGER_EFFECT_SLIQUID = 0;
188 TRIGGER_EFFECT_LLIQUID = 1;
189 TRIGGER_EFFECT_DLIQUID = 2;
190 TRIGGER_EFFECT_BLOOD = 3;
191 TRIGGER_EFFECT_SPARK = 4;
192 TRIGGER_EFFECT_BUBBLE = 5;
193 TRIGGER_EFFECT_MAX = 5;
195 TRIGGER_EFFECT_POS_CENTER = 0;
196 TRIGGER_EFFECT_POS_AREA = 1;
198 ACTIVATE_PLAYERCOLLIDE = 1;
199 ACTIVATE_MONSTERCOLLIDE = 2;
200 ACTIVATE_PLAYERPRESS = 4;
201 ACTIVATE_MONSTERPRESS = 8;
202 ACTIVATE_SHOT = 16;
203 ACTIVATE_NOMONSTER = 32;
204 ACTIVATE_CUSTOM = 255;
206 KEY_RED = 1;
207 KEY_GREEN = 2;
208 KEY_BLUE = 4;
209 KEY_REDTEAM = 8;
210 KEY_BLUETEAM = 16;
212 TEXTURE_NAME_WATER = '_water_0';
213 TEXTURE_NAME_ACID1 = '_water_1';
214 TEXTURE_NAME_ACID2 = '_water_2';
216 TEXTURE_SPECIAL_WATER = DWORD(-1);
217 TEXTURE_SPECIAL_ACID1 = DWORD(-2);
218 TEXTURE_SPECIAL_ACID2 = DWORD(-3);
219 TEXTURE_NONE = DWORD(-4);
221 Type
222 TPoint = packed record
223 X, Y: LongInt;
224 end;
226 TTriggerData = record
227 case Byte of
228 0: (Default: Byte128);
229 TRIGGER_EXIT: (MapName: Char16);
230 TRIGGER_TELEPORT: (TargetPoint: TPoint;
231 d2d_teleport: Boolean;
232 silent_teleport: Boolean;
233 TlpDir: Byte);
234 TRIGGER_OPENDOOR,
235 TRIGGER_CLOSEDOOR,
236 TRIGGER_DOOR,
237 TRIGGER_DOOR5,
238 TRIGGER_CLOSETRAP,
239 TRIGGER_TRAP,
240 TRIGGER_LIFTUP,
241 TRIGGER_LIFTDOWN,
242 TRIGGER_LIFT: (PanelID: Integer;
243 NoSound: Boolean;
244 d2d_doors: Boolean);
245 TRIGGER_PRESS,
246 TRIGGER_ON,
247 TRIGGER_OFF,
248 TRIGGER_ONOFF: (tX, tY: Integer;
249 tWidth, tHeight: Word;
250 Wait: Word;
251 Count: Word;
252 MonsterID: Integer;
253 ExtRandom: Boolean);
254 TRIGGER_SECRET: ();
255 TRIGGER_TEXTURE: (ActivateOnce: Boolean;
256 AnimOnce: Boolean);
257 TRIGGER_SOUND: (SoundName: Char64;
258 Volume: Byte;
259 Pan: Byte;
260 Local: Boolean;
261 PlayCount: Byte;
262 SoundSwitch: Boolean);
263 TRIGGER_SPAWNMONSTER: (MonPos: TPoint;
264 MonType: Byte;
265 MonHealth: Integer;
266 MonDir: Byte;
267 MonActive: Boolean;
268 MonCount: Integer;
269 MonEffect: Byte;
270 MonMax: Word;
271 MonDelay: Word;
272 MonBehav: Byte);
273 TRIGGER_SPAWNITEM: (ItemPos: TPoint;
274 ItemType: Byte;
275 ItemFalls: Boolean;
276 ItemOnlyDM: Boolean;
277 ItemCount: Integer;
278 ItemEffect: Byte;
279 ItemMax: Word;
280 ItemDelay: Word);
281 TRIGGER_MUSIC: (MusicName: Char64;
282 MusicAction: Byte);
283 TRIGGER_PUSH: (PushAngle: Word;
284 PushForce: Byte;
285 ResetVel: Boolean);
286 TRIGGER_SCORE: (ScoreAction: Byte;
287 ScoreCount: Byte;
288 ScoreTeam: Byte;
289 ScoreCon,
290 ScoreMsg: Boolean);
291 TRIGGER_MESSAGE: (MessageKind: Byte;
292 MessageSendTo: Byte;
293 MessageText: Char100;
294 MessageTime: Word);
295 TRIGGER_DAMAGE: (DamageValue: Word;
296 DamageInterval: Word;
297 DamageKind: Byte);
298 TRIGGER_HEALTH: (HealValue: Word;
299 HealInterval: Word;
300 HealMax: Boolean;
301 HealSilent: Boolean);
302 TRIGGER_SHOT: (ShotPos: TPoint;
303 ShotType: Byte;
304 ShotTarget: Byte;
305 ShotSound: Boolean;
306 ShotAim: Byte;
307 ShotPanelID: Integer;
308 ShotIntSight: Word;
309 ShotAngle: Word;
310 ShotWait: Word;
311 ShotAccuracy: Word;
312 ShotAmmo: Word;
313 ShotIntReload: Word);
314 TRIGGER_EFFECT: (FXCount: Byte;
315 FXType: Byte;
316 FXSubType: Byte;
317 FXColorR: Byte;
318 FXColorG: Byte;
319 FXColorB: Byte;
320 FXPos: Byte;
321 FXWait: Word;
322 FXVelX: ShortInt;
323 FXVelY: ShortInt;
324 FXSpreadL: Byte;
325 FXSpreadR: Byte;
326 FXSpreadU: Byte;
327 FXSpreadD: Byte);
328 end;
330 implementation
332 end.