home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / vmsnet / sources / games / 443 < prev    next >
Encoding:
Internet Message Format  |  1992-11-20  |  14.4 KB

  1. Path: sparky!uunet!usc!sol.ctr.columbia.edu!destroyer!cs.ubc.ca!bcsystems!spruce.pfc.forestry.ca!news.u.washington.edu!raven.alaska.edu!acad2.alaska.edu!asdmf
  2. Newsgroups: vmsnet.sources.games
  3. Subject: Vmsnetrek 32/47
  4. Message-ID: <1992Nov20.200550.1@acad2.alaska.edu>
  5. From: asdmf@acad2.alaska.edu
  6. Date: Sat, 21 Nov 1992 00:05:50 GMT
  7. Sender: news@raven.alaska.edu (USENET News System)
  8. Organization: University of Alaska
  9. Nntp-Posting-Host: acad2.alaska.edu
  10. Lines: 523
  11.  
  12. -+-+-+-+-+-+-+-+ START OF PART 32 -+-+-+-+-+-+-+-+
  13. X    `125 else if (players`091base_id`093.p_port`0910`093 == VACANT) `123
  14. X`009port_id = 0;
  15. X    `125 else if (players`091base_id`093.p_port`0911`093 == VACANT) `123
  16. X`009port_id = 1;
  17. X    `125 else if (players`091base_id`093.p_port`0912`093 == VACANT) `123
  18. X`009port_id = 2;
  19. X    `125 else  if (players`091base_id`093.p_port`0913`093 == VACANT) `123
  20. X`009port_id = 3;
  21. X    `125
  22. X
  23. X    if (port_id < NUMPORTS) `123
  24. X`009me->p_x = players`091base_id`093.p_x + DOCKDIST * Costab`091(port_id*90+
  25. V45)*255/360`093;
  26. X`009me->p_y = players`091base_id`093.p_y + DOCKDIST * Sintab`091(port_id*90+
  27. V45)*255/360`093;
  28. X`009me->p_speed = 0;
  29. X`009me->p_desspeed = 0;
  30. X`009me->p_dir = (90 + port_id*90 + 45) * 255 / 360;
  31. X`009me->p_desdir = me->p_dir;
  32. X
  33. X`009me->p_flags `124= PFDOCK;
  34. X`009players`091base_id`093.p_docked++;
  35. X`009players`091base_id`093.p_port`091port_id`093 = me->p_no;
  36. X`009me->p_docked = base_id;
  37. X`009me->p_port`0910`093 = port_id;
  38. X
  39. X`009sprintf(buf, "Helmsman:  Docking manuever completed Captain.  All moorin
  40. Vgs secured at port %d.", port_id);
  41. X`009warning(buf);
  42. X    `125 else `123
  43. X`009sprintf(buf, "Starbase %s: Permission to dock denied, all ports currentl
  44. Vy occupied.", players`091base_id`093.p_name);
  45. X`009warning(buf);
  46. X    `125
  47. X`125  /* dock() */
  48. $ CALL UNPACK ORBIT.C;1 1345980700
  49. $ create/nolog 'f'
  50. X/*`032
  51. X * packets.h
  52. X *
  53. X * Kevin P. Smith 1/29/89
  54. X */
  55. X#include "copyright2.h"
  56. X
  57. X#define STATUS_TOKEN`009"\t@@@"`009`009/* ATM */
  58. X
  59. Xtypedef unsigned char uchar;
  60. X
  61. X/*
  62. X * TCP and UDP use identical packet formats; the only difference is that,
  63. X * when in UDP mode, all packets sent from server to client have a sequence
  64. X * number appended to them.
  65. X *
  66. X * (note: ALL packets, whether sent on the TCP or UDP channel, will have
  67. X * the sequence number.  Thus it's important that client & server agree on
  68. X * when to switch.  This was done to keep critical and non-critical data
  69. X * in sync.)
  70. X */
  71. X
  72. X/* packets sent from xtrek server to remote client */
  73. X#define SP_MESSAGE `0091
  74. X#define SP_PLAYER_INFO `0092`009`009/* general player info not elsewhere */
  75. X#define SP_KILLS`0093 `009`009/* # kills a player has */
  76. X#define SP_PLAYER`0094`009`009/* x,y for player */
  77. X#define SP_TORP_INFO`0095`009`009/* torp status */
  78. X#define SP_TORP`009`0096`009`009/* torp location */
  79. X#define SP_PHASER`0097`009`009/* phaser status and direction */
  80. X#define SP_PLASMA_INFO`0098`009`009/* player login information */
  81. X#define SP_PLASMA`0099`009`009/* like SP_TORP */
  82. X#define SP_WARNING`00910`009`009/* like SP_MESG */
  83. X#define SP_MOTD`009`00911`009`009/* line from .motd screen */
  84. X#define SP_YOU`009`00912`009`009/* info on you? */
  85. X#define SP_QUEUE`00913`009`009/* estimated loc in queue? */
  86. X#define SP_STATUS`00914`009`009/* galaxy status numbers */
  87. X#define SP_PLANET `00915`009`009/* planet armies & facilities */
  88. X#define SP_PICKOK`00916`009`009/* your team & ship was accepted */
  89. X#define SP_LOGIN`00917`009`009/* login response */
  90. X#define SP_FLAGS`00918`009`009/* give flags for a player */
  91. X#define SP_MASK`009`00919`009`009/* tournament mode mask */
  92. X#define SP_PSTATUS`00920`009`009/* give status for a player */
  93. X#define SP_BADVERSION   21`009`009/* invalid version number */
  94. X#define SP_HOSTILE`00922`009`009/* hostility settings for a player */
  95. X#define SP_STATS`00923`009`009/* a player's statistics */
  96. X#define SP_PL_LOGIN`00924`009`009/* new player logs in */
  97. X#define SP_RESERVED`00925`009`009/* for future use */
  98. X#define SP_PLANET_LOC`00926`009`009/* planet name, x, y */
  99. X#define SP_SCAN`009`00927`009`009/* ATM: results of player scan */
  100. X
  101. X#define SP_UDP_REPLY`00928`009`009/* notify client of UDP status */
  102. X#define SP_SEQUENCE`00929`009`009/* sequence # packet */
  103. X#define SP_SC_SEQUENCE`00930`009`009/* this trans is semi-critical info */
  104. X
  105. X/* packets sent from remote client to xtrek server */
  106. X#define CP_MESSAGE      1`009`009/* send a message */
  107. X#define CP_SPEED`0092`009`009/* set speed */
  108. X#define CP_DIRECTION`0093`009`009/* change direction */
  109. X#define CP_PHASER`0094`009`009/* phaser in a direction */
  110. X#define CP_PLASMA`0095`009`009/* plasma (in a direction) */
  111. X#define CP_TORP`009`0096`009`009/* fire torp in a direction */
  112. X#define CP_QUIT`009`0097`009`009/* self destruct */
  113. X#define CP_LOGIN`0098`009`009/* log in (name, password) */
  114. X#define CP_OUTFIT`0099`009`009/* outfit to new ship */
  115. X#define CP_WAR`009`00910`009`009/* change war status */
  116. X#define CP_PRACTR`00911`009`009/* create practice robot? */
  117. X#define CP_SHIELD`00912`009`009/* raise/lower sheilds */
  118. X#define CP_REPAIR`00913`009`009/* enter repair mode */
  119. X#define CP_ORBIT`00914`009`009/* orbit planet/starbase */
  120. X#define CP_PLANLOCK`00915`009`009/* lock on planet */
  121. X#define CP_PLAYLOCK`00916`009`009/* lock on player */
  122. X#define CP_BOMB`009`00917`009`009/* bomb a planet */
  123. X#define CP_BEAM`009`00918`009`009/* beam armies up/down */
  124. X#define CP_CLOAK`00919`009`009/* cloak on/off */
  125. X#define CP_DET_TORPS`00920`009`009/* detonate enemy torps */
  126. X#define CP_DET_MYTORP`00921`009`009/* detonate one of my torps */
  127. X#define CP_COPILOT`00922`009`009/* toggle copilot mode */
  128. X#define CP_REFIT`00923`009`009/* refit to different ship type */
  129. X#define CP_TRACTOR`00924`009`009/* tractor on/off */
  130. X#define CP_REPRESS`00925`009`009/* pressor on/off */
  131. X#define CP_COUP`009`00926`009`009/* coup home planet */
  132. X#define CP_SOCKET`00927`009`009/* new socket for reconnection */
  133. X#define CP_OPTIONS`00928`009`009/* send my options to be saved */
  134. X#define CP_BYE`009`00929`009`009/* I'm done! */
  135. X#define CP_DOCKPERM`00930`009`009/* set docking permissions */
  136. X#define CP_UPDATES`00931`009`009/* set number of usecs per update */
  137. X#define CP_RESETSTATS`00932`009`009/* reset my stats packet */
  138. X#define CP_RESERVED`00933`009`009/* for future use */
  139. X#define CP_SCAN`009`00934`009`009/* ATM: request for player scan */
  140. X
  141. X#define CP_UDP_REQ`00935`009`009/* request UDP on/off */
  142. X#define CP_SEQUENCE`00936`009`009/* sequence # packet */
  143. X
  144. X#define SOCKVERSION `0094
  145. X#define UDPVERSION`00910`009`009/* changing this blocks other versions*/
  146. Xstruct packet_handler `123
  147. X    int size;
  148. X    int (*handler)();
  149. X`125;
  150. X
  151. X
  152. X/*
  153. X * These are server --> client packets
  154. X */
  155. X
  156. Xstruct mesg_spacket `123
  157. X    char type;`009`009/* SP_MESSAGE */
  158. X    uchar m_flags;
  159. X    uchar m_recpt;
  160. X    uchar m_from;
  161. X    char mesg`09180`093;
  162. X`125;
  163. X
  164. Xstruct plyr_info_spacket `123
  165. X    char type;`009`009/* SP_PLAYER_INFO */
  166. X    char pnum;
  167. X    char shiptype;`009
  168. X    char team;
  169. X`125;
  170. X
  171. Xstruct kills_spacket `123
  172. X    char type;`009`009/* SP_KILLS */
  173. X    char pnum;
  174. X    char pad1;
  175. X    char pad2;
  176. X    unsigned kills;`009/* where 1234=12.34 kills and 0=0.00 kills */
  177. X`125;
  178. X
  179. Xstruct player_spacket `123
  180. X    char type;`009`009/* SP_PLAYER */
  181. X    char pnum;`009`009
  182. X    uchar dir;
  183. X    char speed;
  184. X    long x,y;
  185. X`125;
  186. X
  187. Xstruct torp_info_spacket `123
  188. X    char  type;`009`009/* SP_TORP_INFO */
  189. X    char  war;`009`009
  190. X    char  status;`009/* TFREE, TDET, etc... */
  191. X    char  pad1;`009`009/* pad needed for cross cpu compatibility */
  192. X    short tnum;`009`009
  193. X    short pad2;
  194. X`125;
  195. X
  196. Xstruct torp_spacket `123
  197. X    char  type;`009`009/* SP_TORP */
  198. X    uchar dir;
  199. X    short tnum;
  200. X    long  x,y;
  201. X`125;
  202. X
  203. Xstruct phaser_spacket `123
  204. X    char type;`009`009/* SP_PHASER */
  205. X    char pnum;
  206. X    char status;`009/* PH_HIT, etc... */
  207. X    uchar dir;
  208. X    long x,y;
  209. X    long target;
  210. X`125;
  211. X
  212. Xstruct plasma_info_spacket `123
  213. X    char  type;`009`009/* SP_PLASMA_INFO */
  214. X    char  war;`009`009
  215. X    char  status;`009/* TFREE, TDET, etc... */
  216. X    char  pad1;`009`009/* pad needed for cross cpu compatibility */
  217. X    short pnum;`009`009
  218. X    short pad2;
  219. X`125;
  220. X
  221. Xstruct plasma_spacket `123
  222. X    char  type;`009`009/* SP_PLASMA */
  223. X    char  pad1;
  224. X    short pnum;
  225. X    long  x,y;
  226. X`125;
  227. X
  228. Xstruct warning_spacket `123
  229. X    char type;`009`009/* SP_WARNING */
  230. X    char pad1;
  231. X    char pad2;
  232. X    char pad3;
  233. X    char mesg`09180`093;
  234. X`125;
  235. X
  236. Xstruct motd_spacket `123
  237. X    char type;`009`009/* SP_MOTD */
  238. X    char pad1;
  239. X    char pad2;
  240. X    char pad3;
  241. X    char line`09180`093;
  242. X`125;
  243. X
  244. Xstruct you_spacket `123
  245. X    char type;`009`009/* SP_YOU */
  246. X    char pnum;`009`009/* Guy needs to know this... */
  247. X    char hostile;
  248. X    char swar;
  249. X    char armies;
  250. X    char tractor;`009/* ATM - visible tractor (was pad1) */
  251. X    char pad2;
  252. X    char pad3;
  253. X    unsigned flags;
  254. X    long damage;
  255. X    long shield;
  256. X    long fuel;
  257. X    short etemp;
  258. X    short wtemp;
  259. X    short whydead;
  260. X    short whodead;
  261. X`125;
  262. X
  263. Xstruct queue_spacket `123
  264. X    char type;`009`009/* SP_QUEUE */
  265. X    char pad1;
  266. X    short pos;
  267. X`125;
  268. X
  269. Xstruct status_spacket `123
  270. X    char type;`009`009/* SP_STATUS */
  271. X    char tourn;
  272. X    char pad1;
  273. X    char pad2;
  274. X    unsigned armsbomb;
  275. X    unsigned planets;
  276. X    unsigned kills;
  277. X    unsigned losses;
  278. X    unsigned time;
  279. X    unsigned long timeprod;
  280. X`125;
  281. X
  282. Xstruct planet_spacket `123
  283. X    char  type;`009`009/* SP_PLANET */
  284. X    char  pnum;
  285. X    char  owner;
  286. X    char  info;`009`009
  287. X    short flags;
  288. X    short pad2;
  289. X    long  armies;
  290. X`125;
  291. X
  292. Xstruct pickok_spacket `123
  293. X    char type;`009`009/* SP_PICKOK */
  294. X    char state;
  295. X    char pad2;
  296. X    char pad3;
  297. X`125;
  298. X
  299. Xstruct login_spacket `123
  300. X    char type;`009`009/* SP_LOGIN */
  301. X    char accept;`009/* 1/0 */
  302. X    char pad2;
  303. X    char pad3;
  304. X    long flags;
  305. X    char keymap`09196`093;
  306. X`125;
  307. X
  308. Xstruct flags_spacket `123
  309. X    char type;`009`009/* SP_FLAGS */
  310. X    char pnum;`009`009/* whose flags are they? */
  311. X    char tractor;`009/* ATM - visible tractors */
  312. X    char pad2;
  313. X    unsigned flags;
  314. X`125;
  315. X
  316. Xstruct mask_spacket `123
  317. X    char type;`009`009/* SP_MASK */
  318. X    char mask;
  319. X    char pad1;
  320. X    char pad2;
  321. X`125;
  322. X
  323. Xstruct pstatus_spacket `123
  324. X    char type;`009`009/* SP_PSTATUS */
  325. X    char pnum;
  326. X    char status;
  327. X    char pad1;
  328. X`125;
  329. X
  330. Xstruct badversion_spacket `123
  331. X    char type;`009`009/* SP_BADVERSION */
  332. X    char why;
  333. X    char pad2;
  334. X    char pad3;
  335. X`125;
  336. X
  337. Xstruct hostile_spacket `123
  338. X    char type;`009`009/* SP_HOSTILE */
  339. X    char pnum;
  340. X    char war;
  341. X    char hostile;
  342. X`125;
  343. X
  344. Xstruct stats_spacket `123
  345. X    char type;`009`009/* SP_STATS */
  346. X    char pnum;
  347. X    char pad1;
  348. X    char pad2;
  349. X    long tkills;`009/* Tournament kills */
  350. X    long tlosses;`009/* Tournament losses */
  351. X    long kills;`009`009/* overall */
  352. X    long losses;`009/* overall */
  353. X    long tticks;`009/* ticks of tournament play time */
  354. X    long tplanets;`009/* Tournament planets */
  355. X    long tarmies;`009/* Tournament armies */
  356. X    long sbkills;`009/* Starbase kills */
  357. X    long sblosses;`009/* Starbase losses */
  358. X    long armies;`009/* non-tourn armies */
  359. X    long planets;`009/* non-tourn planets */
  360. X    long maxkills;`009/* max kills as player * 100 */
  361. X    long sbmaxkills;`009/* max kills as sb * 100 */
  362. X`125;
  363. X
  364. Xstruct plyr_login_spacket `123
  365. X    char type;`009`009/* SP_PL_LOGIN */
  366. X    char pnum;
  367. X    char rank;
  368. X    char pad1;
  369. X    char name`09116`093;
  370. X    char monitor`09116`093;
  371. X    char login`09116`093;
  372. X`125;
  373. X
  374. Xstruct reserved_spacket `123
  375. X    char type;`009`009/* SP_RESERVED */
  376. X    char pad1;
  377. X    char pad2;
  378. X    char pad3;
  379. X    char data`09116`093;
  380. X`125;
  381. X
  382. Xstruct planet_loc_spacket `123
  383. X    char type;`009`009/* SP_PLANET_LOC */
  384. X    char pnum;
  385. X    char pad2;
  386. X    char pad3;
  387. X    long x;
  388. X    long y;
  389. X    char name`09116`093;
  390. X`125;
  391. X
  392. Xstruct scan_spacket `123`009`009/* ATM */
  393. X    char type;`009`009/* SP_SCAN */
  394. X    char pnum;
  395. X    char success;
  396. X    char pad1;
  397. X    long p_fuel;
  398. X    long p_armies;
  399. X    long p_shield;
  400. X    long p_damage;
  401. X    long p_etemp;
  402. X    long p_wtemp;
  403. X`125;
  404. X
  405. Xstruct udp_reply_spacket `123`009/* UDP */
  406. X    char type;`009`009/* SP_UDP_REPLY */
  407. X    char reply;
  408. X    char pad1;
  409. X    char pad2;
  410. X    int  port;
  411. X`125;
  412. X
  413. Xstruct sequence_spacket `123`009/* UDP */
  414. X    char type;`009`009/* SP_SEQUENCE */
  415. X    char pad1;
  416. X    unsigned short sequence;
  417. X`125;
  418. Xstruct sc_sequence_spacket `123`009/* UDP */
  419. X    char type;`009`009/* SP_CP_SEQUENCE */
  420. X    char pad1;
  421. X    unsigned short sequence;
  422. X`125;
  423. X
  424. X
  425. X/*
  426. X * These are the client --> server packets
  427. X */
  428. X
  429. Xstruct mesg_cpacket `123
  430. X    char type;`009`009/* CP_MESSAGE */
  431. X    char group;
  432. X    char indiv;
  433. X    char pad1;
  434. X    char mesg`09180`093;
  435. X`125;
  436. X
  437. Xstruct speed_cpacket `123
  438. X    char type;`009`009/* CP_SPEED */
  439. X    char speed;`009`009
  440. X    char pad1;
  441. X    char pad2;
  442. X`125;
  443. X
  444. Xstruct dir_cpacket `123
  445. X    char type;`009`009/* CP_DIRECTION */
  446. X    uchar dir;
  447. X    char pad1;
  448. X    char pad2;
  449. X`125;
  450. X
  451. Xstruct phaser_cpacket `123
  452. X    char type;`009`009/* CP_PHASER */
  453. X    uchar dir;
  454. X    char pad1;
  455. X    char pad2;
  456. X`125;
  457. X
  458. Xstruct plasma_cpacket `123
  459. X    char type;`009`009/* CP_PLASMA */
  460. X    uchar dir;
  461. X    char pad1;
  462. X    char pad2;
  463. X`125;
  464. X
  465. Xstruct torp_cpacket `123
  466. X    char type;`009`009/* CP_TORP */
  467. X    uchar dir;`009`009/* direction to fire torp */
  468. X    char pad1;
  469. X    char pad2;
  470. X`125;
  471. X
  472. Xstruct quit_cpacket `123
  473. X    char type;`009`009/* CP_QUIT */
  474. X    char pad1;
  475. X    char pad2;
  476. X    char pad3;
  477. X`125;
  478. X
  479. Xstruct login_cpacket `123
  480. X    char type;`009`009/* CP_LOGIN */
  481. X    char query;
  482. X    char pad2;
  483. X    char pad3;
  484. X    char name`09116`093;
  485. X    char password`09116`093;
  486. X    char login`09116`093;
  487. X`125;
  488. X
  489. Xstruct outfit_cpacket `123
  490. X    char type;`009`009/* CP_OUTFIT */
  491. X    char team;
  492. X    char ship;
  493. X    char pad1;
  494. X`125;
  495. X
  496. Xstruct war_cpacket `123
  497. X    char type;`009`009/* CP_WAR */
  498. X    char newmask;
  499. X    char pad1;
  500. X    char pad2;
  501. X`125;
  502. X
  503. Xstruct practr_cpacket `123
  504. X    char type;`009`009/* CP_PRACTR */
  505. X    char pad1;
  506. X    char pad2;
  507. X    char pad3;
  508. X`125;
  509. X
  510. Xstruct shield_cpacket `123
  511. X    char type;`009`009/* CP_SHIELD */
  512. X    char state;`009`009/* up/down */
  513. X    char pad1;
  514. X    char pad2;
  515. X`125;
  516. X
  517. Xstruct repair_cpacket `123
  518. X    char type;`009`009/* CP_REPAIR */
  519. X    char state;`009`009/* on/off */
  520. X    char pad1;
  521. X    char pad2;
  522. X`125;
  523. X
  524. Xstruct orbit_cpacket `123
  525. X    char type;`009`009/* CP_ORBIT */
  526. X    char state;`009`009/* on/off */
  527. X    char pad1;
  528. X    char pad2;
  529. X`125;
  530. X
  531. Xstruct planlock_cpacket `123
  532. X    char type;`009`009/* CP_PLANLOCK */
  533. X    char pnum;
  534. +-+-+-+-+-+-+-+-  END  OF PART 32 +-+-+-+-+-+-+-+-
  535.