home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / vmsnet / sources / games / 447 < 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 36/47
  4. Message-ID: <1992Nov20.201846.1@acad2.alaska.edu>
  5. From: asdmf@acad2.alaska.edu
  6. Date: Sat, 21 Nov 1992 00:18:46 GMT
  7. Sender: news@raven.alaska.edu (USENET News System)
  8. Organization: University of Alaska
  9. Nntp-Posting-Host: acad2.alaska.edu
  10. Lines: 460
  11.  
  12. -+-+-+-+-+-+-+-+ START OF PART 36 -+-+-+-+-+-+-+-+
  13. X    stline(1);`009/* This is for refresh.  We redraw player stats too */
  14. X    sprintf(buf,`032
  15. X`009"Flags        Warp Dam Shd Torps  Kills Armies   Fuel  Wtemp Etemp");
  16. X    W_WriteText(tstatw, 50, 5, textColor, buf, strlen(buf), W_RegularFont);
  17. X    sprintf(buf,
  18. X`009   "Maximum:      %2d  %3d %3d               %3d   %6d   %3d   %3d",
  19. X`009   me->p_ship.s_maxspeed, me->p_ship.s_maxdamage,
  20. X`009   me->p_ship.s_maxshield, me->p_ship.s_maxarmies,`032
  21. X`009   me->p_ship.s_maxfuel, me->p_ship.s_maxwpntemp/10,`032
  22. X`009   me->p_ship.s_maxegntemp/10);
  23. X    W_WriteText(tstatw, 50, 27, textColor, buf, strlen(buf), W_RegularFont);
  24. X`125
  25. $ CALL UNPACK REDRAW.C;1 119804609
  26. $ create/nolog 'f'
  27. X/* reserved.c
  28. X *`032
  29. X * Kevin P. Smith   7/3/89
  30. X */
  31. X#include "copyright2.h"
  32. X#include <stdio.h>
  33. X#include <types.h>
  34. X#include <socket.h>
  35. X#include <in.h>
  36. X#include <netdb.h>
  37. X#include "packets.h"
  38. X
  39. XmakeReservedPacket(packet)
  40. Xstruct reserved_spacket *packet;
  41. X`123
  42. X    int i;
  43. X
  44. X    for (i=0; i<16; i++) `123
  45. X`009packet->data`091i`093=random() % 256;
  46. X    `125
  47. X    packet->type = SP_RESERVED;
  48. X`125
  49. X
  50. XencryptReservedPacket(spacket, cpacket, server, pno)
  51. Xstruct reserved_spacket *spacket;
  52. Xstruct reserved_cpacket *cpacket;
  53. Xchar *server;
  54. Xint pno;
  55. X`123
  56. X    struct hostent *hp;
  57. X    struct in_addr address;
  58. X    unsigned char mixin1, mixin2, mixin3, mixin4, mixin5;
  59. X    int i,j,k;
  60. X    char buf`09116`093;
  61. X    unsigned char *s;
  62. X   `032
  63. X    bcopy(spacket->data, cpacket->data, 16);
  64. X    bcopy(spacket->data, cpacket->resp, 16);
  65. X    cpacket->type=CP_RESERVED;
  66. X
  67. X/*
  68. X    if ((address.s_addr = inet_addr(server)) == -1) `123
  69. X`009if ((hp = gethostbyname(server)) == NULL) `123
  70. X`009    fprintf(stderr, "I don't know any %s!\n", server);
  71. X`009    exit(1);
  72. X`009`125 else `123
  73. X`009    address.s_addr = *(long *) hp->h_addr;
  74. X`009`125
  75. X    `125
  76. X
  77. X    mixin1 = address.s_net;
  78. X    mixin2 = pno;
  79. X    mixin3 = address.s_host;
  80. X    mixin4 = address.s_lh;
  81. X    mixin5 = address.s_impno;
  82. X */
  83. X
  84. X    /* Now you've got 5 random bytes to play with (mixin`0911-5`093), to`032
  85. X     *  help in coming up with an encryption of your data.
  86. X     */
  87. X
  88. X    /* Encryption algorithm goes here.
  89. X     * Take the 16 bytes in cpacket->data, and create cpacket->resp,
  90. X     *   which you require the client to also do.  If he fails, he
  91. X     *   gets kicked out.
  92. X     */
  93. X
  94. X`125
  95. $ CALL UNPACK RESERVED.C;1 2065895101
  96. $ create/nolog 'f'
  97. X/*
  98. X * scan.c
  99. X */
  100. X#include "copyright.h"
  101. X
  102. X#include <stdio.h>
  103. X#include "Wlib.h"
  104. X#include "defs.h"
  105. X#include "struct.h"
  106. X#include "data.h"
  107. X#include "packets.h"
  108. X
  109. X/* ATM - scanner stuff */
  110. Xstatic W_Window scanww;
  111. Xstatic int scanmx, scanmy;
  112. X
  113. Xscan(ww, x, y)
  114. XW_Window ww;
  115. Xint x, y;
  116. X`123
  117. X    struct obtype *gettarget(), *target;
  118. X
  119. X    scanww = ww;`009/* remember these for later */
  120. X    scanmx = x;
  121. X    scanmy = y;
  122. X
  123. X    /* find player nearest to mouse */
  124. X    target = gettarget(ww, x, y, TARG_PLAYER);
  125. X
  126. X    /* don't scan myself */
  127. X    if (target->o_num == me->p_no) `123
  128. X`009warning("Nobody to scan");
  129. X`009return;
  130. X    `125
  131. X
  132. X    /* send the request to the server */
  133. X    sendScanReq(target->o_num);
  134. X`125
  135. X
  136. XinformScan(pnum)
  137. Xint pnum;
  138. X`123
  139. X    scanplayer = pnum;
  140. X    W_MapWindow(scanwin);
  141. X    scanmapped = 1;
  142. X    redrawScan();
  143. X    calibrate_scan();
  144. X    updateScan();
  145. X`125
  146. X
  147. X
  148. X/* from here on it's from stats.c */
  149. X
  150. X#define`009MIN(a,b)`009(((a) < (b)) ? (a) : (b))
  151. X
  152. X#define`009BX_OFF()`009((textWidth + 1) * W_Textwidth + S_IBORDER)
  153. X#define`009BY_OFF(line)`009((line) * (W_Textheight + S_IBORDER) + S_IBORDER)
  154. X#define`009TX_OFF(len)`009((textWidth - len) * W_Textwidth + S_IBORDER)
  155. X#define`009TY_OFF(line)`009BY_OFF(line)
  156. X
  157. X#define SCAN_WIDTH`009`009160
  158. X#define SCAN_HEIGHT`009`009BY_OFF(NUM_SLIDERS)
  159. X#define SCAN_BORDER`009`0092
  160. X#define S_IBORDER`009`0095
  161. X#define SCAN_X`009`009`009422
  162. X#define SCAN_Y`009`009`00913
  163. X
  164. X#define SL_WID`009`009`009\
  165. X`009(SCAN_WIDTH - 2 * S_IBORDER - (textWidth + 1) * W_Textwidth)
  166. X#define SL_HEI`009`009`009(W_Textheight)
  167. X
  168. X#define NUM_ELS(a)`009`009(sizeof (a) / sizeof (*(a)))
  169. X#define NUM_SLIDERS`009`009NUM_ELS(scanners)
  170. X
  171. Xtypedef struct slider `123
  172. X`009char`009*label;
  173. X`009int`009min, max;
  174. X`009int`009low_red, high_red;
  175. X`009int`009label_length;
  176. X`009int`009diff;
  177. X`009int`009*var;
  178. X`009int`009lastVal;
  179. X`125 SLIDER;
  180. X
  181. Xtypedef struct record `123
  182. X`009int`009*data;
  183. X`009int`009last_value;
  184. X`125 RECORD;
  185. X
  186. Xstatic SLIDER`009scanners`091`093 = `123
  187. X`009`123 "Shields",`009`0090,`009100,`00920,`009100`009`125,
  188. X`009`123 "Damage",`009`0090,`009100,`0090,`0090`009`125,
  189. X`009`123 "Fuel",`009`0090,`00910000,`0092000,`00910000`009`125,
  190. X`009`123 "Warp",`009`0090,`0099,`0090,`0099`009`125,
  191. X`009`123 "Weapon Temp",`0090,`0091200,`0090,`009800`009`125,
  192. X`009`123 "Engine Temp",`0090,`0091200,`0090,`009800`009`125,
  193. X`125;
  194. X
  195. Xstatic int`009`009textWidth = 0;
  196. Xstatic int `009`009initialized = 0;
  197. X
  198. XinitScan()
  199. X`123
  200. X    int`009i;
  201. X    /*char`009*str;*/
  202. X    scanners`0910`093.var = &(players`091scanplayer`093.p_shield);
  203. X    scanners`0911`093.var = &(players`091scanplayer`093.p_damage);
  204. X    scanners`0912`093.var = &(players`091scanplayer`093.p_fuel);
  205. X    scanners`0913`093.var = &(players`091scanplayer`093.p_speed);
  206. X    scanners`0914`093.var = &(players`091scanplayer`093.p_wtemp);
  207. X    scanners`0915`093.var = &(players`091scanplayer`093.p_etemp);
  208. X    for (i = 0; i < NUM_SLIDERS; i++) `123
  209. X`009scanners`091i`093.label_length = strlen(scanners`091i`093.label);
  210. X`009textWidth = MAX(textWidth, scanners`091i`093.label_length);
  211. X`009scanners`091i`093.diff = scanners`091i`093.max - scanners`091i`093.min;
  212. X`009scanners`091i`093.lastVal=0;
  213. X    `125
  214. X`125
  215. X
  216. XredrawScan()
  217. X`123
  218. X    int`009i;
  219. X    char tempstr`091128`093;
  220. X
  221. X    W_ClearWindow(scanwin);
  222. X    initScan();
  223. X    for (i=0; i<NUM_SLIDERS; i++) `123
  224. X`009scanners`091i`093.lastVal=0;
  225. X    `125
  226. X
  227. X    sprintf(tempstr,"SCAN of %s(%c%d)",players`091scanplayer`093.p_name,
  228. X`009teamlet`091players`091scanplayer`093.p_team`093,players`091scanplayer`09
  229. V3.p_no);
  230. X    W_WriteText(scanwin, 0, TY_OFF(0),
  231. X`009textColor, tempstr, strlen(tempstr), W_RegularFont);
  232. X    for (i = 0; i < NUM_SLIDERS; i++) `123
  233. X`009W_WriteText(scanwin, TX_OFF(scanners`091i`093.label_length), TY_OFF(i+1)
  234. V,
  235. X`009    textColor, scanners`091i`093.label, scanners`091i`093.label_length,
  236. X`009    W_RegularFont);
  237. X`009drwbox(0, BX_OFF() - 1, BY_OFF(i+1) - 1, SL_WID+2, SL_HEI+2, borderColor
  238. V);
  239. X`009scanners`091i`093.lastVal=0;
  240. X    `125
  241. X    W_WriteText(scanwin, TX_OFF(strlen("Armies:")), TY_OFF(NUM_SLIDERS+1),
  242. X`009textColor, "Armies:", strlen("Armies:"), W_RegularFont);
  243. X    sprintf(tempstr,"%d",players`091scanplayer`093.p_armies);
  244. X    W_WriteText(scanwin, BX_OFF()-1, TY_OFF(NUM_SLIDERS+1),
  245. X`009textColor, tempstr, strlen(tempstr), W_RegularFont);
  246. X`125
  247. X
  248. XupdateScan()
  249. X`123
  250. X    int`009i, value, diff, old_x, new_x;
  251. X    W_Color color;
  252. X    SLIDER`009*s;
  253. X
  254. X    initScan();
  255. X    for (i = 0; i < NUM_SLIDERS; i++) `123
  256. X`009s = &scanners`091i`093;
  257. X`009value= *(s->var);
  258. X`009if (value < s->min)
  259. X`009    value = s->min;
  260. X`009else if (value > s->max)
  261. X`009    value = s->max;
  262. X`009if (value == s->lastVal)
  263. X`009    continue;
  264. X`009diff = value - s->lastVal;
  265. X`009if (diff < 0) `123
  266. X`009    old_x = s->lastVal * SL_WID / s->diff;
  267. X`009    new_x = value * SL_WID / s->diff;
  268. X`009    drwbox(1, BX_OFF()+new_x, BY_OFF(i+1), old_x-new_x, SL_HEI, backColo
  269. Vr);
  270. X
  271. X`009    if (s->lastVal >= s->low_red && value < s->low_red)`032
  272. X`009`009drwbox(1, BX_OFF(), BY_OFF(i+1), new_x, SL_HEI, warningColor);
  273. X`009    else if (s->lastVal > s->high_red && value <= s->high_red)`032
  274. X`009`009drwbox(1, BX_OFF(), BY_OFF(i+1), new_x, SL_HEI, myColor);
  275. X`009`125 else `123
  276. X`009    if (value < s->low_red)
  277. X`009`009color = warningColor;
  278. X`009    else if (value > s->high_red) `123
  279. X`009`009color = warningColor;
  280. X`009`009if (s->lastVal <= s->high_red)
  281. X`009`009    s->lastVal = 0;
  282. X`009    `125 else `123
  283. X`009`009color = myColor;
  284. X`009`009if (s->lastVal < s->low_red)
  285. X`009`009    s->lastVal = 0;
  286. X`009    `125
  287. X`009    old_x = s->lastVal * SL_WID / s->diff;
  288. X`009    new_x = value * SL_WID / s->diff;
  289. X`009    drwbox(1, BX_OFF() + old_x, BY_OFF(i+1), new_x - old_x, SL_HEI, colo
  290. Vr);
  291. X`009`125
  292. X`009s->lastVal=value;
  293. X    `125
  294. X`125
  295. X
  296. Xdrwbox(filled, x, y, wid, hei, color)
  297. Xint filled, x, y, wid, hei;
  298. XW_Color color;
  299. X`123
  300. X    if (wid==0) return;
  301. X    if (filled) `123
  302. X`009W_ClearArea(scanwin, x, y, wid+1, hei+1, color);
  303. X`009return;
  304. X    `125
  305. X
  306. X    W_MakeLine(scanwin,x,y,x+wid,y,color);
  307. X    W_MakeLine(scanwin,x+wid,y,x+wid,y+hei,color);
  308. X    W_MakeLine(scanwin,x+wid,y+hei,x,y+hei,color);
  309. X    W_MakeLine(scanwin,x,y+hei,x,y,color);
  310. X`125
  311. X
  312. X
  313. Xcalibrate_scan()
  314. X`123
  315. X    register int i;
  316. X
  317. X    scanners`0910`093.max = players`091scanplayer`093.p_ship.s_maxshield;
  318. X    scanners`0910`093.low_red = .20 * ((double) scanners`0910`093.max);
  319. X    scanners`0910`093.high_red = scanners`0910`093.max;
  320. X
  321. X    scanners`0911`093.max = players`091scanplayer`093.p_ship.s_maxdamage;
  322. X
  323. X    scanners`0912`093.max = players`091scanplayer`093.p_ship.s_maxfuel;
  324. X    scanners`0912`093.low_red = .20 * ((double) scanners`0912`093.max);
  325. X    scanners`0912`093.high_red = scanners`0912`093.max;
  326. X
  327. X    scanners`0913`093.max = players`091scanplayer`093.p_ship.s_maxspeed;
  328. X    scanners`0913`093.high_red = scanners`0913`093.max;
  329. X
  330. X    scanners`0914`093.max = 1.2 * ((double) players`091scanplayer`093.p_ship
  331. V.s_maxwpntemp);
  332. X    scanners`0914`093.high_red = .667 * ((double) scanners`0914`093.max);
  333. X
  334. X    scanners`0915`093.max = 1.2 * ((double) players`091scanplayer`093.p_ship
  335. V.s_maxegntemp);
  336. X    scanners`0915`093.high_red = .667 * ((double) scanners`0915`093.max);
  337. X
  338. X    for (i=0; i<NUM_SLIDERS; i++)`032
  339. X`009scanners`091i`093.diff = scanners`091i`093.max - scanners`091i`093.min;
  340. X
  341. X`125
  342. X
  343. $ CALL UNPACK SCAN.C;1 1076648455
  344. $ create/nolog 'f'
  345. XFrom: tom@ocf.berkeley.edu (Tom Holub)
  346. XNewsgroups: rec.games.netrek,alt.games.xtrek,news.answers
  347. XSubject: Netrek Server List
  348. XSupersedes: <netreklist_706850674@ocf.berkeley.edu>
  349. XFollowup-To: rec.games.netrek
  350. XDate: 20 Jun 1992 03:09:03 GMT
  351. XOrganization: University of California, Berkeley
  352. XReply-To: tom@ocf.berkeley.edu
  353. XNNTP-Posting-Host: sandstorm.berkeley.edu
  354. XOriginator: tom@sandstorm.berkeley.edu
  355. X
  356. XLast-Updated: 19 Jun 1992
  357. XArchive-Name: netrek/server-list
  358. XChanges: Many servers not responding or down.
  359. X
  360. X
  361. XThis is a list of all known public Netrek servers.  If you know of any`032
  362. Xothers, or if any of my information is wrong, please mail
  363. Xtom@ocf.Berkeley.EDU.
  364. X `032
  365. X
  366. XServer name`009`009`009INET address`009Port`009Notes
  367. X
  368. Xbezier.berkeley.edu`009`009128.32.150.109`0092592`009Biggest western, UDP.
  369. X
  370. Xsickdog.cs.berkeley.edu`009`009128.32.240.135`0092592`009Replaces bigdog, UD
  371. VP.
  372. X
  373. Xbronco.ece.cmu.edu`009`009128.2.210.65`0092592`009Biggest eastern, UDP.
  374. X
  375. Xrwd4.mach.cs.cmu.edu`009`009128.2.209.169`0092592`009Robot-oriented, UDP.
  376. X
  377. Xauk.warp.cs.cmu.edu`009`009128.2.242.102`0092592`009Clue-only
  378. X
  379. Xhydrus.ece.cmu.edu`009`009128.2.236.147`0092592`009Bronco clone.
  380. X
  381. Xneedmore.cs.utexas.edu`009`009128.83.138.122`0093737`009Apparently down.
  382. X
  383. Xgrit.cs.utexas.edu`009`009128.83.138.115`0092592`009Chaos, UDP.
  384. X
  385. Xhpserv.math.tamu.edu`009`009128.194.7.8`0092592`009Texas A&M, UDP.
  386. X
  387. Xmatt.ksu.ksu.edu`009`009129.130.1.64`0095854`009KSU chaos server.
  388. X
  389. Xnetrek.cis.ksu.edu`009`009129.130.10.87`0095855`009KSU chaos, UDP.
  390. X
  391. Xpeanuts.informatik.uni-tuebingen.de 134.2.14.1`0092592`009Germany.
  392. X
  393. Xbayes.ibr.cs.tu-bs.de`009`009134.169.34.33`0095855`009Germany, UDP.
  394. X
  395. Xmelmac.risc.uni-linz.ac.at`009140.78.140.60`0092592`009Austria, UDP.
  396. X
  397. Xiacrs2.unibe.ch`009`009`009130.92.11.4`009592`009Swiss server, UDP.
  398. X
  399. Xuhura.fmi.uni-passau.de`009`009132.231.51.224`00921212`009Germany.
  400. X
  401. Xlegend.cma.fr`009`009`009192.33.149.15`0092592`009France, UDP.
  402. X
  403. Xcalvin.usc.edu`009`009`009128.125.62.143`0092592`009USC server, UDP.
  404. X
  405. Xscws9.harvard.edu`009`009128.103.25.59`0092592`009Harvard server, UDP.
  406. X
  407. Xtbird.cc.iastate.edu`009`009129.186.140.11`0092592`009Iowa State, UDP.
  408. X
  409. Xpanther.ecss.iastate.edu`009129.186.141.248`0092592`009Iowa State, UDP.
  410. X
  411. Xultrix.csc.usf.edu`009`009131.247.31.1`0092592`009South Florida.
  412. X
  413. Xfife.ecn.purdue.edu`009`009128.46.130.169`0092592`009Purdue, UDP.
  414. X
  415. Xsturgeon.cs.washington.edu`009128.95.1.58`0092592`009U Washington, UDP.
  416. X
  417. Xsturgeon.cs.washington.edu`009128.95.1.58`0093592`009Scrod's new home, UDP.
  418. X
  419. Xharvey.cs.umd.edu`009`009128.8.128.178`0092592`009Maryland, UDP.
  420. X
  421. Xdiscovery.cl.msu.edu`009`00935.8.1.220`0092592`009Michigan, UDP.
  422. X
  423. Xesrg.ucsb.edu`009`009`009128.111.228.1`0092592`009UC Santa Barbara.
  424. X
  425. Xnewton.physics.ucla.edu`009`009128.97.23.41`0092592`009Apparently down.
  426. X
  427. Xnetrek.atd.ucar.edu`009`009128.117.80.14`0092592`009Colorado, UDP.
  428. X
  429. Xpanda.lpl.arizona.edu`009`009128.196.64.154`0092592`009Down for good.
  430. X
  431. Xflint.cs.brown.edu`009`009128.148.37.33`0092592`009User's choice, UDP.
  432. X
  433. Xghost.dsi.unimi.it`009`009149.132.1.2`0092592`009Italy, UDP.
  434. X
  435. Xnetrek.cs.mcgill.ca`009`009132.206.51.3`0092592`009Canada.
  436. X
  437. Xbigmax.ulowell.edu`009`009129.63.32.1`0092592`009Mass., UDP.
  438. X
  439. Xalia.cs.umn.edu`009`009`009128.101.229.22`0092592`009New chaos, UDP.
  440. X
  441. XComments and server configurations:
  442. X
  443. XNOTE: It is an excellent idea to read the MOTD when you first log
  444. Xon to a server (use 'f' and 'b' to move forwards and backwards through
  445. Xthe news).
  446. X
  447. X
  448. Xbezier.berkeley.edu
  449. XServer source: from scam.berkeley.edu.
  450. XUDP: version 1.0.
  451. XHours: 5PM to 8AM Pacific time Monday-Friday, all day on weekends.
  452. XT-mode: 4 on 4.
  453. XCyborgs: Allowed Sunday, Monday, and Tuesday.
  454. XTheme nights: Wednesday, vector torps.
  455. XPing time from ocf.Berkeley.edu: 20-40.
  456. XPing time from ccon.hl.andrew.cmu.edu: 180-190.
  457. XPing time from utexas: 100-270.
  458. XMaintainer: sfd@miro.berkeley.edu.
  459. XComments: The biggest West Coast server, t-mode nearly every night.
  460. X
  461. Xsuckdog.cs.berkeley.edu
  462. XServer source: Scam.
  463. XUDP: version 1.0
  464. XHours: 5PM to 8AM Pacific time Monday-Friday, all day on weekends.
  465. XT-mode: 4 on 4.
  466. XCyborgs: Never allowed.  Blessed binaries required.
  467. XTheme nights: Friday, three-race war.
  468. X`009      Monday and Tuesday, hockey.
  469. XPing time from ocf: 15-30.
  470. XMaintainer: jh@bigdog.berkeley.edu.
  471. +-+-+-+-+-+-+-+-  END  OF PART 36 +-+-+-+-+-+-+-+-
  472.