# HG changeset patch # User John "Elwin" Edwards # Date 1456105632 18000 # Node ID 0e99eade579cfa44f7c03b39a07b0407a3c9f580 # Parent a666e4a034ed3a5c3c135d2319dc6cc45325f2b0 Generate text documentation from the troff source files. This is done by make, in the 'docs' target, which is now part of the normal build process. Unfortunately, not all the games include troff sources. Getting decent HTML output from groff is still a difficult process which will not be attempted at this time. There are a few bugs in the 'install' and 'uninstall' rules. Not to mention that the documentation is sometimes inaccurate. diff -r a666e4a034ed -r 0e99eade579c arogue7/Makefile.in --- a/arogue7/Makefile.in Fri Feb 12 15:12:37 2016 -0500 +++ b/arogue7/Makefile.in Sun Feb 21 20:47:12 2016 -0500 @@ -57,7 +57,7 @@ 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 @@ 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 @@ 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 -r a666e4a034ed -r 0e99eade579c arogue7/arogue77.doc --- a/arogue7/arogue77.doc Fri Feb 12 15:12:37 2016 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r a666e4a034ed -r 0e99eade579c arogue7/configure.ac --- a/arogue7/configure.ac Fri Feb 12 15:12:37 2016 -0500 +++ b/arogue7/configure.ac Sun Feb 21 20:47:12 2016 -0500 @@ -25,6 +25,11 @@ 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 -r a666e4a034ed -r 0e99eade579c rogue3/Makefile.in --- a/rogue3/Makefile.in Fri Feb 12 15:12:37 2016 -0500 +++ b/rogue3/Makefile.in Sun Feb 21 20:47:12 2016 -0500 @@ -48,9 +48,9 @@ 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 @@ 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 @@ 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 -r a666e4a034ed -r 0e99eade579c rogue3/configure.ac --- a/rogue3/configure.ac Fri Feb 12 15:12:37 2016 -0500 +++ b/rogue3/configure.ac Sun Feb 21 20:47:12 2016 -0500 @@ -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([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 -r a666e4a034ed -r 0e99eade579c rogue3/rogue36.cat --- a/rogue3/rogue36.cat Fri Feb 12 15:12:37 2016 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r a666e4a034ed -r 0e99eade579c rogue3/rogue36.doc --- a/rogue3/rogue36.doc Fri Feb 12 15:12:37 2016 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r a666e4a034ed -r 0e99eade579c rogue4/Makefile.in --- a/rogue4/Makefile.in Fri Feb 12 15:12:37 2016 -0500 +++ b/rogue4/Makefile.in Sun Feb 21 20:47:12 2016 -0500 @@ -45,6 +45,7 @@ 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 @@ CHGRP=chgrp CHMOD=chmod INSTALL=@INSTALL@ +GROFF=@GROFF@ +NROFF=@NROFF@ +COLCRT=@COLCRT@ +TBL=@TBL@ SF= NAMELIST= @@ -70,7 +75,9 @@ # @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.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 @@ 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 @@ 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 -r a666e4a034ed -r 0e99eade579c rogue4/configure.ac --- a/rogue4/configure.ac Fri Feb 12 15:12:37 2016 -0500 +++ b/rogue4/configure.ac Sun Feb 21 20:47:12 2016 -0500 @@ -5,7 +5,6 @@ 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([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 -r a666e4a034ed -r 0e99eade579c rogue4/rogue.6.in --- a/rogue4/rogue.6.in Fri Feb 12 15:12:37 2016 -0500 +++ b/rogue4/rogue.6.in Sun Feb 21 20:47:12 2016 -0500 @@ -3,7 +3,7 @@ .SH NAME rogue \- Exploring The Dungeons of Doom .SH SYNOPSIS -.B rogue +.B @PROGRAM@ [ .I save_file ] diff -r a666e4a034ed -r 0e99eade579c rogue5/Makefile.in --- a/rogue5/Makefile.in Fri Feb 12 15:12:37 2016 -0500 +++ b/rogue5/Makefile.in Sun Feb 21 20:47:12 2016 -0500 @@ -46,9 +46,6 @@ #COLCRT=colcrt COLCRT = @COLCRT@ -#SED=sed -SED = @SED@ - #SCOREFILE=rogue54.scr SCOREFILE = @SCOREFILE@ @@ -119,11 +116,10 @@ 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 @@ .c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c $*.c + +all: $(PROGRAM) docs $(PROGRAM): $(HDRS) $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ @@ -143,6 +141,7 @@ $(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 @@ $(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 @@ $(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 @@ 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 @@ 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 @@ 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 -r a666e4a034ed -r 0e99eade579c rogue5/configure.ac --- a/rogue5/configure.ac Fri Feb 12 15:12:37 2016 -0500 +++ b/rogue5/configure.ac Sun Feb 21 20:47:12 2016 -0500 @@ -5,7 +5,7 @@ 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([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 -r a666e4a034ed -r 0e99eade579c rogue5/rogue.cat.in --- a/rogue5/rogue.cat.in Fri Feb 12 15:12:37 2016 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r a666e4a034ed -r 0e99eade579c rogue5/rogue.doc.in --- a/rogue5/rogue.doc.in Fri Feb 12 15:12:37 2016 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r a666e4a034ed -r 0e99eade579c srogue/Makefile.in --- a/srogue/Makefile.in Fri Feb 12 15:12:37 2016 -0500 +++ b/srogue/Makefile.in Sun Feb 21 20:47:12 2016 -0500 @@ -39,6 +39,7 @@ 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 @@ 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 @@ 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 @@ 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 -r a666e4a034ed -r 0e99eade579c srogue/configure.ac --- a/srogue/configure.ac Fri Feb 12 15:12:37 2016 -0500 +++ b/srogue/configure.ac Sun Feb 21 20:47:12 2016 -0500 @@ -27,6 +27,11 @@ 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)