diff --git a/arogue7/Makefile.in b/arogue7/Makefile.in index 521d579..4826c66 100644 --- a/arogue7/Makefile.in +++ b/arogue7/Makefile.in @@ -57,7 +57,7 @@ CFILES= vers.c actions.c chase.c command.c daemon.c \ MISC_C= DOCSRC= aguide.mm #DOCS = $(PROGRAM).doc $(PROGRAM).html -DOCS = arogue77.doc arogue77.html +DOCS = $(PROGRAM).doc arogue77.html MISC = Makefile $(MISC_C) LICENSE.TXT $(PROGRAM).sln $(PROGRAM).vcproj $(DOCS)\ $(DOCSRC) @@ -69,15 +69,30 @@ CFLAGS= $(COPTS) $(ROPTS) LIBS = @LIBS@ RM = rm -f INSTALL=@INSTALL@ +GROFF=@GROFF@ +NROFF=@NROFF@ +COLCRT=@COLCRT@ +TBL=@TBL@ .SUFFIXES: .obj .c.obj: $(CC) $(CFLAGS) /c $*.c +all: $(PROGRAM) docs + $(PROGRAM): $(HDRS) $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ +docs: $(DOCS) + +$(PROGRAM).doc: aguide.mm + if test "x$(GROFF)" != "x" ; then \ + $(GROFF) -P-c -P-b -P-u -t -mm -Tascii aguide.mm > $(PROGRAM).doc ;\ + elif test "x$(NROFF)" != "x" -a "x$(TBL)" != "x" -a "x$(COLCRT)" != "x" ; then \ + $(TBL) aguide.mm | $(NROFF) -mm | $(COLCRT) - > $(PROGRAM).doc ;\ + fi + install: $(PROGRAM) -touch test -if test ! -f $(DESTDIR)$(SCOREFILE) ; \ @@ -112,7 +127,7 @@ reinstall: uninstall install clean: $(RM) $(OBJS1) $(RM) $(OBJS2) - $(RM) core a.exe a.out a.exe.stackdump $(PROGRAM) $(PROGRAM).exe $(PROGRAM).lck + $(RM) core a.exe a.out a.exe.stackdump $(PROGRAM) $(PROGRAM).exe $(PROGRAM).lck $(PROGRAM).doc $(RM) $(PROGRAM).tar $(PROGRAM).tar.gz $(PROGRAM).zip dist.src: diff --git a/arogue7/arogue77.doc b/arogue7/arogue77.doc deleted file mode 100644 index 0beda5f..0000000 --- a/arogue7/arogue77.doc +++ /dev/null @@ -1,1122 +0,0 @@ - - - - - - - The Dungeons of Doom - - Toolchest - - - - - - - 1. INTRODUCTION - - Rogue is a screen-oriented fantasy game set in the - ever-changing Dungeons of Doom. The game comes complete - with monsters, spells, weapons, armor, potions, and other - magical items. The dungeon's geography changes with every - game, and although many magical items have certain - identifiable properties, such as turning the player - invisible, the physical manifestation of the magic changes - each game. A red potion, for example, will cause the same - reaction throughout a given game, but it may be a completely - different potion in a new game. - - Entering the dungeon with only a little food, armor, - and a weapon, the player must develop a good strategy of - when to fight, when to run, and how to best use any magical - items found in the dungeon. To make things interesting, the - player has a quest to return one of several unique - artifacts, rumored to lie deep in the dungeon's bowels. - Returning with this artifact brings great glory and the - title of Complete Winner. But even after finding the - artifact, the player may wish to continue further to match - wits with an arch-devil, demon prince, or even a deity found - far down in the dungeon. Defeating such a creature will - gain the player many experience points, the basis for - scoring in Rogue. - - It is very difficult to return from the Dungeons of - Doom. Few people ever make it out alive. Should this - unlikely event occur, the player would be proclaimed a - complete winner and handsomely rewarded for any booty - removed from the dungeon. - - - 2. CHARACTER CLASSES - - Before placing the player in the dungeon, the game - requests the player to select what type of character they - would like to be: a fighter, a magic user, a cleric, a - druid, a thief, a paladin, a ranger, a monk, or an assassin. - - 2.1 The Fighter - - A fighter is very strong and will have a high strength - rating. This great strength gives a fighter the best odds - of winning a battle with a monster. At high experience - - - - - - - - - - 2 - - - - - levels the fighter also gets to attack multiple times in a - single turn. This obviously further increases his chances - at winning battles. Intrinsic to the fighter class is a - robustness which results in 1 to 12 extra hit points for - every new experience level. - - 2.2 The Magician - - A Magician is able to "cast" spells. The number and - variety of spells increases as the magician gains experience - and intelligence. Magic users are not as hearty as - fighters; they receive 1 to 6 extra hit points for every new - experience level. - - 2.3 The Cleric - - A cleric is able to "pray" to his god for help. The - number and variety of prayers which the gods are willing to - grant to a cleric increase as the cleric gains experience - and wisdom. - - Because of their religious nature, clerics can also - affect the "undead" beings, like zombies and ghouls, which - became monsters after they died. If an "undead" creature is - next to a cleric, the cleric may try to turn it and cause it - to flee. If the cleric is sufficiently powerful relative to - the monster, the cleric will destroy it. This ability - increases as the character gains experience levels. - - Clerics can gain from 1 to 8 extra hit points on - reaching a new experience level. - - 2.4 The Druid - - The druid is a cleric of sorts but worships nature - rather than a god. The druid is able to "chant" and thereby - recieve certain types of spells. Most of the chants are - targeted more towards the elements and nature. - - Druids gain from 1 to 8 hit points when they gain an - experience level. - - 2.5 The Thief - - A thief is exceptionally dextrous and has a good chance - to set a trap or rob a monster. - - By their nature, thieves can automatically detect all - the gold on the current level of the dungeon. They are also - good at detecting hidden traps. Because thieves slink - along, they are not as likely as other characters to wake - sleeping monsters. If a thief manages to sneak up on a - creature without waking it, he will get a chance to backstab - the monster. When this is done, the damage done by the thief - - - - - - - - - - 3 - - - - - greatly increases based on his experience level. - - Thieves gain from 1 to 6 extra hit points from a new - experience level. - - 2.6 The Paladin - - The paladin is a type of holy warrior. Somewhat of a - cross between a fighter and a cleric. He is able to pray and - turn undead as a cleric, (but to a lesser degree) but fights - as a fighter. He is on the side of all that is good and - righteous. Therefore he would never attack a creature that - would not attack him first. If he does kill a non-violent - creature inadvertantly he will feel "uneasy" and his god may - retaliate by making him a mere fighter. - - Paladins gain 1 to 10 hit points per experience level. - - 2.7 The Ranger - - The ranger is somewhat of a cross between a druid and a - fighter. He too is on the side of righteousness and good. - Therefore, the same same restrictions apply to his as they - do to a paladin. The ranger can "chant" and "cast" but to a - lesser degree than the druid and magician. - - Rangers gain 1 to 8 hit points per experience level. - - 2.8 The Monk - - The Monk is a martial arts expert. He wears no armor - but has an effective armor class based on his ability to - dodge attacks. He does not need a weapon in combat for his - hands and feet are a formidable weapon. His ability to dodge - and use his hands as weapons increases as he gains in level. - - Monks gain 1 to 6 hit points per experience level. - - 2.9 The Assassin - - The assassin is a person trained in the art of killing - people by surprise. He has most of the abilities of the - thief except the "backstab". Instead, the assassin has the - chance to kill an opponent outright with one strike. He is - also a ruthless character and trained in the use of poison. - He can recognize poison on sight and can coat his weapon - with it thereby making his next attack an exceptionally - lethal one. - - Assassins gain 1 to 6 hit points per experience level. - - - 3. ATTRIBUTES - - - - - - - - - - - 4 - - - - - 3.1 Intelligence - - Intelligence is the primary attribute associated with - casting spells. With higher intelligence comes the knowledge - of more spells, the ability to cast more spells, and faster - recovery of spells that have been cast. - - 3.2 Strength - - This is, of course, the measure of a character's - physical strength. With higher strength a character can - carry more, cause more damage when striking, have a better - chance to strike an opponent, and move about more quickly - when carrying a load. - - 3.3 Wisdom - - Wisdom is the primary attribute associated with Praying - to a god. With higher wisdom comes the knowledge of more - prayers, the ability to pray more often, and faster recovery - of prayer ability. - - 3.4 Dexterity - - Dexterity is a measure of a character's agility. With - higher dexterity a character is harder to hit, can hit a - opponent more easily, and can move about more quickly when - carrying a load. - - 3.5 Constitution - - Every character has a constitution rating. A character - with an exceptionally good constitution will gain more than - the normal amount of hit points associated with the - character's class when the character reaches a new - experience level. Exceptional constitution also provides - better protection versus poison-based attacks and diseases. - - 3.6 Charisma - - Charisma is a measure of a characters looks and general - likeableness. It effects transactions when trying to - purchase things. - - 3.7 Experience Levels - - Characters gain experience for killing monsters, - stealing from monsters, and turning monsters. Each - character class has a set of thresholds associated with it. - When a character reaches a threshold, the character attains - the next experience level. This new level brings extra hit - points and a greater chance of success in performing the - abilities associated with the character's class. For - example, magicians receive new spells, and clerics receive - - - - - - - - - - 5 - - - - - new prayers. - - 3.8 Allocating Attributes - - The player starts with 72 "attribute points" to create - a character and can distribute them in any manner among the - six attributes described above. When prompting the player - for each attribute, the game displays the minimum and - maximum allowable values for that attribute. The player can - type a backspace (control-H) to go back and change a value; - typing an escape (ESC) sets the remaining attributes to the - maximum value possible given the remaining attribute points. - - - 4. THE SCREEN - - During the normal course of play, the screen consists - of three separate sections: the top line of the terminal, - the bottom two lines of the terminal, and the remaining - middle lines. The top line reports actions which occur - during the game, the middle section depicts the dungeon, and - the bottom lines describe the player's current condition. - - 4.1 The Top Line - - Whenever anything happens to the player, such as - finding a scroll or hitting or being hit by a monster, a - short report of the occurrence appears on the top line of - the screen. When such reports occur quickly, one right - after another, the game displays the notice followed by the - prompt '--More--.' After reading this notice, the player - can press a space to display the next message. At such a - point, the game ignores all commands until the player - presses a space. - - 4.2 The Dungeon Section - - The large middle section of the screen displays the - player's surroundings using the following symbols: - - | A wall of a room. - - - A wall of a room. - - * A pile of gold. - - % A way to the next level. - - + A doorway. - - . The floor in a room. - - @ The player. - - - - - - - - - - - 6 - - - - - _ The player, when invisible. - - # The floor in a passageway. - - ! A flask containing a potion. - - ? A sealed scroll. - - : Some food. - - ) A weapon. - - Solid rock (denoted by a space). - - ] Some armor. - - ; A miscellaneous magic item - - , An artifact - - = A ring. - - / A wand or a staff. - - ^ The entrance to a trading post - - > A trapdoor leading to the next level - - { An arrow trap - - $ A sleeping gas trap - - } A beartrap - - ~ A trap that teleports you somewhere else - - ` A poison dart trap - - " A shimmering magic pool - - ' An entrance to a maze - - $ Any magical item. (During magic detection) - - > A blessed magical item. (During magic detection) - - < A cursed magical item. (During magic detection) - - A letter A monster. Note that a given letter may signify - multiple monsters, depending on the level of the - dungeon. The player can always identify a current - monster by using the identify command ('/'). - - - - - - - - - - - - 7 - - - - - 4.3 The Status Section - - The bottom two lines of the screen describe the - player's current status. The first line gives the player's - characteristics: - - o Intelligence (Int) - - o Strength (Str) - - o Wisdom (Wis) - - o Dexterity (Dxt) - - o Constitution (Const) - - o Charisma (Char) - - o Encumberance (Carry) - - Intelligence, strength, wisdom, dexterity, charisma, - and constitution have a normal maximum of 25, but can be - higher when augmented by a ring. Encumberance is a - measurement of how much the player can carry versus how much - he is currently carrying. The more you carry relative to - your maximum causes you to use more food. - - The second status line provides the following - information: - - o The current level (Lvl) in the dungeon. This number - increases as the player goes further down. - - o The player's current number of hit points (Hp), - followed in parentheses by the player's current maximum - number of hit points. Hit points express the player's - health. As a player heals by resting, the player's - current hit points gradually increase until reaching - the current maximum. This maximum increases each time - a player attains a new experience level. If the - player's current hit points reach 0, the player dies. - - o The player's armor class (Ac). This number describes - the amount of protection provided by the armor, cloaks, - and/or rings currently worn by the player. It is also - affected by high or low dexterity. Wearing no armor is - equivalent to an armor class of 10. The protection - level increases as the armor class decreases. - - o The player's current experience level (Exp) followed by - the player's experience points. The player can gain - experience points by killing monsters, successfully - stealing from monsters, and turning monsters. When a - player gains enough experience points to surpass a - - - - - - - - - - 8 - - - - - threshold that depends on the player's character type, - the player reaches a new experience level. A new - experience level brings extra hit points and possibly - added abilities, such as a new spell for a magician or - a new prayer for a cleric. - - o A description of the player's character. This - description depends on the player's character type and - experience level. - - - 5. COMMANDS - - A player can invoke most Rogue commands by typing a - single character. Some commands, however, require a - direction, in which case the player types the command - character followed by a directional command. Many commands - can be prefaced by a number, indicating how many times the - command should be executed. - - When the player invokes a command referring to an item - in the player's pack (such as reading a scroll), the game - prompts for the item. The player should then type the - letter associated with the item, as displayed by the - inventory command. Typing a '*' at this point produces a - list of the eligible items. - - Rogue understands the following commands: - - ? Preceding a command by a '?' produces a brief - explanation of the command. The command '?*' gives an - explanation of all the commands. - - / Preceding a symbol by a '/' identifies the symbol. - - = Clarify. After typing an '=' sign, the player can use - the movement keys to position the cursor anywhere on the - current level. As long as the player can normally see - the selected position, Rogue will identify whatever is - at that space. Examples include a sleeping giant rat, a - blue potion, and a food ration. - - h Move one position to the left. - - j Move one position down. - - k Move one position up. - - l Move one position to the right. - - y Move one position to the top left. - - u Move one position to the top right. - - - - - - - - - - - 9 - - - - - b Move one position to the bottom left. - - n Move one position to the bottom right. - - H Run to the left until reaching something interesting. - - J Run down until reaching something interesting. - - K Run up until reaching something interesting. - - L Run to the right until reaching something interesting. - - Y Run to the top left until reaching something - interesting. - - U Run to the top right until reaching something - interesting. - - B Run to the bottom left until reaching something - interesting. - - N Run to the bottom right until reaching something - interesting. - - t This command prompts for an object from the players - pack. The player then throws the object in the - specified direction. - - f When this command precedes a directional command, the - player moves in the specified direction until passing - something interesting. - - z This command prompts for a wand or staff from the - player's pack and zaps it in the specified direction. - - > Go down to the next level. - - < Go up to the next level. - - s Search for a secret door or a trap in the circle - surrounding the player. - - . This command (a dot) causes the player to rest a turn. - - i Display an inventory of the player's pack. - - I This command prompts for an item from the player's pack - and displays the inventory information for that item. - - q Quaff a potion from the player's pack. - - r Read a scroll from the player's pack. - - - - - - - - - - - - 10 - - - - - e Eat some food from the player's pack. - - w Wield a weapon from the player's pack. - - W Wear some armor, ring, or miscellaneous magic item from - the player's pack. The player can wear a maximum of - eight rings. - - T Take off whatever the player is wearing. - - ^U Use a magic item in the player's pack. - - d Drop an item from the player's pack. - - P Pick up the items currently under the player. - - ^N When the player types this command, Rogue prompts for a - monster or an item from the player's pack and a one-line - name. For monsters, the player can use the movement - keys to position the cursor over the desired monster, - and Rogue will use the given name to refer to that - monster. For items, Rogue gives all similar items (such - as all the blue potions) the specified name. - - m When the player types this command, Rogue prompts for an - item from the player's pack and a one-line name. Rogue - then marks the specified item with the given name. - - o Typing this command causes Rogue to display all the - settable options. The player can then merely examine - the options or change any or all of them. - - C This command, restricted to magicians and rangers - produces a listing of the current supply of spells. The - player can select one of the displayed spells and, if - the player's energy level is sufficiently high, Cast it. - The more complicated the spell, the more energy it - takes. - - c This command, restricted to druids and rangers produces - a listing of the current supply of chants. The player - can select one of the displayed chants and, if the - player's energy level is sufficiently high, chant it. - The more complicated the spell, the more energy it - takes. - - p This command, restricted to clerics and paladins, - produces a listing of the character's known prayers. - The player can then offer one of these prayers to the - character's deity. Deities are not known for favoring - characters which continually pray to them, and they are - most likely to answer the least "ambitious" prayers. - - - - - - - - - - - - 11 - - - - - a This command is restricted to clerics and paladins must - be followed by a directional command. If there is an - "undead" monster standing next to the player in the - specified direction, there is a chance the player will - affect the monster by causing it to flee or possibly - even destroying it. - - * Count the gold in the player's pack. - - ^ This command sets a trap and is limited to thieves and - assassins. If the character is successful, Rogue - prompts the player for a type of trap and sets it where - the player is standing. - - G This command is restricted to thieves and assassins. It - causes Rogue to display all the gold on the current - level. - - D Dip something into a magic pool. - - ^T This command is restricted to thieves and assassins. It - must be followed by a directional command. If there is - a monster standing next to the player in the specified - direction, the player tries to steal an item from the - monster's pack. If the player is successful, the - monster does not notice anything, but if the player is - unsuccessful, there is a chance the monster will wake - up. - - ^L Redraw the screen. - - ^R Repeat the last message that was displayed on the top - line of the screen. - - ^[ Typing an escape will usually cause Rogue to cancel the - current command. - - v Print the current Rogue version number. - - ! Escape to the shell. - - S Quit and save the game for resumption at a later time. - - Q Quit without saving the game. - - - 6. IMPLICIT COMMANDS - - There is no "attack" command. If a player wishes to - attack a monster, the player simply tries to move onto the - spot where the monster is standing. The game then assumes - that the player wishes to attack the monster with whatever - weapon the player is wielding. - - - - - - - - - - - 12 - - - - - When the player moves onto an item, the game - automatically places the object into the player's pack. If - there is no room left in the pack, the game announces that - fact and leaves the item on the floor. - - - 7. TIME - - All actions except for purely bookkeeping commands, - such as taking an inventory, take time. The amount of time - varies with the command. Swinging a weapon, for example, - takes more time than simply moving; so a monster could move - several spaces in the time it takes the player to make one - attack. The time it takes to swing a weapon also varies - based on the bulk of the weapon, and the time it takes to - simply move a space varies with the type of armor worn. - Movement is always faster when flying. - - Since actions take time, some of them can be disrupted. - If the player is casting a spell, for example, and gets hit - before finishing it, the spell is lost. Similarly, the - player might choke if hit while trying to eat. Of course, - the same rule applies when the player hits a monster. - - Magical hasting (or slowing) will decrease (or - increase) the time it takes to perform an action. - - - 8. LIGHT - - Some rooms in the dungeon possess a natural light - source. In other rooms and in corridors the player can see - only those things within a one space radius from the player. - These dark rooms can be lit with magical light or by a fire - beetle. - - - 9. WEAPONS AND ARMOR - - The player can wield exactly one weapon at a time. - When the player attacks a monster, the amount of damage - depends on the particular weapon the player is wielding. To - fire a projectile weapon, such as a crossbow or a short bow, - the player should wield the bow and "throw" the bolt or - arrow at the monster. - - A weapon may be cursed or blessed, affecting the - likelihood of hitting a monster with the weapon and the - damage the weapon will inflict on the monster. If the - player has identified a weapon, the "to hit" and "to damage" - bonuses appear in that order before the weapon's name in an - inventory listing. A positive bonus indicates a blessed - weapon, and a negative bonus usually indicates a cursed - weapon. The player cannot release a cursed weapon. - - - - - - - - - - 13 - - - - - Without any armor the player has an armor class of 10. - The lower the player's armor class, the harder it is for a - monster to hit the player, so wearing armor can improve the - player's armor class. A cursed suit of armor, however, - offers poor protection and may sometimes be worse than no - armor at all. - - After the player has identified a suit of armor, the - protection bonus appears before the armor's name in an - inventory listing. If the bonus is positive the armor is - blessed, and if it is negative, the armor is usually cursed. - The player cannot remove a cursed suit of armor. - - Some monsters can corrode armor when they hit it. If - such a monster hits the player when the player is wearing - metal armor, the armor loses some of its protection value, - but the corrosion does not curse the armor. This corrosive - property can also apply to weapons when the player hits such - a monster. - - - 10. POTIONS AND SCROLLS - - The player can frequently find potions and scrolls in - the dungeon. In any given dungeon, the player can - distinguish among the different types of potions by a - potion's color and among the different types of scrolls by a - scroll's name. Quaffing a potion or reading a scroll - usually causes some magical occurrence. Most potions and - scrolls may be cursed or blessed. - - - 11. RINGS - - The player can wear a maximum of eight rings, and they - have a magical effect on the player as long as they are - worn. Some rings also speed up the player's metabolism, - making the player require food more often. Many rings can - be cursed or blessed, and the player cannot remove a cursed - ring. The player can distinguish among different types of - rings by a ring's jewel. - - - 12. WANDS AND STAVES - - Wands and staves affect the player's environment. The - player can zap a wand or staff at something and perhaps - shoot a bolt of lightning at it or teleport it away. All - wands or staves of the same type are constructed with the - same type of wood. Some wands and staves may be cursed or - blessed. - - - - - - - - - - - - - 14 - - - - - 13. FOOD - - The player must be careful not to run out of food since - moving through the dungeon fighting monsters consumes a lot - of energy. Starving results in the player's fainting for - increasingly longer periods of time, during which any nearby - monster can attack the player freely. - - Food comes in the form of standard rations and as a - variety of berries. Some berries have side effects in - addition to satisfying one's hunger. - - - 14. GOLD - - Gold has one use in a dungeon: buying things. One can - buy things in two ways, either in a trading post or from a - quartermaster. A trading post is a place that sometimes - occurs "between levels" of the dungeon and can be entered by - stepping on the entrance. A quartermaster is a person who - will sometimes appear and will try to sell the player some - of his wares. These wares are never cursed and frequently - blessed, though blessed goods cost more than normal goods. - If the player chooses to buy one of the quartermaster's - items, the quartermaster trades the item for the specified - amount of gold and disappears. Attacking a quartermaster - causes him to vanish without offering a trade. - - The player starts the game in a trading post with a - class-dependent allotment of gold. Although there are - restrictions on the use of some items (eg. only fighters, - paladins, and rangers can wield two-handed swords), the - market will happily sell the player anything that he can - afford. - - - - 15. MISCELLANEOUS MAGIC ITEMS - - Miscellaneous items such as a pair of boots or a book - may be found within the dungeon. These items can usually be - used to the player's advantage (assuming they are not - cursed). Some of these items can be worn, such as a cloak, - while others are to be used, such as a book. - - - 16. ARTIFACTS - - Some monsters down in the depths of the dungeon carry - unique artifacts. The game begins as a quest to retrieve - one of these items. Each artifact appears only on its - owner's person. These items also can usually be used to the - player's advantage. However, care must be taken when - handling them for they are intelligent and will reject - - - - - - - - - - 15 - - - - - mishandling or abuse. These items consume food and merely - carrying them will result in increased food use. - - - 17. TRAPS - - A variety of traps, including trap doors, bear traps, - and sleeping traps, are hidden in the dungeon. They remain - hidden until sprung by a monster or the player. A sprung - trap continues to function, but since it is visible, an - intelligent monster is not likely to tread on it. - - - 18. THE MONSTERS - - Each monster except for the merchant quartermaster - appears in a limited range of dungeon levels. All monsters - of the same type share the same abilities; all giant rats, - for example, can give the player a disease, and all - jackalweres can put the player to sleep. Monsters of the - same type can vary, however, such that one kobold may be - much more difficult to kill than another one. In general, - the more difficult it is to kill a monster, the more - experience points the monster is worth. - - Most monsters attack by biting and clawing, but some - monsters carry weapons, including such projectile weapons as - short bows and crossbows, and some monsters have breath - weapons. Some monsters even use magical items, such as - wands. Monsters with distance weapons or magic can attack - the player from across a room or down a corridor. - - Some monsters are more intelligent than others, and the - more intelligent a monster, the more likely that the monster - will run away if it is about to die. A fleeing monster will - not attack the player unless cornered. - - It is sometimes possible to enlist a monster's aid. - Reading a charm monster scroll, for example, or singing a - charm monster chant can make a monster believe the player is - its friend. A charmed monster will fight hostile monsters - for the player as long as they are not of its race. - - As the player moves down in the dungeon, the monsters - get more powerful. Deep down in the dungeon there exist - some one-of-a-kind monsters. These monsters are greatly - feared. However, once a "unique monster" is killed, the - player will not find another in the current dungeon. - - - 19. OPTIONS - - Rogue has several options which may be set by the - player: - - - - - - - - - - 16 - - - - - terse Setting this Boolean option results in shorter - messages appearing on the top line of the screen. - - jump Setting this Boolean option results in waiting until - the player has finished running to draw the player's - path. Otherwise the game always displays the path - one step at a time. - - step Setting this Boolean option results in most listings, - such as an inventory, appearing one item at a time on - the top line of the screen. When this option is not - set, the game clears the screen, displays the list, - and then redraws the dungeon. - - flush Setting this Boolean option results in flushing all - typeahead (pending) commands when the player - encounters a monster. - - askme Setting this Boolean option results in the game - prompting the player for a name upon encountering a - new type of scroll, potion, ring, staff, or wand. - - pickup This option specifys whether items should be picked - up automatically as the rogue steps over them. In - the non-automatic mode, the player may still pick up - items via the pickup (P) command. The option - defaults to true. - - name This string is the player's name and defaults to the - player's account name. - - file This string, which defaults to rogue.save, specifies - the file to use for saving the game. - - score This string identifies the top-twenty score file to - use for the game. - - class This option specifies the character class of the - rogue. It can be set only in the ROGUEOPTS - environment variable. - - quested item - This option is set by the game at the start and - cannot be reset by the player. It is merely listed - to remind the player of his quest. - - The player can set options at the beginning of a game - via the ROGUEOPTS environment variable. Naming a Boolean - option sets it, and preceding the Boolean option name by - "no" clears it. The syntax "stringoption=name" sets a - string option to "name." So setting ROGUEOPTS to "terse, - jump, nostep, flush, askme, name=Ivan the Terrible" would - set the terse, jump, flush, and askme Boolean options, clear - the step Boolean option, set the player's name to "Ivan the - - - - - - - - - - 17 - - - - - Terrible," and use the defaults for the save file and the - score file. - - The player may change an option at any time during the - game via the option command, which results in a listing of - the current options. Typing a new value changes the option, - a RETURN moves to the next option, a '-' moves to the - previous option, and an ESCAPE returns the player to the - dungeon. - - - 20. SCORING - - The player receives experience points for stealing - items from monsters, turning monsters (a clerical ability), - and killing monsters. When the player gets killed, the - player's score equals the player's experience points. A - player who quits gets a score equal to the player's - experience points and gold. If the player makes it back up - out of the dungeon, the player's score equals the player's - experience points plus the gold the player carried and the - gold received from selling the player's possessions. - - Rogue maintains a list of the top twenty scores to - date, together with the name of the player obtaining the - score, the level where the player finished, and the manner - in which the player ended the game. As an installation - option, the game may record only one entry per character - type and login; this restriction encourages a greater number - of different players in the scorechart. - - - 21. ACKNOWLEDGEMENTS - - This version of Rogue is based on a version developed - at the University of California. - - - - - - - - - - - - - - - - - - - - - - - diff --git a/arogue7/configure.ac b/arogue7/configure.ac index f5163b2..bfc9eec 100644 --- a/arogue7/configure.ac +++ b/arogue7/configure.ac @@ -25,6 +25,11 @@ AC_TYPE_SIGNAL AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr _spawnl spawnl getpwuid loadav strerror setgid setuid getuid getgid]) AC_PROG_INSTALL +AC_CHECK_PROG([NROFF], [nroff], [nroff],) +AC_CHECK_PROG([GROFF], [groff], [groff],) +AC_CHECK_PROG([COLCRT], [colcrt], [colcrt],) +AC_CHECK_PROG([TBL], [tbl], [tbl],) + AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="arogue7"] ) PROGRAM=$progname AC_SUBST(PROGRAM) diff --git a/rogue3/Makefile.in b/rogue3/Makefile.in index e7d893b..62e4870 100644 --- a/rogue3/Makefile.in +++ b/rogue3/Makefile.in @@ -48,9 +48,9 @@ CFILES= vers.c armor.c chase.c command.c daemon.c daemons.c fight.c \ MISC_C= DOCSRC= rogue.6 rogue.r -DOCS = $(PROGRAM).doc $(PROGRAM).cat $(PROGRAM).html readme36.html +DOCS = $(PROGRAM).doc $(PROGRAM).cat MISC = Makefile $(MISC_C) LICENSE.TXT $(PROGRAM).sln $(PROGRAM).vcproj $(DOCS)\ - $(DOCSRC) + $(DOCSRC) rogue36.html readme36.html CC = gcc CPPFLAGS =@DEFS@ @@ -62,21 +62,43 @@ RM = rm -f LD = $(CC) LDOUT = -o INSTALL=@INSTALL@ +GROFF=@GROFF@ +NROFF=@NROFF@ +COLCRT=@COLCRT@ +TBL=@TBL@ .SUFFIXES: .obj .c.obj: $(CC) $(CFLAGS) /c $*.c +all: $(PROGRAM)$(EXE) docs + $(PROGRAM)$(EXE): $(HDRS) $(OBJS) $(LD) $(LDFLAGS) $(OBJS) $(LIBS) $(LDOUT)$@ clean: $(RM) $(OBJS1) $(RM) $(OBJS2) - $(RM) core $(PROGRAM) $(PROGRAM).exe $(DISTNAME).tar $(DISTNAME).tar.gz + $(RM) core $(PROGRAM) $(PROGRAM).exe $(DOCS) $(DISTNAME).tar $(DISTNAME).tar.gz $(RM) $(DISTNAME).zip +docs: $(DOCS) + +$(PROGRAM).doc: rogue.r + if test "x$(GROFF)" != "x" ; then \ + $(GROFF) -P-c -P-b -P-u -t -ms -Tutf8 rogue.r > $(PROGRAM).doc ;\ + elif test "x$(NROFF)" != "x" -a "x$(TBL)" != "x" -a "x$(COLCRT)" != "x" ; then \ + $(TBL) rogue.r | $(NROFF) -ms | $(COLCRT) - > $(PROGRAM).doc ;\ + fi + +$(PROGRAM).cat: rogue.6 + if test "x$(GROFF)" != "x" ; then \ + $(GROFF) -P-c -P-b -P-u -Tascii -man rogue.6 > $(PROGRAM).cat ;\ + elif test "x$(NROFF)" != "x" -a "x$(COLCRT)" != "x" ; then \ + $(NROFF) -man rogue.6 | $(COLCRT) - > $(PROGRAM).cat ;\ + fi + install: $(PROGRAM) -touch test -if test ! -f $(DESTDIR)$(SCOREFILE) ; \ @@ -104,12 +126,16 @@ install: $(PROGRAM) then mkdir -p $(DESTDIR)$(docdir) ; fi -$(INSTALL) -m 0644 LICENSE.TXT $(DESTDIR)$(docdir)/LICENSE.TXT -$(INSTALL) -m 0644 rogue.r $(DESTDIR)$(docdir)/$(PROGRAM).r + -$(INSTALL) -m 0644 $(PROGRAM).doc $(DESTDIR)$(docdir)/$(PROGRAM).doc + -$(INSTALL) -m 0644 $(PROGRAM).cat $(DESTDIR)$(docdir)/$(PROGRAM).cat -$(RM) test uninstall: -$(RM) $(DESTDIR)$(bindir)/$(PROGRAM) -$(RM) $(DESTDIR)$(man6dir)/$(PROGRAM).6 - -$(RM) $(DESTDIR)$(docdir)$(PROGRAM)/$(PROGRAM).doc + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).r + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).doc + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).cat -$(RMDIR) $(DESTDIR)$(docdir)$(PROGRAM) reinstall: uninstall install diff --git a/rogue3/configure.ac b/rogue3/configure.ac index 2f11fa6..3e58254 100644 --- a/rogue3/configure.ac +++ b/rogue3/configure.ac @@ -4,7 +4,6 @@ AC_PREREQ(2.56) AC_INIT([Rogue],[3.6.4], [yendor@rogueforge.net]) AC_CONFIG_HEADERS([config.h]) -# May not be needed for the documentation AC_CONFIG_FILES([Makefile rogue.6 rogue.r]) # Checks for programs. @@ -37,7 +36,6 @@ AC_CHECK_PROG([NROFF], [nroff], [nroff],) AC_CHECK_PROG([GROFF], [groff], [groff],) AC_CHECK_PROG([COLCRT], [colcrt], [colcrt],) AC_CHECK_PROG([TBL], [tbl], [tbl],) -AC_CHECK_PROG([SED], [sed], [sed],) AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue3"] ) PROGRAM=$progname diff --git a/rogue3/rogue36.cat b/rogue3/rogue36.cat deleted file mode 100644 index 93866c6..0000000 --- a/rogue3/rogue36.cat +++ /dev/null @@ -1,67 +0,0 @@ -ROGUE(6) ROGUE(6) - - - -NAME - rogue - Exploring The Dungeons of Doom - -SYNOPSIS - rogue [ -s ] [ save_file ] [ -n playername ] - -DESCRIPTION - Rogue is a computer fantasy game with a new twist. It is crt oriented - and the object of the game is to survive the attacks of various mon- - sters and get a lot of gold, rather than the puzzle solving orientation - of most computer fantasy games. - - To get started you really only need to know two commands. The command - ? will give you a list of the available commands and the command / - will identify the things you see on the screen. - - To win the game (as opposed to merely playing to beat other people's - high scores) you must locate the Amulet of Yendor which is somewhere - below the 20th level of the dungeon and get it out. Nobody has - achieved this yet and if somebody does, they will probably go down in - history as a hero among heros. - - When the game ends, either by your death, when you quit, or if you (by - some miracle) manage to win, rogue will give you a list of the top-ten - scorers. The scoring is based entirely upon how much gold you get. - There is a 10% penalty for getting yourself killed. - - For more detailed directions, read the document A Guide to the Dungeons - of Doom. - -OPTIONS - If a save_file argument is given, rogue will attempt to load a previ- - ously saved game from that file. - - With the -n option, rogue will load a game with the name playername - from a location defined at compile time. If no such game exists, it - will start one. - - The -s option prints the top-ten scores list and exits. - - -FILES - /usr/local/games/roguelike/rogue3.scr Score file - ~/rogue3.save Default save file - /usr/local/games/roguelike/rogue3save System savefiles - -SEE ALSO - Michael C. Toy, A Guide to the Dungeons of Doom - -BUGS - Probably infinite. Currently known bugs are: Sometimes you are still - hungry even after you eat food and sometimes you get a monster on the - screen in reverse video which may or may not cause a core dump. - -COPYRIGHT - Rogue: Exploring the Dungeons of Doom - Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman - All rights reserved. - License: 3-clause BSD, see LICENSE.txt for details. - - - -3rd Berkeley Distribution ROGUE(6) diff --git a/rogue3/rogue36.doc b/rogue3/rogue36.doc deleted file mode 100644 index bb7cda6..0000000 --- a/rogue3/rogue36.doc +++ /dev/null @@ -1,660 +0,0 @@ - - - - - - - - - - A Guide to the Dungeons of Doom - - Michael C. Toy - Computer Systems Research Group - Department of Electrical Engineering and Computer Science - University of California - Berkeley, California 94720 - - - - ABSTRACT - - Rogue is a visual CRT based fantasy game - which runs under the UNIX timesharing system. - This paper describes how to play rogue and gives a - few hints for those who might otherwise get lost - in the Dungeons of Doom. - - - -24 October 2009 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A Guide to the Dungeons of Doom - - Michael C. Toy - Computer Systems Research Group - Department of Electrical Engineering and Computer Science - University of California - Berkeley, California 94720 - - -1. Introduction - - You have just finished your years as a student at the -local fighter's guild. After much practice and sweat you -have finally completed your training and are ready to embark -upon a perilous adventure. As a test of your skills, the -local guildmasters have sent you into the Dungeons of Doom. -Your task is to return with the Amulet of Yendor. Your -reward for the completion of this task will be a full mem- -bership in the local guild. In addition, you are allowed to -keep all the loot you bring back from the dungeons. - - In preparation for your journey, you are given an -enchanted sword, taken from a dragon's hoard in the far off -Dark Mountains. You are also outfitted with elf-crafted -armor and given enough food to reach the dungeons. You say -goodbye to family and friends for what may be the last time -and head up the road. - - You set out on your way to the dungeons and after sev- -eral days of uneventful travel, you see the ancient ruins -that mark the entrance to the Dungeons of Doom. It is late -at night so you make camp at the entrance and spend the -night sleeping under the open skies. In the morning you -gather your sword, put on your armor, eat what is almost -your last food and enter the dungeons. - -2. What is going on here? - - You have just begun a game of rogue. Your goal is to -grab as much treasure as you can, find the Amulet of Yendor, -and get out of the Dungeons of Doom alive. On the screen, a -map of where you have been and what you have seen on the -current dungeon level is kept. As you explore more of the -level, it appears on the screen in front of you. - - Rogue differs from most computer fantasy games in that -it is screen oriented. Commands are all one or two -keystrokes and the results of your commands are displayed -graphically on the screen rather than being explained in ------------ -As opposed to pseudo English sentences. - - - - - 1 - - - - - - - A Guide to the Dungeons of Doom - - -words. - - Another major difference between rogue and other com- -puter fantasy games is that once you have solved all the -puzzles in a standard fantasy game, it has lost most of its -excitement and it ceases to be fun. Rogue on the other hand -generates a new dungeon every time you play it and even the -author finds it an entertaining and exciting game. - -3. What do all those things on the screen mean? - - In order to understand what is going on in rogue you -have to first get some grasp of what rogue is doing with the -screen. The rogue screen is intended to replace the "You -can see ..." descriptions of standard fantasy games. Here -is a sample of what a rogue screen might look like. - --------------------- - |...................+ - |...@...........[...| - |........B..........| - |...................| - --------+------------ - - - Level: 1 Gold: 0 Hp: 12(12) Str: 16 Ac: 6 Exp: 1/0 - -3.1. The bottom line - - At the bottom line of the screen is a few pieces of -cryptic information, describing your current status. Here -is an explanation of what these things mean: - -Level This number indicates how deep you have gone in the - dungeon. It starts at one and goes up forever. - -Gold The number of gold pieces you have managed to find - and keep with you so far. - -Hp Your current and maximum hit points. Hit points - indicate how much damage you can take before you - die. The more you get hit in a fight, the lower - they get. You can regain hit points by resting. The - number in parentheses is the maximum number your hit - points can reach. - -Str Your current strength. This can be any integer less - than or equal to eighteen. The higher the number, - the stronger you are. - -Ac Your current armor class. This number indicates how - effective your armor is in stopping blows from - unfriendly creatures. The lower this number is, the ------------ -Or until you get killed or decide to quit. - - - - - 2 - - - - - - - A Guide to the Dungeons of Doom - - - more effective the armor. - -Exp These two numbers give your current experience level - and experience points. As you do things, you gain - experience points. At certain experience point - totals, you gain an experience level. The more - experienced you are, the better you are able to - fight and to withstand magical attacks. - -3.2. The top line - - The top line of the screen is reserved for printing -messages that describe things that are impossible to repre- -sent visually. If you see a "--More--" on the top line, -this means that rogue wants to print another message on the -screen, but it wants to make certain that you have read the -one that is there first. To read the next message, just -press a space. - -3.3. The rest of the screen - - The rest of the screen is the map of the level as you -have explored it so far. Each symbol on the screen repre- -sents something. Here is a list of what the various symbols -mean: - -@ This symbol represents you, the adventurer. - --| These symbols represent the walls of rooms. - -+ A door to/from a room. - -. The floor of a room. - -# The floor of a passage between rooms. - -* A pile or pot of gold. - -) A weapon of some sort. - -] A piece of armor. - -! A flask containing a magic potion. - -? A piece of paper, usually a magic scroll. - -^ A trap, watch out for these. - -% The passage leading down to the next level. - -: A piece of food. - -A-Z The uppercase letters represent the various inhabi- - tants of the Dungeons of Doom. Watch out, they can be - - - - - 3 - - - - - - - A Guide to the Dungeons of Doom - - - mean. - -4. Commands - - Commands are given to rogue by pressing single letters. -Most commands can be preceded by a count to repeat them -(e.g. typing "10s" will do ten searches) The list of com- -mands is rather long, but it can be read at any time during -the game with the ? command. Here it is for reference, with -a short explanation of each command. - -? The help command. Asks for a character to give help - on. If you type a "*", it will list all the commands, - otherwise it will explain what the character you typed - does. - -/ This is the "What is that on the screen?" command. A - "/" followed by any character that you see on the - level, will tell you what that character is. For - instance, typing "/@" will tell you that the @ symbol - represents you, the player. - -h , H Move left. You move one space to the left. If you - use upper case h, you will continue to move left until - you run into something. This works for all movement - commands (e.g. "L" means run in direction "l") - -j Move down. - -k Move up. - -l Move right. - -y Move diagonally up and left. - -u Move diagonally up and right. - -b Move diagonally down and left. - -n Move diagonally down and right. - -f Find prefix. When followed by a direction it means to - continue moving in the specified direction until you - pass something interesting or run into a wall. - -t Throw an object. This is a prefix command. Follow it - with a direction and you throw an object in the speci- - fied direction. (e.g. type "th" to throw something - left.) - -> If you are standing over the passage down to the next - level, this command means to climb down. - - - - - - - 4 - - - - - - - A Guide to the Dungeons of Doom - - -s Search for traps and secret doors. Examine each space - immediately adjacent to you for the existence of a - trap or secret door. There is a large chance that - even if there is something there, you won't find it so - you might have to search a while before you find some- - thing. - - (space) Rest. This is the "do nothing" command. This - is good for waiting and healing. - -i Inventory. List what you are carrying in your pack. - -I Selective inventory. Tells you what a single item in - your pack is. - -q Quaff. Drink one of the potions you are carrying. - -r Read. Read one of the scrolls in your pack. - -e Eat food. Take some food out of your pack and eat it. - -w Wield a weapon. Take a weapon out of your pack and - carry it. You must be wielding weapon to use it - (except to throw things). To fire an arrow, you must - wield the bow. You can only wield one weapon at a - time. - -W Wear armor. Take a piece of armor out of your pack - and put it on. You can only wear one suit of armor at - a time. - -T Take armor off. You can't remove armor that is - cursed. This takes extra time. - -d Drop an object. Take something out of your pack and - leave it lying on the floor. Only one object can - occupy each space. - -o Examine and set options. This command is further - explained in the section on options. - -^L REdraws the screen. Useful if spurious messages or - transmission errors have messed up the display. - -v Prints the program version number. - -Q Quit. Leave the game. - -R Repeat last message. Useful when a message disappears - before you can read it. - -S Save the current game in a file. Caveat: Rogue won't - let you start up a copy of a saved game, and it - removes the save file as soon as you start up a - - - - - 5 - - - - - - - A Guide to the Dungeons of Doom - - - restored game. This is to prevent people from saving - a game just before a dangerous position and then - restarting it if they die. To restore a saved game, - give the file name as an argument to rogue. As in - % rogue save_file - -5. Dealing with objects - - When you find something in the dungeon, it is common to -want to pick the object up. This is accomplished in rogue -by walking over the object. If you are carrying too many -things, the program will tell you and it won't pick up the -object, otherwise it will add it to your pack and if the -notify option is set, tell you what you just picked up. - - Many of the commands that operate on objects must -prompt you to find out which object you want to use. If you -change your mind and don't want to do that command after -all, just press an escape and the command will be aborted. - -6. Light - - Rooms in the dungeons are either lit or dark. If you -walk into a lit room, the entire room will be drawn on the -screen as soon as you enter. If you walk into a dark room, -it will only be displayed as you explore it. Upon leaving a -dark room, all objects inside the room which might move are -removed from the screen. In the darkness you can only see -one space in all directions around you. - -7. Fighting - - If you see a monster and you wish to fight it, just -attempt to run into it. Many times a monster you find will -mind its own business unless you attack it. It is often the -case that discretion is the better part of valor. - -8. Armor - - There are various sorts of armor lying around in the -dungeon. Some of it is enchanted, some is cursed and some -is just normal. Different armor types have different armor -classes. The lower the armor class, the more protection the -armor affords against the blows of monsters. If a piece of -armor is enchanted or cursed, its armor class will be higher -or lower than normal. Here is a list of the various armor -types and their normal armor class. - - - - - - - - - - - - 6 - - - - - - - A Guide to the Dungeons of Doom - - - +------------------------------------+ - | Type Class | - +----------------------------+-------+ - |Leather armor | 8 | - |Studded leather / Ring mail | 7 | - |Scale mail | 6 | - |Chain mail | 5 | - |Banded mail / Splint mail | 4 | - |Plate mail | 3 | - +----------------------------+-------+ - -9. Options - - Due to variations in personal tastes and conceptions of -the way rogue should do things, there are a set of options -you can set that cause rogue to behave in various different -ways. - -9.1. Setting the options - - There are basically two ways to set the options. The -first is with the "o" command of rogue, the second is with -the ROGUEOPTS environment variable. On Version 6 systems, -there is no equivalent of the ROGUEOPTS feature. - -9.1.1. Using the "o" command - - When you press "o" in rogue, it clears the screen and -displays the current settings for all the options. It then -places the cursor by the value of the first option and waits -for you to type. You can type a RETURN which means to go to -the next option, a "-" which means to go to the previous -option, an escape which means to return to the game, or you -can give the option a value. For boolean options this -merely involves pressing "t" for true or "f" for false. For -string options, type the new value followed by a return. - -9.1.2. Using the ROGUEOPTS variable - - The ROGUEOPTS variable is a string containing a comma -separated list of initial values for the various options. -Boolean variables can be turned on by listing their name and -turned off by putting a "no" in front of the name. Thus to -set up an environment variable so that jump is on, terse is -off, the name is set to "Conan the Barbarian" and the fruit -is "mango", use the command - % setenv ROGUEOPTS "jump,noterse,name=Conan the Barbarian,fruit=mango" - % setenv ROGUEOPTS "jump,noterse,name=Conan the Barbar- -ian,fruit=mango" - ------------ -For those of you who use the bourne shell, the -commands would be - $ ROGUEOPTS="jump,noterse,name=Conan the Barbarian,fruit=mango" - - - - - 7 - - - - - - - A Guide to the Dungeons of Doom - - -9.2. Option list - - Here is a list of the options and an explanation of -what each one is for. The default value for each is -enclosed in square brackets. - -terse [noterse] Useful for those who are tired of - the sometimes lengthy messages of - rogue. This is a useful option for - those on slow terminals. This - option defaults to on if your are - on a slow (under 1200 baud) termi- - nal. - -jump [nojump] If this option is set, running - moves will not be displayed until - you reach the end of the move. - This saves considerable cpu time - and display time. This option - defaults to on if you are using a - slow terminal. - -step [nostep] When step is set, lists of things, - like inventories or "*" responses - to "Which item do you wish to xxxx? - " questions, are displayed one item - at a time on the top of the screen, - rather than clearing the screen, - displaying the list, then re-dis- - playing the dungeon level. - -flush [noflush] If flush is set, all typeahead is - thrown away after each round of - battle. This is useful for those - who type way ahead and watch to - their dismay as a Kobold kills - them. - -askme [noaskme] Upon reading a scroll or quaffing a - potion which does not automatically - identify it upon use, rogue will - ask you what to name it so you can - recognize it in the future. - -name [account name] This is the name of your character. - It is used if you get on the top - ten scorer's list. It should be - less than eighty characters long. - -fruit [slime-mold] This should hold the name of a - fruit that you enjoy eating. It is - basically a whimsy that the program ------------ - $ export ROGUEOPTS - - - - - 8 - - - - - - - A Guide to the Dungeons of Doom - - - uses in a couple of places. - -file [rogue3.save] The default file name for saving - the game. If your phone is hung up - by accident, rogue will automati- - cally save the game in this file. - The file name may contain the spe- - cial character "~" which expands to - be your home directory. - -10. Acknowledgements - - Rogue was originally conceived of by Glenn Wichman and -Michael Toy. The help of Ken Arnold in making the program -easier to use and putting the finishing touches on is -greatly appreciated. I would also like to thank Marty -McNary, Scott Nelson, Daniel Jensen, Kipp Hickman, Joe -Kalash, Steve Maurer, Bill Joy, Mark Horton and Jan Miller -for their ideas and assistance. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 9 - - - diff --git a/rogue4/Makefile.in b/rogue4/Makefile.in index b921b60..f7923ef 100644 --- a/rogue4/Makefile.in +++ b/rogue4/Makefile.in @@ -45,6 +45,7 @@ CFILES= vers.c extern.c armor.c chase.c command.c daemon.c daemons.c \ rooms.c save.c scrolls.c state.c sticks.c things.c weapons.c wizard.c \ mach_dep.c xcrypt.c mdport.c MISC= Makefile LICENSE.TXT rogue.6 rogue.me +DOCS= $(PROGRAM).cat $(PROGRAM).doc CFLAGS= CPPFLAGS=@DEFS@ @@ -56,6 +57,10 @@ MKDIR=mkdir CHGRP=chgrp CHMOD=chmod INSTALL=@INSTALL@ +GROFF=@GROFF@ +NROFF=@NROFF@ +COLCRT=@COLCRT@ +TBL=@TBL@ SF= NAMELIST= @@ -70,7 +75,9 @@ MACHDEP= # @cc -c $(CFLAGS) x.c # @mv x.o $*.o -@PROGRAM@: $(HDRS) $(OBJS) # xs.o +all: $(PROGRAM) docs + +$(PROGRAM): $(HDRS) $(OBJS) # xs.o # @rm -f x.c # $(CC) $(LDFLAGS) xs.o $(OBJS) $(CRLIB) $(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ @@ -100,8 +107,24 @@ prob: prob.o extern.o xs.o prob.o: prob.c rogue.h $(CC) -O -c prob.c +docs: $(DOCS) + +$(PROGRAM).cat: rogue.6 + if test "x$(GROFF)" != "x" ; then \ + $(GROFF) -P-c -P-b -P-u -Tascii -man rogue.6 > $(PROGRAM).cat ;\ + elif test "x$(NROFF)" != "x" -a "x$(COLCRT)" != "x" ; then \ + $(NROFF) -man rogue.6 | colcrt - > $(PROGRAM).cat ;\ + fi + +$(PROGRAM).doc: rogue.me + if test "x$(GROFF)" != "x" ; then \ + $(GROFF) -P-c -P-b -P-u -t -me -Tutf8 rogue.me > $(PROGRAM).doc ;\ + elif test "x$(NROFF)" != "x" -a "x$(COLCRT)" != "x" -a "x$(TBL)" != "x" ; then \ + $(TBL) rogue.me | $(NROFF) -me | $(COLCRT) - > $(PROGRAM).doc ;\ + fi + clean: - rm -f $(POBJS) $(OBJS) core a.out p.out @PROGRAM@ strings make.out rogue.tar vgrind.* x.c x.o xs.c xs.o linterrs findpw distmod.o xs.po xstr rogue rogue.exe rogue.tar.gz rogue.cat rogue.doc xstr.exe + rm -f $(POBJS) $(OBJS) core a.out p.out $(PROGRAM) strings make.out rogue.tar vgrind.* x.c x.o xs.c xs.o linterrs findpw distmod.o xs.po xstr rogue rogue.exe rogue.tar.gz $(DOCS) xstr.exe maintainer-clean: make clean @@ -137,6 +160,8 @@ install: $(PROGRAM) then $(MKDIR) -p $(DESTDIR)$(docdir) ; fi -$(INSTALL) -m 0644 LICENSE.TXT $(DESTDIR)$(docdir)/LICENSE.TXT -$(INSTALL) -m 0644 rogue.me $(DESTDIR)$(docdir)/$(PROGRAM).me + -$(INSTALL) -m 0644 $(PROGRAM).doc $(DESTDIR)$(docdir)/$(PROGRAM).doc + -$(INSTALL) -m 0644 $(PROGRAM).cat $(DESTDIR)$(docdir)/$(PROGRAM).cat -if test "x$(LOCKFILE)" != "x" && test ! -f $(DESTDIR)$(LOCKFILE) ; then \ $(INSTALL) -m 0666 test $(DESTDIR)$(LOCKFILE) ; \ $(RM) $(DESTDIR)$(LOCKFILE) ; \ @@ -146,7 +171,9 @@ install: $(PROGRAM) uninstall: -$(RM) $(DESTDIR)$(bindir)/$(PROGRAM) -$(RM) $(DESTDIR)$(man6dir)/$(PROGRAM).6 - -$(RM) $(DESTDIR)$(docdir)$(PROGRAM)/$(PROGRAM).doc + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).doc + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).cat + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).me -$(RM) $(DESTDIR)$(LOCKFILE) -$(RMDIR) $(DESTDIR)$(docdir)$(PROGRAM) diff --git a/rogue4/configure.ac b/rogue4/configure.ac index 578ddcc..6903f23 100644 --- a/rogue4/configure.ac +++ b/rogue4/configure.ac @@ -5,7 +5,6 @@ AC_PREREQ(2.56) AC_INIT([Rogue],[5.2.2], [yendor@rogueforge.net]) AC_CONFIG_SRCDIR([armor.c]) AC_CONFIG_HEADERS([config.h]) -# May not be needed for the documentation AC_CONFIG_FILES([Makefile rogue.6 rogue.me]) # Checks for programs. @@ -36,7 +35,6 @@ AC_CHECK_PROG([NROFF], [nroff], [nroff],) AC_CHECK_PROG([GROFF], [groff], [groff],) AC_CHECK_PROG([COLCRT], [colcrt], [colcrt],) AC_CHECK_PROG([TBL], [tbl], [tbl],) -AC_CHECK_PROG([SED], [sed], [sed],) AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue4"] ) PROGRAM=$progname diff --git a/rogue4/rogue.6.in b/rogue4/rogue.6.in index 5b5efd0..9c35a96 100644 --- a/rogue4/rogue.6.in +++ b/rogue4/rogue.6.in @@ -3,7 +3,7 @@ .SH NAME rogue \- Exploring The Dungeons of Doom .SH SYNOPSIS -.B rogue +.B @PROGRAM@ [ .I save_file ] diff --git a/rogue5/Makefile.in b/rogue5/Makefile.in index 7e33519..b9ccc96 100644 --- a/rogue5/Makefile.in +++ b/rogue5/Makefile.in @@ -46,9 +46,6 @@ TBL = @TBL@ #COLCRT=colcrt COLCRT = @COLCRT@ -#SED=sed -SED = @SED@ - #SCOREFILE=rogue54.scr SCOREFILE = @SCOREFILE@ @@ -119,11 +116,10 @@ CFILES = vers.c extern.c armor.c chase.c command.c daemon.c \ rooms.c save.c scrolls.c state.c sticks.c things.c \ weapons.c wizard.c xcrypt.c MISC_C = findpw.c scedit.c scmisc.c -DOCSRC = rogue.me.in rogue.6.in rogue.doc.in rogue.html.in rogue.cat.in -DOCS = $(PROGRAM).doc $(PROGRAM).html $(PROGRAM).cat $(PROGRAM).me \ - $(PROGRAM).6 +DOCSRC = rogue.me.in rogue.6.in rogue.html.in +DOCS = $(PROGRAM).doc $(PROGRAM).cat AFILES = configure Makefile.in configure.ac config.h.in config.sub config.guess \ - install-sh rogue.6.in rogue.me.in rogue.html.in rogue.doc.in rogue.cat.in + install-sh rogue.6.in rogue.me.in rogue.html.in MISC = Makefile.std LICENSE.TXT rogue54.sln rogue54.vcproj rogue.spec \ rogue.png rogue.desktop @@ -134,6 +130,8 @@ MISC = Makefile.std LICENSE.TXT rogue54.sln rogue54.vcproj rogue.spec \ .c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c $*.c + +all: $(PROGRAM) docs $(PROGRAM): $(HDRS) $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ @@ -143,6 +141,7 @@ clean: $(RM) $(OBJS2) $(RM) core a.exe a.out a.exe.stackdump $(PROGRAM) $(PROGRAM).exe $(RM) $(PROGRAM).tar $(PROGRAM).tar.gz $(PROGRAM).zip + $(RM) $(DOCS) $(RM) $(DISTNAME)/* -rmdir $(DISTNAME) @@ -154,6 +153,8 @@ maintainer-clean: $(RM) config.log $(RM) $(PROGRAM).scr $(PROGRAM).lck +docs: $(DOCS) + stddocs: sed -e 's/@PROGRAM@/rogue/' -e 's/@SCOREFILE@/rogue.scr/' rogue.6.in > rogue.6 sed -e 's/@PROGRAM@/rogue/' -e 's/@SCOREFILE@/rogue.scr/' rogue.me.in > rogue.me @@ -179,16 +180,21 @@ scmisc.o scedit.o: $(CC) -O -c $(SF) $*.c $(PROGRAM).doc: rogue.me - if test "x$(GROFF)" != "x" -a "x$(SED)" != "x" ; then \ - $(GROFF) -P-c -t -me -Tascii rogue.me | $(SED) -e 's/.\x08//g' > $(PROGRAM).doc ;\ + if test "x$(GROFF)" != "x" ; then \ + $(GROFF) -P-c -P-b -P-u -t -me -Tutf8 rogue.me > $(PROGRAM).doc ;\ elif test "x$(NROFF)" != "x" -a "x$(TBL)" != "x" -a "x$(COLCRT)" != "x" ; then \ tbl rogue.me | $(NROFF) -me | colcrt - > $(PROGRAM).doc ;\ fi +#$(PROGRAM).html: rogue.me +# if test "x$(GROFF)" != "x" ; then \ +# $(GROFF) -t -me -Thtml -P-l rogue.me > $(PROGRAM).html ;\ +# fi + $(PROGRAM).cat: rogue.6 - if test "x$(GROFF)" != "x" -a "x$(SED)" != "x" ; then \ - $(GROFF) -Tascii -man rogue.6 | $(SED) -e 's/.\x08//g' > $(PROGRAM).cat ;\ - elif test "x$(NROFF)" != "x" -a "x$(TBL)" != "x" -a "x$(COLCRT)" != "x" ; then \ + if test "x$(GROFF)" != "x" ; then \ + $(GROFF) -P-c -P-b -P-u -Tascii -man rogue.6 > $(PROGRAM).cat ;\ + elif test "x$(NROFF)" != "x" -a "x$(COLCRT)" != "x" ; then \ $(NROFF) -man rogue.6 | $(COLCRT) - > $(PROGRAM).cat ;\ fi @@ -196,7 +202,7 @@ dist: clean $(PROGRAM) tar cf $(DISTFILE).tar $(PROGRAM) LICENSE.TXT $(DOCS) gzip -f $(DISTFILE).tar -install: $(PROGRAM) +install: all -$(TOUCH) test -if test ! -f $(DESTDIR)$(SCOREFILE) ; then $(INSTALL) -m 0664 test $(DESTDIR)$(SCOREFILE) ; fi -if test "x$(LOGFILE)" != "x" && test ! -f $(DESTDIR)$(LOGFILE) ; then \ @@ -216,9 +222,9 @@ install: $(PROGRAM) fi -if test -d $(DESTDIR)$(man6dir) ; then $(INSTALL) -m 0644 rogue.6 $(DESTDIR)$(man6dir)/$(PROGRAM).6 ; fi -if test ! -d $(DESTDIR)$(man6dir) ; then $(INSTALL) -m 0644 rogue.6 $(DESTDIR)$(mandir)/$(PROGRAM).6 ; fi - -$(INSTALL) -m 0644 rogue.doc $(DESTDIR)$(docdir)/$(PROGRAM).doc + -$(INSTALL) -m 0644 $(PROGRAM).doc $(DESTDIR)$(docdir)/$(PROGRAM).doc -$(INSTALL) -m 0644 rogue.html $(DESTDIR)$(docdir)/$(PROGRAM).html - -$(INSTALL) -m 0644 rogue.cat $(DESTDIR)$(docdir)/$(PROGRAM).cat + -$(INSTALL) -m 0644 $(PROGRAM).cat $(DESTDIR)$(docdir)/$(PROGRAM).cat -$(INSTALL) -m 0644 LICENSE.TXT $(DESTDIR)$(docdir)/LICENSE.TXT -$(INSTALL) -m 0644 rogue.me $(DESTDIR)$(docdir)/$(PROGRAM).me -if test "x$(LOCKFILE)" != "x" && test ! -f $(DESTDIR)$(LOCKFILE) ; then \ @@ -230,7 +236,10 @@ install: $(PROGRAM) uninstall: -$(RM) $(DESTDIR)$(bindir)/$(PROGRAM) -$(RM) $(DESTDIR)$(man6dir)/$(PROGRAM).6 - -$(RM) $(DESTDIR)$(docdir)$(PROGRAM)/$(PROGRAM).doc + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).doc + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).cat + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).me + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).html -$(RM) $(DESTDIR)$(LOCKFILE) -$(RMDIR) $(DESTDIR)$(docdir)$(PROGRAM) diff --git a/rogue5/configure.ac b/rogue5/configure.ac index fa5c318..b76f439 100644 --- a/rogue5/configure.ac +++ b/rogue5/configure.ac @@ -5,7 +5,7 @@ AC_PREREQ(2.56) AC_INIT([Rogue],[5.4.5], [yendor@rogueforge.net]) AC_CONFIG_SRCDIR([armor.c]) AC_CONFIG_HEADER([config.h]) -AC_CONFIG_FILES([Makefile rogue.6 rogue.cat rogue.doc rogue.html rogue.me]) +AC_CONFIG_FILES([Makefile rogue.6 rogue.me rogue.html]) # Checks for programs. AC_PROG_CC @@ -38,7 +38,6 @@ AC_CHECK_PROG([NROFF], [nroff], [nroff],) AC_CHECK_PROG([GROFF], [groff], [groff],) AC_CHECK_PROG([COLCRT], [colcrt], [colcrt],) AC_CHECK_PROG([TBL], [tbl], [tbl],) -AC_CHECK_PROG([SED], [sed], [sed],) AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue5"] ) PROGRAM=$progname diff --git a/rogue5/rogue.cat.in b/rogue5/rogue.cat.in deleted file mode 100644 index 8dbef73..0000000 --- a/rogue5/rogue.cat.in +++ /dev/null @@ -1,61 +0,0 @@ -ROGUE(6) ROGUE(6) - - - -NAME - rogue - Exploring The Dungeons of Doom - -SYNOPSIS - @PROGRAM@ [ -r ] [ save_file ] [ -s ] [ -d ] - -DESCRIPTION - Rogue is a computer fantasy game with a new twist. It is crt oriented - and the object of the game is to survive the attacks of various mon- - sters and get a lot of gold, rather than the puzzle solving orientation - of most computer fantasy games. - - To get started you really only need to know two commands. The command - ? will give you a list of the available commands and the command / - will identify the things you see on the screen. - - To win the game (as opposed to merely playing to beat other people's - high scores) you must locate the Amulet of Yendor which is somewhere - below the 20th level of the dungeon and get it out. Nobody has - achieved this yet and if somebody does, they will probably go down in - history as a hero among heroes. - - When the game ends, either by your death, when you quit, or if you (by - some miracle) manage to win, rogue will give you a list of the top-ten - scorers. The scoring is based entirely upon how much gold you get. - There is a 10% penalty for getting yourself killed. - - If save_file is specified, rogue will be restored from the specified - saved game file. If the -r option is used, the save game file is pre- - sumed to be the default. - - The -s option will print out the list of scores. - - The -d option will kill you and try to add you to the score file. - - For more detailed directions, read the document A Guide to the Dungeons - of Doom. - -AUTHORS - Michael C. Toy, Kenneth C. R. C. Arnold, Glenn Wichman - -FILES - @SCOREFILE@ Score file - ~/rogue.save Default save file - -SEE ALSO - Michael C. Toy and Kenneth C. R. C. Arnold, A guide to the Dungeons of - Doom - -BUGS - Probably infinite (although countably infinite). However, that Ice - Monsters sometimes transfix you permanently is not a bug. It's a fea- - ture. - - - -4th Berkeley Distribution May 6, 1986 ROGUE(6) diff --git a/rogue5/rogue.doc.in b/rogue5/rogue.doc.in deleted file mode 100644 index 3031d0d..0000000 --- a/rogue5/rogue.doc.in +++ /dev/null @@ -1,858 +0,0 @@ - - - - - - - - A Guide to the Dungeons of Doom - - - Michael C. Toy - Kenneth C. R. C. Arnold - - - Computer Systems Research Group - Department of Electrical Engineering and Computer Science - University of California - Berkeley, California 94720 - - - - - ABSTRACT - - Rogue is a visual CRT based fantasy game which runs - under the UNIX timesharing system. This paper de- - scribes how to play rogue, and gives a few hints for - those who might otherwise get lost in the Dungeons - of Doom. - - - - -1. Introduction - - You have just finished your years as a student at the -local fighter's guild. After much practice and sweat you -have finally completed your training and are ready to embark -upon a perilous adventure. As a test of your skills, the -local guildmasters have sent you into the Dungeons of Doom. -Your task is to return with the Amulet of Yendor. Your -reward for the completion of this task will be a full mem- -bership in the local guild. In addition, you are allowed to -keep all the loot you bring back from the dungeons. - - In preparation for your journey, you are given an -enchanted mace, a bow, and a quiver of arrows taken from a -dragon's hoard in the far off Dark Mountains. You are also -outfitted with elf-crafted armor and given enough food to -reach the dungeons. You say goodbye to family and friends -for what may be the last time and head up the road. - - You set out on your way to the dungeons and after sev- -eral days of uneventful travel, you see the ancient ruins -that mark the entrance to the Dungeons of Doom. It is late -at night, so you make camp at the entrance and spend the -____________________ - UNIX is a trademark of Bell Laboratories - - - - - - - - - - - - -USD:33-2 A Guide to the Dungeons of Doom - - -night sleeping under the open skies. In the morning you -gather your weapons, put on your armor, eat what is almost -your last food, and enter the dungeons. - -2. What is going on here? - - You have just begun a game of rogue. Your goal is to -grab as much treasure as you can, find the Amulet of Yendor, -and get out of the Dungeons of Doom alive. On the screen, a -map of where you have been and what you have seen on the -current dungeon level is kept. As you explore more of the -level, it appears on the screen in front of you. - - Rogue differs from most computer fantasy games in that -it is screen oriented. Commands are all one or two -keystrokes1 and the results of your commands are displayed -graphically on the screen rather than being explained in -words.2 - - Another major difference between rogue and other com- -puter fantasy games is that once you have solved all the -puzzles in a standard fantasy game, it has lost most of its -excitement and it ceases to be fun. Rogue, on the other -hand, generates a new dungeon every time you play it and -even the author finds it an entertaining and exciting game. - -3. What do all those things on the screen mean? - - In order to understand what is going on in rogue you -have to first get some grasp of what rogue is doing with the -screen. The rogue screen is intended to replace the "You -can see ..." descriptions of standard fantasy games. Figure -1 is a sample of what a rogue screen might look like. - -3.1. The bottom line - - At the bottom line of the screen are a few pieces of -cryptic information describing your current status. Here is -an explanation of what these things mean: - -Level This number indicates how deep you have gone in the - dungeon. It starts at one and goes up as you go - deeper into the dungeon. - -Gold The number of gold pieces you have managed to find - and keep with you so far. -____________________ - 1 As opposed to pseudo English sentences. - 2 A minimum screen size of 24 lines by 80 columns is re- -quired. If the screen is larger, only the 24x80 section -will be used for the map. - - - - - - - - - - - - -A Guide to the Dungeons of Doom USD:33-3 - - - -____________________________________________________________ - - - ------------ - |..........+ - |..@....]..| - |....B.....| - |..........| - -----+------ - - - -Level: 1 Gold: 0 Hp: 12(12) Str: 16(16) Arm: 4 Exp: 1/0 - - Figure 1 -____________________________________________________________ - - -Hp Your current and maximum health points. Health - points indicate how much damage you can take before - you die. The more you get hit in a fight, the lower - they get. You can regain health points by resting. - The number in parentheses is the maximum number your - health points can reach. - -Str Your current strength and maximum ever strength. - This can be any integer less than or equal to 31, or - greater than or equal to three. The higher the num- - ber, the stronger you are. The number in the paren- - theses is the maximum strength you have attained so - far this game. - -Arm Your current armor protection. This number indicates - how effective your armor is in stopping blows from - unfriendly creatures. The higher this number is, the - more effective the armor. - -Exp These two numbers give your current experience level - and experience points. As you do things, you gain - experience points. At certain experience point - totals, you gain an experience level. The more expe- - rienced you are, the better you are able to fight and - to withstand magical attacks. - -3.2. The top line - - The top line of the screen is reserved for printing -messages that describe things that are impossible to repre- -sent visually. If you see a "--More--" on the top line, -this means that rogue wants to print another message on the -screen, but it wants to make certain that you have read the -one that is there first. To read the next message, just - - - - - - - - - - -USD:33-4 A Guide to the Dungeons of Doom - - -type a space. - -3.3. The rest of the screen - - The rest of the screen is the map of the level as you -have explored it so far. Each symbol on the screen repre- -sents something. Here is a list of what the various symbols -mean: - -@ This symbol represents you, the adventurer. - --| These symbols represent the walls of rooms. - -+ A door to/from a room. - -. The floor of a room. - -# The floor of a passage between rooms. - -* A pile or pot of gold. - -) A weapon of some sort. - -] A piece of armor. - -! A flask containing a magic potion. - -? A piece of paper, usually a magic scroll. - -= A ring with magic properties - -/ A magical staff or wand - -^ A trap, watch out for these. - -% A staircase to other levels - -: A piece of food. - -A-Z The uppercase letters represent the various inhabitants - of the Dungeons of Doom. Watch out, they can be nasty - and vicious. - -4. Commands - - Commands are given to rogue by typing one or two char- -acters. Most commands can be preceded by a count to repeat -them (e.g. typing "10s" will do ten searches). Commands for -which counts make no sense have the count ignored. To can- -cel a count or a prefix, type . The list of com- -mands is rather long, but it can be read at any time during -the game with the "?" command. Here it is for reference, -with a short explanation of each command. - - - - - - - - - - -A Guide to the Dungeons of Doom USD:33-5 - - -? The help command. Asks for a character to give help - on. If you type a "*", it will list all the commands, - otherwise it will explain what the character you typed - does. - -/ This is the "What is that on the screen?" command. A - "/" followed by any character that you see on the - level, will tell you what that character is. For - instance, typing "/@" will tell you that the "@" symbol - represents you, the player. - -h, H, ^H - Move left. You move one space to the left. If you use - upper case "h", you will continue to move left until - you run into something. This works for all movement - commands (e.g. "L" means run in direction "l") If you - use the "control" "h", you will continue moving in the - specified direction until you pass something interest- - ing or run into a wall. You should experiment with - this, since it is a very useful command, but very dif- - ficult to describe. This also works for all movement - commands. - -j Move down. - -k Move up. - -l Move right. - -y Move diagonally up and left. - -u Move diagonally up and right. - -b Move diagonally down and left. - -n Move diagonally down and right. - -t Throw an object. This is a prefix command. When fol- - lowed with a direction it throws an object in the spec- - ified direction. (e.g. type "th" to throw something to - the left.) - -f Fight until someone dies. When followed with a direc- - tion this will force you to fight the creature in that - direction until either you or it bites the big one. - -m Move onto something without picking it up. This will - move you one space in the direction you specify and, if - there is an object there you can pick up, it won't do - it. - -z Zap prefix. Point a staff or wand in a given direction - and fire it. Even non-directional staves must be - - - - - - - - - - -USD:33-6 A Guide to the Dungeons of Doom - - - pointed in some direction to be used. - -^ Identify trap command. If a trap is on your map and - you can't remember what type it is, you can get rogue - to remind you by getting next to it and typing "^" fol- - lowed by the direction that would move you on top of - it. - -s Search for traps and secret doors. Examine each space - immediately adjacent to you for the existence of a trap - or secret door. There is a large chance that even if - there is something there, you won't find it, so you - might have to search a while before you find something. - -> Climb down a staircase to the next level. Not surpris- - ingly, this can only be done if you are standing on - staircase. - -< Climb up a staircase to the level above. This can't be - done without the Amulet of Yendor in your possession. - -. Rest. This is the "do nothing" command. This is good - for waiting and healing. - -, Pick up something. This picks up whatever you are cur- - rently standing on, if you are standing on anything at - all. - -i Inventory. List what you are carrying in your pack. - -I Selective inventory. Tells you what a single item in - your pack is. - -q Quaff one of the potions you are carrying. - -r Read one of the scrolls in your pack. - -e Eat food from your pack. - -w Wield a weapon. Take a weapon out of your pack and - carry it for use in combat, replacing the one you are - currently using (if any). - -W Wear armor. You can only wear one suit of armor at a - time. This takes extra time. - -T Take armor off. You can't remove armor that is cursed. - This takes extra time. - -P Put on a ring. You can wear only two rings at a time - (one on each hand). If you aren't wearing any rings, - this command will ask you which hand you want to wear - it on, otherwise, it will place it on the unused hand. - - - - - - - - - - -A Guide to the Dungeons of Doom USD:33-7 - - - The program assumes that you wield your sword in your - right hand. - -R Remove a ring. If you are only wearing one ring, this - command takes it off. If you are wearing two, it will - ask you which one you wish to remove, - -d Drop an object. Take something out of your pack and - leave it lying on the floor. Only one object can - occupy each space. You cannot drop a cursed object at - all if you are wielding or wearing it. - -c Call an object something. If you have a type of object - in your pack which you wish to remember something - about, you can use the call command to give a name to - that type of object. This is usually used when you - figure out what a potion, scroll, ring, or staff is - after you pick it up, or when you want to remember - which of those swords in your pack you were wielding. - -D Print out which things you've discovered something - about. This command will ask you what type of thing - you are interested in. If you type the character for a - given type of object (e.g. "!" for potion) it will - tell you which kinds of that type of object you've dis- - covered (i.e., figured out what they are). This com- - mand works for potions, scrolls, rings, and staves and - wands. - -o Examine and set options. This command is further - explained in the section on options. - -^R Redraws the screen. Useful if spurious messages or - transmission errors have messed up the display. - -^P Print last message. Useful when a message disappears - before you can read it. This only repeats the last - message that was not a mistyped command so that you - don't loose anything by accidentally typing the wrong - character instead of ^P. - - - Cancel a command, prefix, or count. - -! Escape to a shell for some commands. - -Q Quit. Leave the game. - -S Save the current game in a file. It will ask you - whether you wish to use the default save file. Caveat: - Rogue won't let you start up a copy of a saved game, - and it removes the save file as soon as you start up a - restored game. This is to prevent people from saving a - - - - - - - - - - -USD:33-8 A Guide to the Dungeons of Doom - - - game just before a dangerous position and then restart- - ing it if they die. To restore a saved game, give the - file name as an argument to rogue. As in - % rogue save_file - - To restart from the default save file (see below), run - % rogue -r - -v Prints the program version number. - -) Print the weapon you are currently wielding - -] Print the armor you are currently wearing - -= Print the rings you are currently wearing - -@ Reprint the status line on the message line - -5. Rooms - - Rooms in the dungeons are either lit or dark. If you -walk into a lit room, the entire room will be drawn on the -screen as soon as you enter. If you walk into a dark room, -it will only be displayed as you explore it. Upon leaving a -room, all monsters inside the room are erased from the -screen. In the darkness you can only see one space in all -directions around you. A corridor is always dark. - -6. Fighting - - If you see a monster and you wish to fight it, just -attempt to run into it. Many times a monster you find will -mind its own business unless you attack it. It is often the -case that discretion is the better part of valor. - -7. Objects you can find - - When you find something in the dungeon, it is common to -want to pick the object up. This is accomplished in rogue -by walking over the object (unless you use the "m" prefix, -see above). If you are carrying too many things, the pro- -gram will tell you and it won't pick up the object, other- -wise it will add it to your pack and tell you what you just -picked up. - - Many of the commands that operate on objects must -prompt you to find out which object you want to use. If you -change your mind and don't want to do that command after -all, just type an and the command will be aborted. - - Some objects, like armor and weapons, are easily dif- -ferentiated. Others, like scrolls and potions, are given -labels which vary according to type. During a game, any two - - - - - - - - - - -A Guide to the Dungeons of Doom USD:33-9 - - -of the same kind of object with the same label are the same -type. However, the labels will vary from game to game. - - When you use one of these labeled objects, if its -effect is obvious, rogue will remember what it is for you. -If it's effect isn't extremely obvious you will be asked -what you want to scribble on it so you will recognize it -later, or you can use the "call" command (see above). - -7.1. Weapons - - Some weapons, like arrows, come in bunches, but most -come one at a time. In order to use a weapon, you must -wield it. To fire an arrow out of a bow, you must first -wield the bow, then throw the arrow. You can only wield one -weapon at a time, but you can't change weapons if the one -you are currently wielding is cursed. The commands to use -weapons are "w" (wield) and "t" (throw). - -7.2. Armor - - There are various sorts of armor lying around in the -dungeon. Some of it is enchanted, some is cursed, and some -is just normal. Different armor types have different armor -protection. The higher the armor protection, the more pro- -tection the armor affords against the blows of monsters. -Here is a list of the various armor types and their normal -armor protection: - - - +-----------------------------------------+ - | Type Protection | - |None 0 | - |Leather armor 2 | - |Studded leather / Ring mail 3 | - |Scale mail 4 | - |Chain mail 5 | - |Banded mail / Splint mail 6 | - |Plate mail 7 | - +-----------------------------------------+ - - -If a piece of armor is enchanted, its armor protection will -be higher than normal. If a suit of armor is cursed, its -armor protection will be lower, and you will not be able to -remove it. However, not all armor with a protection that is -lower than normal is cursed. - - The commands to use weapons are "W" (wear) and "T" -(take off). - - - - - - - - - - - - - -USD:33-10 A Guide to the Dungeons of Doom - - -7.3. Scrolls - - Scrolls come with titles in an unknown tongue3. After -you read a scroll, it disappears from your pack. The com- -mand to use a scroll is "r" (read). - -7.4. Potions - - Potions are labeled by the color of the liquid inside -the flask. They disappear after being quaffed. The command -to use a scroll is "q" (quaff). - -7.5. Staves and Wands - - Staves and wands do the same kinds of things. Staves -are identified by a type of wood; wands by a type of metal -or bone. They are generally things you want to do to some- -thing over a long distance, so you must point them at what -you wish to affect to use them. Some staves are not -affected by the direction they are pointed, though. Staves -come with multiple magic charges, the number being random, -and when they are used up, the staff is just a piece of wood -or metal. - - The command to use a wand or staff is "z" (zap) - -7.6. Rings - - Rings are very useful items, since they are relatively -permanent magic, unlike the usually fleeting effects of -potions, scrolls, and staves. Of course, the bad rings are -also more powerful. Most rings also cause you to use up -food more rapidly, the rate varying with the type of ring. -Rings are differentiated by their stone settings. The com- -mands to use rings are "P" (put on) and "R" (remove). - -7.7. Food - - Food is necessary to keep you going. If you go too -long without eating you will faint, and eventually die of -starvation. The command to use food is "e" (eat). - -8. Options - - Due to variations in personal tastes and conceptions of -the way rogue should do things, there are a set of options -you can set that cause rogue to behave in various different -____________________ - 3 Actually, it's a dialect spoken only by the twenty-sev- -en members of a tribe in Outer Mongolia, but you're not sup- -posed to know that. - - - - - - - - - - - - -A Guide to the Dungeons of Doom USD:33-11 - - -ways. - -8.1. Setting the options - - There are two ways to set the options. The first is -with the "o" command of rogue; the second is with the -"ROGUEOPTS" environment variable4. - -8.1.1. Using the `o' command - - When you type "o" in rogue, it clears the screen and -displays the current settings for all the options. It then -places the cursor by the value of the first option and waits -for you to type. You can type a which means to go -to the next option, a "-" which means to go to the previous -option, an which means to return to the game, or -you can give the option a value. For boolean options this -merely involves typing "t" for true or "f" for false. For -string options, type the new value followed by a . - -8.1.2. Using the ROGUEOPTS variable - - The ROGUEOPTS variable is a string containing a comma -separated list of initial values for the various options. -Boolean variables can be turned on by listing their name or -turned off by putting a "no" in front of the name. Thus to -set up an environment variable so that jump is on, terse is -off, and the name is set to "Blue Meanie", use the command - % setenv ROGUEOPTS "jump,noterse,name=Blue Meanie"5 - -8.2. Option list - - Here is a list of the options and an explanation of -what each one is for. The default value for each is -enclosed in square brackets. For character string options, -input over fifty characters will be ignored. - -terse [noterse] - Useful for those who are tired of the sometimes lengthy - messages of rogue. This is a useful option for playing - on slow terminals, so this option defaults to terse if - you are on a slow (1200 baud or under) terminal. - - -____________________ - 4 On Version 6 systems, there is no equivalent of the -ROGUEOPTS feature. - 5 For those of you who use the Bourne shell sh (1), the -commands would be - $ ROGUEOPTS="jump,noterse,name=Blue Meanie" - $ export ROGUEOPTS - - - - - - - - - - - - -USD:33-12 A Guide to the Dungeons of Doom - - -jump [nojump] - If this option is set, running moves will not be dis- - played until you reach the end of the move. This saves - considerable cpu and display time. This option - defaults to jump if you are using a slow terminal. - -flush [noflush] - All typeahead is thrown away after each round of bat- - tle. This is useful for those who type far ahead and - then watch in dismay as a Bat kills them. - -seefloor [seefloor] - Display the floor around you on the screen as you move - through dark rooms. Due to the amount of characters - generated, this option defaults to noseefloor if you - are using a slow terminal. - -passgo [nopassgo] - Follow turnings in passageways. If you run in a pas- - sage and you run into stone or a wall, rogue will see - if it can turn to the right or left. If it can only - turn one way, it will turn that way. If it can turn - either or neither, it will stop. This algorithm can - sometimes lead to slightly confusing occurrences which - is why it defaults to nopassgo. - -tombstone [tombstone] - Print out the tombstone at the end if you get killed. - This is nice but slow, so you can turn it off if you - like. - -inven [overwrite] - Inventory type. This can have one of three values: - overwrite, slow, or clear. With overwrite the top - lines of the map are overwritten with the list when - inventory is requested or when "Which item do you wish - to . . .? " questions are answered with a "*". How- - ever, if the list is longer than a screenful, the - screen is cleared. With slow, lists are displayed one - item at a time on the top of the screen, and with - clear, the screen is cleared, the list is displayed, - and then the dungeon level is re-displayed. Due to - speed considerations, clear is the default for termi- - nals without clear-to-end-of-line capabilities. - -name [account name] - This is the name of your character. It is used if you - get on the top ten scorer's list. - -fruit [slime-mold] - This should hold the name of a fruit that you enjoy - eating. It is basically a whimsey that rogue uses in a - couple of places. - - - - - - - - - - -A Guide to the Dungeons of Doom USD:33-13 - - -file [~/rogue.save] - The default file name for saving the game. If your - phone is hung up by accident, rogue will automatically - save the game in this file. The file name may start - with the special character "~" which expands to be your - home directory. - -9. Scoring - - Rogue usually maintains a list of the top scoring peo- -ple or scores on your machine. Depending on how it is set -up, it can post either the top scores or the top players. -In the latter case, each account on the machine can post -only one non-winning score on this list. If you score -higher than someone else on this list, or better your previ- -ous score on the list, you will be inserted in the proper -place under your current name. How many scores are kept can -also be set up by whoever installs it on your machine. - - If you quit the game, you get out with all of your gold -intact. If, however, you get killed in the Dungeons of -Doom, your body is forwarded to your next-of-kin, along with -90% of your gold; ten percent of your gold is kept by the -Dungeons' wizard as a fee6. This should make you consider -whether you want to take one last hit at that monster and -possibly live, or quit and thus stop with whatever you have. -If you quit, you do get all your gold, but if you swing and -live, you might find more. - - If you just want to see what the current top play- -ers/games list is, you can type - % @PROGRAM@ -s - -10. Acknowledgements - - Rogue was originally conceived of by Glenn Wichman and -Michael Toy. Ken Arnold and Michael Toy then smoothed out -the user interface, and added jillions of new features. We -would like to thank Bob Arnold, Michelle Busch, Andy -Hatcher, Kipp Hickman, Mark Horton, Daniel Jensen, Bill Joy, -Joe Kalash, Steve Maurer, Marty McNary, Jan Miller, and -Scott Nelson for their ideas and assistance; and also the -teeming multitudes who graciously ignored work, school, and -social life to play rogue and send us bugs, complaints, sug- -gestions, and just plain flames. And also Mom. - - - -____________________ - 6 The Dungeon's wizard is named Wally the Wonder Badger. -Invocations should be accompanied by a sizable donation. - - - - - - - - diff --git a/srogue/Makefile.in b/srogue/Makefile.in index 1323451..3ae24cd 100644 --- a/srogue/Makefile.in +++ b/srogue/Makefile.in @@ -39,6 +39,7 @@ CFILES= vers.c armor.c chase.c command.c daemon.c daemons.c disply.c encumb.c \ rings.c rip.c rooms.c save.c scrolls.c state.c sticks.c things.c \ trader.c weapons.c wizard.c xcrypt.c +DOCS= $(PROGRAM).doc MISC= Makefile LICENSE.TXT rogue.nr CC = gcc @@ -48,6 +49,12 @@ CRLIB = @LIBS@ RM = rm -f TAR = tar INSTALL=@INSTALL@ +GROFF=@GROFF@ +NROFF=@NROFF@ +COLCRT=@COLCRT@ +TBL=@TBL@ + +all: $(PROGRAM) docs $(PROGRAM): $(HDRS) $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(CRLIB) -o $@ @@ -62,7 +69,16 @@ lint: clean: rm -f $(OBJS) core - rm -f $(PROGRAM) $(PROGRAM).exe $(PROGRAM) $(PROGRAM).exe $(PROGRAM).tar $(PROGRAM).tar.gz $(PROGRAM).doc + rm -f $(PROGRAM) $(PROGRAM).exe $(PROGRAM) $(PROGRAM).exe $(PROGRAM).tar $(PROGRAM).tar.gz $(DOCS) + +docs: $(DOCS) + +$(PROGRAM).doc: rogue.nr + if test "x$(GROFF)" != "x" ; then \ + $(GROFF) -P-c -P-b -P-u -t -mm -Tascii rogue.nr >$(PROGRAM).doc ;\ + elif test "x$(NROFF)" != "x" -a "x$(TBL)" != "x" -a "x$(COLCRT)" != "x" ; then \ + $(TBL) rogue.nr | $(NROFF) -mm | $(COLCRT) - > $(PROGRAM).doc ;\ + fi install: $(PROGRAM) -touch test @@ -87,12 +103,14 @@ install: $(PROGRAM) then mkdir -p $(DESTDIR)$(docdir) ; fi -$(INSTALL) -m 0644 LICENSE.TXT $(DESTDIR)$(docdir)/LICENSE.TXT -$(INSTALL) -m 0644 rogue.nr $(DESTDIR)$(docdir)/$(PROGRAM).nr + -$(INSTALL) -m 0644 $(PROGRAM).doc $(DESTDIR)$(docdir)/$(PROGRAM).doc -$(RM) test uninstall: -$(RM) $(DESTDIR)$(bindir)/$(PROGRAM) -$(RM) $(DESTDIR)$(docdir)/LICENSE.TXT -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).nr + -$(RM) $(DESTDIR)$(docdir)/$(PROGRAM).doc -rmdir $(DESTDIR)$(docdir) reinstall: uninstall install diff --git a/srogue/configure.ac b/srogue/configure.ac index c1c0f42..5d17956 100644 --- a/srogue/configure.ac +++ b/srogue/configure.ac @@ -27,6 +27,11 @@ AC_FUNC_VPRINTF AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr nlist _spawnl spawnl getpwuid loadav getloadavg strerror setgid setuid getuid getgid lrand48 random srand48 srandom]) AC_PROG_INSTALL +AC_CHECK_PROG([NROFF], [nroff], [nroff],) +AC_CHECK_PROG([GROFF], [groff], [groff],) +AC_CHECK_PROG([COLCRT], [colcrt], [colcrt],) +AC_CHECK_PROG([TBL], [tbl], [tbl],) + AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="srogue"] ) PROGRAM=$progname AC_SUBST(PROGRAM)