home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / vmsnet / maxewr2 / part03 < prev    next >
Internet Message Format  |  1993-07-13  |  98KB

  1. Path: uunet!elroy.jpl.nasa.gov!ames!koriel!lll-winken.llnl.gov!fnnews.fnal.gov!fnnews!SNYDER
  2. From: SNYDER@d0sb10.fnal.gov
  3. Newsgroups: vmsnet.sources.games
  4. Subject: Mazewar for VMS (3/5) (repost)
  5. Date: 14 Jul 1993 06:03:35 GMT
  6. Organization: SUNY Stony Brook High Energy Physics
  7. Lines: 2383
  8. Message-ID: <SNYDER.93Jul14000335@d0sb10.fnal.gov>
  9. NNTP-Posting-Host: d0sb10.fnal.gov
  10. Xref: uunet vmsnet.sources.games:752
  11.  
  12. -+-+-+-+-+-+-+-+ START OF PART 3 -+-+-+-+-+-+-+-+
  13. Vt`6020MazeWar`6020gam
  14. XVes`6020are`6020being
  15. XXplayed,`6020and`6020prints`6020out`6020useful`6020information`6020about`6020t
  16. Vhem.
  17. XXIt's`6020useful`6020for`6020discovering`6020what`6020games`6020might`6020be
  18. V`6020interesting
  19. XV`6020to`6020connect`6020to
  20. XXon`6020a`6020distant`6020network.
  21. XX.SH`6020"SEE`6020ALSO"
  22. XXmazewar(6)
  23. X$`20call`20unpack`20MAZEFIND.6;1`20136260481`20""
  24. X$!
  25. X$`20create`20'f'
  26. XX/*`6020$Header:`6020mazefind.c,v`60201.5`602088/09/07`602011:23:42`6020kent
  27. V`6020Exp`6020$`6020*/
  28. XV
  29. XX
  30. XX/*`6020
  31. XX`6020*`6020mazefind.c`6020-`6020find`6020ongoing`6020mazewar`6020games
  32. XX`6020*`6020
  33. XX`6020*`6020Author:`6009Christopher`6020A.`6020Kent
  34. XX`6020*`6020`6009`6009Western`6020Research`6020Laboratory
  35. XX`6020*`6020`6009`6009Digital`6020Equipment`6020Corporation
  36. XX`6020*`6020Date:`6009Thu`6020Dec`6020`60204`60201986
  37. XX`6020*/
  38. XX
  39. XX/***********************************************************
  40. XXCopyright`60201986`6020by`6020Digital`6020Equipment`6020Corporation,`6020Mayn
  41. Vard,`6020Massac
  42. XVhusetts,
  43. XX
  44. XX`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020
  45. V`6020`6020`6020`6020`6020`6020`6020`6020`6020All
  46. XV`6020Rights`6020Reserved
  47. XX
  48. XXPermission`6020to`6020use,`6020copy,`6020modify,`6020and`6020distribute`6020t
  49. Vhis`6020software
  50. XV`6020and`6020its`6020
  51. XXdocumentation`6020for`6020any`6020purpose`6020and`6020without`6020fee`6020is
  52. V`6020hereby`6020gran
  53. XVted,`6020
  54. XXprovided`6020that`6020the`6020above`6020copyright`6020notice`6020appear`6020i
  55. Vn`6020all`6020copie
  56. XVs`6020and`6020that
  57. XXboth`6020that`6020copyright`6020notice`6020and`6020this`6020permission`6020no
  58. Vtice`6020appear
  59. XV`6020in`6020
  60. XXsupporting`6020documentation,`6020and`6020that`6020the`6020names`6020of`6020D
  61. Vigital`6020not
  62. XV`6020be
  63. XXused`6020in`6020advertising`6020or`6020publicity`6020pertaining`6020to`6020di
  64. Vsstribution`6020o
  65. XVf`6020the
  66. XXsoftware`6020without`6020specific,`6020written`6020prior`6020permission.`6020
  67. V`6020
  68. XX
  69. XXDIGITAL`6020DISCLAIMS`6020ALL`6020WARRANTIES`6020WITH`6020REGARD`6020TO`6020T
  70. VHIS`6020SOFTWARE,
  71. XV`6020INCLUDING
  72. XXALL`6020IMPLIED`6020WARRANTIES`6020OF`6020MERCHANTABILITY`6020AND`6020FITNESS
  73. V,`6020IN`6020NO
  74. XV`6020EVENT`6020SHALL
  75. XXDIGITAL`6020BE`6020LIABLE`6020FOR`6020ANY`6020SPECIAL,`6020INDIRECT`6020OR
  76. V`6020CONSEQUENTIAL
  77. XV`6020DAMAGES`6020OR
  78. XXANY`6020DAMAGES`6020WHATSOEVER`6020RESULTING`6020FROM`6020LOSS`6020OF`6020USE
  79. V,`6020DATA`6020OR
  80. XV`6020PROFITS,
  81. XXWHETHER`6020IN`6020AN`6020ACTION`6020OF`6020CONTRACT,`6020NEGLIGENCE`6020OR
  82. V`6020OTHER`6020TORTIO
  83. XVUS`6020ACTION,
  84. XXARISING`6020OUT`6020OF`6020OR`6020IN`6020CONNECTION`6020WITH`6020THE`6020USE
  85. V`6020OR`6020PERFORMANC
  86. XVE`6020OF`6020THIS
  87. XXSOFTWARE.
  88. XX
  89. XX******************************************************************/
  90. XX
  91. XX/*
  92. XX`6020*`6020$Log:`6009mazefind.c,v`6020$
  93. XX`6020*`6020Revision`60201.5`6020`602088/09/07`6020`602011:23:42`6020`6020kent
  94. V
  95. XX`6020*`6020
  96. XX`6020*`6020
  97. XX`6020*`6020Revision`60201.4`6020`602088/08/25`6020`602009:57:53`6020`6020kent
  98. V
  99. XX`6020*`6020
  100. XX`6020*`6020
  101. XX`6020*`6020Revision`60201.3`6020`602088/06/15`6020`602016:36:20`6020`6020kent
  102. V
  103. XX`6020*`6020
  104. XX`6020*`6020
  105. XX`6020*`6020Revision`60201.2`6020`602087/03/31`6020`602014:42:26`6020`6020kent
  106. V
  107. XX`6020*`6020Portability`6020considerations,`6020especially`6020byteswapping
  108. V`6020to/from`6020t
  109. XVhe`6020net.
  110. XX`6020*`6020
  111. XX`6020*`6020Revision`60201.1`6020`602086/12/04`6020`602017:19:31`6020`6020kent
  112. V
  113. XX`6020*`6020Initial`6020revision
  114. XX`6020*`6020
  115. XX`6020*/
  116. XX
  117. XXstatic`6020char`6020rcs_ident`605B`605D`6020=`6020"$Header:`6020mazefind.c,v
  118. V`60201.5`602088/09/0
  119. XV7`602011:23:42`6020kent`6020Exp`6020$";
  120. XX
  121. XX#include`6020<sys/types.h>
  122. XX#include`6020<sys/socket.h>
  123. XX#include`6020<sys/time.h>
  124. XX
  125. XX#include`6020<netinet/in.h>
  126. XX
  127. XX#include`6020<errno.h>
  128. XX#include`6020<netdb.h>
  129. XX#include`6020<stdio.h>
  130. XX#ifdef`6020VMS
  131. XX#include`6020<string.h>
  132. XX#else
  133. XX#include`6020<strings.h>
  134. XX#endif
  135. XX
  136. XX#include`6020"mazewar.h"
  137. XX
  138. XXstruct`6020answer`6020`607B
  139. XX`6009Sockaddr`6009source;
  140. XX`6009int`6009`6009srclen;
  141. XX`6009RatPacket`6009packet;
  142. XX`607D;
  143. XX
  144. XXBoolean`6009FoundOne`6020=`6020FALSE;
  145. XX
  146. XX/*`6020
  147. XX`6020*`6020Broadcast`6020to`6020check`6020out`6020all`6020the`6020games`6020o
  148. Vn`6020the`6020net.`6020Th
  149. XVis`6020is`6020basically
  150. XX`6020*`6020findDuke()`6020from`6020init.c.
  151. XX`6020*/
  152. XX
  153. XXmain()
  154. XX`607B
  155. XX`6009register`6020int`6009i;
  156. XX`6009int`6009`6009cnt`6020=`60200;
  157. XX`6009Sockaddr`6009rmtAddr;
  158. XX`6009struct`6009timeval`6009timeout;
  159. XX`6009RatPacket`6009*b`6020=`6020(RatPacket`6020*)`6020malloc(sizeof(RatPacket
  160. V));
  161. XX`6009struct`6020answer`6009answer;
  162. XX`6009int`6009`6009fd;
  163. XX`6009fd_set`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020fds;
  164. XX`6009int`6009`6009ret,`6020cc;
  165. XX`6009int`6009`6009mazePort;
  166. XX`6009struct`6020servent`6009*mazeService;
  167. XX`6009char`6009`6009buf`605B128`605D;
  168. XX`6009Boolean`6009`6009duke(),`6020freeSlot();
  169. XX`6009u_long`6009`6009inet_makeaddr();
  170. XX`6009Sockaddr`6009*resolveHost();
  171. XX
  172. XX`6009fd`6020=`6020socket(AF_INET,`6020SOCK_DGRAM,`60200);
  173. XX`6009if`6020(fd`6020<`60200)
  174. XX`6009`6009MFError("can't`6020get`6020socket");
  175. XX#ifdef`6009SO_BROADCAST
  176. XX#ifdef`6009BSD_43
  177. XX`6009`607B
  178. XX`6009int`6009one`6020=`60201;
  179. XX
  180. XX`6009if`6020(setsockopt(fd,`6020SOL_SOCKET,`6020SO_BROADCAST,`6020`6026one,
  181. V`6020sizeof`6020one
  182. XV)`6020<`60200)
  183. XX`6009`6009MFError("can't`6020get`6020broadcast`6020permission");
  184. XX`6009`607D
  185. XX#else`6009BSD_43
  186. XX`6009if`6020(setsockopt(fd,`6020SOL_SOCKET,`6020SO_BROADCAST,`6020NULL,`60200
  187. V)`6020<`60200)
  188. XX`6009`6009MFError("can't`6020get`6020broadcast`6020permission");
  189. XX#endif`6009BSD_43
  190. XX#endif`6009SO_BROADCAST
  191. XX
  192. XX`6009mazeService`6020=`6020getservbyname(MAZESERVICE,`6020"udp");
  193. XX`6009if`6020(mazeService`6020!=`6020(struct`6020servent`6020*)`6020NULL)
  194. XX`6009`6009mazePort`6020=`6020mazeService->s_port;
  195. XX`6009else
  196. XX`6009`6009mazePort`6020=`6020htons(MAZEPORT);
  197. XX
  198. XX`6009gethostname(buf,`6020sizeof(buf));
  199. XX`6009bcopy((char`6020*)resolveHost(buf),`6020(char`6020*)`6020`6026rmtAddr,
  200. V`6020sizeof(rmtAd
  201. XVdr));
  202. XX`6009rmtAddr.sin_addr.s_addr`6020=`6020inet_makeaddr(inet_netof(rmtAddr.sin_a
  203. Vddr),
  204. XX`6009`6009`6009`6009`6009BROAD_ADDR);`6009/*`6020from`6020Makefile`6020*/
  205. XX`6009rmtAddr.sin_port`6020=`6020mazePort;
  206. XX
  207. XX`6009setupSurvey(b);
  208. XX`6009ConvertOutgoing(b);
  209. XX`6009if`6020(sendto(fd,`6020(char`6020*)`6020b,`6020sizeof(*b),`60200,`6020
  210. V`6026rmtAddr,`6020sizeo
  211. XVf(rmtAddr))`6020<`60200)
  212. XX`6009`6009MFError("survey");
  213. XX
  214. XX`6009while`6020(1)`6020`607B
  215. XX`6009`6020`6020`6020`6020`6020`6020`6020`6020FD_ZERO`6020(`6026fds);
  216. XX`6009`6009FD_SET`6020(fd,`6020`6026fds);
  217. XX`6009`6009timeout.tv_sec`6020=`60205;
  218. XX`6009`6009timeout.tv_usec`6020=`60200;
  219. XX`6009`6009ret`6020=`6020select(FD_SETSIZE,`6020`6026fds,`6020NULL,`6020NULL,
  220. V`6020`6026timeout);
  221. XX`6009`6009if`6020(ret`6020<`60200)
  222. XX`6009`6009`6009MFError("select");
  223. XX`6009`6009if`6020(ret`6020==`60200)
  224. XX`6009`6009`6009break;
  225. XX`6009`6009answer.srclen`6020=`6020sizeof(Sockaddr);
  226. XX`6009`6009cc`6020=`6020recvfrom(fd,`6020`6026answer.packet,`6020sizeof(RatPac
  227. Vket),
  228. XX`6009`6009`60090,`6020`6026answer.source,`6020`6026answer.srclen);
  229. XX`6009`6009if`6020(cc`6020<`60200)
  230. XX`6009`6009`6009MFError("recv");
  231. XX`6009`6009ConvertIncoming(`6026answer.packet);
  232. XX`6009`6009if`6020(answer.packet.type`6020!=`6020RAT_STATUS)
  233. XX`6009`6009`6009continue;
  234. XX`6009`6009if`6020(!duke(`6026answer))`6020`607B
  235. XX`6009`6009`6009RatStatus`6009rs;
  236. XX
  237. XX`6009`6009`6009rs`6020=`6020(RatStatus)`6020`6026answer.packet.body;
  238. XX`6009`6009`6009setupSurvey(b);
  239. XX`6009`6009`6009ConvertOutgoing(b);
  240. XX`6009`6009`6009if`6020(rs->rats`605Brs->dukeRat`605D.addr.sin_port`6020==`602
  241. V0mazePort)
  242. XX`6009`6009`6009`6009continue;`6009/*`6020will`6020answer`6020himself`6020*/
  243. XX`6009`6009`6009`6009
  244. XX`6009`6009`6009if`6020(sendto(fd,`6020b,`6020sizeof(*b),`60200,
  245. XX`6009`6009`6009`6009`6020`6020`6020`6026rs->rats`605Brs->dukeRat`605D.addr,
  246. XX`6009`6009`6009`6009`6020`6020`6020sizeof(rs->rats`605Brs->dukeRat`605D.addr)
  247. V)`6020<`60200)
  248. XX`6009`6009`6009`6009MFError("resend");
  249. XX`6009`6009`6009continue;
  250. XX`6009`6009`607D`6020else
  251. XX`6009`6009`6009printAnswer(`6026answer);
  252. XX`6009`607D
  253. XX`6009if`6020(FoundOne`6020==`6020FALSE)
  254. XX`6009`6009printf("No`6020one's`6020playing`6020now`605Cn");
  255. XX`6009exit(0);
  256. XX`607D
  257. XX
  258. XXMFError(s)
  259. XXchar`6020*s;
  260. XX`607B
  261. XX`6009fprintf(stderr,`6020"mazefind:`6020%s`605Cn",`6020s);
  262. XX`6009perror("mazefind");
  263. XX`6009exit(-1);
  264. XX`607D
  265. XX
  266. XX/*`6020
  267. XX`6020*`6020Fill`6020in`6020the`6020RAT_SURVEY`6020packet.
  268. XX`6020*/
  269. XX
  270. XXsetupSurvey(b)
  271. XXRatPacket`6020*b;
  272. XX`607B
  273. XX`6009RatNew`6009ratSurvey;
  274. XX
  275. XX`6009b->type`6020=`6020RAT_SURVEY;
  276. XX`6009ratSurvey`6020=`6020(RatNew)`6020`6026b->body;
  277. XX`6009ratSurvey->pass`6020=`6020RAT_PASSWORD;
  278. XX`607D
  279. XX
  280. XX/*`6020
  281. XX`6020*`6020Check`6020if`6020this`6020guy's`6020the`6020duke`6020of`6020his
  282. V`6020game.
  283. XX`6020*/
  284. XX
  285. XXBoolean
  286. XXduke(a)
  287. XXstruct`6020answer`6009*a;
  288. XX`607B
  289. XX`6009RatStatus`6009test;
  290. XX
  291. XX`6009test`6020=`6020(RatStatus)`6020`6026a->packet.body;
  292. XX`6009return`6020!bcmp((char`6020*)`6020`6026test->rats`605Btest->dukeRat`605D
  293. V.addr.sin_addr,
  294. XV
  295. XX`6009`6009`6009(char`6020*)`6020`6026a->source.sin_addr,`6020sizeof(struct
  296. V`6020in_addr));
  297. XX`607D
  298. XX
  299. XX/*`6020
  300. XX`6020*`6020Decode`6020an`6020answer`6020packet.
  301. XX`6020*/
  302. XX
  303. XXprintAnswer(a)
  304. XXstruct`6020answer`6009*a;
  305. XX`607B
  306. XX`6009RatStatus`6009status;
  307. XX`6009RatId`6009`6009ratId;
  308. XX`6009RatInfo`6009`6009rat;
  309. XX`6009struct`6020hostent`6009*host;
  310. XX
  311. XX`6009status`6020=`6020(RatStatus)`6020`6026a->packet.body;
  312. XX`6009
  313. XX`6009if`6020(FoundOne`6020==`6020FALSE)`6020`607B
  314. XX`6009`6009FoundOne`6020=`6020TRUE;
  315. XX`6009`6009printf("Current`6020game(s):`605Cn");
  316. XX`6009`6009printf("`605Ct%-20s`605Ct%s`605Ct`605Cthost`605Cn",`6020"Name",`602
  317. V0"score");
  318. XX`6009`607D`6020else
  319. XX`6009`6009printf("`605Cn");
  320. XX`6009for(ratId`6020=`60200;`6020ratId`6020<`6020MAXRATS;`6020ratId++)`6020
  321. V`607B
  322. XX`6009`6009rat`6020=`6020(RatInfo)`6020`6026status->rats`605BratId`605D;
  323. XX`6009`6009if`6020(rat->playing`6020==`6020FALSE)
  324. XX`6009`6009`6009continue;
  325. XX
  326. XX`6009`6009if`6020(ratId`6020==`6020status->dukeRat)
  327. XX`6009`6009`6009printf("duke");
  328. XX`6009`6009printf("`605Ct");
  329. XX
  330. XX`6009`6009printf("%-20s`605Ct%d`605Ct`605Ct",`6020rat->name,`6020rat->score);
  331. V
  332. XX
  333. XX`6009`6009host`6020=`6020gethostbyaddr(`6026rat->addr.sin_addr,
  334. XX`6009`6009`6009`6009sizeof(struct`6020in_addr),`6020AF_INET);
  335. XX`6009`6009if`6020(host`6020!=`6020NULL)
  336. XX`6009`6009`6009printf("%s`605Cn",`6020host->h_name);
  337. XX`6009`6009else
  338. XX`6009`6009`6009printf("%s`605Cn",`6020inet_ntoa(rat->addr.sin_addr));
  339. XX`6009`607D
  340. XX`607D
  341. XX
  342. XX/*
  343. XX`6020*`6020Resolve`6020the`6020specified`6020host`6020name`6020into`6020an
  344. V`6020internet`6020addres
  345. XVs.`6020`6020The`6020"name"`6020may
  346. XX`6020*`6020be`6020either`6020a`6020character`6020string`6020name,`6020or`6020
  347. Van`6020address`6020in
  348. XV`6020the`6020form`6020a.b.c.d`6020where
  349. XX`6020*`6020the`6020pieces`6020are`6020octal,`6020decimal,`6020or`6020hex`6020
  350. Vnumbers.`6020`6020Retur
  351. XVns`6020a`6020pointer`6020to`6020a
  352. XX`6020*`6020sockaddr_in`6020struct`6020(note`6020this`6020structure`6020is`602
  353. V0statically`6020all
  354. XVocated`6020and`6020must
  355. XX`6020*`6020be`6020copied),`6020or`6020NULL`6020if`6020the`6020name`6020is`602
  356. V0unknown.
  357. XX`6020*/
  358. XX
  359. XXSockaddr`6020*
  360. XXresolveHost(name)
  361. XXregister`6020char`6020*name;
  362. XX`607B
  363. XX`6009register`6020struct`6020hostent`6020*fhost;
  364. XX`6009struct`6020in_addr`6020fadd;
  365. XX`6009static`6020Sockaddr`6020sa;
  366. XX
  367. XX`6009if`6020((fhost`6020=`6020gethostbyname(name))`6020!=`6020NULL)`6020`607B
  368. V
  369. XX`6009`6009sa.sin_family`6020=`6020fhost->h_addrtype;
  370. XX`6009`6009sa.sin_port`6020=`60200;
  371. XX`6009`6009bcopy(fhost->h_addr,`6020`6026sa.sin_addr,`6020fhost->h_length);
  372. XX`6009`607D`6020else`6020`607B
  373. XX`6009`6009fadd.s_addr`6020=`6020inet_addr(name);
  374. XX`6009`6009if`6020(fadd.s_addr`6020!=`6020-1)`6020`607B
  375. XX`6009`6009`6009sa.sin_family`6020=`6020AF_INET;`6009/*`6020grot`6020*/
  376. XX`6009`6009`6009sa.sin_port`6020=`60200;
  377. XX`6009`6009`6009sa.sin_addr.s_addr`6020=`6020fadd.s_addr;
  378. XX`6009`6009`607D`6020else
  379. XX`6009`6009`6009return(NULL);
  380. XX`6009`607D
  381. XX`6009return(`6026sa);
  382. XX`607D
  383. XX
  384. XX/*`6020
  385. XX`6020*`6020Convert`6020the`6020contents`6020of`6020a`6020packet`6020to`6020ne
  386. Vtwork`6020order`6020bef
  387. XVore`6020sending.
  388. XX`6020*/
  389. XX
  390. XXConvertOutgoing(p)
  391. XXRatPacket`6020*p;
  392. XX`607B
  393. XX`6009char`6009`6009buf`605B64`605D;
  394. XX`6009RatId`6009`6009ratId;
  395. XX`6009RatLocation`6009ratLoc;
  396. XX`6009RatKill`6009`6009ratKill;
  397. XX`6009RatDead`6009`6009ratDead;
  398. XX`6009RatStatus`6009ratStatus;
  399. XX`6009RatNew`6009`6009ratNew;
  400. XX`6009RatGone`6009`6009ratGone;
  401. XX`6009RatQuery`6009ratQuery;
  402. XX`6009RatAlive`6009ratAlive;
  403. XX`6009RatMove`6009`6009ratMove;
  404. XX
  405. XX`6009switch(p->type)`6020`607B
  406. XX`6009case`6020RAT_LOCATION:
  407. XX`6009`6009ratLoc`6020=`6020(RatLocation)`6020`6026p->body;
  408. XX`6009`6009ratLoc->ratId`6020=`6020htonl(ratLoc->ratId);
  409. XX`6009`6009ratLoc->xLoc`6020=`6020`6020htons(ratLoc->xLoc);
  410. XX`6009`6009ratLoc->yLoc`6020=`6020`6020htons(ratLoc->yLoc);
  411. XX`6009`6009ratLoc->dir`6020=`6020`6020`6020htons(ratLoc->dir);
  412. XX`6009`6009ratLoc->score`6020=`6020htonl(ratLoc->score);
  413. XX`6009`6009break;
  414. XX
  415. XX`6009case`6020RAT_KILL:
  416. XX`6009`6009ratKill`6020=`6020(RatKill)`6020`6026p->body;
  417. XX`6009`6009ratKill->ratId`6020=`6020htonl(ratKill->ratId);
  418. XX`6009`6009ratKill->xLoc`6020`6020=`6020htons(ratKill->xLoc);
  419. XX`6009`6009ratKill->yLoc`6020`6020=`6020htons(ratKill->yLoc);
  420. XX`6009`6009ratKill->dir`6020`6020`6020=`6020htons(ratKill->dir);
  421. XX`6009`6009break;
  422. XX
  423. XX`6009case`6020RAT_DEAD:
  424. XX`6009`6009ratDead`6020=`6020(RatDead)`6020`6026p->body;
  425. XX`6009`6009ratDead->ratId`6020=`6020htonl(ratDead->ratId);
  426. XX`6009`6009ratDead->killedBy`6020=`6020htonl(ratDead->killedBy);
  427. XX`6009`6009break;
  428. XX
  429. XX`6009case`6020RAT_STATUS:
  430. XX`6009`6009ratStatus`6020=`6020(RatStatus)`6020`6026p->body;
  431. XX`6009`6009ratStatus->dukeRat`6020=`6020htonl(ratStatus->dukeRat);
  432. XX`6009`6009for`6020(ratId`6020=`60200;`6020ratId`6020<`6020MAXRATS;`6020ratId+
  433. V+)`6020`607B
  434. XX`6009`6009`6009RatInfo`6009ratInfo;
  435. XX
  436. XX`6009`6009`6009ratInfo`6020=`6020`6026ratStatus->rats`605BratId`605D;
  437. XX`6009`6009`6009ratInfo->playing`6020=`6020htons(ratInfo->playing);
  438. XX`6009`6009`6009ratInfo->xLoc`6020=`6020htons(ratInfo->xLoc);
  439. XX`6009`6009`6009ratInfo->yLoc`6020=`6020htons(ratInfo->yLoc);
  440. XX`6009`6009`6009ratInfo->dir`6020=`6020htons(ratInfo->dir);
  441. XX`6009`6009`6009ratInfo->score`6020=`6020htonl(ratInfo->score);
  442. XX`6009`6009`6009ratInfo->addr.sin_family`6020=
  443. XX`6009`6009`6009`6009ntohs(ratInfo->addr.sin_family);
  444. XX`6009`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  445. XX`6009`6009`607D
  446. XX`6009`6009break;
  447. XX
  448. XX`6009case`6020RAT_NEW:
  449. XX`6009`6009ratNew`6020=`6020(RatNew)`6020`6026p->body;
  450. XX`6009`6009ratNew->pass`6020=`6020htons(ratNew->pass);
  451. XX`6009`6009ratNew->xLoc`6020=`6020htons(ratNew->xLoc);
  452. XX`6009`6009ratNew->yLoc`6020=`6020htons(ratNew->yLoc);
  453. XX`6009`6009ratNew->dir`6020`6020=`6020htons(ratNew->dir);
  454. XX`6009`6009ratNew->addr.sin_family`6020=
  455. XX`6009`6009`6009htons(ratNew->addr.sin_family);
  456. XX`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  457. XX`6009`6009break;
  458. XX
  459. XX`6009case`6020RAT_GOING:
  460. XX`6009`6009ratGone`6020=`6020(RatGone)`6020`6026p->body;
  461. XX`6009`6009ratGone->ratId`6020=`6020htonl(ratGone->ratId);
  462. XX`6009`6009break;
  463. XX
  464. XX`6009case`6020RAT_QUERY:
  465. XX`6009`6009ratQuery`6020=`6020(RatQuery)`6020`6026p->body;
  466. XX`6009`6009ratQuery->ratId`6020=`6020htonl(ratQuery->ratId);
  467. XX`6009`6009break;
  468. XX
  469. XX`6009case`6020RAT_ALIVE:
  470. XX`6009`6009ratAlive`6020=`6020(RatAlive)`6020`6026p->body;
  471. XX`6009`6009ratAlive->ratId`6020=`6020htonl(ratAlive->ratId);
  472. XX`6009`6009break;
  473. XX
  474. XX`6009case`6020RAT_SURVEY:
  475. XX`6009`6009ratNew`6020=`6020(RatNew)`6020`6026p->body;
  476. XX`6009`6009ratNew->pass`6020=`6020htons(ratNew->pass);
  477. XX`6009`6009ratNew->xLoc`6020=`6020htons(ratNew->xLoc);
  478. XX`6009`6009ratNew->yLoc`6020=`6020htons(ratNew->yLoc);
  479. XX`6009`6009ratNew->dir`6020`6020=`6020htons(ratNew->dir);
  480. XX`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  481. XX`6009`6009break;
  482. XX
  483. XX`6009case`6020RAT_MOVE:
  484. XX`6009`6009ratMove`6020=`6020(RatMove)`6020`6026p->body;
  485. XX`6009`6009ratMove->ratId`6020=`6020htonl(ratMove->ratId);
  486. XX`6009`6009break;
  487. XX
  488. XX`6009default:
  489. XX`6009`6009sprintf(buf,`6020"ConvertOutgoing`6020bad`6020type`6020%d`6020(%d)"
  490. V,
  491. XX`6009`6009`6009p->type,`6020htons(p->type));
  492. XX`6009`6009MFError(buf);
  493. XX`6009`607D
  494. XX`6009p->type`6020=`6020htonl(p->type);
  495. XX`607D
  496. XX
  497. XX/*`6020
  498. XX`6020*`6020Convert`6020the`6020contents`6020of`6020a`6020packet`6020to`6020ho
  499. Vst`6020order`6020after
  500. XV`6020ConvertIncoming.
  501. XX`6020*/
  502. XX
  503. XXConvertIncoming(p)
  504. XXRatPacket`6020*p;
  505. XX`607B
  506. XX`6009char`6009`6009buf`605B64`605D;
  507. XX`6009RatId`6009`6009ratId;
  508. XX`6009RatLocation`6009ratLoc;
  509. XX`6009RatKill`6009`6009ratKill;
  510. XX`6009RatDead`6009`6009ratDead;
  511. XX`6009RatStatus`6009ratStatus;
  512. XX`6009RatNew`6009`6009ratNew;
  513. XX`6009RatGone`6009`6009ratGone;
  514. XX`6009RatQuery`6009ratQuery;
  515. XX`6009RatAlive`6009ratAlive;
  516. XX`6009RatMove`6009`6009ratMove;
  517. XX
  518. XX`6009p->type`6020=`6020ntohl(p->type);
  519. XX`6009switch(p->type)`6020`607B
  520. XX`6009case`6020RAT_LOCATION:
  521. XX`6009`6009ratLoc`6020=`6020(RatLocation)`6020`6026p->body;
  522. XX`6009`6009ratLoc->ratId`6020=`6020ntohl(ratLoc->ratId);
  523. XX`6009`6009ratLoc->xLoc`6020=`6020`6020ntohs(ratLoc->xLoc);
  524. XX`6009`6009ratLoc->yLoc`6020=`6020`6020ntohs(ratLoc->yLoc);
  525. XX`6009`6009ratLoc->dir`6020=`6020`6020`6020ntohs(ratLoc->dir);
  526. XX`6009`6009ratLoc->score`6020=`6020ntohl(ratLoc->score);
  527. XX`6009`6009break;
  528. XX
  529. XX`6009case`6020RAT_KILL:
  530. XX`6009`6009ratKill`6020=`6020(RatKill)`6020`6026p->body;
  531. XX`6009`6009ratKill->ratId`6020=`6020ntohl(ratKill->ratId);
  532. XX`6009`6009ratKill->xLoc`6020`6020=`6020ntohs(ratKill->xLoc);
  533. XX`6009`6009ratKill->yLoc`6020`6020=`6020ntohs(ratKill->yLoc);
  534. XX`6009`6009ratKill->dir`6020`6020`6020=`6020ntohs(ratKill->dir);
  535. XX`6009`6009break;
  536. XX
  537. XX`6009case`6020RAT_DEAD:
  538. XX`6009`6009ratDead`6020=`6020(RatDead)`6020`6026p->body;
  539. XX`6009`6009ratDead->ratId`6020=`6020ntohl(ratDead->ratId);
  540. XX`6009`6009ratDead->killedBy`6020=`6020ntohl(ratDead->killedBy);
  541. XX`6009`6009break;
  542. XX
  543. XX`6009case`6020RAT_STATUS:
  544. XX`6009`6009ratStatus`6020=`6020(RatStatus)`6020`6026p->body;
  545. XX`6009`6009ratStatus->dukeRat`6020=`6020ntohl(ratStatus->dukeRat);
  546. XX`6009`6009for`6020(ratId`6020=`60200;`6020ratId`6020<`6020MAXRATS;`6020ratId+
  547. V+)`6020`607B
  548. XX`6009`6009`6009RatInfo`6009ratInfo;
  549. XX
  550. XX`6009`6009`6009ratInfo`6020=`6020`6026ratStatus->rats`605BratId`605D;
  551. XX`6009`6009`6009ratInfo->playing`6020=`6020ntohs(ratInfo->playing);
  552. XX`6009`6009`6009ratInfo->xLoc`6020=`6020ntohs(ratInfo->xLoc);
  553. XX`6009`6009`6009ratInfo->yLoc`6020=`6020ntohs(ratInfo->yLoc);
  554. XX`6009`6009`6009ratInfo->dir`6020=`6020ntohs(ratInfo->dir);
  555. XX`6009`6009`6009ratInfo->score`6020=`6020ntohl(ratInfo->score);
  556. XX`6009`6009`6009ratInfo->addr.sin_family`6020=
  557. XX`6009`6009`6009`6009ntohs(ratInfo->addr.sin_family);
  558. XX`6009`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  559. XX`6009`6009`607D
  560. XX`6009`6009break;
  561. XX
  562. XX`6009case`6020RAT_NEW:
  563. XX`6009`6009ratNew`6020=`6020(RatNew)`6020`6026p->body;
  564. XX`6009`6009ratNew->pass`6020=`6020ntohs(ratNew->pass);
  565. XX`6009`6009ratNew->xLoc`6020=`6020ntohs(ratNew->xLoc);
  566. XX`6009`6009ratNew->yLoc`6020=`6020ntohs(ratNew->yLoc);
  567. XX`6009`6009ratNew->dir`6020`6020=`6020ntohs(ratNew->dir);
  568. XX`6009`6009ratNew->addr.sin_family`6020=
  569. XX`6009`6009`6009ntohs(ratNew->addr.sin_family);
  570. XX`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  571. XX`6009`6009break;
  572. XX
  573. XX`6009case`6020RAT_GOING:
  574. XX`6009`6009ratGone`6020=`6020(RatGone)`6020`6026p->body;
  575. XX`6009`6009ratGone->ratId`6020=`6020ntohl(ratGone->ratId);
  576. XX`6009`6009break;
  577. XX
  578. XX`6009case`6020RAT_QUERY:
  579. XX`6009`6009ratQuery`6020=`6020(RatQuery)`6020`6026p->body;
  580. XX`6009`6009ratQuery->ratId`6020=`6020ntohl(ratQuery->ratId);
  581. XX`6009`6009break;
  582. XX
  583. XX`6009case`6020RAT_ALIVE:
  584. XX`6009`6009ratAlive`6020=`6020(RatAlive)`6020`6026p->body;
  585. XX`6009`6009ratAlive->ratId`6020=`6020ntohl(ratAlive->ratId);
  586. XX`6009`6009break;
  587. XX
  588. XX`6009case`6020RAT_SURVEY:
  589. XX`6009`6009ratNew`6020=`6020(RatNew)`6020`6026p->body;
  590. XX`6009`6009ratNew->pass`6020=`6020ntohs(ratNew->pass);
  591. XX`6009`6009ratNew->xLoc`6020=`6020ntohs(ratNew->xLoc);
  592. XX`6009`6009ratNew->yLoc`6020=`6020ntohs(ratNew->yLoc);
  593. XX`6009`6009ratNew->dir`6020`6020=`6020ntohs(ratNew->dir);
  594. XX`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  595. XX`6009`6009break;
  596. XX
  597. XX`6009case`6020RAT_MOVE:
  598. XX`6009`6009ratMove`6020=`6020(RatMove)`6020`6026p->body;
  599. XX`6009`6009ratMove->ratId`6020=`6020ntohl(ratMove->ratId);
  600. XX`6009`6009break;
  601. XX
  602. XX`6009default:
  603. XX`6009`6009sprintf(buf,`6020"ConvertIncoming`6020bad`6020type`6020%d`6020(%d)"
  604. V,
  605. XX`6009`6009`6009p->type,`6020ntohs(p->type));
  606. XX`6009`6009MFError(buf);
  607. XX`6009`607D
  608. XX`607D
  609. XX
  610. X$`20call`20unpack`20MAZEFIND.C;4`20805713132`20""
  611. X$!
  612. X$`20create`20'f'
  613. XX
  614. XX
  615. XX
  616. XXMAZEFIND(6)`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020
  617. V`6020`6020`6020`6020`6020`6020`6020`6020`6020
  618. XV`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020
  619. V`6020`6020`6020`6020`6020`6020MAZEFIND(6)
  620. XX
  621. XX
  622. XXN`6008NA`6008AM`6008ME`6008E
  623. XX`6020`6020`6020`6020`6020mazefind`6020-`6020discover`6020current`6020MazeWar
  624. V`6020games
  625. XX
  626. XXS`6008SY`6008YN`6008NT`6008TA`6008AX`6008X
  627. XX`6020`6020`6020`6020`6020/`6008/u`6008us`6008sr`6008r/`6008/g`6008ga`6008am
  628. V`6008me`6008es`6008s/`6008/m`6008ma
  629. XV`6008az`6008ze`6008ef`6008fi`6008in`6008nd`6008d
  630. XX
  631. XXD`6008DE`6008ES`6008SC`6008CR`6008RI`6008IP`6008PT`6008TI`6008IO`6008ON`6008N
  632. V
  633. XX`6020`6020`6020`6020`6020_`6008M_`6008a_`6008z_`6008e_`6008f_`6008i_`6008n_
  634. V`6008d`6020`6020broadcasts`6020`6020a
  635. XV`6020`6020query`6020`6020on`6020`6020the`6020net`6020to`6020discover`6020what
  636. V
  637. XX`6020`6020`6020`6020`6020MazeWar`6020games`6020are`6020being`6020played,`6020
  638. Vand`6020prints`6020out
  639. XV`6020useful`6020infor-
  640. XX`6020`6020`6020`6020`6020mation`6020`6020about`6020`6020them.`6020`6020It's
  641. V`6020useful`6020for`6020discove
  642. XVring`6020what`6020games
  643. XX`6020`6020`6020`6020`6020might`6020be`6020interesting`6020to`6020connect`6020
  644. Vto`6020on`6020a`6020distant
  645. XV`6020network.
  646. XX
  647. XXS`6008SE`6008EE`6008E`6020A`6008AL`6008LS`6008SO`6008O
  648. XX`6020`6020`6020`6020`6020mazewar(6)
  649. XX
  650. XX
  651. XX
  652. XX
  653. XX
  654. XX
  655. XX
  656. XX
  657. XX
  658. XX
  659. XX
  660. XX
  661. XX
  662. XX
  663. XX
  664. XX
  665. XX
  666. XX
  667. XX
  668. XX
  669. XX
  670. XX
  671. XX
  672. XX
  673. XX
  674. XX
  675. XX
  676. XX
  677. XX
  678. XX
  679. XX
  680. XX
  681. XX
  682. XX
  683. XX
  684. XX
  685. XX
  686. XX
  687. XX
  688. XX
  689. XX
  690. XX
  691. XX
  692. X+-+-+-+-+-+-+-+-`20`20END`20`20OF`20PART`203`20+-+-+-+-+-+-+-+-
  693. $ call unpack [.MAZEWAR]MAZEWAR.3;1 1143515845 ""
  694. $!
  695. $ create 'f'
  696. X-+-+-+-+-+-+-+-+`20START`20OF`20PART`204`20-+-+-+-+-+-+-+-+
  697. XX`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020
  698. V`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020
  699. XV`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020
  700. V`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020
  701. XV`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`60201
  702. XX
  703. XX
  704. X$`20call`20unpack`20MAZEFIND.DOC;1`201478691461`20""
  705. X$!
  706. X$`20create`20'f'
  707. XX`60B0`60000`6000D`6000`6060`6000`6000`6000`6000`60000205`6002`6001`6000`6000
  708. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`6000
  709. XV`6000`6000`6000`60A8`6000`6000`6001`601A`60CD`6080D`6000`6000`6000`6000`6000
  710. V`6014`6000`6000h`60DF`60FE`607Fl`600A`6000`6000
  711. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`600E`6000`6000
  712. V`6000`6000`6000`6000`6000`6003`6000`6000`6000`6000
  713. XV`6000`6000`6000`6000`6000`6000`6000`6003`6000`6000`6000`6000`6000`6000`6000
  714. V`6008MAZEFIND`6000`6000`6000`6000`6000`6000`6000
  715. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  716. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6004V1.
  717. XV0`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`60A0(`601A`60CD`6080
  718. V`60C4`6096`6000`600505-13`6000`6000`6000`6000
  719. XV`6000`6000`6000`6000`6000`6000`6010`6000`6004`6000`6001`6000`6000`6000`608A
  720. V`6000`6000`6000`6003`6000`6000`6000`6010`6000`6005
  721. XV`6000`6005`6000`6000`6000`6080`6000`6000`6000`6007`6000`6000`6000`6010`6000
  722. V`6002`6000`600A`6000`6000`6000`600A`6004`6000`6000
  723. XV`600C`6000`6000`6000`600C`6000`6014`6000`60EC`60FF?`6000`608C`6000`6000`60FD#
  724. V`6000`6011`6000`6000`6000`6000`6000!`6000`6000
  725. XV`6003`6000`6000`6000`6000`6001`6000`6000`6001`600EDECW$XTSHR_001'`60007`6000
  726. V`6000`6000`6000`6000+`6000`6000`6004`6000
  727. XV`6000`6000`6000`6003`6000`6000d`6012DECW$DWTLIBSHR_001`6020`6000`6004`6000
  728. V`6000`6000`6000`6000!`6000`6000`6003`6000
  729. XV`6000`6000`6000`6003`6000`6000`6004`600BVAXCRTL_001`601F`6000`60C3`6000`6000
  730. V`6000`6000`6000!`6000`6000`6003`6000`6000
  731. XV`6000`6000`600E`6000`6000`6001`600ALIBRTL_001`601F`6000O`6001`6000`6000`6000
  732. V`6000!`6000`6000`6003`6000`6000`6000`6000
  733. XV`600C`6080`6000`6081`600AMTHRTL_001.`6000`601F`6000`6000`6000`6000`6000!`6000
  734. V`6004`6003`6000`6000`6000`6000`600D`6000
  735. XV`6000`600C`6019DECW$TRANSPORT_COMMON_001%`6000`60A3`6002`6000`6000`6000`6000!
  736. V`6000`6000`6003`6000`6000`6000
  737. XV`6000`6004`6000`6000d`6010DECW$XLIBSHR_001`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  738. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  739. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  740. XX0`6000`6003`6000`6000`6000`6000`6000!`6000`6000`6003`6000`6000`6000`6000`6005
  741. V`6000`6000`6001`601BMULTINET_SOCKET_LIB
  742. XVRARY_001`6000`6000`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60F
  743. VF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  744. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  745. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  746. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  747. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  748. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  749. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  750. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  751. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  752. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  753. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  754. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  755. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  756. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  757. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  758. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  759. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  760. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  761. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  762. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  763. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  764. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  765. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  766. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  767. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  768. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  769. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  770. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  771. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  772. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  773. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  774. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  775. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  776. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  777. V`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  778. XV`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF`60FF
  779. V`60FF
  780. XX$Header:`6020mazefind.c,v`60201.5`602088/09/07`602011:23:42`6020kent`6020Exp
  781. V`6020$`6000`6000`6000
  782. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  783. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  784. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  785. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  786. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  787. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  788. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  789. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  790. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  791. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  792. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  793. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  794. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  795. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  796. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  797. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  798. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  799. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  800. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  801. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  802. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  803. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  804. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  805. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  806. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  807. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  808. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  809. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  810. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  811. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  812. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  813. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  814. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  815. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  816. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  817. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  818. XV`6000`6000`6000`6000`6000
  819. XX`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  820. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  821. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  822. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  823. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  824. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  825. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  826. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  827. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  828. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  829. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  830. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  831. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  832. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  833. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  834. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  835. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  836. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  837. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  838. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  839. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  840. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  841. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  842. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  843. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  844. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  845. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  846. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  847. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  848. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  849. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  850. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  851. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  852. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  853. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  854. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  855. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  856. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  857. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  858. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  859. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  860. XX`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  861. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  862. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  863. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  864. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  865. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  866. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  867. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  868. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  869. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  870. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  871. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  872. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  873. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  874. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  875. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  876. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  877. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  878. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  879. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  880. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  881. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  882. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  883. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  884. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  885. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  886. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  887. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  888. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  889. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  890. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  891. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  892. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  893. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  894. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  895. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  896. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  897. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  898. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  899. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  900. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  901. XX`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  902. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  903. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  904. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  905. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  906. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  907. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  908. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  909. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  910. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  911. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  912. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  913. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  914. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  915. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  916. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  917. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  918. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  919. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  920. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  921. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  922. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  923. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  924. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  925. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  926. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  927. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  928. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  929. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  930. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  931. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  932. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  933. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  934. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  935. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  936. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  937. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  938. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  939. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  940. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  941. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  942. XXcan't`6020get`6020socket`6000can't`6020get`6020broadcast`6020permission`6000u
  943. Vdp`6000mazewar
  944. XV`6000survey`6000select`6000recv`6000resend`6000No`6020one's`6020playing`6020n
  945. Vow`600A`6000`607C`6000
  946. XV`6016`60FF`60F0`6009`6000`6000`609E`60CE`6084`60FD`605E`60FB`6000`60EF4`6009
  947. V`6000`6000<`608F`6088`6001`607E`60FB`6001`60FF`60D4
  948. XV`6009`6000`6000`60D0PU`60D4`607E`60DD`6002`60DD`6002`60FB`6003`60FF`6020`600A
  949. V`6000`6000`60D0PT`6018`6009`609F`60CF`605B`60FF
  950. XV`60FB`6001`60CF<`6002`60D0`6001`60CD`608C`60FD`60DD`6004`609F`60CD`608C`60FD
  951. V`60DD`6020<`608F`60FF`60FF`607E`60DDT`60FB`6005
  952. XV`60FF`60F3`6009`6000`6000`60D5P`6018`6009`609F`60CFD`60FF`60FB`6001`60CF`6014
  953. V`6002`609F`60CFZ`60FF`609F`60CFZ`60FF`60FB`6002
  954. XV`60FF`60D3`6009`6000`6000`60D5P`6013`6006`60D0`60A0`6008V`6011`600F<`608FW
  955. V`6004`607E`60FB`6001`60FF`60B9`6009`6000`6000`60D0PV
  956. XV`609A`608F`6080`607E`609E`60CD`6090`60FDR`60DDR`60FB`6002`60FF`60A0`6009`6000
  957. V`6000`60DD`6010`60C3`6014`605DS`60DDS`60DDR`60FB
  958. XV`6001`60CF-`6003`60DDP`60FB`6003`60FF`6084`6009`6000`6000`60D2`6000`607E`60DD
  959. V`60AD`60F0`60FB`6001`60FFs`6009`6000`6000`60DDP
  960. XV`60FB`6002`60FFf`6009`6000`6000`60D0P`60AD`60F0`60B0V`60AD`60EE`60DDU`60FB
  961. V`6001`60CF`60C9`6001`60DDU`60FB`6001`60CF`6086`6003
  962. XV`60DD`6010`60DDS`60D4`607E<`608F`6088`6001`607E`60DDU`60DDT`60FB`6006`60FF6
  963. V`6009`6000`6000`60D5P`6018`6009`609F`60CF`60CE
  964. XV`60FE`60FB`6001`60CFs`6001`609A`608F@`607E`609F`60CD`6010`60FE`60FB`6002`60FF
  965. V`6016`6009`6000`6000`60D0TP`6018`6004`60C1T`600FP
  966. XVx`608F`60FCPP`609C`601BPR`60CA`608F`6000`6000`6000`60F8R`60D0TP`6018`6004`60C
  967. V1T`600FPx`608F`60FCPP`609C`601BPQ`60CA
  968. XV`608F`6000`6000`6000`60F8Q`60D0TP`6018`6004`60C1T`600FP`609C`601CPP`60CA`608F
  969. V`60E0`60FF`60FF`60FFPxP`6001P`60C9A`60CD
  970. XV`6010`60FEPB`60CD`6010`60FE`60D0`6005`60CD`6084`60FD`60D4`60CD`6088`60FD`609F
  971. V`60CD`6084`60FD`60D4`607E`60D4`607E`609F`60CD`6010
  972. XV`60FE<`608F`6000`6002`607E`60FB`6005`60FF`609D`6008`6000`6000`60D0PR`6018`600
  973. V9`609F`60CFC`60FE
  974. XX`60FB`6001`60CF`60E1`6000`60D5R`6012`60031`60A7`6000`60D0`6010`60CD`6060`60FE
  975. V`609F`60CD`6060`60FE`609F`60CDP`60FE`60D4`607E<
  976. XV`608F`6088`6001`607E`609F`60CDd`60FE`60DDT`60FB`6006`60FFc`6008`6000`6000`60D
  977. V5P`6018`6009`609F`60CF`6015`60FE`60FB`6001`60CF
  978. XV`60AC`6000`609F`60CDd`60FE`60FB`6001`60CF`60A7`6004`60D1`60CDd`60FE`6004`6013
  979. V`60031`6026`60FF`609F`60CDP`60FE`60FB`6001`60CF
  980. XV`60D0`6000`60B5P`6012M`609E`60CDh`60FER`60DDU`60FB`6001`60CF`60AC`6000`60DDU
  981. V`60FB`6001`60CFi`6002`60C5b0Q`60C1QRP<`60A0
  982. XV`6006P`60D1PV`6012`60031`60F2`60FE`60DD`6010`609FA`60A2`6004`60D4`607E<`608F
  983. V`6088`6001`607E`60DDU`60DDT`60FB`6006`60FF`6003
  984. XV`6008`6000`6000`60D5P`6019`60031`60D3`60FE`609F`60CF`60AB`60FD1`60C7`60FE`609
  985. VF`60CDP`60FE`60FB`6001`60CF`60E8`60001`60C0`60FE
  986. XV`60B5`60EF`6093`60F5`60FF`60FF`6012`600B`609F`60CF`6097`60FD`60FB`6001`60FF
  987. V`6096`6007`6000`6000`60D4`607E`60FB`6001`60FF`6089
  988. XV`6007`6000`6000mazefind:`6020%s`600A`6000mazefind`6000`6000`6000`60C2`6004
  989. V`605E`60DD`60AC`6004`609F`60AF`60DE`60DD
  990. XV`60FF`60CD`6007`6000`6000`60FB`6003`60FFV`6007`6000`6000`609F`60AF`60DC`60FB
  991. V`6001`60FFH`6007`6000`6000`60D2`6000`607E`60FB`6001
  992. XV`60FFF`6007`6000`6000`6000`6000`60C2`6004`605E`60D0`60AC`6004P`60D0`6009`6060
  993. V`60B0`608F`60885`60A0`6014`6004`6000`6000`6000
  994. XV`60C2`6004`605E`60D0`60AC`6004P`60C1P`6018Q`60DD`6004`609F`60A0`6004`60C5a0P
  995. V`609F@`60A1`6008`60FB`6003`60FFE`6007`6000`6000
  996. XV`60D5P`6012`6004`60D0`6001P`6004`60D4P`6004Current`6020game(s):`600A`6000scor
  997. Ve`6000Name`6000`6009%-20s`6009%
  998. XVs`6009`6009host`600A`6000`600A`6000duke`6000`6009`6000%-20s`6009%d`6009`6009
  999. V`6000%s`600A`6000<`6000`60C2`6004`605E
  1000. XV`60C1`60AC`6004`6018T`60B5`60EF`60A4`60F4`60FF`60FF`6012"`60B0`6001`60EF`609B
  1001. V`60F4`60FF`60FF`609F`60AF`609E`609E`60FF`60A2`6006
  1002. XV`6000`6000R`60FB`6001b`609F`60AF`60A3`609F`60AF`60A6`609F`60AF`60A8`60FB`6003
  1003. Vb`6011`600A`609F`60AF`60B1`60FB`6001`60FF`6086
  1004. XV`6006`6000`6000`60D4S`609E`60FF`607E`6006`6000`6000U`60C5S0P`609E@`60A4`6004R
  1005. V`60B5`60A2`6014`6013V`60D1Sd`6012`600A`609F
  1006. XV`60AF`608D`60FB`6001`60FF`6060`6006`6000`6000`609F`60AF`6088`60FB
  1007. XX`6001e`60DD`60A2`6010`609F`60A2`601C`609F`60CF`607D`60FF`60FB`6003e`60DD`6002
  1008. V`60DD`6004`609F`60A2`6004`60FB`6003`60FFk`6006
  1009. XV`6000`6000`60D5P`6013`600B`60DD`6060`609F`60CFm`60FF`60FB`6002e`6011`6017`60D
  1010. VD`60A2`6004`60FB`6001`60FFN`6006`6000`6000`60DDP
  1011. XV`609F`60CFX`60FF`60FB`6002`60FF`6019`6006`6000`6000`60F3`6007S`6098`6004`6004
  1012. V`6000`60C2`6004`605E`60D0`60AC`6004R`60DDR`60FB
  1013. XV`6001`60FF`6026`6006`6000`6000`60D5P`6013#`60B0`60A0`6008`60EF`60D6`60F3`60FF
  1014. V`60FF`60B4`60EF`60D2`60F3`60FF`60FF`60DD`60A0`600C
  1015. XV`609F`60EF`60CB`60F3`60FF`60FF`60DD`60B0`6010`60FB`6003`60FF)`6006`6000`6000
  1016. V`6011+`60DDR`60FB`6001`60FF`60F2`6005`6000`6000
  1017. XV`60D1P`608F`60FF`60FF`60FF`60FF`6013`6016`60B0`6002`60EF`60A2`60F3`60FF`60FF
  1018. V`60B4`60EF`609E`60F3`60FF`60FF`60D0P`60EF`6099`60F3
  1019. XV`60FF`60FF`6011`6003`60D4P`6004`609E`60EF`608A`60F3`60FF`60FFP`6004ConvertOut
  1020. Vgoing`6020bad`6020type`6020%d`6020(
  1021. XV%d)`6000`6000`607C`6000`609E`60AE`60BC`605E`60D0`60AC`6004U`60CFe`6001`6009
  1022. V`6017`6000_`6000`609A`6000`60BA`6000*`6001`60A1
  1023. XV`6001`60A1`6001`60A1`6001l`6001`60A1`60011`609C`6001`60C1U`6004R`60DDb`609E
  1024. V`60FFq`6005`6000`6000T`60FB`6001d`60D0Pb2`60A5
  1025. XV`600C`607E`609E`60FF`6098`6005`6000`6000S`60FB`6001c`60B0P`60A5`600C2`60A5
  1026. V`600E`607E`60FB`6001c`60B0P`60A5`600E2`60A5`6010
  1027. XV`607E`60FB`6001c`60B0P`60A5`6010`60DD`60A2`6004`60FB`6001d`60D0P`60A2`60041y
  1028. V`6001`60C1U`6004R`60DDb`60FB`6001`60FF(`6005
  1029. XV`6000`6000`60D0Pb2`60A2`6004`607E`609E`60FFS`6005`6000`6000S`60FB`6001c`60B0P
  1030. V`60A2`60042`60A5`600A`607E`60FB`6001c`60B0P
  1031. XV`60A5`600A2`60A5`600C`607E`60FB`6001c`60B0P`60A5`600C1>`6001`60C1U`6004R`60DD
  1032. Vb`609E`60FF`60EE`6004`6000`6000S`60FB`6001c
  1033. XV`60D0Pb`60DD`60A2`6004`60FB`6001c`60D0P`60A2`60041`601E`6001`60C1U`6004V`60DD
  1034. Vf`60FB`6001`60FF`60CD`6004`6000`6000`60D0Pf
  1035. XV`60D4S`609E`60FF`60FA`6004`6000`6000T`60C5S0R`609EB`60A6`6004R2`60A2`6014`607
  1036. VE`60FB`6001d`60B0P`60A2`60142`60A2`6016`607E
  1037. XV`60FB`6001d`60B0P`60A2`60162`60A2`6018`607E`60FB`6001d`60B0P`60A2`60182`60A2
  1038. V`601A`607E`60FB`6001d`60B0P`60A2`601A`60DD`60A2
  1039. XV`6010`60FB`6001`60FF`6082`6004`6000`6000`60D0P`60A2`60102b`607E`60FB`6001`60F
  1040. VF
  1041. XXp`6004`6000`6000`60B0Pb`60F3`6007S`60AC1`60AE`6000`60C1U`6004S2`60A5`6014`607
  1042. VE`609E`60FF`6094`6004`6000`6000R`60FB`6001b
  1043. XV`60B0P`60A5`60142`60A5`6016`607E`60FB`6001b`60B0P`60A5`60162`60A5`6018`607E
  1044. V`60FB`6001b`60B0P`60A5`60182`60A5`601A`607E`60FB
  1045. XV`6001b`60B0P`60A5`601A2c`607E`60FB`6001b`60B0Pc`6011l2`60A5`6014`607E`609E
  1046. V`60FFV`6004`6000`6000R`60FB`6001b`60B0P`60A5
  1047. XV`60142`60A5`6016`607E`60FB`6001b`60B0P`60A5`60162`60A5`6018`607E`60FB`6001b
  1048. V`60B0P`60A5`60182`60A5`601A`607E`60FB`6001b`60B0P
  1049. XV`60A5`601A`60117`60C1U`6004R`60DDb`60FB`6001`60FF`60E6`6003`6000`6000`60D0Pb
  1050. V`6011%`60DDe`60FB`6001`60FF`6010`6004`6000`6000
  1051. XV`60DDP`60DDe`609F`60CF`600C`60FE`609E`60AD`60BCR`60DDR`60FB`6004`60FF`6097
  1052. V`6003`6000`6000`60DDR`60FB`6001`60CF*`60FC`60DDe
  1053. XV`60FB`6001`60FF`60B3`6003`6000`6000`60D0Pe`6004ConvertIncoming`6020bad`6020ty
  1054. Vpe`6020%d`6020(%d)`6000<`6000
  1055. XV`609E`60AE`60BC`605E`60D0`60AC`6004U`60DDe`60FB`6001`60FFs`6003`6000`6000`60D
  1056. V0Pe`60CFe`6001`6009`6017`6000`605D`6000`6096
  1057. XV`6000`60B4`6000`601E`6001`6093`6001`6093`6001`6093`6001_`6001`6093`60011`608D
  1058. V`6001`60C1U`6004R`60DDb`609E`60FFI`6003`6000
  1059. XV`6000T`60FB`6001d`60D0Pb2`60A5`600C`607E`609E`60FF<`6003`6000`6000S`60FB`6001
  1060. Vc`60B0P`60A5`600C2`60A5`600E`607E`60FB`6001c
  1061. XV`60B0P`60A5`600E2`60A5`6010`607E`60FB`6001c`60B0P`60A5`6010`60DD`60A2`6004
  1062. V`60FB`6001d`60D0P`60A2`6004`6004`60C1U`6004R`60DDb
  1063. XV`60FB`6001`60FF`6002`6003`6000`6000`60D0Pb2`60A2`6004`607E`609E`60FF`60F9`600
  1064. V2`6000`6000S`60FB`6001c`60B0P`60A2`60042`60A5
  1065. XV`600A`607E`60FB`6001c`60B0P`60A5`600A2`60A5`600C`607E`60FB`6001c`60B0P`60A5
  1066. V`600C`6004`60C1U`6004R`60DDb`609E`60FF`60CA`6002
  1067. XV`6000`6000S`60FB`6001c`60D0Pb`60DD`60A2`6004`60FB`6001c`60D0P`60A2`6004`6004
  1068. V`60C1U`6004S`60DDc`60FB`6001`60FF`60AB`6002
  1069. XV`6000`6000`60D0Pc`60D4T`609E`60FF`60A4`6002`6000`6000U`60C5T0R`609EB`60A3`600
  1070. V4R2`60A2`6014`607E`60FB`6001e`60B0P`60A2
  1071. XV`60142`60A2`6016`607E`60FB`6001e`60B0P`60A2`60162`60A2`6018`607E`60FB`6001e
  1072. V`60B0P`60A2`60182`60A2`601A`607E`60FB
  1073. XX`6001e`60B0P`60A2`601A`60DD`60A2`6010`60FB`6001`60FF`6060`6002`6000`6000`60D0
  1074. VP`60A2`60102b`607E`60FB`6001e`60B0Pb`60F3`6007T
  1075. XV`60B0`6004`60C1U`6004S2`60A5`6014`607E`609E`60FFD`6002`6000`6000R`60FB`6001b
  1076. V`60B0P`60A5`60142`60A5`6016`607E`60FB`6001b
  1077. XV`60B0P`60A5`60162`60A5`6018`607E`60FB`6001b`60B0P`60A5`60182`60A5`601A`607E
  1078. V`60FB`6001b`60B0P`60A5`601A2c`607E`60FB`6001b
  1079. XV`60B0Pc`60042`60A5`6014`607E`609E`60FF`6007`6002`6000`6000R`60FB`6001b`60B0P
  1080. V`60A5`60142`60A5`6016`607E`60FB`6001b`60B0P
  1081. XV`60A5`60162`60A5`6018`607E`60FB`6001b`60B0P`60A5`60182`60A5`601A`607E`60FB
  1082. V`6001b`60B0P`60A5`601A`6004`60C1U`6004R`60DDb
  1083. XV`60FB`6001`60FF`60CC`6001`6000`6000`60D0Pb`6004`60DDe`60FB`6001`60FF`60C3`600
  1084. V1`6000`6000`60DDP`60DDe`609F`60CF`6010`60FE`609E
  1085. XV`60AD`60BCR`60DDR`60FB`6004`60FF`6086`6001`6000`6000`60DDR`60FB`6001`60CF`601
  1086. V9`60FA`6004`6000`6000`6004`6000`60C2`6004`605E
  1087. XV`609E`60EF`6015`60F6`60FF`60FFR`60D1R`608F`60F4`6008`6000`6000`601E`6014`60D5
  1088. Vb`6013`6004`60FB`6000`60B2`6000`60C0`6004R`60D1R
  1089. XV`608F`60F4`6008`6000`6000`601F`60EC`609E`60EF`60F1`60F5`60FF`60FFP`60D1P`608F
  1090. V`60F0`6008`6000`6000`6013$`609E`60EF`60E5`60F5
  1091. XV`60FF`60FFR`60D1R`608F`60F8`6008`6000`6000`601E`6014`60D5b`6013`6004`60FB`600
  1092. V0`60B2`6000`60C0`6004R`60D1R`608F`60F8`6008`6000
  1093. XV`6000`601F`60EC`6004`6004`6000`60C2`600C`605E`609E`60EF`60C7`60F5`60FF`60FFP
  1094. V`60D1P`608F`6000`6009`6000`6000`6013$`609E`60EF
  1095. XV`60BB`60F5`60FF`60FFR`60D1R`608F`6008`6009`6000`6000`601E`6014`60D5b`6013`600
  1096. V4`60FB`6000`60B2`6000`60C0`6004R`60D1R`608F`6008
  1097. XV`6009`6000`6000`601F`60EC`609E`60EF`6093`60F5`60FF`60FFR`60D1R`608F`6004`6009
  1098. V`6000`6000`601E`6014`60D5b`6013`6004`60FB`6000
  1099. XV`60B2`6000`60C0`6004R`60D1R`608F`6004`6009`6000`6000`601F`60EC`609F`60CFA`60F
  1100. VF`60FB`6001`60FF`60B2`6000`6000`6000`60D0`60AD
  1101. XV`600CP`60D0`60A0`600CP`60D0`60A0`600CP`60D0`608F`60AB`6013`6000`6000`60A0`601
  1102. V0`6004`60DDP`60FB`6001`60FF`60A4`6000`6000`6000
  1103. XV`6000`6000`60C2`6004`605E`60D5`60EFy`60EE`60FF`60FF`6012`600C`60D0`6001`60EFp
  1104. V`60EE`60FF`60FF`60FB`6000`60CFa`60FF`6004`6000
  1105. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1106. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1107. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1108. V`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1109. XX`6000`6000`6000`6000`6000`6000`6000`6000@`6000`6000`6000@`6000`6000`6000`6014
  1110. V`6003`6000`6000`60C8`6000`6000`6000`60D4`6000`6000
  1111. XV`6000`6009`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1112. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1113. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6008`6000`6000
  1114. V`6000`6003`6000`6000`6000d`6006`6000`6000D`6001`6000
  1115. XV`60004`6004`6000`6000`607C`6000`6000`6000`60CC`6001`6000`6000`6004`6001`6000
  1116. V`6000`60FC`6003`6000`6000`600A`6000`6000`6000`6014
  1117. XV`6000`6000`6000`6008`6000`6000`6000`6018`6002`6000`6000`6020`6002`6000`6000
  1118. V`60B0`6001`6000`6000`60C0`6001`6000`6000`60B0`6000
  1119. XV`6000`6000`60E8`6001`6000`6000`60A0`6000`6000`6000`6080`6001`6000`60008`6000
  1120. V`6000`6000`6060`6003`6000`6000`6090`6001`6000`6000P
  1121. XV`6000`6000`6000`60D0`6001`6000`6000`60D8`6001`6000`6000`6088`6001`6000`6000
  1122. V`6098`6001`6000`6000`60B8`6001`6000`6000h`6001`6000
  1123. XV`6000X`6000`6000`6000h`6000`6000`6000`6000`6000`6000`6000,`600A`6000`6000`600
  1124. V1`6000`6000`6000`6000`6012`6000`6000`6002`6000
  1125. XV`600D`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1126. V`6000`6000`6000@`6000`6000`6000`6000`6000`6000`6000
  1127. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1128. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1129. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1130. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1131. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`600ADE
  1132. VCW$XTSHR`6000`6000`6000`6000`6000`6000`6000
  1133. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1134. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1135. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1136. V`6000`6000`6000`6000`6000`6000`600EDECW$DWTLIBS
  1137. XVHR`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1138. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1139. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1140. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6007VAX
  1141. XVCRTL`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1142. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1143. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1144. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1145. XV`6000`6000`6000`6000`6000`6000`6000`6006LIBRTL`6000`6000`6000`6000`6000`6000
  1146. V`6000`6000`6000`6000`6000`6000`6000
  1147. XX`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1148. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1149. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1150. V`6000`6000`6000`6000`6006MTHRTL`6000`6000`6000
  1151. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1152. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1153. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1154. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1155. XV`6000`6000`6000`6000`6015DECW$TRANSPORT_COMMON`6000`6000`6000`6000`6000`6000
  1156. V`6000`6000`6000`6000`6000`6000`6000
  1157. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1158. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1159. XV`6000`6000`6000`6000`600CDECW$XLIBSHR`6000`6000`6000`6000`6000`6000`6000`6000
  1160. V`6000`6000`6000`6000`6000`6000`6000`6000
  1161. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1162. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1163. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6017MULTINET_SOCKET_LIBRAR
  1164. VY`6000`6000`6000`6000`6000`6000`6000
  1165. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6001`6000`6000`6000`6003`6000
  1166. V`6000`6000`60C4`6012`6000`6000`6000`6000`6000`6000
  1167. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1168. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1169. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1170. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1171. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1172. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1173. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1174. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1175. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1176. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1177. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1178. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1179. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1180. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1181. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1182. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1183. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1184. V`6000`6000`6000`6000`6000
  1185. XX`600F`60BC`6000`6007`6000`6000`6000`6008MAZEFINDA`609B`6010`6001=`6000`6001
  1186. V`6000`6000`6012`60D2`60BE`607E`60C4`6096`6000
  1187. XV`6019`6000`6000`6000`60A6`6001`6002)SB12:`605BSCRATCH.SNYDER.MAZEWAR`605DMAZE
  1188. VFIND.C;4`6000`600C`609B
  1189. XV`6002`6001`6000`6003`6001`6000`6000`6000`600A`60F7`6001`6015`60BE`6000`6000
  1190. V`600A`6000`6000`600Egcc2_compiled.`6006`60BF
  1191. XV`6000l`6000`6000`6000`600B`60BE`6000l`600A`6000`6000`6004main`6009`60B9`6009V
  1192. V`6000`6010l`600A`6000`6000`6002`60B9`6000`6002
  1193. XV`60B9`60EC`6004`60B9`6002`6003`6000`6004`60B9`6002`600B`60F1`6002`60B9`60F0
  1194. V`6002`60B9`60FE`6006`60BF`6000z`6002`6000`6000`600E
  1195. XV`60BE`6000`60E6`600C`6000`6000`6007MFError`6004`60B9`6002`6003`60F7`6004`60B9
  1196. V`6002`6001`60FB`6002`60B9`60E6`6002`60B9`60F7
  1197. XV`6004`60B9`6002`6006`6000`6002`60B9`60F1`6002`60B9`60FC`6004`60B9`6002`6001
  1198. V`60FA`6004`60B9`6002`6001`60F1`6002`60B9`60EE`6006
  1199. XV`60BF`6000,`6000`6000`6000`6012`60BE`6000H`600E`6000`6000`600BresolveHost`600
  1200. V2`60B9`60E8`6004`60B9`6002`6001`60E6`6004
  1201. XV`60B9`6002`6001`60FC`6006`60BF`6000`608E`6000`6000`6000`6012`60BE`6000`6012
  1202. V`600D`6000`6000`600BsetupSurvey`6002`60B9`60F9
  1203. XV`6006`60BF`6000`6014`6000`6000`6000`6016`60BE`6000`60D6`600E`6000`6000`600FCo
  1204. VnvertOutgoing`6002`60B9`60F9`6002`60B9
  1205. XV`60E6`6004`60B9`6002`6002`60F7`6002`60B9`60F1`6002`60B9`60AC`6002`60B9`60FB
  1206. V`6002`60B9`60FC`6002`60B9`60E5`6002`60B9`60FE`6002
  1207. XV`60B9`60F7`6004`60B9`6002`6001`60F9`6002`60B9`60FB`6004`60B9`6002`6001`60E4
  1208. V`6002`60B9`60FC`6002`60B9`60F7`6006`60BF`6000`6014
  1209. XV`6002`6000`6000`6016`60BE`6000`60EA`6010`6000`6000`600FConvertIncoming`6002
  1210. V`60B9`60F7`6004`60B9`6002`6001`60F6`6006
  1211. XV`60BF`6000`60E6`6001`6000`6000`600B`60BE`6000`6026`600D`6000`6000`6004duke
  1212. V`6002`60B9`60F3`6004`60B9`6002`6001`6000`6002`60B9
  1213. XV`60FB`6002`60B9`60F9`6002`60B9`60F9`6004`60B9`6002`6002`60EC`6004`60B9`6002
  1214. V`6002`60E1`6002`60B9`60FC`6002`60B9`60FD`6002`60B9
  1215. XV`6000`6006`60BF`6000r`6000`6000`6000`6012`60BE`6000`6098`600D`6000`6000`600Bp
  1216. VrintAnswer`6002`60B9`60F7`6002`60B9`60FD
  1217. XV`6002`60B9`60F8`6002`60B9`60F5`6002`60B9
  1218. XX`60F7`6004`60B9`6002`6003`60E9`6002`60B9`60FB`6002`60B9`60ED`6002`60B9`60F6
  1219. V`6002`60B9`60F6`6004`60B9`6002`6007`6000`6002`60B9
  1220. XV`60F7`6004`60B9`6002`6001`6000`6004`60B9`6002`6001`60FD`6002`60B9`60FA`6004
  1221. V`60B9`6002`6008`60FE`6002`60B9`60F7`6004`60B9`6002
  1222. XV`6001`6000`6002`60B9`60FC`6004`60B9`6002`6001`60E1`6004`60B9`6002`6007`60BA
  1223. V`6002`60B9`60FB`6004`60B9`6002`6004`6000`6004`60B9
  1224. XV`6002`6001`60FB`6002`60B9`60F8`6002`60B9`60F9`6002`60B9`60F3`6002`60B9`60F4
  1225. V`6002`60B9`60FE`6002`60B9`60F6`6002`60B9`60F7`6002
  1226. XV`60B9`60F7`6004`60B9`6002`6002`60FB`6002`60B9`60FB`6002`60B9`60F6`6004`60B9
  1227. V`6002`6001`60FA`6004`60B9`6002`6001`60F3`6004`60B9
  1228. XV`6002`6001`60F2`6002`60B9`60FC`6004`60B9`6002`6001`60F5`6002`60B9`60E9`6006
  1229. V`60B9`6015`6000`6000`6000`6000`6009`60B9`6009`60EA
  1230. XV`6000`6010C`600E`6000`6000`6002`60B9`6000`6004`60B9`6002`6011`60FC`6004`60B9
  1231. V`6002`600C`60FF`6002`60B9`60F7`6004`60B9`6002`6003
  1232. XV`6000`6002`60B9`60F3`6002`60B9`60F8`6002`60B9`60FA`6002`60B9`60ED`6002`60B9
  1233. V`60FE`6002`60B9`60F7`6002`60B9`60F7`6002`60B9`60F9
  1234. XV`6002`60B9`60FA`6002`60B9`60F9`6002`60B9`60FE`6002`60B9`60FD`6002`60B9`6000
  1235. V`6002`60B9`60F8`6004`60B9`6002`6007`60DE`6002`60B9
  1236. XV`60F6`6004`60B9`6002`600B`6000`6002`60B9`60E5`6002`60B9`6000`6002`60B9`60FC
  1237. V`6002`60B9`60F1`6002`60B9`60EE`6002`60B9`60F5`6002
  1238. XV`60B9`60F5`6002`60B9`60F6`6004`60B9`6002`6002`60FD`6002`60B9`60FC`6002`60B9
  1239. V`60F4`6002`60B9`60EE`6002`60B9`60F5`6002`60B9`60F5
  1240. XV`6004`60B9`6002`6002`60FD`6002`60B9`60FC`6002`60B9`60F1`6002`60B9`60F6`6004
  1241. V`60B9`6002`6002`60FD`6002`60B9`60FC`6002`60B9`60F4
  1242. XV`6002`60B9`60F7`6004`60B9`6002`6001`6000`6002`60B9`60F7`6002`60B9`60F5`6002
  1243. V`60B9`60F5`6002`60B9`60F5`6002`60B9`60F5`6002`60B9
  1244. XV`60F2`6004`60B9`6002`6002`60F3`6006`60B9`6015`6000`6000`6000`6000`6009`60B9
  1245. V`6009L`6001`6010`6007`6010`6000`6000`6002`60B9`6000
  1246. XV`6004`60B9`6002`600C`60FC`6004`60B9`6002`6002`60FD`6002`60B9`60FC`6002`60B9
  1247. V`60EE`6002`60B9`60F5`6002`60B9`60F5`6002`60B9`60F5
  1248. XV`6004`60B9`6002`6002`60F7`6004`60B9`6002`6012`60FE`6002`60B9`60EE`6002`60B9
  1249. V`60F5`6002`60B9`60F5`6004`60B9`6002`6001`60F5`6004
  1250. XV`60B9`6002`6002`60FE`6002`60B9`60FC`6002`60B9`60F4`6004`60B9`6002`6002`60FE
  1251. V`6004`60B9`6002`6001`60E2`6002`60B9`60F9`6002`60B9
  1252. XV`6000`6002`60B9`60F4`6004`60B9`6002`6007`60DE`6002`60B9`60F6`6004`60B9`6002
  1253. V`600B`6000`6002`60B9`60F4`6002`60B9`60E5`6002`60B9
  1254. XV`6000`6002`60B9`60FC`6002`60B9`60F1`6002`60B9`60EE`6002`60B9`60F5`6002`60B9
  1255. V`60F5`6002`60B9`60F6`6004`60B9`6002`6002`60FF`6002
  1256. XV`60B9`60FC`6002`60B9`60F4`6002`60B9`60EE`6002`60B9`60F5`6002`60B9`60F5`6004
  1257. V`60B9`6002`6002`60FF`6002`60B9`60FC`6002`60B9`60F1
  1258. XV`6002`60B9`60F6`6004`60B9`6002`6002`60FF`6002`60B9
  1259. XX`60FC`6002`60B9`60F4`6002`60B9`60F7`6004`60B9`6002`6001`6000`6002`60B9`60F7
  1260. V`6002`60B9`60F5`6002`60B9`60F5`6002`60B9`60F5`6002
  1261. XV`60B9`60F5`6002`60B9`60F2`6004`60B9`6002`6002`60F7`6006`60B9`6015`6000`6000
  1262. V`6000`6000`6009`60B9`6009`60BA`6001`6010`601D`6012
  1263. XV`6000`6000`6002`60B9`6000`6004`60B9`6002`600C`60FC`6004`60B9`6002`6002`60FF
  1264. V`6002`60B9`60FC`6002`60B9`60EE`6002`60B9`60F5`6002
  1265. XV`60B9`60F5`6002`60B9`60F5`6004`60B9`6002`6002`60F7`6004`60B9`6002`6012`60FF
  1266. V`6002`60B9`60EE`6002`60B9`60F5`6002`60B9`60F5`6004
  1267. XV`60B9`6002`6001`60F5`6004`60B9`6002`6002`60FF`6002`60B9`60FC`6002`60B9`60F4
  1268. V`6004`60B9`6002`6002`60FF`6004`60B9`6002`6001`60E2
  1269. XV`6002`60B9`60F9`6002`60B9`6000`6006`60B9`60158`6005`6000`6000`6006`60BF`6000
  1270. V`60B0`6000`6000`6000`6001`60BD`600E`60BC`6000`6007
  1271. XV`6000`6000`6000`6007L__MAINF`609B`6010`6001B`6000`6001`6000`6000`60AE`607C
  1272. V`60D6`6086h`6096`6000I`6000`6000`60008`6001
  1273. XV`6005.SB12:`605BSCRATCH.SNYDER.GNU.GCC-2_3_3`605DLIBGCC2.C;1`6000`600C`609B
  1274. V`6002`6001`6000`6003
  1275. XV`6001`6000`6000`6000`600A?`6006`6015`60BE`6000`60D0`6012`6000`6000`600Egcc2_c
  1276. Vompiled.`6006`60BF`6000`605E`6000`6000
  1277. XV`6000`6018`60BE`6000`60D0`6012`6000`6000`6011__do_global_dtors`6009`60B9`6009
  1278. V`60FF`6005`6010`60D0`6012`6000`6000`6002
  1279. XV`60B9`6000`6004`60B9`6002`6001`60FB`6004`60B9`6002`6011`60A8`6006`60BF`6000
  1280. V`605E`6000`6000`6000`6018`60BE`6000.`6013`6000`6000
  1281. XV`6011__do_global_ctors`6004`60B9`6002`6011`60FF`6002`60B9`60FB`6006`60B9`6002
  1282. V`6001`6001`6081`6000`6006`60BF`6000`6086
  1283. XV`6000`6000`6000`600D`60BE`6000`60B4`6013`6000`6000`6006__main`6004`60B9`6002
  1284. V`600D`6000`6004`60B9`6002`6001`60FB`6002`60B9
  1285. XV`6000`6004`60B9`6002`6001`60F8`6002`60B9`60F9`6004`60B9`6002`6001`60FB`6006
  1286. V`60B9`6015`601C`6000`6000`6000`6006`60BF`6000`601C
  1287. XV`6000`6000`6000`6001`60BD`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1288. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1289. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1290. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1291. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1292. V`6000`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1293. XV`6000`6000`6000`6000`6000`6000`6000`6000`6000
  1294. X$`20call`20unpack`20MAZEFIND.EXE;1`20-
  1295. X`20982558271`20"FORMAT`20FIX;SIZE`20512;CARRIAGE_CONTROL`20NONE"
  1296. X$!
  1297. X$`20create`20'f'
  1298. XX.TH`6020MAZEWAR`60206
  1299. XX.SH`6020NAME
  1300. XXMazeWar`6020`605C-`6020distributed`6020rats`6020in`6020a`6020maze
  1301. XX.SH`6020SYNTAX
  1302. XX.B`6020/usr/games/mw
  1303. XX`605B
  1304. XX.I`6020
  1305. XXwindow`6020system`6020options
  1306. XX`605D
  1307. XX.SH`6020DESCRIPTION
  1308. XXThis`6020program`6020implements`6020the`6020age-old`6020game`6020of`6020MazeW
  1309. Var.
  1310. XXMazeWar`6020first`6020appeared`6020at`6020MIT`6020in`6020the`6020early`602019
  1311. V70s,`6020using`6020IM
  1312. XVLAC`6020displays`6020and
  1313. XXthe`6020ArpaNet`6020network.
  1314. XXLegend`6020has`6020it`6020that,`6020at`6020one`6020point`6020during`6020that
  1315. V`6020period,`6020MazeW
  1316. XVar`6020was`6020banned
  1317. XXby`6020DARPA`6020from`6020the`6020ArpaNet`6020because`6020half`6020of`6020all
  1318. V`6020the`6020packets
  1319. XV`6020in`6020a`6020given
  1320. XXmonth`6020were`6020MazeWar`6020packets`6020flying`6020between`6020Stanford
  1321. V`6020and`6020MIT.
  1322. XX.PP
  1323. XXMazeWar`6020appeared`6020again`6020at`6020the`6020Xerox`6020Palo`6020Alto`602
  1324. V0Research`6020Cente
  1325. XVr`6020in`6020the`6020late
  1326. XX1970's`6020on`6020the`6020Alto,`6020the`6020first`6020personal`6020computer.
  1327. XXThis`6020version`6020has`6020subsequently`6020been`6020ported`6020to`6020many
  1328. V
  1329. XXpersonal`6020machines,`6020and`6020forms`6020the`6020basis`6020for`6020this
  1330. V`6020Unix`6020version
  1331. XV.
  1332. XX.PP
  1333. XX.I`6020Mw
  1334. XXattempts`6020to`6020be`6020as`6020faithful`6020to`6020the`6020original`6020Al
  1335. Vto`6020version`6020as
  1336. XV`6020possible.`6020
  1337. XXThe`6020shape`6020and`6020pictures`6020of`6020the`6020maze`6020are`6020as`602
  1338. V0in`6020the`6020origina
  1339. XVl,`6020and`6020there`6020are
  1340. XXno`6020embellishments`6020such`6020as`6020teleport`6020traps`6020or`6020robot
  1341. V`6020amanuenses.
  1342. XX.SH`6020PLAY
  1343. XXYou,`6020the`6020player,`6020are`6020a`6020rat`6020in`6020a`6020maze,`6020and
  1344. V`6020the`6020objective
  1345. XV`6020is`6020to`6020
  1346. XXfind`6020your`6020opponents`6020and`6020shoot`6020them`6020before`6020they
  1347. V`6020shoot`6020you.
  1348. XX.PP
  1349. XXEach`6020of`6020the`6020(up`6020to`6020eight)`6020players`6020in`6020a`6020ga
  1350. Vme`6020may`6020be`6020on
  1351. XV`6020a`6020different`6020host.`6020
  1352. XXUpon`6020startup,`6020you`6020are`6020asked`6020for`6020the`6020name`6020by
  1353. V`6020which`6020you`6020wi
  1354. XVsh`6020to`6020be`6020known`6020for
  1355. XXthe`6020duration`6020of`6020the`6020game,`6020and`6020the`6020name`6020of`602
  1356. V0the`6020`6060`6060Duke
  1357. XV`6020host''.
  1358. XXIf`6020you`6020type`6020a`6020bare`6020carriage`6020return`6020to`6020this
  1359. V`6020query,`6020
  1360. XX.I`6020mw
  1361. XXwill`6020find`6020a`6020game`6020by`6020broadcasting`6020on`6020the`6020local
  1362. V`6020network,`6020and
  1363. XV`6020join`6020any`6020game
  1364. XXit`6020finds.`6020
  1365. XXIf`6020you`6020wish`6020to`6020join`6020a`6020specific`6020game,`6020or`6020a
  1366. V`6020game`6020on`6020anot
  1367. XVher`6020network,`6020or`6020your
  1368. XXnetwork`6020doesn't`6020support`6020broadcasting,
  1369. XXtype`6020in`6020the`6020name`6020of`6020one`6020of`6020the`6020hosts`6020invo
  1370. Vlved`6020in`6020that
  1371. XV`6020game.
  1372. XXThe`6020program
  1373. XX.I`6020mazefind
  1374. XXwill`6020aid`6020you`6020in`6020finding`6020out`6020what`6020games`6020are
  1375. V`6020currently`6020being
  1376. XV`6020played.
  1377. XX.PP
  1378. XXOnce`6020in`6020a`6020game,`6020you`6020are`6020presented`6020with`6020the
  1379. V`6020game`6020window.
  1380. XXThis`6020window`6020is`6020made`6020up`6020of`6020three`6020sections.
  1381. XXThe`6020upper`6020section`6020is`6020a`6020perspective`6020view`6020of`6020yo
  1382. Vur`6020view`6020forwa
  1383. XVrd.`6020
  1384. XXBy`6020pressing
  1385. XXthe`6020left`6020or`6020right`6020mouse`6020buttons,`6020you`6020may`6020peek
  1386. V`6020to`6020the`6020lef
  1387. XVt`6020or`6020right`6020around
  1388. XXcorners.
  1389. XX.PP
  1390. XXThe`6020middle`6020section`6020of`6020the`6020window`6020is`6020a`6020top`602
  1391. V0view`6020of`6020the
  1392. XV`6020maze,`6020showing`6020your
  1393. XXcurrent`6020position`6020and`6020heading`6020in`6020the`6020maze.`6020
  1394. XXYou`6020move`6020around`6020the`6020maze`6020by`6020using`6020the`6020followi
  1395. Vng`6020keys:
  1396. XX.sp
  1397. XX.ta`6020.6i
  1398. XX.nf
  1399. XXA`6009About`6020face;`6020flip`6020end`605C-for`605C-end
  1400. XXS`6009Turn`602090`6020degrees`6020left
  1401. XXD`6009Move`6020forward`6020one`6020cell
  1402. XXF`6009Turn`602090`6020degrees`6020right
  1403. XX<space>`6009Move`6020backward`6020one`6020cell
  1404. XXQ`6009Quit
  1405. XX.fi
  1406. XX.sp
  1407. XXFor`6020left`605C-handers,`6020there`6020are`6020equivalents`6020on`6020the
  1408. V`6020numeric`6020keyp
  1409. XVad.`6020
  1410. XXOn`6020the`6020DEC`6020LK201`6020keyboard,`6020the`6020`60604',`6020`60605',
  1411. V`6020`60606',`6020`6060,',
  1412. XV`6020and`6020right`6020cursor`6020arrow
  1413. XXkeys`6020perform`6020the`6020equivalent`6020operations.
  1414. XX.PP
  1415. XXThe`6020lower`6020section`6020of`6020the`6020window`6020shows`6020the`6020nam
  1416. Ves`6020and`6020scores
  1417. XV`6020of`6020the`6020other
  1418. XXplayers`6020in`6020the`6020game.
  1419. XXWhen`6020you`6020sight`6020another`6020rat,`6020that`6020rat's`6020score`6020
  1420. Vline`6020is`6020highl
  1421. XVighted.
  1422. XXShoot`6020by`6020pressing`6020the`6020middle`6020mouse`6020button.
  1423. XXWhen`6020you`6020are`6020shot`6020at,`6020the`6020mouse`6020cursor`6020change
  1424. Vs`6020from`6020a`6020ra
  1425. XVt`6020to`6020a`6020dead`6020rat,
  1426. XXand`6020you`6020have`6020one`6020second`6020to`6020move`6020out`6020of`6020th
  1427. Ve`6020way`6020of`6020the
  1428. XV`6020shot`6020or`6020shoot`6020back
  1429. XXor`6020both.
  1430. XXA`6020shot`6020costs`6020one`6020point;`6020getting`6020hit`6020costs`6020fiv
  1431. Ve`6020points;`6020hit
  1432. XVting`6020someone
  1433. XXadds`6020ten`6020points.
  1434. XXWhen`6020you`6020are`6020hit,`6020the`6020screen`6020flashes`6020and`6020you
  1435. V`6020are`6020transport
  1436. XVed`6020to`6020another
  1437. XXsection`6020of`6020the`6020maze.
  1438. XX.PP
  1439. XXIf`6020your`6020window`6020system`6020supports`6020it,`6020when`6020you`6020i
  1440. Vconify`6020the`6020ga
  1441. XVme`6020window,`6020it
  1442. XXwill`6020let`6020you`6020know`6020when`6020someone`6020joins`6020the`6020game
  1443. V`6020or`6020shoots
  1444. XV`6020at`6020you`6020(by
  1445. XXflashing,`6020in`6020most`6020cases).
  1446. XXThis`6020way,`6020you`6020can`6020be`6020notified`6020whenever`6020someone
  1447. V`6020else`6020is`6020int
  1448. XVerested`6020in
  1449. XXwasting`6020some`6020time,`6020by`6020always`6020leaving`6020a`6020game`6020a
  1450. Vround.
  1451. XX.SH`6020"SEE`6020ALSO"
  1452. XXmazefind(6)
  1453. XX.SH`6020AUTHOR
  1454. XXChristopher`6020A.`6020Kent
  1455. X$`20call`20unpack`20MAZEWAR.6;1`2033627330`20""
  1456. X$!
  1457. X$`20create`20'f'
  1458. XX/*`6020$Header:`6020mazewar.c,v`60201.13`602088/08/25`602009:57:53`6020kent
  1459. V`6020Exp`6020$`6020*/
  1460. XV
  1461. XX
  1462. XX/*`6020
  1463. XX`6020*`6020mazewar.c`6020-`6020Rats`6020in`6020a`6020maze
  1464. XX`6020*`6020
  1465. XX`6020*`6020Author:`6009Christopher`6020A.`6020Kent
  1466. XX`6020*`6020`6009`6009Western`6020Research`6020Laboratory
  1467. XX`6020*`6020`6009`6009Digital`6020Equipment`6020Corporation
  1468. XX`6020*`6020Date:`6009Wed`6020Sep`602024`60201986
  1469. XX`6020*/
  1470. XX
  1471. XX/***********************************************************
  1472. XXCopyright`60201986`6020by`6020Digital`6020Equipment`6020Corporation,`6020Mayn
  1473. Vard,`6020Massac
  1474. XVhusetts,
  1475. XX
  1476. XX`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020`6020
  1477. V`6020`6020`6020`6020`6020`6020`6020`6020`6020All
  1478. XV`6020Rights`6020Reserved
  1479. XX
  1480. XXPermission`6020to`6020use,`6020copy,`6020modify,`6020and`6020distribute`6020t
  1481. Vhis`6020software
  1482. XV`6020and`6020its`6020
  1483. XXdocumentation`6020for`6020any`6020purpose`6020and`6020without`6020fee`6020is
  1484. V`6020hereby`6020gran
  1485. XVted,`6020
  1486. XXprovided`6020that`6020the`6020above`6020copyright`6020notice`6020appear`6020i
  1487. Vn`6020all`6020copie
  1488. XVs`6020and`6020that
  1489. XXboth`6020that`6020copyright`6020notice`6020and`6020this`6020permission`6020no
  1490. Vtice`6020appear
  1491. XV`6020in`6020
  1492. XXsupporting`6020documentation,`6020and`6020that`6020the`6020names`6020of`6020D
  1493. Vigital`6020not
  1494. XV`6020be
  1495. XXused`6020in`6020advertising`6020or`6020publicity`6020pertaining`6020to`6020di
  1496. Vsstribution`6020o
  1497. XVf`6020the
  1498. XXsoftware`6020without`6020specific,`6020written`6020prior`6020permission.`6020
  1499. V`6020
  1500. XX
  1501. XXDIGITAL`6020DISCLAIMS`6020ALL`6020WARRANTIES`6020WITH`6020REGARD`6020TO`6020T
  1502. VHIS`6020SOFTWARE,
  1503. XV`6020INCLUDING
  1504. XXALL`6020IMPLIED`6020WARRANTIES`6020OF`6020MERCHANTABILITY`6020AND`6020FITNESS
  1505. V,`6020IN`6020NO
  1506. XV`6020EVENT`6020SHALL
  1507. XXDIGITAL`6020BE`6020LIABLE`6020FOR`6020ANY`6020SPECIAL,`6020INDIRECT`6020OR
  1508. V`6020CONSEQUENTIAL
  1509. XV`6020DAMAGES`6020OR
  1510. XXANY`6020DAMAGES`6020WHATSOEVER`6020RESULTING`6020FROM`6020LOSS`6020OF`6020USE
  1511. V,`6020DATA`6020OR
  1512. XV`6020PROFITS,
  1513. XXWHETHER`6020IN`6020AN`6020ACTION`6020OF`6020CONTRACT,`6020NEGLIGENCE`6020OR
  1514. V`6020OTHER`6020TORTIO
  1515. XVUS`6020ACTION,
  1516. XXARISING`6020OUT`6020OF`6020OR`6020IN`6020CONNECTION`6020WITH`6020THE`6020USE
  1517. V`6020OR`6020PERFORMANC
  1518. XVE`6020OF`6020THIS
  1519. XXSOFTWARE.
  1520. XX
  1521. XX******************************************************************/
  1522. XX
  1523. XX/*`6020
  1524. XX`6020*`6020This`6020is`6020an`6020adaptation`6020of`6020the`6020Mazewar`6020p
  1525. Vrogram`6020built`6020at
  1526. XV`6020Xerox`6020PARC`6020in
  1527. XX`6020*`6020Mesa`6020for`6020Altos`6020by`6020Jim`6020Guyton`6020and`6020other
  1528. Vs`6020in`6020the`6020late
  1529. XV`60201970s`6020and`6020beyond.
  1530. XX`6020*`6020Unlike`6020other`6020programs`6020that`6020have`6020appeared`6020f
  1531. Vrom`6020time`6020to
  1532. XV`6020time,`6020this
  1533. XX`6020*`6020one`6020attempts`6020to`6020remain`6020faithful`6020to`6020the`602
  1534. V0original`6020spirit
  1535. XV`6020of`6020the`6020game,
  1536. XX`6020*`6020with`6020no`6020fancy`6020additions`6020(like`6020seeing`6020your
  1537. V`6020opponents`6020or
  1538. XV`6020teleport
  1539. XX`6020*`6020traps).`6020I`6020hope`6020you`6020enjoy`6020it.
  1540. XX`6020*/
  1541. XX
  1542. XX/*
  1543. XX`6020*`6020$Log:`6009mazewar.c,v`6020$
  1544. XX`6020*`6020Revision`60201.13`6020`602088/08/25`6020`602009:57:53`6020`6020ken
  1545. Vt
  1546. XX`6020*`6020Copyright.
  1547. XX`6020*`6020
  1548. XX`6020*`6020Revision`60201.12`6020`602088/02/11`6020`602018:00:39`6020`6020ken
  1549. Vt
  1550. XX`6020*`6020Changes`6020so`6020the`6020value`6020of`6020M.theSocket`6020doesn'
  1551. Vt`6020change`6020(thi
  1552. XVs`6020makes`6020the
  1553. XX`6020*`6020window`6020system`6020code`6020simpler).
  1554. XX`6020*`6020
  1555. XX`6020*`6020Revision`60201.11`6020`602088/02/11`6020`602017:52:41`6020`6020ken
  1556. Vt
  1557. XX`6020*`6020Move`6020some`6020code`6020out`6020of`6020the`6020play`6020loop
  1558. V`6020so`6020it`6020can`6020be
  1559. XV`6020called`6020by`6020an`6020"external"`6020
  1560. XX`6020*`6020play`6020loop`6020(such`6020as`6020is`6020needed`6020for`6020the
  1561. V`6020X11`6020toolkit).
  1562. XX`6020*`6020
  1563. XX`6020*`6020Revision`60201.10`6020`602087/03/31`6020`602015:47:34`6020`6020ken
  1564. Vt
  1565. XX`6020*`6020Handle`6020duplicated`6020RAT_NEW`6020packets`6020while`6020joinin
  1566. Vg`6020the`6020game.
  1567. XV`6020If`6020the`6020
  1568. XX`6020*`6020guy`6020is`6020already`6020in`6020the`6020game,`6020just`6020send
  1569. V`6020him`6020a`6020status
  1570. XV`6020packet;`6020previously,
  1571. XX`6020*`6020he'd`6020get`6020added`6020to`6020the`6020game`6020again!
  1572. XX`6020*`6020
  1573. XX`6020*`6020Revision`60201.9`6020`602087/03/31`6020`602014:37:37`6020`6020kent
  1574. V
  1575. XX`6020*`6020Portability`6020considerations,`6020especially`6020byteswapping
  1576. V`6020to/from`6020t
  1577. XVhe`6020net.
  1578. XX`6020*`6020
  1579. XX`6020*`6020Revision`60201.8`6020`602086/12/04`6020`602017:44:53`6020`6020kent
  1580. V
  1581. XX`6020*`6020Notify`6020user`6020also`6020if`6020shot;`6020make`6020sure`6020no
  1582. Vn-dukes`6020get`6020not
  1583. XVified`6020on`6020game`6020joins.
  1584. XX`6020*`6020
  1585. XX`6020*`6020Revision`60201.7`6020`602086/12/03`6020`602018:13:10`6020`6020kent
  1586. V
  1587. XX`6020*`6020Cleaned`6020up`6020the`6020shot`6020handling`6020code`6020a`6020bi
  1588. Vt.`6020Was`6020waiting
  1589. XV`6020two`6020seconds
  1590. XX`6020*`6020instead`6020of`6020one,`6020and`6020would`6020only`6020handle`6020
  1591. Vone`6020shot`6020off
  1592. XV`6020the`6020queue
  1593. XX`6020*`6020every`6020time`6020around`6020the`6020loop,`6020instead`6020of`602
  1594. V0all`6020applicable.
  1595. XX`6020*`6020
  1596. XX`6020*`6020Also`6020cleaned`6020up`6020a`6020race`6020in`6020the`6020port`602
  1597. V0moving`6020code`6020for
  1598. XV`6020when`6020the`6020mover`6020and
  1599. XX`6020*`6020the`6020quitter`6020were`6020on`6020the`6020same`6020machine.
  1600. XX`6020*`6020
  1601. XX`6020*`6020Revision`60201.6`6020`602086/12/03`6020`602013:31:10`6020`6020kent
  1602. V
  1603. XX`6020*`6020
  1604. XX`6020*`6020
  1605. XX`6020*`6020Revision`60201.5`6020`602086/12/03`6020`602010:15:03`6020`6020kent
  1606. V
  1607. XX`6020*`6020Only`6020send`6020location`6020when`6020moving,`6020not`6020every
  1608. V`6020time`6020screen
  1609. XV`6020needs`6020updating.
  1610. XX`6020*`6020
  1611. XX`6020*`6020Revision`60201.4`6020`602086/12/03`6020`602010:00:19`6020`6020kent
  1612. V
  1613. XX`6020*`6020Changes`6020to`6020allow`6020multiple`6020players`6020per`6020mach
  1614. Vine.
  1615. XX`6020*`6020
  1616. XX`6020*`6020Revision`60201.3`6020`602086/12/01`6020`602023:44:42`6020`6020kent
  1617. V
  1618. XX`6020*`6020Housecleaning`6020and`6020documentation`6020pass.
  1619. XX`6020*`6020
  1620. XX`6020*`6020Revision`60201.2`6020`602086/12/01`6020`602014:47:04`6020`6020kent
  1621. V
  1622. XX`6020*`6020Changes`6020for`6020a`6020realistic`6020implementation`6020of`6020
  1623. Vshooting.
  1624. XX`6020*`6020
  1625. XX`6020*`6020Revision`60201.1`6020`602086/11/26`6020`602016:57:53`6020`6020kent
  1626. V
  1627. XX`6020*`6020Initial`6020revision
  1628. XX`6020*`6020
  1629. XX`6020*/
  1630. XX
  1631. XX#ifndef`6009lint
  1632. XXstatic`6020char`6020rcs_ident`605B`605D`6020=`6020"$Header:`6020mazewar.c,v
  1633. V`60201.13`602088/08/2
  1634. XV5`602009:57:53`6020kent`6020Exp`6020$";
  1635. XX#endif
  1636. XX
  1637. XX#include`6020<sys/types.h>
  1638. XX#include`6020<sys/socket.h>
  1639. XX#include`6020<sys/time.h>
  1640. XX
  1641. XX#include`6020<netinet/in.h>
  1642. XX
  1643. XX#include`6020<signal.h>
  1644. XX#include`6020<stdio.h>
  1645. XX#ifdef`6020VMS
  1646. XX#include`6020<string.h>
  1647. XX#else
  1648. XX#include`6020<strings.h>
  1649. XX#endif
  1650. XX
  1651. XX#include`6020"mazewar.h"
  1652. XX
  1653. XXstatic`6020int`6009`6009i1`6020=`60200;`6009`6009/*`6020random`6020number`602
  1654. V0hackery`6020*/
  1655. XXstatic`6020int`6009`6009i2`6020=`602024;
  1656. XX
  1657. XXstatic`6020Boolean`6009`6009updateView;`6009/*`6020true`6020if`6020update`602
  1658. V0needed`6020*/
  1659. XXstatic`6020Boolean`6009`6009sendLocation;`6009/*`6020true`6020if`6020must`602
  1660. V0send`6020out`6020loc
  1661. XVation`6020*/
  1662. XX
  1663. XXstatic`6020MazeTypePtr`6009mp`6020=`6020M.maze;`6009/*`6020easy`6020access
  1664. V`6020to`6020Maze`6020*/
  1665. XX
  1666. XXstatic`6020RatHealth`6009ratHealth;`6009/*`6020keep`6020track`6020of`6020othe
  1667. Vr`6020players`6020*
  1668. XV/
  1669. XX
  1670. XXstatic`6020ratDoctor`6020();
  1671. XX
  1672. XXmain(argc,`6020argv)
  1673. XXchar`6020**argv;
  1674. XX`607B
  1675. XX`6009int`6009quit();
  1676. XX
  1677. XX`6009signal(SIGHUP,`6020quit);
  1678. XX`6009signal(SIGINT,`6020quit);
  1679. XX`6009signal(SIGTERM,`6020quit);
  1680. XX`6009MazeInit(argc,`6020argv);
  1681. XX`6009play();
  1682. XX`607D
  1683. XX
  1684. XXplay()
  1685. XX`607B
  1686. XX`6009MWEvent`6009`6009event;
  1687. XX`6009RatPacket`6009incoming;
  1688. XX`6009Boolean`6009`6009KBEventPending();
  1689. XX
  1690. XX`6009event.eventDetail`6020=`6020`6026incoming;
  1691. XX
  1692. XX`6009while`6020(1)`6020`607B
  1693. XX`6009`6009NextEvent(`6026event);
  1694. XX`6009`6009if`6020(!M.peeking)
  1695. XX`6009`6009`6009switch(event.eventType)`6020`607B
  1696. XX`6009`6009`6009case`6020EVENT_A:
  1697. XX`6009`6009`6009`6009aboutFace();
  1698. XX`6009`6009`6009`6009break;
  1699. XX
  1700. XX`6009`6009`6009case`6020EVENT_S:
  1701. XX`6009`6009`6009`6009leftTurn();
  1702. XX`6009`6009`6009`6009break;
  1703. XX
  1704. XX`6009`6009`6009case`6020EVENT_D:
  1705. XX`6009`6009`6009`6009forward();
  1706. XX`6009`6009`6009`6009break;
  1707. XX
  1708. XX`6009`6009`6009case`6020EVENT_F:
  1709. XX`6009`6009`6009`6009rightTurn();
  1710. XX`6009`6009`6009`6009break;
  1711. XX
  1712. XX`6009`6009`6009case`6020EVENT_BAR:
  1713. XX`6009`6009`6009`6009backward();
  1714. XX`6009`6009`6009`6009break;
  1715. XX
  1716. XX`6009`6009`6009case`6020EVENT_I:
  1717. XX`6009`6009`6009`6009makeInvincible(TRUE);
  1718. XX`6009`6009`6009`6009break;
  1719. XX
  1720. XX`6009`6009`6009case`6020EVENT_K:
  1721. XX`6009`6009`6009`6009makeInvincible(FALSE);
  1722. XX`6009`6009`6009`6009break;
  1723. XX
  1724. XX`6009`6009`6009case`6020EVENT_O:
  1725. XX`6009`6009`6009`6009makeOmniscient(TRUE);
  1726. XX`6009`6009`6009`6009break;
  1727. XX
  1728. XX`6009`6009`6009case`6020EVENT_L:
  1729. XX`6009`6009`6009`6009makeOmniscient(FALSE);
  1730. XX`6009`6009`6009`6009break;
  1731. XX
  1732. XX`6009`6009`6009case`6020EVENT_LEFT_D:
  1733. XX`6009`6009`6009`6009peekLeft();
  1734. XX`6009`6009`6009`6009break;
  1735. XX
  1736. XX`6009`6009`6009case`6020EVENT_MIDDLE_D:
  1737. XX`6009`6009`6009`6009shoot();
  1738. XX`6009`6009`6009`6009break;
  1739. XX
  1740. XX`6009`6009`6009case`6020EVENT_RIGHT_D:
  1741. XX`6009`6009`6009`6009peekRight();
  1742. XX`6009`6009`6009`6009break;
  1743. XX
  1744. XX`6009`6009`6009case`6020EVENT_NETWORK:
  1745. XX`6009`6009`6009`6009readRats(`6026event);
  1746. XX`6009`6009`6009`6009break;
  1747. XX
  1748. XX`6009`6009`6009case`6020EVENT_INT:
  1749. XX`6009`6009`6009`6009quit();
  1750. XX`6009`6009`6009`6009break;
  1751. XX
  1752. XX`6009`6009`6009`607D
  1753. XX`6009`6009else
  1754. XX`6009`6009`6009switch`6020(event.eventType)`6020`607B
  1755. XX`6009`6009`6009case`6020EVENT_RIGHT_U:
  1756. XX`6009`6009`6009case`6020EVENT_LEFT_U:
  1757. XX`6009`6009`6009`6009peekStop();
  1758. XX`6009`6009`6009`6009break;
  1759. XX
  1760. XX`6009`6009`6009case`6020EVENT_NETWORK:
  1761. XX`6009`6009`6009`6009readRats(`6026event);
  1762. XX`6009`6009`6009`6009break;
  1763. XX`6009`6009`6009`607D
  1764. XX`6009`6009`6009
  1765. XX`6009`6009ratDoctor();`6009`6009/*`6020clean`6020house`6020*/
  1766. XX
  1767. XX`6009`6009DoRatKillQ();
  1768. XX`6009`6009
  1769. XX`6009`6009DoViewUpdate();
  1770. XX`6009`6009
  1771. XX`6009`6009SendLocation();
  1772. XX`6009`607D
  1773. XX`607D
  1774. XX
  1775. XXstatic`6009Direction`6009_aboutFace`605BNDIRECTION`605D`6020=`607BSOUTH,`6020
  1776. VNORTH,`6020WEST,
  1777. XV`6020EAST`607D;
  1778. XXstatic`6009Direction`6009_leftTurn`605BNDIRECTION`605D`6020=`6009`607BWEST,
  1779. V`6020EAST,`6020NORTH,
  1780. XV`6020SOUTH`607D;
  1781. XXstatic`6009Direction`6009_rightTurn`605BNDIRECTION`605D`6020=`607BEAST,`6020W
  1782. VEST,`6020SOUTH,
  1783. XV`6020NORTH`607D;
  1784. XX
  1785. XXaboutFace()
  1786. XX`607B
  1787. XX`6009M.dir`6020=`6020_aboutFace`605BM.dir`605D;
  1788. XX`6009updateView`6020=`6020TRUE;
  1789. XX`6009sendLocation`6020=`6020TRUE;
  1790. XX`607D
  1791. XX
  1792. XXleftTurn()
  1793. XX`607B
  1794. XX`6009M.dir`6020=`6020_leftTurn`605BM.dir`605D;
  1795. XX`6009updateView`6020=`6020TRUE;
  1796. XX`6009sendLocation`6020=`6020TRUE;
  1797. XX`607D
  1798. XX
  1799. XXrightTurn()
  1800. XX`607B
  1801. XX`6009M.dir`6020=`6020_rightTurn`605BM.dir`605D;
  1802. XX`6009updateView`6020=`6020TRUE;
  1803. XX`6009sendLocation`6020=`6020TRUE;
  1804. XX`607D
  1805. XX
  1806. XX/*`6020remember`6020...`6020"North"`6020is`6020to`6020the`6020right`6020...
  1807. V`6020positive`6020X`6020m
  1808. XVotion`6020*/
  1809. XX
  1810. XXforward()
  1811. XX`607B
  1812. XX`6009register`6020int`6009tx`6020=`6020M.xloc;
  1813. XX`6009register`6020int`6009ty`6020=`6020M.yloc;
  1814. XX
  1815. XX`6009switch(M.dir)`6020`607B
  1816. XX`6009case`6020NORTH:`6009if`6020(!mp`605Btx+1`605D.y`605Bty`605D)`6009tx++;
  1817. V`6020break;
  1818. XX`6009case`6020SOUTH:`6009if`6020(!mp`605Btx-1`605D.y`605Bty`605D)`6009tx--;
  1819. V`6020break;
  1820. XX`6009case`6020EAST:`6009if`6020(!mp`605Btx`605D.y`605Bty+1`605D)`6009ty++;
  1821. V`6020break;
  1822. XX`6009case`6020WEST:`6009if`6020(!mp`605Btx`605D.y`605Bty-1`605D)`6009ty--;
  1823. V`6020break;
  1824. XX`6009default:
  1825. XX`6009`6009MWError("bad`6020direction`6020in`6020Forward");
  1826. XX`6009`607D
  1827. XX`6009if`6020((M.xloc`6020!=`6020tx)`6020`607C`607C`6020(M.yloc`6020!=`6020ty)
  1828. V)`6020`607B
  1829. XX`6009`6009M.xloc`6020=`6020tx;`6020M.yloc`6020=`6020ty;
  1830. XX`6009`6009updateView`6020=`6020TRUE;
  1831. XX`6009`6009sendLocation`6020=`6020TRUE;
  1832. XX`6009`607D
  1833. XX`607D
  1834. XX
  1835. XXbackward()
  1836. XX`607B
  1837. XX`6009register`6020int`6009tx`6020=`6020M.xloc;
  1838. XX`6009register`6020int`6009ty`6020=`6020M.yloc;
  1839. XX
  1840. XX`6009switch(M.dir)`6020`607B
  1841. XX`6009case`6020NORTH:`6009if`6020(!mp`605Btx-1`605D.y`605Bty`605D)`6009tx--;
  1842. V`6020break;
  1843. XX`6009case`6020SOUTH:`6009if`6020(!mp`605Btx+1`605D.y`605Bty`605D)`6009tx++;
  1844. V`6020break;
  1845. XX`6009case`6020EAST:`6009if`6020(!mp`605Btx`605D.y`605Bty-1`605D)`6009ty--;
  1846. V`6020break;
  1847. XX`6009case`6020WEST:`6009if`6020(!mp`605Btx`605D.y`605Bty+1`605D)`6009ty++;
  1848. V`6020break;
  1849. XX`6009default:
  1850. XX`6009`6009MWError("bad`6020direction`6020in`6020Backward");
  1851. XX`6009`607D
  1852. XX`6009if`6020((M.xloc`6020!=`6020tx)`6020`607C`607C`6020(M.yloc`6020!=`6020ty)
  1853. V)`6020`607B
  1854. XX`6009`6009M.xloc`6020=`6020tx;`6020M.yloc`6020=`6020ty;
  1855. XX`6009`6009updateView`6020=`6020TRUE;
  1856. XX`6009`6009sendLocation`6020=`6020TRUE;
  1857. XX`6009`607D
  1858. XX`607D
  1859. XX
  1860. XXmakeInvincible(neverDie)
  1861. XXBoolean`6020neverDie;
  1862. XX`607B
  1863. XX`6009M.invincible`6020=`6020neverDie;
  1864. XX`6009ShowPosition(M.xloc,`6020M.yloc,`6020M.invincible,`6020M.dir);
  1865. XX`607D
  1866. XX
  1867. XXmakeOmniscient(allSeeing)
  1868. XXBoolean`6020allSeeing;
  1869. XX`607B
  1870. XX`6009M.omniscient`6020=`6020allSeeing;
  1871. XX`6009ShowAllPositions();
  1872. XX`607D
  1873. XX
  1874. XXpeekLeft()
  1875. XX`607B
  1876. XX`6009M.xPeek`6020=`6020M.xloc;
  1877. XX`6009M.yPeek`6020=`6020M.yloc;
  1878. XX`6009M.dirPeek`6020=`6020M.dir;
  1879. XX
  1880. XX`6009switch(M.dir)`6020`607B
  1881. XX`6009case`6020NORTH:`6009if`6020(!mp`605BM.xloc+1`605D.y`605BM.yloc`605D)`602
  1882. V0`607B
  1883. XX`6009`6009`6009`6009M.xPeek`6020=`6020M.xloc`6020+`60201;
  1884. XX`6009`6009`6009`6009M.dirPeek`6020=`6020WEST;
  1885. XX`6009`6009`6009`607D
  1886. XX`6009`6009`6009break;
  1887. XX
  1888. XX`6009case`6020SOUTH:`6009if`6020(!mp`605BM.xloc-1`605D.y`605BM.yloc`605D)`602
  1889. V0`607B
  1890. XX`6009`6009`6009`6009M.xPeek`6020=`6020M.xloc`6020-`60201;
  1891. XX`6009`6009`6009`6009M.dirPeek`6020=`6020EAST;
  1892. XX`6009`6009`6009`607D
  1893. XX`6009`6009`6009break;
  1894. XX
  1895. XX`6009case`6020EAST:`6009if`6020(!mp`605BM.xloc`605D.y`605BM.yloc+1`605D)`6020
  1896. V`607B
  1897. XX`6009`6009`6009`6009M.yPeek`6020=`6020M.yloc`6020+`60201;
  1898. XX`6009`6009`6009`6009M.dirPeek`6020=`6020NORTH;
  1899. XX`6009`6009`6009`607D
  1900. XX`6009`6009`6009break;
  1901. XX
  1902. XX`6009case`6020WEST:`6009if`6020(!mp`605BM.xloc`605D.y`605BM.yloc-1`605D)`6020
  1903. V`607B
  1904. XX`6009`6009`6009`6009M.yPeek`6020=`6020M.yloc`6020-`60201;
  1905. XX`6009`6009`6009`6009M.dirPeek`6020=`6020SOUTH;
  1906. XX`6009`6009`6009`607D
  1907. XX`6009`6009`6009break;
  1908. XX
  1909. XX`6009default:
  1910. XX`6009`6009`6009MWError("bad`6020direction`6020in`6020PeekLeft");
  1911. XX`6009`607D
  1912. XX
  1913. XX`6009/*`6020if`6020any`6020change,`6020display`6020the`6020new`6020view`6020w
  1914. Vithout`6020moving!
  1915. XV`6020*/
  1916. XX
  1917. XX`6009if`6020((M.xPeek`6020!=`6020M.xloc)`6020`607C`607C`6020(M.yPeek`6020!=
  1918. V`6020M.yloc))`6020`607B
  1919. XX`6009`6009M.peeking`6020=`6020TRUE;
  1920. XX`6009`6009updateView`6020=`6020TRUE;
  1921. XX`6009`607D
  1922. XX`607D
  1923. XX
  1924. XXpeekRight()
  1925. XX`607B
  1926. XX`6009M.xPeek`6020=`6020M.xloc;
  1927. XX`6009M.yPeek`6020=`6020M.yloc;
  1928. XX`6009M.dirPeek`6020=`6020M.dir;
  1929. XX
  1930. XX`6009switch(M.dir)`6020`607B
  1931. XX`6009case`6020NORTH:`6009if`6020(!mp`605BM.xloc+1`605D.y`605BM.yloc`605D)`602
  1932. V0`607B
  1933. XX`6009`6009`6009`6009M.xPeek`6020=`6020M.xloc`6020+`60201;
  1934. XX`6009`6009`6009`6009M.dirPeek`6020=`6020EAST;
  1935. XX`6009`6009`6009`607D
  1936. XX`6009`6009`6009break;
  1937. XX
  1938. X+-+-+-+-+-+-+-+-`20`20END`20`20OF`20PART`204`20+-+-+-+-+-+-+-+-
  1939. $ call unpack [.MAZEWAR]MAZEWAR.4;1 872626429 ""
  1940. $!
  1941. $ create 'f'
  1942. X-+-+-+-+-+-+-+-+`20START`20OF`20PART`205`20-+-+-+-+-+-+-+-+
  1943. XX`6009case`6020SOUTH:`6009if`6020(!mp`605BM.xloc-1`605D.y`605BM.yloc`605D)`602
  1944. V0`607B
  1945. XX`6009`6009`6009`6009M.xPeek`6020=`6020M.xloc`6020-`60201;
  1946. XX`6009`6009`6009`6009M.dirPeek`6020=`6020WEST;
  1947. XX`6009`6009`6009`607D
  1948. XX`6009`6009`6009break;
  1949. XX
  1950. XX`6009case`6020EAST:`6009if`6020(!mp`605BM.xloc`605D.y`605BM.yloc+1`605D)`6020
  1951. V`607B
  1952. XX`6009`6009`6009`6009M.yPeek`6020=`6020M.yloc`6020+`60201;
  1953. XX`6009`6009`6009`6009M.dirPeek`6020=`6020SOUTH;
  1954. XX`6009`6009`6009`607D
  1955. XX`6009`6009`6009break;
  1956. XX
  1957. XX`6009case`6020WEST:`6009if`6020(!mp`605BM.xloc`605D.y`605BM.yloc-1`605D)`6020
  1958. V`607B
  1959. XX`6009`6009`6009`6009M.yPeek`6020=`6020M.yloc`6020-`60201;
  1960. XX`6009`6009`6009`6009M.dirPeek`6020=`6020NORTH;
  1961. XX`6009`6009`6009`607D
  1962. XX`6009`6009`6009break;
  1963. XX
  1964. XX`6009default:
  1965. XX`6009`6009`6009MWError("bad`6020direction`6020in`6020PeekRight");
  1966. XX`6009`607D
  1967. XX
  1968. XX`6009/*`6020if`6020any`6020change,`6020display`6020the`6020new`6020view`6020w
  1969. Vithout`6020moving!
  1970. XV`6020*/
  1971. XX
  1972. XX`6009if`6020((M.xPeek`6020!=`6020M.xloc)`6020`607C`607C`6020(M.yPeek`6020!=
  1973. V`6020M.yloc))`6020`607B
  1974. XX`6009`6009M.peeking`6020=`6020TRUE;
  1975. XX`6009`6009updateView`6020=`6020TRUE;
  1976. XX`6009`607D
  1977. XX`607D
  1978. XX
  1979. XXpeekStop()
  1980. XX`607B
  1981. XX`6009M.peeking`6020=`6020FALSE;
  1982. XX`6009updateView`6020=`6020TRUE;
  1983. XX`607D
  1984. XX
  1985. XXDoViewUpdate()
  1986. XX`607B
  1987. XX`6009if`6020(updateView)`6020`607B`6009/*`6020paint`6020the`6020screen`6020*/
  1988. V
  1989. XX`6009`6009ShowPosition(M.xloc,`6020M.yloc,`6020M.invincible,`6020M.dir);
  1990. XX`6009`6009if`6020(M.peeking)
  1991. XX`6009`6009`6009ShowView(M.xPeek,`6020M.yPeek,`6020M.dirPeek);
  1992. XX`6009`6009else
  1993. XX`6009`6009`6009ShowView(M.xloc,`6020M.yloc,`6020M.dir);
  1994. XX`6009`6009updateView`6020=`6020FALSE;
  1995. XX`6009`607D
  1996. XX`607D
  1997. XX
  1998. XXshoot()
  1999. XX`607B
  2000. XX`6009M.score--;
  2001. XX`6009M.ratcb.rats`605BM.myRatId`605D.score--;
  2002. XX`6009UpdateScoreCard(M.myRatId);
  2003. XX`6009sendKill();
  2004. XX`607D
  2005. XX
  2006. XX/*`6020
  2007. XX`6020*`6020add`6020the`6020shot`6020to`6020the`6020shot`6020queue.`6020It'll
  2008. V`6020be`6020processed
  2009. XV`6020later.
  2010. XX`6020*/
  2011. XX
  2012. XXholdBreath(ratKill)
  2013. XXRatKill`6009ratKill;
  2014. XX`607B
  2015. XX`6009RatKillQ_t`6009rkp;
  2016. XX`6009struct`6020timeval`6009now;
  2017. XX`6009
  2018. XX`6009DeadRatCursor();
  2019. XX`6009gettimeofday(`6026now,`6020NULL);
  2020. XX
  2021. XX`6009if`6020(RatKillQ`6020==`6020NULL)`6020`607B
  2022. XX`6009`6009RatKillQ`6020=`6020(RatKillQ_t)`6020malloc(sizeof(AqRatKillQ));
  2023. XX`6009`6009rkp`6020=`6020RatKillQ;
  2024. XX`6009`607D`6020else`6020`607B
  2025. XX`6009`6009for`6020(rkp`6020=`6020RatKillQ;`6020rkp->nextOne`6020!=`6020NULL;
  2026. V`6020rkp`6020=`6020rkp->
  2027. XVnextOne)
  2028. XX`6009`6009`6009;
  2029. XX`6009`6009rkp->nextOne`6020=`6020(RatKillQ_t)`6020malloc(sizeof(AqRatKillQ));
  2030. V
  2031. XX`6009`6009rkp`6020=`6020rkp->nextOne;
  2032. XX`6009`607D
  2033. XX
  2034. XX`6009bcopy((char`6020*)ratKill,`6020(char`6020*)`6026rkp->thisOne,`6020sizeof
  2035. V(AqRatKill));
  2036. XV
  2037. XX`6009rkp->nextOne`6020=`6020NULL;
  2038. XX`6009rkp->shotHits`6020=`6020now;
  2039. XX`6009rkp->shotHits.tv_sec++;
  2040. XX`607D
  2041. XX
  2042. XX/*`6020
  2043. XX`6020*`6020finally`6020see`6020if`6020the`6020shot`6020hit`6020home.
  2044. XX`6020*/
  2045. XX
  2046. XXhandleKill(tx,`6020ty,`6020td,`6020ratId)
  2047. XXLoc`6009tx,`6020ty;
  2048. XXDirection`6020td;
  2049. XXRatId`6009ratId;
  2050. XX`607B
  2051. XX`6009while`6020(!M.maze`605Btx`605D.y`605Bty`605D)`6020`607B
  2052. XX`6009`6009switch`6020(td)`6020`607B
  2053. XX`6009`6009case`6020NORTH:`6009tx++;`6020break;
  2054. XX`6009`6009case`6020SOUTH:`6009tx--;`6020break;
  2055. XX`6009`6009case`6020EAST:`6009ty++;`6020break;
  2056. XX`6009`6009case`6020WEST:`6009ty--;`6020break;
  2057. XX`6009`6009`607D
  2058. XX`6009`6009if`6020((M.xloc`6020==`6020tx)`6020`6026`6026`6020(M.yloc`6020==
  2059. V`6020ty))`6020`607B`6009/*`6020Oh
  2060. XV`6020oh...`6020*/
  2061. XX`6009`6009`6009sendDead(ratId);
  2062. XX`6009`6009`6009NewPosition();`6009/*`6020avoid`6020multiple`6020hits`6020*/
  2063. XX`6009`6009`6009FlashScreen();
  2064. XX`6009`6009`6009M.score`6020-=`60205;`6009/*`6020minus`60205`6020points`6020fo
  2065. Vr`6020getting`6020killed
  2066. XV`6020*/
  2067. XX`6009`6009`6009M.ratcb.rats`605BM.myRatId`605D.score`6020=`6020M.score;
  2068. XX`6009`6009`6009UpdateScoreCard(M.myRatId);
  2069. XX`6009`6009`6009NotifyPlayer();
  2070. XX`6009`6009`6009updateView`6020=`6020TRUE;
  2071. XX`6009`6009`6009sendLocation`6020=`6020TRUE;
  2072. XX`6009`6009`607D
  2073. XX`6009`607D
  2074. XX`6009RatCursor();
  2075. XX`607D
  2076. XX
  2077. XX/*
  2078. XX`6020*`6020Process`6020the`6020pending`6020shots,`6020if`6020any.
  2079. XX`6020*/
  2080. XX
  2081. XXDoRatKillQ()
  2082. XX`607B
  2083. XX`6009struct`6020timeval`6009now;
  2084. XX`6009RatKillQ_t`6009rkp`6020=`6020RatKillQ;
  2085. XX`6009RatKill`6009`6009ratKill;
  2086. XX
  2087. XX`6009if`6020(RatKillQ`6020!=`6020NULL)`6020`607B
  2088. XX`6009`6009gettimeofday(`6026now,`6020NULL);
  2089. XX`6009`6009while`6020(rkp`6020!=`6020NULL)`6020`607B
  2090. XX`6009`6009`6009if`6020(now.tv_sec`6020>=`6020rkp->shotHits.tv_sec)`6020`607B
  2091. XX`6009`6009`6009`6009if`6020(now.tv_usec`6020>=
  2092. XX`6009`6009`6009`6009`6020`6020`6020`6020rkp->shotHits.tv_usec)`6020`607B
  2093. XX`6009`6009`6009`6009`6009ratKill`6020=`6020`6026RatKillQ->thisOne;
  2094. XX`6009`6009`6009`6009`6009handleKill(ratKill->xLoc,
  2095. XX`6009`6009`6009`6009`6009`6009`6020`6020`6020ratKill->yLoc,
  2096. XX`6009`6009`6009`6009`6009`6009`6020`6020`6020ratKill->dir,
  2097. XX`6009`6009`6009`6009`6009`6009`6020`6020`6020ratKill->ratId);
  2098. XX`6009`6009`6009`6009`6009RatKillQ`6020=`6020RatKillQ->nextOne;
  2099. XX`6009`6009`6009`6009`6009free((char`6020*)`6020rkp);
  2100. XX`6009`6009`6009`6009`6009rkp`6020=`6020RatKillQ;
  2101. XX`6009`6009`6009`6009`607D`6020else
  2102. XX`6009`6009`6009`6009`6009break;
  2103. XX`6009`6009`6009`607D`6020else
  2104. XX`6009`6009`6009`6009break;
  2105. XX`6009`6009`607D
  2106. XX`6009`6009if`6020(RatKillQ`6020==`6020NULL)
  2107. XX`6009`6009`6009RatCursor();
  2108. XX`6009`607D
  2109. XX`607D
  2110. XX`6009`6009
  2111. XX/*`6020
  2112. XX`6020*`6020Convert`6020the`6020contents`6020of`6020a`6020packet`6020to`6020ne
  2113. Vtwork`6020order`6020bef
  2114. XVore`6020sending.
  2115. XX`6020*/
  2116. XX
  2117. XXConvertOutgoing(p)
  2118. XXRatPacket`6020*p;
  2119. XX`607B
  2120. XX`6009char`6009`6009buf`605B64`605D;
  2121. XX`6009RatId`6009`6009ratId;
  2122. XX`6009RatLocation`6009ratLoc;
  2123. XX`6009RatKill`6009`6009ratKill;
  2124. XX`6009RatDead`6009`6009ratDead;
  2125. XX`6009RatStatus`6009ratStatus;
  2126. XX`6009RatNew`6009`6009ratNew;
  2127. XX`6009RatGone`6009`6009ratGone;
  2128. XX`6009RatQuery`6009ratQuery;
  2129. XX`6009RatAlive`6009ratAlive;
  2130. XX`6009RatMove`6009`6009ratMove;
  2131. XX
  2132. XX`6009switch(p->type)`6020`607B
  2133. XX`6009case`6020RAT_LOCATION:
  2134. XX`6009`6009ratLoc`6020=`6020(RatLocation)`6020`6026p->body;
  2135. XX`6009`6009ratLoc->ratId`6020=`6020htonl(ratLoc->ratId);
  2136. XX`6009`6009ratLoc->xLoc`6020=`6020`6020htons(ratLoc->xLoc);
  2137. XX`6009`6009ratLoc->yLoc`6020=`6020`6020htons(ratLoc->yLoc);
  2138. XX`6009`6009ratLoc->dir`6020=`6020`6020`6020htons(ratLoc->dir);
  2139. XX`6009`6009ratLoc->score`6020=`6020htonl(ratLoc->score);
  2140. XX`6009`6009break;
  2141. XX
  2142. XX`6009case`6020RAT_KILL:
  2143. XX`6009`6009ratKill`6020=`6020(RatKill)`6020`6026p->body;
  2144. XX`6009`6009ratKill->ratId`6020=`6020htonl(ratKill->ratId);
  2145. XX`6009`6009ratKill->xLoc`6020`6020=`6020htons(ratKill->xLoc);
  2146. XX`6009`6009ratKill->yLoc`6020`6020=`6020htons(ratKill->yLoc);
  2147. XX`6009`6009ratKill->dir`6020`6020`6020=`6020htons(ratKill->dir);
  2148. XX`6009`6009break;
  2149. XX
  2150. XX`6009case`6020RAT_DEAD:
  2151. XX`6009`6009ratDead`6020=`6020(RatDead)`6020`6026p->body;
  2152. XX`6009`6009ratDead->ratId`6020=`6020htonl(ratDead->ratId);
  2153. XX`6009`6009ratDead->killedBy`6020=`6020htonl(ratDead->killedBy);
  2154. XX`6009`6009break;
  2155. XX
  2156. XX`6009case`6020RAT_STATUS:
  2157. XX`6009`6009ratStatus`6020=`6020(RatStatus)`6020`6026p->body;
  2158. XX`6009`6009ratStatus->dukeRat`6020=`6020htonl(ratStatus->dukeRat);
  2159. XX`6009`6009for`6020(ratId`6020=`60200;`6020ratId`6020<`6020MAXRATS;`6020ratId+
  2160. V+)`6020`607B
  2161. XX`6009`6009`6009RatInfo`6009ratInfo;
  2162. XX
  2163. XX`6009`6009`6009ratInfo`6020=`6020`6026ratStatus->rats`605BratId`605D;
  2164. XX`6009`6009`6009ratInfo->playing`6020=`6020htons(ratInfo->playing);
  2165. XX`6009`6009`6009ratInfo->xLoc`6020=`6020htons(ratInfo->xLoc);
  2166. XX`6009`6009`6009ratInfo->yLoc`6020=`6020htons(ratInfo->yLoc);
  2167. XX`6009`6009`6009ratInfo->dir`6020=`6020htons(ratInfo->dir);
  2168. XX`6009`6009`6009ratInfo->score`6020=`6020htonl(ratInfo->score);
  2169. XX`6009`6009`6009ratInfo->addr.sin_family`6020=
  2170. XX`6009`6009`6009`6009ntohs(ratInfo->addr.sin_family);
  2171. XX`6009`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  2172. XX`6009`6009`607D
  2173. XX`6009`6009break;
  2174. XX
  2175. XX`6009case`6020RAT_NEW:
  2176. XX`6009`6009ratNew`6020=`6020(RatNew)`6020`6026p->body;
  2177. XX`6009`6009ratNew->pass`6020=`6020htons(ratNew->pass);
  2178. XX`6009`6009ratNew->xLoc`6020=`6020htons(ratNew->xLoc);
  2179. XX`6009`6009ratNew->yLoc`6020=`6020htons(ratNew->yLoc);
  2180. XX`6009`6009ratNew->dir`6020`6020=`6020htons(ratNew->dir);
  2181. XX`6009`6009ratNew->addr.sin_family`6020=
  2182. XX`6009`6009`6009htons(ratNew->addr.sin_family);
  2183. XX`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  2184. XX`6009`6009break;
  2185. XX
  2186. XX`6009case`6020RAT_GOING:
  2187. XX`6009`6009ratGone`6020=`6020(RatGone)`6020`6026p->body;
  2188. XX`6009`6009ratGone->ratId`6020=`6020htonl(ratGone->ratId);
  2189. XX`6009`6009break;
  2190. XX
  2191. XX`6009case`6020RAT_QUERY:
  2192. XX`6009`6009ratQuery`6020=`6020(RatQuery)`6020`6026p->body;
  2193. XX`6009`6009ratQuery->ratId`6020=`6020htonl(ratQuery->ratId);
  2194. XX`6009`6009break;
  2195. XX
  2196. XX`6009case`6020RAT_ALIVE:
  2197. XX`6009`6009ratAlive`6020=`6020(RatAlive)`6020`6026p->body;
  2198. XX`6009`6009ratAlive->ratId`6020=`6020htonl(ratAlive->ratId);
  2199. XX`6009`6009break;
  2200. XX
  2201. XX`6009case`6020RAT_SURVEY:
  2202. XX`6009`6009ratNew`6020=`6020(RatNew)`6020`6026p->body;
  2203. XX`6009`6009ratNew->pass`6020=`6020htons(ratNew->pass);
  2204. XX`6009`6009ratNew->xLoc`6020=`6020htons(ratNew->xLoc);
  2205. XX`6009`6009ratNew->yLoc`6020=`6020htons(ratNew->yLoc);
  2206. XX`6009`6009ratNew->dir`6020`6020=`6020htons(ratNew->dir);
  2207. XX`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  2208. XX`6009`6009break;
  2209. XX
  2210. XX`6009case`6020RAT_MOVE:
  2211. XX`6009`6009ratMove`6020=`6020(RatMove)`6020`6026p->body;
  2212. XX`6009`6009ratMove->ratId`6020=`6020htonl(ratMove->ratId);
  2213. XX`6009`6009break;
  2214. XX
  2215. XX`6009default:
  2216. XX`6009`6009sprintf(buf,`6020"ConvertOutgoing`6020bad`6020type`6020%d`6020(%d)"
  2217. V,
  2218. XX`6009`6009`6009p->type,`6020htons(p->type));
  2219. XX`6009`6009MWError(buf);
  2220. XX`6009`607D
  2221. XX`6009p->type`6020=`6020htonl(p->type);
  2222. XX`607D
  2223. XX
  2224. XX/*`6020
  2225. XX`6020*`6020Convert`6020the`6020contents`6020of`6020a`6020packet`6020to`6020ho
  2226. Vst`6020order`6020after
  2227. XV`6020ConvertIncoming.
  2228. XX`6020*/
  2229. XX
  2230. XXConvertIncoming(p)
  2231. XXRatPacket`6020*p;
  2232. XX`607B
  2233. XX`6009char`6009`6009buf`605B64`605D;
  2234. XX`6009RatId`6009`6009ratId;
  2235. XX`6009RatLocation`6009ratLoc;
  2236. XX`6009RatKill`6009`6009ratKill;
  2237. XX`6009RatDead`6009`6009ratDead;
  2238. XX`6009RatStatus`6009ratStatus;
  2239. XX`6009RatNew`6009`6009ratNew;
  2240. XX`6009RatGone`6009`6009ratGone;
  2241. XX`6009RatQuery`6009ratQuery;
  2242. XX`6009RatAlive`6009ratAlive;
  2243. XX`6009RatMove`6009`6009ratMove;
  2244. XX
  2245. XX`6009p->type`6020=`6020ntohl(p->type);
  2246. XX`6009switch(p->type)`6020`607B
  2247. XX`6009case`6020RAT_LOCATION:
  2248. XX`6009`6009ratLoc`6020=`6020(RatLocation)`6020`6026p->body;
  2249. XX`6009`6009ratLoc->ratId`6020=`6020ntohl(ratLoc->ratId);
  2250. XX`6009`6009ratLoc->xLoc`6020=`6020`6020ntohs(ratLoc->xLoc);
  2251. XX`6009`6009ratLoc->yLoc`6020=`6020`6020ntohs(ratLoc->yLoc);
  2252. XX`6009`6009ratLoc->dir`6020=`6020`6020`6020ntohs(ratLoc->dir);
  2253. XX`6009`6009ratLoc->score`6020=`6020ntohl(ratLoc->score);
  2254. XX`6009`6009break;
  2255. XX
  2256. XX`6009case`6020RAT_KILL:
  2257. XX`6009`6009ratKill`6020=`6020(RatKill)`6020`6026p->body;
  2258. XX`6009`6009ratKill->ratId`6020=`6020ntohl(ratKill->ratId);
  2259. XX`6009`6009ratKill->xLoc`6020`6020=`6020ntohs(ratKill->xLoc);
  2260. XX`6009`6009ratKill->yLoc`6020`6020=`6020ntohs(ratKill->yLoc);
  2261. XX`6009`6009ratKill->dir`6020`6020`6020=`6020ntohs(ratKill->dir);
  2262. XX`6009`6009break;
  2263. XX
  2264. XX`6009case`6020RAT_DEAD:
  2265. XX`6009`6009ratDead`6020=`6020(RatDead)`6020`6026p->body;
  2266. XX`6009`6009ratDead->ratId`6020=`6020ntohl(ratDead->ratId);
  2267. XX`6009`6009ratDead->killedBy`6020=`6020ntohl(ratDead->killedBy);
  2268. XX`6009`6009break;
  2269. XX
  2270. XX`6009case`6020RAT_STATUS:
  2271. XX`6009`6009ratStatus`6020=`6020(RatStatus)`6020`6026p->body;
  2272. XX`6009`6009ratStatus->dukeRat`6020=`6020ntohl(ratStatus->dukeRat);
  2273. XX`6009`6009for`6020(ratId`6020=`60200;`6020ratId`6020<`6020MAXRATS;`6020ratId+
  2274. V+)`6020`607B
  2275. XX`6009`6009`6009RatInfo`6009ratInfo;
  2276. XX
  2277. XX`6009`6009`6009ratInfo`6020=`6020`6026ratStatus->rats`605BratId`605D;
  2278. XX`6009`6009`6009ratInfo->playing`6020=`6020ntohs(ratInfo->playing);
  2279. XX`6009`6009`6009ratInfo->xLoc`6020=`6020ntohs(ratInfo->xLoc);
  2280. XX`6009`6009`6009ratInfo->yLoc`6020=`6020ntohs(ratInfo->yLoc);
  2281. XX`6009`6009`6009ratInfo->dir`6020=`6020ntohs(ratInfo->dir);
  2282. XX`6009`6009`6009ratInfo->score`6020=`6020ntohl(ratInfo->score);
  2283. XX`6009`6009`6009ratInfo->addr.sin_family`6020=
  2284. XX`6009`6009`6009`6009ntohs(ratInfo->addr.sin_family);
  2285. XX`6009`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  2286. XX`6009`6009`607D
  2287. XX`6009`6009break;
  2288. XX
  2289. XX`6009case`6020RAT_NEW:
  2290. XX`6009`6009ratNew`6020=`6020(RatNew)`6020`6026p->body;
  2291. XX`6009`6009ratNew->pass`6020=`6020ntohs(ratNew->pass);
  2292. XX`6009`6009ratNew->xLoc`6020=`6020ntohs(ratNew->xLoc);
  2293. XX`6009`6009ratNew->yLoc`6020=`6020ntohs(ratNew->yLoc);
  2294. XX`6009`6009ratNew->dir`6020`6020=`6020ntohs(ratNew->dir);
  2295. XX`6009`6009ratNew->addr.sin_family`6020=
  2296. XX`6009`6009`6009ntohs(ratNew->addr.sin_family);
  2297. XX`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  2298. XX`6009`6009break;
  2299. XX
  2300. XX`6009case`6020RAT_GOING:
  2301. XX`6009`6009ratGone`6020=`6020(RatGone)`6020`6026p->body;
  2302. XX`6009`6009ratGone->ratId`6020=`6020ntohl(ratGone->ratId);
  2303. XX`6009`6009break;
  2304. XX
  2305. XX`6009case`6020RAT_QUERY:
  2306. XX`6009`6009ratQuery`6020=`6020(RatQuery)`6020`6026p->body;
  2307. XX`6009`6009ratQuery->ratId`6020=`6020ntohl(ratQuery->ratId);
  2308. XX`6009`6009break;
  2309. XX
  2310. XX`6009case`6020RAT_ALIVE:
  2311. XX`6009`6009ratAlive`6020=`6020(RatAlive)`6020`6026p->body;
  2312. XX`6009`6009ratAlive->ratId`6020=`6020ntohl(ratAlive->ratId);
  2313. XX`6009`6009break;
  2314. XX
  2315. XX`6009case`6020RAT_SURVEY:
  2316. XX`6009`6009ratNew`6020=`6020(RatNew)`6020`6026p->body;
  2317. XX`6009`6009ratNew->pass`6020=`6020ntohs(ratNew->pass);
  2318. XX`6009`6009ratNew->xLoc`6020=`6020ntohs(ratNew->xLoc);
  2319. XX`6009`6009ratNew->yLoc`6020=`6020ntohs(ratNew->yLoc);
  2320. XX`6009`6009ratNew->dir`6020`6020=`6020ntohs(ratNew->dir);
  2321. XX`6009`6009/*`6020don't`6020touch`6020address`6020or`6020name`6020*/
  2322. XX`6009`6009break;
  2323. XX
  2324. XX`6009case`6020RAT_MOVE:
  2325. XX`6009`6009ratMove`6020=`6020(RatMove)`6020`6026p->body;
  2326. XX`6009`6009ratMove->ratId`6020=`6020ntohl(ratMove->ratId);
  2327. XX`6009`6009break;
  2328. XX
  2329. XX`6009default:
  2330. XX`6009`6009sprintf(buf,`6020"ConvertIncoming`6020bad`6020type`6020%d`6020(%d)"
  2331. V,
  2332. XX`6009`6009`6009p->type,`6020ntohs(p->type));
  2333. XX`6009`6009MWError(buf);
  2334. XX`6009`607D
  2335. XX`607D
  2336. XX
  2337. XX#ifdef`6009PACKET_TRACE
  2338. XXstatic`6020char`6009*packTypes`605B`605D`6020=`6020`607B
  2339. XX`6009"RAT_LOCATION",
  2340. XX`6009"RAT_KILL",
  2341. XX`6009"RAT_DEAD",
  2342. XX`6009"RAT_STATUS",
  2343. XX`6009"RAT_NEW",
  2344. XX`6009"RAT_GOING",
  2345. XX`6009"RAT_QUERY",
  2346. XX`6009"RAT_ALIVE",
  2347. XX`6009"RAT_SURVEY",
  2348. XX`6009"RAT_MOVE",
  2349. XX`60090
  2350. XX`607D;
  2351. XX#endif`6009PACKET_TRACE
  2352. XX
  2353. XXreadRats(evp)
  2354. XXMWEvent`6020*evp;
  2355. XX`607B
  2356. XX`6009register`6020RatLocation`6009ratLoc;
  2357. XX`6009register`6020RatLook`6009ratLook;
  2358. XX`6009register`6020RatAlive`6009ratAlive;
  2359. XX`6009RatPacket`6009*pack`6020=`6020evp->eventDetail;
  2360. XX`6009RatInfo`6009`6009ratInfo;
  2361. XX`6009Boolean`6009`6009oldVisible;
  2362. XX`6009RatId`6009`6009ratId;
  2363. XX`6009RatStatus`6009status;
  2364. XX`6009RatNew`6009`6009ratNew;
  2365. XX`6009RatGone`6009`6009ratGone;
  2366. XX`6009RatKill`6009`6009ratKill;
  2367. XX`6009RatDead`6009`6009ratDead;
  2368. XX`6009RatQuery`6009ratQuery;
  2369. XX`6009RatMove`6009`6009ratMove;
  2370. XX`6009Sockaddr`6009nullAddr;
  2371. XX`6009char`6009`6009buf`605B32`605D;
  2372. XX`6009int`6009`6009newSocket;
  2373. XX
  2374. XX#ifdef`6009PACKET_TRACE
  2375. XX`6009printf("received`6020%s`6020(%d)`605Cn",
  2376. XX`6009`6009packTypes`605Bpack->type`6020-`60201`605D,`6020pack->type);
  2377. XX#endif`6009PACKET_TRACE
  2378. XX
  2379. XX`6009switch(pack->type)`6020`607B
  2380. XX`6009case`6020RAT_LOCATION:`6009`6009/*`6020someone`6020moved`6020*/
  2381. XX`6009`6009ratLoc`6020=`6020(RatLocation)`6020`6026pack->body;
  2382. XX`6009`6009ratLook`6020=`6020`6026R2d2`605BratLoc->ratId`605D;
  2383. XX`6009`6009if`6020((oldVisible`6020=`6020ratLook->visible)`6020==`6020TRUE)
  2384. XX`6009`6009`6009XORToken(ratLoc->ratId);
  2385. XX`6009`6009ratInfo`6020=`6020`6026M.ratcb.rats`605BratLoc->ratId`605D;
  2386. XX`6009`6009ratInfo->xLoc`6020=`6020ratLoc->xLoc;
  2387. XX`6009`6009ratInfo->yLoc`6020=`6020ratLoc->yLoc;
  2388. XX`6009`6009ratInfo->dir`6020`6020=`6020ratLoc->dir;
  2389. XX`6009`6009DisplayOthersPosition(ratLoc->ratId,`6020ratLoc->xLoc,
  2390. XX`6009`6009`6009`6009`6020`6020`6020`6020`6020`6020ratLoc->yLoc,`6020ratLoc->d
  2391. Vir);
  2392. XX`6009`6009TokenVisible(ratLoc->ratId);
  2393. XX`6009`6009if`6020(ratLook->visible`6020==`6020TRUE)
  2394. +-+-+-+-+-+-+-+-  END  OF PART 3 +-+-+-+-+-+-+-+-
  2395.