diff options
author | Bardur Arantsson <bardur@scientician.net> | 2013-07-15 17:30:17 +0200 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2013-08-08 16:33:29 +0200 |
commit | 7105f93feb1ea0387e72939ed1e35a5fcd3ee546 (patch) | |
tree | 618bf094fcdfb6c2d055b3d4387ba931365e17b6 | |
parent | 209b9c3b6afd06e098384b77bde4905a69be58ae (diff) |
Remove 'auto_haggle' option
-rw-r--r-- | lib/edit/ow_info.txt | 140 | ||||
-rw-r--r-- | lib/mods/theme/edit/ow_info.txt | 424 | ||||
-rw-r--r-- | src/defines.h | 1 | ||||
-rw-r--r-- | src/externs.h | 1 | ||||
-rw-r--r-- | src/init1.c | 11 | ||||
-rw-r--r-- | src/loadsave.c | 4 | ||||
-rw-r--r-- | src/store.c | 932 | ||||
-rw-r--r-- | src/tables.c | 3 | ||||
-rw-r--r-- | src/types.h | 16 | ||||
-rw-r--r-- | src/variable.c | 2 |
10 files changed, 381 insertions, 1153 deletions
diff --git a/lib/edit/ow_info.txt b/lib/edit/ow_info.txt index a1e3d0a3..4bd7c41a 100644 --- a/lib/edit/ow_info.txt +++ b/lib/edit/ow_info.txt @@ -18,430 +18,430 @@ V:2.0.0 N:0:Bilbo the Friendly(Hobbit) -I:20000:170:108:5:15 +I:20000:120 C:120:100:80 L:Elf | Half-Elf | High-Elf | Dunadan | Hobbit | Dwarf | RohanKnight H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold N:1:Uldrik(Human) -I:20000:170:108:1:1 +I:20000:120 C:120:100:80 L:Dunadan | Hobbit | Human | H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:2:Otick(Human) -I:100:170:108:4:10 +I:100:120 C:120:100:80 L:Dunadan | Hobbit | Human | H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:3:Merana(Human) -I:0:170:108:1:1 +I:0:120 C:200:100:95 L:Human H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:4:Mirimbar(High-Elf) -I:0:170:108:1:1 +I:0:120 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:5:Raistlin the Chicken(Human) -I:20000:175:108:4:12 +I:20000:130 C:120:100:80 L:Human H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:6:Sultan the Midget(Gnome) -I:30000:170:107:5:15 +I:30000:120 C:120:100:80 L:Gnome | Dwarf | Petty-Dwarf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:7:Lyar-el the Comely(Elf) -I:30000:165:107:6:18 +I:30000:120 C:120:100:80 L:Elf | Half-Elf | Dark-Elf | High-Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:8:Kon-Dar the Ugly(Half-Orc) -I:5000:210:115:5:7 +I:5000:140 C:120:100:80 L:Orc | Troll | Half-Ogre | Beorning | Kobold H:Gnome | Dwarf | Human | RohanKnight | Elf | Half-Elf | High-Elf N:9:Darg-Low the Grim(Human) -I:10000:190:111:4:9 +I:10000:130 C:120:100:80 L:Human H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:10:Decado the Handsome(Dunadan) -I:25000:200:112:4:10 +I:25000:140 C:120:100:80 L:Human | Dunadan | RohanKnight H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:11:Wieland the Smith(Dwarf) -I:30000:200:112:4:5 +I:30000:140 C:120:100:80 L:Gnome | Dwarf | Petty-Dwarf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:12:Arnold the Beastly(Barbarian) -I:5000:210:115:6:6 +I:5000:140 C:120:100:80 N:13:Arndal Beast-Slayer(Half-Elf) -I:10000:185:110:5:9 +I:10000:130 C:120:100:80 L:Elf | Half-Elf | Dark-Elf | High-Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:14:Eddie Beast-Master(Half-Orc) -I:25000:190:115:5:7 +I:25000:140 C:120:100:80 L:Orc | Troll | Half-Ogre | Beorning | Kobold H:Gnome | Dwarf | Human | RohanKnight | Elf | Half-Elf | High-Elf N:15:Oglign Dragon-Slayer(Dwarf) -I:30000:195:112:4:8 +I:30000:130 C:120:100:80 L:Gnome | Dwarf | Petty-Dwarf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:16:Aragorn(Dunadan) -I:20000:200:112:4:10 +I:20000:140 C:120:100:80 L:Human | Dunadan | RohanKnight H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:17:Sondar(Human) -I:0:200:112:4:10 +I:0:140 C:120:100:80 N:18:Celebor(Half-Elf) -I:100:170:108:4:10 +I:100:120 C:120:100:80 L:Dunadan | Hobbit | Human | H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:19:Sharra(Human) -I:25000:200:112:4:10 +I:25000:140 C:120:100:80 L:Human | Dunadan | RohanKnight H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:20:Hjolgar(Barbarian) -I:5000:210:115:6:6 +I:5000:140 C:120:100:80 #L:Warrior | N:21:Tanistil(Elf) -I:5000:210:115:6:6 +I:5000:140 C:120:100:80 #L:Mage | Sorceror | Thaumaturgist #H:Warrior | N:22:Eldore(Human) -I:5000:210:115:6:6 +I:5000:140 C:120:100:80 #L:Priest #H:Necromancer N:23:Vilios(Human) -I:5000:210:115:6:6 +I:5000:140 C:120:100:80 #L:Paladin #H:Necromancer N:24:Angros(Elf) -I:5000:210:115:6:6 +I:5000:140 C:120:100:80 #L:Ranger N:25:Palano(Thunderlord) -I:0:210:115:6:6 +I:0:140 C:120:100:80 L:Thunderlord N:26:Ludwig the Humble(Dwarf) -I:5000:175:109:6:15 +I:5000:130 C:120:100:80 L:Gnome | Dwarf | Petty-Dwarf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:27:Gunnar the Paladin(Half-Troll) -I:10000:185:110:5:23 +I:10000:130 C:120:100:80 L:Orc | Troll | Half-Ogre | Beorning | Kobold H:Gnome | Dwarf | Human | RohanKnight | Elf | Half-Elf | High-Elf N:28:Torin the Chosen(High-Elf) -I:25000:180:107:6:20 +I:25000:130 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:29:Sarastro the Wise(Human) -I:30000:185:109:5:15 +I:30000:130 C:120:100:80 L:Dunadan | Hobbit | Human | H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:30:Mauser the Chemist(Half-Elf) -I:10000:190:111:5:8 +I:10000:130 C:120:100:80 L:Dunadan | Hobbit | Human | H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:31:Wizzle the Chaotic(Hobbit) -I:10000:190:110:6:8 +I:10000:130 C:120:100:80 L:Elf | Half-Elf | High-Elf | Dunadan | Hobbit | Dwarf | RohanKnight H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:32:Midas the Greedy(Gnome) -I:15000:200:116:6:9 +I:15000:140 C:120:100:80 L:Gnome | Dwarf | Petty-Dwarf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:33:Ja-Far the Alchemist(Elf) -I:15000:220:111:4:9 +I:15000:140 C:120:100:80 L:Elf | Half-Elf | Dark-Elf | High-Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:34:Ariel the Sorceress(Half-Elf) -I:20000:200:110:7:8 +I:20000:140 C:120:100:80 L:Dunadan | Hobbit | Human | H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:35:Buggerby the Great(Gnome) -I:20000:215:113:6:10 +I:20000:140 C:120:100:80 L:Gnome | Dwarf | Petty-Dwarf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:36:Inglorian the Mage(Human) -I:30000:200:110:7:10 +I:30000:140 C:120:100:80 L:Dunadan | Hobbit | Human | H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:37:Luthien Starshine(High-Elf) -I:30000:175:110:5:11 +I:30000:130 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:38:Gary Gygaz(Half-Troll) -I:20000:250:150:10:5 +I:20000:180 C:120:100:80 #L:Rogue H:Gnome | Dwarf | Human | RohanKnight | Elf | Half-Elf | High-Elf N:39:Histor the Goblin(Half-Orc) -I:20000:250:150:10:5 +I:20000:180 C:120:100:80 #L:Rogue H:Gnome | Dwarf | Human | RohanKnight | Elf | Half-Elf | High-Elf N:40:Zorak the Smart(Dwarf) -I:30000:250:150:10:5 +I:30000:180 C:120:100:80 #L:Rogue H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:41:Tipo the Fair(Human) -I:30000:250:150:10:5 +I:30000:180 C:120:100:80 #L:Rogue H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:42:Dolaf the Greedy(Human) -I:10000:175:108:4:12 +I:10000:130 C:120:100:80 L:Dunadan | Hobbit | Human | H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | N:43:Odnar the Sage(High-Elf) -I:15000:120:105:6:16 +I:15000:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:44:Gandar the Neutral(Dark-Elf) -I:25000:120:110:7:19 +I:25000:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold N:45:Ro-sha the Patient(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 L:Elf | Half-Elf | Dark-Elf | High-Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:46:N'rak the Summoner(Human) -I:10000:175:108:4:12 +I:10000:130 C:120:100:80 L:Human | Dunadan | RohanKnight H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:47:Esperion the Beastlover(High-Elf) -I:15000:120:105:6:16 +I:15000:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:48:Flarim the Shopkeeper(Dunadan) -I:25000:120:110:7:19 +I:25000:110 C:120:100:80 L:Human | Dunadan | RohanKnight H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:49:Tril-akheb the Supreme(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 L:Elf | Half-Elf | Dark-Elf | High-Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:50:Dorchel(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 L:Elf | Half-Elf | Dark-Elf | High-Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:51:Galadriel(High-Elf) -I:15000:120:105:6:16 +I:15000:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:52:Celeborn(High-Elf) -I:15000:120:105:6:16 +I:15000:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:53:Aulendil(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 #L:Warrior | H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:54:Valceronwe(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 #L:Mage | Thaumaturgist | Sorceror H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:55:Voronwe(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 #L:Priest | Paladin H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:56:Celegail(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 #L:Ranger H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:57:Turgon(High-Elf) -I:30000:120:105:6:16 +I:30000:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:58:Pengolodh(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:59:Aerandir(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:60:Celebrimbor(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf #L:Warrior | H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:61:Lomelosse(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf | H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:62:Arlindel(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf #L:Harper | Ranger H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:63:Sulraen(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf #L:Mage | Sorceror H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:64:Firiel(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf | H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:65:Earendur(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:66:Glorfindel(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf #L:Ranger H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:67:Ecthelion(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf #L:Paladin H:Orc | Troll | Half-Ogre | Beorning | Kobold | N:68:Kanris(Human) -I:5000:210:115:6:6 +I:5000:140 C:120:100:80 #L:Merchant #H:Rogue N:69:Barliman Butterbur(Human) -I:100:170:108:4:10 +I:100:120 C:120:100:80 L:Dunadan | Hobbit | Human | H:Orc | Troll | DeathMold | Half-Ogre | Beorning | Kobold | diff --git a/lib/mods/theme/edit/ow_info.txt b/lib/mods/theme/edit/ow_info.txt index bf1283fb..92f0076a 100644 --- a/lib/mods/theme/edit/ow_info.txt +++ b/lib/mods/theme/edit/ow_info.txt @@ -19,7 +19,7 @@ V:2.0.0 # The zero index owner. If she owns a shop, there is a problem. :P N:0:Bell Goodchild(Hobbit) -I:20000:170:108:5:15 +I:20000:120 C:120:100:80 L:Elf | Half-Elf | High-Elf | Dunadan | Hobbit | Dwarf | RohanKnight H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Druadan | Dark-Elf @@ -27,25 +27,25 @@ H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Druadan | Dark-Elf ### The General Store - 1 ### N:1:Balin(Dwarf) -I:25000:180:108:2:2 +I:25000:130 C:150:100:50 L:Dwarf | Petty-Dwarf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Troll N:2:Berylla Boffin(Hobbit) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Human | Hobbit H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling N:3:Adrahil(Half-Elf) -I:30000:170:107:1:1 +I:30000:120 C:110:100:80 L:Half-Elf | High-Elf | Dunadan | Elf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Dwarf | Troll N:4:Aegnor(Wood-Elf) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:High-Elf | Dunadan | Elf H:Dragon | Demon | Orc | Half-Ogre | Troll | Easterling @@ -53,25 +53,25 @@ H:Dragon | Demon | Orc | Half-Ogre | Troll | Easterling ### The Armoury - 2 ### N:5:Bifur(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Hobbit | Petty-Dwarf | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:6:Lalia Clayhanger(Hobbit) -I:25000:180:108:2:2 +I:25000:130 C:125:100:50 L:Human | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:7:Alcarin(Human) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | Half-Elf | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Orc | Half-Ogre | Petty-Dwarf | Troll | Easterling N:8:Alatariel(High-Elf) -I:30000:170:107:1:1 +I:30000:120 C:110:100:80 L:High-Elf | Dunadan | Elf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Troll | Easterling @@ -79,25 +79,25 @@ H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Troll | Easterling ### The Weaponsmith - 3 ### N:9:Bofur(Dwarf) -I:30000:170:107:1:1 +I:30000:120 C:125:100:70 L:Human | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:10:Daisy Gamgee(Hobbit) -I:20000:190:109:3:4 +I:20000:130 C:110:100:80 L:Human | Hobbit H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:11:Beregond(Dunadan) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | High-Elf | Dunadan | Elf H:Dragon | Demon | Orc | Half-Ogre | Troll N:12:Amarie(Dark-Elf) -I:10000:200:110:4:8 +I:10000:140 C:125:100:50 L:Dark-Elf | Elf H:Dragon | Demon | Orc | Half-Ogre | Petty-Dwarf | Dwarf | Troll | Easterling @@ -105,25 +105,25 @@ H:Dragon | Demon | Orc | Half-Ogre | Petty-Dwarf | Dwarf | Troll | Easterling ### The Temple - 4 ### N:13:Bombur(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Half-Elf | Petty-Dwarf | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:14:Dora Baggins(Hobbit) -I:30000:170:107:1:1 +I:30000:120 C:110:100:80 L:Human | High-Elf | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:15:Bergil(Half-Elf) -I:10000:200:110:4:8 +I:10000:140 C:125:100:50 L:Human | Half-Elf | Dunadan | Elf H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Troll | Easterling N:16:Amdir(Wood-Elf) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:High-Elf | Dunadan | Hobbit | Elf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll | Easterling @@ -131,25 +131,25 @@ H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll | Easterling ### The Alchemist - 5 ### N:17:Borin(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:110:100:80 L:Petty-Dwarf | Dwarf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Elf | Troll N:18:Elfstan Fairbairn(Hobbit) -I:10000:200:110:4:8 +I:10000:140 C:125:100:50 L:Human | Half-Elf | High-Elf | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll N:19:Cemendur(Human) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | Half-Elf | RohanKnight | Dunadan | Elf H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Troll | Easterling N:20:Annael(High-Elf) -I:30000:170:107:1:1 +I:30000:120 C:125:100:70 L:Human | Half-Elf | High-Elf | Dunadan | Elf H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll @@ -157,25 +157,25 @@ H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll ### The Magic Shop - 6 ### N:21:Dis(Dwarf) -I:30000:170:107:1:1 +I:30000:120 C:125:100:50 L:Petty-Dwarf | Dwarf | Half-Elf | Dunadan H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Human | Troll | Eagle N:22:Folco Boffin(Hobbit) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Hobbit H:Dragon | Demon | Orc | Troll N:23:Ciryon(Dunadan) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | Half-Elf | High-Elf | RohanKnight | Dunadan | Hobbit | Elf H:Dragon | Demon | Orc | Half-Ogre | Troll N:24:Arminas(Dark-Elf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Human | Dark-Elf | Elf H:Dragon | Demon | Beorning | Orc | High-Elf | Half-Ogre | Petty-Dwarf | Troll | Easterling @@ -183,25 +183,25 @@ H:Dragon | Demon | Beorning | Orc | High-Elf | Half-Ogre | Petty-Dwarf | Troll | ### The Black Market - 7 ### N:25:Dori(Dwarf) -I:30000:210:120:8:8 +I:30000:150 C:110:100:90 L:Dwarf | Easterling H:Dragon | Demon | Orc N:26:Halfred Greenhand(Hobbit) -I:30000:210:120:8:8 +I:30000:150 C:110:100:90 L:Hobbit H:Dragon | Demon | Troll N:27:Deorwine(Half-Elf) -I:30000:210:120:8:8 +I:30000:150 C:110:100:90 L:Half-Elf | Easterling H:Dragon | Demon | Dark-Elf N:28:Artanis(Wood-Elf) -I:30000:210:120:8:8 +I:30000:150 C:110:100:90 L:High-Elf | Elf | Easterling H:Dragon | Demon | Orc | Troll @@ -209,25 +209,25 @@ H:Dragon | Demon | Orc | Troll ### The Bookstore - 9 ### N:29:Dwalin(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Human | Petty-Dwarf | Dwarf H:Dragon | Demon | Orc | Elf | Half-Ogre | Troll N:30:Tanta Hornblower(Hobbit) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Troll N:31:Dorlas(Human) -I:30000:170:107:1:1 +I:30000:120 C:150:100:50 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling N:32:Caranthir(High-Elf) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Half-Elf | High-Elf | Elf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Dwarf | Troll | Easterling @@ -235,25 +235,25 @@ H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Dwarf | Troll | Ea ### The Pet Shop - 0 ### N:33:Fili(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:RohanKnight | Petty-Dwarf | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:34:Lalia Clayhanger(Hobbit) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Troll N:35:Elfwine(Dunadan) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | Half-Elf | High-Elf | RohanKnight | Dunadan | Elf H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Troll N:36:Edrahil(Dark-Elf) -I:30000:170:107:1:1 +I:30000:120 C:150:100:50 L:Dark-Elf | Elf | Easterling H:Dragon | Demon | Orc | High-Elf | Half-Ogre | Dwarf | Troll @@ -262,98 +262,98 @@ H:Dragon | Demon | Orc | High-Elf | Half-Ogre | Dwarf | Troll #Bree N:37:Uldrik(Human) -I:0:0:0:0:0 +I:0:0 C:0:0:0 L:Human | RohanKnight | Dunadan | Hobbit | H:Dragon | Demon | Orc | Half-Ogre | Troll #Minas Anor N:38:Aragorn (Dunadan) -I:0:0:0:0:0 +I:0:0 C:0:0:0 L:Human | High-Elf | RohanKnight | Dunadan | Hobbit | Elf H:Dragon | Demon | Orc | Half-Ogre | Petty-Dwarf | Troll #Khazad-Dum N:39:Gimli(Dwarf) -I:0:0:0:0:0 +I:0:0 C:0:0:0 L:RohanKnight | Dunadan | Hobbit | Elf | Dwarf H:Dragon | Demon | Orc | Half-Ogre | Troll #Beorn's Halls N:40:Deor(Beorning) -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:Beorning | Dwarf | Maia | Hobbit | Ent H:Dragon | Demon | Orc | Half-Ogre | Troll #Dale N:41:Bard the Grim(Human) -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:Human | Hobbit | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll #Henneth Annun N:42:Halbarad(Dunadan) -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:Human | High-Elf | Dunadan | Hobbit | Elf H:Dragon | Demon | Orc | Half-Ogre | Troll #Imladris N:43:Elrond Half-Elven -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:Human | Half-Elf | High-Elf | RohanKnight | Dunadan | Hobbit | Elf | Dwarf | Ent H:Dragon | Demon | Orc | Half-Ogre | Troll #Helm's Deep N:44:Erkenbrand(RohanKnight) -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:Human | Maia | RohanKnight | Dunadan | Hobbit | Elf | Dwarf | Ent H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Troll #Thranduil's Halls N:45:Legolas Greenleaf(Wood-Elf) -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:High-Elf | Dunadan | Ent | Elf H:Dragon | Demon | Orc | Half-Ogre | Petty-Dwarf | Troll #Edoras N:46:Theoden(RohanKnight) -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:Human | RohanKnight | Dunadan | Hobbit | Elf H:Dragon | Demon | Orc | Half-Ogre | Troll #Esgaroth N:47:The Master(Human) -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:Human H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Troll #Hobbiton N:48:Samwise Gamgee(Hobbit) -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:Hobbit | Elf | High-Elf | Dark-Elf H:Dragon | Demon | Orc | Half-Ogre | Troll #Osgiliath N:49:Eldacar(Human) -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:Human | Half-Elf | High-Elf | RohanKnight | Dunadan | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Dwarf | Troll #Pelargir N:50:Earnil(Dunadan) -I:100:100:100:0:0 +I:100:100 C:110:100:90 L:Human | Half-Elf | High-Elf | RohanKnight | Dunadan | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Dwarf | Troll @@ -361,37 +361,37 @@ H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Dwarf | ### Caras Galadhon owners ### N:51:Galadriel(High-Elf) -I:15000:120:105:6:16 +I:15000:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning N:52:Celeborn(High-Elf) -I:15000:120:105:6:16 +I:15000:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning N:53:Aulendil(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 #L:Warrior | H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning N:54:Valceronwe(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 #L:Mage | Thaumaturgist | Sorceror H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning N:55:Voronwe(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 #L:Priest | Paladin H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning N:56:Celegail(Elf) -I:30000:140:105:6:12 +I:30000:110 C:120:100:80 #L:Ranger H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning @@ -399,71 +399,71 @@ H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning ### Gondolin owners ### N:57:Turgon(High-Elf) -I:30000:120:105:6:16 +I:30000:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling N:58:Pengolodh(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling N:59:Aerandir(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling N:60:Celebrimbor(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf #L:Warrior | H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling N:61:Lomelosse(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf | H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling N:62:Arlindel(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf #L:Harper | Ranger H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling N:63:Sulraen(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf #L:Mage | Sorceror H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling N:64:Firiel(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf | H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling N:65:Earendur(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf | Elf H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling N:66:Glorfindel(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf #L:Ranger H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling N:67:Ecthelion(High-Elf) -I:0:120:105:6:16 +I:0:110 C:120:100:80 L:High-Elf | Half-Elf #L:Paladin @@ -473,70 +473,70 @@ H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling #Bree N:68:Barliman Butterbur(Human) -I:100:170:108:4:10 +I:100:120 C:120:100:80 L:Dunadan | Hobbit | Human | H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning | Easterling #Pelargir N:69:Ciryatur(Dunadan) -I:100:170:108:4:10 +I:100:120 C:110:100:80 L:Dunadan | Human | RohanKnight H:Dragon | Demon | Orc | Troll | Half-Ogre | Beorning #Caras Galadhon N:70:Celebor(Elf) -I:100:170:108:4:10 +I:100:120 C:110:100:80 L:High-Elf | Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling #Minas Anor N:71:Bregolas(Human) -I:100:170:108:4:10 +I:100:120 C:110:100:80 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling #Khazad-Dum N:72:Thror(Dwarf) -I:100:170:108:4:10 +I:100:120 C:110:100:80 L:Petty-Dwarf | Dwarf H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | High-Elf | Troll #Dale N:73:Troin(Dwarf) -I:100:170:108:4:10 +I:100:120 C:110:100:80 L:Human | Dwarf H:Dragon | Demon | Orc | Half-Ogre | Troll #Edoras N:74:Theodwyn(Shieldmaiden) -I:100:170:108:4:10 +I:100:120 C:110:100:80 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling #Esgaroth N:75:Garm(Human) -I:100:170:108:4:10 +I:100:120 C:110:100:80 L:Human | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Petty-Dwarf | Troll #Hobbiton N:76:Rose Cotton(Hobbit) -I:100:170:108:4:10 +I:100:120 C:110:100:80 L:Human | High-Elf | Hobbit H:Dragon | Demon | Orc | Half-Ogre | Troll | Easterling #Osgiliath N:77:Palantir(Human) -I:100:170:108:4:10 +I:100:120 C:110:100:80 L:Human | High-Elf | RohanKnight | Dunadan | Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling @@ -544,25 +544,25 @@ H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling ### The Soothsayers ### N:78:Ori(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Hobbit | Petty-Dwarf | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:79:Tolman Gardner(Hobbit) -I:25000:180:108:2:2 +I:25000:130 C:150:100:50 L:Human | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:80:Inziladun(Human) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | Half-Elf | RohanKnight | Dunadan | Easterling H:Dragon | Demon | Beorning | Orc | Half-Ogre | Petty-Dwarf | Troll N:81:Gelmir(High-Elf) -I:30000:170:107:1:1 +I:30000:120 C:110:100:80 L:High-Elf | Dunadan | Elf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Troll @@ -570,25 +570,25 @@ H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Troll ### The Eagles ### N:82:Palano(Eagle) -I:30000:170:110:1:1 +I:30000:130 C:125:100:50 L:Eagle H:Dragon | Demon | RohanKnight N:83:Eglad(Eagle) -I:30000:170:110:1:1 +I:30000:130 C:125:100:50 L:Eagle H:Dragon | Demon | Hobbit N:84:Hiron(Eagle) -I:30000:170:110:1:1 +I:30000:130 C:125:100:50 L:Eagle H:Dragon | Demon | Dunadan N:85:Grada(Eagle) -I:30000:170:110:1:1 +I:30000:130 C:125:100:50 L:Eagle H:Dragon | Demon | High-Elf @@ -596,25 +596,25 @@ H:Dragon | Demon | High-Elf ### The Librarians ### N:86:Frerin(Dwarf) -I:25000:180:108:2:2 +I:25000:130 C:150:100:50 L:Dwarf | Petty-Dwarf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Troll N:87:Malva Headstrong(Hobbit) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Human | Hobbit H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:88:Erendis(Half-Elf) -I:30000:170:107:1:1 +I:30000:120 C:110:100:80 L:Half-Elf | High-Elf | Dunadan | Elf | Easterling H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Dwarf | Troll N:89:Elemmakil(Wood-Elf) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:High-Elf | Dunadan | Elf H:Dragon | Demon | Orc | Half-Ogre | Troll @@ -622,25 +622,25 @@ H:Dragon | Demon | Orc | Half-Ogre | Troll ### The Casino Owners ### N:90:Fror(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Hobbit | Petty-Dwarf | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:91:Marmadas Brandybuck(Hobbit) -I:25000:180:108:2:2 +I:25000:130 C:150:100:50 L:Human | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:92:Fastred(Human) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | Half-Elf | RohanKnight | Dunadan | Easterling H:Dragon | Demon | Beorning | Orc | Half-Ogre | Petty-Dwarf | Troll N:93:Elured(High-Elf) -I:30000:170:107:1:1 +I:30000:120 C:110:100:80 L:High-Elf | Dunadan | Elf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Troll @@ -648,25 +648,25 @@ H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Troll ### The Beastmasters ### N:94:Gloin(Dwarf) -I:30000:170:107:1:1 +I:30000:120 C:125:100:70 L:Human | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:95:Milo Burrows(Hobbit) -I:20000:190:109:3:4 +I:20000:130 C:110:100:80 L:Human | Hobbit H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:96:Findegil(Dunadan) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | High-Elf | Dunadan | Elf H:Dragon | Demon | Orc | Half-Ogre | Troll N:97:Elurin(Dark-Elf) -I:10000:200:110:4:8 +I:10000:140 C:150:100:50 L:Dark-Elf | Elf | Easterling H:Dragon | Demon | Orc | Half-Ogre | Petty-Dwarf | Dwarf | Troll @@ -676,25 +676,25 @@ H:Dragon | Demon | Orc | Half-Ogre | Petty-Dwarf | Dwarf | Troll #Fighters Hall N:98:Tarcil(Human) -I:30000:170:107:1:1 +I:30000:120 C:150:100:50 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Orc | Half-Ogre | Troll | Easterling N:99:Ulbar(Easterling) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | RohanKnight | Dunadan L:Half-Elf | High-Elf | Elf | Easterling N:100:Brego(RohanKnight) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Dark-Elf | Petty-Dwarf | Troll | Easterling N:101:Ostoher(Dunadan) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll | Easterling @@ -702,25 +702,25 @@ H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll | Easterling #Tower of Magery N:102:Arveleg(Human) -I:25000:180:108:2:2 +I:25000:130 C:125:100:70 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Orc | Half-Ogre | Troll | Easterling N:103:Uldar(Easterling) -I:30000:170:107:1:1 +I:30000:120 C:110:100:80 L:Human | RohanKnight | Dunadan | Easterling L:Half-Elf | High-Elf | Elf N:104:Aldor(RohanKnight) -I:20000:190:109:3:4 +I:20000:130 C:150:100:50 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Dark-Elf | Petty-Dwarf | Troll | Easterling N:105:Tarannon(Dunadan) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll | Easterling @@ -728,25 +728,25 @@ H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll | Easterling #Inner Temple N:106:Eradan(Human) -I:30000:170:107:1:1 +I:30000:120 C:125:100:70 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Orc | Half-Ogre | Troll N:107:Ulwise(Easterling) -I:25000:180:108:2:2 +I:25000:130 C:150:100:50 L:Human | RohanKnight | Dunadan | Easterling L:Half-Elf | High-Elf | Elf N:108:Gram(RohanKnight) -I:20000:190:109:3:4 +I:20000:130 C:110:100:80 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Dark-Elf | Petty-Dwarf | Troll | Easterling N:109:Minalcar(Dunadan) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll @@ -754,25 +754,25 @@ H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll #Paladins Guild N:110:Herion(Human) -I:30000:170:107:1:1 +I:30000:120 C:150:100:50 L:Human | RohanKnight | Dunadan | Easterling H:Dragon | Demon | Orc | Half-Ogre | Troll N:111:Ulgug(Easterling) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | RohanKnight | Dunadan | Easterling L:Half-Elf | High-Elf | Elf N:112:Walda(RohanKnight) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Dark-Elf | Petty-Dwarf | Troll | Easterling N:113:Calimehtar(Dunadan) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll | Easterling @@ -780,25 +780,25 @@ H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll | Easterling #Rangers Guild N:114:Egalmoth(Human) -I:25000:180:108:2:2 +I:25000:130 C:125:100:70 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Orc | Half-Ogre | Troll | Easterling N:115:Ulaf(Easterling) -I:30000:170:107:1:1 +I:30000:120 C:110:100:80 L:Human | RohanKnight | Dunadan | Easterling L:Half-Elf | High-Elf | Elf N:116:Fengel(RohanKnight) -I:20000:190:109:3:4 +I:20000:130 C:150:100:50 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Dark-Elf | Petty-Dwarf | Troll | Easterling N:117:Telemnar(Dunadan) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll @@ -808,25 +808,25 @@ H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll ### The Axesmiths ### N:118:Ris(Dwarf) -I:30000:200:130:1:1 +I:30000:150 C:150:100:50 L:Dwarf H:Dragon | Demon | Orc N:119:Malach Aradan(Human) -I:25000:300:150:2:2 +I:25000:200 C:125:100:60 L:Human | Easterling H:Dragon | Demon | Troll N:120:Indis(Half-Elf) -I:20000:250:140:3:4 +I:20000:170 C:115:100:70 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:121:Rogdug(Half-Orc) -I:10000:150:120:4:8 +I:10000:130 C:125:100:80 L:Orc | Easterling H:Dragon | Demon | Elf @@ -834,25 +834,25 @@ H:Dragon | Demon | Elf ### The Haftedsmiths ### N:122:Sogur(Dwarf) -I:20000:250:140:3:4 +I:20000:170 C:125:100:80 L:Dwarf H:Dragon | Demon | Orc N:123:Manwendil(Human) -I:25000:300:150:2:2 +I:25000:200 C:115:100:70 L:Human | Easterling H:Dragon | Demon | Troll N:124:Lenwe(Half-Elf) -I:10000:150:120:4:8 +I:10000:130 C:150:100:50 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:125:Ghaz(Half-Orc) -I:30000:200:130:1:1 +I:30000:150 C:125:100:60 L:Orc | Easterling H:Dragon | Demon | Elf @@ -860,25 +860,25 @@ H:Dragon | Demon | Elf ### The Polearmsmiths ### N:126:Tolin(Dwarf) -I:10000:150:120:4:8 +I:10000:130 C:115:100:70 L:Dwarf H:Dragon | Demon | Orc N:127:Narmacil(Human) -I:25000:300:150:2:2 +I:25000:200 C:125:100:80 L:Human | Easterling H:Dragon | Demon | Troll N:128:Lindir(Half-Elf) -I:20000:250:140:3:4 +I:20000:170 C:150:100:50 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:129:Stogash(Half-Orc) -I:30000:200:130:1:1 +I:30000:150 C:125:100:60 L:Orc | Easterling H:Dragon | Demon | Elf @@ -886,25 +886,25 @@ H:Dragon | Demon | Elf ### The Swordsmiths ### N:130:Tis(Dwarf) -I:20000:250:140:3:4 +I:20000:170 C:125:100:80 L:Dwarf H:Dragon | Demon | Orc N:131:Nuneth(Human) -I:10000:150:120:4:8 +I:10000:130 C:125:100:60 L:Human | Easterling H:Dragon | Demon | Troll N:132:Mahtan(Half-Elf) -I:30000:200:130:1:1 +I:30000:150 C:115:100:70 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:133:Rudak(Half-Orc) -I:25000:300:150:2:2 +I:25000:200 C:150:100:50 L:Orc | Easterling H:Dragon | Demon | Elf @@ -912,25 +912,25 @@ H:Dragon | Demon | Elf ### The Rare Jewellers ### N:134:Uin(Dwarf) -I:25000:300:150:2:2 +I:25000:200 C:115:100:70 L:Dwarf H:Dragon | Demon | Orc N:135:Ornendil(Human) -I:10000:150:120:4:8 +I:10000:130 C:125:100:60 L:Human | Easterling H:Dragon | Demon | Troll N:136:Malgalad(Half-Elf) -I:30000:200:130:1:1 +I:30000:150 C:125:100:80 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:137:Ghashuf(Half-Orc) -I:20000:250:140:3:4 +I:20000:170 C:150:100:50 L:Orc | Easterling H:Dragon | Demon | Elf @@ -938,25 +938,25 @@ H:Dragon | Demon | Elf ### The Jewellers ### N:138:Vali(Dwarf) -I:25000:300:150:2:2 +I:25000:200 C:150:100:50 L:Dwarf H:Dragon | Demon | Orc N:139:Orodreth(Human) -I:30000:200:130:1:1 +I:30000:150 C:115:100:70 L:Human | Easterling H:Dragon | Demon | Troll N:140:Theodred(Half-Elf) -I:10000:150:120:4:8 +I:10000:130 C:125:100:80 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:141:Rangush(Half-Orc) -I:20000:250:140:3:4 +I:20000:170 C:125:100:60 L:Orc | Easterling H:Dragon | Demon | Elf @@ -964,25 +964,25 @@ H:Dragon | Demon | Elf ### The Footwear Shop owners ### N:142:Nellas(Human) -I:10000:150:120:4:8 +I:10000:130 C:115:100:70 L:Human | Easterling H:Dragon | Demon | Troll N:143:Tindomiel(Half-Elf) -I:25000:300:150:2:2 +I:25000:200 C:125:100:80 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:144:Ragnor(Half-Elf) -I:20000:250:140:3:4 +I:20000:170 C:150:100:50 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:145:Idrish(Half-Orc) -I:30000:200:130:1:1 +I:30000:150 C:125:100:60 L:Orc | Easterling H:Dragon | Demon | Elf @@ -990,25 +990,25 @@ H:Dragon | Demon | Elf ### The Rare Footwear Shop owners ### N:146:Nerwen(Human) -I:20000:250:140:3:4 +I:20000:170 C:125:100:80 L:Human | Easterling H:Dragon | Demon | Troll N:147:Ulbar (Half-Elf) -I:10000:150:120:4:8 +I:10000:130 C:125:100:60 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:148:Pelendur(Half-Elf) -I:30000:200:130:1:1 +I:30000:150 C:115:100:70 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:149:Budgar(Half-Orc) -I:25000:300:150:2:2 +I:25000:200 C:150:100:50 L:Orc | Easterling H:Dragon | Demon | Elf @@ -1016,25 +1016,25 @@ H:Dragon | Demon | Elf ### The Dungeon Librarians ### N:150:Nom(Human) -I:25000:300:150:2:2 +I:25000:200 C:115:100:70 L:Human | Easterling H:Dragon | Demon | Troll N:151:Urwen (Half-Elf) -I:10000:150:120:4:8 +I:10000:130 C:125:100:60 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:152:Rian(Half-Elf) -I:30000:200:130:1:1 +I:30000:150 C:125:100:80 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:153:Mosrog(Half-Orc) -I:20000:250:140:3:4 +I:20000:170 C:150:100:50 L:Orc | Easterling H:Dragon | Demon | Elf @@ -1042,25 +1042,25 @@ H:Dragon | Demon | Elf ### The Expensive Black Marketeers ### N:154:Olwe(Human) -I:30000:300:150:8:8 +I:30000:200 C:125:100:90 L:Human | Easterling H:Dragon | Demon | Troll N:155:Valacar(Half-Elf) -I:30000:300:150:8:8 +I:30000:200 C:125:100:90 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:156:Silmarien(Half-Elf) -I:30000:300:150:8:8 +I:30000:200 C:125:100:90 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:157:Ghaz(Half-Orc) -I:30000:300:150:8:8 +I:30000:200 C:125:100:90 L:Orc | Easterling H:Dragon | Demon | Elf @@ -1068,25 +1068,25 @@ H:Dragon | Demon | Elf ### The Common Shop Owners ### N:158:Ioreth(Human) -I:25000:300:150:2:2 +I:25000:200 C:150:100:50 L:Human | Easterling H:Dragon | Demon | Troll N:159:Vidugavia(Half-Elf) -I:30000:200:130:1:1 +I:30000:150 C:115:100:70 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:160:Soronto(Half-Elf) -I:10000:150:120:4:8 +I:10000:130 C:125:100:80 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:161:Nazg(Half-Orc) -I:20000:250:140:3:4 +I:20000:170 C:125:100:60 L:Orc | Easterling H:Dragon | Demon | Elf @@ -1094,25 +1094,25 @@ H:Dragon | Demon | Elf ### The Dragon Hunters ### N:162:Oropher(Human) -I:10000:150:120:4:8 +I:10000:130 C:115:100:70 L:Human | Easterling H:Dragon | Demon | Troll N:163:Walda(Half-Elf) -I:25000:300:150:2:2 +I:25000:200 C:125:100:80 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:164:Mithrellas(Half-Elf) -I:20000:250:140:3:4 +I:20000:170 C:150:100:50 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:165:Urbag(Half-Orc) -I:30000:200:130:1:1 +I:30000:150 C:125:100:60 L:Orc | Easterling H:Dragon | Demon | Elf @@ -1120,25 +1120,25 @@ H:Dragon | Demon | Elf ### The Speed Ring Market Owners ### N:166:Orophin(Human) -I:20000:250:140:3:4 +I:20000:170 C:125:100:80 L:Human | Easterling H:Dragon | Demon | Troll N:167:Wulf(Half-Orc) -I:10000:150:120:4:8 +I:10000:130 C:125:100:60 L:Orc | Easterling H:Dragon | Demon | Elf N:168:Baguk(Half-Troll) -I:30000:200:130:1:1 +I:30000:150 C:115:100:70 L:Troll | Easterling H:Dragon | Demon | Human N:169:Zikram(Half-Orc) -I:25000:300:150:2:2 +I:25000:200 C:150:100:50 L:Orc | Easterling H:Dragon | Demon | Elf @@ -1146,25 +1146,25 @@ H:Dragon | Demon | Elf ### The Scribes ### N:170:Rumil(Human) -I:25000:300:150:2:2 +I:25000:200 C:115:100:70 L:Human | Easterling H:Dragon | Demon | Troll N:171:Saeros(Half-Elf) -I:10000:150:120:4:8 +I:10000:130 C:125:100:60 L:Half-Elf | Easterling H:Dragon | Demon | Half-Ogre N:172:Zartosh(Half-Orc) -I:30000:200:130:1:1 +I:30000:150 C:125:100:80 L:Orc | Easterling H:Dragon | Demon | Elf N:173:Shog(Half-Troll) -I:20000:250:140:3:4 +I:20000:170 C:150:100:50 L:Troll | Easterling H:Dragon | Demon | Human @@ -1172,25 +1172,25 @@ H:Dragon | Demon | Human ### The Potion Peddlers ### N:174:Zamin(Human) -I:25000:300:150:2:2 +I:25000:200 C:150:100:50 L:Human | Easterling H:Dragon | Demon | Troll N:175:Algosh(Half-Orc) -I:30000:200:130:1:1 +I:30000:150 C:115:100:70 L:Orc | Easterling H:Dragon | Demon | Elf N:176:Seghash(Half-Troll) -I:10000:150:120:4:8 +I:10000:130 C:125:100:80 L:Troll | Easterling H:Dragon | Demon | Human N:177:Kabbug(Half-Orc) -I:20000:250:140:3:4 +I:20000:170 C:125:100:60 L:Orc | Easterling H:Dragon | Demon | Elf @@ -1198,25 +1198,25 @@ H:Dragon | Demon | Elf ### The Master Archers ### N:178:Palin(Dwarf) -I:30000:170:107:1:1 +I:30000:120 C:125:100:70 L:Human | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling N:179:Wilcome Cotton(Hobbit) -I:20000:190:109:3:4 +I:20000:130 C:110:100:80 L:Human | Hobbit H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling N:180:Inzilbeth(Dunadan) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | High-Elf | Dunadan | Elf H:Dragon | Demon | Orc | Half-Ogre | Troll N:181:Gildor Inglorion(Dark-Elf) -I:10000:200:110:4:8 +I:10000:140 C:150:100:50 L:Dark-Elf | Elf | Easterling H:Dragon | Demon | Orc | Half-Ogre | Petty-Dwarf | Dwarf | Troll @@ -1226,25 +1226,25 @@ H:Dragon | Demon | Orc | Half-Ogre | Petty-Dwarf | Dwarf | Troll ### The Miners / Builders ### N:182:Gror(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Half-Elf | Petty-Dwarf | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:183:Saradoc Oldbuck(Hobbit) -I:30000:170:107:1:1 +I:30000:120 C:110:100:80 L:Human | High-Elf | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:184:Gloredhel(Half-Elf) -I:10000:200:110:4:8 +I:10000:140 C:150:100:50 L:Human | Half-Elf | Dunadan | Elf | Easterling H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Troll N:185:Erellont(Wood-Elf) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:High-Elf | Dunadan | Hobbit | Elf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll | Easterling @@ -1252,25 +1252,25 @@ H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll | Easterling ### The Hunters ### N:186:Kili(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:110:100:80 L:Petty-Dwarf | Dwarf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Elf | Troll N:187:Ruby Bolger(Hobbit) -I:10000:200:110:4:8 +I:10000:140 C:150:100:50 L:Human | Half-Elf | High-Elf | Hobbit | Elf | Easterling H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll N:188:Goldwine(Human) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | Half-Elf | RohanKnight | Dunadan | Elf | Easterling H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Troll N:189:Erestor(High-Elf) -I:30000:170:107:1:1 +I:30000:120 C:125:100:70 L:Human | Half-Elf | High-Elf | Dunadan | Elf H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll | Easterling @@ -1278,25 +1278,25 @@ H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll | East ### The Runecrafters ### N:190:Nori(Dwarf) -I:30000:170:107:1:1 +I:30000:120 C:150:100:50 L:Petty-Dwarf | Dwarf | Half-Elf | Dunadan H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Human | Troll | Eagle N:191:Camellia Sackville(Hobbit) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Hobbit | Easterling H:Dragon | Demon | Orc | Troll N:192:Hador Lorindol(Dunadan) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | Half-Elf | High-Elf | RohanKnight | Dunadan | Hobbit | Elf H:Dragon | Demon | Orc | Half-Ogre | Troll | Easterling N:193:Galathil(Dark-Elf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Human | Dark-Elf | Elf H:Dragon | Demon | Beorning | Orc | High-Elf | Half-Ogre | Petty-Dwarf | Troll @@ -1304,25 +1304,25 @@ H:Dragon | Demon | Beorning | Orc | High-Elf | Half-Ogre | Petty-Dwarf | Troll ### The Musicians ### N:194:Oin(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Human | Petty-Dwarf | Dwarf H:Dragon | Demon | Orc | Elf | Half-Ogre | Troll | Easterling N:195:Robin Smallburrow(Hobbit) -I:10000:200:110:4:8 +I:10000:140 C:110:100:80 L:Human | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Troll | Easterling N:196:Hareth(Half-Elf) -I:30000:170:107:1:1 +I:30000:120 C:150:100:50 L:Human | RohanKnight | Dunadan H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling N:197:Galdor(Wood-Elf) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Half-Elf | High-Elf | Elf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Dwarf | Troll | Easterling @@ -1330,25 +1330,25 @@ H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Petty-Dwarf | Dwarf | Troll | E ### The Precious Metalsmiths ### N:198:Gabil(Dwarf) -I:10000:150:120:4:8 +I:10000:130 C:115:100:70 L:Dwarf H:Dragon | Demon | Orc N:199:Isil(Human) -I:25000:300:150:2:2 +I:25000:200 C:125:100:80 L:Human | Easterling H:Dragon | Demon | Troll N:200:Grima(Half-Orc) -I:20000:250:140:3:4 +I:20000:170 C:150:100:50 L:Orc | Easterling H:Dragon | Demon | Elf N:201:Kosh(Half-Troll) -I:30000:200:130:1:1 +I:30000:150 C:125:100:60 L:Troll | Easterling H:Dragon | Demon | Human @@ -1356,25 +1356,25 @@ H:Dragon | Demon | Human ### The Mapmakers ### N:202:Pas(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:125:100:70 L:Half-Elf | Petty-Dwarf | Dwarf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll N:203:Isumbras Took(Hobbit) -I:30000:170:107:1:1 +I:30000:120 C:110:100:80 L:Human | High-Elf | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling N:204:Labadal(Half-Elf) -I:10000:200:110:4:8 +I:10000:140 C:150:100:50 L:Human | Half-Elf | Dunadan | Elf | Easterling H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Troll N:205:Guilin(Wood-Elf) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:High-Elf | Dunadan | Hobbit | Elf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll @@ -1382,25 +1382,25 @@ H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll ### The Farmers ### N:206:Rili(Dwarf) -I:20000:190:109:3:4 +I:20000:130 C:110:100:80 L:Petty-Dwarf | Dwarf H:Dragon | Demon | Orc | Dark-Elf | Half-Ogre | Elf | Troll N:207:Wiseman Gamwich(Hobbit) -I:10000:200:110:4:8 +I:10000:140 C:150:100:50 L:Human | Half-Elf | High-Elf | Hobbit | Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Dwarf | Troll N:208:Lalaith(Human) -I:25000:180:108:2:2 +I:25000:130 C:110:100:80 L:Human | Half-Elf | RohanKnight | Dunadan | Elf H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Troll | Easterling N:209:Gwindor(High-Elf) -I:30000:170:107:1:1 +I:30000:120 C:125:100:70 L:Human | Half-Elf | High-Elf | Dunadan | Elf H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll @@ -1408,12 +1408,12 @@ H:Dragon | Demon | Beorning | Orc | Dark-Elf | Half-Ogre | Dwarf | Troll ### The Old Mage in Minas Anor ### N:210:Malbeth the Seer -I:20000:170:110:4:4 +I:20000:130 C:110:100:80 L:Human | RohanKnight | Dunadan | High-Elf H:Dragon | Demon | Beorning | Orc | Half-Ogre | Troll | Easterling ### For the Merchants' Guild ### N:211:Worm(Human) -I:30000:180:110:0:0 +I:30000:130 C:110:100:90
\ No newline at end of file diff --git a/src/defines.h b/src/defines.h index 37f0a8e9..d8a5d4f2 100644 --- a/src/defines.h +++ b/src/defines.h @@ -2679,7 +2679,6 @@ * Special Object Flags */ #define IDENT_SENSE 0x01 /* Item has been "sensed" */ -#define IDENT_FIXED 0x02 /* Item has been "haggled" */ #define IDENT_EMPTY 0x04 /* Item charges are known */ #define IDENT_KNOWN 0x08 /* Item abilities are known */ #define IDENT_STOREB 0x10 /* Item is storebought !!!! */ diff --git a/src/externs.h b/src/externs.h index 46675de7..655da661 100644 --- a/src/externs.h +++ b/src/externs.h @@ -239,7 +239,6 @@ extern bool_ stack_force_notes; extern bool_ stack_force_costs; extern bool_ view_reduce_lite; extern bool_ view_reduce_view; -extern bool_ auto_haggle; extern bool_ auto_scum; extern bool_ expand_look; extern bool_ expand_list; diff --git a/src/init1.c b/src/init1.c index 43d9690f..cc589bde 100644 --- a/src/init1.c +++ b/src/init1.c @@ -10250,18 +10250,15 @@ errr init_ow_info_txt(FILE *fp, char *buf) /* Process 'I' for "Info" (multiple lines line only) */ if (buf[0] == 'I') { - int cost, max_inf, min_inf, haggle, insult; + int cost, inf; /* Scan for the values */ - if (5 != sscanf(buf + 2, "%d:%d:%d:%d:%d", - &cost, &max_inf, &min_inf, &haggle, &insult)) return (1); + if (2 != sscanf(buf + 2, "%d:%d", + &cost, &inf)) return (1); /* Save the values */ ow_ptr->max_cost = cost; - ow_ptr->max_inflate = max_inf; - ow_ptr->min_inflate = min_inf; - ow_ptr->haggle_per = haggle; - ow_ptr->insult_max = insult; + ow_ptr->inflation = inf; /* Next... */ continue; diff --git a/src/loadsave.c b/src/loadsave.c index 48a982c6..1b142e59 100644 --- a/src/loadsave.c +++ b/src/loadsave.c @@ -1713,16 +1713,12 @@ static bool_ do_store(store_type *str, int flag) /* Some basic info */ do_s32b(&str->store_open, flag); - do_s16b(&str->insult_cur, flag); do_u16b(&str->owner, flag); if (flag == LS_SAVE) num = str->stock_num; /* Could be cleaner, done this way for benefit of the for loop later on */ do_byte(&num, flag); - do_s16b(&str->good_buy, flag); - do_s16b(&str->bad_buy, flag); - /* Last visit */ do_s32b(&str->last_visit, flag); diff --git a/src/store.c b/src/store.c index e1977920..ff5e89dc 100644 --- a/src/store.c +++ b/src/store.c @@ -43,59 +43,6 @@ static cptr comment_1[MAX_COMMENT_1] = "Taken!" }; -#define MAX_COMMENT_2A 2 - -static cptr comment_2a[MAX_COMMENT_2A] = -{ - "You try my patience. %s is final.", - "My patience grows thin. %s is final." -}; - -#define MAX_COMMENT_2B 12 - -static cptr comment_2b[MAX_COMMENT_2B] = -{ - "I can take no less than %s gold pieces.", - "I will accept no less than %s gold pieces.", - "Ha! No less than %s gold pieces.", - "You knave! No less than %s gold pieces.", - "That's a pittance! I want %s gold pieces.", - "That's an insult! I want %s gold pieces.", - "As if! How about %s gold pieces?", - "My gosh! How about %s gold pieces?", - "May the fleas of 1000 orcs molest you! Try %s gold pieces.", - "May your most favourite weapons rust! Try %s gold pieces.", - "May Morgoth find you tasty! Perhaps %s gold pieces?", - "Your mother was an Ogre! Perhaps %s gold pieces?" -}; - -#define MAX_COMMENT_3A 2 - -static cptr comment_3a[MAX_COMMENT_3A] = -{ - "You try my patience. %s is final.", - "My patience grows thin. %s is final." -}; - - -#define MAX_COMMENT_3B 12 - -static cptr comment_3b[MAX_COMMENT_3B] = -{ - "Perhaps %s gold pieces?", - "How about %s gold pieces?", - "I will pay no more than %s gold pieces.", - "I can afford no more than %s gold pieces.", - "Be reasonable. How about %s gold pieces?", - "I'll buy it as scrap for %s gold pieces.", - "That is too much! How about %s gold pieces?", - "That looks war surplus! Say %s gold pieces?", - "Never! %s is more like it.", - "That's an insult! %s is more like it.", - "%s gold pieces and be thankful for it!", - "%s gold pieces and not a copper more!" -}; - #define MAX_COMMENT_4A 4 static cptr comment_4a[MAX_COMMENT_4A] = @@ -116,31 +63,6 @@ static cptr comment_4b[MAX_COMMENT_4B] = "Out, out, out!" }; -#define MAX_COMMENT_5 8 - -static cptr comment_5[MAX_COMMENT_5] = -{ - "Try again.", - "Ridiculous!", - "You will have to do better than that!", - "Do you wish to do business or not?", - "You've got to be kidding!", - "You'd better be kidding!", - "You try my patience.", - "Hmmm, nice weather we're having." -}; - -#define MAX_COMMENT_6 4 - -static cptr comment_6[MAX_COMMENT_6] = -{ - "I must have heard you wrong.", - "I'm sorry, I missed that.", - "I'm sorry, what was that?", - "Sorry, what was that again?" -}; - - /* * Successful haggle. @@ -161,58 +83,6 @@ static void say_comment_1(void) /* - * Continue haggling (player is buying) - */ -static void say_comment_2(s32b value, int annoyed) -{ - char tmp_val[80]; - - /* Prepare a string to insert */ - strnfmt(tmp_val, 80, "%ld", (long)value); - - /* Final offer */ - if (annoyed > 0) - { - /* Formatted message */ - msg_format(comment_2a[rand_int(MAX_COMMENT_2A)], tmp_val); - } - - /* Normal offer */ - else - { - /* Formatted message */ - msg_format(comment_2b[rand_int(MAX_COMMENT_2B)], tmp_val); - } -} - - -/* - * Continue haggling (player is selling) - */ -static void say_comment_3(s32b value, int annoyed) -{ - char tmp_val[80]; - - /* Prepare a string to insert */ - strnfmt(tmp_val, 80, "%ld", (long)value); - - /* Final offer */ - if (annoyed > 0) - { - /* Formatted message */ - msg_format(comment_3a[rand_int(MAX_COMMENT_3A)], tmp_val); - } - - /* Normal offer */ - else - { - /* Formatted message */ - msg_format(comment_3b[rand_int(MAX_COMMENT_3B)], tmp_val); - } -} - - -/* * Kick 'da bum out. -RAK- */ static void say_comment_4(void) @@ -222,24 +92,6 @@ static void say_comment_4(void) } -/* - * You are insulting me - */ -static void say_comment_5(void) -{ - msg_print(comment_5[rand_int(MAX_COMMENT_5)]); -} - - -/* - * That makes no sense. - */ -static void say_comment_6(void) -{ - msg_print(comment_6[rand_int(5)]); -} - - /* * Messages for reacting to purchase prices. @@ -1565,62 +1417,6 @@ static void store_create(void) /* - * Eliminate need to bargain if player has haggled well in the past - */ -static bool_ noneedtobargain(s32b minprice) -{ - s32b good = st_ptr->good_buy; - s32b bad = st_ptr->bad_buy; - - /* Cheap items are "boring" */ - if (minprice < 10L) return (TRUE); - - /* Perfect haggling */ - if (good == MAX_SHORT) return (TRUE); - - /* Reward good haggles, punish bad haggles, notice price */ - if (good > ((3 * bad) + (5 + (minprice / 50)))) return (TRUE); - - /* Return the flag */ - return (FALSE); -} - - -/* - * Update the bargain info - */ -static void updatebargain(s32b price, s32b minprice) -{ - /* Hack -- auto-haggle */ - if (auto_haggle) return; - - /* Cheap items are "boring" */ - if (minprice < 10L) return; - - /* Count the successful haggles */ - if (price == minprice) - { - /* Just count the good haggles */ - if (st_ptr->good_buy < MAX_SHORT) - { - st_ptr->good_buy++; - } - } - - /* Count the failed haggles */ - else - { - /* Just count the bad haggles */ - if (st_ptr->bad_buy < MAX_SHORT) - { - st_ptr->bad_buy++; - } - } -} - - - -/* * Re-displays a single store entry */ static void display_entry(int pos) @@ -1710,50 +1506,15 @@ static void display_entry(int pos) put_str(out_val, i + 6, 61); } - /* Display a "fixed" cost */ - if (o_ptr->ident & (IDENT_FIXED)) - { - /* Extract the "minimum" price */ - x = price_item(o_ptr, ot_ptr->min_inflate, FALSE); - - /* Can we buy one ? */ - if (x > p_ptr->au) color = TERM_L_DARK; - - /* Actually draw the price (not fixed) */ - strnfmt(out_val, 160, "%9ld F", (long)x); - c_put_str(color, out_val, i + 6, 68); - } - - /* Display a "taxed" cost */ - else if (auto_haggle) - { - /* Extract the "minimum" price */ - x = price_item(o_ptr, ot_ptr->min_inflate, FALSE); - - /* Hack -- Apply Sales Tax if needed */ - if (!noneedtobargain(x)) x += x / 10; - - /* Can we buy one ? */ - if (x > p_ptr->au) color = TERM_L_DARK; + /* Extract the "minimum" price */ + x = price_item(o_ptr, ot_ptr->inflation, FALSE); - /* Actually draw the price (with tax) */ - strnfmt(out_val, 160, "%9ld ", (long)x); - c_put_str(color, out_val, i + 6, 68); - } + /* Can we buy one ? */ + if (x > p_ptr->au) color = TERM_L_DARK; - /* Display a "haggle" cost */ - else - { - /* Extrect the "maximum" price */ - x = price_item(o_ptr, ot_ptr->max_inflate, FALSE); - - /* Can we buy one ? */ - if (x > p_ptr->au) color = TERM_L_DARK; - - /* Actually draw the price (not fixed) */ - strnfmt(out_val, 160, "%9ld ", (long)x); - c_put_str(color, out_val, i + 6, 68); - } + /* Actually draw the price */ + strnfmt(out_val, 160, "%9ld ", (long)x); + c_put_str(color, out_val, i + 6, 68); } } @@ -1946,220 +1707,57 @@ static int get_stock(int *com_val, cptr pmt, int i, int j) } -/* - * Increase the insult counter and get angry if too many -RAK- - */ -static int increase_insults(void) -{ - /* Increase insults */ - st_ptr->insult_cur++; - - /* Become insulted */ - if (st_ptr->insult_cur > ot_ptr->insult_max) - { - /* Complain */ - say_comment_4(); - - /* Reset insults */ - st_ptr->insult_cur = 0; - st_ptr->good_buy = 0; - st_ptr->bad_buy = 0; - - /* Open tomorrow */ - st_ptr->store_open = turn + 25000 + randint(25000); - - /* Closed */ - return (TRUE); - } - - /* Not closed */ - return (FALSE); -} - - -/* - * Decrease insults -RAK- - */ -static void decrease_insults(void) -{ - /* Decrease insults */ - if (st_ptr->insult_cur) st_ptr->insult_cur--; -} - - -/* - * Have insulted while haggling -RAK- - */ -static int haggle_insults(void) -{ - /* Increase insults */ - if (increase_insults()) return (TRUE); - - /* Display and flush insult */ - say_comment_5(); - - /* Still okay */ - return (FALSE); -} - - -/* - * Mega-Hack -- Enable "increments" - */ -static bool_ allow_inc = FALSE; - -/* - * Mega-Hack -- Last "increment" during haggling - */ -static s32b last_inc = 0L; - -/* - * Get a haggle +/** + * Prompt for a yes/no during selling/buying + * + * @return TRUE if 'yes' was selected, otherwise returns FALSE. */ -static int get_haggle(cptr pmt, s32b *poffer, s32b price, int final) +static bool_ prompt_yesno(cptr prompt) { - s32b i; - - cptr p; - - char buf[128]; - char out_val[160]; - - - /* Clear old increment if necessary */ - if (!allow_inc) last_inc = 0L; - - - /* Final offer */ - if (final) - { - strnfmt(buf, 128, "%s [accept] ", pmt); - } - - /* Old (negative) increment, and not final */ - else if (last_inc < 0) - { - strnfmt(buf, 128, "%s [-%ld] ", pmt, (long)(ABS(last_inc))); - } + cptr allowed = "yn\r\n"; + cptr yes = "y\r\n"; + char buf[128]; + bool_ ret; - /* Old (positive) increment, and not final */ - else if (last_inc > 0) - { - strnfmt(buf, 128, "%s [+%ld] ", pmt, (long)(ABS(last_inc))); - } - - /* Normal haggle */ - else - { - strnfmt(buf, 128, "%s ", pmt); - } + /* Build prompt */ + snprintf(buf, sizeof(buf), "%s [y/n/RET/ESC] ", prompt); - - /* Paranoia XXX XXX XXX */ + /* Prompt for it */ msg_print(NULL); + prt(buf, 0, 0); - - /* Ask until done */ + /* Get answer */ while (TRUE) { - /* Default */ - strcpy(out_val, ""); - - /* Ask the user for a response */ - if (!get_string(buf, out_val, 32)) return (FALSE); - - /* Skip leading spaces */ - for (p = out_val; *p == ' '; p++) /* loop */; + int key = inkey(); - /* Empty response */ - if (*p == '\0') - { - /* Accept current price */ - if (final) - { - *poffer = price; - last_inc = 0L; - break; - } - - /* Use previous increment */ - if (allow_inc && last_inc) - { - *poffer += last_inc; - break; - } + /* ESC means no. */ + if (key == ESCAPE) { + ret = FALSE; + break; } - /* Normal response */ - else - { - /* Extract a number */ - i = atol(p); - - /* Handle "incremental" number */ - if ((*p == '+' || *p == '-')) - { - /* Allow increments */ - if (allow_inc) - { - /* Use the given "increment" */ - *poffer += i; - last_inc = i; - break; - } - } - - /* Handle normal number */ - else - { - /* Use the given "number" */ - *poffer = i; - last_inc = 0L; - break; - } + /* Any other key must be in the allowed set to break the loop. */ + if ((strchr(allowed, key) != NULL) || quick_messages) { + /* Check for presence in the 'yes' set */ + ret = (strchr(yes, key) != NULL); + break; } - /* Warning */ - msg_print("Invalid response."); - msg_print(NULL); + /* Retry */ + bell(); } - /* Success */ - return (TRUE); -} - - -/* - * Receive an offer (from the player) - * - * Return TRUE if offer is NOT okay - */ -static bool_ receive_offer(cptr pmt, s32b *poffer, - s32b last_offer, int factor, - s32b price, int final) -{ - /* Haggle till done */ - while (TRUE) - { - /* Get a haggle (or cancel) */ - if (!get_haggle(pmt, poffer, price, final)) return (TRUE); - - /* Acceptable offer */ - if (((*poffer) * factor) >= (last_offer * factor)) break; - - /* Insult, and check for kicked out */ - if (haggle_insults()) return (TRUE); - - /* Reject offer (correctly) */ - (*poffer) = last_offer; - } + /* Erase the prompt */ + prt("", 0, 0); /* Success */ - return (FALSE); + return ret; } + /* * Haggling routine -RAK- * @@ -2167,176 +1765,42 @@ static bool_ receive_offer(cptr pmt, s32b *poffer, */ static bool_ purchase_haggle(object_type *o_ptr, s32b *price) { - s32b cur_ask, final_ask; - s32b last_offer, offer; - s32b x1, x2, x3; - s32b min_per, max_per; - int flag, loop_flag, noneed; - int annoyed = 0, final = FALSE; - + s32b cur_ask; bool_ cancel = FALSE; - - cptr pmt = "Asking"; - char out_val[160]; + char prompt[128]; + char o_name[80]; *price = 0; + /* Extract the price */ + cur_ask = price_item(o_ptr, ot_ptr->inflation, FALSE); - /* Extract the starting offer and the final offer */ - cur_ask = price_item(o_ptr, ot_ptr->max_inflate, FALSE); - final_ask = price_item(o_ptr, ot_ptr->min_inflate, FALSE); - - /* Determine if haggling is necessary */ - noneed = noneedtobargain(final_ask); - - /* No need to haggle */ - if (noneed || auto_haggle) - { - /* No need to haggle */ - if (noneed) - { - /* Message summary */ - msg_print("You eventually agree upon the price."); - msg_print(NULL); - } - - /* No haggle option */ - else - { - /* Message summary */ - msg_print("You quickly agree upon the price."); - msg_print(NULL); - - /* Apply Sales Tax */ - final_ask += final_ask / 10; - } - - /* Final price */ - cur_ask = final_ask; - - /* Go to final offer */ - pmt = "Final Offer"; - final = TRUE; - } - - - /* Haggle for the whole pile */ + /* Buy for the whole pile */ cur_ask *= o_ptr->number; - final_ask *= o_ptr->number; - - - /* Haggle parameters */ - min_per = ot_ptr->haggle_per; - max_per = min_per * 3; - /* Mega-Hack -- artificial "last offer" value */ - last_offer = object_value(o_ptr) * o_ptr->number; - last_offer = last_offer * (200 - (int)(ot_ptr->max_inflate)) / 100L; - if (last_offer <= 0) last_offer = 1; + /* Describe the object (fully) */ + object_desc_store(o_name, o_ptr, TRUE, 3); - /* No offer yet */ - offer = 0; - - /* No incremental haggling yet */ - allow_inc = FALSE; + /* Prompt */ + strnfmt(out_val, sizeof(out_val), "%s: " FMTs32b, "Price", cur_ask); + put_str(out_val, 1, 0); + strnfmt(prompt, sizeof(prompt), "Buy %s?", o_name); + cancel = !prompt_yesno(prompt); - /* Haggle until done */ - for (flag = FALSE; !flag; ) + /* Handle result */ + if (cancel) { - loop_flag = TRUE; - - while (!flag && loop_flag) - { - strnfmt(out_val, 160, "%s : %ld", pmt, (long)cur_ask); - put_str(out_val, 1, 0); - cancel = receive_offer("What do you offer? ", - &offer, last_offer, 1, cur_ask, final); - - if (cancel) - { - flag = TRUE; - } - else if (offer > cur_ask) - { - say_comment_6(); - offer = last_offer; - } - else if (offer == cur_ask) - { - flag = TRUE; - *price = offer; - } - else - { - loop_flag = FALSE; - } - } - - if (!flag) - { - x1 = 100 * (offer - last_offer) / (cur_ask - last_offer); - if (x1 < min_per) - { - if (haggle_insults()) - { - flag = TRUE; - cancel = TRUE; - } - } - else if (x1 > max_per) - { - x1 = x1 * 3 / 4; - if (x1 < max_per) x1 = max_per; - } - x2 = rand_range(x1 - 2, x1 + 2); - x3 = ((cur_ask - offer) * x2 / 100L) + 1; - /* don't let the price go up */ - if (x3 < 0) x3 = 0; - cur_ask -= x3; - - /* Too little */ - if (cur_ask < final_ask) - { - final = TRUE; - cur_ask = final_ask; - pmt = "Final Offer"; - annoyed++; - if (annoyed > 3) - { - (void)(increase_insults()); - cancel = TRUE; - flag = TRUE; - } - } - else if (offer >= cur_ask) - { - flag = TRUE; - *price = offer; - } - - if (!flag) - { - last_offer = offer; - allow_inc = TRUE; - prt("", 1, 0); - strnfmt(out_val, 160, "Your last offer: %ld", - (long)last_offer); - put_str(out_val, 1, 39); - say_comment_2(cur_ask, annoyed); - } - } + /* Cancel */ + return (TRUE); + } + else + { + *price = cur_ask; + /* Do not cancel */ + return (FALSE); } - - /* Cancel */ - if (cancel) return (TRUE); - - /* Update bargaining info */ - updatebargain(*price, final_ask); - - /* Do not cancel */ - return (FALSE); } @@ -2347,193 +1811,47 @@ static bool_ purchase_haggle(object_type *o_ptr, s32b *price) */ static bool_ sell_haggle(object_type *o_ptr, s32b *price) { - s32b purse, cur_ask, final_ask; - s32b last_offer = 0, offer = 0; - s32b x1, x2, x3; - s32b min_per, max_per; - - int flag, loop_flag, noneed; - int annoyed = 0, final = FALSE; - + s32b cur_ask; bool_ cancel = FALSE; - - cptr pmt = "Offer"; - char out_val[160]; + char prompt[128]; + char o_name[80]; *price = 0; + /* Extract price */ + cur_ask = price_item(o_ptr, ot_ptr->inflation, TRUE); - /* Obtain the starting offer and the final offer */ - cur_ask = price_item(o_ptr, ot_ptr->max_inflate, TRUE); - final_ask = price_item(o_ptr, ot_ptr->min_inflate, TRUE); - - /* Determine if haggling is necessary */ - noneed = noneedtobargain(final_ask); - - /* Get the owner's payout limit */ - purse = (s32b)(ot_ptr->max_cost); - - /* No need to haggle */ - if (noneed || auto_haggle || (final_ask >= purse)) - { - /* No reason to haggle */ - if (final_ask >= purse) - { - /* Message */ - msg_print("You instantly agree upon the price."); - msg_print(NULL); - - /* Offer full purse */ - final_ask = purse; - } - - /* No need to haggle */ - else if (noneed) - { - /* Message */ - msg_print("You eventually agree upon the price."); - msg_print(NULL); - } - - /* No haggle option */ - else - { - /* Message summary */ - msg_print("You quickly agree upon the price."); - msg_print(NULL); - - /* Apply Sales Tax */ - final_ask -= final_ask / 10; - } - - /* Final price */ - cur_ask = final_ask; - - /* Final offer */ - final = TRUE; - pmt = "Final Offer"; + /* Limit to shopkeeper's purse */ + if (cur_ask > ot_ptr->max_cost) { + cur_ask = ot_ptr->max_cost; } - /* Haggle for the whole pile */ + /* Sell the whole pile */ cur_ask *= o_ptr->number; - final_ask *= o_ptr->number; - - - /* XXX XXX XXX Display commands */ - - /* Haggling parameters */ - min_per = ot_ptr->haggle_per; - max_per = min_per * 3; - /* Mega-Hack -- artificial "last offer" value */ - last_offer = object_value(o_ptr) * o_ptr->number; - last_offer = last_offer * ot_ptr->max_inflate / 100L; + /* Describe the object (fully) */ + object_desc_store(o_name, o_ptr, TRUE, 3); - /* No offer yet */ - offer = 0; - - /* No incremental haggling yet */ - allow_inc = FALSE; + /* Prompt */ + strnfmt(out_val, sizeof(out_val), "%s: " FMTs32b, "Price", cur_ask); + put_str(out_val, 1, 0); + strnfmt(prompt, sizeof(prompt), "Sell %s?", o_name); + cancel = !prompt_yesno(prompt); - /* Haggle */ - for (flag = FALSE; !flag; ) + /* Handle result */ + if (cancel) { - while (1) - { - loop_flag = TRUE; - - strnfmt(out_val, 160, "%s : %ld", pmt, (long)cur_ask); - put_str(out_val, 1, 0); - cancel = receive_offer("What price do you ask? ", - &offer, last_offer, -1, cur_ask, final); - - if (cancel) - { - flag = TRUE; - } - else if (offer < cur_ask) - { - say_comment_6(); - /* rejected, reset offer for incremental haggling */ - offer = last_offer; - } - else if (offer == cur_ask) - { - flag = TRUE; - *price = offer; - } - else - { - loop_flag = FALSE; - } - - /* Stop */ - if (flag || !loop_flag) break; - } - - if (!flag) - { - x1 = 100 * (last_offer - offer) / (last_offer - cur_ask); - if (x1 < min_per) - { - if (haggle_insults()) - { - flag = TRUE; - cancel = TRUE; - } - } - else if (x1 > max_per) - { - x1 = x1 * 3 / 4; - if (x1 < max_per) x1 = max_per; - } - x2 = rand_range(x1 - 2, x1 + 2); - x3 = ((offer - cur_ask) * x2 / 100L) + 1; - /* don't let the price go down */ - if (x3 < 0) x3 = 0; - cur_ask += x3; - - if (cur_ask > final_ask) - { - cur_ask = final_ask; - final = TRUE; - pmt = "Final Offer"; - annoyed++; - if (annoyed > 3) - { - flag = TRUE; - (void)(increase_insults()); - } - } - else if (offer <= cur_ask) - { - flag = TRUE; - *price = offer; - } - - if (!flag) - { - last_offer = offer; - allow_inc = TRUE; - prt("", 1, 0); - strnfmt(out_val, 160, - "Your last bid %ld", (long)last_offer); - put_str(out_val, 1, 39); - say_comment_3(cur_ask, annoyed); - } - } + /* Cancel */ + return (TRUE); + } + else + { + *price = cur_ask; + /* Do not cancel */ + return (FALSE); } - - /* Cancel */ - if (cancel) return (TRUE); - - /* Update bargaining info */ - updatebargain(*price, final_ask); - - /* Do not cancel */ - return (FALSE); } /* @@ -2665,9 +1983,6 @@ void store_stole(void) j_ptr->found = OBJ_FOUND_STOLEN; j_ptr->found_aux1 = st_ptr->st_idx; - /* Hack -- clear the "fixed" flag from the item */ - j_ptr->ident &= ~(IDENT_FIXED); - /* "Hot" merchandise can't be sold back. It doesn't make sense to be able to sell back to a guy what you just stole from him. Also, without the discount one could fairly easily macro himself @@ -2765,11 +2080,6 @@ void store_stole(void) /* Complain */ say_comment_4(); - /* Reset insults */ - st_ptr->insult_cur = 0; - st_ptr->good_buy = 0; - st_ptr->bad_buy = 0; - /* Kicked out for a LONG time */ st_ptr->store_open = turn + 500000 + randint(500000); } @@ -2861,7 +2171,7 @@ void store_purchase(void) } /* Determine the "best" price (per item) */ - best = price_item(j_ptr, ot_ptr->min_inflate, FALSE); + best = price_item(j_ptr, ot_ptr->inflation, FALSE); /* Find out how many the player wants */ if (o_ptr->number > 1) @@ -2869,12 +2179,6 @@ void store_purchase(void) s32b q; - /* Hack -- note cost of "fixed" items */ - if ((cur_store_num != 7) && (o_ptr->ident & (IDENT_FIXED))) - { - msg_format("That costs %ld gold per item.", (long)(best)); - } - /* How many can we buy ? 99 if price is 0*/ if (cur_store_num == STORE_HOME) { @@ -2886,10 +2190,7 @@ void store_purchase(void) } else { - if (auto_haggle) - q = p_ptr->au / (best + (best / 10)); - else - q = p_ptr->au / best; + q = p_ptr->au / (best + (best / 10)); } if (o_ptr->number < q) q = o_ptr->number; @@ -2935,40 +2236,16 @@ void store_purchase(void) /* Attempt to buy it */ if (cur_store_num != 7) { - /* Fixed price, quick buy */ - if (o_ptr->ident & (IDENT_FIXED)) - { - /* Assume accept */ - choice = 0; - - /* Go directly to the "best" deal */ - price = (best * j_ptr->number); - } - - /* Haggle for it */ - else - { - /* Describe the object (fully) */ - object_desc_store(o_name, j_ptr, TRUE, 3); - - /* Message */ - msg_format("Buying %s (%c).", o_name, I2A(item)); - msg_print(NULL); + /* Haggle for a final price */ + choice = purchase_haggle(j_ptr, &price); - /* Haggle for a final price */ - choice = purchase_haggle(j_ptr, &price); - - /* Hack -- Got kicked out */ - if (st_ptr->store_open >= turn) return; - } + /* Hack -- Got kicked out */ + if (st_ptr->store_open >= turn) return; /* Player wants it */ if (choice == 0) { - /* Fix the item price (if "correctly" haggled) */ - if (price == (best * j_ptr->number)) o_ptr->ident |= (IDENT_FIXED); - /* Player can afford it */ if (p_ptr->au >= price) { @@ -2978,9 +2255,6 @@ void store_purchase(void) /* Make a sound */ sound(SOUND_BUY); - /* Be happy */ - decrease_insults(); - /* Spend the money */ p_ptr->au -= price; @@ -2994,9 +2268,6 @@ void store_purchase(void) j_ptr->found = OBJ_FOUND_STORE; j_ptr->found_aux1 = st_ptr->st_idx; - /* Hack -- clear the "fixed" flag from the item */ - j_ptr->ident &= ~(IDENT_FIXED); - /* Describe the transaction */ object_desc(o_name, j_ptr, TRUE, 3); @@ -3274,10 +2545,6 @@ void store_sell(void) /* Real store */ if ((cur_store_num != 7) && !museum) { - /* Describe the transaction */ - msg_format("Selling %s (%c).", o_name, index_to_label(item)); - msg_print(NULL); - /* Haggle for it */ choice = sell_haggle(q_ptr, &price); @@ -3293,9 +2560,6 @@ void store_sell(void) /* Make a sound */ sound(SOUND_SELL); - /* Be happy */ - decrease_insults(); - /* Get some money */ p_ptr->au += price; @@ -4188,10 +3452,7 @@ void store_shuffle(int which) /* Reset the owner data */ - st_ptr->insult_cur = 0; st_ptr->store_open = 0; - st_ptr->good_buy = 0; - st_ptr->bad_buy = 0; /* Hack -- discount all the items */ @@ -4206,9 +3467,6 @@ void store_shuffle(int which) if (!(o_ptr->art_name)) o_ptr->discount = 50; - /* Hack -- Items are no longer "fixed price" */ - o_ptr->ident &= ~(IDENT_FIXED); - /* Mega-Hack -- Note that the item is "on sale" */ o_ptr->note = quark_add("on sale"); } @@ -4238,9 +3496,6 @@ void store_maint(int town_num, int store_num) /* Activate the owner */ ot_ptr = &ow_info[st_ptr->owner]; - /* Store keeper forgives the player */ - st_ptr->insult_cur = 0; - /* Mega-Hack -- prune the black market */ if (st_info[st_ptr->st_idx].flags1 & SF1_ALL_ITEM) { @@ -4328,9 +3583,6 @@ void store_init(int town_num, int store_num) /* Initialize the store */ st_ptr->store_open = 0; - st_ptr->insult_cur = 0; - st_ptr->good_buy = 0; - st_ptr->bad_buy = 0; /* Nothing in stock */ st_ptr->stock_num = 0; diff --git a/src/tables.c b/src/tables.c index 1ebc52fd..2e01284a 100644 --- a/src/tables.c +++ b/src/tables.c @@ -1453,9 +1453,6 @@ option_type option_info[] = /*** Game-Play ***/ - { &auto_haggle, TRUE, 3, 0, - "auto_haggle", "Auto-haggle in stores" }, - { &auto_scum, TRUE, 3, 1, "auto_scum", "Auto-scum for good levels" }, diff --git a/src/types.h b/src/types.h index 538df721..bddb304b 100644 --- a/src/types.h +++ b/src/types.h @@ -1001,15 +1001,10 @@ struct owner_type s16b max_cost; /* Purse limit */ - byte max_inflate; /* Inflation (max) */ - byte min_inflate; /* Inflation (min) */ + s16b inflation; /* Inflation */ - byte haggle_per; /* Haggle unit */ - - byte insult_max; /* Insult limit */ - - u32b races[2][2]; /* Liked/hated races */ - u32b classes[2][2]; /* Liked/hated classes */ + u32b races[2][2]; /* Liked/hated races */ + u32b classes[2][2]; /* Liked/hated classes */ s16b costs[3]; /* Costs for liked people */ }; @@ -1029,11 +1024,6 @@ struct store_type u16b owner; /* Owner index */ - s16b insult_cur; /* Insult counter */ - - s16b good_buy; /* Number of "good" buys */ - s16b bad_buy; /* Number of "bad" buys */ - s32b store_open; /* Closed until this turn */ s32b last_visit; /* Last visited on this turn */ diff --git a/src/variable.c b/src/variable.c index 0cea5814..c77c3c7a 100644 --- a/src/variable.c +++ b/src/variable.c @@ -232,8 +232,6 @@ bool_ disturb_pets; /* Pets moving nearby disturb us */ /* Option Set 3 -- Game-Play */ -bool_ auto_haggle; /* Auto-haggle in stores */ - bool_ auto_scum; /* Auto-scum for good levels */ bool_ stack_allow_items; /* Allow weapons and armor to stack */ |