home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d1xx / d189 / nethack.lha / NetHack / eenaux.zoo / aux / README.ORIG < prev    next >
Text File  |  1988-06-28  |  11KB  |  264 lines

  1.  
  2.     This file consists of all previous README files for the game, as
  3. released with the original version (Jay F.), first usenet version (Andries B.),
  4. and PC-Hack (Don K.).  This way "README" is current for this version.
  5.  
  6.                         Mike Stephenson
  7.  
  8. -- Original README file
  9. --------------------------------------------------------
  10.  
  11. This is export hack, my first semester programming project.
  12.  
  13. To set it up for your system, you will have to do the following:
  14.     1: create a hack uid, to own the top ten list, etc.
  15.     2: create a hack directory "/usr/lib/game/hack" is the default.
  16.     2.5: make the directory 700 mode.    /* sav files go in there...*/
  17.     3: modify hack.main.c to use the new directory.
  18.     4: modify hack.main.c so it uses the new hack gid.  Gid accounts can
  19. go into magic mode without the password, can get cores with ^G, etc.
  20. (make sure gid isn't checked anywhere else...)
  21.     5: recompile hack.
  22.     6: put it in games after making it set-uid hack.
  23.     8: fix the bugs I undobtedly left in it.
  24.     9: tell me what you think of it.
  25.  
  26.     Hack uses the UCB file /etc/termcap to get your terminal escape codes.
  27. If you don't use it, you will have to make extensive changes to hack.pri.c
  28.  
  29. If you find any bugs (That you think I don't know about), or have any
  30. awesome new changes (Like a better save (One that works!)), or have ANY
  31. questions, write me
  32.         Jay Fenlason
  33.         29 East St.
  34.         Sudbury Mass.
  35.             01776
  36.  
  37. or call me at (617) 443-5036.  Since I have both a modem and a teen-age
  38. sister, Good Luck.
  39.  
  40.  
  41. Hack is split (roughly) into several source files that do different things.
  42. I have tried to fit all the procedures having to do with a certain segment
  43. of the game into a single file, but the job is not the best in the world.
  44. The rough splits are:
  45.  
  46. hack.c        General random stuff and things I never got around to moving.
  47. hack.main.c    main() and other random procedures, also the lock file stuff.
  48. hack.mon.c    Monsters, moving, attacking, etc.
  49. hack.do.c    drink, eat, read, wield, save, etc.
  50. hack.do1.c    zap, wear, remove, etc...
  51. hack.pri.c    stuff having to do with the screen, most of the terminal
  52.         independant stuff is in here.
  53. hack.lev.c    temp files and calling of mklev.
  54.  
  55. Because of the peculiar restraints on our system, I make mklev (create
  56. a level) a separate procedure execd by hack when needed.  The source for
  57. mklev is (Naturaly) mklev.c.  You may want to put mklev back into hack.
  58. Good luck.
  59.  
  60. Most of hack was written by me, with help from
  61.         Kenny Woodland (KW)    (general random things including
  62.             the original BUZZ())
  63.         Mike Thome    (MT)    (The original chamelian)
  64.     and    Jon Payne    (JP)    (The original lock file kludge and
  65.             the massive CURS())
  66.  
  67. This entire program would not have been possible without the SFSU Logo
  68. Workshop.  I am eternally grateful to all of our students (Especially K.L.),
  69. without whom I would never have seen Rogue.  I am especially grateful to
  70. Mike Clancy, without whose generous help I would never have gotten to play
  71. ROGUE.
  72.  
  73. -- Hack 1.0.x README file
  74. ------------------------------------------------------
  75.  
  76. Hack is a display oriented dungeons & dragons - like game.
  77. Both display and command structure resemble rogue.
  78. (For a game with the same structure but entirely different display -
  79. a real cave instead of dull rectangles - try Quest)
  80.  
  81. Hack was originally written by Jay Fenlason (at lincolnsudbury:
  82.  29 East St., Sudbury Mass., 01776) with help from
  83.  Kenny Woodland, Mike Thome and Jon Payne.
  84. Basically it was an implementation of Rogue, however, with 52+ instead of 26
  85.  monster types.
  86. The current version is more than thrice as large (with such new features as
  87.  the dog, the long worms, the shops, etc.) and almost entirely rewritten
  88.  (only the display routines are the original ones - I must rewrite these
  89.  too one day; especially when you are blind strange things still happen).
  90.  
  91. Files for hack:
  92.     hack        The actual game
  93.     record        Top 100 list (just start with an empty file)
  94.     news        Tells about recent changes in hack, or bugs found ...
  95.             (Just start with no news file.)
  96.     data        Auxiliary file used by hack to give you the names
  97.             and sometimes some more information on the
  98.             objects and monsters.
  99.     help        Introductory information (no doubt outdated).
  100.     hh        Compactified version of help.
  101.     perm        An empty file used for locking purposes.
  102.     rumors        Texts for fortune cookies.
  103.             (Some of these contain information on the game,
  104.             others are just plain stupid. Additional rumors
  105.             are appreciated.)
  106.     hack.sh        A shell script.
  107.             (We have hack.sh in /usr/games/hack and
  108.             hack in /usr/games/lib/hackdir/hack and all the other
  109.             hack stuff in /usr/games/lib/hackdir - perhaps this
  110.             will make the script clear.
  111.             There is no need for you to use it.)
  112.     READ_ME        This file.
  113.     Original_READ_ME Jay Fenlason's READ_ME
  114.  
  115. System files used:
  116.     /etc/termcap    Used in conjunction with the environment variable
  117.             $TERM.
  118.     /bin/cat
  119.     /usr/ucb/more
  120.     /bin/sh        Used when $SHELL is undefined.
  121.  
  122. How to install hack:
  123. 0. Compile the sources. Perhaps you should first look at the file config.h
  124.    and define BSD if you are on a BSDtype system,
  125.    define STUPID if your C-compiler chokes on complicated expressions.
  126.    Make sure schar and uchar represent signed and unsigned types.
  127.    If your C compiler doesnt allow initialization of bit fields
  128.    change Bitfield. When config.h looks reasonable, say 'make'.
  129.    (Perhaps you have to change TERMLIB in the makefile.)
  130. 1. If it didnt exist already, introduce a loginname `play' .
  131. 2. The program  hack  resides in a directory so that it is executable
  132.    for everybody and is suid play:
  133.     ---s--s--x  1 play    206848 Apr  3 00:17 hack
  134.    Perhaps you wish to restrict playing to certain hours, or have games
  135.    running under nice; in that case you might write a program play.c
  136.    such that the program play is suid play and executable for everybody
  137.    while all the games in /usr/games are readable or executable for
  138.    play only; all the program play does is asking for the name of a game,
  139.    checking that time-of-day and system load do not forbid playing,
  140.    and then executing the game. Thus:
  141.     -r-sr-sr-x  1 play     13312 May 24 12:52 play
  142.     ---x------  1 play    206848 Apr  3 00:17 hack
  143.    If you are worried about security you might let play do
  144.    chroot("/usr/games") so that no player can get access to the rest
  145.    of the system via shell escapes and the likes.
  146.    If you #define SECURE in config.h then hack will not setuid(getuid())
  147.    before executing a chdir(). Hack will always do setuid(getuid()) with
  148.    a fork. If you do not define UNIX then hack will not fork.
  149. 3. The rest of the stuff belonging to hack sits in a subdirectory hackdir
  150.    (on our system /usr/games/lib/hackdir) with modes
  151.     drwx------  3 play    1024 Aug  9 09:03 hackdir
  152.    Here all the temporary files will be created (with names like xlock.17
  153.    or user.5).
  154. 4. If you are not really short on file space, creating a subdirectory
  155.    hackdir/save (modes again drwx------) will enable users to save their
  156.    unfinished games.
  157.  
  158. The program hack is called
  159. $ hack [-d hackdir] [maxnrofplayers]
  160. (for playing) or
  161. $ hack [-d hackdir] -s [listofusers | limit | all]
  162. (for seeing part of the scorelist).
  163. The shell file hack (in this kit called hack.sh) takes care of
  164. calling hack with the right arguments.
  165.  
  166. Send complaints, bug reports, suggestions for improvements to
  167. mcvax!aeb - in real life Andries Brouwer.
  168.  
  169. -- PC Hack 3.51 README file
  170. ----------------------------------------------------
  171.  
  172.     Welcome to the sources for PC HACK (version 3.51).
  173.  
  174. Introduction
  175. ------------
  176. This is a version of the public domain program HACK 1.03 (copyright
  177. Stichting Mathematisch Centrum, Amsterdam, 1984, 1985.) implemented
  178. under MSDOS with the Microsoft(tm) C v3.0 compiler.
  179.  
  180. You may copy this version of PC HACK and make any changes you want to
  181. it.  You may give it away, but you may not sell it.
  182.  
  183.  
  184. The sources are in ARC format in HACK351S.ARC.  The commands:
  185.  
  186.     C> arc51 e hack351s makefile make.*
  187.     C> arc51 e hack351s *.h
  188.     C> arc51 e hack351s *.c
  189.  
  190. will unpack the files.
  191.  
  192. With a hard disk system, you should be able to type `make' and the sources
  193. will start to be compiled.  This takes a long time.  A floppy disk system
  194. does not really have enough storage.
  195.  
  196.  
  197. Compiling
  198. ---------
  199. The LARGE compiler model is used.  To add WIZARD mode, add a -DWIZARD
  200. to the MAKEFILE, or a #define WIZARD to the CONFIG.H file.
  201.  
  202. The MAKEFILE included with PC HACK 3.51 sources is for my version of MAKE.
  203. It is very similar to UNIX(tm) `make'.  See MAKE.DOC for details.
  204.  
  205. To compile the sources by hand the command for each `filename.c' file is:
  206.     msc -AL -DREGBUG -DLINT_ARGS -Ot -Gs filename.c;
  207.  
  208.  
  209. Linking
  210. -------
  211. I used the Microsoft 8086 Linker version 3.01
  212.  
  213. To link the *.obj files by hand, the command is:
  214.     link @linkfile
  215.  
  216. Where the contents of the linkfile (not supplied) should be:
  217.  
  218. decl.obj apply.obj bones.obj cmd.obj do.obj +
  219. do_name.obj do_wear.obj dog.obj eat.obj +
  220. end.obj engrave.obj fight.obj hack.obj +
  221. invent.obj ioctl.obj lev.obj main.obj +
  222. makemon.obj mhitu.obj mklev.obj mkmaze.obj +
  223. mkobj.obj mkshop.obj mon.obj monst.obj +
  224. o_init.obj objnam.obj options.obj pager.obj +
  225. potion.obj pri.obj read.obj rip.obj +
  226. rumors.obj save.obj search.obj shk.obj +
  227. shknam.obj steal.obj termcap.obj +
  228. timeout.obj topl.obj track.obj trap.obj +
  229. tty.obj unix.obj u_init.obj vault.obj +
  230. wield.obj wizard.obj worm.obj worn.obj +
  231. zap.obj version.obj rnd.obj alloc.obj +
  232. msdos.obj
  233. hack /NOIG /STACK:4000;
  234.  
  235.  
  236. Differences from UNIX HACK
  237. --------------------------
  238. Changes that were introduced to port UNIX HACK to the MSDOS environment
  239. are surrounded with `#ifdef MSDOS', `#endif' directives.
  240.  
  241. Other changes I have made are surrounded by `#ifdef DGK', `#endif'
  242. directives.  It should be possible to compile these sources without
  243. any of my changes by removing the `#define DGK' line from CONFIG.H.
  244.  
  245. Also, functions I have added are mainly restricted to the file msdos.c,
  246. although some of them are in other places (ie. wizard.c)
  247.  
  248.  
  249. Finally
  250. -------
  251. If you have any questions, contact me at one of:
  252.  
  253.     Don Kneller
  254.     UUCP:    ...ucbvax!ucsfcgl!kneller
  255.     ARPA:    kneller@ucsf-cgl.ARPA
  256.     BITNET:    kneller@ucsfcgl.BITNET
  257.     USMAIL:    D. G. Kneller
  258.         2 Panoramic Way #204
  259.         Berkeley, CA 94704
  260.  
  261. -------------------------------------------------------------------------------
  262.  
  263. END OF FILE
  264.