----------------cut here------------------ diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/dat/Dwarf.des nethack-3.2.1/dat/Dwarf.des --- nethack-3.2.1.org/dat/Dwarf.des Thu Jan 1 02:00:00 1970 +++ nethack-3.2.1/dat/Dwarf.des Mon Jul 1 18:57:13 1996 @@ -0,0 +1,312 @@ +# Dwarf.des Osku Salerma 1996 (osku@iki.fi) +# +# The "start" level for the quest. +# +# Here you meet your (besieged) class leader, Thorin, +# and receive your quest assignment. +# +MAZE: "D-start",' ' +FLAGS: hardfloor +GEOMETRY:center,center +MAP +......PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP +......PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP +......PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP +......PPPPPPPPPPPPPPPPPP...........................................PPPPPPPPP +......PPPPPPPPPPPPPPPPPP...-------.................................PPPPPPPPP +......PPPPPPPPPPPPPPPPPP...|.....|.................................PPPPPPPPP +......PPPPPPPPPPPPPPPPPP...|.....|.................................PPPPPPPPP +......PPPPPPPPPPPPPPPPPP...|.....+.....--------+--------...........PPPPPPPPP +......PPPPPPPPPPPPPPPPPP...|.....|.....|...............|---........PPPPPPPPP +...........................-------.....|...............|..|........PPPPPPPPP +.......................................|........\......S..|........PPPPPPPPP +......PPPPPPPPPPPPPPPPPP...............|...............|---........PPPPPPPPP +......PPPPPPPPPPPPPPPPPP...............-----------------...........PPPPPPPPP +......PPPPPPPPPPPPPPPPPP..----------...............................PPPPPPPPP +......PPPPPPPPPPPPPPPPPP..|........|...............................PPPPPPPPP +......PPPPPPPPPPPPPPPPPP..|........+...............................PPPPPPPPP +......PPPPPPPPPPPPPPPPPP..----------...............................PPPPPPPPP +......PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP +......PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP +......PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP +ENDMAP +# Dungeon Description +REGION:(00,00,75,19),lit,"ordinary" +REGION:(27,14,34,15),lit,"ordinary" +REGION:(28,05,32,08),lit,"ordinary" +REGION:(40,08,54,11),lit,"ordinary" +REGION:(56,09,57,10),lit,"ordinary" +# Portal arrival point +BRANCH:(02,02,02,02),(0,0,0,0) +# Stairs +STAIR:(57,10),down +# Doors +DOOR: closed,(47,07) +DOOR: locked,(55,10) +DOOR: open,(33,07) +DOOR: closed,(35,15) +# Thorin +MONSTER:'h',"Thorin",(48,10) +# The treasure of Thorin +OBJECT:'(',"chest",(49,10) +# dwarf guards for the audience chamber +MONSTER:'h', "dwarf warrior", (45,09) +MONSTER:'h', "dwarf warrior", (47,10) +MONSTER:'h', "dwarf warrior", (48,11) +MONSTER:'h', "dwarf warrior", (44,08) +MONSTER:'h', "dwarf warrior", (45,11) +MONSTER:'h', "dwarf warrior", (30,06) +# Non diggable walls +NON_DIGGABLE:(00,00,75,19) +# Random trap +TRAP:random,random +# Monsters on siege duty. +MONSTER:'o',"orc-captain",random +MONSTER:'o',"orc-captain",random +MONSTER:'o',"orc-captain",random +MONSTER:'d',"warg", random +MONSTER:'d', "wolf", random +MONSTER:'o',"orc-captain",random +MONSTER:'o',random,random +MONSTER:'T',random,random + +# The "locate" level for the quest. +# +# Here you have to find the entrance to lonely mountain to go +# further towards your assigned quest. +# + +MAZE: "D-locate", ' ' +FLAGS: noteleport, hardfloor +GEOMETRY: center, center +MAP +..................-.....................................-................... +..................|-...................................-|................... +...................|-.................................-|.................... +....................|-...............................-|..................... +.....................|-.............................-|...................... +......................|-...........................-|....................... +.......................|-.........................-|........................ +........................|-.......................-|......................... +.........................|-.....................-|.......................... +..........................|----------.----------|........................... +............................................................................ +....................................PPP..................................... +....................................PPP..................................... +............................................................................ +............................................................................ +............................................................................ +............................................................................ +............................................................................ +............................................................................ +............................................................................ +ENDMAP +REGION: (0,0,75,19), lit, "ordinary" +NON_DIGGABLE: (0,0,75,19) + +# stairs +STAIR: (03,17), up +STAIR: (50,01), down + +# objects +OBJECT: '`', "boulder", (37,09) +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random + +# monsters +MONSTER: 'o', "orc-captain", (43,04) +MONSTER: 'o', "orc-captain", (49,04) +MONSTER: 'o', "orc-captain", (30,06) +MONSTER: 'o', "orc-captain", (30,02) +MONSTER: 'o', "orc-captain", (31,02) +MONSTER: 'o', "orc-captain", (33,02) +MONSTER: 'o', "orc-captain", (32,03) +MONSTER: 'o', "orc-captain", (40,04) +MONSTER: 'd', "wolf", (41,03) +MONSTER: 'd', "warg", (42,02) +MONSTER: 'd', "warg", (50,03) +MONSTER: 'd', "warg", (52,03) +MONSTER: 'd', "warg", (35,01) +MONSTER: 'd', "warg", (36,02) +MONSTER: 'T', "Olog-hai", (42,07) +MONSTER: 'T', "Olog-hai", (08,02) + +# traps +TRAP: random, random +TRAP: random, random +TRAP: random, random +TRAP: random, random + +# +# The "goal" level for the quest. +# +# Here you meet Smaug your nemesis monster. You have to +# defeat Smaug in combat to gain the artifact you have +# been assigned to retrieve. +# +MAZE: "D-goal", ' ' +FLAGS: noteleport, hardfloor +GEOMETRY: center, center +MAP + + + + + + ......................| + ......................| + ......................| + .... ......................| + .... ......................| + ....S......................S......................| + .... ......................| + .... ......................| + ......................| + ......................| + ......................| + + + + +ENDMAP + +REGION: (00,00,57,15), lit, "ordinary" +STAIR: (09,11), up + +DOOR: locked, (12,10) +DOOR: locked, (35,10) + +MONSTER: 'D', "Smaug", (48,10) +OBJECT: '*', "diamond", (48,10), blessed, 0, "The Arkenstone" +OBJECT: '*', "dilithium crystal", (47,09) +OBJECT: '*', "diamond", (48,09) +OBJECT: '*', "jade", (49,09) +OBJECT: '*', "turquoise", (47,10) +OBJECT: '*', "aquamarine", (47,11) +OBJECT: '*', "amber", (48,09) +OBJECT: '*', "emerald", (48,10) +OBJECT: '*', "sapphire", (48,11) +WALLIFY + +# +# The "fill" levels for the quest. +# +# These levels are used to fill out any levels not occupied by specific +# levels as defined above. "filla" is the upper filler, between the +# start and locate levels, and "fillb" the lower between the locate +# and goal levels. +# + +MAZE: "D-filla" , ' ' +INIT_MAP: '.' , '.' , true , true , lit, false +NOMAP +# stairs +STAIR: random, up +STAIR: random, down +# objects +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +# boulders lying around. smaug supposedly has smashed the mountain +# in his spare time +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random +OBJECT: '`', "boulder", random + +# monsters +MONSTER: 'o', random, random +MONSTER: 'o', random, random +MONSTER: 'o', random, random +MONSTER: 'o', random, random +MONSTER: 'o', random, random +MONSTER: 'o', random, random +MONSTER: 'o', random, random +MONSTER: 'o', random, random +MONSTER: 'o', random, random +MONSTER: 'T', random, random +MONSTER: 'T', random, random +MONSTER: 'T', random, random +MONSTER: 'T', random, random + +# traps +TRAP: random, random +TRAP: random, random +TRAP: random, random +TRAP: random, random +TRAP: random, random + +MAZE: "D-fillb" , ' ' +INIT_MAP: '.' , ' ' , true , true , random, true +NOMAP +# +STAIR: random, up +STAIR: random, down + +# lots of gold and jewels in the lonely mountain +OBJECT: '*', "jade", random +OBJECT: '*', "fluorite", random +OBJECT: '*', "jasper", random +OBJECT: '*', "amethyst", random +OBJECT: '*', "garnet", random +OBJECT: '*', "opal", random +OBJECT: '*', "topaz", random +OBJECT: '*', "amber", random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: random, random, random +OBJECT: '[', random, random +OBJECT: '[', "dwarvish mithril-coat", random, random, random +OBJECT: '[', "dwarvish iron helm", random, random, random +OBJECT: ')', "dwarvish mattock", random, random, random +OBJECT: '[', "dwarvish cloak", random, random, random +OBJECT: '[', "dwarvish roundshield", random, random, random + +# monsters +MONSTER: 'o', "orc-captain", random +MONSTER: 'o', "orc-captain", random +MONSTER: 'o', "orc-captain", random +MONSTER: 'o', "orc-captain", random +MONSTER: 'o', random, random +MONSTER: 'o', random, random +MONSTER: 'T', "Olog-hai", random +MONSTER: 'T', "Olog-hai", random +MONSTER: 'T', random, random + +# traps +TRAP: random, random +TRAP: random, random +TRAP: random, random +TRAP: "falling rock", random +TRAP: "falling rock", random +TRAP: "rolling boulder", random diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/dat/data.base nethack-3.2.1/dat/data.base --- nethack-3.2.1.org/dat/data.base Mon Jul 1 15:42:56 1996 +++ nethack-3.2.1/dat/data.base Mon Jul 1 18:56:14 1996 @@ -16,6 +16,13 @@ # following keys for that entry. For instance, `~orc ??m*' preceding `orc*' # prevents "orc mummy" and "orc zombie" from matching. # +abbathor + Abbathor is the sole evil dwarven god, the great master of the + greed and avarice that plagues so many of that otherwise noble + race. He is a hunched, twisted creature, warped by his own + greeds, jealousies, and desires. Like many other deities, his + name is often invoked by followers of other gods to keep him away + from ones treasure. aclys aklys A short studded or spiked club attached to a cord allowing @@ -121,6 +128,13 @@ However unusual their appearance, they are not generally evil. They are beings at peace with themselves and their surroundings. +arkenstone + Arkenstone, Heart of the Mountain, property of the King + under the Mountain, is the most valued jewel that the + dwarves possess. It shines white light that can guide + your steps in the darkness, and carrying it is said + to increase your carrying capacity. When invoked it + will reveal the gold around you. ashikaga takauji Ashikaga Takajui was a daimyo of the Minamoto clan who joined forces with the Go-Daigo to defeat the Hojo armies. @@ -520,6 +534,13 @@ breathing nostrils, but also with the thrashings of its tail, the most deadly part of its serpent-like body. [Mythical Beasts by Deirdre Headon (The Leprechaun Library)] +dumathoin + Dumathoin of the Keeper of Secrets Under the Mountain, the god of + mining, discovery, and exploration. He is called the Silent + Keeper, for he never speaks, but may guide his most devoted + followers and worshippers through fate and happenstance to the + richest veins of ore and the greatest treasures. His symbol is a + faceted gem set against a mountainous silhouette. dwarf* Dwarfs have faces like men (ugly men, with wrinkled, leathery skins), but are generally either flat-footed, duck-footed, or @@ -1571,6 +1592,14 @@ family, and will cut him off, and all that go a whoring after him, to commit whoredom with Molech, from among their people. [ Leviticus 20:1-5 ] +moradin + Moradin is the creator, the ancestral father of the dwarven race. + He is an excellent craftsman and warrior, as befits the respected + leader of the dwarven pantheon, and is a master of the forge. He + is pictured as a tall, muscular dwarf, wearing rough blacksmith's + clothing. In most representations of him, he is at the forge, + working on a piece of steel. As could be expected, his symbol of + worship is the anvil and hammer. mumak* ... the Mumak of Harad was indeed a beast of vast bulk, and the like of him does not walk now in Middle-Earth; his kin @@ -2036,6 +2065,15 @@ mass of protoplasm called a plasmodium, which creeps about and feeds by amoeboid movement. [ The Concise Columbia Encyclopedia ] +smaug + "There he lay, a vast red-golden dragon, fast asleep; a thrumming + came from his jaws and nostrils, and wisps of smoke, but his fires + were low in slumber. Beneath him, under all his limbs and his + huge coiled tail, and about him on all sides stretching away + across the unseen floors, lay countless piles of precious things, + gold wrought and unwrought, gems and jewels, and silver + red-stained in the ruddy light." + [The Hobbit by J.R.R. Tolkien] *snake serpent water moccasin @@ -2134,6 +2172,10 @@ belligerent tengus were supposed to have been man's first instructors in the use of arms. [Mythical Beasts by Deirdre Headon (The Leprechaun Library)] +thorin + Known as 'Thorin Oakenshield' because in the Battle of Azanulbizar + he used an oak-branch as a shield and club. In King of Durin's + folk in exile. Wears a golden necklace and a belt. thoth The Egyptian god of the moon and wisdom, Thoth is the patron deity of scribes and of knowledge, including scientific, diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/dat/mines.des nethack-3.2.1/dat/mines.des --- nethack-3.2.1.org/dat/mines.des Sun Oct 8 04:53:13 1995 +++ nethack-3.2.1/dat/mines.des Fri Jun 21 16:57:05 1996 @@ -74,7 +74,7 @@ MONSTER: 'G', "gnome", random ROOM: "ordinary" , random, random, random, random -MONSTER: 'h', "dwarf", random +MONSTER: 'h', "dwarf miner", random ROOM: "ordinary" , random, random, random, random TRAP: random, random @@ -170,9 +170,9 @@ MONSTER:'G',"gnome",random MONSTER:'h',"hobbit",random MONSTER:'h',"hobbit",random -MONSTER:'h',"dwarf",random -MONSTER:'h',"dwarf",random -MONSTER:'h',"dwarf",random +MONSTER:'h',"dwarf miner",random +MONSTER:'h',"dwarf miner",random +MONSTER:'h',"dwarf miner",random MONSTER:'h',random,random LEVEL: "minetn-2" @@ -260,7 +260,7 @@ MONSTER: 'G', "gnome", random ROOM: "ordinary" , random, random, random, random -MONSTER: 'h', "dwarf", random +MONSTER: 'h', "dwarf miner", random ROOM: "ordinary" , random, random, random, random TRAP: random, random @@ -378,9 +378,9 @@ MONSTER:'G',"gnome",random MONSTER:'h',"hobbit",random MONSTER:'h',"hobbit",random -MONSTER:'h',"dwarf",random -MONSTER:'h',"dwarf",random -MONSTER:'h',"dwarf",random +MONSTER:'h',"dwarf miner",random +MONSTER:'h',"dwarf miner",random +MONSTER:'h',"dwarf miner",random MONSTER:'h',random,random # @@ -413,8 +413,8 @@ MONSTER: 'G', "gnome", random MONSTER: 'G', "gnome", random MONSTER: 'G', "gnome lord", random -MONSTER: 'h', "dwarf", random -MONSTER: 'h', "dwarf", random +MONSTER: 'h', "dwarf miner", random +MONSTER: 'h', "dwarf miner", random MONSTER: 'G', random, random MONSTER: 'G', random, random MONSTER: 'h', random, random diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/dat/quest.txt nethack-3.2.1/dat/quest.txt --- nethack-3.2.1.org/dat/quest.txt Wed Aug 2 17:16:18 1995 +++ nethack-3.2.1/dat/quest.txt Fri Jul 19 23:22:50 1996 @@ -737,6 +737,260 @@ "Sacrifice the Amulet on the altar. Thus shall %d become supreme!" %E # +# Dwarf +# +%Cc D 00001 +You find yourself on the familiar bank of the Long Lake, with the +buildings of Esgaroth visible nearby. %HC archers keep away +those monsters that manage to cross the water, but unfortunately the lands +outside are not so safe. Wolves howl on the wind! + +You steel yourself, and resolve to hurriedly cross the water and find out +why you were summoned, and why %l is here, instead of in the Dwarven +mines of Ered Luin? +%E +%Cp D 00002 +Once again you stand on the shores of the Long Lake. +%E +%Cp D 00003 +Yet again you stand on the shores of the Long Lake. Occasionally, you +notice red flashes to the north. +%E +%Cp D 00005 +"Avenge our forefathers for us, %p!" +%E +%Cp D 00006 +"The King under the Mountain shall return and the rivers run with gold!" +%E +%Cp D 00007 +"If you can do this, %p...perhaps? The Mansions of Khazad-Dum await.." +%E +%Cp D 00008 +"They say the wealth of the dragon is beyond counting." +%E +%Cp D 00009 +"The Blue are rich in iron, but my heart yearns for gold.." +%E +%Cc D 00010 +You instantly recognise %l from when you last saw him in the mines +of Ered Luin. His descendancy from Durin the Deathless, and more recently +Thror, King under the Mountain, is obvious. He bears himself with pride +and hauteur, and his long, flowing beard is shock-white. + +He stands, and visible at his side beneath the sky-blue hooded cloak is a +sword, seemingly Elven in design, that looks to have a mighty lineage. + +Pushing back his hood, he gives you a slow stare before speaking. + +"The Wild can be a dangerous place to travel alone in these dark days, yet +I see you have come far. But first I must ascertain how far..." +%E +%Cp D 00011 +"Ah, %p, you have returned.. Tell me of your more recent adventures. +What have you learnt? Have you grown more experienced in fighting?" +%E +%Cp D 00012 +"So, %p, again you stand before me. In the Wild the wargs and goblins +grow ever more restless, and %n stirs in the north. I know not how +much longer we can last. Are you yet ready?" +%E +%Cc D 00013 +"%p! You have failed? A thousand curses on you and yours! If you have +woken the Dragon but not killed him, we are surely doomed to perish in +dragon fire! + +I would have you killed now, but you deserve not even that. Begone! And +if fortune looks kindly on you, know that no Dwarf will." +%E +%Cc D 00014 +"Ah, %p, it is foolish in the extreme to underestimate a dragon, and +I cannot be sure you would succede. Go ye back into the Wild and hew ye +some more orcs, and return when you are a %R." +%E +%Cc D 00015 +"Ah, alas, %p. The creatures of Morgoth have corrupted you in your +fight. + +Dragons are cunning and intelligent, and any not pure of spirit will +surely be enslaved by their spells. I will heed the lesson of the Narn I +Hin Hurin, and send you not thither now. + +Go back out, and return when you are better prepared." +%E +%Cc D 00016 +Yes, for better or ill, I deem you are ready. As you know, some 170 +years ago the accursed dragon %n descended on my grandfather's Kingdom +in Erebor, killing many of my kin and driving us from our halls. I was +there, although fortunately outside at the time.. + +This defeat weighs heavily on us, %p. I tell you there is no +small store of gold in that mountain, and also %o, Heart of +the Mountain. A more wondrous gem has not been seen since the first Age, +and never in this part of the world. + +I long to take up arms myself and attempt to defeat the dragon, yet I am +nearing my 200th year, and I fear my skills are not as they were. I ask +you, %p, to take up this quest for me. Succede in this, and your +reward shall be what of the treasure you can carry out yourself! + +Go, %p, and return victorious! +%E +%Cp D 00020 +"Be wary of his eyes! Dragons are mighty in enchantment!" +%E +%Cp D 00021 +"There is a secret door on the east side!" +%E +%Cp D 00022 +"My forefathers were mighty in metalsmithing..you may find equipment to +aid you." +%E +%Cp D 00023 +"Beware the dragon's flame! You will need a defence against heat." +%E +%Cp D 00024 +"A dragon's scales make excellent armour. You will need a mighty weapon!" +%E +%Cp D 00025 +"Some dragons have soft undersides. But %n has an armour of gold and +gems!" +%E +%Cp D 00026 +"Dragons have excellent hearing and smell, and do not need to see you." +%E +%Cp D 00027 +"Kill %n, and you avenge your murdered forefathers!" +%E +%Cp D 00028 +"Erebor and Dale were famed throughout the north. It can be so again!" +%E +%Cp D 00029 +"Beware not only the jaws and flame, but also the tail and claws." +%E +%Cc D 00030 +You have followed the River Running to its source at the Front +Gate. Here is the entrance to %i.To the east +you can just make out the ruins of Dale. + +Steam drifts out the gateway, and in some places the water bubbles...The +Dragon is obviously in. + +The wind howls through the tree--wind? The Wargs are come! And orcs with +them! The goblins from the mountains must have got wind of something.. +%E +%Cp D 00031 +Once again you stand at the entrance to %i. +%E +%Cc D 00040 +As you near the Great Hall of Thrain, the dragon-stench increases to +almost unbearable levels. Only the reknowned stamina and willpower of the +dwarves allows you to continue. Occasionally, you hear a near-by rumble or +hissing sound as %n exhales. +%E +%Cp D 00041 +The mountain rumbles with the dragon's fury. %n was not pleased with +your escape, and won't want to let you go this time.. +%E +%Cc D 00050 +"Well, %p, good of you to come..I haven't tasted Dwarf in a while. +Chomped a few when I moved in, though." +%E +%Cp D 00051 +"Watch those whiskers, stumpy, I might singe them off.." +%E +%Cp D 00052 +"Intelligence is a survival trait. It'll be a favour to weed you out.." +%E +%Cp D 00053 +"I'll have the %o back before long. You're not leaving with it, I +guarantee that." +%E +%Cp D 00060 +"So they gave up on burglars? A pity, I liked the taste of hobbit." +%E +%Cp D 00061 +"Go back to your mines, long-beard, before I roast you!" +%E +%Cp D 00062 +"You fight well for a dwarf, but no mortal ever defeated a dragon!" +%E +%Cp D 00063 +"Your best could not kill me when I came, and I am grown now far stronger!" +%E +%Cp D 00064 +"That is a fine weapon you have - it shall look well in my collection!" +%E +%Cp D 00065 +"Your prancing amuses me. I may even let you live.." +%E +%Cp D 00066 +"You have courage, Dwarf. Fortunately, you will still taste good." +%E +%Cp D 00067 +"You act as if you had a chance.. But 'tis true, only a fool would have come." +%E +%Cp D 00068 +"A curse on the armour of Dwarves.. I fear I shall need a tin-opener." +%E +%Cp D 00069 +"You show some small skill.. but can you stand the heat?" +%E +%Cc D 00070 +%oC shines as you pick it up, it's white light red through your +skin. And you feel it could perhaps do more, if you knew how to unlock +its secrets.. + +It is clear now why %l valued the jewel so highly. You resolve to +return it to him, even though it is rightfully yours as bounty. +%E +%Cc D 00080 +As you deal a final blow to %n's battered body, the dragon rears its +head up into the air on its last strength, and cries out: + +"No! I cannot believe it!" He swings his head around to stare at you +again - "YOU? It can't be!" + +With that, the mighty dragon crashes to the floor. You make your way +around to his head, carefully avoiding the blood already etching +interesting patterns into the stone floor, and deliver a mighty blow to +the neck. The whole body jerks and you leap backwards out of the way in +time to hear a hiss of breath escape from between the teeth. Never trust a +dragon, you smile to yourself. It must surely be dead now, with a large +gash in its neck, but to be sure you deliver a few more blows and take +the head off completely. Only then do you turn to examine the hoard. +%E +%Cc D 00081 +"%p! Rumours have been rife that the %n has fallen, and I see it +must be so! We will reoccupy the Mountain forthwith.. + +You have the %o? Ah, but it does good to see this.. Yet last +night Aule appeared to be in a dream - it seems the %o is to be +taken by you on your quest. It will be a victory in itself when its light +shines out in Moloch's lair! + +I would that you had 50 of our best to aid you, but we will need them all +in days to come, I fear. So you must make do with my blessing. + +May your beard grow longer and your axe never dull." +%E +%Cp D 00090 +"Ah, %p! How goes your quest for the Amulet?" +%E +%Cc D 00091 +"The Amulet of Yendor.." %l raises the profferred amulet and looks +at it, before handing it back. "Yes, I can see why Moloch would want it, +and why Aule would send you to retrieve it for us.. but your quest is not +yet over, %p. + +Hence must you journey to the dungeon entrance and out, and with the +Amulet you will be sent by the Gods into the Elemental Planes, areas of +great danger and strangeness. The Amulet itself may help you find your +way through them. + +Survive this and you will find yourself in the Astral Plane. You must go +to the temple of %d and offer up the Amulet. Good luck." +%E +# # Elf # %Cc E 00001 diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/dwarf.txt nethack-3.2.1/dwarf.txt --- nethack-3.2.1.org/dwarf.txt Thu Jan 1 02:00:00 1970 +++ nethack-3.2.1/dwarf.txt Sat Sep 28 11:14:20 1996 @@ -0,0 +1,59 @@ + +NOTES +----- + +-You can only patch a 100% pure 3.2.1 source tree, don't bother trying +to patch anything else. This means that you must unpack the 3.2.0 +source into a clean directory, patch it to 3.2.1 and leave it +there. Don't run setup.sh or anything similar, the patch only patches +the makefiles under the sys/ tree. And if you're trying to patch a +source tree in which you have already compiled nethack, forget it. You +probably modified include/config.h and maybe src/topten.c etc, which +would mean that the patch would probably fail. + +-Some makefiles may not be correct. I tried adding Dwarf.des to the +list of quest levels in every makefile under sys/*, but I could have +made a typo or missed a point where I should have added something. So +if it doesn't compile the dwarf quest levels during the make process, +just do it yourself afterwards. This especially applies to Mac +platforms, there didn't even seem to be any makefiles there.. + +-I noticed that some stupid platforms hardcode the initial startup +menus where you choose your character. A quick look at some of the +sources indicate that win32 and amiga do something to this +effect..maybe some other platforms too. If this is the case, you'll +have to modify it yourself, I have no interest in learning windows rc +files.. + -Or then you have to use the new syntax for specifying your + character class, which is described in the next section. Read on.. + + +GENERAL CHANGES TO THE GAME +--------------------------- +-Command line parameters changed a bit. You can't specify your character + simply by -S, -T etc anymore, you use -c [ABCDEHKPRSTVW@]. (-c comes + from -character, of course.) This had to be done so that you could + still invoke debug mode and specify that you want to be a dwarf on the + command line. Note that this change isn't #ifdef'd, because I'm lazy :) + + +TO-DO +----- +-finetuning. axe of durin, quest difficulty, starting stats, + weapon skills, etc. + +CREDITS +------- +Osku Salerma (osku@iki.fi) + -Coding, quest, organizing etc. Almost everything. +John Fouhy (john.fouhy@actrix.gen.nz) + -Did the quest texts and some suggestions on the quest. +John Dobak (dobak@prolog.net) + -Provided me with the info for the dwarf gods, which he had taken + from ad&d manuals. +Everyone in rec.games.roguelike.nethack + -Plenty of good suggestions and helpful information in the + newsgroup. + + + diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/include/artifact.h nethack-3.2.1/include/artifact.h --- nethack-3.2.1.org/include/artifact.h Mon Jul 1 15:42:57 1996 +++ nethack-3.2.1/include/artifact.h Fri Jun 28 21:28:01 1996 @@ -32,6 +32,11 @@ #define SPFX_DFLAG2 0x0800000L /* attack bonus on monsters w/ mflags2 flag */ #define SPFX_DALIGN 0x1000000L /* attack bonus on non-aligned monsters */ +#ifdef DWARF +#define SPFX_NVIS 0x2000000L /* Night Vision */ +#define SPFX_CARRY 0x4000000L /* Extra carrying capacity */ +#endif + #define SPFX_DBONUS 0x1F00000L /* attack bonus mask */ struct artifact { @@ -54,5 +59,9 @@ #define CHARGE_OBJ (LAST_PROP+5) #define LEV_TELE (LAST_PROP+6) #define CREATE_PORTAL (LAST_PROP+7) + +#ifdef DWARF +#define GOLD_DETECTION (LAST_PROP+8) +#endif #endif /* ARTIFACT_H */ diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/include/artilist.h nethack-3.2.1/include/artilist.h --- nethack-3.2.1.org/include/artilist.h Mon Jul 1 15:42:57 1996 +++ nethack-3.2.1/include/artilist.h Sat Jun 29 15:20:53 1996 @@ -33,6 +33,12 @@ A("", STRANGE_OBJECT, 0, 0, 0, NO_ATTK, NO_DFNS, NO_CARY, 0, A_NONE, 0 ), +#ifdef DWARF +A("Axe of Durin", BATTLE_AXE, + SPFX_RESTR, 0, 0, + PHYS(5,0), NO_DFNS, NO_CARY, 0, A_LAWFUL, 'D' ), +#endif + A("Excalibur", LONG_SWORD, (SPFX_NOGEN|SPFX_RESTR|SPFX_SEEK|SPFX_DEFN|SPFX_INTEL|SPFX_SEARCH),0,0, PHYS(5,10), DRLI(0,0), NO_CARY, 0, A_LAWFUL, 'K' ), @@ -153,6 +159,14 @@ (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL|SPFX_DALIGN), 0, 0, PHYS(5,0), NO_DFNS, CARY(AD_MAGM), CONFLICT, A_LAWFUL, 'C' ), + +#ifdef DWARF +A("The Arkenstone", DIAMOND, + (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), + (SPFX_NVIS|SPFX_CARRY), 0, + NO_ATTK, NO_DFNS, NO_CARY, + GOLD_DETECTION, A_LAWFUL, 'D' ), +#endif A("The Palantir of Westernesse", CRYSTAL_BALL, (SPFX_NOGEN|SPFX_RESTR|SPFX_INTEL), diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/include/config.h nethack-3.2.1/include/config.h --- nethack-3.2.1.org/include/config.h Mon Jul 1 15:42:58 1996 +++ nethack-3.2.1/include/config.h Sat Sep 28 11:12:58 1996 @@ -466,6 +466,8 @@ #define EXP_ON_BOTL /* Show experience on bottom line */ /* #define SCORE_ON_BOTL /* added by Gary Erickson (erickson@ucivax) */ +#define DWARF /* New character class (osku@iki.fi) */ + #include "global.h" /* Define everything else according to choices above */ #endif /* CONFIG_H */ diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/include/prop.h nethack-3.2.1/include/prop.h --- nethack-3.2.1.org/include/prop.h Fri Aug 4 16:30:08 1995 +++ nethack-3.2.1/include/prop.h Tue Jun 25 15:14:55 1996 @@ -54,6 +54,13 @@ #define MAGICAL_BREATHING 47 #define HALF_SPDAM 48 #define HALF_PHDAM 49 -#define LAST_PROP (HALF_PHDAM) /* the last property */ + +#ifdef DWARF + #define NIGHT_VISION 50 + #define EXTRA_CARRY 51 + #define LAST_PROP (EXTRA_CARRY) +#else + #define LAST_PROP (HALF_PHDAM) /* the last property */ +#endif /* DWARF */ #endif /* PROP_H */ diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/include/qtext.h nethack-3.2.1/include/qtext.h --- nethack-3.2.1.org/include/qtext.h Fri Aug 4 16:30:12 1995 +++ nethack-3.2.1/include/qtext.h Wed Jun 26 18:18:10 1996 @@ -5,7 +5,10 @@ #ifndef QTEXT_H #define QTEXT_H -#define N_HDR 13 /* number of classes + 1 */ +/* #ifdef DWARF */ +/* note that this has changed */ +/* was 13 previously */ +#define N_HDR 14 /* number of classes + 1 */ #define COMMON_ID '-' /* common message id value */ struct qtmsg { diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/include/youprop.h nethack-3.2.1/include/youprop.h --- nethack-3.2.1.org/include/youprop.h Sat Mar 30 22:45:30 1996 +++ nethack-3.2.1/include/youprop.h Fri Jul 19 21:42:56 1996 @@ -125,4 +125,9 @@ #define Half_spell_damage u.uprops[HALF_SPDAM].p_flgs #define Half_physical_damage u.uprops[HALF_PHDAM].p_flgs +#ifdef DWARF +#define Night_vision u.uprops[NIGHT_VISION].p_flgs +#define Extra_carry u.uprops[EXTRA_CARRY].p_flgs +#endif + #endif /* YOUPROP_H */ diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/artifact.c nethack-3.2.1/src/artifact.c --- nethack-3.2.1.org/src/artifact.c Mon Jul 1 15:42:59 1996 +++ nethack-3.2.1/src/artifact.c Fri Jun 28 21:36:06 1996 @@ -397,7 +397,22 @@ if (on) Half_physical_damage |= wp_mask; else Half_physical_damage &= ~wp_mask; } - +#ifdef DWARF + if (spfx & SPFX_NVIS) { + if (on) { + Night_vision |= wp_mask; + u.nv_range=3; + } else { + Night_vision &= ~wp_mask; + u.nv_range=1; + } + } + if (spfx & SPFX_CARRY) { + if (on) Extra_carry |= wp_mask; + else Extra_carry &= ~wp_mask; + } +#endif + if(wp_mask == W_ART && !on && oart->inv_prop) { /* might have to turn off invoked power too */ if (oart->inv_prop <= LAST_PROP && @@ -1005,6 +1020,16 @@ obfree(pseudo, (struct obj *)0); /* now, get rid of it */ break; } +#ifdef DWARF + case GOLD_DETECTION: { + struct obj *pseudo = mksobj(SCR_GOLD_DETECTION, FALSE, FALSE); + pseudo->blessed = pseudo->cursed = 0; + pseudo->quan = 20L; /* wonder if this affects scrolls */ + (void) seffects(pseudo); + obfree(pseudo, (struct obj*)0); + break; + } +#endif DWARf case HEALING: { int healamt = (u.uhpmax + 1 - u.uhp) / 2; if(healamt || Sick || (Blinded > 1)) diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/attrib.c nethack-3.2.1/src/attrib.c --- nethack-3.2.1.org/src/attrib.c Sat Mar 30 22:45:31 1996 +++ nethack-3.2.1/src/attrib.c Fri Jul 19 21:46:08 1996 @@ -47,6 +47,13 @@ { 15, &(Warning), "sensitive", "" }, { 0, 0, 0, 0 } }, +#ifdef DWARF + d_abil[] = { { 1, &(HFire_resistance), "", "" }, + { 10, &(Searching), "perceptive", "" }, + { 17, &(HAntimagic), "resistant", "" }, + { 0, 0, 0, 0 } }, +#endif + e_abil[] = { { 1, &(Fast), "", "" }, { 1, &(HSee_invisible), "", "" }, { 1, &(Searching), "", "" }, @@ -110,6 +117,12 @@ {{ 30, 6, 7, 20, 30, 7 }}, { A_LAWFUL, 0 }, 16, 10, 10, 3, c_abil }, +#ifdef DWARF + d_attr = { {{ 13, 7, 9, 10, 17, 6 }}, /* Dwarf */ + {{ 20, 6, 14, 25, 23, 12 }}, + { A_LAWFUL, 0 }, 16, 10, 10, 3, d_abil }, +#endif + e_attr = { {{ 13, 13, 13, 9, 13, 7 }}, /* Elf (ranger) */ {{ 30, 10, 10, 20, 20, 10 }}, { A_CHAOTIC, 10 }, 15, 10, 11, 2, e_abil }, @@ -507,6 +520,10 @@ break; case 'C': attr = &c_attr; break; +#ifdef DWARF + case 'D': attr = &d_attr; + break; +#endif case 'E': attr = &e_attr; break; case 'H': attr = &h_attr; diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/botl.c nethack-3.2.1/src/botl.c --- nethack-3.2.1.org/src/botl.c Sat Dec 23 04:09:36 1995 +++ nethack-3.2.1/src/botl.c Thu Jun 27 22:50:24 1996 @@ -97,6 +97,19 @@ {"Rover", 0}, {"Pioneer", 0} } }, +#ifdef DWARF + { 'D', 0, PM_DWARF, { + {"Tinker", 0}, + {"Digger", 0}, + {"Miner", 0}, + {"Burrower", 0}, + {"Tunneler", 0}, + {"Smith", 0}, + {"Forger", 0}, + {"Master", 0}, + {"King", 0}, + } }, +#endif /* DWARF */ { 'E',0, PM_ELF, { {"Edhel", "Elleth"}, {"Edhel", "Elleth"}, /* elf-maid */ diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/cmd.c nethack-3.2.1/src/cmd.c --- nethack-3.2.1.org/src/cmd.c Mon Jul 1 15:42:59 1996 +++ nethack-3.2.1/src/cmd.c Fri Jul 19 21:27:57 1996 @@ -658,6 +658,10 @@ if (Breathless) you_can("survive without air"); else if (Amphibious) you_can("breathe water"); if (Antimagic) you_are("magic-protected"); +#ifdef DWARF + if (Night_vision) you_can("see in the dark"); + if (Extra_carry) you_have("extra carrying capacity"); +#endif if (Displaced) you_are("displaced"); if (Clairvoyant) you_are("clairvoyant"); if (u.ulycn >= LOW_PM) { diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/decl.c nethack-3.2.1/src/decl.c --- nethack-3.2.1.org/src/decl.c Mon Jul 1 15:42:59 1996 +++ nethack-3.2.1/src/decl.c Sun Jun 23 12:31:59 1996 @@ -217,9 +217,17 @@ struct tc_gbl_data tc_gbl_data = { 0,0, 0,0 }; /* AS,AE, LI,CO */ #ifdef TOURIST + #ifdef DWARF +const char *pl_classes = "ABCDEHKPRSTVW"; + #else /* tourist only */ const char *pl_classes = "ABCEHKPRSTVW"; + #endif /* DWARF */ #else + #ifdef DWARF +const char *pl_classes = "ABCDEHKPRSVW"; + #else const char *pl_classes = "ABCEHKPRSVW"; + #endif /* DWARF */ #endif /* dummy routine used to force linkage */ diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/dig.c nethack-3.2.1/src/dig.c --- nethack-3.2.1.org/src/dig.c Mon Jul 1 15:43:00 1996 +++ nethack-3.2.1/src/dig.c Tue Jun 25 15:03:39 1996 @@ -222,6 +222,11 @@ digging.effort += 10 + rn2(5) + abon() + uwep->spe - uwep->oeroded + u.udaminc; +#ifdef DWARF + if (Role_is('D')) + digging.effort *= 2; +#endif + if (digging.down) { register struct trap *ttmp; diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/dog.c nethack-3.2.1/src/dog.c --- nethack-3.2.1.org/src/dog.c Mon Jul 1 15:43:00 1996 +++ nethack-3.2.1/src/dog.c Fri Jun 21 23:54:51 1996 @@ -35,7 +35,10 @@ switch (u.role) { /* some character classes have restricted ideas of pets */ case 'C': - case 'S': +#ifdef DWARF + case 'D': +#endif /* DWARF */ + case 'S': pettype = PM_LITTLE_DOG; break; case 'W': diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/eat.c nethack-3.2.1/src/eat.c --- nethack-3.2.1.org/src/eat.c Mon Jul 1 15:43:01 1996 +++ nethack-3.2.1/src/eat.c Sun Jun 23 14:14:40 1996 @@ -369,8 +369,14 @@ { boolean fix_petrification = FALSE; +#ifdef DWARF + if ( (Role_is('E') && is_elf(&mons[pm])) || (Role_is('D') && \ + is_dwarf(&mons[pm])) || (!Role_is('E') && !Role_is('D') && \ + is_human(&mons[pm]))) { +#else if (Role_is('E') ? is_elf(&mons[pm]) : is_human(&mons[pm])) { - if (uasmon != &playermon) { +#endif + if (uasmon != &playermon) { You("have a bad feeling deep inside."); } You("cannibal! You will regret this!"); diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/hack.c nethack-3.2.1/src/hack.c --- nethack-3.2.1.org/src/hack.c Mon Jul 1 15:43:01 1996 +++ nethack-3.2.1/src/hack.c Tue Jun 25 15:20:14 1996 @@ -1548,6 +1548,10 @@ } if (carrcap < 0) carrcap = 0; } +#ifdef DWARF + if (Extra_carry) + carrcap *= 1.5; +#endif return((int) carrcap); } diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/mondata.c nethack-3.2.1/src/mondata.c --- nethack-3.2.1.org/src/mondata.c Mon Jul 1 15:43:03 1996 +++ nethack-3.2.1/src/mondata.c Fri Jun 21 23:48:18 1996 @@ -408,6 +408,9 @@ case 'B': return &mons[PM_BARBARIAN]; case 'C': if (flags.female) return &mons[PM_CAVEWOMAN]; else return &mons[PM_CAVEMAN]; +#ifdef DWARF + case 'D': return &mons[PM_DWARF]; +#endif /* DWARF */ case 'E': return &mons[PM_ELF]; case 'H': return &mons[PM_HEALER]; case 'K': return &mons[PM_KNIGHT]; @@ -431,7 +434,11 @@ {PM_KITTEN, PM_HOUSECAT}, {PM_HOUSECAT, PM_LARGE_CAT}, {PM_KOBOLD, PM_LARGE_KOBOLD}, {PM_LARGE_KOBOLD, PM_KOBOLD_LORD}, {PM_GNOME, PM_GNOME_LORD}, {PM_GNOME_LORD, PM_GNOME_KING}, +#ifdef DWARF + {PM_DWARF_MINER, PM_DWARF_LORD}, {PM_DWARF_LORD, PM_DWARF_KING}, +#else {PM_DWARF, PM_DWARF_LORD}, {PM_DWARF_LORD, PM_DWARF_KING}, +#endif {PM_OGRE, PM_OGRE_LORD}, {PM_OGRE_LORD, PM_OGRE_KING}, {PM_ELF, PM_ELF_LORD}, {PM_WOODLAND_ELF, PM_ELF_LORD}, {PM_GREEN_ELF, PM_ELF_LORD}, {PM_GREY_ELF, PM_ELF_LORD}, diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/monst.c nethack-3.2.1/src/monst.c --- nethack-3.2.1.org/src/monst.c Mon Jul 1 15:43:03 1996 +++ nethack-3.2.1/src/monst.c Tue Jul 2 16:56:51 1996 @@ -365,6 +365,15 @@ NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), SIZ(500, 200, 0, MS_HUMANOID, MZ_SMALL), 0, 0, M1_HUMANOID|M1_OMNIVORE, M2_COLLECT, 0, CLR_GREEN), +#ifdef DWARF + MON("dwarf miner", S_HUMANOID, + LVL(2, 6, 10, 10, 4), (G_GENO|3), + A(ATTK(AT_WEAP, AD_PHYS, 1, 8), + NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), + SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0, + M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE, + M2_DWARF|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT, 0, CLR_RED), +#else MON("dwarf", S_HUMANOID, LVL(2, 6, 10, 10, 4), (G_GENO|3), A(ATTK(AT_WEAP, AD_PHYS, 1, 8), @@ -372,6 +381,7 @@ SIZ(900, 300, 0, MS_HUMANOID, MZ_HUMAN), 0, 0, M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE, M2_DWARF|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT, 0, CLR_RED), +#endif /* DWARF */ MON("bugbear", S_HUMANOID, LVL(3, 9, 5, 0, -6), (G_GENO|1), A(ATTK(AT_WEAP, AD_PHYS, 2, 4), @@ -2509,6 +2519,15 @@ SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, 0, HI_DOMESTIC), +#ifdef DWARF + MON("dwarf", S_HUMAN, + LVL(10, 10, 10, 1, 0), G_NOGEN, + A(ATTK(AT_WEAP, AD_PHYS, 1, 6), + NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), + SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0, + M1_HUMANOID|M1_OMNIVORE, + M2_NOPOLY|M2_DWARF|M2_STRONG|M2_COLLECT, 0, HI_DOMESTIC), +#endif /* Note: players who are elves still get normal carrying capacity, * even though this is strictly speaking inconsistent. */ @@ -2615,6 +2634,17 @@ M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE| M2_COLLECT|M2_MAGIC, M3_CLOSE, HI_LORD), +#ifdef DWARF + MON("Thorin", S_HUMANOID, + LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ), + A(ATTK(AT_WEAP, AD_PHYS, 2, 6), + NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), + SIZ(900, 300, 0, MS_LEADER, MZ_HUMAN), 0, 0, + M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE, + M2_DWARF|M2_STRONG|M2_NOPOLY|M2_PNAME|M2_MALE|M2_GREEDY| + M2_JEWELS|M2_COLLECT|M2_MAGIC|M2_PEACEFUL, + M3_CLOSE, HI_LORD), +#endif /* Two for elves - one of each sex. */ MON("Earendil", S_HUMAN, @@ -2745,6 +2775,19 @@ M2_NOPOLY|M2_HOSTILE|M2_FEMALE|M2_STALK|M2_STRONG|M2_NASTY| M2_GREEDY|M2_JEWELS|M2_MAGIC, M3_WANTSARTI|M3_WAITFORU, HI_LORD), +#ifdef DWARF + MON("Smaug", S_DRAGON, + LVL(16, 10, 0, 20, -14), (G_NOGEN|G_UNIQ), + A(ATTK(AT_BREA, AD_FIRE, 6, 8), ATTK(AT_BREA, AD_FIRE, 2, 6), + ATTK(AT_CLAW, AD_SAMU, 2, 8), ATTK(AT_BITE, AD_PHYS, 1, 6), + ATTK(AT_BITE, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4)), + SIZ(WT_DRAGON, 1800, 0, MS_NEMESIS, MZ_GIGANTIC), + MR_FIRE,MR_FIRE, + M1_THICK_HIDE|M1_NOHANDS|M1_CARNIVORE|M1_FLY, + M2_NOPOLY|M2_HOSTILE|M2_MALE|M2_STALK|M2_STRONG|M2_NASTY| + M2_GREEDY|M2_JEWELS|M2_MAGIC, + M3_WANTSARTI|M3_WAITFORU, CLR_RED), +#endif MON("Goblin King", S_ORC, LVL(15, 10, 10, 0, -15), (G_NOGEN|G_UNIQ), A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6), @@ -2852,6 +2895,17 @@ SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0, M1_HUMANOID|M1_OMNIVORE, M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, 0, HI_DOMESTIC), +#ifdef DWARF + MON("dwarf warrior", S_HUMANOID, + LVL(5, 10, 10, 10, 5), G_NOGEN, + A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4), + NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK), + SIZ(900, 300, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0, + M1_TUNNEL|M1_NEEDPICK|M1_HUMANOID|M1_OMNIVORE, + M2_DWARF|M2_STRONG|M2_NOPOLY|M2_MALE|M2_GREEDY|M2_JEWELS| + M2_COLLECT|M2_PEACEFUL, + 0, HI_DOMESTIC), +#endif MON("High-elf", S_HUMAN, LVL(5, 12, 10, 10, -7), G_NOGEN, A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_MAGC, AD_CLRC, 0, 0), diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/mplayer.c nethack-3.2.1/src/mplayer.c --- nethack-3.2.1.org/src/mplayer.c Mon Jul 1 15:43:03 1996 +++ nethack-3.2.1/src/mplayer.c Fri Jun 21 23:57:31 1996 @@ -150,6 +150,11 @@ case PM_CAVEWOMAN: weapon = CLUB; break; +#ifdef DWARF + case PM_DWARF: + weapon = DWARVISH_MATTOCK; + break; +#endif case PM_ELF: weapon = ELVEN_SHORT_SWORD; break; diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/options.c nethack-3.2.1/src/options.c --- nethack-3.2.1.org/src/options.c Mon Jul 1 15:43:04 1996 +++ nethack-3.2.1/src/options.c Sat Jun 22 02:27:08 1996 @@ -436,7 +436,11 @@ if (flags.female) { /* should have been set in NETHACKOPTIONS */ roles[2] = "Cavewoman"; +#ifdef DWARF + roles[7] = "Priestess"; +#else roles[6] = "Priestess"; +#endif } } diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/potion.c nethack-3.2.1/src/potion.c --- nethack-3.2.1.org/src/potion.c Mon Jul 1 15:43:05 1996 +++ nethack-3.2.1/src/potion.c Tue Jun 25 16:27:55 1996 @@ -422,17 +422,28 @@ break; case POT_BOOZE: unkn++; +#ifdef DWARF + if (Role_is('D')) + pline("This tastes like beer."); + else +#endif pline("Ooph! This tastes like %s%s!", otmp->odiluted ? "watered down " : "", Hallucination ? "dandelion wine" : "liquid fire"); - if (!otmp->blessed) - make_confused(itimeout_incr(HConfusion, d(3,8)), FALSE); +#ifdef DWARF + if (!Role_is('D')) +#endif + if (!otmp->blessed) + make_confused(itimeout_incr(HConfusion, d(3,8)), FALSE); /* the whiskey makes us feel better */ if (u.uhp < u.uhpmax && !otmp->odiluted) losehp(-1, "", 0); /* can't kill you */ u.uhunger += 10 * (2 + bcsign(otmp)); newuhs(FALSE); - exercise(A_WIS, FALSE); +#ifdef DWARF + if (!Role_is('D')) +#endif + exercise(A_WIS, FALSE); if(otmp->cursed) { You("pass out."); multi = -rnd(15); diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/pray.c nethack-3.2.1/src/pray.c --- nethack-3.2.1.org/src/pray.c Mon Jul 1 15:43:05 1996 +++ nethack-3.2.1/src/pray.c Fri Jun 28 17:36:41 1996 @@ -37,6 +37,9 @@ {'A', /* Central American */ "Quetzalcoatl", "Camaxtli", "Huhetotl"}, {'B', /* Hyborian */ "Mitra", "Crom", "Set"}, {'C', /* Babylonian */ "Anu", "Ishtar", "Anshar"}, +#ifdef DWARF +{'D', /* AD&D */ "Moradin", "Dumathoin", "Abbathor"}, +#endif /* DWARF */ {'E', /* Elven */ "Solonor Thelandira", "Aerdrie Faenya", "Erevan Ilesere"}, {'H', /* Greek */ "Athena", "Hermes", "Poseidon"}, @@ -952,7 +955,12 @@ if (otmp->oeaten) value = eaten_stat(value, otmp); +#ifdef DWARF + if ( (Role_is('E') && is_elf(ptr)) || (Role_is('D') && is_dwarf(ptr)) \ + || (!Role_is('E') && !Role_is('D') && is_human(ptr))) { +#else if (Role_is('E') ? is_elf(ptr) : is_human(ptr)) { +#endif if (is_demon(uasmon)) { You("find the idea very satisfying."); exercise(A_WIS, TRUE); @@ -963,8 +971,14 @@ if (altaralign != A_CHAOTIC && altaralign != A_NONE) { /* curse the lawful/neutral altar */ - pline_The("altar is stained with %s blood.", - Role_is('E') ? "elven" : "human"); + +#ifdef DWARF + if (Role_is('D')) + pline_The("altar is stained with dwarvish blood."); + else +#endif + pline_The("altar is stained with %s blood.", + Role_is('E') ? "elven" : "human"); if(!Is_astralevel(&u.uz)) levl[u.ux][u.uy].altarmask = AM_CHAOTIC; angry_priest(); diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/questpgr.c nethack-3.2.1/src/questpgr.c --- nethack-3.2.1.org/src/questpgr.c Mon Dec 4 18:28:07 1995 +++ nethack-3.2.1/src/questpgr.c Sun Jun 30 17:57:18 1996 @@ -175,6 +175,14 @@ PM_BUGBEAR, PM_HILL_GIANT, S_HUMANOID, S_GIANT, ART_SCEPTRE_OF_MIGHT }, +#ifdef DWARF +/* D */ { "the Lonely Mountain", + "the Laketown", + PM_THORIN, PM_SMAUG, PM_DWARF_WARRIOR, + PM_ORC_CAPTAIN, PM_WARG, S_ORC, S_DOG, + ART_ARKENSTONE }, +#endif + /* E */ { "the Goblins' Cave", "the great Circle of Earendil", PM_EARENDIL, PM_GOBLIN_KING, PM_HIGH_ELF, @@ -248,6 +256,25 @@ case 'A': return(0); case 'B': return(1); case 'C': return(2); +#ifdef DWARF + case 'D': return(3); + case 'E': return((unsigned)(4+flags.female)); + case 'H': return(6); + case 'K': return(7); + case 'P': return(8); + case 'R': return(9); + case 'S': return(10); +#ifdef TOURIST + case 'T': return(11); + case 'V': return(12); + case 'W': return(13); + default: return(14); +#else + case 'V': return(11); + case 'W': return(12); + default: return(13); +#endif /* TOURIST */ +#else case 'E': return((unsigned)(3+flags.female)); case 'H': return(5); case 'K': return(6); @@ -263,7 +290,8 @@ case 'V': return(10); case 'W': return(11); default: return(12); -#endif +#endif /* TOURIST */ +#endif /* DWARF */ } } diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/spell.c nethack-3.2.1/src/spell.c --- nethack-3.2.1.org/src/spell.c Mon Jul 1 15:43:06 1996 +++ nethack-3.2.1/src/spell.c Sun Jun 23 15:20:37 1996 @@ -80,6 +80,9 @@ { 'A', 5, 0, 2, 10, A_INT, SPE_MAGIC_MAPPING, -4 }, { 'B', 14, 0, 0, 8, A_INT, SPE_HASTE_SELF, -4 }, { 'C', 12, 0, 1, 8, A_INT, SPE_DIG, -4 }, +#ifdef DWARF + { 'D', 4, 0, 0, 10, A_WIS, SPE_IDENTIFY, -4 }, +#endif /* DWARF */ { 'E', 5, 0, 1, 10, A_INT, SPE_DETECT_UNSEEN, -4 }, { 'H', 3,-3, 2, 10, A_WIS, SPE_CURE_SICKNESS, -4 }, { 'K', 8,-2, 0, 9, A_WIS, SPE_TURN_UNDEAD, -4 }, diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/topten.c nethack-3.2.1/src/topten.c --- nethack-3.2.1.org/src/topten.c Mon Jul 1 15:43:06 1996 +++ nethack-3.2.1/src/topten.c Fri Jun 21 23:32:43 1996 @@ -32,7 +32,7 @@ #define dealloc_ttentry(ttent) free((genericptr_t) (ttent)) #define NAMSZ 10 #define DTHSZ 60 -#define PERSMAX 3 /* entries per name/uid per char. allowed */ +#define PERSMAX 100 /* entries per name/uid per char. allowed */ #define POINTSMIN 1 /* must be > 0 */ #define ENTRYMAX 100 /* must be >= 10 */ @@ -795,6 +795,9 @@ case 'A': return PM_ARCHEOLOGIST; case 'B': return PM_BARBARIAN; case 'C': return (fem ? PM_CAVEWOMAN : PM_CAVEMAN); +#ifdef DWARF + case 'D': return PM_DWARF; +#endif /* DWARF */ case 'E': return PM_ELF; case 'H': return PM_HEALER; case 'F': /* accept old Fighter class */ diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/src/u_init.c nethack-3.2.1/src/u_init.c --- nethack-3.2.1.org/src/u_init.c Mon Jul 1 15:43:07 1996 +++ nethack-3.2.1/src/u_init.c Fri Jul 19 22:46:42 1996 @@ -28,7 +28,11 @@ /* roles[2] and [6] are changed for females */ /* in all cases, the corresponding male and female */ /* roles must start with the same letter */ - "Archeologist", "Barbarian", "Caveman", "Elf", "Healer", "Knight", + "Archeologist", "Barbarian", "Caveman", +#ifdef DWARF + "Dwarf", +#endif + "Elf", "Healer", "Knight", "Priest", "Rogue", "Samurai", #ifdef TOURIST "Tourist", @@ -68,6 +72,16 @@ { LEATHER_ARMOR, 0, ARMOR_CLASS, 1, UNDEF_BLESS }, { 0, 0, 0, 0, 0 } }; +#ifdef DWARF +static struct trobj Dwarf[] = { +#define D_WEAPON 0 + { DWARVISH_MATTOCK, 0, WEAPON_CLASS, 1, UNDEF_BLESS }, + { DWARVISH_IRON_HELM, 0, ARMOR_CLASS, 1, UNDEF_BLESS }, + { CHAIN_MAIL, 0, ARMOR_CLASS, 1, 1 }, + { PICK_AXE, 0, TOOL_CLASS, 1, UNDEF_BLESS } , + { 0, 0, 0, 0, 0 } +}; +#endif static struct trobj Elf[] = { #define E_ARROWS 2 #define E_ARMOR 3 @@ -167,6 +181,12 @@ * Optional extra inventory items. */ +#ifdef DWARF +static struct trobj Booze[] = { + { POT_BOOZE, 0, POTION_CLASS, 1, 0 }, + { 0, 0, 0, 0, 0 } +}; +#endif static struct trobj Tinopener[] = { { TIN_OPENER, 0, TOOL_CLASS, 1, 0 }, { 0, 0, 0, 0, 0 } @@ -243,6 +263,19 @@ { P_NO_TYPE, 0 } }; +#ifdef DWARF +static struct def_skill Skill_D[] = { + { P_PICK_AXE, P_EXPERT }, { P_AXE, P_EXPERT }, + { P_SHORT_SWORD, P_EXPERT }, { P_SCIMITAR, P_SKILLED }, + { P_FLAIL, P_SKILLED }, { P_HAMMER, P_SKILLED } , + { P_DAGGER, P_BASIC }, { P_SPEAR, P_SKILLED } , + { P_JAVELIN, P_BASIC }, { P_CLUB, P_BASIC } , + { P_LONG_SWORD, P_BASIC }, { P_SABER, P_BASIC }, + { P_TWO_WEAPON_COMBAT, P_BASIC }, { P_BROAD_SWORD, P_EXPERT }, + { P_BARE_HANDED_COMBAT, 6 }, { P_NO_TYPE, 0 } +}; +#endif /* DWARF */ + static struct def_skill Skill_E[] = { { P_DAGGER, P_EXPERT }, { P_KNIFE, P_SKILLED }, { P_SHORT_SWORD, P_EXPERT }, { P_BROAD_SWORD, P_EXPERT }, @@ -527,6 +559,24 @@ skill_init(Skill_C); #endif /* WEAPON_SKILLS */ break; +#ifdef DWARF + case 'D': + u.umonster = PM_DWARF; + if (rn2(100) >= 25) + Dwarf[D_WEAPON].trotyp = DWARVISH_SHORT_SWORD; + ini_inv(Dwarf); + if (rn2(5)) ini_inv(Booze); + knows_class(WEAPON_CLASS); + knows_class(ARMOR_CLASS); + knows_class(GEM_CLASS); +#ifdef WEAPON_SKILLS + skill_init(Skill_D); +#endif /* WEAPON_SKILLS */ + /* no sense for dwarves to have a negative hit bonus + on weapons they made themselves.. */ + objects[DWARVISH_MATTOCK].oc_hitbon=0; + break; +#endif /* DWARF */ case 'E': u.umonster = PM_ELF; Elf[E_ARROWS].trquan = rn1(20, 16); diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/amiga/Makefile.ami nethack-3.2.1/sys/amiga/Makefile.ami --- nethack-3.2.1.org/sys/amiga/Makefile.ami Mon Jul 1 15:43:08 1996 +++ nethack-3.2.1/sys/amiga/Makefile.ami Mon Jul 1 16:14:30 1996 @@ -427,6 +427,10 @@ $(SLIB)C-start.lev CDFILES= $(SLIB)C-goal.lev $(CDFILES1) +DDFILES1= $(SLIB)D-filla.lev $(SLIB)D-fillb.lev $(SLIB)D-locate.lev \ + $(SLIB)D-start.lev +DDFILES= $(SLIB)D-goal.lev $(DDFILES1) + EDFILES1= $(SLIB)E-filla.lev $(SLIB)E-fillb.lev $(SLIB)E-locate.lev \ $(SLIB)E-start.lev EDFILES= $(SLIB)E-goal.lev $(EDFILES1) @@ -1114,6 +1118,12 @@ $(SLIB)C-goal.lev: $(DAT)Caveman.des $(SBIN)lev_comp #SFD_INSTEAD $(SBIN)lev_comp $(DAT)Caveman.des +#none + +$(DDFILES1): $(SLIB)D-goal.lev + +$(SLIB)D-goal.lev: $(DAT)Dwarf.des $(SBIN)lev_comp +#SFD_INSTEAD $(SBIN)lev_comp $(DAT)Dwarf.des #none $(EDFILES1): $(SLIB)E-goal.lev diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/msdos/Makefile.BC nethack-3.2.1/sys/msdos/Makefile.BC --- nethack-3.2.1.org/sys/msdos/Makefile.BC Mon Jul 1 15:43:10 1996 +++ nethack-3.2.1/sys/msdos/Makefile.BC Mon Jul 1 16:26:15 1996 @@ -864,7 +864,7 @@ $(DAT)\caveman.des $(DAT)\elf.des $(DAT)\healer.des \ $(DAT)\knight.des $(DAT)\priest.des $(DAT)\rogue.des \ $(DAT)\samurai.des $(DAT)\tourist.des $(DAT)\valkyrie.des \ - $(DAT)\wizard.des + $(DAT)\wizard.des $(DAT)\dwarf.des cd $(DAT) $(U)lev_comp bigroom.des $(U)lev_comp castle.des @@ -879,6 +879,7 @@ $(U)lev_comp arch.des $(U)lev_comp barb.des $(U)lev_comp caveman.des + $(U)lev_comp dwarf.des $(U)lev_comp elf.des $(U)lev_comp healer.des $(U)lev_comp knight.des diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/msdos/Makefile.GCC nethack-3.2.1/sys/msdos/Makefile.GCC --- nethack-3.2.1.org/sys/msdos/Makefile.GCC Mon Jul 1 15:43:10 1996 +++ nethack-3.2.1/sys/msdos/Makefile.GCC Mon Jul 1 16:25:27 1996 @@ -785,7 +785,7 @@ $(DAT)\caveman.des $(DAT)\elf.des $(DAT)\healer.des \ $(DAT)\knight.des $(DAT)\priest.des $(DAT)\rogue.des \ $(DAT)\samurai.des $(DAT)\tourist.des $(DAT)\valkyrie.des \ - $(DAT)\wizard.des + $(DAT)\wizard.des $(DAT)\dwarf.des copy $(SRC)\lev_comp.exe $(DAT)\lev_comp.exe cd $(DAT) lev_comp bigroom.des @@ -801,6 +801,7 @@ lev_comp arch.des lev_comp barb.des lev_comp caveman.des + lev_comp dwarf.des lev_comp elf.des lev_comp healer.des lev_comp knight.des diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/msdos/Makefile.MSC nethack-3.2.1/sys/msdos/Makefile.MSC --- nethack-3.2.1.org/sys/msdos/Makefile.MSC Mon Jul 1 15:43:10 1996 +++ nethack-3.2.1/sys/msdos/Makefile.MSC Mon Jul 1 16:25:02 1996 @@ -905,7 +905,7 @@ $(DAT)\caveman.des $(DAT)\elf.des $(DAT)\healer.des \ $(DAT)\knight.des $(DAT)\priest.des $(DAT)\rogue.des \ $(DAT)\samurai.des $(DAT)\tourist.des $(DAT)\valkyrie.des \ - $(DAT)\wizard.des + $(DAT)\wizard.des $(DAT)\dwarf.des cd $(DAT) $(U)lev_comp bigroom.des $(U)lev_comp castle.des @@ -920,6 +920,7 @@ $(U)lev_comp arch.des $(U)lev_comp barb.des $(U)lev_comp caveman.des + $(U)lev_comp dwarf.des $(U)lev_comp elf.des $(U)lev_comp healer.des $(U)lev_comp knight.des diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/msdos/Makefile.SC nethack-3.2.1/sys/msdos/Makefile.SC --- nethack-3.2.1.org/sys/msdos/Makefile.SC Mon Jul 1 15:43:10 1996 +++ nethack-3.2.1/sys/msdos/Makefile.SC Mon Jul 1 16:24:15 1996 @@ -690,10 +690,10 @@ $(DAT)\endgame.des $(DAT)\gehennom.des $(DAT)\knox.des \ $(DAT)\medusa.des $(DAT)\oracle.des $(DAT)\tower.des \ $(DAT)\yendor.des $(DAT)\arch.des $(DAT)\barb.des \ - $(DAT)\caveman.des $(DAT)\elf.des $(DAT)\healer.des \ - $(DAT)\knight.des $(DAT)\priest.des $(DAT)\rogue.des \ - $(DAT)\samurai.des $(DAT)\tourist.des $(DAT)\valkyrie.des \ - $(DAT)\wizard.des + $(DAT)\caveman.des $(DAT)\dwarf.des $(DAT)\elf.des \ + $(DAT)\healer.des $(DAT)\knight.des $(DAT)\priest.des \ + $(DAT)\rogue.des $(DAT)\samurai.des $(DAT)\tourist.des \ + $(DAT)\valkyrie.des $(DAT)\wizard.des cd $(DAT) $(UTIL)\lev_comp bigroom.des $(UTIL)\lev_comp castle.des @@ -708,6 +708,7 @@ $(UTIL)\lev_comp arch.des $(UTIL)\lev_comp barb.des $(UTIL)\lev_comp caveman.des + $(UTIL)\lev_comp dwarf.des $(UTIL)\lev_comp elf.des $(UTIL)\lev_comp healer.des $(UTIL)\lev_comp knight.des diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/os2/Makefile.os2 nethack-3.2.1/sys/os2/Makefile.os2 --- nethack-3.2.1.org/sys/os2/Makefile.os2 Sat Mar 30 22:45:00 1996 +++ nethack-3.2.1/sys/os2/Makefile.os2 Mon Jul 1 16:29:33 1996 @@ -574,6 +574,8 @@ $(GAMEDIR)\B-locate.lev $(GAMEDIR)\B-start.lev \ $(GAMEDIR)\C-goal.lev $(GAMEDIR)\C-filla.lev $(GAMEDIR)\C-fillb.lev \ $(GAMEDIR)\C-locate.lev $(GAMEDIR)\C-start.lev \ + $(GAMEDIR)\D-goal.lev $(GAMEDIR)\D-filla.lev $(GAMEDIR)\D-fillb.lev \ + $(GAMEDIR)\D-locate.lev $(GAMEDIR)\D-start.lev \ $(GAMEDIR)\E-goal.lev $(GAMEDIR)\E-filla.lev $(GAMEDIR)\E-fillb.lev \ $(GAMEDIR)\E-locate.lev $(GAMEDIR)\E-start.lev \ $(GAMEDIR)\H-goal.lev $(GAMEDIR)\H-filla.lev $(GAMEDIR)\H-fillb.lev \ @@ -1070,6 +1072,7 @@ AFILES = $(GAMEDIR)\A-goal.lev BFILES = $(GAMEDIR)\B-goal.lev CFILES = $(GAMEDIR)\C-goal.lev +DFILES = $(GAMEDIR)\D-goal.lev EFILES = $(GAMEDIR)\E-goal.lev HFILES = $(GAMEDIR)\H-goal.lev KFILES = $(GAMEDIR)\K-goal.lev @@ -1080,8 +1083,8 @@ VFILES = $(GAMEDIR)\V-goal.lev WFILES = $(GAMEDIR)\W-goal.lev -XFILES = $(AFILES) $(BFILES) $(CFILES) $(EFILES) $(HFILES) $(KFILES) \ - $(PFILES) $(RFILES) $(SFILES) $(TFILES) $(VFILES) $(WFILES) +XFILES = $(AFILES) $(BFILES) $(CFILES) $(DFILES) $(EFILES) $(HFILES) \ + $(KFILES) $(PFILES) $(RFILES) $(SFILES) $(TFILES) $(VFILES) $(WFILES) spec_lev : $(GAMEDIR)\astral.lev $(GAMEDIR)\bigrm-1.lev $(GAMEDIR)\castle.lev \ $(GAMEDIR)\knox.lev $(GAMEDIR)\medusa-1.lev $(GAMEDIR)\minefill.lev \ @@ -1171,6 +1174,8 @@ $(MAKEB) QQ=B QF=Barb do_quest $(CFILES) : $(DAT)\Caveman.des $(TEMP)\lev_comp.exe $(MAKEB) QQ=C QF=Caveman do_quest +$(DFILES) : $(DAT)\Dwarf.des $(TEMP)\lev_comp.exe + $(MAKEB) QQ=D QF=Dwarf do_quest $(EFILES) : $(DAT)\Elf.des $(TEMP)\lev_comp.exe $(MAKEB) QQ=E QF=Elf do_quest $(HFILES) : $(DAT)\Healer.des $(TEMP)\lev_comp.exe diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/share/pcmain.c nethack-3.2.1/sys/share/pcmain.c --- nethack-3.2.1.org/sys/share/pcmain.c Mon Jul 1 15:43:11 1996 +++ nethack-3.2.1/sys/share/pcmain.c Tue Jul 2 16:54:54 1996 @@ -435,13 +435,14 @@ bigscreen = -1; break; #endif - default: - if (index(classes, toupper(argv[0][1]))) { - /* allow -T for Tourist, etc. */ - (void) strncpy(pl_character, argv[0]+1, - sizeof(pl_character)-1); - break; - } else raw_printf("\nUnknown switch: %s", argv[0]); + case 'c': + if (index(classes, toupper(argv[0][3]))) + (void) strncpy(pl_character, argv[0]+3, + sizeof(pl_character)-1); + break; + + default: + raw_printf("\nUnknown switch: %s", argv[0]); case '?': nhusage(); exit(EXIT_SUCCESS); diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/unix/Makefile.dat nethack-3.2.1/sys/unix/Makefile.dat --- nethack-3.2.1.org/sys/unix/Makefile.dat Tue Sep 12 23:01:37 1995 +++ nethack-3.2.1/sys/unix/Makefile.dat Mon Jul 1 16:07:13 1996 @@ -62,11 +62,13 @@ touch spec_levs quest_levs: ../util/lev_comp \ - Arch.des Barb.des Caveman.des Elf.des Healer.des Knight.des \ - Priest.des Rogue.des Samurai.des Tourist.des Valkyrie.des Wizard.des + Arch.des Barb.des Caveman.des Dwarf.des Elf.des Healer.des \ + Knight.des Priest.des Rogue.des Samurai.des Tourist.des \ + Valkyrie.des Wizard.des ../util/lev_comp Arch.des ../util/lev_comp Barb.des ../util/lev_comp Caveman.des + ../util/lev_comp Dwarf.des ../util/lev_comp Elf.des ../util/lev_comp Healer.des ../util/lev_comp Knight.des diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/unix/unixmain.c nethack-3.2.1/sys/unix/unixmain.c --- nethack-3.2.1.org/sys/unix/unixmain.c Mon Jul 1 15:43:12 1996 +++ nethack-3.2.1/sys/unix/unixmain.c Tue Jul 2 16:39:03 1996 @@ -329,12 +329,12 @@ if (!strncmpi(argv[0]+1, "DEC", 3)) switch_graphics(DEC_GRAPHICS); break; + case 'c': + (void) strncpy(pl_character, argv[0]+3, + sizeof(pl_character)-1); + break; default: - /* allow -T for Tourist, etc. */ - (void) strncpy(pl_character, argv[0]+1, - sizeof(pl_character)-1); - - /* raw_printf("Unknown option: %s", *argv); */ + /* do nothing */ } } diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/vms/Makefile.dat nethack-3.2.1/sys/vms/Makefile.dat --- nethack-3.2.1.org/sys/vms/Makefile.dat Tue Mar 26 03:33:28 1996 +++ nethack-3.2.1/sys/vms/Makefile.dat Mon Jul 1 16:30:45 1996 @@ -28,7 +28,8 @@ X11TILES= x11tiles.; # note: the level lists need to be space separated QUESTLEVS = Arch.des Barb.des Caveman.des Elf.des Healer.des Knight.des \ - Priest.des Rogue.des Samurai.des Tourist.des Valkyrie.des Wizard.des + Priest.des Rogue.des Samurai.des Tourist.des Valkyrie.des Wizard.des \ + Dwarf.des SPECLEVS = bigroom.des castle.des endgame.des gehennom.des knox.des \ medusa.des mines.des oracle.des tower.des yendor.des diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/sys/winnt/Makefile.nt nethack-3.2.1/sys/winnt/Makefile.nt --- nethack-3.2.1.org/sys/winnt/Makefile.nt Mon Jul 1 15:43:13 1996 +++ nethack-3.2.1/sys/winnt/Makefile.nt Mon Jul 1 16:31:28 1996 @@ -512,7 +512,7 @@ $(DAT)\caveman.des $(DAT)\elf.des $(DAT)\healer.des \ $(DAT)\knight.des $(DAT)\priest.des $(DAT)\rogue.des \ $(DAT)\samurai.des $(DAT)\tourist.des $(DAT)\valkyrie.des \ - $(DAT)\wizard.des + $(DAT)\wizard.des $(DAT)\dwarf.des cd $(DAT) $(U)lev_comp bigroom.des $(U)lev_comp castle.des @@ -526,6 +526,7 @@ $(U)lev_comp yendor.des $(U)lev_comp arch.des $(U)lev_comp barb.des + $(U)lev_comp dwarf.des $(U)lev_comp caveman.des $(U)lev_comp elf.des $(U)lev_comp healer.des diff -B --new-file --exclude-from=nethack-3.2.1/nodiff -u -r nethack-3.2.1.org/util/lev_main.c nethack-3.2.1/util/lev_main.c --- nethack-3.2.1.org/util/lev_main.c Mon Jul 1 15:43:08 1996 +++ nethack-3.2.1/util/lev_main.c Mon Jul 1 16:47:51 1996 @@ -219,7 +219,8 @@ ":dat:Arch.des", ":dat:Barb.des", ":dat:Caveman.des", - ":dat:Elf.des", + ":dat:Dwarf.des", + ":dat:Elf.des", ":dat:Healer.des", ":dat:Knight.des", ":dat:Priest.des", -------------cut here------------