]> icculus.org git repositories - divverent/nexuiz.git/blob - data/qcsrc/gamec/urrebot_load.c
Some cleaning and commenting
[divverent/nexuiz.git] / data / qcsrc / gamec / urrebot_load.c
1 /* --- UrreBotAdd ---\r
2 Adds an UrreBot to the server*/\r
3 \r
4 void() UrreBotAdd =\r
5 {\r
6         local entity ent;\r
7 \r
8         ent = self;\r
9         self = spawnclient();\r
10         if (!self)\r
11         {\r
12                 bprint("Can not add UrreBot, server full\n");\r
13                 cvar_set("bots", ftos(actualurrebots));\r
14                 self = ent;\r
15                 return;\r
16         }\r
17         UrreBotSetup();\r
18         self.list = bot_chain;\r
19         bot_chain = self;\r
20         self.bottype = BOTTYPE_URREBOT;\r
21         ClientConnect();\r
22         PutClientInServer();\r
23         self = ent;\r
24 \r
25         strategytoken = bot_chain;\r
26         actualurrebots = actualurrebots + 1;\r
27 };\r
28 \r
29 /* --- UrreBotRemove ---\r
30 removes an UrreBot from the server*/\r
31 \r
32 void() UrreBotRemove =\r
33 {\r
34         local entity ent, t;\r
35 \r
36         ent = findchain(classname, "player");\r
37         while (ent)\r
38         {\r
39                 if (clienttype(ent) == CLIENTTYPE_BOT)\r
40                 {\r
41                         if (ent.bottype == BOTTYPE_URREBOT)\r
42                         {\r
43                                 if (bot_chain == self)\r
44                                         bot_chain = self.list;\r
45                                 else\r
46                                 {\r
47                                         t = find(world, classname, "player");\r
48                                         while(t)\r
49                                         {\r
50                                                 if (t.list == ent)\r
51                                                         t.list = ent.list;\r
52                                                 t = find(t, classname, "player");\r
53                                         }\r
54                                 }\r
55                                 if (actualurrebots > 0)\r
56                                         actualurrebots -= 1;\r
57                                 if(cvar("g_lms") && self.frags < 1)\r
58                                         lms_dead_count -= 1;\r
59                                 dropclient(ent);\r
60                         }\r
61                 }\r
62                 ent = ent.chain;\r
63         }\r
64 };\r
65 \r
66 /* --- SpawnNavNode ---\r
67 The one to guess what this does gets free bacon from FrikaC*/\r
68 \r
69 entity(vector org, vector nnmins, vector nnmaxs) SpawnNavNode =\r
70 {\r
71         newmis = spawn();\r
72         setsize(newmis, nnmins, nnmaxs);\r
73         newmis.classname = "navnode";\r
74         setorigin(newmis, org);\r
75         return newmis;\r
76 };\r
77 \r
78 /* --- AddPlane ---\r
79 Adds a plane to the plane list of a navnode*/\r
80 \r
81 void(entity navn, vector normal, float dist) AddPlane =\r
82 {\r
83         local float f;\r
84 \r
85         newmis = spawn();\r
86         newmis.classname = "plane";\r
87         newmis.list = navn.plane_chain;\r
88         navn.plane_chain = newmis;\r
89         newmis.mangle = normal*-1;\r
90         newmis.delay = dist;\r
91         f = (navn.origin * newmis.mangle) - ((navn.origin + (newmis.delay * newmis.mangle)) * newmis.mangle);\r
92         if (f > 0)\r
93         {\r
94                 newmis.mangle = newmis.mangle*-1;\r
95                 newmis.delay = newmis.delay*-1;\r
96         }\r
97 };\r
98 \r
99 /* --- LinkNavNodes ---\r
100 Links the navnodes and gives some special attributes (like doors, teleporters)*/\r
101 \r
102 void() LinkNavNodes =\r
103 {\r
104         local entity e, t, tdest;\r
105 \r
106         navnode_chain = world;\r
107         navnodes = 0;\r
108 \r
109         e = findchain(classname, "navnode");\r
110         while (e)\r
111         {\r
112                 e.list = navnode_chain;\r
113                 navnode_chain = e;\r
114                 e.delay = navnodes;\r
115                 navnodes = navnodes + 1;\r
116                 e = e.chain;\r
117         }\r
118 \r
119         e = navnode_chain;\r
120         while (e)\r
121         {\r
122                 if (e.link0)\r
123                 {\r
124                         e.link0.think = SUB_Remove;\r
125                         e.link0.nextthink = time;\r
126                         t = navnode_chain;\r
127                         while (t)\r
128                         {\r
129                                 if (t.delay == e.link0.delay)\r
130                                         e.link0 = t;\r
131                                 t = t.list;\r
132                         }\r
133                         e.lflags0 = e.lflags0 | LF_REMOTE;\r
134                 }\r
135                 if (e.link1)\r
136                 {\r
137                         e.link1.think = SUB_Remove;\r
138                         e.link1.nextthink = time;\r
139                         t = navnode_chain;\r
140                         while (t)\r
141                         {\r
142                                 if (t.delay == e.link1.delay)\r
143                                         e.link1 = t;\r
144                                 t = t.list;\r
145                         }\r
146                         e.lflags1 = e.lflags1 | LF_REMOTE;\r
147                 }\r
148                 if (e.link2)\r
149                 {\r
150                         e.link2.think = SUB_Remove;\r
151                         e.link2.nextthink = time;\r
152                         t = navnode_chain;\r
153                         while (t)\r
154                         {\r
155                                 if (t.delay == e.link2.delay)\r
156                                         e.link2 = t;\r
157                                 t = t.list;\r
158                         }\r
159                         e.lflags2 = e.lflags2 | LF_REMOTE;\r
160                 }\r
161                 if (e.link3)\r
162                 {\r
163                         e.link3.think = SUB_Remove;\r
164                         e.link3.nextthink = time;\r
165                         t = navnode_chain;\r
166                         while (t)\r
167                         {\r
168                                 if (t.delay == e.link3.delay)\r
169                                         e.link3 = t;\r
170                                 t = t.list;\r
171                         }\r
172                         e.lflags3 = e.lflags3 | LF_REMOTE;\r
173                 }\r
174                 if (e.link4)\r
175                 {\r
176                         e.link4.think = SUB_Remove;\r
177                         e.link4.nextthink = time;\r
178                         t = navnode_chain;\r
179                         while (t)\r
180                         {\r
181                                 if (t.delay == e.link4.delay)\r
182                                         e.link4 = t;\r
183                                 t = t.list;\r
184                         }\r
185                         e.lflags4 = e.lflags4 | LF_REMOTE;\r
186                 }\r
187                 if (e.link5)\r
188                 {\r
189                         e.link5.think = SUB_Remove;\r
190                         e.link5.nextthink = time;\r
191                         t = navnode_chain;\r
192                         while (t)\r
193                         {\r
194                                 if (t.delay == e.link5.delay)\r
195                                         e.link5 = t;\r
196                                 t = t.list;\r
197                         }\r
198                         e.lflags5 = e.lflags5 | LF_REMOTE;\r
199                 }\r
200                 if (e.link6)\r
201                 {\r
202                         e.link6.think = SUB_Remove;\r
203                         e.link6.nextthink = time;\r
204                         t = navnode_chain;\r
205                         while (t)\r
206                         {\r
207                                 if (t.delay == e.link6.delay)\r
208                                         e.link6 = t;\r
209                                 t = t.list;\r
210                         }\r
211                         e.lflags6 = e.lflags6 | LF_REMOTE;\r
212                 }\r
213                 if (e.link7)\r
214                 {\r
215                         e.link7.think = SUB_Remove;\r
216                         e.link7.nextthink = time;\r
217                         t = navnode_chain;\r
218                         while (t)\r
219                         {\r
220                                 if (t.delay == e.link7.delay)\r
221                                         e.link7 = t;\r
222                                 t = t.list;\r
223                         }\r
224                         e.lflags7 = e.lflags7 | LF_REMOTE;\r
225                 }\r
226                 if (e.link8)\r
227                 {\r
228                         e.link8.think = SUB_Remove;\r
229                         e.link8.nextthink = time;\r
230                         t = navnode_chain;\r
231                         while (t)\r
232                         {\r
233                                 if (t.delay == e.link8.delay)\r
234                                         e.link8 = t;\r
235                                 t = t.list;\r
236                         }\r
237                         e.lflags8 = e.lflags8 | LF_REMOTE;\r
238                 }\r
239                 if (e.link9)\r
240                 {\r
241                         e.link9.think = SUB_Remove;\r
242                         e.link9.nextthink = time;\r
243                         t = navnode_chain;\r
244                         while (t)\r
245                         {\r
246                                 if (t.delay == e.link9.delay)\r
247                                         e.link9 = t;\r
248                                 t = t.list;\r
249                         }\r
250                         e.lflags9 = e.lflags9 | LF_REMOTE;\r
251                 }\r
252                 if (e.link10)\r
253                 {\r
254                         e.link10.think = SUB_Remove;\r
255                         e.link10.nextthink = time;\r
256                         t = navnode_chain;\r
257                         while (t)\r
258                         {\r
259                                 if (t.delay == e.link10.delay)\r
260                                         e.link10 = t;\r
261                                 t = t.list;\r
262                         }\r
263                         e.lflags10 = e.lflags10 | LF_REMOTE;\r
264                 }\r
265                 if (e.link11)\r
266                 {\r
267                         e.link11.think = SUB_Remove;\r
268                         e.link11.nextthink = time;\r
269                         t = navnode_chain;\r
270                         while (t)\r
271                         {\r
272                                 if (t.delay == e.link11.delay)\r
273                                         e.link11 = t;\r
274                                 t = t.list;\r
275                         }\r
276                         e.lflags11 = e.lflags11 | LF_REMOTE;\r
277                 }\r
278                 if (e.link12)\r
279                 {\r
280                         e.link12.think = SUB_Remove;\r
281                         e.link12.nextthink = time;\r
282                         t = navnode_chain;\r
283                         while (t)\r
284                         {\r
285                                 if (t.delay == e.link12.delay)\r
286                                         e.link12 = t;\r
287                                 t = t.list;\r
288                         }\r
289                         e.lflags12 = e.lflags12 | LF_REMOTE;\r
290                 }\r
291                 if (e.link13)\r
292                 {\r
293                         e.link13.think = SUB_Remove;\r
294                         e.link13.nextthink = time;\r
295                         t = navnode_chain;\r
296                         while (t)\r
297                         {\r
298                                 if (t.delay == e.link13.delay)\r
299                                         e.link13 = t;\r
300                                 t = t.list;\r
301                         }\r
302                         e.lflags13 = e.lflags13 | LF_REMOTE;\r
303                 }\r
304                 if (e.link14)\r
305                 {\r
306                         e.link14.think = SUB_Remove;\r
307                         e.link14.nextthink = time;\r
308                         t = navnode_chain;\r
309                         while (t)\r
310                         {\r
311                                 if (t.delay == e.link14.delay)\r
312                                         e.link14 = t;\r
313                                 t = t.list;\r
314                         }\r
315                         e.lflags14 = e.lflags14 | LF_REMOTE;\r
316                 }\r
317                 if (e.link15)\r
318                 {\r
319                         e.link15.think = SUB_Remove;\r
320                         e.link15.nextthink = time;\r
321                         t = navnode_chain;\r
322                         while (t)\r
323                         {\r
324                                 if (t.delay == e.link15.delay)\r
325                                         e.link15 = t;\r
326                                 t = t.list;\r
327                         }\r
328                         e.lflags15 = e.lflags15 | LF_REMOTE;\r
329                 }\r
330                 if (e.link16)\r
331                 {\r
332                         e.link16.think = SUB_Remove;\r
333                         e.link16.nextthink = time;\r
334                         t = navnode_chain;\r
335                         while (t)\r
336                         {\r
337                                 if (t.delay == e.link16.delay)\r
338                                         e.link16 = t;\r
339                                 t = t.list;\r
340                         }\r
341                         e.lflags16 = e.lflags16 | LF_REMOTE;\r
342                 }\r
343                 if (e.link17)\r
344                 {\r
345                         e.link17.think = SUB_Remove;\r
346                         e.link17.nextthink = time;\r
347                         t = navnode_chain;\r
348                         while (t)\r
349                         {\r
350                                 if (t.delay == e.link17.delay)\r
351                                         e.link17 = t;\r
352                                 t = t.list;\r
353                         }\r
354                         e.lflags17 = e.lflags17 | LF_REMOTE;\r
355                 }\r
356                 if (e.link18)\r
357                 {\r
358                         e.link18.think = SUB_Remove;\r
359                         e.link18.nextthink = time;\r
360                         t = navnode_chain;\r
361                         while (t)\r
362                         {\r
363                                 if (t.delay == e.link18.delay)\r
364                                         e.link18 = t;\r
365                                 t = t.list;\r
366                         }\r
367                         e.lflags18 = e.lflags18 | LF_REMOTE;\r
368                 }\r
369                 if (e.link19)\r
370                 {\r
371                         e.link19.think = SUB_Remove;\r
372                         e.link19.nextthink = time;\r
373                         t = navnode_chain;\r
374                         while (t)\r
375                         {\r
376                                 if (t.delay == e.link19.delay)\r
377                                         e.link19 = t;\r
378                                 t = t.list;\r
379                         }\r
380                         e.lflags19 = e.lflags19 | LF_REMOTE;\r
381                 }\r
382                 e = e.list;\r
383         }\r
384         e = navnode_chain;\r
385         while (e)\r
386         {\r
387                 if (!(e.sflags & S_TELEPORT))\r
388                 {\r
389                         t = navnode_chain;\r
390                         while (t)\r
391                         {\r
392                                 if (boxesoverlap(e.origin + e.mins, e.origin + e.maxs, t.origin + t.mins, t.origin + t.maxs))\r
393                                 if (t != e)\r
394                                 if (t != e.link0)\r
395                                 if (t != e.link1)\r
396                                 if (t != e.link2)\r
397                                 if (t != e.link3)\r
398                                 if (t != e.link4)\r
399                                 if (t != e.link5)\r
400                                 if (t != e.link6)\r
401                                 if (t != e.link7)\r
402                                 if (t != e.link8)\r
403                                 if (t != e.link9)\r
404                                 if (t != e.link10)\r
405                                 if (t != e.link11)\r
406                                 if (t != e.link12)\r
407                                 if (t != e.link13)\r
408                                 if (t != e.link14)\r
409                                 if (t != e.link15)\r
410                                 if (t != e.link16)\r
411                                 if (t != e.link17)\r
412                                 if (t != e.link18)\r
413                                 if (t != e.link19)\r
414                                 {\r
415                                         if (!e.link0)\r
416                                                 e.link0 = t;\r
417                                         else if (!e.link1)\r
418                                                 e.link1 = t;\r
419                                         else if (!e.link2)\r
420                                                 e.link2 = t;\r
421                                         else if (!e.link3)\r
422                                                 e.link3 = t;\r
423                                         else if (!e.link4)\r
424                                                 e.link4 = t;\r
425                                         else if (!e.link5)\r
426                                                 e.link5 = t;\r
427                                         else if (!e.link6)\r
428                                                 e.link6 = t;\r
429                                         else if (!e.link7)\r
430                                                 e.link7 = t;\r
431                                         else if (!e.link8)\r
432                                                 e.link8 = t;\r
433                                         else if (!e.link9)\r
434                                                 e.link9 = t;\r
435                                         else if (!e.link10)\r
436                                                 e.link10 = t;\r
437                                         else if (!e.link11)\r
438                                                 e.link11 = t;\r
439                                         else if (!e.link12)\r
440                                                 e.link12 = t;\r
441                                         else if (!e.link13)\r
442                                                 e.link13 = t;\r
443                                         else if (!e.link14)\r
444                                                 e.link14 = t;\r
445                                         else if (!e.link15)\r
446                                                 e.link15 = t;\r
447                                         else if (!e.link16)\r
448                                                 e.link16 = t;\r
449                                         else if (!e.link17)\r
450                                                 e.link17 = t;\r
451                                         else if (!e.link18)\r
452                                                 e.link18 = t;\r
453                                         else if (!e.link19)\r
454                                                 e.link19 = t;\r
455                                         else\r
456                                                 dprint("WARNING: Too many linking NavNodes!\n");\r
457                                 }\r
458                                 t = t.list;\r
459                         }\r
460                 }\r
461                 e = e.list;\r
462         }\r
463         e = navnode_chain;\r
464         while (e)\r
465         {\r
466                 if (e.sflags & S_TELEPORT)\r
467                 {\r
468                         t = findchain(classname, "trigger_teleport");\r
469                         while (t)\r
470                         {\r
471                                 if (boxesoverlap(t.absmin, t.absmax, e.absmin, e.absmax))\r
472                                 {\r
473                                         tdest = find(world, targetname, t.target);\r
474                                         tdest = FindCurrentNavNode(tdest.origin, '0 0 0', '0 0 0');\r
475                                         e.link0 = tdest;\r
476                                 }\r
477                                 t = t.chain;\r
478                         }\r
479                         if (!e.link0)\r
480                                 error("Expected navnode\n");\r
481                 }\r
482                 else if (e.sflags & S_DOOR)\r
483                 {\r
484                         t = findchain(classname, "door");\r
485                         while (t)\r
486                         {\r
487                                 if (boxesoverlap(t.absmin, t.absmax, e.absmin, e.absmax))\r
488                                         e.goalentity = t;\r
489                                 t = t.chain;\r
490                         }\r
491                         if (!e.goalentity)\r
492                                 error("Expected door\n");\r
493                 }\r
494                 e = e.list;\r
495         }\r
496 };\r
497 \r
498 /* --- LoadNavNodes ---\r
499 Loads the navnodes from an .nnl file (NavNodeList) for the map*/\r
500 \r
501 void() LoadNavNodes =\r
502 {\r
503         local float f, file, length;\r
504         local float pdst;\r
505         local float sfl;\r
506         local float tfl0, tfl1, tfl2, tfl3, tfl4, tfl5, tfl6, tfl7, tfl8, tfl9;\r
507         local float tfl10, tfl11, tfl12, tfl13, tfl14, tfl15, tfl16, tfl17, tfl18, tfl19;\r
508         local string s;\r
509         local float rl0, rl1, rl2, rl3, rl4, rl5, rl6, rl7, rl8, rl9;\r
510         local float rl10, rl11, rl12, rl13, rl14, rl15, rl16, rl17, rl18, rl19;\r
511         local vector pln;\r
512         local vector wborg, wbmaxs, wbmins;\r
513         local entity e, plane_storage;\r
514 \r
515         if (navnodes)\r
516         {\r
517                 dprint("NavNodes present, map needs to be reloaded to load navnode-file\n");\r
518                 return;\r
519         }\r
520 \r
521         plane_storage = spawn();\r
522 \r
523         length = strlen(world.model);\r
524         length = length - 5;\r
525         s = substring(world.model, 5, length);\r
526         s = strcat("maps/", s, ".nnl");\r
527 \r
528         file = fopen(s, FILE_READ);\r
529 \r
530         if (file >= 0)\r
531         {\r
532                 dprint("Found navnode file\n");\r
533                 s = fgets(file);\r
534                 while (s == "navnode")\r
535                 {\r
536                         f = 0;\r
537                         pdst = -1;\r
538                         pln = nullvector;\r
539                         wborg = wbmaxs = wbmins = nullvector;\r
540                         plane_storage.plane_chain = world;\r
541                         sfl = 0;\r
542                         tfl0 = tfl1 = tfl2 = tfl3 = tfl4 = tfl5 = tfl6 = tfl7 = tfl8 = tfl9 = 0;\r
543                         tfl10 = tfl11 = tfl12 = tfl13 = tfl14 = tfl15 = tfl16 = tfl17 = tfl18 = tfl19 = 0;\r
544                         rl0 = rl1 = rl2 = rl3 = rl4 = rl5 = rl6 = rl7 = rl8 = rl9 = -1;\r
545                         rl10 = rl11 = rl12 = rl13 = rl14 = rl15 = rl16 = rl17 = rl18 = rl19 = -1;\r
546                         s = fgets(file);\r
547                         wborg = stov(s);\r
548                         s = fgets(file);\r
549                         wbmins = stov(s);\r
550                         s = fgets(file);\r
551                         wbmaxs = stov(s);\r
552                         s = fgets(file);\r
553                         while (s == "plane")\r
554                         {\r
555                                 s = fgets(file);\r
556                                 pln = stov(s);\r
557                                 s = fgets(file);\r
558                                 pdst = stof(s);\r
559                                 AddPlane(plane_storage, pln*-1, pdst);\r
560                                 s = fgets(file);\r
561                         }\r
562                         while (substring(s, 0, 6) == "remote")\r
563                         {\r
564                                 length = strlen(s);\r
565                                 f = stof(substring(s, 6, length));\r
566                                 s = fgets(file);\r
567                                 if (!f)\r
568                                         rl0 = stof(s);\r
569                                 else if (f == 1)\r
570                                         rl1 = stof(s);\r
571                                 else if (f == 2)\r
572                                         rl2 = stof(s);\r
573                                 else if (f == 3)\r
574                                         rl3 = stof(s);\r
575                                 else if (f == 4)\r
576                                         rl4 = stof(s);\r
577                                 else if (f == 5)\r
578                                         rl5 = stof(s);\r
579                                 else if (f == 6)\r
580                                         rl6 = stof(s);\r
581                                 else if (f == 7)\r
582                                         rl7 = stof(s);\r
583                                 else if (f == 8)\r
584                                         rl8 = stof(s);\r
585                                 else if (f == 9)\r
586                                         rl9 = stof(s);\r
587                                 else if (f == 10)\r
588                                         rl10 = stof(s);\r
589                                 else if (f == 11)\r
590                                         rl11 = stof(s);\r
591                                 else if (f == 12)\r
592                                         rl12 = stof(s);\r
593                                 else if (f == 13)\r
594                                         rl13 = stof(s);\r
595                                 else if (f == 14)\r
596                                         rl14 = stof(s);\r
597                                 else if (f == 15)\r
598                                         rl15 = stof(s);\r
599                                 else if (f == 16)\r
600                                         rl16 = stof(s);\r
601                                 else if (f == 17)\r
602                                         rl17 = stof(s);\r
603                                 else if (f == 18)\r
604                                         rl18 = stof(s);\r
605                                 else if (f == 19)\r
606                                         rl19 = stof(s);\r
607                                 s = fgets(file);\r
608                         }\r
609                         if (s == "sflags")\r
610                         {\r
611                                 s = fgets(file);\r
612                                 sfl = stof(s);\r
613                                 s = fgets(file);\r
614                         }\r
615                         while (substring(s, 0, 6) == "lflags")\r
616                         {\r
617                                 length = strlen(s);\r
618                                 f = stof(substring(s, 6, length));\r
619                                 s = fgets(file);\r
620                                 if (!f)\r
621                                         tfl0 = stof(s);\r
622                                 else if (f == 1)\r
623                                         tfl1 = stof(s);\r
624                                 else if (f == 2)\r
625                                         tfl2 = stof(s);\r
626                                 else if (f == 3)\r
627                                         tfl3 = stof(s);\r
628                                 else if (f == 4)\r
629                                         tfl4 = stof(s);\r
630                                 else if (f == 5)\r
631                                         tfl5 = stof(s);\r
632                                 else if (f == 6)\r
633                                         tfl6 = stof(s);\r
634                                 else if (f == 7)\r
635                                         tfl7 = stof(s);\r
636                                 else if (f == 8)\r
637                                         tfl8 = stof(s);\r
638                                 else if (f == 9)\r
639                                         tfl9 = stof(s);\r
640                                 else if (f == 10)\r
641                                         tfl10 = stof(s);\r
642                                 else if (f == 11)\r
643                                         tfl11 = stof(s);\r
644                                 else if (f == 12)\r
645                                         tfl12 = stof(s);\r
646                                 else if (f == 13)\r
647                                         tfl13 = stof(s);\r
648                                 else if (f == 14)\r
649                                         tfl14 = stof(s);\r
650                                 else if (f == 15)\r
651                                         tfl15 = stof(s);\r
652                                 else if (f == 16)\r
653                                         tfl16 = stof(s);\r
654                                 else if (f == 17)\r
655                                         tfl17 = stof(s);\r
656                                 else if (f == 18)\r
657                                         tfl18 = stof(s);\r
658                                 else if (f == 19)\r
659                                         tfl19 = stof(s);\r
660                                 s = fgets(file);\r
661                         }\r
662                         e = SpawnNavNode(wborg, wbmins, wbmaxs);\r
663                         if (plane_storage.plane_chain)\r
664                                 e.plane_chain = plane_storage.plane_chain;\r
665                         e.sflags = sfl;\r
666                         e.lflags0 = tfl0;\r
667                         e.lflags1 = tfl1;\r
668                         e.lflags2 = tfl2;\r
669                         e.lflags3 = tfl3;\r
670                         e.lflags4 = tfl4;\r
671                         e.lflags5 = tfl5;\r
672                         e.lflags6 = tfl6;\r
673                         e.lflags7 = tfl7;\r
674                         e.lflags8 = tfl8;\r
675                         e.lflags9 = tfl9;\r
676                         e.lflags10 = tfl10;\r
677                         e.lflags11 = tfl11;\r
678                         e.lflags12 = tfl12;\r
679                         e.lflags13 = tfl13;\r
680                         e.lflags14 = tfl14;\r
681                         e.lflags15 = tfl15;\r
682                         e.lflags16 = tfl16;\r
683                         e.lflags17 = tfl17;\r
684                         e.lflags18 = tfl18;\r
685                         e.lflags19 = tfl19;\r
686                         if (rl0 > -1)\r
687                         {\r
688                                 newmis = spawn();\r
689                                 newmis.classname = "remotelinker";\r
690                                 newmis.delay = rl0;\r
691                                 e.link0 = newmis;\r
692                         }\r
693                         if (rl1 > -1)\r
694                         {\r
695                                 newmis = spawn();\r
696                                 newmis.classname = "remotelinker";\r
697                                 newmis.delay = rl1;\r
698                                 e.link1 = newmis;\r
699                         }\r
700                         if (rl2 > -1)\r
701                         {\r
702                                 newmis = spawn();\r
703                                 newmis.classname = "remotelinker";\r
704                                 newmis.delay = rl2;\r
705                                 e.link2 = newmis;\r
706                         }\r
707                         if (rl3 > -1)\r
708                         {\r
709                                 newmis = spawn();\r
710                                 newmis.classname = "remotelinker";\r
711                                 newmis.delay = rl3;\r
712                                 e.link3 = newmis;\r
713                         }\r
714                         if (rl4 > -1)\r
715                         {\r
716                                 newmis = spawn();\r
717                                 newmis.classname = "remotelinker";\r
718                                 newmis.delay = rl4;\r
719                                 e.link4 = newmis;\r
720                         }\r
721                         if (rl5 > -1)\r
722                         {\r
723                                 newmis = spawn();\r
724                                 newmis.classname = "remotelinker";\r
725                                 newmis.delay = rl5;\r
726                                 e.link5 = newmis;\r
727                         }\r
728                         if (rl6 > -1)\r
729                         {\r
730                                 newmis = spawn();\r
731                                 newmis.classname = "remotelinker";\r
732                                 newmis.delay = rl6;\r
733                                 e.link6 = newmis;\r
734                         }\r
735                         if (rl7 > -1)\r
736                         {\r
737                                 newmis = spawn();\r
738                                 newmis.classname = "remotelinker";\r
739                                 newmis.delay = rl7;\r
740                                 e.link7 = newmis;\r
741                         }\r
742                         if (rl8 > -1)\r
743                         {\r
744                                 newmis = spawn();\r
745                                 newmis.classname = "remotelinker";\r
746                                 newmis.delay = rl8;\r
747                                 e.link8 = newmis;\r
748                         }\r
749                         if (rl9 > -1)\r
750                         {\r
751                                 newmis = spawn();\r
752                                 newmis.classname = "remotelinker";\r
753                                 newmis.delay = rl9;\r
754                                 e.link9 = newmis;\r
755                         }\r
756                         if (rl10 > -1)\r
757                         {\r
758                                 newmis = spawn();\r
759                                 newmis.classname = "remotelinker";\r
760                                 newmis.delay = rl10;\r
761                                 e.link10 = newmis;\r
762                         }\r
763                         if (rl11 > -1)\r
764                         {\r
765                                 newmis = spawn();\r
766                                 newmis.classname = "remotelinker";\r
767                                 newmis.delay = rl11;\r
768                                 e.link11 = newmis;\r
769                         }\r
770                         if (rl12 > -1)\r
771                         {\r
772                                 newmis = spawn();\r
773                                 newmis.classname = "remotelinker";\r
774                                 newmis.delay = rl12;\r
775                                 e.link12 = newmis;\r
776                         }\r
777                         if (rl13 > -1)\r
778                         {\r
779                                 newmis = spawn();\r
780                                 newmis.classname = "remotelinker";\r
781                                 newmis.delay = rl13;\r
782                                 e.link13 = newmis;\r
783                         }\r
784                         if (rl14 > -1)\r
785                         {\r
786                                 newmis = spawn();\r
787                                 newmis.classname = "remotelinker";\r
788                                 newmis.delay = rl14;\r
789                                 e.link14 = newmis;\r
790                         }\r
791                         if (rl15 > -1)\r
792                         {\r
793                                 newmis = spawn();\r
794                                 newmis.classname = "remotelinker";\r
795                                 newmis.delay = rl15;\r
796                                 e.link15 = newmis;\r
797                         }\r
798                         if (rl16 > -1)\r
799                         {\r
800                                 newmis = spawn();\r
801                                 newmis.classname = "remotelinker";\r
802                                 newmis.delay = rl16;\r
803                                 e.link16 = newmis;\r
804                         }\r
805                         if (rl17 > -1)\r
806                         {\r
807                                 newmis = spawn();\r
808                                 newmis.classname = "remotelinker";\r
809                                 newmis.delay = rl17;\r
810                                 e.link17 = newmis;\r
811                         }\r
812                         if (rl18 > -1)\r
813                         {\r
814                                 newmis = spawn();\r
815                                 newmis.classname = "remotelinker";\r
816                                 newmis.delay = rl18;\r
817                                 e.link18 = newmis;\r
818                         }\r
819                         if (rl19 > -1)\r
820                         {\r
821                                 newmis = spawn();\r
822                                 newmis.classname = "remotelinker";\r
823                                 newmis.delay = rl19;\r
824                                 e.link19 = newmis;\r
825                         }\r
826                 }\r
827                 fclose(file);\r
828         }\r
829         else\r
830                 dprint("No navnode file found\n");\r
831         remove(plane_storage);\r
832         plane_storage = world;\r
833 };