home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / vmsnet.sources.games / vmsnetrek / part32 < prev    next >
Internet Message Format  |  1992-11-20  |  15KB

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