home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume1 / cent.patch1 < prev    next >
Internet Message Format  |  1987-08-05  |  33KB

  1. Path: uunet!seismo!ut-sally!im4u!rutgers!ames!ucbcad!ucbvax!decvax!tektronix!tekgen!tekred!games-request
  2. From: games-request@tekred.TEK.COM
  3. Newsgroups: comp.sources.games
  4. Subject: v02i029:  cent - centipede video game, Patch1
  5. Message-ID: <1484@tekred.TEK.COM>
  6. Date: 5 Aug 87 16:46:31 GMT
  7. Sender: billr@tekred.TEK.COM
  8. Lines: 1446
  9. Approved: billr@tekred.TEK.COM
  10.  
  11. Submitted by: Nathan Glasser <nathan@eddie.mit.edu>
  12. Comp.sources.games: Volume 2, Issue 29
  13. Archive-name: cent/Patch1
  14.  
  15.  
  16. [[Several people have asked for fixes to make my centipede game run
  17. under System 5. I have received a set of patches from Keith Waclena 
  18. (..ihnp4!gargoyle!sphinx!kdw1, kdw1@sphinx.UChicago.{EDU,BITNET,MAILNET,CSNET})
  19. for System 5 which apparently correct some incompatibilities with 4.xBsd.
  20. I don't vouch for the correctness of these patches. I'm just passing
  21. them on.
  22.  
  23.                 - Nathan Glasser]]
  24.  
  25. #--------Cut here--------------------------------------------------
  26. #! /bin/sh
  27. # To extract, remove mail header lines and type "sh filename"
  28. echo x - cent-sys5.readme
  29. sed -e 's/^X//' > cent-sys5.readme << '!FaR!OuT!'
  30. XThese patches fix cent to run under System V.  I had to (or chose to):
  31. X
  32. Xo Remove job control references
  33. Xo Change some ioctls (but not much; my SysV has an sgtty.h that
  34. X  provides some compatibility).
  35. Xo Add a setblock() routine (and a lot of calls to it) that turns
  36. X  blocking reads on and off.
  37. Xo Change the load average code (but either I've done it wrong or my
  38. X  machine doesn't keep track of the load average: it's always 0).
  39. X  Mostly I just made it explain itself if it screws up.
  40. Xo Change the random number generator a bit.
  41. Xo Change score.c to use the user's preferred pager instead of assuming
  42. X  more(1), since most SysV sites a) don't have more(1), and b) most
  43. X  Unix sites I'm familiar with have multiple pagers available (e.g.,
  44. X  less(1)).  Same for the help file display.
  45. Xo Change calls to the FIONREAD ioctl() to use a one character
  46. X  lookahead buffer.
  47. Xo Change the keybindings to use hack/vi keys, like all the rest of our
  48. X  games (just my preference).
  49. X
  50. XStuff that still doesn't work and that I'd appreciate fixes to:
  51. X
  52. Xo The redrawscr() function doesn't.
  53. Xo Restored games don't redraw the screen, so you only see the things
  54. X  that have changed since the game restarted (like the centipede, the
  55. X  spider, yourself, and the shrooms that you zap).
  56. X
  57. X
  58. X[ These patches were produced and concatenated automatically by makepatch.]
  59. X
  60. XThis file contains all you need to convert the old version of cent
  61. Xto the latest version; it contains context diffs that will
  62. Xupdate the following files:
  63. X
  64. XMakefile                cent.c
  65. Xcent.h                    input.c
  66. Xinterrupts.c                la.c
  67. Xmove.c                    rand.c
  68. Xsave.c                    score.c
  69. Xstuff.c                    sys_dep.c
  70. Xsys_dep.h
  71. X
  72. XIf you have Larry Wall's patch program, you can feed this file to it,
  73. Xand you're all set.  Just cd to the directory where you keep the
  74. Xsource code for cent and say:
  75. X
  76. X        patch <patches
  77. X
  78. Xwhere "patches" is this file.
  79. X
  80. XIf not, you'll have to do it by hand (good luck!).
  81. X
  82. XThese patches were done by Keith Waclena 
  83. Xat University of Chicago, Graduate Library School on cerberus.
  84. X
  85. !FaR!OuT!
  86. echo x - cent-sys5.patch
  87. sed -e 's/^X//' > cent-sys5.patch << '!FaR!OuT!'
  88. X------------------------< Makefile >------------------------
  89. XIndex: Makefile
  90. X*** cent.orig/Makefile    Tue Jul  7 11:55:34 1987
  91. X--- cent/Makefile    Tue Jul  7 14:34:19 1987
  92. X***************
  93. X*** 1,7
  94. X  # makefile for centipede
  95. X  # edit sys_dep.c to adjust pathnames for your system
  96. X  #
  97. X! CFLAGS = -O
  98. X  
  99. X  OBJECTS = cent.o stuff.o input.o interrupts.o score.o move.o rand.o \
  100. X          save.o shoot.o la.o extern.o options.o sys_dep.o
  101. X
  102. X--- 1,7 -----
  103. X  # makefile for centipede
  104. X  # edit sys_dep.c to adjust pathnames for your system
  105. X  #
  106. X! CFLAGS = -O -DSYSV -Dindex=strchr
  107. X  
  108. X  OBJECTS = cent.o stuff.o input.o interrupts.o score.o move.o rand.o \
  109. X          save.o shoot.o la.o extern.o options.o sys_dep.o
  110. X***************
  111. X*** 7,13
  112. X          save.o shoot.o la.o extern.o options.o sys_dep.o
  113. X  
  114. X  cent:   $(OBJECTS)
  115. X!     cc -s -x -o cent $(OBJECTS) -lcurses -ltermcap -lm
  116. X  
  117. X  cent.o stuff.o input.o move.o shoot.o save.o extern.o options.o: cent.h
  118. X  input.o options.o: sys_dep.h
  119. X
  120. X--- 7,13 -----
  121. X          save.o shoot.o la.o extern.o options.o sys_dep.o
  122. X  
  123. X  cent:   $(OBJECTS)
  124. X!     cc -o cent $(OBJECTS) -lcurses -lm
  125. X  
  126. X  cent.o stuff.o input.o move.o shoot.o save.o extern.o options.o: cent.h
  127. X  input.o options.o: sys_dep.h
  128. X
  129. X------------------------< cent.c >------------------------
  130. XIndex: cent.c
  131. X*** cent.orig/cent.c    Tue Jul  7 11:55:35 1987
  132. X--- cent/cent.c    Tue Jul  7 11:57:13 1987
  133. X***************
  134. X*** 18,23
  135. X      printf("Usage: cent [-s] [savefile]\n");
  136. X      exit(0);
  137. X      }
  138. X      signal(SIGTSTP,SIG_IGN);
  139. X      signal(SIGQUIT,quit);
  140. X      signal(SIGINT,SIG_IGN);
  141. X
  142. X--- 18,24 -----
  143. X      printf("Usage: cent [-s] [savefile]\n");
  144. X      exit(0);
  145. X      }
  146. X+ #ifndef SYSV
  147. X      signal(SIGTSTP,SIG_IGN);
  148. X  #endif
  149. X      signal(SIGQUIT,catchint);
  150. X***************
  151. X*** 19,25
  152. X      exit(0);
  153. X      }
  154. X      signal(SIGTSTP,SIG_IGN);
  155. X!     signal(SIGQUIT,quit);
  156. X      signal(SIGINT,SIG_IGN);
  157. X      if (argc == 2 && !strcmp(argv[1],"-s"))
  158. X      showscores();
  159. X
  160. X--- 20,27 -----
  161. X      }
  162. X  #ifndef SYSV
  163. X      signal(SIGTSTP,SIG_IGN);
  164. X! #endif
  165. X!     signal(SIGQUIT,catchint);
  166. X      signal(SIGINT,SIG_IGN);
  167. X      if (argc == 2 && !strcmp(argv[1],"-s"))
  168. X      showscores();
  169. X***************
  170. X*** 26,32
  171. X      dooptions();
  172. X      strcpy(name,getlogin());
  173. X  #ifdef WIZARD
  174. X!     author = !strcmp(name,"nathan");
  175. X      if (author && getenv("CENTNAME") != NULL)
  176. X      strcpy(name,getenv("CENTNAME"));
  177. X  #endif
  178. X
  179. X--- 28,34 -----
  180. X      dooptions();
  181. X      strcpy(name,getlogin());
  182. X  #ifdef WIZARD
  183. X!     author = !strcmp(name,"keith");
  184. X      if (author && getenv("CENTNAME") != NULL)
  185. X      strcpy(name,getenv("CENTNAME"));
  186. X  #endif
  187. X***************
  188. X*** 52,57
  189. X      else
  190. X      instructions();
  191. X      signal(SIGINT,catchint);
  192. X      signal(SIGTSTP,catchstop);
  193. X      signal(SIGALRM,catchalarm);
  194. X      noecho();
  195. X
  196. X--- 54,60 -----
  197. X      else
  198. X      instructions();
  199. X      signal(SIGINT,catchint);
  200. X+ #ifndef SYSV
  201. X      signal(SIGTSTP,catchstop);
  202. X  #endif
  203. X      signal(SIGALRM,catchalarm);
  204. X***************
  205. X*** 53,58
  206. X      instructions();
  207. X      signal(SIGINT,catchint);
  208. X      signal(SIGTSTP,catchstop);
  209. X      signal(SIGALRM,catchalarm);
  210. X      noecho();
  211. X      crmode();
  212. X
  213. X--- 56,62 -----
  214. X      signal(SIGINT,catchint);
  215. X  #ifndef SYSV
  216. X      signal(SIGTSTP,catchstop);
  217. X+ #endif
  218. X      signal(SIGALRM,catchalarm);
  219. X      noecho();
  220. X      crmode();
  221. X
  222. X------------------------< cent.h >------------------------
  223. XIndex: cent.h
  224. X*** cent.orig/cent.h    Tue Jul  7 11:55:38 1987
  225. X--- cent/cent.h    Thu Jul  2 15:14:18 1987
  226. X***************
  227. X*** 4,9
  228. X  #include <sys/types.h>
  229. X  #include <sys/stat.h>
  230. X         /* stdio.h and sgtty.h are included by curses.h */
  231. X  
  232. X  #define FREEMAN 12000
  233. X  #define CENTLENGTH 20
  234. X
  235. X--- 4,13 -----
  236. X  #include <sys/types.h>
  237. X  #include <sys/stat.h>
  238. X         /* stdio.h and sgtty.h are included by curses.h */
  239. X+ #ifdef SYSV
  240. X+ #   include <fcntl.h>
  241. X+ #   include <sgtty.h>
  242. X+ #endif
  243. X  
  244. X  #define FREEMAN 12000
  245. X  #define CENTLENGTH 20
  246. X
  247. X------------------------< input.c >------------------------
  248. XIndex: input.c
  249. X*** cent.orig/input.c    Tue Jul  7 11:55:40 1987
  250. X--- cent/input.c    Sat Jul  4 14:45:28 1987
  251. X***************
  252. X*** 1,6
  253. X  #include "cent.h"
  254. X  #include "sys_dep.h"
  255. X  
  256. X  move_guy()
  257. X  {
  258. X      register int y, x, changed = 0;
  259. X
  260. X--- 1,11 -----
  261. X  #include "cent.h"
  262. X  #include "sys_dep.h"
  263. X  
  264. X+ #ifdef SYSV
  265. X+ #    undef getchar
  266. X+ #    define getchar cget
  267. X+ #endif
  268. X+ 
  269. X  move_guy()
  270. X  {
  271. X      register int y, x, changed = 0;
  272. X***************
  273. X*** 7,12
  274. X      int count,repeat = 0;
  275. X      char ch;
  276. X  
  277. X      ioctl(0,FIONREAD,&count);
  278. X      while (repeat || count--)
  279. X      {
  280. X
  281. X--- 12,18 -----
  282. X      int count,repeat = 0;
  283. X      char ch;
  284. X  
  285. X+ #ifndef SYSV
  286. X      ioctl(0,FIONREAD,&count);
  287. X  #else
  288. X      if (cready()) count = 1;
  289. X***************
  290. X*** 8,13
  291. X      char ch;
  292. X  
  293. X      ioctl(0,FIONREAD,&count);
  294. X      while (repeat || count--)
  295. X      {
  296. X      if (repeat)
  297. X
  298. X--- 14,23 -----
  299. X  
  300. X  #ifndef SYSV
  301. X      ioctl(0,FIONREAD,&count);
  302. X+ #else
  303. X+     if (cready()) count = 1;
  304. X+     else count = 0;
  305. X+ #endif
  306. X      while (repeat || count--)
  307. X      {
  308. X      if (repeat)
  309. X***************
  310. X*** 20,25
  311. X      x = guy.x;
  312. X      switch(ch)
  313. X      {
  314. X          case LEFT:
  315. X              x--;
  316. X          break;
  317. X
  318. X--- 30,38 -----
  319. X      x = guy.x;
  320. X      switch(ch)
  321. X      {
  322. X+         case '\014':        /* KDW */
  323. X+         redrawscr(); refresh();
  324. X+         break;
  325. X          case LEFT:
  326. X              x--;
  327. X          break;
  328. X***************
  329. X*** 113,116
  330. X      }
  331. X      if (changed)
  332. X      refresh();
  333. X  }
  334. X
  335. X--- 126,193 -----
  336. X      }
  337. X      if (changed)
  338. X      refresh();
  339. X+ }
  340. X+ 
  341. X+ /*
  342. X+  * KDW: setblock, cready and cget from Rochkind.
  343. X+  */
  344. X+ 
  345. X+ #define EMPTY '\0'
  346. X+ 
  347. X+ static char cbuf = EMPTY;
  348. X+ 
  349. X+ #define BOOLEAN int
  350. X+ #define FALSE 0
  351. X+ #define TRUE 1
  352. X+ 
  353. X+ setblock (fd, on)
  354. X+     int fd;
  355. X+     BOOLEAN on;
  356. X+ {
  357. X+     static int blockf, nonblockf;
  358. X+     static BOOLEAN first = TRUE;
  359. X+     int flags;
  360. X+ 
  361. X+     if (first)
  362. X+     {
  363. X+     first = FALSE;
  364. X+     if ((flags = fcntl(fd, F_GETFL, 0)) == -1)
  365. X+         perror("fcntl");
  366. X+     blockf = flags & ~O_NDELAY;
  367. X+     nonblockf = flags | O_NDELAY;
  368. X+     }
  369. X+     if (fcntl(fd, F_SETFL, on ? blockf : nonblockf) == -1)
  370. X+     perror("fcntl2");
  371. X+ }
  372. X+ 
  373. X+ BOOLEAN cready ()
  374. X+ {
  375. X+     if (cbuf != EMPTY)
  376. X+     return TRUE;
  377. X+     setblock(0, FALSE);
  378. X+     switch (read(0, &cbuf, 1))
  379. X+     {
  380. X+     case -1: perror("read"); break;
  381. X+     case 0:  return FALSE;
  382. X+     default: return TRUE;
  383. X+     }
  384. X+ }
  385. X+ 
  386. X+ int cget ()
  387. X+ {
  388. X+     char c;
  389. X+ 
  390. X+     if (cbuf != EMPTY)
  391. X+     {
  392. X+     c = cbuf;
  393. X+     cbuf = EMPTY;
  394. X+     return c & 0377;
  395. X+     }
  396. X+     setblock(0, TRUE);
  397. X+     switch (read(0, &c, 1))
  398. X+     {
  399. X+     case -1: perror("read"); break;
  400. X+     case 0:  return -1;
  401. X+     default: return c & 0377;
  402. X+     }
  403. X  }
  404. X
  405. X------------------------< interrupts.c >------------------------
  406. XIndex: interrupts.c
  407. X*** cent.orig/interrupts.c    Tue Jul  7 11:55:42 1987
  408. X--- cent/interrupts.c    Tue Jul  7 14:37:05 1987
  409. X***************
  410. X*** 19,24
  411. X  catchint()
  412. X  {
  413. X      signal(SIGINT,SIG_IGN);
  414. X      signal(SIGTSTP,SIG_IGN);
  415. X      inter = 1;
  416. X  }
  417. X
  418. X--- 19,25 -----
  419. X  catchint()
  420. X  {
  421. X      signal(SIGINT,SIG_IGN);
  422. X+ #ifndef SYSV
  423. X      signal(SIGTSTP,SIG_IGN);
  424. X  #endif
  425. X      inter = 1;
  426. X***************
  427. X*** 20,25
  428. X  {
  429. X      signal(SIGINT,SIG_IGN);
  430. X      signal(SIGTSTP,SIG_IGN);
  431. X      inter = 1;
  432. X  }
  433. X  
  434. X
  435. X--- 21,27 -----
  436. X      signal(SIGINT,SIG_IGN);
  437. X  #ifndef SYSV
  438. X      signal(SIGTSTP,SIG_IGN);
  439. X+ #endif
  440. X      inter = 1;
  441. X  }
  442. X  
  443. X***************
  444. X*** 25,30
  445. X  
  446. X  catchstop()
  447. X  {
  448. X      signal(SIGTSTP,SIG_IGN);
  449. X      signal(SIGINT,SIG_IGN);
  450. X      stopped = 1;
  451. X
  452. X--- 27,33 -----
  453. X  
  454. X  catchstop()
  455. X  {
  456. X+ #ifndef SYSV
  457. X      signal(SIGTSTP,SIG_IGN);
  458. X  #endif
  459. X      signal(SIGINT,SIG_IGN);
  460. X***************
  461. X*** 26,31
  462. X  catchstop()
  463. X  {
  464. X      signal(SIGTSTP,SIG_IGN);
  465. X      signal(SIGINT,SIG_IGN);
  466. X      stopped = 1;
  467. X  }
  468. X
  469. X--- 29,35 -----
  470. X  {
  471. X  #ifndef SYSV
  472. X      signal(SIGTSTP,SIG_IGN);
  473. X+ #endif
  474. X      signal(SIGINT,SIG_IGN);
  475. X      stopped = 1;
  476. X  }
  477. X***************
  478. X*** 40,45
  479. X      fflush(stdout);
  480. X      ioctl(0,TIOCGETP,&curseterm);
  481. X      ioctl(0,TIOCSETP,&origterm);
  482. X      signal(SIGTSTP,SIG_DFL);
  483. X      kill(getpid(),SIGTSTP);
  484. X      signal(SIGTSTP,SIG_IGN);
  485. X
  486. X--- 44,50 -----
  487. X      fflush(stdout);
  488. X      ioctl(0,TIOCGETP,&curseterm);
  489. X      ioctl(0,TIOCSETP,&origterm);
  490. X+ #ifndef SYSV
  491. X      signal(SIGTSTP,SIG_DFL);
  492. X      kill(getpid(),SIGTSTP);
  493. X      signal(SIGTSTP,SIG_IGN);
  494. X***************
  495. X*** 43,48
  496. X      signal(SIGTSTP,SIG_DFL);
  497. X      kill(getpid(),SIGTSTP);
  498. X      signal(SIGTSTP,SIG_IGN);
  499. X      stopped = 0;
  500. X      ioctl(0,TIOCSETP,&curseterm);
  501. X      redrawscr();
  502. X
  503. X--- 48,54 -----
  504. X      signal(SIGTSTP,SIG_DFL);
  505. X      kill(getpid(),SIGTSTP);
  506. X      signal(SIGTSTP,SIG_IGN);
  507. X+ #endif
  508. X      stopped = 0;
  509. X      ioctl(0,TIOCSETP,&curseterm);
  510. X      redrawscr();
  511. X***************
  512. X*** 48,53
  513. X      redrawscr();
  514. X      ioctl(0,TIOCSETP,&curseterm);       /* Just to make sure... */
  515. X      waitboard();
  516. X      signal(SIGTSTP,catchstop);
  517. X      signal(SIGINT,catchint);
  518. X  }
  519. X
  520. X--- 54,60 -----
  521. X      redrawscr();
  522. X      ioctl(0,TIOCSETP,&curseterm);       /* Just to make sure... */
  523. X      waitboard();
  524. X+ #ifndef SYSV
  525. X      signal(SIGTSTP,catchstop);
  526. X  #endif
  527. X      signal(SIGINT,catchint);
  528. X***************
  529. X*** 49,54
  530. X      ioctl(0,TIOCSETP,&curseterm);       /* Just to make sure... */
  531. X      waitboard();
  532. X      signal(SIGTSTP,catchstop);
  533. X      signal(SIGINT,catchint);
  534. X  }
  535. X  
  536. X
  537. X--- 56,62 -----
  538. X      waitboard();
  539. X  #ifndef SYSV
  540. X      signal(SIGTSTP,catchstop);
  541. X+ #endif
  542. X      signal(SIGINT,catchint);
  543. X  }
  544. X  
  545. X***************
  546. X*** 59,64
  547. X      signal(SIGQUIT,SIG_IGN);
  548. X      mvaddstr(12,60,"Really quit?");
  549. X      refresh();
  550. X      ch = getchar();
  551. X      move(12,60);
  552. X      clrtoeol();
  553. X
  554. X--- 67,73 -----
  555. X      signal(SIGQUIT,SIG_IGN);
  556. X      mvaddstr(12,60,"Really quit?");
  557. X      refresh();
  558. X+ #ifndef SYSV
  559. X      ch = getchar();
  560. X  #else
  561. X      setblock(0, TRUE);
  562. X***************
  563. X*** 60,65
  564. X      mvaddstr(12,60,"Really quit?");
  565. X      refresh();
  566. X      ch = getchar();
  567. X      move(12,60);
  568. X      clrtoeol();
  569. X      refresh();
  570. X
  571. X--- 69,79 -----
  572. X      refresh();
  573. X  #ifndef SYSV
  574. X      ch = getchar();
  575. X+ #else
  576. X+     setblock(0, TRUE);
  577. X+     ch = getchar();
  578. X+     setblock(0, FALSE);
  579. X+ #endif
  580. X      move(12,60);
  581. X      clrtoeol();
  582. X      refresh();
  583. X***************
  584. X*** 67,72
  585. X      endgame();
  586. X      inter = 0;
  587. X      signal(SIGINT,catchint);
  588. X      signal(SIGTSTP,catchstop);
  589. X      signal(SIGQUIT,quit);
  590. X  }
  591. X
  592. X--- 81,87 -----
  593. X      endgame();
  594. X      inter = 0;
  595. X      signal(SIGINT,catchint);
  596. X+ #ifndef SYSV
  597. X      signal(SIGTSTP,catchstop);
  598. X  #endif
  599. X      signal(SIGQUIT,catchint);
  600. X***************
  601. X*** 68,74
  602. X      inter = 0;
  603. X      signal(SIGINT,catchint);
  604. X      signal(SIGTSTP,catchstop);
  605. X!     signal(SIGQUIT,quit);
  606. X  }
  607. X  
  608. X  waitboard()
  609. X
  610. X--- 83,90 -----
  611. X      signal(SIGINT,catchint);
  612. X  #ifndef SYSV
  613. X      signal(SIGTSTP,catchstop);
  614. X! #endif
  615. X!     signal(SIGQUIT,catchint);
  616. X  }
  617. X  
  618. X  waitboard()
  619. X***************
  620. X*** 75,80
  621. X  {
  622. X      char ch;
  623. X  
  624. X      signal(SIGTSTP,SIG_IGN);
  625. X      signal(SIGINT,SIG_IGN);
  626. X      mvaddstr(12,60,"Press return");
  627. X
  628. X--- 91,97 -----
  629. X  {
  630. X      char ch;
  631. X  
  632. X+ #ifndef SYSV
  633. X      signal(SIGTSTP,SIG_IGN);
  634. X  #endif
  635. X      signal(SIGINT,SIG_IGN);
  636. X***************
  637. X*** 76,81
  638. X      char ch;
  639. X  
  640. X      signal(SIGTSTP,SIG_IGN);
  641. X      signal(SIGINT,SIG_IGN);
  642. X      mvaddstr(12,60,"Press return");
  643. X      mvaddstr(13,60,"when ready");
  644. X
  645. X--- 93,99 -----
  646. X  
  647. X  #ifndef SYSV
  648. X      signal(SIGTSTP,SIG_IGN);
  649. X+ #endif
  650. X      signal(SIGINT,SIG_IGN);
  651. X      mvaddstr(12,60,"Press return");
  652. X      mvaddstr(13,60,"when ready");
  653. X***************
  654. X*** 80,85
  655. X      mvaddstr(12,60,"Press return");
  656. X      mvaddstr(13,60,"when ready");
  657. X      refresh();
  658. X      while ((ch = getchar()) != '\r')
  659. X      {
  660. X  #ifdef WIZARD
  661. X
  662. X--- 98,104 -----
  663. X      mvaddstr(12,60,"Press return");
  664. X      mvaddstr(13,60,"when ready");
  665. X      refresh();
  666. X+     setblock(0, TRUE);
  667. X      while ((ch = getchar()) != '\r')
  668. X      {
  669. X  #ifdef WIZARD
  670. X***************
  671. X*** 85,91
  672. X  #ifdef WIZARD
  673. X      if (ch == '\020')
  674. X          setname();
  675. X!     else if (ch == '\014')
  676. X  #else
  677. X       if (ch == '\014')
  678. X  #endif
  679. X
  680. X--- 104,110 -----
  681. X  #ifdef WIZARD
  682. X      if (ch == '\020')
  683. X          setname();
  684. X!     else if (ch == '\014' || ch == 'r')
  685. X  #else
  686. X       if (ch == '\014' || ch == 'r')
  687. X  #endif
  688. X***************
  689. X*** 87,93
  690. X          setname();
  691. X      else if (ch == '\014')
  692. X  #else
  693. X!      if (ch == '\014')
  694. X  #endif
  695. X          redrawscr();
  696. X      else if (ch == 's' || ch == 'S')
  697. X
  698. X--- 106,112 -----
  699. X          setname();
  700. X      else if (ch == '\014' || ch == 'r')
  701. X  #else
  702. X!      if (ch == '\014' || ch == 'r')
  703. X  #endif
  704. X          redrawscr();
  705. X      else if (ch == 's' || ch == 'S')
  706. X***************
  707. X*** 93,98
  708. X      else if (ch == 's' || ch == 'S')
  709. X          savegame();
  710. X      }
  711. X      move(12,60);
  712. X      clrtoeol();
  713. X      move(13,60);
  714. X
  715. X--- 112,118 -----
  716. X      else if (ch == 's' || ch == 'S')
  717. X          savegame();
  718. X      }
  719. X+     setblock(0, FALSE);
  720. X      move(12,60);
  721. X      clrtoeol();
  722. X      move(13,60);
  723. X***************
  724. X*** 100,105
  725. X      move(15,60);
  726. X      clrtoeol();
  727. X      signal(SIGINT,catchint);
  728. X      signal(SIGTSTP,catchstop);
  729. X  }
  730. X  
  731. X
  732. X--- 120,126 -----
  733. X      move(15,60);
  734. X      clrtoeol();
  735. X      signal(SIGINT,catchint);
  736. X+ #ifndef SYSV
  737. X      signal(SIGTSTP,catchstop);
  738. X  #endif
  739. X  }
  740. X***************
  741. X*** 101,106
  742. X      clrtoeol();
  743. X      signal(SIGINT,catchint);
  744. X      signal(SIGTSTP,catchstop);
  745. X  }
  746. X  
  747. X  catchalarm()
  748. X
  749. X--- 122,128 -----
  750. X      signal(SIGINT,catchint);
  751. X  #ifndef SYSV
  752. X      signal(SIGTSTP,catchstop);
  753. X+ #endif
  754. X  }
  755. X  
  756. X  catchalarm()
  757. X***************
  758. X*** 121,123
  759. X      touchwin(stdscr);
  760. X      refresh();
  761. X  }
  762. X
  763. X--- 143,146 -----
  764. X      touchwin(stdscr);
  765. X      refresh();
  766. X  }
  767. X+ 
  768. X
  769. X------------------------< la.c >------------------------
  770. XIndex: la.c
  771. X*** cent.orig/la.c    Tue Jul  7 11:55:42 1987
  772. X--- cent/la.c    Thu Jul  2 16:28:20 1987
  773. X***************
  774. X*** 1,4
  775. X  #include <nlist.h>
  776. X  
  777. X  loadav(avenrun)         /* Function storing 1,5,15 minute load averages in */
  778. X  double *avenrun;        /* avenrun; should be declared double avenrun[3];  */
  779. X
  780. X--- 1,5 -----
  781. X  #include <nlist.h>
  782. X+ #include <stdio.h>
  783. X  
  784. X  loadav(avenrun)         /* Function storing 1,5,15 minute load averages in */
  785. X  double *avenrun;        /* avenrun; should be declared double avenrun[3];  */
  786. X***************
  787. X*** 12,17
  788. X      if (kmem < 0)          /* Open necessary files. */
  789. X      {
  790. X      if ((kmem = open("/dev/kmem",0)) == -1)
  791. X          return(-1);                         /* Cannot open. */
  792. X      nlist("/vmunix", nl);
  793. X      }
  794. X
  795. X--- 13,20 -----
  796. X      if (kmem < 0)          /* Open necessary files. */
  797. X      {
  798. X      if ((kmem = open("/dev/kmem",0)) == -1)
  799. X+     {
  800. X+         syserror("Can't open /dev/kmem.");
  801. X          return(-1);                         /* Cannot open. */
  802. X      }
  803. X      if (nlist("/vmunix", nl) == -1)
  804. X***************
  805. X*** 13,19
  806. X      {
  807. X      if ((kmem = open("/dev/kmem",0)) == -1)
  808. X          return(-1);                         /* Cannot open. */
  809. X!     nlist("/vmunix", nl);
  810. X      }
  811. X      if (lseek(kmem,(long)nl[0].n_value, 0) == -1 || 
  812. X        read(kmem,avenrun,3 * sizeof(double)) == -1)
  813. X
  814. X--- 16,28 -----
  815. X      {
  816. X          syserror("Can't open /dev/kmem.");
  817. X          return(-1);                         /* Cannot open. */
  818. X!     }
  819. X!     if (nlist("/vmunix", nl) == -1)
  820. X!         if (nlist("/unix", nl) == -1)
  821. X!         {
  822. X!         error("Can't get avenrun from nlist in kernel.");
  823. X!         return -1;
  824. X!         }
  825. X      }
  826. X      if (lseek(kmem,(long)nl[0].n_value, 0) == -1)
  827. X      {
  828. X***************
  829. X*** 15,22
  830. X          return(-1);                         /* Cannot open. */
  831. X      nlist("/vmunix", nl);
  832. X      }
  833. X!     if (lseek(kmem,(long)nl[0].n_value, 0) == -1 || 
  834. X!       read(kmem,avenrun,3 * sizeof(double)) == -1)
  835. X      return(-1);    /* sizeof avenrun is 24. */
  836. X      return(0);
  837. X  }
  838. X
  839. X--- 24,32 -----
  840. X          return -1;
  841. X          }
  842. X      }
  843. X!     if (lseek(kmem,(long)nl[0].n_value, 0) == -1)
  844. X!     {
  845. X!     syserror("Can't seek in /dev/kmem.");
  846. X      return(-1);    /* sizeof avenrun is 24. */
  847. X      }
  848. X      if (read(kmem,avenrun,3 * sizeof(double)) == -1)
  849. X***************
  850. X*** 18,22
  851. X      if (lseek(kmem,(long)nl[0].n_value, 0) == -1 || 
  852. X        read(kmem,avenrun,3 * sizeof(double)) == -1)
  853. X      return(-1);    /* sizeof avenrun is 24. */
  854. X      return(0);
  855. X  }
  856. X
  857. X--- 28,39 -----
  858. X      {
  859. X      syserror("Can't seek in /dev/kmem.");
  860. X      return(-1);    /* sizeof avenrun is 24. */
  861. X+     }
  862. X+     if (read(kmem,avenrun,3 * sizeof(double)) == -1)
  863. X+     {
  864. X+     syserror("Can't read from /dev/kmem.");
  865. X+     return(-1);    /* sizeof avenrun is 24. */
  866. X+     }
  867. X      return(0);
  868. X  }
  869. X  
  870. X***************
  871. X*** 19,22
  872. X        read(kmem,avenrun,3 * sizeof(double)) == -1)
  873. X      return(-1);    /* sizeof avenrun is 24. */
  874. X      return(0);
  875. X  }
  876. X
  877. X--- 35,52 -----
  878. X      return(-1);    /* sizeof avenrun is 24. */
  879. X      }
  880. X      return(0);
  881. X+ }
  882. X+ 
  883. X+ syserror (str)
  884. X+     char *str;
  885. X+ {
  886. X+     extern int errno;
  887. X+     extern char *sys_errlist[];
  888. X+     fprintf(stderr, "%s (%s)\n", str, sys_errlist[errno]);
  889. X+ }
  890. X+ 
  891. X+ error (str)
  892. X+     char *str;
  893. X+ {
  894. X+     fprintf(stderr, "%s\n", str);
  895. X  }
  896. X
  897. X------------------------< move.c >------------------------
  898. XIndex: move.c
  899. X*** cent.orig/move.c    Tue Jul  7 11:55:44 1987
  900. X--- cent/move.c    Thu Jul  2 14:55:37 1987
  901. X***************
  902. X*** 54,59
  903. X      refresh();
  904. X      fflush(stdout);
  905. X      do
  906. X          ioctl(1,TIOCOUTQ,&count);
  907. X      while (count > spiderhere * 40);
  908. X      move_guy();
  909. X
  910. X--- 54,60 -----
  911. X      refresh();
  912. X      fflush(stdout);
  913. X      do
  914. X+ #ifndef SYSV
  915. X          ioctl(1,TIOCOUTQ,&count);
  916. X  #else
  917. X          count = 0;
  918. X***************
  919. X*** 55,60
  920. X      fflush(stdout);
  921. X      do
  922. X          ioctl(1,TIOCOUTQ,&count);
  923. X      while (count > spiderhere * 40);
  924. X      move_guy();
  925. X      }
  926. X
  927. X--- 56,64 -----
  928. X      do
  929. X  #ifndef SYSV
  930. X          ioctl(1,TIOCOUTQ,&count);
  931. X+ #else
  932. X+         count = 0;
  933. X+ #endif
  934. X      while (count > spiderhere * 40);
  935. X      move_guy();
  936. X      }
  937. X
  938. X------------------------< rand.c >------------------------
  939. XIndex: rand.c
  940. X*** cent.orig/rand.c    Tue Jul  7 11:55:46 1987
  941. X--- cent/rand.c    Tue Jul  7 14:30:47 1987
  942. X***************
  943. X*** 4,9
  944. X  #include <ctype.h>
  945. X  #include <math.h>
  946. X  #include <sys/types.h>
  947. X  #include <sys/timeb.h>
  948. X  
  949. X  double  RandSeed,floor(),pow();
  950. X
  951. X--- 4,10 -----
  952. X  #include <ctype.h>
  953. X  #include <math.h>
  954. X  #include <sys/types.h>
  955. X+ #ifndef SYSV
  956. X  #include <sys/timeb.h>
  957. X  #endif
  958. X  
  959. X***************
  960. X*** 5,10
  961. X  #include <math.h>
  962. X  #include <sys/types.h>
  963. X  #include <sys/timeb.h>
  964. X  
  965. X  double  RandSeed,floor(),pow();
  966. X  
  967. X
  968. X--- 6,12 -----
  969. X  #include <sys/types.h>
  970. X  #ifndef SYSV
  971. X  #include <sys/timeb.h>
  972. X+ #endif
  973. X  
  974. X  double  RandSeed,floor(),pow();
  975. X  
  976. X***************
  977. X*** 14,19
  978. X          return (d-floor(d));
  979. X  }
  980. X  
  981. X  rninit()                /* seed is of form .mmmsss (m = millisecs, s = secs) */
  982. X  {
  983. X          struct timeb tbuf;
  984. X
  985. X--- 16,28 -----
  986. X          return (d-floor(d));
  987. X  }
  988. X  
  989. X+ #ifdef SYSV
  990. X+ rninit()
  991. X+ {
  992. X+     RandSeed = (double) time((long *) 0);
  993. X+ }
  994. X+ 
  995. X+ #else
  996. X  rninit()                /* seed is of form .mmmsss (m = millisecs, s = secs) */
  997. X  {
  998. X          struct timeb tbuf;
  999. X***************
  1000. X*** 20,26
  1001. X  
  1002. X          ftime(&tbuf);
  1003. X          RandSeed = tbuf.millitm/1000.0 + frac(tbuf.time/1000.0) / 1000.0;
  1004. X! }
  1005. X  
  1006. X  double rn()             /* remainder of hairy exponential */
  1007. X  {
  1008. X
  1009. X--- 29,36 -----
  1010. X  
  1011. X          ftime(&tbuf);
  1012. X          RandSeed = tbuf.millitm/1000.0 + frac(tbuf.time/1000.0) / 1000.0;
  1013. X! } 
  1014. X! #endif
  1015. X  
  1016. X  double rn()             /* remainder of hairy exponential */
  1017. X  {
  1018. X***************
  1019. X*** 26,28
  1020. X  {
  1021. X          return (RandSeed = frac(pow(RandSeed*4.32 + 3.52, 3.64)));
  1022. X  }
  1023. X
  1024. X--- 36,39 -----
  1025. X  {
  1026. X          return (RandSeed = frac(pow(RandSeed*4.32 + 3.52, 3.64)));
  1027. X  }
  1028. X+ 
  1029. X
  1030. X------------------------< save.c >------------------------
  1031. XIndex: save.c
  1032. X*** cent.orig/save.c    Tue Jul  7 11:55:47 1987
  1033. X--- cent/save.c    Sat Jul  4 14:47:59 1987
  1034. X***************
  1035. X*** 9,14
  1036. X  savegame()
  1037. X  {
  1038. X      char fil[100];
  1039. X  
  1040. X      if (!gamestarted)
  1041. X      {
  1042. X
  1043. X--- 9,15 -----
  1044. X  savegame()
  1045. X  {
  1046. X      char fil[100];
  1047. X+     struct sgttyb curseterm;
  1048. X  
  1049. X      strcpy(fil, "cent.save");
  1050. X      if (!gamestarted)
  1051. X***************
  1052. X*** 10,15
  1053. X  {
  1054. X      char fil[100];
  1055. X  
  1056. X      if (!gamestarted)
  1057. X      {
  1058. X      mvaddstr(15,60,"Too early to save");
  1059. X
  1060. X--- 11,17 -----
  1061. X      char fil[100];
  1062. X      struct sgttyb curseterm;
  1063. X  
  1064. X+     strcpy(fil, "cent.save");
  1065. X      if (!gamestarted)
  1066. X      {
  1067. X      mvaddstr(15,60,"Too early to save");
  1068. X***************
  1069. X*** 16,21
  1070. X      refresh();
  1071. X      return;
  1072. X      }
  1073. X      printf("%s",CL);
  1074. X      nocrmode();
  1075. X      echo();
  1076. X
  1077. X--- 18,27 -----
  1078. X      refresh();
  1079. X      return;
  1080. X      }
  1081. X+ #ifdef SYSV
  1082. X+     clear();
  1083. X+     refresh();
  1084. X+ #else
  1085. X      printf("%s",CL);
  1086. X  #endif
  1087. X      setblock(0, TRUE);
  1088. X***************
  1089. X*** 17,22
  1090. X      return;
  1091. X      }
  1092. X      printf("%s",CL);
  1093. X      nocrmode();
  1094. X      echo();
  1095. X      nl();
  1096. X
  1097. X--- 23,30 -----
  1098. X      refresh();
  1099. X  #else
  1100. X      printf("%s",CL);
  1101. X+ #endif
  1102. X+     setblock(0, TRUE);
  1103. X      nocrmode();
  1104. X      echo();
  1105. X      nl();
  1106. X***************
  1107. X*** 21,26
  1108. X      echo();
  1109. X      nl();
  1110. X      printf("File name: ");
  1111. X      scanf("%s",fil);
  1112. X      noecho();
  1113. X      crmode();
  1114. X
  1115. X--- 29,36 -----
  1116. X      echo();
  1117. X      nl();
  1118. X      printf("File name: ");
  1119. X+     ioctl(0,TIOCGETP,&curseterm);
  1120. X+     ioctl(0,TIOCSETP,&origterm);
  1121. X      scanf("%s",fil);
  1122. X      ioctl(0,TIOCSETP,&curseterm);
  1123. X      noecho();
  1124. X***************
  1125. X*** 22,27
  1126. X      nl();
  1127. X      printf("File name: ");
  1128. X      scanf("%s",fil);
  1129. X      noecho();
  1130. X      crmode();
  1131. X      printf("Saving... ");
  1132. X
  1133. X--- 32,38 -----
  1134. X      ioctl(0,TIOCGETP,&curseterm);
  1135. X      ioctl(0,TIOCSETP,&origterm);
  1136. X      scanf("%s",fil);
  1137. X+     ioctl(0,TIOCSETP,&curseterm);
  1138. X      noecho();
  1139. X      crmode();
  1140. X      printf("Saving... ");
  1141. X***************
  1142. X*** 106,112
  1143. X  dorest(fil)
  1144. X  {
  1145. X      int fd,n,count,tim;
  1146. X!     register char ch;
  1147. X      register int y,x;
  1148. X      char buf[512];
  1149. X      PEDE **piece = ¢ipede, *prev = NULL;
  1150. X
  1151. X--- 117,123 -----
  1152. X  dorest(fil)
  1153. X  {
  1154. X      int fd,n,count,tim;
  1155. X!     char ch;            /* KDW: was register; blasted for portability */
  1156. X      register int y,x;
  1157. X      char buf[512];
  1158. X      PEDE **piece = ¢ipede, *prev = NULL;
  1159. X
  1160. X------------------------< score.c >------------------------
  1161. XIndex: score.c
  1162. X*** cent.orig/score.c    Tue Jul  7 11:55:48 1987
  1163. X--- cent/score.c    Tue Jul  7 15:07:33 1987
  1164. X***************
  1165. X*** 1,5
  1166. X  #include "cent.h"
  1167. X  
  1168. X  struct score {
  1169. X      char name[10];
  1170. X      long score;
  1171. X
  1172. X--- 1,9 -----
  1173. X  #include "cent.h"
  1174. X  
  1175. X+ extern char *def_pager, *def_pager_opts;
  1176. X+ 
  1177. X+ FILE *getpager ();
  1178. X+ 
  1179. X  struct score {
  1180. X      char name[10];
  1181. X      long score;
  1182. X***************
  1183. X*** 40,46
  1184. X      if (wr = needtowrite(scores,numscores,&myscore))
  1185. X      if ((fd = creat(scorefile,0600)) == -1)
  1186. X          err();
  1187. X!     if ((morefp = popen("/usr/ucb/more","w")) == NULL)
  1188. X      {
  1189. X      perror("Error popen'ing more");
  1190. X      exit(1);
  1191. X
  1192. X--- 44,50 -----
  1193. X      if (wr = needtowrite(scores,numscores,&myscore))
  1194. X      if ((fd = creat(scorefile,0600)) == -1)
  1195. X          err();
  1196. X!     if ((morefp = getpager()) == NULL)
  1197. X      {
  1198. X      perror("Error popen'ing cat");
  1199. X      exit(1);
  1200. X***************
  1201. X*** 42,48
  1202. X          err();
  1203. X      if ((morefp = popen("/usr/ucb/more","w")) == NULL)
  1204. X      {
  1205. X!     perror("Error popen'ing more");
  1206. X      exit(1);
  1207. X      }
  1208. X      printf("Centipede Hall of Fame\n");
  1209. X
  1210. X--- 46,52 -----
  1211. X          err();
  1212. X      if ((morefp = getpager()) == NULL)
  1213. X      {
  1214. X!     perror("Error popen'ing cat");
  1215. X      exit(1);
  1216. X      }
  1217. X      printf("Centipede Hall of Fame\n");
  1218. X***************
  1219. X*** 100,106
  1220. X      lockscore();
  1221. X      if ((fd = open(scorefile,0)) == -1)
  1222. X      err();
  1223. X!     if ((morefp = popen("/usr/ucb/more","w")) == NULL)
  1224. X      {
  1225. X      perror("Error popen'ing more");
  1226. X      exit(1);
  1227. X
  1228. X--- 104,110 -----
  1229. X      lockscore();
  1230. X      if ((fd = open(scorefile,0)) == -1)
  1231. X      err();
  1232. X!     if ((morefp = getpager()) == NULL)
  1233. X      {
  1234. X      perror("Error popen'ing cat");
  1235. X      exit(1);
  1236. X***************
  1237. X*** 102,108
  1238. X      err();
  1239. X      if ((morefp = popen("/usr/ucb/more","w")) == NULL)
  1240. X      {
  1241. X!     perror("Error popen'ing more");
  1242. X      exit(1);
  1243. X      }
  1244. X      printf("Centipede Hall of Fame\n");
  1245. X
  1246. X--- 106,112 -----
  1247. X      err();
  1248. X      if ((morefp = getpager()) == NULL)
  1249. X      {
  1250. X!     perror("Error popen'ing cat");
  1251. X      exit(1);
  1252. X      }
  1253. X      printf("Centipede Hall of Fame\n");
  1254. X***************
  1255. X*** 147,150
  1256. X      perror("Error removing lockfile");
  1257. X      exit(-1);
  1258. X      }
  1259. X  }
  1260. X
  1261. X--- 151,177 -----
  1262. X      perror("Error removing lockfile");
  1263. X      exit(-1);
  1264. X      }
  1265. X+ }
  1266. X+ 
  1267. X+ /*
  1268. X+  * KDW: getpager: figure out what pager to use to display the score file, 
  1269. X+  * and open a pipe to it.
  1270. X+  */
  1271. X+ 
  1272. X+ FILE *getpager ()
  1273. X+ {
  1274. X+     FILE *morefp;
  1275. X+     char *PAGER;
  1276. X+ 
  1277. X+     if ((PAGER = getenv("PAGER")) != NULL)
  1278. X+     {
  1279. X+     if ((morefp = popen(PAGER, "w")) != NULL)
  1280. X+         return morefp;
  1281. X+     }
  1282. X+     if ((morefp = popen(def_pager, "w")) != NULL)
  1283. X+     return morefp;
  1284. X+     if ((morefp = popen("cat", "w")) != NULL)
  1285. X+     return morefp;
  1286. X+     else
  1287. X+     return NULL;
  1288. X  }
  1289. X
  1290. X------------------------< stuff.c >------------------------
  1291. XIndex: stuff.c
  1292. X*** cent.orig/stuff.c    Tue Jul  7 11:55:50 1987
  1293. X--- cent/stuff.c    Tue Jul  7 15:11:40 1987
  1294. X***************
  1295. X*** 1,5
  1296. X  #include "cent.h"
  1297. X  
  1298. X  rnd(n)
  1299. X  register int n;
  1300. X  {
  1301. X
  1302. X--- 1,7 -----
  1303. X  #include "cent.h"
  1304. X  
  1305. X+ extern char *def_pager, *def_pager_opts;
  1306. X+ 
  1307. X  rnd(n)
  1308. X  register int n;
  1309. X  {
  1310. X***************
  1311. X*** 221,227
  1312. X      crmode();
  1313. X      if ((ch = getchar()) != 'y' && ch != 'Y')
  1314. X      return;
  1315. X!     sprintf(cmd,"/usr/ucb/more %s",helpfile);
  1316. X      system(cmd);
  1317. X      printf("[Hit return to start the game]");
  1318. X      while (getchar() != '\n');
  1319. X
  1320. X--- 223,232 -----
  1321. X      crmode();
  1322. X      if ((ch = getchar()) != 'y' && ch != 'Y')
  1323. X      return;
  1324. X!     if (getenv("PAGER") == NULL)
  1325. X!     sprintf(cmd,"%s %s %s", def_pager, def_pager_opts, helpfile);
  1326. X!     else
  1327. X!     sprintf(cmd,"%s %s", getenv("PAGER"), helpfile);
  1328. X      system(cmd);
  1329. X      printf("[Hit return to start the game]");
  1330. X      while (getchar() != '\n');
  1331. X
  1332. X------------------------< sys_dep.c >------------------------
  1333. XIndex: sys_dep.c
  1334. X*** cent.orig/sys_dep.c    Tue Jul  7 11:55:51 1987
  1335. X--- cent/sys_dep.c    Tue Jul  7 14:46:43 1987
  1336. X***************
  1337. X*** 3,9
  1338. X  
  1339. X  
  1340. X  /* Scorefile: Where the scorefile should live */
  1341. X! char scorefile[] = "/usr/games/centipede/scores";
  1342. X  
  1343. X  
  1344. X  /* Lockfile: Where to create and look for a lockfile controlling access
  1345. X
  1346. X--- 3,9 -----
  1347. X  
  1348. X  
  1349. X  /* Scorefile: Where the scorefile should live */
  1350. X! char scorefile[] = "/usr/games/lib/cent/scorefile";
  1351. X  
  1352. X  
  1353. X  /* Lockfile: Where to create and look for a lockfile controlling access
  1354. X***************
  1355. X*** 8,14
  1356. X  
  1357. X  /* Lockfile: Where to create and look for a lockfile controlling access
  1358. X     to the scorefile */
  1359. X! char lockfile[] = "/usr/games/centipede/lockfile";
  1360. X  
  1361. X  
  1362. X  /* Helpfile: Where the help file is located */
  1363. X
  1364. X--- 8,14 -----
  1365. X  
  1366. X  /* Lockfile: Where to create and look for a lockfile controlling access
  1367. X     to the scorefile */
  1368. X! char lockfile[] = "/usr/games/lib/cent/lockfile";
  1369. X  
  1370. X  
  1371. X  /* Helpfile: Where the help file is located */
  1372. X***************
  1373. X*** 12,18
  1374. X  
  1375. X  
  1376. X  /* Helpfile: Where the help file is located */
  1377. X! char helpfile[] = "/usr/games/centipede/cent.doc";
  1378. X  
  1379. X  
  1380. X  /* Maxload: The maximum allowed load average for playing */
  1381. X
  1382. X--- 12,18 -----
  1383. X  
  1384. X  
  1385. X  /* Helpfile: Where the help file is located */
  1386. X! char helpfile[] = "/usr/games/lib/cent/cent.doc";
  1387. X  
  1388. X  
  1389. X  /* Maxload: The maximum allowed load average for playing */
  1390. X***************
  1391. X*** 21,23
  1392. X  
  1393. X  /* Niceness: The amount to nice the game by (lower its priority) */
  1394. X  int niceness = 4;
  1395. X
  1396. X--- 21,29 -----
  1397. X  
  1398. X  /* Niceness: The amount to nice the game by (lower its priority) */
  1399. X  int niceness = 4;
  1400. X+ 
  1401. X+ /* def_pager: default pager if we can't otherwise choose one */
  1402. X+ char *def_pager = "less";
  1403. X+ 
  1404. X+ /* def_pager_opts: options for default pager; include - if you need it */
  1405. X+ char *def_pager_opts = "-qew";
  1406. X
  1407. X------------------------< sys_dep.h >------------------------
  1408. XIndex: sys_dep.h
  1409. X*** cent.orig/sys_dep.h    Tue Jul  7 11:55:52 1987
  1410. X--- cent/sys_dep.h    Thu Jul  2 13:55:28 1987
  1411. X***************
  1412. X*** 1,8
  1413. X  /* User commands */
  1414. X! #define LEFT '1'
  1415. X! #define RIGHT '3'
  1416. X! #define UPWARD '5'
  1417. X! #define DOWN '.'
  1418. X  #define FIRE ' '
  1419. X  #define UPRIGHT '6'
  1420. X  #define UPLEFT '4'
  1421. X
  1422. X--- 1,8 -----
  1423. X  /* User commands */
  1424. X! #define LEFT 'h'
  1425. X! #define RIGHT 'l'
  1426. X! #define UPWARD 'k'
  1427. X! #define DOWN 'j'
  1428. X  #define FIRE ' '
  1429. X  #define UPRIGHT 'u'
  1430. X  #define UPLEFT 'y'
  1431. X***************
  1432. X*** 4,13
  1433. X  #define UPWARD '5'
  1434. X  #define DOWN '.'
  1435. X  #define FIRE ' '
  1436. X! #define UPRIGHT '6'
  1437. X! #define UPLEFT '4'
  1438. X! #define DOWNRIGHT '\r'
  1439. X! #define DOWNLEFT '0'
  1440. X! #define FASTLEFT '7'
  1441. X! #define FASTRIGHT '9'
  1442. X  #define PAUSEKEY '\t'
  1443. X
  1444. X--- 4,13 -----
  1445. X  #define UPWARD 'k'
  1446. X  #define DOWN 'j'
  1447. X  #define FIRE ' '
  1448. X! #define UPRIGHT 'u'
  1449. X! #define UPLEFT 'y'
  1450. X! #define DOWNRIGHT 'n'
  1451. X! #define DOWNLEFT 'b'
  1452. X! #define FASTLEFT 'H'
  1453. X! #define FASTRIGHT 'L'
  1454. X  #define PAUSEKEY '\t'
  1455. !FaR!OuT!
  1456. exit
  1457.