home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / vmsnet.sources.games / vmsnetrek / part19 < prev    next >
Text File  |  1992-11-14  |  15KB  |  441 lines

  1. Newsgroups: vmsnet.sources.games
  2. Path: uunet!stanford.edu!agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state.edu!rpi!usenet.coe.montana.edu!news.u.washington.edu!raven.alaska.edu!acad2.alaska.edu!asdmf
  3. From: asdmf@acad2.alaska.edu
  4. Subject: Vmsnetrek 19/47
  5. Message-ID: <1992Nov13.134601.1@acad2.alaska.edu>
  6. Lines: 428
  7. Sender: news@raven.alaska.edu (USENET News System)
  8. Nntp-Posting-Host: acad2.alaska.edu
  9. Organization: University of Alaska
  10. Date: Fri, 13 Nov 1992 17:46:01 GMT
  11. Xref: uunet vmsnet.sources.games:505
  12.  
  13. -+-+-+-+-+-+-+-+ START OF PART 19 -+-+-+-+-+-+-+-+
  14. Xstruct plasmatorp *plasmatorps;
  15. Xstruct status *status;
  16. Xstruct ship *myship;
  17. Xstruct stats *mystats;
  18. Xstruct planet *planets;
  19. Xstruct phaser *phasers;
  20. Xstruct message *messages;
  21. Xstruct mctl *mctl;
  22. Xstruct memory universe;
  23. X
  24. Xint`009oldalert = PFGREEN;`009/* Avoid changing more than we have to */
  25. Xint `009remap`09116`093 = `123 0, 1, 2, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
  26. V 0 `125;
  27. Xint`009messpend;
  28. Xint`009lastcount;
  29. Xint`009mdisplayed;
  30. Xint`009redrawall;
  31. Xint`009nopilot = 1;
  32. Xint`009selfdest;
  33. Xint`009udcounter;
  34. Xint`009lastm;
  35. Xint`009delay;`009`009`009/* delay for decaring war */
  36. Xint`009rdelay;`009`009`009/* delay for refitting */
  37. Xint`009mapmode = 1;`032
  38. Xint`009namemode = 1;`032
  39. Xint`009showStats;
  40. Xint`009showShields;
  41. Xint`009msgBeep = 1;`009`009/* ATM - msg beep */
  42. Xint`009warncount = 0;
  43. Xint`009warntimer = -1;
  44. Xint`009infomapped = 0;
  45. Xint`009scanmapped = 0;`009`009/* ATM - scanners */
  46. Xint`009mustexit = 0;
  47. Xint`009messtime = 5;
  48. Xint`009keeppeace = 0;
  49. Xint`009showlocal = 2;
  50. Xint `009showgalactic = 2;
  51. Xchar `009*shipnos="0123456789abcdefghijklmnopqrstuvwxyz";
  52. Xint `009sock= -1;
  53. Xint`009xtrekPort=2592;`009`009/* ATM: was 592 (inetd version) */
  54. Xint`009queuePos= -1;
  55. Xint`009pickOk= -1;
  56. Xint`009lastRank= -1;
  57. Xint`009promoted= 0;
  58. Xint`009loginAccept= -1;
  59. Xunsigned localflags=0;
  60. Xint`009tournMask=15;
  61. Xint `009nextSocket;`009/* socket to use when we get ghostbusted... */
  62. Xint`009updatePlayer`091MAXPLAYER`093;`009/* Needs updating on player list */
  63. Xchar   *serverName="bigmax.ulowell.edu"; /* 129.63.32.1 */
  64. Xint`009loggedIn=0;
  65. Xint `009reinitPlanets=0;
  66. Xchar`009*netaddrstr = NULL;`009`009/* wait queue support for blesstrek */
  67. Xint`009redrawPlayer`091MAXPLAYER`093;`009/* Needs redrawing on galactic map
  68. V */
  69. Xint`009lastUpdate`091MAXPLAYER`093=`1230`125;`009/* Last update of this play
  70. Ver */
  71. Xint     timerDelay=200000;`009`009/* micro secs between updates */
  72. Xint`009reportKills=1;`009`009`009/* report kill messages? */
  73. Xint`009scanplayer;`009`009`009/* who to scan */
  74. Xint`009showTractor=1;`009`009`009/* show visible tractor beams */
  75. Xint`009commMode=0;`009`009`009/* UDP: 0=TCP only, 1=UDP updates */
  76. Xint`009commModeReq=0;`009`009`009/* UDP: req for comm protocol change */
  77. Xint`009commStatus=0;`009`009`009/* UDP: used when switching protocols */
  78. Xint`009commSwitchTimeout=0;`009`009/* UDP: don't wait forever */
  79. Xint`009udpTotal=1;`009`009`009/* UDP: total #of packets received */
  80. Xint`009udpDropped=0;`009`009`009/* UDP: count of packets dropped */
  81. Xint`009udpRecentDropped=0;`009`009/* UDP: #of packets dropped recently */
  82. Xint`009udpSock = -1;`009`009`009/* UDP: the socket */
  83. Xint`009udpDebug=0;`009`009`009/* UDP: debugging info on/off */
  84. Xint`009udpClientSend=1;`009`009/* UDP: send packets with simple UDP */
  85. Xint`009udpClientRecv=1;`009`009/* UDP: receive with simple UDP */
  86. Xint`009udpSequenceChk=1;`009`009/* UDP: check sequence numbers */
  87. X#ifdef GATEWAY
  88. Xint gw_serv_port,gw_port,gw_local_port;`009/* UDP */
  89. Xchar *gw_mach;`009`009`009`009/* UDP */
  90. X#endif
  91. X
  92. XW_Icon stipple, clockpic, icon;
  93. X
  94. XW_Color`009borderColor, backColor, textColor, myColor, warningColor, shipCol
  95. V`0915`093,
  96. X`009rColor, yColor, gColor, unColor, foreColor;
  97. X
  98. XW_Icon expview`091EX_FRAMES`093;
  99. XW_Icon sbexpview`091SBEXPVIEWS`093;
  100. XW_Icon cloud`091NUMDETFRAMES`093;
  101. XW_Icon plasmacloud`091NUMDETFRAMES`093;
  102. XW_Icon etorp, mtorp;
  103. XW_Icon eplasmatorp, mplasmatorp;
  104. XW_Icon shield, cloakicon, tractbits, pressbits;`009/* ATM - visible tractors
  105. V */
  106. XW_Icon fed_bitmaps`091NUM_TYPES`093`091VIEWS`093,
  107. X       kli_bitmaps`091NUM_TYPES`093`091VIEWS`093,
  108. X       rom_bitmaps`091NUM_TYPES`093`091VIEWS`093,
  109. X       ori_bitmaps`091NUM_TYPES`093`091VIEWS`093,
  110. X       ind_bitmaps`091NUM_TYPES`093`091VIEWS`093;
  111. XW_Icon bplanets`0916`093;
  112. XW_Icon mbplanets`0916`093;
  113. XW_Icon bplanets2`0918`093;
  114. XW_Icon mbplanets2`0918`093;
  115. X
  116. Xchar teamlet`091`093 = `123'I', 'F', 'R', 'X', 'K', 'X', 'X', 'X', 'O'`125;
  117. Xchar *teamshort`0919`093 = `123"IND", "FED", "ROM", "X", "KLI", "X", "X", "X
  118. V", "ORI"`125;
  119. Xchar pseudo`091PSEUDOSIZE`093;
  120. Xchar login`091PSEUDOSIZE`093;
  121. X
  122. Xstruct rank ranks`091NUMRANKS`093 = `123
  123. X    `123 0.0, 0.0, 0.0, "Ensign"`125,
  124. X    `123 2.0, 1.0, 0.0, "Lieutenant"`125,
  125. X    `123 4.0, 2.0, 0.8, "Lt. Cmdr."`125,`032
  126. X    `123 8.0, 3.0, 0.8, "Commander"`125,
  127. X    `12315.0, 4.0, 0.8, "Captain"`125,
  128. X    `12320.0, 5.0, 0.8, "Flt. Capt."`125,
  129. X    `12325.0, 6.0, 0.8, "Commodore"`125,
  130. X    `12330.0, 7.0, 0.8, "Rear Adm."`125,
  131. X    `12340.0, 8.0, 0.8, "Admiral"`125`125;
  132. X
  133. XW_Window messagew, w, mapw, statwin, baseWin, infow, iconWin, tstatw,
  134. X`009war, warnw, helpWin, teamWin`0914`093, qwin, messwa, messwt, messwi, mes
  135. Vswk,
  136. X`009planetw, playerw, rankw, optionWin = 0, reviewWin, scanw, scanwin;
  137. XW_Window udpWin;
  138. X
  139. $ CALL UNPACK DATA.C;1 420243960
  140. $ create/nolog 'f'
  141. X/*
  142. X * data.h
  143. X */
  144. X#include "copyright.h"
  145. X#ifdef VMS
  146. X#include "struct.h"
  147. X#endif
  148. X
  149. X#define EX_FRAMES `009`0095
  150. X#define SBEXPVIEWS `009`0097
  151. X#define NUMDETFRAMES`009`0095`009/* # frames in torp explosion */
  152. X#define ex_width        `00964
  153. X#define ex_height       `00964
  154. X#define sbexp_width        `00980
  155. X#define sbexp_height       `00980
  156. X#define cloud_width `009`0099
  157. X#define cloud_height `009`0099
  158. X#define plasmacloud_width `00913
  159. X#define plasmacloud_height `00913
  160. X#define etorp_width `009`0093
  161. X#define etorp_height `009`0093
  162. X#define eplasmatorp_width `0097
  163. X#define eplasmatorp_height `0097
  164. X#define mplasmatorp_width `0095
  165. X#define mplasmatorp_height `0095
  166. X#define mtorp_width `009`0093
  167. X#define mtorp_height `009`0093
  168. X#define crossmask_width `00916
  169. X#define crossmask_height `00916
  170. X#define planet_width `009`00930
  171. X#define planet_height `009`00930
  172. X#define mplanet_width `009`00916
  173. X#define mplanet_height `009`00916
  174. X#define shield_width `009`00920
  175. X#define shield_height `009`00920
  176. X#define cloak_width`009`00920
  177. X#define cloak_height`009`00920
  178. X#define icon_width `009`009112
  179. X#define icon_height `009`00980
  180. X
  181. Xextern struct player *players;
  182. Xextern struct player *me;
  183. Xextern struct torp *torps;
  184. Xextern struct plasmatorp *plasmatorps;
  185. Xextern struct status *status;
  186. Xextern struct ship *myship;
  187. Xextern struct stats *mystats;
  188. Xextern struct planet *planets;
  189. Xextern struct phaser *phasers;
  190. Xextern struct message *messages;
  191. Xextern struct mctl *mctl;
  192. Xextern struct team *teams;
  193. Xextern struct memory universe;
  194. Xextern struct planet pdata`091`093;
  195. X
  196. Xextern int oldalert;
  197. Xextern int remap`091`093;
  198. Xextern int udcounter;
  199. Xextern int messpend;
  200. Xextern int lastcount;
  201. Xextern int mdisplayed;
  202. Xextern int redrawall;
  203. Xextern int nopilot;
  204. Xextern int watch;
  205. Xextern int selfdest;
  206. Xextern int lastm;
  207. Xextern int delay;
  208. Xextern int rdelay;
  209. Xextern int mapmode;`032
  210. Xextern int namemode;`032
  211. Xextern int showShields;
  212. Xextern int showStats;
  213. Xextern int msgBeep;`009/* ATM - msg beep */
  214. Xextern int warncount;
  215. Xextern int warntimer;
  216. Xextern int infomapped;
  217. Xextern int scanmapped;`009/* ATM - scanner stuff */
  218. Xextern int mustexit;
  219. Xextern int messtime;
  220. Xextern int keeppeace;
  221. Xextern int showlocal, showgalactic;
  222. Xextern char *shipnos;
  223. Xextern int sock;
  224. Xextern int xtrekPort;
  225. Xextern int queuePos;
  226. Xextern int pickOk;
  227. Xextern int lastRank;
  228. Xextern int promoted;
  229. Xextern int loginAccept;
  230. Xextern unsigned localflags;
  231. Xextern int tournMask;
  232. Xextern int nextSocket;
  233. Xextern int updatePlayer`091`093;
  234. Xextern char *serverName;
  235. Xextern int loggedIn;
  236. Xextern int reinitPlanets;
  237. Xextern int redrawPlayer`091`093;
  238. Xextern int lastUpdate`091`093;
  239. Xextern int timerDelay;
  240. Xextern int reportKills;
  241. Xextern int scanplayer;
  242. Xextern int showTractor;
  243. Xextern char *netaddrstr;
  244. Xextern int commMode;`009`009/* UDP */
  245. Xextern int commModeReq;`009`009/* UDP */
  246. Xextern int commStatus;`009`009/* UDP */
  247. Xextern int commSwitchTimeout;`009/* UDP */
  248. Xextern int udpTotal;`009`009/* UDP */
  249. Xextern int udpDropped;`009`009/* UDP */
  250. Xextern int udpRecentDropped;`009/* UDP */
  251. Xextern int udpSock;`009`009/* UDP */
  252. Xextern int udpDebug;`009`009/* UDP */
  253. Xextern int udpClientSend;`009/* UDP */
  254. Xextern int udpClientRecv;`009/* UDP */
  255. Xextern int udpSequenceChk;`009/* UDP */
  256. X#ifdef GATEWAY
  257. Xextern int gw_serv_port, gw_port, gw_local_port;`009/* UDP */
  258. Xextern char *gw_mach;`009`009/* UDP */
  259. X#endif
  260. X
  261. X#ifdef VMS  /* vms links everything in uppercase so we have to convert sin`0
  262. V91`093 to sintab */
  263. Xextern double`009Sintab`091`093, Costab`091`093;
  264. X#else /* unix */
  265. Xextern double`009Sin`091`093, Cos`091`093;
  266. X#endif
  267. X
  268. Xextern W_Icon stipple, clockpic, icon;
  269. X
  270. X#define VIEWS 16
  271. X#define NUM_TYPES 8`009`009/* ATM - Galaxy */
  272. Xextern W_Icon expview`091EX_FRAMES`093;
  273. Xextern W_Icon sbexpview`091SBEXPVIEWS`093;
  274. Xextern W_Icon cloud`091NUMDETFRAMES`093;
  275. Xextern W_Icon plasmacloud`091NUMDETFRAMES`093;
  276. Xextern W_Icon etorp, mtorp;
  277. Xextern W_Icon eplasmatorp, mplasmatorp;
  278. Xextern W_Icon shield, cloakicon, tractbits, pressbits;`009/* ATM - vis tract
  279. Vors */
  280. Xextern W_Icon fed_bitmaps`091NUM_TYPES`093`091VIEWS`093,
  281. X       `009      kli_bitmaps`091NUM_TYPES`093`091VIEWS`093,
  282. X       `009      rom_bitmaps`091NUM_TYPES`093`091VIEWS`093,
  283. X       `009      ori_bitmaps`091NUM_TYPES`093`091VIEWS`093,
  284. X`009      ind_bitmaps`091NUM_TYPES`093`091VIEWS`093;
  285. Xextern W_Icon bplanets`0916`093;
  286. Xextern W_Icon mbplanets`0916`093;
  287. Xextern W_Icon bplanets2`0918`093;
  288. Xextern W_Icon mbplanets2`0918`093;
  289. X
  290. Xextern W_Color`009borderColor, backColor, textColor, myColor,`032
  291. X`009`009warningColor, shipCol`0915`093, rColor, yColor,
  292. X`009`009gColor, unColor, foreColor;
  293. X
  294. Xextern char teamlet`091`093;
  295. Xextern char *teamshort`091`093;
  296. Xextern char pseudo`091PSEUDOSIZE`093;
  297. Xextern char login`091PSEUDOSIZE`093;
  298. X
  299. Xextern struct rank ranks`091NUMRANKS`093;
  300. X
  301. Xextern W_Window`009messagew, w, mapw, statwin, baseWin, infow, iconWin, tsta
  302. Vtw,
  303. X`009`009war, warnw, helpWin, teamWin`0914`093, qwin, messwa, messwt, messwi,
  304. X`009`009messwk, planetw, rankw, playerw, optionWin, reviewWin, scanw,
  305. X`009`009scanwin;
  306. Xextern W_Window udpWin;
  307. $ CALL UNPACK DATA.H;1 1363583231
  308. $ create/nolog 'f'
  309. X/*
  310. X * death.c
  311. X */
  312. X#include "copyright.h"
  313. X
  314. X#include <stdio.h>
  315. X#include <signal.h>
  316. X#include <setjmp.h>
  317. X#include <types.h>
  318. X#ifdef hpux
  319. X#include <time.h>
  320. X#else /*hpux*/
  321. X#include <time.h>
  322. X#endif /*hpux*/
  323. X#include "Wlib.h"
  324. X#include "defs.h"
  325. X#include "struct.h"
  326. X#include "data.h"
  327. X
  328. Xextern jmp_buf env;
  329. X
  330. X#ifndef VMS /* this struct is not really used for the client */
  331. Xstatic struct itimerval udt;
  332. X#endif
  333. Xstatic char *teamstring`0919`093 = `123"", "and the Federation",
  334. X`009`009`009 "and the Romulan Empire", "",
  335. X`009`009`009 "and the Klingon Empire", "", "", "",
  336. X`009`009`009 "and the Orions"`125;
  337. X
  338. Xdeath()
  339. X`123
  340. X    char buf`09180`093;
  341. X    /*int i,j,k,first;*/
  342. X    W_Event event;
  343. X    W_Window oldw;`009/* ATM-death */
  344. X
  345. X    oldw = w;`009`009/* ATM-death */
  346. X    w = mapw;`009`009/* ATM-death */
  347. X
  348. X#ifndef VMS   /* I don't think this code is really used anywhere */
  349. X    /* Reset the signal */
  350. X    signal(SIGALRM, SIG_IGN);
  351. X    udt.it_interval.tv_sec = 0;
  352. X    udt.it_interval.tv_usec = 0;
  353. X    udt.it_value.tv_sec = 0;
  354. X    udt.it_value.tv_usec = 0;
  355. X    setitimer(ITIMER_REAL, &udt, 0);
  356. X    signal(SIGALRM, SIG_DFL);
  357. X#endif
  358. X
  359. X    W_ClearWindow(w);
  360. X    W_ClearWindow(iconWin);
  361. X    if (oldalert != PFGREEN) `123
  362. X`009W_ChangeBorder(baseWin, gColor);
  363. X`009oldalert=PFGREEN;
  364. X    `125
  365. X    if (W_IsMapped(statwin)) `123
  366. X`009W_UnmapWindow(statwin);
  367. X`009showStats=1;
  368. X    `125 else `123
  369. X`009showStats=0;
  370. X    `125
  371. X    if (infomapped)
  372. X`009destroyInfo();
  373. X    W_UnmapWindow(planetw);
  374. X    W_UnmapWindow(rankw);
  375. X    W_UnmapWindow(war);
  376. X    if (optionWin)
  377. X`009optiondone();
  378. X
  379. X    switch (me->p_whydead) `123
  380. X    case KQUIT:
  381. X`009sprintf(buf, "You have self-destructed.");
  382. X`009W_WriteText(w, 50, 80, textColor, buf, strlen(buf), W_RegularFont);
  383. X`009break;
  384. X    case KTORP:
  385. X`009sprintf(buf, "You were killed by a photon torpedo from %s (%c%c).",
  386. X`009    players`091me->p_whodead`093.p_name,
  387. X`009    teamlet`091players`091me->p_whodead`093.p_team`093,
  388. X`009    shipnos`091me->p_whodead`093);
  389. X`009W_WriteText(w, 50, 80, textColor, buf, strlen(buf), W_RegularFont);
  390. X`009break;
  391. X    case KPLASMA:
  392. X`009sprintf(buf, "You were killed by a plasma torpedo from %s (%c%c)",
  393. X`009    players`091me->p_whodead`093.p_name,
  394. X`009    teamlet`091players`091me->p_whodead`093.p_team`093,
  395. X`009    shipnos`091me->p_whodead`093);
  396. X`009W_WriteText(w, 50, 80, textColor, buf, strlen(buf), W_RegularFont);
  397. X`009break;
  398. X    case KPHASER:
  399. X`009sprintf(buf, "You were killed by a phaser shot from %s (%c%c)",
  400. X`009    players`091me->p_whodead`093.p_name,
  401. X`009    teamlet`091players`091me->p_whodead`093.p_team`093,
  402. X`009    shipnos`091me->p_whodead`093);
  403. X`009W_WriteText(w, 50, 80, textColor, buf, strlen(buf), W_RegularFont);
  404. X`009break;
  405. X    case KPLANET:
  406. X`009sprintf(buf, "You were killed by planetary fire from %s (%c)",
  407. X`009    planets`091me->p_whodead`093.pl_name,
  408. X`009    teamlet`091planets`091me->p_whodead`093.pl_owner`093);
  409. X`009W_WriteText(w, 50, 80, textColor, buf, strlen(buf), W_RegularFont);
  410. X`009break;
  411. X    case KSHIP:
  412. X`009sprintf(buf, "You were killed by an exploding ship formerly owned by %s
  413. V (%c%c)",
  414. X`009    players`091me->p_whodead`093.p_name,
  415. X`009    teamlet`091players`091me->p_whodead`093.p_team`093,
  416. X`009    shipnos`091me->p_whodead`093);
  417. X`009W_WriteText(w, 50, 80, textColor, buf, strlen(buf), W_RegularFont);
  418. X`009break;
  419. X    case KDAEMON:
  420. X`009sprintf(buf, "You were killed by a dying daemon.");
  421. X`009W_WriteText(w, 50, 80, textColor, buf, strlen(buf), W_RegularFont);
  422. X`009break;
  423. X    case KWINNER:
  424. X`009sprintf(buf, "Galaxy has been conquered by %s (%c%c) %s",
  425. X`009    players`091me->p_whodead`093.p_name,
  426. X`009    teamlet`091players`091me->p_whodead`093.p_team`093,
  427. X`009    shipnos`091players`091me->p_whodead`093.p_no`093,
  428. X`009    teamstring`091players`091me->p_whodead`093.p_team`093);
  429. X`009W_WriteText(w, 50, 80, textColor, buf, strlen(buf), W_RegularFont);
  430. X`009break;
  431. X    case KGHOST:
  432. X`009sprintf(buf, "You were killed by a confused daemon.");
  433. X`009W_WriteText(w, 50, 80, textColor, buf, strlen(buf), W_RegularFont);
  434. X`009break;
  435. X    case KGENOCIDE:
  436. X`009sprintf(buf, "Your team was genocided by %s (%c%c) %s.",
  437. X`009    players`091me->p_whodead`093.p_name,
  438. X`009    teamlet`091players`091me->p_whodead`093.p_team`093,
  439. X`009    shipnos`091me->p_whodead`093,
  440. +-+-+-+-+-+-+-+-  END  OF PART 19 +-+-+-+-+-+-+-+-
  441.