DEADSOFTWARE

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