X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fstore.c;h=3805de28b06a65a829d07fbedb325bab949bfd15;hb=ade1ec84938a42d8c4017d7811e6bdd318ce9098;hp=b303cf9537ab46049c6f176ed5e395b39d087760;hpb=9194abf87f10509314cbe620b909e3445c27f099;p=hengbandforosx%2Fhengbandosx.git diff --git a/src/store.c b/src/store.c index b303cf953..3805de28b 100644 --- a/src/store.c +++ b/src/store.c @@ -12,11 +12,758 @@ #include "angband.h" #include "cmd-item.h" +#include "cmd-smith.h" #include "cmd-zapwand.h" #include "cmd-magiceat.h" +#include "store.h" +#include "avatar.h" +#include "cmd-spell.h" +#include "rumor.h" +#include "player-status.h" +#include "object-hook.h" #define MIN_STOCK 12 + /*! + * @brief éæå ´ã®ã¢ã³ã¹ã¿ã¼IDåã³å ±é ¬ã¢ã¤ãã ãã¼ãã« / + * Store owners (exactly four "possible" owners per store, chosen randomly) + * @details + *
+ * { name, purse, max greed, min greed, haggle_per, tolerance, race, unused } + * + * Lifted extra shopkeepers from CthAngband (don't you just love open source + * development? ;-)). Since this gave less than 32 unique names for some + * shops, those have their first x names copied to reach 32. + * + * For the weapon and armour shops, several owners have a limit of 5k. + * + * I want to do 50k owners, but the purse is currently s16b. Perhaps + * we should just store 1/10th of the purse? + *+ */ +const owner_type owners[MAX_STORES][MAX_OWNERS] = +{ + { + /* General store - 32 unique names */ + /* + Raistlin 㯠dragonlance ã® powerful wizard ã + Rincewind the Chicken 㯠Terry Pratchett ã® Discworld ã®ç»å ´äººç© ä¸è¨ã®ãããã£ï¼ã + { "æ¶ç è ã©ã¹ããªã³", 200, 175, 108, 4, 12, RACE_HUMAN}, + { "Raistlin the Chicken", 200, 175, 108, 4, 12, RACE_HUMAN}, + */ + +#ifdef JP + { "ãã¬ã³ããªã¼ãªãã«ã", 200, 170, 108, 5, 15, RACE_HOBBIT}, + { "æ¶ç è ãªã³ã¹ã¦ã£ã³ã", 200, 175, 108, 4, 12, RACE_HUMAN}, + { "èã®ä½ããµã«ã¿ã³", 300, 170, 107, 5, 15, RACE_GNOME}, + { "ãã³ãµã ãªã©ã¤ã¢=ã¨ã«", 300, 165, 107, 6, 18, RACE_ELF}, + { "親åãªãã¡ãªã«ãã¦ã¨ã³", 250, 170, 108, 5, 15, RACE_HOBBIT}, + { "èç è ã´ã©ã¯ã©ã³", 500, 175, 108, 4, 12, RACE_HUMAN}, + { "ããã®ã¨ã©ã·ã¥ãã¯", 750, 170, 107, 5, 15, RACE_BEASTMAN}, + { "ãã³ãµã ãªã°ã©ãã°", 1000, 165, 107, 6, 18, RACE_HALF_TITAN}, + { "ã±ããªãã©ããã¢", 250, 170, 108, 5, 15, RACE_HUMAN}, + { "馬鹿ã®ã¨ãªã¹", 500, 175, 108, 4, 12, RACE_HUMAN}, + { "è ¹ãã³ã®ãã£ã«ãã¼ã", 750, 170, 107, 5, 15, RACE_VAMPIRE}, + { "ã¹ãã¼ã°ã«ã»ãµã·ã°ã¢", 1000, 165, 107, 6, 18, RACE_MIND_FLAYER}, + { "é·æ»ãã¨ãã¯ã¼ãº", 250, 170, 108, 5, 15, RACE_SPECTRE}, + { "ãããã®ãã³ãã£", 500, 175, 108, 4, 12, RACE_ZOMBIE}, + { "ã°ã©ã³ãµã¹", 750, 170, 107, 5, 15, RACE_SKELETON}, + { "ä¸å¯§ãªãã©ãã¯ã¹", 1000, 165, 107, 6, 18, RACE_VAMPIRE}, + { "ããã", 250, 170, 108, 5, 15, RACE_HALF_ORC}, + { "ç¾ããã¨ã«ãã¬ã¹", 500, 175, 108, 4, 12, RACE_HIGH_ELF}, + { "ãããããµã¼ã¬ã¹", 750, 170, 107, 5, 15, RACE_GNOME}, + { "ãã¼ããã¯", 1000, 165, 107, 6, 18, RACE_DWARF}, + { "ããã®ãã¤ããã«", 250, 170, 108, 5, 15, RACE_GNOME}, + { "ãã¡ãããã¯ã©ã³", 500, 175, 108, 4, 12, RACE_HALF_GIANT}, + { "æ¯æ¯ã®ã¦ã¼ã", 750, 170, 107, 5, 15, RACE_DRACONIAN}, + { "ã§ã¶ã£ã¡ãã¢ã©ã¡ã«", 1000, 165, 107, 6, 18, RACE_DRACONIAN}, + { "ä½è½ãªãã¼ã´ã¼", 250, 170, 108, 5, 15, RACE_BEASTMAN}, + { "ãã§ãã¼ã«ãã£ãªã¢ã³", 500, 175, 108, 4, 12, RACE_ELF}, + { "å¹´å¯ãããã«", 750, 170, 107, 5, 15, RACE_GNOME}, + { "åæ¢ãªãµã·ã³", 1000, 165, 107, 6, 18, RACE_HALF_GIANT}, + { "ç°èè ã¢ãã¨ãã¼ã«", 250, 170, 108, 5, 15, RACE_HUMAN}, + { "貧ä¹ãªãã¼ã¯", 500, 175, 108, 4, 12, RACE_HALF_ORC}, + { "ã¿ãããªã½ã¢ãªã³", 750, 170, 107, 5, 15, RACE_ZOMBIE}, + { "è³ªç´ ãªã¡ã«ã©", 1000, 165, 107, 6, 18, RACE_ELF}, +#else + { "Bilbo the Friendly", 200, 170, 108, 5, 15, RACE_HOBBIT}, + { "Rincewind the Chicken", 200, 175, 108, 4, 12, RACE_HUMAN}, + { "Sultan the Midget", 300, 170, 107, 5, 15, RACE_GNOME}, + { "Lyar-el the Comely", 300, 165, 107, 6, 18, RACE_ELF}, + { "Falilmawen the Friendly", 250, 170, 108, 5, 15, RACE_HOBBIT}, + { "Voirin the Cowardly", 500, 175, 108, 4, 12, RACE_HUMAN}, + { "Erashnak the Midget", 750, 170, 107, 5, 15, RACE_BEASTMAN}, + { "Grug the Comely", 1000, 165, 107, 6, 18, RACE_HALF_TITAN}, + { "Forovir the Cheap", 250, 170, 108, 5, 15, RACE_HUMAN}, + { "Ellis the Fool", 500, 175, 108, 4, 12, RACE_HUMAN}, + { "Filbert the Hungry", 750, 170, 107, 5, 15, RACE_VAMPIRE}, + { "Fthnargl Psathiggua", 1000, 165, 107, 6, 18, RACE_MIND_FLAYER}, + { "Eloise Long-Dead", 250, 170, 108, 5, 15, RACE_SPECTRE}, + { "Fundi the Slow", 500, 175, 108, 4, 12, RACE_ZOMBIE}, + { "Granthus", 750, 170, 107, 5, 15, RACE_SKELETON}, + { "Lorax the Suave", 1000, 165, 107, 6, 18, RACE_VAMPIRE}, + { "Butch", 250, 170, 108, 5, 15, RACE_HALF_ORC}, + { "Elbereth the Beautiful", 500, 175, 108, 4, 12, RACE_HIGH_ELF}, + { "Sarleth the Sneaky", 750, 170, 107, 5, 15, RACE_GNOME}, + { "Narlock", 1000, 165, 107, 6, 18, RACE_DWARF}, + { "Haneka the Small", 250, 170, 108, 5, 15, RACE_GNOME}, + { "Loirin the Mad", 500, 175, 108, 4, 12, RACE_HALF_GIANT}, + { "Wuto Poisonbreath", 750, 170, 107, 5, 15, RACE_DRACONIAN}, + { "Araaka the Rotund", 1000, 165, 107, 6, 18, RACE_DRACONIAN}, + { "Poogor the Dumb", 250, 170, 108, 5, 15, RACE_BEASTMAN}, + { "Felorfiliand", 500, 175, 108, 4, 12, RACE_ELF}, + { "Maroka the Aged", 750, 170, 107, 5, 15, RACE_GNOME}, + { "Sasin the Bold", 1000, 165, 107, 6, 18, RACE_HALF_GIANT}, + { "Abiemar the Peasant", 250, 170, 108, 5, 15, RACE_HUMAN}, + { "Hurk the Poor", 500, 175, 108, 4, 12, RACE_HALF_ORC}, + { "Soalin the Wretched", 750, 170, 107, 5, 15, RACE_ZOMBIE}, + { "Merulla the Humble", 1000, 165, 107, 6, 18, RACE_ELF}, +#endif + }, + { + /* Armoury - 28 unique names */ +#ifdef JP + { "éæªã³ã³=ãã¼", 5000, 210, 115, 5, 7, RACE_HALF_ORC}, + { "é åºè ãã¼ã°=ãã¦", 10000, 190, 111, 4, 9, RACE_HUMAN}, + { "è³¢è ãã«ã", 25000, 200, 112, 4, 10, RACE_DUNADAN}, + { "éå¶å±ã®ã¦ã£ã¼ã©ã³ã", 30000, 200, 112, 4, 5, RACE_DWARF}, + { "éæªã³ã³=ãã¼", 10000, 210, 115, 5, 7, RACE_HALF_ORC}, + { "é åºè ãã¼ã°=ãã¦", 15000, 190, 111, 4, 9, RACE_HUMAN}, + { "ãã³ãµã ãªãã«ã", 25000, 200, 112, 4, 10, RACE_AMBERITE}, + { "ã¨ãã¼ã»ãã©ã´ã³ã¹ã±ã¤ã«", 30000, 200, 112, 4, 5, RACE_ELF}, + { "ããªã«ãã¹", 10000, 210, 115, 5, 7, RACE_SPRITE}, + { "巨大ãªã°ã«ã¼ã¹", 15000, 190, 111, 4, 9, RACE_HALF_GIANT}, + { "ã¢ãã ã¹", 25000, 200, 112, 4, 10, RACE_GOLEM}, + { "ãã«ã´ã¡ã¹", 30000, 200, 112, 4, 5, RACE_HALF_TITAN}, + { "ã»ã©ã¯ã·ã¹", 10000, 210, 115, 5, 7, RACE_ZOMBIE}, + { "ãã¹ã»ãã«", 5000, 190, 111, 4, 9, RACE_SPECTRE}, + { "å¾®ããªããªãªã¹", 25000, 200, 112, 4, 10, RACE_SPECTRE}, + { "å·ãããã¹ãªãã¯", 30000, 200, 112, 4, 5, RACE_VAMPIRE}, + { "å·é ·ã´ã§ã³ã¸ã§ã©", 10000, 210, 115, 5, 7, RACE_HALF_TROLL}, + { "å¼·è ã¦ã£ã©ã", 15000, 190, 111, 4, 9, RACE_HUMAN}, + { "ã¨ã¸ã§äºä¸", 25000, 200, 112, 4, 10, RACE_DWARF}, + { "åªããã©ãã©ã¼", 30000, 200, 112, 4, 5, RACE_AMBERITE}, + { "ä¸æµã®ãã«ãã°", 5000, 210, 115, 5, 7, RACE_HALF_ORC}, + { "ãã¬ãã¹ã®ã¨ã¬ã¬ã³", 15000, 190, 111, 4, 9, RACE_DARK_ELF}, + { "ã¤ã¹ããªãªã¢ã¹", 25000, 200, 112, 4, 10, RACE_SPRITE}, + { "ä¸ã¤ç®ã´ã§ã°ãã¼", 5000, 200, 112, 4, 5, RACE_CYCLOPS}, + { "æ··æ²ã®ããã£ãã·ã¥", 10000, 210, 115, 5, 7, RACE_BEASTMAN}, + { "å£è±ªãã¸ã³", 15000, 190, 111, 4, 9, RACE_NIBELUNG}, + { "ããå±ã®ã¨ã«ãã¬ãªã¹", 10000, 200, 112, 4, 10, RACE_DARK_ELF}, + { "ã¤ã³ãã®ã¶ãµã¹", 30000, 200, 112, 4, 5, RACE_IMP}, + { "éæªã³ã³=ãã¼", 5000, 210, 115, 5, 7, RACE_HALF_ORC}, + { "é åºè ãã¼ã°=ãã¦", 10000, 190, 111, 4, 9, RACE_HUMAN}, + { "ãã³ãµã ãªãã«ã", 25000, 200, 112, 4, 10, RACE_AMBERITE}, + { "éå¶å±ã®ã¦ã£ã¼ã©ã³ã", 30000, 200, 112, 4, 5, RACE_DWARF}, +#else + { "Kon-Dar the Ugly", 5000, 210, 115, 5, 7, RACE_HALF_ORC}, + { "Darg-Low the Grim", 10000, 190, 111, 4, 9, RACE_HUMAN}, + { "Decado the Handsome", 25000, 200, 112, 4, 10, RACE_DUNADAN}, + { "Wieland the Smith", 30000, 200, 112, 4, 5, RACE_DWARF}, + { "Kon-Dar the Ugly", 10000, 210, 115, 5, 7, RACE_HALF_ORC}, + { "Darg-Low the Grim", 15000, 190, 111, 4, 9, RACE_HUMAN}, + { "Decado the Handsome", 25000, 200, 112, 4, 10, RACE_AMBERITE}, + { "Elo Dragonscale", 30000, 200, 112, 4, 5, RACE_ELF}, + { "Delicatus", 10000, 210, 115, 5, 7, RACE_SPRITE}, + { "Gruce the Huge", 15000, 190, 111, 4, 9, RACE_HALF_GIANT}, + { "Animus", 25000, 200, 112, 4, 10, RACE_GOLEM}, + { "Malvus", 30000, 200, 112, 4, 5, RACE_HALF_TITAN}, + { "Selaxis", 10000, 210, 115, 5, 7, RACE_ZOMBIE}, + { "Deathchill", 5000, 190, 111, 4, 9, RACE_SPECTRE}, + { "Drios the Faint", 25000, 200, 112, 4, 10, RACE_SPECTRE}, + { "Bathric the Cold", 30000, 200, 112, 4, 5, RACE_VAMPIRE}, + { "Vengella the Cruel", 10000, 210, 115, 5, 7, RACE_HALF_TROLL}, + { "Wyrana the Mighty", 15000, 190, 111, 4, 9, RACE_HUMAN}, + { "Yojo II", 25000, 200, 112, 4, 10, RACE_DWARF}, + { "Ranalar the Sweet", 30000, 200, 112, 4, 5, RACE_AMBERITE}, + { "Horbag the Unclean", 5000, 210, 115, 5, 7, RACE_HALF_ORC}, + { "Elelen the Telepath", 15000, 190, 111, 4, 9, RACE_DARK_ELF}, + { "Isedrelias", 25000, 200, 112, 4, 10, RACE_SPRITE}, + { "Vegnar One-eye", 5000, 200, 112, 4, 5, RACE_CYCLOPS}, + { "Rodish the Chaotic", 10000, 210, 115, 5, 7, RACE_BEASTMAN}, + { "Hesin Swordmaster", 15000, 190, 111, 4, 9, RACE_NIBELUNG}, + { "Elvererith the Cheat", 10000, 200, 112, 4, 10, RACE_DARK_ELF}, + { "Zzathath the Imp", 30000, 200, 112, 4, 5, RACE_IMP}, + { "Kon-Dar the Ugly", 5000, 210, 115, 5, 7, RACE_HALF_ORC}, + { "Darg-Low the Grim", 10000, 190, 111, 4, 9, RACE_HUMAN}, + { "Decado the Handsome", 25000, 200, 112, 4, 10, RACE_AMBERITE}, + { "Wieland the Smith", 30000, 200, 112, 4, 5, RACE_DWARF}, +#endif + }, + + { + /* Weapon Smith - 28 unique names */ +#ifdef JP + { "æ®å¿ãªãã¢ã¼ãã«ã", 5000, 210, 115, 6, 6, RACE_HALF_TROLL}, + { "ç£æ®ºãã®ã¢ã¼ã³ãã«", 10000, 185, 110, 5, 9, RACE_HALF_ELF}, + { "ç£ãã¹ã¿ã¼ã®ã¨ãã£ã¼", 25000, 190, 115, 5, 7, RACE_HOBBIT}, + { "ç«æ®ºãã®ãªã°ã©ã¤ã³", 30000, 195, 112, 4, 8, RACE_DWARF}, + { "çç·´è ããªã¥ã¼", 10000, 210, 115, 6, 6, RACE_HUMAN}, + { "é¾ã®åãªã©ãã¯ã¹", 15000, 185, 110, 5, 9, RACE_DRACONIAN}, + { "ç æ°æã¡ã®ã¢ã³ã¹ã©ãã¯ã¹", 25000, 190, 115, 5, 7, RACE_BEASTMAN}, + { "é ä¸è ã¢ã«ã³ã¹", 30000, 195, 112, 4, 8, RACE_DWARF}, + { "è ãè ã®ãµãªã¢ã¹", 5000, 210, 115, 6, 6, RACE_ZOMBIE}, + { "æã骨ã®ãã¥ã¨ã·ã¯", 15000, 185, 110, 5, 9, RACE_SKELETON}, + { "ããªãªã¹", 25000, 190, 115, 5, 7, RACE_BEASTMAN}, + { "ãã¡ã¹ã¬ã«", 30000, 195, 112, 4, 8, RACE_ZOMBIE}, + { "ãã©ãã£ã³ã®ã¨ã¬ããªã¹", 10000, 210, 115, 6, 6, RACE_BARBARIAN}, + { "ã'ããªã'ã¯", 15000, 185, 110, 5, 9, RACE_KLACKON}, + { "èèã®åãã¥ãã«ã¹", 25000, 190, 115, 5, 7, RACE_DARK_ELF}, + { "巨人殺ãã®ãã³ã°ã¹", 30000, 195, 112, 4, 8, RACE_DWARF}, + { "ãã©ã³ãµ", 10000, 210, 115, 6, 6, RACE_ELF}, + { "ã¬ã³ã¸ã£ã¼ã®ã½ã«ãã¹ã¿ã", 15000, 185, 110, 5, 9, RACE_HALF_ELF}, + { "ãããã®ã¾ãªã«", 25000, 190, 115, 5, 7, RACE_GOLEM}, + { "ã¤ã¼ãªã³ã»ãã©ãã¯ã¹", 20000, 195, 112, 4, 8, RACE_HALF_ELF}, + { "å¼·è ãããã¯", 10000, 210, 115, 6, 6, RACE_HOBBIT}, + { "å¼±è«ã¨ã©ã¢ã°", 15000, 185, 110, 5, 9, RACE_KOBOLD}, + { "å ¬æ£ãªã¨ãªã¦ã£ãªã¹", 25000, 190, 115, 5, 7, RACE_VAMPIRE}, + { "ãã«ãã°æ®ºãã®ãã¥ã¤ã¢ã°", 30000, 195, 112, 4, 8, RACE_HALF_ORC}, + { "å·é ·ãã¼ãã¹", 5000, 210, 115, 6, 6, RACE_HUMAN}, + { "ã´ã¡ã¢ã° ã¹ã¬ã¤ã¤ã¼", 15000, 185, 110, 5, 9, RACE_HALF_OGRE}, + { "æ§æªãã¼ã·ã¥ãã¯", 25000, 190, 115, 5, 7, RACE_BEASTMAN}, + { "èéãã¬ã³", 30000, 195, 112, 4, 8, RACE_BARBARIAN}, + { "æ®å¿ãªãã¢ã¼ãã«ã", 5000, 210, 115, 6, 6, RACE_BARBARIAN}, + { "ç£æ®ºãã®ã¢ã¼ã³ãã«", 10000, 185, 110, 5, 9, RACE_HALF_ELF}, + { "ãã¼ã¹ããã¹ã¿ã¼ã»ã¨ãã£ã¼", 25000, 190, 115, 5, 7, RACE_HALF_ORC}, + { "ç«æ®ºãã®ãªã°ã©ã¤ã³", 30000, 195, 112, 4, 8, RACE_DWARF}, +#else + { "Arnold the Beastly", 5000, 210, 115, 6, 6, RACE_BARBARIAN}, + { "Arndal Beast-Slayer", 10000, 185, 110, 5, 9, RACE_HALF_ELF}, + { "Eddie Beast-Master", 25000, 190, 115, 5, 7, RACE_HALF_ORC}, + { "Oglign Dragon-Slayer", 30000, 195, 112, 4, 8, RACE_DWARF}, + { "Drew the Skilled", 10000, 210, 115, 6, 6, RACE_HUMAN}, + { "Orrax Dragonson", 15000, 185, 110, 5, 9, RACE_DRACONIAN}, + { "Anthrax Disease-Carrier", 25000, 190, 115, 5, 7, RACE_BEASTMAN}, + { "Arkhoth the Stout", 30000, 195, 112, 4, 8, RACE_DWARF}, + { "Sarlyas the Rotten", 5000, 210, 115, 6, 6, RACE_ZOMBIE}, + { "Tuethic Bare-Bones", 15000, 185, 110, 5, 9, RACE_SKELETON}, + { "Bilious", 25000, 190, 115, 5, 7, RACE_BEASTMAN}, + { "Fasgul", 30000, 195, 112, 4, 8, RACE_ZOMBIE}, + { "Ellefris the Paladin", 10000, 210, 115, 6, 6, RACE_BARBARIAN}, + { "K'trrik'k", 15000, 185, 110, 5, 9, RACE_KLACKON}, + { "Drocus Spiderfriend", 25000, 190, 115, 5, 7, RACE_DARK_ELF}, + { "Fungus Giant-Slayer", 30000, 195, 112, 4, 8, RACE_DWARF}, + { "Delantha", 10000, 210, 115, 6, 6, RACE_ELF}, + { "Solvistani the Ranger", 15000, 185, 110, 5, 9, RACE_HALF_ELF}, + { "Xoril the Slow", 25000, 190, 115, 5, 7, RACE_GOLEM}, + { "Aeon Flux", 20000, 195, 112, 4, 8, RACE_HALF_ELF}, + { "Nadoc the Strong", 10000, 210, 115, 6, 6, RACE_HOBBIT}, + { "Eramog the Weak", 15000, 185, 110, 5, 9, RACE_KOBOLD}, + { "Eowilith the Fair", 25000, 190, 115, 5, 7, RACE_VAMPIRE}, + { "Huimog Balrog-Slayer", 30000, 195, 112, 4, 8, RACE_HALF_ORC}, + { "Peadus the Cruel", 5000, 210, 115, 6, 6, RACE_HUMAN}, + { "Vamog Slayer", 15000, 185, 110, 5, 9, RACE_HALF_OGRE}, + { "Hooshnak the Vicious", 25000, 190, 115, 5, 7, RACE_BEASTMAN}, + { "Balenn War-Dancer", 30000, 195, 112, 4, 8, RACE_BARBARIAN}, + { "Arnold the Beastly", 5000, 210, 115, 6, 6, RACE_BARBARIAN}, + { "Arndal Beast-Slayer", 10000, 185, 110, 5, 9, RACE_HALF_ELF}, + { "Eddie Beast-Master", 25000, 190, 115, 5, 7, RACE_HALF_ORC}, + { "Oglign Dragon-Slayer", 30000, 195, 112, 4, 8, RACE_DWARF}, +#endif + }, + { + /* Temple - 22 unique names */ +#ifdef JP + { "è³ªç´ ãªã«ã¼ãã´ã£ã", 5000, 175, 109, 6, 15, RACE_HUMAN}, + { "ãã©ãã£ã³ã®ã¬ã³ãã¼", 10000, 185, 110, 5, 23, RACE_HUMAN}, + { "é¸ã°ããããªã³", 25000, 180, 107, 6, 20, RACE_ELF}, + { "è³¢æãªããµã©ã¹ãã", 30000, 185, 109, 5, 15, RACE_DWARF}, + { "ãã¼ã·ã´ã¡ã«å¿", 25000, 180, 107, 6, 20, RACE_HIGH_ELF}, + { "ç¥èãªãã¢ã»ãã¹", 30000, 185, 109, 5, 15, RACE_HUMAN}, + { "ããããã³", 10000, 175, 109, 6, 15, RACE_HUMAN}, + { "謹ã¿å©¦äºº", 15000, 185, 110, 5, 23, RACE_HIGH_ELF}, + { "ãã«ã¤ãã®ãã·ã¥ããã¯", 25000, 180, 107, 6, 20, RACE_HOBBIT}, + { "ãã£ãã¯", 30000, 185, 109, 5, 15, RACE_YEEK}, + { "ã¯ãªããã¯", 10000, 175, 109, 6, 15, RACE_KLACKON}, + { "èããè ã¢ãªã´ã¡ã«", 15000, 185, 110, 5, 23, RACE_ELF}, + { "æããã·ã£ãã¯", 25000, 180, 107, 6, 20, RACE_IMP}, + { "è³¢è ã¢ã¿ã¼ã«", 30000, 185, 109, 5, 15, RACE_HUMAN}, + { "æ¸ ãã¤ãããã", 10000, 175, 109, 6, 15, RACE_HUMAN}, + { "ã¨ãªãã£ã·ã¥", 15000, 185, 110, 5, 23, RACE_HALF_TROLL}, + { "åªè¡å¸«ã´ã«ãã¥ã·ã¥", 25000, 180, 107, 6, 20, RACE_HALF_OGRE}, + { "çæ¦å£«ããªã", 30000, 185, 109, 5, 15, RACE_BARBARIAN}, + { "è¥ããã«ã¼ã°ãã£ã·ã¥", 10000, 175, 109, 6, 15, RACE_HALF_OGRE}, + { "ãã¡ããã©ã ã¯ã¤ãº", 15000, 185, 110, 5, 23, RACE_YEEK}, + { "æå¾³è ã ã¯ã¼ã", 25000, 180, 107, 6, 20, RACE_KOBOLD}, + { "å¼±è«ãã¼ããã¼ã", 30000, 185, 109, 5, 15, RACE_SPECTRE}, + { "è³ªç´ ãªã«ã¼ãã´ã£ã", 5000, 175, 109, 6, 15, RACE_HUMAN}, + { "ãã©ãã£ã³ã®ã¬ã³ãã¼", 10000, 185, 110, 5, 23, RACE_HUMAN}, + { "é¸ã°ããããªã³", 25000, 180, 107, 6, 20, RACE_ELF}, + { "è³¢æãªããµã©ã¹ãã", 30000, 185, 109, 5, 15, RACE_DWARF}, + { "ãã¼ã·ã´ã¡ã«å¿", 25000, 180, 107, 6, 20, RACE_HIGH_ELF}, + { "ç¥èãªãã¢ã»ãã¹", 30000, 185, 109, 5, 15, RACE_HUMAN}, + { "ããããã³", 10000, 175, 109, 6, 15, RACE_HUMAN}, + { "謹ã¿å©¦äºº", 15000, 185, 110, 5, 23, RACE_HIGH_ELF}, + { "ãã«ã¤ãã®ãã·ã¥ããã¯", 25000, 180, 107, 6, 20, RACE_HOBBIT}, + { "ãã£ãã¯", 30000, 185, 109, 5, 15, RACE_YEEK}, +#else + { "Ludwig the Humble", 5000, 175, 109, 6, 15, RACE_DWARF}, + { "Gunnar the Paladin", 10000, 185, 110, 5, 23, RACE_HALF_TROLL}, + { "Torin the Chosen", 25000, 180, 107, 6, 20, RACE_HIGH_ELF}, + { "Sarastro the Wise", 30000, 185, 109, 5, 15, RACE_HUMAN}, + { "Sir Parsival the Pure", 25000, 180, 107, 6, 20, RACE_HIGH_ELF}, + { "Asenath the Holy", 30000, 185, 109, 5, 15, RACE_HUMAN}, + { "McKinnon", 10000, 175, 109, 6, 15, RACE_HUMAN}, + { "Mistress Chastity", 15000, 185, 110, 5, 23, RACE_HIGH_ELF}, + { "Hashnik the Druid", 25000, 180, 107, 6, 20, RACE_HOBBIT}, + { "Finak", 30000, 185, 109, 5, 15, RACE_YEEK}, + { "Krikkik", 10000, 175, 109, 6, 15, RACE_KLACKON}, + { "Morival the Wild", 15000, 185, 110, 5, 23, RACE_ELF}, + { "Hoshak the Dark", 25000, 180, 107, 6, 20, RACE_IMP}, + { "Atal the Wise", 30000, 185, 109, 5, 15, RACE_HUMAN}, + { "Ibenidd the Chaste", 10000, 175, 109, 6, 15, RACE_HUMAN}, + { "Eridish", 15000, 185, 110, 5, 23, RACE_HALF_TROLL}, + { "Vrudush the Shaman", 25000, 180, 107, 6, 20, RACE_HALF_OGRE}, + { "Haob the Berserker", 30000, 185, 109, 5, 15, RACE_BARBARIAN}, + { "Proogdish the Youthfull", 10000, 175, 109, 6, 15, RACE_HALF_OGRE}, + { "Lumwise the Mad", 15000, 185, 110, 5, 23, RACE_YEEK}, + { "Muirt the Virtuous", 25000, 180, 107, 6, 20, RACE_KOBOLD}, + { "Dardobard the Weak", 30000, 185, 109, 5, 15, RACE_SPECTRE}, + { "Ludwig the Humble", 5000, 175, 109, 6, 15, RACE_DWARF}, + { "Gunnar the Paladin", 10000, 185, 110, 5, 23, RACE_HALF_TROLL}, + { "Torin the Chosen", 25000, 180, 107, 6, 20, RACE_HIGH_ELF}, + { "Sarastro the Wise", 30000, 185, 109, 5, 15, RACE_HUMAN}, + { "Sir Parsival the Pure", 25000, 180, 107, 6, 20, RACE_HIGH_ELF}, + { "Asenath the Holy", 30000, 185, 109, 5, 15, RACE_HUMAN}, + { "McKinnon", 10000, 175, 109, 6, 15, RACE_HUMAN}, + { "Mistress Chastity", 15000, 185, 110, 5, 23, RACE_HIGH_ELF}, + { "Hashnik the Druid", 25000, 180, 107, 6, 20, RACE_HOBBIT}, + { "Finak", 30000, 185, 109, 5, 15, RACE_YEEK}, +#endif + }, + { + /* Alchemist - 26 unique names */ +#ifdef JP + { "åå¦è ãã¦ã¶ã¼", 10000, 190, 111, 5, 8, RACE_HALF_ELF}, + { "ã«ãªã¹ã®ã¦ã£ãºã«", 10000, 190, 110, 6, 8, RACE_HOBBIT}, + { "強欲ããã¹", 15000, 200, 116, 6, 9, RACE_GNOME}, + { "貧弱ã¸ã£=ãã¡ã¼", 15000, 220, 111, 4, 9, RACE_ELF},/*FIRST*/ + { "ã«ã«ã«ã©ã«ã«ã«", 15000, 200, 116, 6, 9, RACE_KLACKON}, + { "é¬éè¡å¸«ã¸ã£ã«=ã¨ã¹", 15000, 220, 111, 4, 9, RACE_ELF}, + { "ç¨å¿æ·±ããã¡ãã©ã¹", 10000, 190, 111, 5, 8, RACE_DWARF}, + { "ããã¬ã¤ã®ã«ã³ã·ã¼", 10000, 190, 110, 6, 8, RACE_HUMAN}, + { "ã°ã©ã³ãã«ã¯ã¼ã¹", 15000, 200, 116, 6, 9, RACE_GNOME}, + { "ããªãã¿ã¼", 15000, 220, 111, 4, 9, RACE_SPRITE}, + { "ã¶ãªã«ã¹", 10000, 190, 111, 5, 8, RACE_HUMAN}, + { "å¤ãã¨ã°ãã¼ã", 10000, 190, 110, 6, 8, RACE_DWARF}, + { "èªãé«ãã´ã¡ãªã³ãã©", 15000, 200, 116, 6, 9, RACE_HIGH_ELF}, + { "é¬éè¡å¸«ã¿ã¨ã³", 15000, 220, 111, 4, 9, RACE_HUMAN}, + { "å·§è¨ã«ã¤ã", 10000, 190, 111, 5, 8, RACE_VAMPIRE}, + { "æãããªã¢", 10000, 190, 110, 6, 8, RACE_NIBELUNG}, + { "è³ªç´ ãªãã ãª", 15000, 200, 116, 6, 9, RACE_DWARF}, + { "éã®åã¤ã¡ã¸ã¥ãã«", 15000, 220, 111, 4, 9, RACE_IMP}, + { "è¬è師ã¸ã§ã©ã©ã«ãã¼ã«", 10000, 190, 111, 5, 8, RACE_HIGH_ELF}, + { "è³¢è ãªã¬ã©ã«ãã³", 10000, 190, 110, 6, 8, RACE_BARBARIAN}, + { "ãã¢ãã·ã¹ãã®ãã¾ã°ã", 15000, 200, 116, 6, 9, RACE_IMP}, + { "é¬éè¡å¸«ãã¥ãªã¢ã·ã¥", 15000, 220, 111, 4, 9, RACE_HALF_ORC}, + { "å¼·è ããªã¢", 10000, 190, 111, 5, 8, RACE_CYCLOPS}, + { "è¾å£ãªã°ãã¹", 10000, 190, 110, 6, 8, RACE_HALF_ORC}, + { "ãã£ã«ã", 15000, 200, 116, 6, 9, RACE_HOBBIT}, + { "éæã¡ããªã«ããªãã¯", 15000, 220, 111, 4, 9, RACE_HUMAN}, + + { "ç§å¦è ãã¦ã¶ã¼", 10000, 190, 111, 5, 8, RACE_HALF_ELF}, + { "ã«ãªã¹ã®ã¦ã£ãºã«", 10000, 190, 110, 6, 8, RACE_HOBBIT}, + { "強欲ããã¹", 15000, 200, 116, 6, 9, RACE_GNOME}, + { "é¬éè¡å¸«ã¸ã£=ãã¡ã¼", 15000, 220, 111, 4, 9, RACE_ELF}, + { "ã«ã«ã«ã©ã«ã«ã«", 15000, 200, 116, 6, 9, RACE_KLACKON}, + { "é¬éè¡å¸«ã¸ã£ã«=ã¨ã¹", 15000, 220, 111, 4, 9, RACE_ELF}, +#else + { "Mauser the Chemist", 10000, 190, 111, 5, 8, RACE_HALF_ELF}, + { "Wizzle the Chaotic", 10000, 190, 110, 6, 8, RACE_HOBBIT}, + { "Midas the Greedy", 15000, 200, 116, 6, 9, RACE_GNOME}, + { "Ja-Far the Alchemist", 15000, 220, 111, 4, 9, RACE_ELF}, + { "Kakalrakakal", 15000, 200, 116, 6, 9, RACE_KLACKON}, + { "Jal-Eth the Alchemist", 15000, 220, 111, 4, 9, RACE_ELF}, + { "Fanelath the Cautious", 10000, 190, 111, 5, 8, RACE_DWARF}, + { "Runcie the Insane", 10000, 190, 110, 6, 8, RACE_HUMAN}, + { "Grumbleworth", 15000, 200, 116, 6, 9, RACE_GNOME}, + { "Flitter", 15000, 220, 111, 4, 9, RACE_SPRITE}, + { "Xarillus", 10000, 190, 111, 5, 8, RACE_HUMAN}, + { "Egbert the Old", 10000, 190, 110, 6, 8, RACE_DWARF}, + { "Valindra the Proud", 15000, 200, 116, 6, 9, RACE_HIGH_ELF}, + { "Taen the Alchemist", 15000, 220, 111, 4, 9, RACE_HUMAN}, + { "Cayd the Sweet", 10000, 190, 111, 5, 8, RACE_VAMPIRE}, + { "Fulir the Dark", 10000, 190, 110, 6, 8, RACE_NIBELUNG}, + { "Domli the Humble", 15000, 200, 116, 6, 9, RACE_DWARF}, + { "Yaarjukka Demonspawn", 15000, 220, 111, 4, 9, RACE_IMP}, + { "Gelaraldor the Herbmaster", 10000, 190, 111, 5, 8, RACE_HIGH_ELF}, + { "Olelaldan the Wise", 10000, 190, 110, 6, 8, RACE_BARBARIAN}, + { "Fthoglo the Demonicist", 15000, 200, 116, 6, 9, RACE_IMP}, + { "Dridash the Alchemist", 15000, 220, 111, 4, 9, RACE_HALF_ORC}, + { "Nelir the Strong", 10000, 190, 111, 5, 8, RACE_CYCLOPS}, + { "Lignus the Pungent", 10000, 190, 110, 6, 8, RACE_HALF_ORC}, + { "Tilba", 15000, 200, 116, 6, 9, RACE_HOBBIT}, + { "Myrildric the Wealthy", 15000, 220, 111, 4, 9, RACE_HUMAN}, + + { "Mauser the Chemist", 10000, 190, 111, 5, 8, RACE_HALF_ELF}, + { "Wizzle the Chaotic", 10000, 190, 110, 6, 8, RACE_HOBBIT}, + { "Midas the Greedy", 15000, 200, 116, 6, 9, RACE_GNOME}, + { "Ja-Far the Alchemist", 15000, 220, 111, 4, 9, RACE_ELF}, + { "Kakalrakakal", 15000, 200, 116, 6, 9, RACE_KLACKON}, + { "Jal-Eth the Alchemist", 15000, 220, 111, 4, 9, RACE_ELF}, +#endif + }, + + { + /* Magic Shop - 23 unique names */ +#ifdef JP + { "ã½ã¼ãµã©ã¼ã®ã=ãã³", 20000, 200, 110, 7, 8, RACE_HALF_ELF}, + { "å大ãªããã¬ã¼ãã¤", 20000, 215, 113, 6, 10, RACE_GNOME}, + { "ã¤ã§ã³ãã¼ã®éæ³ä½¿ã", 30000, 200, 110, 7, 10, RACE_HUMAN}, + { "æ»é使ããªã£ã¯",30000, 175, 110, 5, 11, RACE_HIGH_ELF}, + { "éè¡å¸«ã¹ããã¥ãã¼", 15000, 200, 110, 7, 8, RACE_HALF_ELF}, + { "å¹»è¡å¸«ããªã¢", 30000, 200, 110, 7, 10, RACE_HUMAN}, + { "æ»éè¡å¸«ããã", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "ã½ãã¹ãã©ã³", 15000, 200, 110, 7, 8, RACE_SPRITE}, + { "çè³å£ã¢ãã·ã§", 20000, 215, 113, 6, 10, RACE_MIND_FLAYER}, + { "è²´æã®ã«ã¶", 30000, 200, 110, 7, 10, RACE_HIGH_ELF}, + { "æããã¡ã¸ã«", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "å大ãªãã±ã«ãã¼ã³", 15000, 200, 110, 7, 8, RACE_DWARF}, + { "ãã£ã©ã³ã¹ããã¹", 20000, 215, 113, 6, 10, RACE_HOBBIT}, + { "é女ã®ã¢ã°ãã¼", 30000, 200, 110, 7, 10, RACE_HUMAN}, + { "æ»éè¡å¸«ãã¥ãªã¢ã³ã¹", 30000, 175, 110, 5, 11, RACE_BEASTMAN}, + { "ãã¤ã¡ã¤ã¸ã®ã´ã¤ã©ã¯", 15000, 200, 110, 7, 8, RACE_BEASTMAN}, + { "ç¥æµè ããã£ãã·ã¥", 20000, 215, 113, 6, 10, RACE_BEASTMAN}, + { "ãã¡ã¬ããªã³ãã¼ã«", 30000, 200, 110, 7, 10, RACE_HIGH_ELF}, + { "é°éºãã§ãªã«=ã¬ã³ã", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "åªè¡å¸«ãµã¬ã´ã¼ã", 15000, 200, 110, 7, 8, RACE_BARBARIAN}, + { "ç¥ç§å®¶ã¯ãã¥ã¢ãã¹", 20000, 215, 113, 6, 10, RACE_MIND_FLAYER}, + { "å¹»è¡å¸«ã¤ããª", 30000, 200, 110, 7, 10, RACE_SKELETON}, + { "æ»éè¡å¸«ããã¼", 30000, 175, 110, 5, 11, RACE_YEEK}, + { "éè¡å¸«ã=ãã³", 20000, 200, 110, 7, 8, RACE_HALF_ELF}, + { "å大ãªããã¬ã¼ãã¤", 20000, 215, 113, 6, 10, RACE_GNOME}, + { "ã¤ã§ã³ãã¼ã®éæ³ä½¿ã", 30000, 200, 110, 7, 10, RACE_HUMAN}, + { "æ»éè¡å¸«ãªã£ã¯", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "éè¡å¸«ã¹ããã¥ãã¼", 15000, 200, 110, 7, 8, RACE_HALF_ELF}, + { "å¹»è¡å¸«ããªã¢", 30000, 200, 110, 7, 10, RACE_HUMAN}, + { "æ»éè¡å¸«ããã", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "ã½ãã¹ãã©ã³", 15000, 200, 110, 7, 8, RACE_SPRITE}, + { "çè³å£ã¢ãã·ã§", 20000, 215, 113, 6, 10, RACE_MIND_FLAYER}, +#else + { "Lo Pan the Sorcerer", 20000, 200, 110, 7, 8, RACE_HALF_ELF}, + { "Buggerby the Great", 20000, 215, 113, 6, 10, RACE_GNOME}, + { "The Wizard of Yendor", 30000, 200, 110, 7, 10, RACE_HUMAN}, + { "Rjak the Necromancer", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "Skidney the Sorcerer", 15000, 200, 110, 7, 8, RACE_HALF_ELF}, + { "Kyria the Illusionist", 30000, 200, 110, 7, 10, RACE_HUMAN}, + { "Nikki the Necromancer", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "Solostoran", 15000, 200, 110, 7, 8, RACE_SPRITE}, + { "Achshe the Tentacled", 20000, 215, 113, 6, 10, RACE_MIND_FLAYER}, + { "Kaza the Noble", 30000, 200, 110, 7, 10, RACE_HIGH_ELF}, + { "Fazzil the Dark", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "Keldorn the Grand", 15000, 200, 110, 7, 8, RACE_DWARF}, + { "Philanthropus", 20000, 215, 113, 6, 10, RACE_HOBBIT}, + { "Agnar the Enchantress", 30000, 200, 110, 7, 10, RACE_HUMAN}, + { "Buliance the Necromancer", 30000, 175, 110, 5, 11, RACE_BEASTMAN}, + { "Vuirak the High-Mage", 15000, 200, 110, 7, 8, RACE_BEASTMAN}, + { "Madish the Smart", 20000, 215, 113, 6, 10, RACE_BEASTMAN}, + { "Falebrimbor", 30000, 200, 110, 7, 10, RACE_HIGH_ELF}, + { "Felil-Gand the Subtle", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "Thalegord the Shaman", 15000, 200, 110, 7, 8, RACE_BARBARIAN}, + { "Cthoaloth the Mystic", 20000, 215, 113, 6, 10, RACE_MIND_FLAYER}, + { "Ibeli the Illusionist", 30000, 200, 110, 7, 10, RACE_SKELETON}, + { "Heto the Necromancer", 30000, 175, 110, 5, 11, RACE_YEEK}, + { "Lo Pan the Sorcerer", 20000, 200, 110, 7, 8, RACE_HALF_ELF}, + { "Buggerby the Great", 20000, 215, 113, 6, 10, RACE_GNOME}, + { "The Wizard of Yendor", 30000, 200, 110, 7, 10, RACE_HUMAN}, + { "Rjak the Necromancer", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "Skidney the Sorcerer", 15000, 200, 110, 7, 8, RACE_HALF_ELF}, + { "Kyria the Illusionist", 30000, 200, 110, 7, 10, RACE_HUMAN}, + { "Nikki the Necromancer", 30000, 175, 110, 5, 11, RACE_DARK_ELF}, + { "Solostoran", 15000, 200, 110, 7, 8, RACE_SPRITE}, + { "Achshe the Tentacled", 20000, 215, 113, 6, 10, RACE_MIND_FLAYER}, +#endif + }, + { + /* Black Market - 32 unique names */ +#ifdef JP + { "ã¬ãªã¼=ã®ã¬ãº", 20000, 250, 150, 10, 5, RACE_HALF_TROLL}, + { "ã´ããªã³ã®ãã¹ãã¼ã¢", 20000, 250, 150, 10, 5, RACE_HALF_ORC}, + { "ãã§ã¬ã³ã®äººã¯ã¢ã¼ã¯", 30000, 250, 150, 10, 5, RACE_HUMAN}, + { "å ¬æ£ãªã(?)ããã", 30000, 250, 150, 10, 5, RACE_ELF}, + { "æ»äººã´ã¡ããµ", 20000, 250, 150, 10, 5, RACE_ZOMBIE}, + { "è£åãè ã«ã¤ã³", 20000, 250, 150, 10, 5, RACE_VAMPIRE}, + { "ãããã«ã¹", 30000, 250, 150, 10, 5, RACE_BEASTMAN}, + { "ã³ã¼ãã¹ã©ã¤ã", 30000, 250, 150, 10, 5, RACE_SPECTRE}, + { "è¡ã«é£¢ããããªãã·ã¥", 20000, 250, 150, 10, 5, RACE_VAMPIRE}, + { "ã´ã¡ã¤ã«", 20000, 250, 150, 10, 5, RACE_SKELETON}, + { "ä¿¡é ¼ã®ãã¬ã³ãã£ã¹", 30000, 250, 150, 10, 5, RACE_SKELETON}, + { "人é殺ãã®ã°ãªã¨ã©", 30000, 250, 150, 10, 5, RACE_IMP}, + { "ã¨ã³ã¸ã§ã«", 20000, 250, 150, 10, 5, RACE_VAMPIRE}, + { "æ°´è¨ããããã¡ã ", 20000, 250, 150, 10, 5, RACE_ZOMBIE}, + { "ãã¼ã´ã¡ã«", 30000, 250, 150, 10, 5, RACE_VAMPIRE}, + { "æããã¢ãã¹ã¿ã·ã¢", 30000, 250, 150, 10, 5, RACE_SPECTRE}, + { "æ»éè¡å¸«ãã£ãªãã£ã¼", 20000, 250, 150, 10, 5, RACE_DARK_ELF}, + { "ãã¯ãµã¼ã®ãã°ãã·ãªã¹", 20000, 250, 150, 10, 5, RACE_HALF_ORC}, + { "幸éãªãããã½ã¢", 30000, 250, 150, 10, 5, RACE_BEASTMAN}, + { "å æã®ã·ããªã¢", 30000, 250, 150, 10, 5, RACE_HUMAN}, + { "æå師ãªã¢ã½ã¼", 20000, 250, 150, 10, 5, RACE_HOBBIT}, + { "ããããä¸æã®ã¸ã£ããã«", 20000, 250, 150, 10, 5, RACE_GNOME}, + { "æªå ã·ã¼ã", 30000, 250, 150, 10, 5, RACE_GNOME}, + { "大çªã¢ã«ããã", 30000, 250, 150, 10, 5, RACE_DRACONIAN}, + { "貧ä¹ãã£ã¨ã¢ã³ã", 20000, 250, 150, 10, 5, RACE_HUMAN}, + { "å±±è³ã¢ãã¡ã¼ãã¼ã", 20000, 250, 150, 10, 5, RACE_BARBARIAN}, + { "強欲ã©ã¶ã¯ã¹ã«", 30000, 250, 150, 10, 5, RACE_MIND_FLAYER}, + { "ãã¡ã©ã¬ã¦ã£ã³", 30000, 250, 150, 10, 5, RACE_SPRITE}, + { "ããããã´ã©ã¹ã¼ã«", 20000, 250, 150, 10, 5, RACE_NIBELUNG}, + { "ãã³ãµã ãªã¢ã©ãªã¼ã", 20000, 250, 150, 10, 5, RACE_AMBERITE}, + { "è² ãç¬ã»ã©ãããªã", 30000, 250, 150, 10, 5, RACE_HUMAN}, + { "ç足ã®ã¨ã«ã¼ã", 30000, 250, 150, 10, 5, RACE_HALF_OGRE}, +#else + { "Gary Gygaz", 20000, 250, 150, 10, 5, RACE_HALF_TROLL}, + { "Histor the Goblin", 20000, 250, 150, 10, 5, RACE_HALF_ORC}, + { "Quark the Ferengi", 30000, 250, 150, 10, 5, RACE_DWARF}, + { "Topi the Fair(?)", 30000, 250, 150, 10, 5, RACE_HUMAN}, + { "Vhassa the Dead", 20000, 250, 150, 10, 5, RACE_ZOMBIE}, + { "Kyn the Treacherous", 20000, 250, 150, 10, 5, RACE_VAMPIRE}, + { "Bubonicus", 30000, 250, 150, 10, 5, RACE_BEASTMAN}, + { "Corpselight", 30000, 250, 150, 10, 5, RACE_SPECTRE}, + { "Parrish the Bloodthirsty", 20000, 250, 150, 10, 5, RACE_VAMPIRE}, + { "Vile", 20000, 250, 150, 10, 5, RACE_SKELETON}, + { "Prentice the Trusted", 30000, 250, 150, 10, 5, RACE_SKELETON}, + { "Griella Humanslayer", 30000, 250, 150, 10, 5, RACE_IMP}, + { "Angel", 20000, 250, 150, 10, 5, RACE_VAMPIRE}, + { "Flotsam the Bloated", 20000, 250, 150, 10, 5, RACE_ZOMBIE}, + { "Nieval", 30000, 250, 150, 10, 5, RACE_VAMPIRE}, + { "Anastasia the Luminous", 30000, 250, 150, 10, 5, RACE_SPECTRE}, + { "Charity the Necromancer", 20000, 250, 150, 10, 5, RACE_DARK_ELF}, + { "Pugnacious the Pugilist", 20000, 250, 150, 10, 5, RACE_HALF_ORC}, + { "Footsore the Lucky", 30000, 250, 150, 10, 5, RACE_BEASTMAN}, + { "Sidria Lighfingered", 30000, 250, 150, 10, 5, RACE_HUMAN}, + { "Riatho the Juggler", 20000, 250, 150, 10, 5, RACE_HOBBIT}, + { "Janaaka the Shifty", 20000, 250, 150, 10, 5, RACE_GNOME}, + { "Cina the Rogue", 30000, 250, 150, 10, 5, RACE_GNOME}, + { "Arunikki Greatclaw", 30000, 250, 150, 10, 5, RACE_DRACONIAN}, + { "Chaeand the Poor", 20000, 250, 150, 10, 5, RACE_HUMAN}, + { "Afardorf the Brigand", 20000, 250, 150, 10, 5, RACE_BARBARIAN}, + { "Lathaxl the Greedy", 30000, 250, 150, 10, 5, RACE_MIND_FLAYER}, + { "Falarewyn", 30000, 250, 150, 10, 5, RACE_SPRITE}, + { "Vosur the Wrinkled", 20000, 250, 150, 10, 5, RACE_NIBELUNG}, + { "Araord the Handsome", 20000, 250, 150, 10, 5, RACE_AMBERITE}, + { "Theradfrid the Loser", 30000, 250, 150, 10, 5, RACE_HUMAN}, + { "One-Legged Eroolo", 30000, 250, 150, 10, 5, RACE_HALF_OGRE}, +#endif + }, + { + /* Home */ +#ifdef JP + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, + { "æã家", 0, 100, 100, 0, 99, 99}, +#else + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, + { "Your home", 0, 100, 100, 0, 99, 99}, +#endif + + }, + + { + /* Bookstore - 21 unique names */ +#ifdef JP + { "強欲ãã©ã", 10000, 175, 108, 4, 12, RACE_HUMAN}, + { "è³¢è ãªããã¼", 15000, 120, 105, 6, 16, RACE_HIGH_ELF}, + { "ä¸ç«ã®ã¬ã³ãã¼", 25000, 120, 110, 7, 19, RACE_DARK_ELF}, + { "å¿èã®äººã=ã·ã£", 30000, 140, 105, 6, 12, RACE_ELF}, + { "ã©ã³ãã«ãã»ã«ã¼ã¿ã¼", 15000, 175, 108, 4, 12, RACE_HUMAN}, + { "é¼ã®ãµã©ã¤", 15000, 175, 108, 4, 12, RACE_HUMAN}, + { "åéç¼ãããªã«", 20000, 120, 105, 6, 16, RACE_HIGH_ELF}, + { "æ²é»ã®ã´ã§ãªãã¤ã³", 25000, 120, 110, 7, 19, RACE_ZOMBIE}, + { "å¦è ã®ã´ã¡ã³ã·ã©ã¹", 30000, 140, 105, 6, 12, RACE_MIND_FLAYER}, + { "ç©æ¸ããªã»ã¤ã³", 15000, 175, 108, 4, 12, RACE_SKELETON}, + { "æ¬ã®è«ãªã«ã´ã¡ã¼", 20000, 120, 105, 6, 16, RACE_VAMPIRE}, + { "æµ äºå¢ç·", 25000, 120, 110, 7, 19, RACE_ZOMBIE}, + { "ãã¹ãã¹ã¯", 30000, 140, 105, 6, 12, RACE_ZOMBIE}, + { "å¦è ã®ã¢ã¹ã¼ã", 15000, 175, 108, 4, 12, RACE_MIND_FLAYER}, + { "æ»äººã®ããªã©ã³ã", 20000, 120, 105, 6, 16, RACE_ZOMBIE}, + { "éã®ããã¼ã«", 25000, 120, 110, 7, 19, RACE_GOLEM}, +#else + { "Dolaf the Greedy", 10000, 175, 108, 4, 12, RACE_HUMAN}, + { "Odnar the Sage", 15000, 120, 105, 6, 16, RACE_HIGH_ELF}, + { "Gandar the Neutral", 25000, 120, 110, 7, 19, RACE_DARK_ELF}, + { "Ro-sha the Patient", 30000, 140, 105, 6, 12, RACE_ELF}, + { "Randolph Carter", 15000, 175, 108, 4, 12, RACE_HUMAN}, + { "Sarai the Swift", 15000, 175, 108, 4, 12, RACE_HUMAN}, + { "Bodril the Seer", 20000, 120, 105, 6, 16, RACE_HIGH_ELF}, + { "Veloin the Quiet", 25000, 120, 110, 7, 19, RACE_ZOMBIE}, + { "Vanthylas the Learned", 30000, 140, 105, 6, 12, RACE_MIND_FLAYER}, + { "Ossein the Literate", 15000, 175, 108, 4, 12, RACE_SKELETON}, + { "Olvar Bookworm", 20000, 120, 105, 6, 16, RACE_VAMPIRE}, + { "Shallowgrave", 25000, 120, 110, 7, 19, RACE_ZOMBIE}, + { "Death Mask", 30000, 140, 105, 6, 12, RACE_ZOMBIE}, + { "Asuunu the Learned", 15000, 175, 108, 4, 12, RACE_MIND_FLAYER}, + { "Prirand the Dead", 20000, 120, 105, 6, 16, RACE_ZOMBIE}, + { "Ronar the Iron", 25000, 120, 110, 7, 19, RACE_GOLEM}, +#endif +#ifdef JP + { "ã¬ãªã«=ã¬ãã«", 30000, 140, 105, 6, 12, RACE_ELF}, + { "æ¬é£ããã¼ãã°", 15000, 175, 108, 4, 12, RACE_KOBOLD}, + { "ããªã¢ãªãã¼ã¯", 20000, 120, 105, 6, 16, RACE_KLACKON}, + { "éããªããªãªã³", 25000, 120, 110, 7, 19, RACE_DWARF}, + { "çè ã¤ãµã³ã°", 30000, 140, 105, 6, 12, RACE_HIGH_ELF}, + { "強欲ãã©ã", 10000, 175, 108, 4, 12, RACE_HUMAN}, + { "è³¢è ãªããã¼", 15000, 120, 105, 6, 16, RACE_HIGH_ELF}, + { "ä¸ç«ã®ã¬ã³ãã¼", 25000, 120, 110, 7, 19, RACE_DARK_ELF}, + { "å¿èã®äººã=ã·ã£", 30000, 140, 105, 6, 12, RACE_ELF}, + { "ã©ã³ãã«ãã»ã«ã¼ã¿ã¼", 15000, 175, 108, 4, 12, RACE_HUMAN}, + { "é¼ãµã©ã¤", 15000, 175, 108, 4, 12, RACE_HUMAN}, + { "åéç¼ãããªã«", 20000, 120, 105, 6, 16, RACE_HIGH_ELF}, + { "æ²é»ã®ã´ã§ãªãã¤ã³", 25000, 120, 110, 7, 19, RACE_ZOMBIE}, + { "å¦è ã®ã´ã¡ã³ã·ã©ã¹", 30000, 140, 105, 6, 12, RACE_MIND_FLAYER}, + { "ç©æ¸ããªã»ã¤ã³", 15000, 175, 108, 4, 12, RACE_SKELETON}, + { "æ¬ã®è«ãªã«ã´ã¡ã¼", 20000, 120, 105, 6, 16, RACE_VAMPIRE}, +#else + { "Galil-Gamir", 30000, 140, 105, 6, 12, RACE_ELF}, + { "Rorbag Book-Eater", 15000, 175, 108, 4, 12, RACE_KOBOLD}, + { "Kiriarikirk", 20000, 120, 105, 6, 16, RACE_KLACKON}, + { "Rilin the Quiet", 25000, 120, 110, 7, 19, RACE_DWARF}, + { "Isung the Lord", 30000, 140, 105, 6, 12, RACE_HIGH_ELF}, + { "Dolaf the Greedy", 10000, 175, 108, 4, 12, RACE_HUMAN}, + { "Odnar the Sage", 15000, 120, 105, 6, 16, RACE_HIGH_ELF}, + { "Gandar the Neutral", 25000, 120, 110, 7, 19, RACE_DARK_ELF}, + { "Ro-sha the Patient", 30000, 140, 105, 6, 12, RACE_ELF}, + { "Randolph Carter", 15000, 175, 108, 4, 12, RACE_HUMAN}, + { "Sarai the Swift", 15000, 175, 108, 4, 12, RACE_HUMAN}, + { "Bodril the Seer", 20000, 120, 105, 6, 16, RACE_HIGH_ELF}, + { "Veloin the Quiet", 25000, 120, 110, 7, 19, RACE_ZOMBIE}, + { "Vanthylas the Learned", 30000, 140, 105, 6, 12, RACE_MIND_FLAYER}, + { "Ossein the Literate", 15000, 175, 108, 4, 12, RACE_SKELETON}, + { "Olvar Bookworm", 20000, 120, 105, 6, 16, RACE_VAMPIRE}, +#endif + }, + + { + /* Museum */ +#ifdef JP + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, + { "åç©é¤¨", 0, 100, 100, 0, 99, 99}, +#else + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, + { "Museum", 0, 100, 100, 0, 99, 99}, +#endif + + }, + +}; + static int cur_store_num = 0; static int store_top = 0; static int store_bottom = 0; @@ -29,7 +776,7 @@ static s16b inner_town_num = 0; #define MAX_COMMENT_1 6 -static cptr comment_1[MAX_COMMENT_1] = +static concptr comment_1[MAX_COMMENT_1] = { #ifdef JP "ãªã¼ã±ã¼ã ã", @@ -51,7 +798,7 @@ static cptr comment_1[MAX_COMMENT_1] = #ifdef JP /*! ãã©ãã¯ãã¼ã±ãã追å ã¡ãã»ã¼ã¸ï¼æ¿è«¾ï¼ */ -static cptr comment_1_B[MAX_COMMENT_1] = { +static concptr comment_1_B[MAX_COMMENT_1] = { "ã¾ããããã§ãããã", "ä»æ¥ã¯ããã§åå¼ãã¦ããã", "åãã£ããã", @@ -62,7 +809,7 @@ static cptr comment_1_B[MAX_COMMENT_1] = { #endif #define MAX_COMMENT_2A 2 -static cptr comment_2a[MAX_COMMENT_2A] = +static concptr comment_2a[MAX_COMMENT_2A] = { #ifdef JP "ç§ã®å¿èåã試ãã¦ããã®ããï¼ $%s ãæå¾ã ã", @@ -76,7 +823,7 @@ static cptr comment_2a[MAX_COMMENT_2A] = #define MAX_COMMENT_2B 12 -static cptr comment_2b[MAX_COMMENT_2B] = +static concptr comment_2b[MAX_COMMENT_2B] = { #ifdef JP " $%s ãããã¯åºããªãããã¡ã ãã", @@ -110,7 +857,7 @@ static cptr comment_2b[MAX_COMMENT_2B] = #ifdef JP /*! ãã©ãã¯ãã¼ã±ããç¨è¿½å ã¡ãã»ã¼ã¸ï¼å£²ãã¨ãï¼ */ -static cptr comment_2b_B[MAX_COMMENT_2B] = { +static concptr comment_2b_B[MAX_COMMENT_2B] = { "ããã俺æ§ãã人好ãã¨ã¯ãã $%s ãéçã ããå«ãªã帰ããªã", "éããªãã®ããããããï¼ã¾ãã¯å®¶ã«å¸°ã£ã¦ $%s æãã¦ããªã", "ç©ã®ä¾¡å¤ãåããã奴ã ãªããã㯠$%s ãæ®éãªãã ãã", @@ -127,7 +874,7 @@ static cptr comment_2b_B[MAX_COMMENT_2B] = { #endif #define MAX_COMMENT_3A 2 -static cptr comment_3a[MAX_COMMENT_3A] = +static concptr comment_3a[MAX_COMMENT_3A] = { #ifdef JP "ç§ã®å¿èåã試ãã¦ããã®ããï¼ $%s ãæå¾ã ã", @@ -142,7 +889,7 @@ static cptr comment_3a[MAX_COMMENT_3A] = #define MAX_COMMENT_3B 12 -static cptr comment_3b[MAX_COMMENT_3B] = +static concptr comment_3b[MAX_COMMENT_3B] = { #ifdef JP "æ¬é³ãè¨ã㨠$%s ã§ãããã ãï¼", @@ -176,7 +923,7 @@ static cptr comment_3b[MAX_COMMENT_3B] = #ifdef JP /*! ãã©ãã¯ãã¼ã±ããç¨è¿½å ã¡ãã»ã¼ã¸ï¼è²·ãåãï¼ */ -static cptr comment_3b_B[MAX_COMMENT_3B] = { +static concptr comment_3b_B[MAX_COMMENT_3B] = { " $%s ã£ã¦ã¨ããã ãããã®ã©ããããããªãã¬ã©ã¯ã¿ã¯ã", "ãã®ä¿ºã $%s ã£ã¦è¨ã£ã¦ãããã ããããã®éãã«ããæ¹ã身ã®ããã ãã", "俺ã®åªããã«çããã®ãããå æ¸ã«ãã¦ããã $%s ã ã", @@ -193,7 +940,7 @@ static cptr comment_3b_B[MAX_COMMENT_3B] = { #endif #define MAX_COMMENT_4A 4 -static cptr comment_4a[MAX_COMMENT_4A] = +static concptr comment_4a[MAX_COMMENT_4A] = { #ifdef JP "ããããããã ï¼ä½åº¦ãç§ãããããããªãã§ããï¼", @@ -211,7 +958,7 @@ static cptr comment_4a[MAX_COMMENT_4A] = #ifdef JP /*! ãã©ãã¯ãã¼ã±ããç¨è¿½å ã¡ãã»ã¼ã¸ï¼æãã®é ç¹ï¼ */ -static cptr comment_4a_B[MAX_COMMENT_4A] = { +static concptr comment_4a_B[MAX_COMMENT_4A] = { "ãªãããã£ã¦ï¼æ¸©åãªä¿ºæ§ã§ãéçãããã£ã¦ãã¨ãç¥ãï¼", "俺ãããã¾ã§æããã¦...å½ãããã ãã§ããããããã¨æãï¼", "ãµããã¦ãã®ãï¼å·ããããªãç¸æãè¦ã¦ããã«ããï¼", @@ -220,7 +967,7 @@ static cptr comment_4a_B[MAX_COMMENT_4A] = { #endif #define MAX_COMMENT_4B 4 -static cptr comment_4b[MAX_COMMENT_4B] = +static concptr comment_4b[MAX_COMMENT_4B] = { #ifdef JP "åºããåºã¦è¡ãï¼", @@ -238,7 +985,7 @@ static cptr comment_4b[MAX_COMMENT_4B] = #ifdef JP /*! ãã©ãã¯ãã¼ã±ããç¨è¿½å ã¡ãã»ã¼ã¸ï¼è¿½ãåºãï¼ */ -static cptr comment_4b_B[MAX_COMMENT_4B] = { +static concptr comment_4b_B[MAX_COMMENT_4B] = { "äºåº¦ã¨ãã¡ã«æ¥ããããããï¼ï¼", "ã¨ã£ã¨ã¨ãã©ã£ãã¸å¤±ããï¼ï¼", "ä»ããæ¶ã失ããï¼ï¼", @@ -247,7 +994,7 @@ static cptr comment_4b_B[MAX_COMMENT_4B] = { #endif #define MAX_COMMENT_5 8 -static cptr comment_5[MAX_COMMENT_5] = +static concptr comment_5[MAX_COMMENT_5] = { #ifdef JP "èãç´ãã¦ããã", @@ -273,7 +1020,7 @@ static cptr comment_5[MAX_COMMENT_5] = #ifdef JP /*! ãã©ãã¯ãã¼ã±ããç¨è¿½å ã¡ãã»ã¼ã¸ï¼æãï¼ */ -static cptr comment_5_B[MAX_COMMENT_5] = { +static concptr comment_5_B[MAX_COMMENT_5] = { "æéã®ç¡é§ã ãªãããã¯ã", "åä»ãªã客æ§ã ãªï¼", "話ãã¦åããç¸æãããªãããã ã", @@ -286,7 +1033,7 @@ static cptr comment_5_B[MAX_COMMENT_5] = { #endif #define MAX_COMMENT_6 4 -static cptr comment_6[MAX_COMMENT_6] = +static concptr comment_6[MAX_COMMENT_6] = { #ifdef JP "ã©ãããèãééãããããã", @@ -302,6 +1049,563 @@ static cptr comment_6[MAX_COMMENT_6] = }; +/*** Initialize others ***/ + +/*! + * åºèã§è²©å£²ãããªãã¸ã§ã¯ããå®ç¾©ãã / Hack -- Objects sold in the stores -- by tval/sval pair. + */ +byte store_table[MAX_STORES][STORE_CHOICES][2] = +{ + { + /* General Store */ + + { TV_FOOD, SV_FOOD_RATION }, + { TV_FOOD, SV_FOOD_RATION }, + { TV_FOOD, SV_FOOD_RATION }, + { TV_FOOD, SV_FOOD_RATION }, + + { TV_FOOD, SV_FOOD_RATION }, + { TV_FOOD, SV_FOOD_BISCUIT }, + { TV_FOOD, SV_FOOD_JERKY }, + { TV_FOOD, SV_FOOD_JERKY }, + + { TV_FOOD, SV_FOOD_PINT_OF_WINE }, + { TV_FOOD, SV_FOOD_PINT_OF_ALE }, + { TV_LITE, SV_LITE_TORCH }, + { TV_LITE, SV_LITE_TORCH }, + + { TV_LITE, SV_LITE_TORCH }, + { TV_LITE, SV_LITE_TORCH }, + { TV_LITE, SV_LITE_LANTERN }, + { TV_LITE, SV_LITE_LANTERN }, + + { TV_FLASK, 0 }, + { TV_FLASK, 0 }, + { TV_FLASK, 0 }, + { TV_FLASK, 0 }, + + { TV_FLASK, 0 }, + { TV_FLASK, 0 }, + { TV_SPIKE, 0 }, + { TV_SPIKE, 0 }, + + { TV_SHOT, SV_AMMO_NORMAL }, + { TV_ARROW, SV_AMMO_NORMAL }, + { TV_BOLT, SV_AMMO_NORMAL }, + { TV_DIGGING, SV_SHOVEL }, + + { TV_DIGGING, SV_PICK }, + { TV_CLOAK, SV_CLOAK }, + { TV_CLOAK, SV_CLOAK }, + { TV_CLOAK, SV_FUR_CLOAK }, + + { TV_FOOD, SV_FOOD_RATION }, + { TV_FOOD, SV_FOOD_RATION }, + { TV_FOOD, SV_FOOD_RATION }, + { TV_FOOD, SV_FOOD_RATION }, + + { TV_POTION, SV_POTION_WATER }, + { TV_POTION, SV_POTION_WATER }, + { TV_LITE, SV_LITE_LANTERN }, + { TV_LITE, SV_LITE_LANTERN }, + + { TV_FOOD, SV_FOOD_WAYBREAD }, + { TV_FOOD, SV_FOOD_WAYBREAD }, + { TV_CAPTURE, 0 }, + { TV_FIGURINE, 0 }, + + { TV_SHOT, SV_AMMO_NORMAL }, + { TV_ARROW, SV_AMMO_NORMAL }, + { TV_BOLT, SV_AMMO_NORMAL }, + { TV_DIGGING, SV_SHOVEL } + }, + + { + /* Armoury */ + + { TV_BOOTS, SV_PAIR_OF_SOFT_LEATHER_BOOTS }, + { TV_BOOTS, SV_PAIR_OF_SOFT_LEATHER_BOOTS }, + { TV_BOOTS, SV_PAIR_OF_HARD_LEATHER_BOOTS }, + { TV_BOOTS, SV_PAIR_OF_HARD_LEATHER_BOOTS }, + + { TV_HELM, SV_HARD_LEATHER_CAP }, + { TV_HELM, SV_HARD_LEATHER_CAP }, + { TV_HELM, SV_METAL_CAP }, + { TV_HELM, SV_IRON_HELM }, + + { TV_SOFT_ARMOR, SV_ROBE }, + { TV_SOFT_ARMOR, SV_ROBE }, + { TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR }, + { TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR }, + + { TV_SOFT_ARMOR, SV_HARD_LEATHER_ARMOR }, + { TV_SOFT_ARMOR, SV_HARD_LEATHER_ARMOR }, + { TV_SOFT_ARMOR, SV_HARD_STUDDED_LEATHER }, + { TV_SOFT_ARMOR, SV_HARD_STUDDED_LEATHER }, + + { TV_SOFT_ARMOR, SV_RHINO_HIDE_ARMOR }, + { TV_SOFT_ARMOR, SV_LEATHER_SCALE_MAIL }, + { TV_HARD_ARMOR, SV_METAL_SCALE_MAIL }, + { TV_HARD_ARMOR, SV_CHAIN_MAIL }, + + { TV_HARD_ARMOR, SV_DOUBLE_RING_MAIL }, + { TV_HARD_ARMOR, SV_AUGMENTED_CHAIN_MAIL }, + { TV_HARD_ARMOR, SV_BAR_CHAIN_MAIL }, + { TV_HARD_ARMOR, SV_DOUBLE_CHAIN_MAIL }, + + { TV_HARD_ARMOR, SV_METAL_BRIGANDINE_ARMOUR }, + { TV_HARD_ARMOR, SV_SPLINT_MAIL }, + { TV_GLOVES, SV_SET_OF_LEATHER_GLOVES }, + { TV_GLOVES, SV_SET_OF_LEATHER_GLOVES }, + + { TV_GLOVES, SV_SET_OF_GAUNTLETS }, + { TV_SHIELD, SV_SMALL_LEATHER_SHIELD }, + { TV_SHIELD, SV_LARGE_LEATHER_SHIELD }, + { TV_SHIELD, SV_SMALL_METAL_SHIELD }, + + { TV_BOOTS, SV_PAIR_OF_HARD_LEATHER_BOOTS }, + { TV_BOOTS, SV_PAIR_OF_HARD_LEATHER_BOOTS }, + { TV_HELM, SV_HARD_LEATHER_CAP }, + { TV_HELM, SV_HARD_LEATHER_CAP }, + + { TV_SOFT_ARMOR, SV_ROBE }, + { TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR }, + { TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR }, + { TV_SOFT_ARMOR, SV_HARD_LEATHER_ARMOR }, + + { TV_SOFT_ARMOR, SV_LEATHER_JACK }, + { TV_HARD_ARMOR, SV_METAL_SCALE_MAIL }, + { TV_HARD_ARMOR, SV_CHAIN_MAIL }, + { TV_HARD_ARMOR, SV_CHAIN_MAIL }, + + { TV_GLOVES, SV_SET_OF_LEATHER_GLOVES }, + { TV_GLOVES, SV_SET_OF_GAUNTLETS }, + { TV_SHIELD, SV_SMALL_LEATHER_SHIELD }, + { TV_SHIELD, SV_SMALL_LEATHER_SHIELD } + }, + + { + /* Weaponsmith */ + + { TV_SWORD, SV_DAGGER }, + { TV_SWORD, SV_MAIN_GAUCHE }, + { TV_SWORD, SV_RAPIER }, + { TV_SWORD, SV_SMALL_SWORD }, + + { TV_SWORD, SV_SHORT_SWORD }, + { TV_SWORD, SV_SABRE }, + { TV_SWORD, SV_CUTLASS }, + { TV_SWORD, SV_TULWAR }, + + { TV_SWORD, SV_BROAD_SWORD }, + { TV_SWORD, SV_LONG_SWORD }, + { TV_SWORD, SV_SCIMITAR }, + { TV_SWORD, SV_KATANA }, + + { TV_SWORD, SV_BASTARD_SWORD }, + { TV_POLEARM, SV_SPEAR }, + { TV_POLEARM, SV_AWL_PIKE }, + { TV_POLEARM, SV_TRIDENT }, + + { TV_POLEARM, SV_PIKE }, + { TV_POLEARM, SV_BEAKED_AXE }, + { TV_POLEARM, SV_BROAD_AXE }, + { TV_POLEARM, SV_LANCE }, + + { TV_POLEARM, SV_BATTLE_AXE }, + { TV_POLEARM, SV_HATCHET }, + { TV_BOW, SV_SLING }, + { TV_BOW, SV_SHORT_BOW }, + + { TV_BOW, SV_LIGHT_XBOW }, + { TV_SHOT, SV_AMMO_NORMAL }, + { TV_SHOT, SV_AMMO_NORMAL }, + { TV_ARROW, SV_AMMO_NORMAL }, + + { TV_ARROW, SV_AMMO_NORMAL }, + { TV_BOLT, SV_AMMO_NORMAL }, + { TV_BOLT, SV_AMMO_NORMAL }, + { TV_BOW, SV_LIGHT_XBOW }, + + { TV_ARROW, SV_AMMO_NORMAL }, + { TV_BOLT, SV_AMMO_NORMAL }, + { TV_BOW, SV_SHORT_BOW }, + { TV_BOW, SV_LIGHT_XBOW }, + + { TV_SWORD, SV_DAGGER }, + { TV_SWORD, SV_TANTO }, + { TV_SWORD, SV_RAPIER }, + { TV_SWORD, SV_SMALL_SWORD }, + + { TV_SWORD, SV_SHORT_SWORD }, + { TV_SWORD, SV_LONG_SWORD }, + { TV_SWORD, SV_SCIMITAR }, + { TV_SWORD, SV_BROAD_SWORD }, + + { TV_HISSATSU_BOOK, 0 }, + { TV_HISSATSU_BOOK, 0 }, + { TV_HISSATSU_BOOK, 1 }, + { TV_HISSATSU_BOOK, 1 }, + }, + + { + /* Temple */ + + { TV_HAFTED, SV_NUNCHAKU }, + { TV_HAFTED, SV_QUARTERSTAFF }, + { TV_HAFTED, SV_MACE }, + { TV_HAFTED, SV_BO_STAFF }, + + { TV_HAFTED, SV_WAR_HAMMER }, + { TV_HAFTED, SV_WAR_HAMMER }, + { TV_HAFTED, SV_MORNING_STAR }, + { TV_HAFTED, SV_FLAIL }, + + { TV_HAFTED, SV_LEAD_FILLED_MACE }, + { TV_SCROLL, SV_SCROLL_REMOVE_CURSE }, + { TV_SCROLL, SV_SCROLL_BLESSING }, + { TV_SCROLL, SV_SCROLL_HOLY_CHANT }, + + { TV_POTION, SV_POTION_HEROISM }, + { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL }, + { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL }, + { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL }, + + { TV_POTION, SV_POTION_CURE_LIGHT }, + { TV_POTION, SV_POTION_CURE_SERIOUS }, + { TV_POTION, SV_POTION_CURE_SERIOUS }, + { TV_POTION, SV_POTION_CURE_CRITICAL }, + + { TV_POTION, SV_POTION_CURE_CRITICAL }, + { TV_POTION, SV_POTION_RESTORE_EXP }, + { TV_POTION, SV_POTION_RESTORE_EXP }, + { TV_POTION, SV_POTION_RESTORE_EXP }, + + { TV_LIFE_BOOK, 0 }, + { TV_LIFE_BOOK, 0 }, + { TV_LIFE_BOOK, 1 }, + { TV_LIFE_BOOK, 1 }, + + { TV_CRUSADE_BOOK, 0 }, + { TV_CRUSADE_BOOK, 0 }, + { TV_CRUSADE_BOOK, 1 }, + { TV_CRUSADE_BOOK, 1 }, + + { TV_HAFTED, SV_WHIP }, + { TV_HAFTED, SV_MACE }, + { TV_HAFTED, SV_BALL_AND_CHAIN }, + { TV_HAFTED, SV_WAR_HAMMER }, + + { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL }, + { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL }, + { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL }, + { TV_POTION, SV_POTION_CURE_CRITICAL }, + + { TV_POTION, SV_POTION_CURE_CRITICAL }, + { TV_POTION, SV_POTION_RESTORE_EXP }, + + { TV_FIGURINE, 0 }, + { TV_STATUE, SV_ANY }, + + { TV_SCROLL, SV_SCROLL_REMOVE_CURSE }, + { TV_SCROLL, SV_SCROLL_REMOVE_CURSE }, + { TV_SCROLL, SV_SCROLL_STAR_REMOVE_CURSE }, + { TV_SCROLL, SV_SCROLL_STAR_REMOVE_CURSE } + }, + + { + /* Alchemy shop */ + + { TV_SCROLL, SV_SCROLL_ENCHANT_WEAPON_TO_HIT }, + { TV_SCROLL, SV_SCROLL_ENCHANT_WEAPON_TO_DAM }, + { TV_SCROLL, SV_SCROLL_ENCHANT_ARMOR }, + { TV_SCROLL, SV_SCROLL_IDENTIFY }, + + { TV_SCROLL, SV_SCROLL_IDENTIFY }, + { TV_SCROLL, SV_SCROLL_IDENTIFY }, + { TV_SCROLL, SV_SCROLL_IDENTIFY }, + { TV_SCROLL, SV_SCROLL_LIGHT }, + + { TV_SCROLL, SV_SCROLL_PHASE_DOOR }, + { TV_SCROLL, SV_SCROLL_PHASE_DOOR }, + { TV_SCROLL, SV_SCROLL_TELEPORT }, + { TV_SCROLL, SV_SCROLL_MONSTER_CONFUSION }, + + { TV_SCROLL, SV_SCROLL_MAPPING }, + { TV_SCROLL, SV_SCROLL_DETECT_GOLD }, + { TV_SCROLL, SV_SCROLL_DETECT_ITEM }, + { TV_SCROLL, SV_SCROLL_DETECT_TRAP }, + + { TV_SCROLL, SV_SCROLL_DETECT_INVIS }, + { TV_SCROLL, SV_SCROLL_RECHARGING }, + { TV_SCROLL, SV_SCROLL_TELEPORT }, + { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL }, + + { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL }, + { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL }, + { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL }, + { TV_SCROLL, SV_SCROLL_TELEPORT }, + + { TV_SCROLL, SV_SCROLL_TELEPORT }, + { TV_POTION, SV_POTION_RES_STR }, + { TV_POTION, SV_POTION_RES_INT }, + { TV_POTION, SV_POTION_RES_WIS }, + + { TV_POTION, SV_POTION_RES_DEX }, + { TV_POTION, SV_POTION_RES_CON }, + { TV_POTION, SV_POTION_RES_CHR }, + { TV_SCROLL, SV_SCROLL_IDENTIFY }, + + { TV_SCROLL, SV_SCROLL_IDENTIFY }, + { TV_SCROLL, SV_SCROLL_STAR_IDENTIFY }, /* Yep, occasionally! */ + { TV_SCROLL, SV_SCROLL_STAR_IDENTIFY }, + { TV_SCROLL, SV_SCROLL_LIGHT }, + + { TV_POTION, SV_POTION_RES_STR }, + { TV_POTION, SV_POTION_RES_INT }, + { TV_POTION, SV_POTION_RES_WIS }, + { TV_POTION, SV_POTION_RES_DEX }, + + { TV_POTION, SV_POTION_RES_CON }, + { TV_POTION, SV_POTION_RES_CHR }, + { TV_SCROLL, SV_SCROLL_ENCHANT_ARMOR }, + { TV_SCROLL, SV_SCROLL_ENCHANT_ARMOR }, + + { TV_SCROLL, SV_SCROLL_RECHARGING }, + { TV_SCROLL, SV_SCROLL_PHASE_DOOR }, + { TV_SCROLL, SV_SCROLL_ENCHANT_WEAPON_TO_HIT }, + { TV_SCROLL, SV_SCROLL_ENCHANT_WEAPON_TO_DAM }, + + }, + + { + /* Magic-User store */ + + { TV_RING, SV_RING_PROTECTION }, + { TV_RING, SV_RING_LEVITATION_FALL }, + { TV_RING, SV_RING_PROTECTION }, + { TV_RING, SV_RING_RESIST_FIRE }, + + { TV_RING, SV_RING_RESIST_COLD }, + { TV_AMULET, SV_AMULET_CHARISMA }, + { TV_RING, SV_RING_WARNING }, + { TV_AMULET, SV_AMULET_RESIST_ACID }, + + { TV_AMULET, SV_AMULET_SEARCHING }, + { TV_WAND, SV_WAND_SLOW_MONSTER }, + { TV_WAND, SV_WAND_CONFUSE_MONSTER }, + { TV_WAND, SV_WAND_SLEEP_MONSTER }, + + { TV_WAND, SV_WAND_MAGIC_MISSILE }, + { TV_WAND, SV_WAND_STINKING_CLOUD }, + { TV_WAND, SV_WAND_WONDER }, + { TV_WAND, SV_WAND_DISARMING }, + + { TV_STAFF, SV_STAFF_LITE }, + { TV_STAFF, SV_STAFF_MAPPING }, + { TV_STAFF, SV_STAFF_DETECT_TRAP }, + { TV_STAFF, SV_STAFF_DETECT_DOOR }, + + { TV_STAFF, SV_STAFF_DETECT_GOLD }, + { TV_STAFF, SV_STAFF_DETECT_ITEM }, + { TV_STAFF, SV_STAFF_DETECT_INVIS }, + { TV_STAFF, SV_STAFF_DETECT_EVIL }, + + { TV_STAFF, SV_STAFF_TELEPORTATION }, + { TV_STAFF, SV_STAFF_TELEPORTATION }, + { TV_STAFF, SV_STAFF_TELEPORTATION }, + { TV_STAFF, SV_STAFF_TELEPORTATION }, + + { TV_STAFF, SV_STAFF_IDENTIFY }, + { TV_STAFF, SV_STAFF_IDENTIFY }, + { TV_STAFF, SV_STAFF_IDENTIFY }, + + { TV_STAFF, SV_STAFF_IDENTIFY }, + { TV_STAFF, SV_STAFF_REMOVE_CURSE }, + { TV_STAFF, SV_STAFF_CURE_LIGHT }, + { TV_STAFF, SV_STAFF_PROBING }, + + { TV_FIGURINE, 0 }, + + { TV_SORCERY_BOOK, 0 }, + { TV_SORCERY_BOOK, 0 }, + { TV_SORCERY_BOOK, 1 }, + { TV_SORCERY_BOOK, 1 }, + + { TV_ARCANE_BOOK, 0 }, + { TV_ARCANE_BOOK, 0 }, + { TV_ARCANE_BOOK, 1 }, + { TV_ARCANE_BOOK, 1 }, + + { TV_ARCANE_BOOK, 2 }, + { TV_ARCANE_BOOK, 2 }, + { TV_ARCANE_BOOK, 3 }, + { TV_ARCANE_BOOK, 3 }, + + }, + + { + /* Black Market (unused) */ + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 } + }, + + { + /* Home (unused) */ + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 } + }, + + { + /* Bookstore */ + { TV_SORCERY_BOOK, 0 }, + { TV_SORCERY_BOOK, 0 }, + { TV_SORCERY_BOOK, 1 }, + { TV_SORCERY_BOOK, 1 }, + + { TV_NATURE_BOOK, 0 }, + { TV_NATURE_BOOK, 0 }, + { TV_NATURE_BOOK, 1 }, + { TV_NATURE_BOOK, 1 }, + + { TV_CHAOS_BOOK, 0 }, + { TV_CHAOS_BOOK, 0 }, + { TV_CHAOS_BOOK, 1 }, + { TV_CHAOS_BOOK, 1 }, + + { TV_DEATH_BOOK, 0 }, + { TV_DEATH_BOOK, 0 }, + { TV_DEATH_BOOK, 1 }, + { TV_DEATH_BOOK, 1 }, + + { TV_TRUMP_BOOK, 0 }, /* +16 */ + { TV_TRUMP_BOOK, 0 }, + { TV_TRUMP_BOOK, 1 }, + { TV_TRUMP_BOOK, 1 }, + + { TV_ARCANE_BOOK, 0 }, + { TV_ARCANE_BOOK, 1 }, + { TV_ARCANE_BOOK, 2 }, + { TV_ARCANE_BOOK, 3 }, + + { TV_CRAFT_BOOK, 0 }, + { TV_CRAFT_BOOK, 0 }, + { TV_CRAFT_BOOK, 1 }, + { TV_CRAFT_BOOK, 1 }, + + { TV_DAEMON_BOOK, 0 }, + { TV_DAEMON_BOOK, 0 }, + { TV_DAEMON_BOOK, 1 }, + { TV_DAEMON_BOOK, 1 }, + + { TV_MUSIC_BOOK, 0 }, + { TV_MUSIC_BOOK, 0 }, + { TV_MUSIC_BOOK, 1 }, + { TV_MUSIC_BOOK, 1 }, + + { TV_HEX_BOOK, 0 }, + { TV_HEX_BOOK, 0 }, + { TV_HEX_BOOK, 1 }, + { TV_HEX_BOOK, 1 }, + }, + + { + /* Museum (unused) */ + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 } + } +}; + /*! @@ -478,7 +1782,7 @@ static void say_comment_6(void) #define MAX_COMMENT_7A 4 -static cptr comment_7a[MAX_COMMENT_7A] = +static concptr comment_7a[MAX_COMMENT_7A] = { #ifdef JP "ããããããï¼", @@ -496,7 +1800,7 @@ static cptr comment_7a[MAX_COMMENT_7A] = #define MAX_COMMENT_7B 4 -static cptr comment_7b[MAX_COMMENT_7B] = +static concptr comment_7b[MAX_COMMENT_7B] = { #ifdef JP "ãããï¼", @@ -514,7 +1818,7 @@ static cptr comment_7b[MAX_COMMENT_7B] = #define MAX_COMMENT_7C 4 -static cptr comment_7c[MAX_COMMENT_7C] = +static concptr comment_7c[MAX_COMMENT_7C] = { #ifdef JP "ãã°ãããï¼", @@ -532,7 +1836,7 @@ static cptr comment_7c[MAX_COMMENT_7C] = #define MAX_COMMENT_7D 4 -static cptr comment_7d[MAX_COMMENT_7D] = +static concptr comment_7d[MAX_COMMENT_7D] = { #ifdef JP "ãã£ã»ã ï¼", @@ -564,56 +1868,37 @@ static void purchase_analyze(PRICE price, PRICE value, PRICE guess) /* Item was worthless, but we bought it */ if ((value <= 0) && (price > value)) { - /* Comment */ msg_print(comment_7a[randint0(MAX_COMMENT_7A)]); - chg_virtue(V_HONOUR, -1); chg_virtue(V_JUSTICE, -1); - sound(SOUND_STORE1); } /* Item was cheaper than we thought, and we paid more than necessary */ else if ((value < guess) && (price > value)) { - /* Comment */ msg_print(comment_7b[randint0(MAX_COMMENT_7B)]); - chg_virtue(V_JUSTICE, -1); - if (one_in_(4)) - chg_virtue(V_HONOUR, -1); - + if (one_in_(4)) chg_virtue(V_HONOUR, -1); sound(SOUND_STORE2); } /* Item was a good bargain, and we got away with it */ else if ((value > guess) && (value < (4 * guess)) && (price < value)) { - /* Comment */ msg_print(comment_7c[randint0(MAX_COMMENT_7C)]); - - if (one_in_(4)) - chg_virtue(V_HONOUR, -1); - else if (one_in_(4)) - chg_virtue(V_HONOUR, 1); - + if (one_in_(4)) chg_virtue(V_HONOUR, -1); + else if (one_in_(4)) chg_virtue(V_HONOUR, 1); sound(SOUND_STORE3); } /* Item was a great bargain, and we got away with it */ else if ((value > guess) && (price < value)) { - /* Comment */ msg_print(comment_7d[randint0(MAX_COMMENT_7D)]); - - if (one_in_(2)) - chg_virtue(V_HONOUR, -1); - if (one_in_(4)) - chg_virtue(V_HONOUR, 1); - - if (10 * price < value) - chg_virtue(V_SACRIFICE, 1); - + if (one_in_(2)) chg_virtue(V_HONOUR, -1); + if (one_in_(4)) chg_virtue(V_HONOUR, 1); + if (10 * price < value) chg_virtue(V_SACRIFICE, 1); sound(SOUND_STORE4); } } @@ -635,229 +1920,235 @@ static byte rgold_adj[MAX_RACES][MAX_RACES] = /*Hum, HfE, Elf, Hal, Gno, Dwa, HfO, HfT, Dun, HiE, Barbarian, HfOg, HGn, HTn, Cyc, Yek, Klc, Kbd, Nbl, DkE, Drc, Mind Flayer, Imp, Glm, Skl, Zombie, Vampire, Spectre, Fairy, Beastman, Ent, - Angel, Demon, Kutar */ + Angel, Demon, Kutar, Android, Merfolk */ /* Human */ { 100, 105, 105, 110, 113, 115, 120, 125, 100, 105, 100, 124, 120, 110, 125, 115, 120, 120, 120, 120, 115, 120, 115, 105, 125, 125, 125, 125, 105, 120, 105, 95, 140, - 100, 120, 110, 105 }, + 100, 120, 110, 105, 110 }, /* Half-Elf */ { 110, 100, 100, 105, 110, 120, 125, 130, 110, 100, 110, 120, 115, 108, 115, 110, 110, 120, 120, 115, 115, 110, 120, 110, 110, 110, 120, 110, 100, 125, 100, 95, 140, - 110, 115, 110, 110 }, + 110, 115, 110, 110, 110 }, /* Elf */ { 110, 105, 100, 105, 110, 120, 125, 130, 110, 100, 110, 120, 120, 105, 120, 110, 105, 125, 125, 110, 115, 108, 120, 115, 110, 110, 120, 110, 100, 125, 100, 95, 140, - 110, 110, 105, 110 }, + 110, 110, 105, 110, 110 }, /* Halfling */ { 115, 110, 105, 95, 105, 110, 115, 130, 115, 105, 115, 125, 120, 120, 125, 115, 110, 120, 120, 120, 115, 115, 120, 110, 120, 120, 130, 110, 110, 130, 110, 95, 140, - 115, 120, 105, 115 }, + 115, 120, 105, 115, 105 }, /* Gnome */ { 115, 115, 110, 105, 95, 110, 115, 130, 115, 110, 115, 120, 125, 110, 120, 110, 105, 120, 110, 110, 105, 110, 120, 101, 110, 110, 120, 120, 115, 130, 115, 95, 140, - 115, 110, 110, 115 }, + 115, 110, 110, 115, 110 }, /* Dwarf */ { 115, 120, 120, 110, 110, 95, 125, 135, 115, 120, 115, 125, 140, 130, 130, 120, 115, 115, 115, 135, 125, 120, 120, 105, 115, 115, 115, 115, 120, 130, 120, 95, 140, - 115, 110, 115, 115 }, + 115, 110, 115, 115, 120 }, /* Half-Orc */ { 115, 120, 125, 115, 115, 130, 110, 115, 115, 125, 115, 110, 110, 120, 110, 120, 125, 115, 115, 110, 120, 110, 115, 125, 120, 120, 115, 120, 125, 115, 125, 95, 140, - 115, 110, 115, 115 }, + 115, 110, 115, 115, 125 }, /* Half-Troll */ { 110, 115, 115, 110, 110, 130, 110, 110, 110, 115, 110, 110, 115, 120, 110, 120, 120, 110, 110, 110, 115, 110, 110, 115, 112, 112, 115, 112, 120, 110, 120, 95, 140, - 110, 110, 115, 110 }, + 110, 110, 115, 110, 130 }, /* Amberite */ { 100, 105, 105, 110, 113, 115, 120, 125, 100, 105, 100, 120, 120, 105, 120, 115, 105, 115, 120, 110, 105, 105, 120, 105, 120, 120, 125, 120, 105, 135, 105, 95, 140, - 100, 110, 110, 100 }, + 100, 110, 110, 100, 110 }, /* High_Elf */ { 110, 105, 100, 105, 110, 120, 125, 130, 110, 100, 110, 125, 125, 101, 120, 115, 110, 115, 125, 110, 110, 110, 125, 115, 120, 120, 125, 120, 100, 125, 100, 95, 140, - 110, 110, 105, 110 }, + 110, 110, 105, 110, 110 }, /* Human / Barbarian (copied from human) */ { 100, 105, 105, 110, 113, 115, 120, 125, 100, 105, 100, 124, 120, 110, 125, 115, 120, 120, 120, 120, 115, 120, 115, 105, 125, 125, 130, 125, 115, 120, 115, 95, 140, - 100, 120, 110, 100 }, + 100, 120, 110, 100, 110 }, /* Half-Ogre: theoretical, copied from half-troll */ { 110, 115, 115, 110, 110, 130, 110, 110, 110, 115, 110, 110, 115, 120, 110, 120, 120, 110, 110, 110, 115, 110, 110, 115, 112, 112, 115, 112, 120, 110, 120, 95, 140, - 110, 110, 115, 110 }, + 110, 110, 115, 110, 120 }, /* Half-Giant: theoretical, copied from half-troll */ { 110, 115, 115, 110, 110, 130, 110, 110, 110, 115, 110, 110, 115, 120, 110, 120, 120, 110, 110, 110, 115, 110, 110, 115, 112, 112, 115, 112, 130, 120, 130, 95, 140, - 110, 110, 115, 110 }, + 110, 110, 115, 110, 115 }, /* Half-Titan: theoretical, copied from High_Elf */ { 110, 105, 100, 105, 110, 120, 125, 130, 110, 100, 110, 125, 125, 101, 120, 115, 110, 115, 125, 110, 110, 110, 125, 115, 120, 120, 120, 120, 130, 130, 130, 95, 140, - 110, 110, 115, 110 }, + 110, 110, 115, 110, 108 }, /* Cyclops: theoretical, copied from half-troll */ { 110, 115, 115, 110, 110, 130, 110, 110, 110, 115, 110, 110, 115, 120, 110, 120, 120, 110, 110, 110, 115, 110, 110, 115, 112, 112, 115, 112, 130, 130, 130, 95, 140, - 110, 110, 115, 110 }, + 110, 110, 115, 110, 115 }, /* Yeek: theoretical, copied from Half-Orc */ { 115, 120, 125, 115, 115, 130, 110, 115, 115, 125, 115, 110, 110, 120, 110, 120, 125, 115, 115, 110, 120, 110, 115, 125, 120, 120, 120, 120, 130, 130, 130, 95, 140, - 115, 110, 115, 115 }, + 115, 110, 115, 115, 110 }, /* Klackon: theoretical, copied from Gnome */ { 115, 115, 110, 105, 95, 110, 115, 130, 115, 110, 115, 120, 125, 110, 120, 110, 105, 120, 110, 110, 105, 110, 120, 101, 110, 110, 120, 120, 130, 130, 130, 95, 140, - 115, 110, 115, 115 }, + 115, 110, 115, 115, 110 }, /* Kobold: theoretical, copied from Half-Orc */ { 115, 120, 125, 115, 115, 130, 110, 115, 115, 125, 115, 110, 110, 120, 110, 120, 125, 115, 115, 110, 120, 110, 115, 125, 120, 120, 120, 120, 130, 130, 130, 95, 140, - 115, 110, 115, 115 }, + 115, 110, 115, 115, 120 }, /* Nibelung: theoretical, copied from Dwarf */ { 115, 120, 120, 110, 110, 95, 125, 135, 115, 120, 115, 125, 140, 130, 130, 120, 115, 115, 115, 135, 125, 120, 120, 105, 115, 115, 120, 120, 130, 130, 130, 95, 140, - 115, 135, 115, 115 }, + 115, 135, 115, 115, 120 }, /* Dark Elf */ { 110, 110, 110, 115, 120, 130, 115, 115, 120, 110, 115, 115, 115, 116, 115, 120, 120, 115, 115, 101, 110, 110, 110, 110, 112, 122, 110, 110, 110, 115, 110, 120, 120, - 110, 101, 115, 110 }, + 110, 101, 115, 110, 115 }, /* Draconian: theoretical, copied from High_Elf */ { 110, 105, 100, 105, 110, 120, 125, 130, 110, 100, 110, 125, 125, 101, 120, 115, 110, 115, 125, 110, 110, 110, 125, 115, 120, 120, 120, 120, 130, 130, 130, 95, 140, - 110, 110, 115, 110 }, + 110, 110, 115, 110, 115 }, /* Mind Flayer: theoretical, copied from High_Elf */ { 110, 105, 100, 105, 110, 120, 125, 130, 110, 100, 110, 125, 125, 101, 120, 115, 110, 115, 125, 110, 110, 110, 125, 115, 120, 120, 120, 120, 130, 130, 130, 95, 140, - 110, 110, 115, 110 }, + 110, 110, 115, 110, 110 }, /* Imp: theoretical, copied from High_Elf */ { 110, 105, 100, 105, 110, 120, 125, 130, 110, 100, 110, 125, 125, 101, 120, 115, 110, 115, 125, 110, 110, 110, 125, 115, 120, 120, 120, 120, 130, 130, 130, 120, 120, - 110, 110, 115, 110 }, + 110, 110, 115, 110, 120 }, /* Golem: theoretical, copied from High_Elf */ { 110, 105, 100, 105, 110, 120, 125, 130, 110, 100, 110, 125, 125, 101, 120, 115, 110, 115, 125, 110, 110, 110, 125, 115, 120, 120, 120, 120, 130, 130, 130, 95, 140, - 110, 110, 115, 110 }, + 110, 110, 115, 110, 110 }, /* Skeleton: theoretical, copied from half-orc */ { 115, 120, 125, 115, 115, 130, 110, 115, 115, 125, 115, 110, 110, 120, 110, 120, 125, 115, 115, 110, 120, 110, 115, 125, 120, 120, 120, 120, 130, 130, 130, 120, 120, - 115, 110, 125, 115 }, + 115, 110, 125, 115, 110 }, /* Zombie: Theoretical, copied from half-orc */ { 115, 120, 125, 115, 115, 130, 110, 115, 115, 125, 115, 110, 110, 120, 110, 120, 125, 115, 115, 110, 120, 110, 115, 125, 120, 120, 120, 120, 130, 130, 130, 120, 120, - 115, 110, 125, 115 }, + 115, 110, 125, 115, 110 }, /* Vampire: Theoretical, copied from half-orc */ { 115, 120, 125, 115, 115, 130, 110, 115, 115, 125, 115, 110, 110, 120, 110, 120, 125, 115, 115, 110, 120, 110, 115, 125, 120, 120, 120, 120, 130, 130, 130, 120, 120, - 115, 110, 125, 115 }, + 115, 110, 125, 115, 120 }, /* Spectre: Theoretical, copied from half-orc */ { 115, 120, 125, 115, 115, 130, 110, 115, 115, 125, 115, 110, 110, 120, 110, 120, 125, 115, 115, 110, 120, 110, 115, 125, 120, 120, 120, 120, 130, 130, 130, 120, 120, - 115, 110, 125, 115 }, + 115, 110, 125, 115, 110 }, /* Sprite: Theoretical, copied from half-orc */ { 115, 120, 125, 115, 115, 130, 110, 115, 115, 125, 115, 110, 110, 120, 110, 120, 125, 115, 115, 110, 120, 110, 115, 125, 120, 120, 120, 120, 130, 130, 130, 95, 140, - 115, 110, 105, 115 }, + 115, 110, 105, 115, 110 }, /* Beastman: Theoretical, copied from half-orc */ { 115, 120, 125, 115, 115, 130, 110, 115, 115, 125, 115, 110, 110, 120, 110, 120, 125, 115, 115, 110, 120, 110, 115, 125, 120, 120, 120, 120, 130, 130, 130, 95, 140, - 115, 110, 115, 115 }, + 115, 110, 115, 115, 125 }, /* Ent */ { 110, 105, 100, 105, 110, 120, 125, 130, 110, 100, 110, 120, 120, 105, 120, 110, 105, 125, 125, 110, 115, 108, 120, 115, 110, 110, 120, 110, 100, 125, 100, 95, 140, - 110, 110, 105, 110 }, + 110, 110, 105, 110, 110 }, /* Angel */ { 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 160, - 95, 95, 95, 95 }, + 95, 95, 95, 95, 95 }, /* Demon */ { 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 160, 120, - 140, 140, 140, 140 }, + 140, 140, 140, 140, 140 }, /* Dunadan */ { 100, 105, 105, 110, 113, 115, 120, 125, 100, 105, 100, 124, 120, 110, 125, 115, 120, 120, 120, 120, 115, 120, 115, 105, 125, 125, 125, 125, 105, 120, 105, 95, 140, - 100, 120, 110, 100 }, + 100, 120, 110, 100, 110 }, /* Shadow Fairy */ { 110, 110, 110, 115, 120, 130, 115, 115, 120, 110, 115, 115, 115, 116, 115, 120, 120, 115, 115, 101, 110, 110, 110, 110, 112, 122, 110, 110, 110, 115, 110, 120, 120, - 110, 101, 115, 110 }, + 110, 101, 115, 110, 115 }, /* Kutar */ { 110, 110, 105, 105, 110, 115, 115, 115, 110, 105, 110, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 125, 125, 125, 125, 105, 115, 105, 95, 140, - 110, 115, 100, 110 }, + 110, 115, 100, 110, 110 }, /* Android */ { 105, 105, 105, 110, 113, 115, 120, 125, 100, 105, 100, 124, 120, 110, 125, 115, 120, 120, 120, 120, 115, 120, 115, 105, 125, 125, 125, 125, 105, 120, 105, 95, 140, - 100, 120, 110, 100 }, + 100, 120, 110, 100, 110 }, + + /* Merfolk */ + { 110, 110, 110, 105, 110, 120, 125, 130, 110, 110, 110, + 120, 115, 108, 115, 110, 110, 120, 120, 115, 115, 110, + 120, 110, 110, 110, 120, 110, 110, 125, 110, 95, 140, + 110, 115, 110, 110, 100 }, }; @@ -964,7 +2255,7 @@ static void mass_produce(object_type *o_ptr) int size = 1; DISCOUNT_RATE discount = 0; - s32b cost = object_value(o_ptr); + PRICE cost = object_value(o_ptr); /* Analyze the type */ @@ -1233,7 +2524,7 @@ static void store_object_absorb(object_type *o_ptr, object_type *j_ptr) */ static int store_check_num(object_type *o_ptr) { - int i; + int i; object_type *j_ptr; /* The "home" acts like the player */ @@ -1537,7 +2828,7 @@ static bool store_will_buy(object_type *o_ptr) } } - /* XXX XXX XXX Ignore "worthless" items */ + /* Ignore "worthless" items */ if (object_value(o_ptr) <= 0) return (FALSE); /* Assume okay */ @@ -1561,7 +2852,7 @@ bool combine_and_reorder_home(int store_num) bool old_stack_force_notes = stack_force_notes; bool old_stack_force_costs = stack_force_costs; - st_ptr = &town[1].store[store_num]; + st_ptr = &town_info[1].store[store_num]; if (store_num != STORE_HOME) { stack_force_notes = FALSE; @@ -1575,7 +2866,6 @@ bool combine_and_reorder_home(int store_num) /* Combine the items in the home (backwards) */ for (i = st_ptr->stock_num - 1; i > 0; i--) { - /* Get the item */ o_ptr = &st_ptr->stock[i]; /* Skip empty items */ @@ -1586,7 +2876,6 @@ bool combine_and_reorder_home(int store_num) { int max_num; - /* Get the item */ j_ptr = &st_ptr->stock[j]; /* Skip empty items */ @@ -1645,8 +2934,6 @@ bool combine_and_reorder_home(int store_num) /* Take note */ combined = TRUE; - - /* Done */ break; } } @@ -1659,7 +2946,6 @@ bool combine_and_reorder_home(int store_num) /* Re-order the items in the home (forwards) */ for (i = 0; i < st_ptr->stock_num; i++) { - /* Get the item */ o_ptr = &st_ptr->stock[i]; /* Skip empty slots */ @@ -1679,8 +2965,6 @@ bool combine_and_reorder_home(int store_num) /* Take note */ flag = TRUE; - - /* Get local object */ j_ptr = &forge; /* Save a copy of the moving item */ @@ -1723,9 +3007,9 @@ bool combine_and_reorder_home(int store_num) */ static int home_carry(object_type *o_ptr) { - int slot; - s32b value; - int i; + int slot; + PRICE value; + int i; object_type *j_ptr; bool old_stack_force_notes = stack_force_notes; bool old_stack_force_costs = stack_force_costs; @@ -1828,8 +3112,8 @@ static int home_carry(object_type *o_ptr) */ static int store_carry(object_type *o_ptr) { - int i, slot; - s32b value, j_value; + int i, slot; + PRICE value, j_value; object_type *j_ptr; @@ -1936,7 +3220,6 @@ static void store_item_increase(INVENTORY_IDX item, int num) int cnt; object_type *o_ptr; - /* Get the item */ o_ptr = &st_ptr->stock[item]; /* Verify the number */ @@ -1961,7 +3244,6 @@ static void store_item_optimize(INVENTORY_IDX item) int j; object_type *o_ptr; - /* Get the item */ o_ptr = &st_ptr->stock[item]; /* Must exist */ @@ -1996,7 +3278,7 @@ static void store_item_optimize(INVENTORY_IDX item) */ static bool black_market_crap(object_type *o_ptr) { - int i, j; + int i, j; /* Ego items are never crap */ if (object_is_ego(o_ptr)) return (FALSE); @@ -2013,9 +3295,9 @@ static bool black_market_crap(object_type *o_ptr) if (i == STORE_MUSEUM) continue; /* Check every item in the store */ - for (j = 0; j < town[p_ptr->town_num].store[i].stock_num; j++) + for (j = 0; j < town_info[p_ptr->town_num].store[i].stock_num; j++) { - object_type *j_ptr = &town[p_ptr->town_num].store[i].stock[j]; + object_type *j_ptr = &town_info[p_ptr->town_num].store[i].stock[j]; /* Duplicate item "type", assume crappy */ if (o_ptr->k_idx == j_ptr->k_idx) return (TRUE); @@ -2119,8 +3401,6 @@ static void store_create(void) level = rand_range(1, STORE_OBJ_LEVEL); } - - /* Get local object */ q_ptr = &forge; /* Create a new object of the chosen kind */ @@ -2190,8 +3470,8 @@ static void store_create(void) */ static bool noneedtobargain(PRICE minprice) { - s32b good = st_ptr->good_buy; - s32b bad = st_ptr->bad_buy; + PRICE good = st_ptr->good_buy; + PRICE bad = st_ptr->bad_buy; /* Cheap items are "boring" */ if (minprice < 10L) return (TRUE); @@ -2253,17 +3533,15 @@ static void updatebargain(PRICE price, PRICE minprice, int num) */ static void display_entry(int pos) { - int i, cur_col; - object_type *o_ptr; - s32b x; - - char o_name[MAX_NLEN]; - char out_val[160]; + int i, cur_col; + object_type *o_ptr; + s32b x; + GAME_TEXT o_name[MAX_NLEN]; + char out_val[160]; int maxwid = 75; - /* Get the item */ o_ptr = &st_ptr->stock[pos]; /* Get the "offset" */ @@ -2276,8 +3554,8 @@ static void display_entry(int pos) cur_col = 3; if (show_item_graph) { - byte a = object_attr(o_ptr); - char c = object_char(o_ptr); + TERM_COLOR a = object_attr(o_ptr); + SYMBOL_CODE c = object_char(o_ptr); Term_queue_bigchar(cur_col, i + 6, a, c, 0, 0); if (use_bigtile) cur_col++; @@ -2293,18 +3571,17 @@ static void display_entry(int pos) /* Leave room for weights, if necessary -DRS- */ if (show_weights) maxwid -= 10; - /* Describe the object */ object_desc(o_name, o_ptr, 0); o_name[maxwid] = '\0'; c_put_str(tval_to_attr[o_ptr->tval], o_name, i+6, cur_col); /* Show weights */ - if (show_weights) + if(show_weights) { /* Only show the weight of an individual item */ - int wgt = o_ptr->weight; + WEIGHT wgt = o_ptr->weight; #ifdef JP - sprintf(out_val, "%3d.%1d kg", lbtokg1(wgt) , lbtokg2(wgt) ); + sprintf(out_val, "%3d.%1d kg", lbtokg1(wgt) , lbtokg2(wgt)); put_str(out_val, i+6, 67); #else (void)sprintf(out_val, "%3d.%d lb", wgt / 10, wgt % 10); @@ -2351,11 +3628,10 @@ static void display_entry(int pos) /* Actually draw the price (not fixed) */ #ifdef JP -(void)sprintf(out_val, "%9ldåº", (long)x); + (void)sprintf(out_val, "%9ldåº", (long)x); #else (void)sprintf(out_val, "%9ld F", (long)x); #endif - put_str(out_val, i+6, 68); } @@ -2415,7 +3691,7 @@ static void display_inventory(void) #ifdef JP put_str(" ", 5, 20); #else - put_str(" ", 5, 20); + put_str(" ", 5, 22); #endif @@ -2423,21 +3699,11 @@ static void display_inventory(void) if (st_ptr->stock_num > store_bottom) { /* Show "more" reminder (after the last item) */ -#ifdef JP - prt("-ç¶ã-", k + 6, 3); -#else - prt("-more-", k + 6, 3); -#endif - + prt(_("-ç¶ã-", "-more-"), k + 6, 3); /* Indicate the "current page" */ /* Trailing spaces are to display (Page xx) and (Page x) */ -#ifdef JP - put_str(format("(%dãã¼ã¸) ", store_top/store_bottom + 1), 5, 20); -#else - put_str(format("(Page %d) ", store_top/store_bottom + 1), 5, 20); -#endif - + put_str(format(_("(%dãã¼ã¸) ", "(Page %d) "), store_top/store_bottom + 1), 5, _(20, 22)); } if (cur_store_num == STORE_HOME || cur_store_num == STORE_MUSEUM) @@ -2464,13 +3730,7 @@ static void store_prt_gold(void) { char out_val[64]; -#ifdef JP - prt("ææã¡ã®ãé: ", 19 + xtra_stock, 53); -#else - prt("Gold Remaining: ", 19 + xtra_stock, 53); -#endif - - + prt(_("ææã¡ã®ãé: ", "Gold Remaining: "), 19 + xtra_stock, 53); sprintf(out_val, "%9ld", (long)p_ptr->au); prt(out_val, 19 + xtra_stock, 68); } @@ -2485,38 +3745,21 @@ static void display_store(void) { char buf[80]; - - /* Clear screen */ Term_clear(); /* The "Home" is special */ if (cur_store_num == STORE_HOME) { /* Put the owner name */ -#ifdef JP - put_str("æã家", 3, 31); -#else - put_str("Your Home", 3, 30); -#endif - + put_str(_("æã家", "Your Home"), 3, 31); /* Label the item descriptions */ -#ifdef JP - put_str("ã¢ã¤ãã ã®ä¸è¦§", 5, 4); -#else - put_str("Item Description", 5, 3); -#endif - + put_str(_("ã¢ã¤ãã ã®ä¸è¦§", "Item Description"), 5, 4); /* If showing weights, show label */ if (show_weights) { -#ifdef JP - put_str("éã", 5, 72); -#else - put_str("Weight", 5, 70); -#endif - + put_str(_(" éã", "Weight"), 5, 70); } } @@ -2524,39 +3767,24 @@ static void display_store(void) else if (cur_store_num == STORE_MUSEUM) { /* Put the owner name */ -#ifdef JP - put_str("åç©é¤¨", 3, 31); -#else - put_str("Museum", 3, 30); -#endif - + put_str(_("åç©é¤¨", "Museum"), 3, 31); /* Label the item descriptions */ -#ifdef JP - put_str("ã¢ã¤ãã ã®ä¸è¦§", 5, 4); -#else - put_str("Item Description", 5, 3); -#endif - + put_str(_("ã¢ã¤ãã ã®ä¸è¦§", "Item Description"), 5, 4); /* If showing weights, show label */ if (show_weights) { -#ifdef JP - put_str("éã", 5, 72); -#else - put_str("Weight", 5, 70); -#endif - + put_str(_(" éã", "Weight"), 5, 70); } } /* Normal stores */ else { - cptr store_name = (f_name + f_info[cur_store_feat].name); - cptr owner_name = (ot_ptr->owner_name); - cptr race_name = race_info[ot_ptr->owner_race].title; + concptr store_name = (f_name + f_info[cur_store_feat].name); + concptr owner_name = (ot_ptr->owner_name); + concptr race_name = race_info[ot_ptr->owner_race].title; /* Put the owner name and race */ sprintf(buf, "%s (%s)", owner_name, race_name); @@ -2567,31 +3795,17 @@ static void display_store(void) prt(buf, 3, 50); /* Label the item descriptions */ -#ifdef JP - put_str("ååã®ä¸è¦§", 5, 7); -#else - put_str("Item Description", 5, 3); -#endif + put_str(_("ååã®ä¸è¦§", "Item Description"), 5, 5); /* If showing weights, show label */ if (show_weights) { -#ifdef JP - put_str("éã", 5, 62); -#else - put_str("Weight", 5, 60); -#endif - + put_str(_(" éã", "Weight"), 5, 60); } /* Label the asking price (in stores) */ -#ifdef JP - put_str("ä¾¡æ ¼", 5, 73); -#else - put_str("Price", 5, 72); -#endif - + put_str(_(" ä¾¡æ ¼", "Price"), 5, 72); } /* Display the current gold */ @@ -2612,13 +3826,11 @@ static void display_store(void) * @param j é¸æç¯å²ã®æå¤§å¤ * @return å®éã«é¸æãããTRUEããã£ã³ã»ã«ãããFALSE */ -static int get_stock(COMMAND_CODE *com_val, cptr pmt, int i, int j) +static int get_stock(COMMAND_CODE *com_val, concptr pmt, int i, int j) { - char command; - char out_val[160]; - char lo, hi; - -#ifdef ALLOW_REPEAT /* TNB */ + char command; + char out_val[160]; + char lo, hi; /* Get the item index */ if (repeat_pull(com_val)) @@ -2630,13 +3842,8 @@ static int get_stock(COMMAND_CODE *com_val, cptr pmt, int i, int j) return (TRUE); } } - -#endif /* ALLOW_REPEAT -- TNB */ - - /* Paranoia XXX XXX XXX */ msg_print(NULL); - /* Assume failure */ *com_val = (-1); @@ -2676,22 +3883,16 @@ static int get_stock(COMMAND_CODE *com_val, cptr pmt, int i, int j) break; } - /* Oops */ bell(); } /* Clear the prompt */ prt("", 0, 0); - /* Cancel */ if (command == ESCAPE) return (FALSE); -#ifdef ALLOW_REPEAT /* TNB */ - repeat_push(*com_val); -#endif /* ALLOW_REPEAT -- TNB */ - /* Success */ return (TRUE); } @@ -2719,7 +3920,7 @@ static int increase_insults(void) st_ptr->bad_buy = 0; /* Open tomorrow */ - st_ptr->store_open = turn + TURNS_PER_TICK*TOWN_DAWN/8 + randint1(TURNS_PER_TICK*TOWN_DAWN/8); + st_ptr->store_open = current_world_ptr->game_turn + TURNS_PER_TICK*TOWN_DAWN/8 + randint1(TURNS_PER_TICK*TOWN_DAWN/8); /* Closed */ return (TRUE); @@ -2780,51 +3981,32 @@ static s32b last_inc = 0L; * @param final æçµç¢ºå®ä¾¡æ ¼ãªãã°TRUE * @return ãã¬ã¤ã¤ã¼ãç· ãåºãå ´åTRUEãè¿ã */ -static int get_haggle(cptr pmt, s32b *poffer, PRICE price, int final) +static int get_haggle(concptr pmt, s32b *poffer, PRICE price, int final) { - s32b i; - - cptr p; - - char buf[128]; - char out_val[160]; - + s32b i; + concptr p; + GAME_TEXT buf[128]; + GAME_TEXT out_val[160]; /* Clear old increment if necessary */ if (!allow_inc) last_inc = 0L; - /* Final offer */ if (final) { -#ifdef JP - sprintf(buf, "%s [æ¿è«¾] ", pmt); -#else - sprintf(buf, "%s [accept] ", pmt); -#endif - + sprintf(buf, _("%s [æ¿è«¾] ", "%s [accept] "), pmt); } /* Old (negative) increment, and not final */ else if (last_inc < 0) { -#ifdef JP - sprintf(buf, "%s [-$%ld] ", pmt, (long)(ABS(last_inc))); -#else - sprintf(buf, "%s [-%ld] ", pmt, (long)(ABS(last_inc))); -#endif - + sprintf(buf, _("%s [-$%ld] ", "%s [-%ld] "), pmt, (long)(ABS(last_inc))); } /* Old (positive) increment, and not final */ else if (last_inc > 0) { -#ifdef JP - sprintf(buf, "%s [+$%ld] ", pmt, (long)(ABS(last_inc))); -#else - sprintf(buf, "%s [+%ld] ", pmt, (long)(ABS(last_inc))); -#endif - + sprintf(buf, _("%s [+$%ld] ", "%s [+%ld] "), pmt, (long)(ABS(last_inc))); } /* Normal haggle */ @@ -2832,12 +4014,8 @@ static int get_haggle(cptr pmt, s32b *poffer, PRICE price, int final) { sprintf(buf, "%s ", pmt); } - - - /* Paranoia XXX XXX XXX */ msg_print(NULL); - /* Ask until done */ while (TRUE) { @@ -2913,12 +4091,7 @@ static int get_haggle(cptr pmt, s32b *poffer, PRICE price, int final) } /* Warning */ -#ifdef JP - msg_print("å¤ãããããã§ãã"); -#else - msg_print("Invalid response."); -#endif - + msg_print(_("å¤ãããããã§ãã", "Invalid response.")); msg_print(NULL); } @@ -2939,7 +4112,7 @@ static int get_haggle(cptr pmt, s32b *poffer, PRICE price, int final) * @return ãã¬ã¤ã¤ã¼ã®ä¾¡æ ¼ã«å¯¾ãã¦ä¸æãªãã°TRUEãè¿ã / * Return TRUE if offer is NOT okay */ -static bool receive_offer(cptr pmt, s32b *poffer, +static bool receive_offer(concptr pmt, s32b *poffer, s32b last_offer, int factor, PRICE price, int final) { @@ -2980,21 +4153,11 @@ static bool purchase_haggle(object_type *o_ptr, s32b *price) s32b min_per, max_per; int flag, loop_flag, noneed; int annoyed = 0, final = FALSE; - bool cancel = FALSE; - -#ifdef JP - cptr pmt = "æç¤ºä¾¡æ ¼"; -#else - cptr pmt = "Asking"; -#endif - - char out_val[160]; - - *price = 0; + concptr pmt = _("æç¤ºä¾¡æ ¼", "Asking"); /* Extract the starting offer and the final offer */ cur_ask = price_item(o_ptr, ot_ptr->max_inflate, FALSE); @@ -3010,12 +4173,7 @@ static bool purchase_haggle(object_type *o_ptr, s32b *price) if (noneed) { /* Message summary */ -#ifdef JP - msg_print("çµå±ãã®éé¡ã«ã¾ã¨ã¾ã£ãã"); -#else - msg_print("You eventually agree upon the price."); -#endif - + msg_print(_("çµå±ãã®éé¡ã«ã¾ã¨ã¾ã£ãã", "You eventually agree upon the price.")); msg_print(NULL); } @@ -3023,12 +4181,7 @@ static bool purchase_haggle(object_type *o_ptr, s32b *price) else { /* Message summary */ -#ifdef JP - msg_print("ãããªãã¨ãã®éé¡ã«ã¾ã¨ã¾ã£ãã"); -#else - msg_print("You quickly agree upon the price."); -#endif - + msg_print(_("ãããªãã¨ãã®éé¡ã«ã¾ã¨ã¾ã£ãã", "You quickly agree upon the price.")); msg_print(NULL); /* Apply Sales Tax */ @@ -3039,12 +4192,7 @@ static bool purchase_haggle(object_type *o_ptr, s32b *price) cur_ask = final_ask; /* Go to final offer */ -#ifdef JP - pmt = "æçµæç¤ºä¾¡æ ¼"; -#else - pmt = "Final Offer"; -#endif - + pmt = _("æçµæç¤ºä¾¡æ ¼", "Final Offer"); final = TRUE; } @@ -3078,14 +4226,7 @@ static bool purchase_haggle(object_type *o_ptr, s32b *price) { (void)sprintf(out_val, "%s : %ld", pmt, (long)cur_ask); put_str(out_val, 1, 0); -#ifdef JP - cancel = receive_offer("æ示ããéé¡? ", -#else - cancel = receive_offer("What do you offer? ", -#endif - - &offer, last_offer, 1, cur_ask, final); - + cancel = receive_offer(_("æ示ããéé¡? ", "What do you offer? "), &offer, last_offer, 1, cur_ask, final); if (cancel) { flag = TRUE; @@ -3133,12 +4274,7 @@ static bool purchase_haggle(object_type *o_ptr, s32b *price) { final = TRUE; cur_ask = final_ask; -#ifdef JP - pmt = "æçµæç¤ºä¾¡æ ¼"; -#else - pmt = "Final Offer"; -#endif - + pmt = _("æçµæç¤ºä¾¡æ ¼", "What do you offer? "); annoyed++; if (annoyed > 3) { @@ -3158,23 +4294,15 @@ static bool purchase_haggle(object_type *o_ptr, s32b *price) last_offer = offer; allow_inc = TRUE; prt("", 1, 0); -#ifdef JP -(void)sprintf(out_val, "ååã®æ示éé¡: $%ld", -#else - (void)sprintf(out_val, "Your last offer: %ld", -#endif - - (long)last_offer); + (void)sprintf(out_val, _("ååã®æ示éé¡: $%ld", "Your last offer: %ld"), (long)last_offer); put_str(out_val, 1, 39); say_comment_2(cur_ask, annoyed); } } } - /* Cancel */ if (cancel) return (TRUE); - /* Update bargaining info */ updatebargain(*price, final_ask, o_ptr->number); /* Do not cancel */ @@ -3199,18 +4327,12 @@ static bool sell_haggle(object_type *o_ptr, s32b *price) int flag, loop_flag, noneed; int annoyed = 0, final = FALSE; bool cancel = FALSE; -#ifdef JP - cptr pmt = "æ示éé¡"; -#else - cptr pmt = "Offer"; -#endif + concptr pmt = _("æ示éé¡", "Offer"); char out_val[160]; - *price = 0; - /* 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); @@ -3233,12 +4355,7 @@ static bool sell_haggle(object_type *o_ptr, s32b *price) /* No reason to haggle */ if (final_ask >= purse) { -#ifdef JP - msg_print("å³åº§ã«ãã®éé¡ã«ã¾ã¨ã¾ã£ãã"); -#else - msg_print("You instantly agree upon the price."); -#endif - + msg_print(_("å³åº§ã«ãã®éé¡ã«ã¾ã¨ã¾ã£ãã", "You instantly agree upon the price.")); msg_print(NULL); /* Offer full purse */ @@ -3248,12 +4365,7 @@ static bool sell_haggle(object_type *o_ptr, s32b *price) /* No need to haggle */ else if (noneed) { -#ifdef JP - msg_print("çµå±ãã®éé¡ã«ã¾ã¨ã¾ã£ãã"); -#else - msg_print("You eventually agree upon the price."); -#endif - + msg_print(_("çµå±ãã®éé¡ã«ã¾ã¨ã¾ã£ãã", "You eventually agree upon the price.")); msg_print(NULL); } @@ -3261,12 +4373,7 @@ static bool sell_haggle(object_type *o_ptr, s32b *price) else { /* Message summary */ -#ifdef JP - msg_print("ãããªãã¨ãã®éé¡ã«ã¾ã¨ã¾ã£ãã"); -#else - msg_print("You quickly agree upon the price."); -#endif - + msg_print(_("ãããªãã¨ãã®éé¡ã«ã¾ã¨ã¾ã£ãã", "You quickly agree upon the price.")); msg_print(NULL); } @@ -3275,12 +4382,7 @@ static bool sell_haggle(object_type *o_ptr, s32b *price) /* Final offer */ final = TRUE; -#ifdef JP - pmt = "æçµæ示éé¡"; -#else - pmt = "Final Offer"; -#endif - + pmt = _("æçµæ示éé¡", "Final Offer"); } /* Haggle for the whole pile */ @@ -3288,7 +4390,7 @@ static bool sell_haggle(object_type *o_ptr, s32b *price) final_ask *= o_ptr->number; - /* XXX XXX XXX Display commands */ + /* Display commands */ /* Haggling parameters */ min_per = ot_ptr->haggle_per; @@ -3313,12 +4415,7 @@ static bool sell_haggle(object_type *o_ptr, s32b *price) (void)sprintf(out_val, "%s : %ld", pmt, (long)cur_ask); put_str(out_val, 1, 0); -#ifdef JP - cancel = receive_offer("æ示ããä¾¡æ ¼? ", -#else - cancel = receive_offer("What price do you ask? ", -#endif - + cancel = receive_offer(_("æ示ããä¾¡æ ¼? ", "What price do you ask? "), &offer, last_offer, -1, cur_ask, final); if (cancel) @@ -3371,11 +4468,7 @@ static bool sell_haggle(object_type *o_ptr, s32b *price) { cur_ask = final_ask; final = TRUE; -#ifdef JP - pmt = "æçµæ示éé¡"; -#else - pmt = "Final Offer"; -#endif + pmt = _("æçµæ示éé¡", "Final Offer"); annoyed++; if (annoyed > 3) @@ -3400,22 +4493,15 @@ static bool sell_haggle(object_type *o_ptr, s32b *price) allow_inc = TRUE; prt("", 1, 0); (void)sprintf(out_val, -#ifdef JP - "ååã®æç¤ºä¾¡æ ¼ $%ld", (long)last_offer); -#else - "Your last bid %ld", (long)last_offer); -#endif - + _("ååã®æç¤ºä¾¡æ ¼ $%ld", "Your last bid %ld"), (long)last_offer); put_str(out_val, 1, 39); say_comment_3(cur_ask, annoyed); } } } - /* Cancel */ if (cancel) return (TRUE); - /* Update bargaining info */ updatebargain(*price, final_ask, o_ptr->number); /* Do not cancel */ @@ -3442,17 +4528,13 @@ static void store_purchase(void) object_type *o_ptr; - char o_name[MAX_NLEN]; + GAME_TEXT o_name[MAX_NLEN]; char out_val[160]; if (cur_store_num == STORE_MUSEUM) { -#ifdef JP - msg_print("åç©é¤¨ããåãåºããã¨ã¯ã§ãã¾ããã"); -#else - msg_print("Museum."); -#endif + msg_print(_("åç©é¤¨ããåãåºããã¨ã¯ã§ãã¾ããã", "Museum.")); return; } @@ -3460,23 +4542,12 @@ static void store_purchase(void) if (st_ptr->stock_num <= 0) { if (cur_store_num == STORE_HOME) -#ifdef JP - msg_print("æã家ã«ã¯ä½ãç½®ãã¦ããã¾ããã"); -#else - msg_print("Your home is empty."); -#endif - + msg_print(_("æã家ã«ã¯ä½ãç½®ãã¦ããã¾ããã", "Your home is empty.")); else -#ifdef JP - msg_print("ç¾å¨ååã®å¨åº«ãåããã¦ãã¾ãã"); -#else - msg_print("I am currently out of stock."); -#endif - + msg_print(_("ç¾å¨ååã®å¨åº«ãåããã¦ãã¾ãã", "I am currently out of stock.")); return; } - /* Find the number of objects on this and following pages */ i = (st_ptr->stock_num - store_top); @@ -3520,8 +4591,6 @@ static void store_purchase(void) /* Assume the player wants just one of them */ amt = 1; - - /* Get local object */ j_ptr = &forge; /* Get a copy of the object */ @@ -3539,12 +4608,7 @@ static void store_purchase(void) /* Hack -- require room in pack */ if (!inven_carry_okay(j_ptr)) { -#ifdef JP -msg_print("ãããªã«ã¢ã¤ãã ãæã¦ãªãã"); -#else - msg_print("You cannot carry that many different items."); -#endif - + msg_print(_("ãããªã«ã¢ã¤ãã ãæã¦ãªãã", "You cannot carry that many different items.")); return; } @@ -3558,22 +4622,11 @@ msg_print("ãããªã«ã¢ã¤ãã ãæã¦ãªãã"); if ((cur_store_num != STORE_HOME) && (o_ptr->ident & IDENT_FIXED)) { -#ifdef JP -msg_format("ä¸ã¤ã«ã¤ã $%ldã§ãã", (long)(best)); -#else - msg_format("That costs %ld gold per item.", (long)(best)); -#endif - + msg_format(_("ä¸ã¤ã«ã¤ã $%ldã§ãã", "That costs %ld gold per item."), (long)(best)); } - - /* Get a quantity */ amt = get_quantity(NULL, o_ptr->number); - - /* Allow user abort */ if (amt <= 0) return; } - - /* Get local object */ j_ptr = &forge; /* Get desired object */ @@ -3591,12 +4644,7 @@ msg_format("ä¸ã¤ã«ã¤ã $%ldã§ãã", (long)(best)); /* Hack -- require room in pack */ if (!inven_carry_okay(j_ptr)) { -#ifdef JP - msg_print("ã¶ãã¯ã«ãã®ã¢ã¤ãã ãå ¥ããééããªãã"); -#else - msg_print("You cannot carry that many items."); -#endif - + msg_print(_("ã¶ãã¯ã«ãã®ã¢ã¤ãã ãå ¥ããééããªãã", "You cannot carry that many items.")); return; } @@ -3618,20 +4666,14 @@ msg_format("ä¸ã¤ã«ã¤ã $%ldã§ãã", (long)(best)); { /* Describe the object (fully) */ object_desc(o_name, j_ptr, 0); - -#ifdef JP - msg_format("%s(%c)ãè³¼å ¥ããã", o_name, I2A(item)); -#else - msg_format("Buying %s (%c).", o_name, I2A(item)); -#endif - + msg_format(_("%s(%c)ãè³¼å ¥ããã", "Buying %s (%c)."), o_name, I2A(item)); msg_print(NULL); /* Haggle for a final price */ choice = purchase_haggle(j_ptr, &price); /* Hack -- Got kicked out */ - if (st_ptr->store_open >= turn) return; + if (st_ptr->store_open >= current_world_ptr->game_turn) return; } /* Player wants it */ @@ -3672,14 +4714,10 @@ msg_format("ä¸ã¤ã«ã¤ã $%ldã§ãã", (long)(best)); /* Describe the transaction */ object_desc(o_name, j_ptr, 0); -#ifdef JP -msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); -#else - msg_format("You bought %s for %ld gold.", o_name, (long)price); -#endif + msg_format(_("%sã $%ldã§è³¼å ¥ãã¾ããã", "You bought %s for %ld gold."), o_name, (long)price); strcpy(record_o_name, o_name); - record_turn = turn; + record_turn = current_world_ptr->game_turn; if (record_buy) do_cmd_write_nikki(NIKKI_BUY, 0, o_name); object_desc(o_name, o_ptr, OD_NAME_ONLY); @@ -3697,13 +4735,7 @@ msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); /* Describe the final result */ object_desc(o_name, &inventory[item_new], 0); - -#ifdef JP - msg_format("%s(%c)ãæã«å ¥ããã", o_name, index_to_label(item_new)); -#else - msg_format("You have %s (%c).", - o_name, index_to_label(item_new)); -#endif + msg_format(_("%s(%c)ãæã«å ¥ããã", "You have %s (%c)."), o_name, index_to_label(item_new)); /* Auto-inscription */ autopick_alter_item(item_new, FALSE); @@ -3713,8 +4745,6 @@ msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); { o_ptr->pval -= j_ptr->pval; } - - /* Handle stuff */ handle_stuff(); /* Note how many slots the store used to have */ @@ -3731,12 +4761,7 @@ msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); if (one_in_(STORE_SHUFFLE)) { char buf[80]; -#ifdef JP - msg_print("åºä¸»ã¯å¼éããã"); -#else - msg_print("The shopkeeper retires."); -#endif - + msg_print(_("åºä¸»ã¯å¼éããã", "The shopkeeper retires.")); /* Shuffle the store */ store_shuffle(cur_store_num); @@ -3753,12 +4778,7 @@ msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); /* Maintain */ else { -#ifdef JP - msg_print("åºä¸»ã¯æ°ããªå¨åº«ãåãåºããã"); -#else - msg_print("The shopkeeper brings out some new stock."); -#endif - + msg_print(_("åºä¸»ã¯æ°ããªå¨åº«ãåãåºããã", "The shopkeeper brings out some new stock.")); } /* New inventory */ @@ -3770,8 +4790,6 @@ msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); /* Start over */ store_top = 0; - - /* Redraw everything */ display_inventory(); } @@ -3780,8 +4798,6 @@ msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); { /* Pick the correct screen */ if (store_top >= st_ptr->stock_num) store_top -= store_bottom; - - /* Redraw everything */ display_inventory(); } @@ -3797,12 +4813,7 @@ msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); else { /* Simple message (no insult) */ -#ifdef JP - msg_print("ãéã足ãã¾ããã"); -#else - msg_print("You do not have enough gold."); -#endif - + msg_print(_("ãéã足ãã¾ããã", "You do not have enough gold.")); } } } @@ -3821,14 +4832,7 @@ msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); /* Describe just the result */ object_desc(o_name, &inventory[item_new], 0); -#ifdef JP - msg_format("%s(%c)ãåã£ãã", -#else - msg_format("You have %s (%c).", -#endif - o_name, index_to_label(item_new)); - - /* Handle stuff */ + msg_format(_("%s(%c)ãåã£ãã", "You have %s (%c)."), o_name, index_to_label(item_new)); handle_stuff(); /* Take note if we take the last one */ @@ -3843,7 +4847,6 @@ msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); /* Hack -- Item is still here */ if (i == st_ptr->stock_num) { - /* Redraw everything */ if (combined_or_reordered) display_inventory(); /* Redraw the item */ @@ -3858,8 +4861,6 @@ msg_format("%sã $%ldã§è³¼å ¥ãã¾ããã", o_name, (long)price); /* Nothing left on that screen */ else if (store_top >= st_ptr->stock_num) store_top -= store_bottom; - - /* Redraw everything */ display_inventory(); chg_virtue(V_SACRIFICE, 1); @@ -3887,113 +4888,58 @@ static void store_sell(void) object_type forge; object_type *q_ptr; - object_type *o_ptr; - cptr q, s; + concptr q, s; - char o_name[MAX_NLEN]; + GAME_TEXT o_name[MAX_NLEN]; /* Prepare a prompt */ if (cur_store_num == STORE_HOME) -#ifdef JP - q = "ã©ã®ã¢ã¤ãã ãç½®ãã¾ãã? "; -#else - q = "Drop which item? "; -#endif + q = _("ã©ã®ã¢ã¤ãã ãç½®ãã¾ãã? ", "Drop which item? "); else if (cur_store_num == STORE_MUSEUM) -#ifdef JP - q = "ã©ã®ã¢ã¤ãã ãå¯è´ãã¾ãã? "; -#else - q = "Give which item? "; -#endif + q = _("ã©ã®ã¢ã¤ãã ãå¯è´ãã¾ãã? ", "Give which item? "); else -#ifdef JP - q = "ã©ã®ã¢ã¤ãã ã売ãã¾ãã? "; -#else - q = "Sell which item? "; -#endif - + q = _("ã©ã®ã¢ã¤ãã ã売ãã¾ãã? ", "Sell which item? "); - item_tester_no_ryoute = TRUE; /* Only allow items the store will buy */ item_tester_hook = store_will_buy; - /* Get an item */ /* æã家ã§ããããªã¡ãã»ã¼ã¸ãåºããªãªã¸ãã«ã®ãã°ãä¿®æ£ */ if (cur_store_num == STORE_HOME) { -#ifdef JP - s = "ç½®ããã¢ã¤ãã ãæã£ã¦ãã¾ããã"; -#else - s = "You don't have any item to drop."; -#endif + s = _("ç½®ããã¢ã¤ãã ãæã£ã¦ãã¾ããã", "You don't have any item to drop."); } else if (cur_store_num == STORE_MUSEUM) { -#ifdef JP - s = "å¯è´ã§ããã¢ã¤ãã ãæã£ã¦ãã¾ããã"; -#else - s = "You don't have any item to give."; -#endif - } - else - { -#ifdef JP - s = "欲ããç©ããªãã§ãããã"; -#else - s = "You have nothing that I want."; -#endif - } - - if (!get_item(&item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR))) return; - - /* Get the item (in the pack) */ - if (item >= 0) - { - o_ptr = &inventory[item]; + s = _("å¯è´ã§ããã¢ã¤ãã ãæã£ã¦ãã¾ããã", "You don't have any item to give."); } - - /* Get the item (on the floor) */ else { - o_ptr = &o_list[0 - item]; + s = _("欲ããç©ããªãã§ãããã", "You have nothing that I want."); } + o_ptr = choose_object(&item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT)); + if (!o_ptr) return; /* Hack -- Cannot remove cursed items */ if ((item >= INVEN_RARM) && object_is_cursed(o_ptr)) { - /* Oops */ -#ifdef JP - msg_print("ãµã¼ããã©ãããããã¯åªããã¦ããããã ãã"); -#else - msg_print("Hmmm, it seems to be cursed."); -#endif - - - /* Nope */ + msg_print(_("ãµã¼ããã©ãããããã¯åªããã¦ããããã ãã", "Hmmm, it seems to be cursed.")); return; } - /* Assume one item */ amt = 1; - /* Find out how many the player wants (letter means "all") */ if (o_ptr->number > 1) { - /* Get a quantity */ amt = get_quantity(NULL, o_ptr->number); - - /* Allow user abort */ if (amt <= 0) return; } - - /* Get local object */ q_ptr = &forge; /* Get a copy of the object */ @@ -4025,25 +4971,13 @@ static void store_sell(void) if (!store_check_num(q_ptr)) { if (cur_store_num == STORE_HOME) -#ifdef JP - msg_print("æã家ã«ã¯ããç½®ãå ´æããªãã"); -#else - msg_print("Your home is full."); -#endif + msg_print(_("æã家ã«ã¯ããç½®ãå ´æããªãã", "Your home is full.")); else if (cur_store_num == STORE_MUSEUM) -#ifdef JP - msg_print("åç©é¤¨ã¯ããæºæ¯ã ã"); -#else - msg_print("Museum is full."); -#endif + msg_print(_("åç©é¤¨ã¯ããæºæ¯ã ã", "Museum is full.")); else -#ifdef JP - msg_print("ããã¾ããããåºã«ã¯ããç½®ãå ´æãããã¾ããã"); -#else - msg_print("I have not the room in my store to keep it."); -#endif + msg_print(_("ããã¾ããããåºã«ã¯ããç½®ãå ´æãããã¾ããã", "I have not the room in my store to keep it.")); return; } @@ -4053,11 +4987,7 @@ static void store_sell(void) if ((cur_store_num != STORE_HOME) && (cur_store_num != STORE_MUSEUM)) { /* Describe the transaction */ -#ifdef JP - msg_format("%s(%c)ã売å´ããã", o_name, index_to_label(item)); -#else - msg_format("Selling %s (%c).", o_name, index_to_label(item)); -#endif + msg_format(_("%s(%c)ã売å´ããã", "Selling %s (%c)."), o_name, index_to_label(item)); msg_print(NULL); @@ -4065,7 +4995,7 @@ static void store_sell(void) choice = sell_haggle(q_ptr, &price); /* Kicked out */ - if (st_ptr->store_open >= turn) return; + if (st_ptr->store_open >= current_world_ptr->game_turn) return; /* Sold... */ if (choice == 0) @@ -4093,10 +5023,7 @@ static void store_sell(void) /* Get the "apparent" value */ dummy = object_value(q_ptr) * q_ptr->number; - /* Identify it */ identify_item(o_ptr); - - /* Get local object */ q_ptr = &forge; /* Get a copy of the object */ @@ -4124,11 +5051,7 @@ static void store_sell(void) object_desc(o_name, q_ptr, 0); /* Describe the result (in message buffer) */ -#ifdef JP -msg_format("%sã $%ldã§å£²å´ãã¾ããã", o_name, (long)price); -#else - msg_format("You sold %s for %ld gold.", o_name, (long)price); -#endif + msg_format(_("%sã $%ldã§å£²å´ãã¾ããã", "You sold %s for %ld gold."), o_name, (long)price); if (record_sell) do_cmd_write_nikki(NIKKI_SELL, 0, o_name); @@ -4156,8 +5079,6 @@ msg_format("%sã $%ldã§å£²å´ãã¾ããã", o_name, (long)price); autopick_alter_item(item, FALSE); inven_item_optimize(item); - - /* Handle stuff */ handle_stuff(); /* The store gets that (known) item */ @@ -4180,48 +5101,27 @@ msg_format("%sã $%ldã§å£²å´ãã¾ããã", o_name, (long)price); if (-1 == store_check_num(q_ptr)) { -#ifdef JP - msg_print("ããã¨åãåç©ã¯æ¢ã«åç©é¤¨ã«ããããã§ãã"); -#else - msg_print("The same object as it is already in the Museum."); -#endif + msg_print(_("ããã¨åãåç©ã¯æ¢ã«åç©é¤¨ã«ããããã§ãã", "The Museum already has one of those items.")); } else { -#ifdef JP - msg_print("åç©é¤¨ã«å¯è´ãããã®ã¯åãåºããã¨ãã§ãã¾ããï¼ï¼"); -#else - msg_print("You cannot take items which is given to the Museum back!!"); -#endif + msg_print(_("åç©é¤¨ã«å¯è´ãããã®ã¯åãåºããã¨ãã§ãã¾ããï¼ï¼", "You cannot take back items which have been donated to the Museum!!")); } -#ifdef JP - if (!get_check(format("æ¬å½ã«%sãå¯è´ãã¾ããï¼", o2_name))) return; -#else - if (!get_check(format("Really give %s to the Museum? ", o2_name))) return; -#endif - /* Identify it */ + if (!get_check(format(_("æ¬å½ã«%sãå¯è´ãã¾ããï¼", "Really give %s to the Museum? "), o2_name))) return; + identify_item(q_ptr); q_ptr->ident |= IDENT_MENTAL; /* Distribute charges of wands/rods */ distribute_charges(o_ptr, q_ptr, amt); - - /* Describe */ -#ifdef JP - msg_format("%sãç½®ããã(%c)", o_name, index_to_label(item)); -#else - msg_format("You drop %s (%c).", o_name, index_to_label(item)); -#endif - + msg_format(_("%sãç½®ããã(%c)", "You drop %s (%c)."), o_name, index_to_label(item)); choice = 0; /* Take it from the players inventory */ inven_item_increase(item, -amt); inven_item_describe(item); inven_item_optimize(item); - - /* Handle stuff */ handle_stuff(); /* Let the home carry it */ @@ -4239,13 +5139,7 @@ msg_format("%sã $%ldã§å£²å´ãã¾ããã", o_name, (long)price); { /* Distribute charges of wands/rods */ distribute_charges(o_ptr, q_ptr, amt); - - /* Describe */ -#ifdef JP - msg_format("%sãç½®ããã(%c)", o_name, index_to_label(item)); -#else - msg_format("You drop %s (%c).", o_name, index_to_label(item)); -#endif + msg_format(_("%sãç½®ããã(%c)", "You drop %s (%c)."), o_name, index_to_label(item)); choice = 0; @@ -4253,8 +5147,6 @@ msg_format("%sã $%ldã§å£²å´ãã¾ããã", o_name, (long)price); inven_item_increase(item, -amt); inven_item_describe(item); inven_item_optimize(item); - - /* Handle stuff */ handle_stuff(); /* Let the home carry it */ @@ -4286,38 +5178,21 @@ static void store_examine(void) int i; COMMAND_CODE item; object_type *o_ptr; - char o_name[MAX_NLEN]; + GAME_TEXT o_name[MAX_NLEN]; char out_val[160]; - /* Empty? */ if (st_ptr->stock_num <= 0) { if (cur_store_num == STORE_HOME) -#ifdef JP - msg_print("æã家ã«ã¯ä½ãç½®ãã¦ããã¾ããã"); -#else - msg_print("Your home is empty."); -#endif - + msg_print(_("æã家ã«ã¯ä½ãç½®ãã¦ããã¾ããã", "Your home is empty.")); else if (cur_store_num == STORE_MUSEUM) -#ifdef JP - msg_print("åç©é¤¨ã«ã¯ä½ãç½®ãã¦ããã¾ããã"); -#else - msg_print("Museum is empty."); -#endif - + msg_print(_("åç©é¤¨ã«ã¯ä½ãç½®ãã¦ããã¾ããã", "Museum is empty.")); else -#ifdef JP - msg_print("ç¾å¨ååã®å¨åº«ãåããã¦ãã¾ãã"); -#else - msg_print("I am currently out of stock."); -#endif - + msg_print(_("ç¾å¨ååã®å¨åº«ãåããã¦ãã¾ãã", "I am currently out of stock.")); return; } - /* Find the number of objects on this and following pages */ i = (st_ptr->stock_num - store_top); @@ -4325,12 +5200,7 @@ static void store_examine(void) if (i > store_bottom) i = store_bottom; /* Prompt */ -#ifdef JP -sprintf(out_val, "ã©ãã調ã¹ã¾ããï¼"); -#else - sprintf(out_val, "Which item do you want to examine? "); -#endif - + sprintf(out_val, _("ã©ãã調ã¹ã¾ããï¼", "Which item do you want to examine? ")); /* Get the item number to be examined */ if (!get_stock(&item, out_val, 0, i - 1)) return; @@ -4345,34 +5215,15 @@ sprintf(out_val, "ã©ãã調ã¹ã¾ããï¼"); if (!(o_ptr->ident & IDENT_MENTAL)) { /* This can only happen in the home */ -#ifdef JP -msg_print("ãã®ã¢ã¤ãã ã«ã¤ãã¦ç¹ã«ç¥ã£ã¦ãããã¨ã¯ãªãã"); -#else - msg_print("You have no special knowledge about that item."); -#endif - + msg_print(_("ãã®ã¢ã¤ãã ã«ã¤ãã¦ç¹ã«ç¥ã£ã¦ãããã¨ã¯ãªãã", "You have no special knowledge about that item.")); return; } - /* Description */ object_desc(o_name, o_ptr, 0); + msg_format(_("%sã調ã¹ã¦ãã...", "Examining %s..."), o_name); - /* Describe */ -#ifdef JP -msg_format("%sã調ã¹ã¦ãã...", o_name); -#else - msg_format("Examining %s...", o_name); -#endif - - - /* Describe it fully */ if (!screen_object(o_ptr, SCROBJ_FORCE_DETAIL)) -#ifdef JP -msg_print("ç¹ã«å¤ãã£ãã¨ããã¯ãªãããã ã"); -#else - msg_print("You see nothing special."); -#endif - + msg_print(_("ç¹ã«å¤ãã£ãã¨ããã¯ãªãããã ã", "You see nothing special.")); return; } @@ -4385,21 +5236,16 @@ msg_print("ç¹ã«å¤ãã£ãã¨ããã¯ãªãããã ã"); */ static void museum_remove_object(void) { - int i; + int i; COMMAND_CODE item; object_type *o_ptr; - char o_name[MAX_NLEN]; - char out_val[160]; + GAME_TEXT o_name[MAX_NLEN]; + char out_val[160]; /* Empty? */ if (st_ptr->stock_num <= 0) { -#ifdef JP - msg_print("åç©é¤¨ã«ã¯ä½ãç½®ãã¦ããã¾ããã"); -#else - msg_print("Museum is empty."); -#endif - + msg_print(_("åç©é¤¨ã«ã¯ä½ãç½®ãã¦ããã¾ããã", "Museum is empty.")); return; } @@ -4410,11 +5256,7 @@ static void museum_remove_object(void) if (i > store_bottom) i = store_bottom; /* Prompt */ -#ifdef JP - sprintf(out_val, "ã©ã®ã¢ã¤ãã ã®å±ç¤ºãããããã¾ããï¼"); -#else - sprintf(out_val, "Which item do you want to order to remove? "); -#endif + sprintf(out_val, _("ã©ã®ã¢ã¤ãã ã®å±ç¤ºãããããã¾ããï¼", "Which item do you want to order to remove? ")); /* Get the item number to be removed */ if (!get_stock(&item, out_val, 0, i - 1)) return; @@ -4425,22 +5267,12 @@ static void museum_remove_object(void) /* Get the actual item */ o_ptr = &st_ptr->stock[item]; - /* Description */ object_desc(o_name, o_ptr, 0); -#ifdef JP - msg_print("å±ç¤ºããããããã¢ã¤ãã ã¯äºåº¦ã¨è¦ããã¨ã¯ã§ãã¾ããï¼"); - if (!get_check(format("æ¬å½ã«%sã®å±ç¤ºãããããã¾ããï¼", o_name))) return; -#else - msg_print("You cannot see items which is removed from the Museum!"); - if (!get_check(format("Really order to remove %s from the Museum? ", o_name))) return; -#endif + msg_print(_("å±ç¤ºããããããã¢ã¤ãã ã¯äºåº¦ã¨è¦ããã¨ã¯ã§ãã¾ããï¼", "Once removed from the Museum, an item will be gone forever!")); + if (!get_check(format(_("æ¬å½ã«%sã®å±ç¤ºãããããã¾ããï¼", "Really order to remove %s from the Museum? "), o_name))) return; -#ifdef JP - msg_format("%sã®å±ç¤ºããããããã", o_name); -#else - msg_format("You ordered to remove %s.", o_name); -#endif + msg_format(_("%sã®å±ç¤ºããããããã", "You ordered to remove %s."), o_name); /* Remove the items from the home */ store_item_increase(item, -o_ptr->number); @@ -4455,8 +5287,6 @@ static void museum_remove_object(void) /* Nothing left on that screen */ else if (store_top >= st_ptr->stock_num) store_top -= store_bottom; - - /* Redraw everything */ display_inventory(); return; @@ -4483,13 +5313,9 @@ static bool leave_store = FALSE; */ static void store_process_command(void) { -#ifdef ALLOW_REPEAT /* TNB */ - /* Handle repeating the last command */ repeat_check(); -#endif /* ALLOW_REPEAT -- TNB */ - if (rogue_like_commands && command_cmd == 'l') { command_cmd = 'x'; /* hack! */ @@ -4510,11 +5336,7 @@ static void store_process_command(void) case '-': { if (st_ptr->stock_num <= store_bottom) { -#ifdef JP - msg_print("ããã§å ¨é¨ã§ãã"); -#else - msg_print("Entire inventory is shown."); -#endif + msg_print(_("ããã§å ¨é¨ã§ãã", "Entire inventory is shown.")); } else{ store_top -= store_bottom; @@ -4532,12 +5354,7 @@ static void store_process_command(void) { if (st_ptr->stock_num <= store_bottom) { -#ifdef JP - msg_print("ããã§å ¨é¨ã§ãã"); -#else - msg_print("Entire inventory is shown."); -#endif - + msg_print(_("ããã§å ¨é¨ã§ãã", "Entire inventory is shown.")); } else { @@ -4565,7 +5382,6 @@ static void store_process_command(void) break; } - /* Redraw */ case KTRL('R'): { do_cmd_redraw(); @@ -4654,8 +5470,6 @@ static void store_process_command(void) break; } - - /*** Use various objects ***/ /* Browse a book */ @@ -4847,13 +5661,8 @@ static void store_process_command(void) } else { -#ifdef JP - msg_print("ãã®ã³ãã³ãã¯åºã®ä¸ã§ã¯ä½¿ãã¾ããã"); -#else - msg_print("That command does not work in stores."); -#endif + msg_print(_("ãã®ã³ãã³ãã¯åºã®ä¸ã§ã¯ä½¿ãã¾ããã", "That command does not work in stores.")); } - break; } } @@ -4876,14 +5685,14 @@ static void store_process_command(void) */ void do_cmd_store(void) { - int which; - int maintain_num; - int i; - cave_type *c_ptr; - bool need_redraw_store_inv; /* To redraw missiles damage and prices in store */ - int w, h; + int which; + int maintain_num; + int i; + grid_type *g_ptr; + bool need_redraw_store_inv; /* To redraw missiles damage and prices in store */ + TERM_LEN w, h; - /* Get term size */ + if(p_ptr->wild_mode) return; Term_get_size(&w, &h); /* Calculate stocks per 1 page */ @@ -4891,44 +5700,34 @@ void do_cmd_store(void) store_bottom = MIN_STOCK + xtra_stock; /* Access the player grid */ - c_ptr = &cave[p_ptr->y][p_ptr->x]; + g_ptr = ¤t_floor_ptr->grid_array[p_ptr->y][p_ptr->x]; /* Verify a store */ - if (!cave_have_flag_grid(c_ptr, FF_STORE)) + if (!cave_have_flag_grid(g_ptr, FF_STORE)) { -#ifdef JP - msg_print("ããã«ã¯åºãããã¾ããã"); -#else - msg_print("You see no store here."); -#endif - + msg_print(_("ããã«ã¯åºãããã¾ããã", "You see no store here.")); return; } /* Extract the store code */ - which = f_info[c_ptr->feat].subtype; + which = f_info[g_ptr->feat].subtype; old_town_num = p_ptr->town_num; if ((which == STORE_HOME) || (which == STORE_MUSEUM)) p_ptr->town_num = 1; - if (dun_level) p_ptr->town_num = NO_TOWN; + if (current_floor_ptr->dun_level) p_ptr->town_num = NO_TOWN; inner_town_num = p_ptr->town_num; /* Hack -- Check the "locked doors" */ - if ((town[p_ptr->town_num].store[which].store_open >= turn) || + if ((town_info[p_ptr->town_num].store[which].store_open >= current_world_ptr->game_turn) || (ironman_shops)) { -#ifdef JP - msg_print("ãã¢ã«éµãããã£ã¦ããã"); -#else - msg_print("The doors are locked."); -#endif - + msg_print(_("ãã¢ã«éµãããã£ã¦ããã", "The doors are locked.")); p_ptr->town_num = old_town_num; return; } /* Calculate the number of store maintainances since the last visit */ - maintain_num = (turn - town[p_ptr->town_num].store[which].last_visit) / (TURNS_PER_TICK * STORE_TICKS); + maintain_num = (current_world_ptr->game_turn - town_info[p_ptr->town_num].store[which].last_visit) / (TURNS_PER_TICK * STORE_TICKS); /* Maintain the store max. 10 times */ if (maintain_num > 10) maintain_num = 10; @@ -4940,27 +5739,18 @@ void do_cmd_store(void) store_maint(p_ptr->town_num, which); /* Save the visit */ - town[p_ptr->town_num].store[which].last_visit = turn; + town_info[p_ptr->town_num].store[which].last_visit = current_world_ptr->game_turn; } - /* Forget the lite */ forget_lite(); - - /* Forget the view */ forget_view(); - /* Hack -- Character is in "icky" mode */ character_icky = TRUE; - - /* No command argument */ + /* command reset */ command_arg = 0; - - /* No repeated command */ command_rep = 0; - - /* No automatic command */ command_new = 0; /* Do not expand macros */ @@ -4970,19 +5760,17 @@ void do_cmd_store(void) cur_store_num = which; /* Hack -- save the store feature */ - cur_store_feat = c_ptr->feat; + cur_store_feat = g_ptr->feat; /* Save the store and owner pointers */ - st_ptr = &town[p_ptr->town_num].store[cur_store_num]; + st_ptr = &town_info[p_ptr->town_num].store[cur_store_num]; ot_ptr = &owners[cur_store_num][st_ptr->owner]; - /* Start at the beginning */ store_top = 0; play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_BUILD); - /* Display the store */ display_store(); /* Do not leave */ @@ -4997,104 +5785,55 @@ void do_cmd_store(void) /* Clear */ clear_from(20 + xtra_stock); - /* Basic commands */ -#ifdef JP - prt(" ESC) 建ç©ããåºã", 21 + xtra_stock, 0); -#else - prt(" ESC) Exit from Building.", 21 + xtra_stock, 0); -#endif - + prt(_(" ESC) 建ç©ããåºã", " ESC) Exit from Building."), 21 + xtra_stock, 0); /* Browse if necessary */ if (st_ptr->stock_num > store_bottom) { -#ifdef JP - prt(" -)åãã¼ã¸", 22 + xtra_stock, 0); - prt(" ã¹ãã¼ã¹) 次ãã¼ã¸", 23 + xtra_stock, 0); -#else - prt(" -) Previous page", 22 + xtra_stock, 0); - prt(" SPACE) Next page", 23 + xtra_stock, 0); -#endif - + prt(_(" -)åãã¼ã¸", " -) Previous page"), 22 + xtra_stock, 0); + prt(_(" ã¹ãã¼ã¹) 次ãã¼ã¸", " SPACE) Next page"), 23 + xtra_stock, 0); } /* Home commands */ if (cur_store_num == STORE_HOME) { -#ifdef JP - prt("g) ã¢ã¤ãã ãåã", 21 + xtra_stock, 27); - prt("d) ã¢ã¤ãã ãç½®ã", 22 + xtra_stock, 27); - prt("x) 家ã®ã¢ã¤ãã ã調ã¹ã", 23 + xtra_stock, 27); -#else - prt("g) Get an item.", 21 + xtra_stock, 27); - prt("d) Drop an item.", 22 + xtra_stock, 27); - prt("x) eXamine an item in the home.", 23 + xtra_stock, 27); -#endif + prt(_("g) ã¢ã¤ãã ãåã", "g) Get an item."), 21 + xtra_stock, 27); + prt(_("d) ã¢ã¤ãã ãç½®ã", "d) Drop an item."), 22 + xtra_stock, 27); + prt(_("x) 家ã®ã¢ã¤ãã ã調ã¹ã", "x) eXamine an item in the home."), 23 + xtra_stock, 27); } /* Museum commands */ else if (cur_store_num == STORE_MUSEUM) { -#ifdef JP - prt("d) ã¢ã¤ãã ãç½®ã", 21 + xtra_stock, 27); - prt("r) ã¢ã¤ãã ã®å±ç¤ºãããã", 22 + xtra_stock, 27); - prt("x) åç©é¤¨ã®ã¢ã¤ãã ã調ã¹ã", 23 + xtra_stock, 27); -#else - prt("d) Drop an item.", 21 + xtra_stock, 27); - prt("r) order to Remove an item.", 22 + xtra_stock, 27); - prt("x) eXamine an item in the museum.", 23 + xtra_stock, 27); -#endif + prt(_("d) ã¢ã¤ãã ãç½®ã", "d) Drop an item."), 21 + xtra_stock, 27); + prt(_("r) ã¢ã¤ãã ã®å±ç¤ºãããã", "r) order to Remove an item."), 22 + xtra_stock, 27); + prt(_("x) åç©é¤¨ã®ã¢ã¤ãã ã調ã¹ã", "x) eXamine an item in the museum."), 23 + xtra_stock, 27); } - /* Shop commands XXX XXX XXX */ + /* Shop commands */ else { -#ifdef JP - prt("p) ååãè²·ã", 21 + xtra_stock, 30); - prt("s) ã¢ã¤ãã ã売ã", 22 + xtra_stock, 30); - prt("x) ååã調ã¹ã", 23 + xtra_stock,30); -#else - prt("p) Purchase an item.", 21 + xtra_stock, 30); - prt("s) Sell an item.", 22 + xtra_stock, 30); - prt("x) eXamine an item in the shop", 23 + xtra_stock,30); -#endif + prt(_("p) ååãè²·ã", "p) Purchase an item."), 21 + xtra_stock, 30); + prt(_("s) ã¢ã¤ãã ã売ã", "s) Sell an item."), 22 + xtra_stock, 30); + prt(_("x) ååã調ã¹ã", "x) eXamine an item in the shop"), 23 + xtra_stock,30); } -#ifdef JP /* åºæ¬çãªã³ãã³ãã®è¿½å 表示 */ - - prt("i/e) æã¡ç©/è£ åã®ä¸è¦§", 21 + xtra_stock, 56); + prt(_("i/e) æã¡ç©/è£ åã®ä¸è¦§", "i/e) Inventry/Equipment list"), 21 + xtra_stock, 56); if (rogue_like_commands) { - prt("w/T) è£ åãã/ã¯ãã", 22 + xtra_stock, 56); + prt(_("w/T) è£ åãã/ã¯ãã", "w/T) Wear/Take off equipment"), 22 + xtra_stock, 56); } else { - prt("w/t) è£ åãã/ã¯ãã", 22 + xtra_stock, 56); + prt(_("w/t) è£ åãã/ã¯ãã", "w/t) Wear/Take off equipment"), 22 + xtra_stock, 56); } -#else - prt("i/e) Inventry/Equipment list", 21 + xtra_stock, 56); - if (rogue_like_commands) - { - prt("w/T) Wear/Take off equipment", 22 + xtra_stock, 56); - } - else - { - prt("w/t) Wear/Take off equipment", 22 + xtra_stock, 56); - } -#endif /* Prompt */ -#ifdef JP - prt("ã³ãã³ã:", 20 + xtra_stock, 0); -#else - prt("You may: ", 20 + xtra_stock, 0); -#endif - + prt(_("ã³ãã³ã:", "You may: "), 20 + xtra_stock, 0); - /* Get a command */ request_command(TRUE); /* Process the command */ @@ -5109,13 +5848,9 @@ void do_cmd_store(void) /* Hack -- Character is still in "icky" mode */ character_icky = TRUE; - /* Notice stuff */ - notice_stuff(); - - /* Handle stuff */ handle_stuff(); - /* XXX XXX XXX Pack Overflow */ + /* Pack Overflow */ if (inventory[INVEN_PACK].k_idx) { INVENTORY_IDX item = INVEN_PACK; @@ -5125,18 +5860,10 @@ void do_cmd_store(void) /* Hack -- Flee from the store */ if (cur_store_num != STORE_HOME) { -#ifdef JP - if (cur_store_num == STORE_MUSEUM) - msg_print("ã¶ãã¯ããã¢ã¤ãã ãããµããããªã®ã§ãããã¦ã¦åç©é¤¨ããåºã..."); - else - msg_print("ã¶ãã¯ããã¢ã¤ãã ãããµããããªã®ã§ãããã¦ã¦åºããåºã..."); -#else if (cur_store_num == STORE_MUSEUM) - msg_print("Your pack is so full that you flee the Museum..."); + msg_print(_("ã¶ãã¯ããã¢ã¤ãã ãããµããããªã®ã§ãããã¦ã¦åç©é¤¨ããåºã...", "Your pack is so full that you flee the Museum...")); else - msg_print("Your pack is so full that you flee the store..."); -#endif - + msg_print(_("ã¶ãã¯ããã¢ã¤ãã ãããµããããªã®ã§ãããã¦ã¦åºããåºã...", "Your pack is so full that you flee the store...")); /* Leave */ leave_store = TRUE; @@ -5145,13 +5872,7 @@ void do_cmd_store(void) /* Hack -- Flee from the home */ else if (!store_check_num(o_ptr)) { -#ifdef JP - msg_print("ã¶ãã¯ããã¢ã¤ãã ãããµããããªã®ã§ãããã¦ã¦å®¶ããåºã..."); -#else - msg_print("Your pack is so full that you flee your home..."); -#endif - - + msg_print(_("ã¶ãã¯ããã¢ã¤ãã ãããµããããªã®ã§ãããã¦ã¦å®¶ããåºã...", "Your pack is so full that you flee your home...")); /* Leave */ leave_store = TRUE; } @@ -5164,39 +5885,22 @@ void do_cmd_store(void) object_type forge; object_type *q_ptr; - char o_name[MAX_NLEN]; - + GAME_TEXT o_name[MAX_NLEN]; /* Give a message */ -#ifdef JP - msg_print("ã¶ãã¯ããã¢ã¤ãã ãããµãã¦ãã¾ã£ãï¼"); -#else - msg_print("Your pack overflows!"); -#endif + msg_print(_("ã¶ãã¯ããã¢ã¤ãã ãããµãã¦ãã¾ã£ãï¼", "Your pack overflows!")); - - /* Get local object */ q_ptr = &forge; - /* Grab a copy of the item */ object_copy(q_ptr, o_ptr); - - /* Describe it */ object_desc(o_name, q_ptr, 0); -#ifdef JP - msg_format("%sãè½ã¡ãã(%c)", o_name, index_to_label(item)); -#else - msg_format("You drop %s (%c).", o_name, index_to_label(item)); -#endif - + msg_format(_("%sãè½ã¡ãã(%c)", "You drop %s (%c)."), o_name, index_to_label(item)); /* Remove it from the players inventory */ inven_item_increase(item, -255); inven_item_describe(item); inven_item_optimize(item); - - /* Handle stuff */ handle_stuff(); /* Let the home carry it */ @@ -5216,21 +5920,18 @@ void do_cmd_store(void) if (need_redraw_store_inv) display_inventory(); /* Hack -- get kicked out of the store */ - if (st_ptr->store_open >= turn) leave_store = TRUE; + if (st_ptr->store_open >= current_world_ptr->game_turn) leave_store = TRUE; } select_floor_music(); p_ptr->town_num = old_town_num; - /* Free turn XXX XXX XXX */ - p_ptr->energy_use = 100; - + take_turn(p_ptr, 100); /* Hack -- Character is no longer in "icky" mode */ character_icky = FALSE; - /* Hack -- Cancel automatic command */ command_new = 0; @@ -5240,25 +5941,16 @@ void do_cmd_store(void) /* Allow expanding macros */ get_com_no_macros = FALSE; - /* Flush messages XXX XXX XXX */ - msg_print(NULL); - - - /* Clear the screen */ + msg_erase(); Term_clear(); - /* Update everything */ p_ptr->update |= (PU_VIEW | PU_LITE | PU_MON_LITE); p_ptr->update |= (PU_MONSTERS); /* Redraw entire screen */ p_ptr->redraw |= (PR_BASIC | PR_EXTRA | PR_EQUIPPY); - - /* Redraw map */ p_ptr->redraw |= (PR_MAP); - - /* Window stuff */ p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON); } @@ -5284,7 +5976,7 @@ void store_shuffle(int which) cur_store_num = which; /* Activate that store */ - st_ptr = &town[p_ptr->town_num].store[cur_store_num]; + st_ptr = &town_info[p_ptr->town_num].store[cur_store_num]; j = st_ptr->owner; /* Pick a new owner */ @@ -5295,7 +5987,7 @@ void store_shuffle(int which) for (i = 1;i < max_towns; i++) { if (i == p_ptr->town_num) continue; - if (st_ptr->owner == town[i].store[cur_store_num].owner) break; + if (st_ptr->owner == town_info[i].store[cur_store_num].owner) break; } if (i == max_towns) break; } @@ -5316,7 +6008,6 @@ void store_shuffle(int which) { object_type *o_ptr; - /* Get the item */ o_ptr = &st_ptr->stock[i]; if (!object_is_artifact(o_ptr)) @@ -5328,11 +6019,7 @@ void store_shuffle(int which) o_ptr->ident &= ~(IDENT_FIXED); /* Mega-Hack -- Note that the item is "on sale" */ -#ifdef JP - o_ptr->inscription = quark_add("売åºä¸"); -#else - o_ptr->inscription = quark_add("on sale"); -#endif + o_ptr->inscription = quark_add(_("売åºä¸", "on sale")); } } } @@ -5356,7 +6043,7 @@ void store_maint(int town_num, int store_num) if (store_num == STORE_MUSEUM) return; /* Activate that store */ - st_ptr = &town[town_num].store[store_num]; + st_ptr = &town_info[town_num].store[store_num]; /* Activate the owner */ ot_ptr = &owners[store_num][st_ptr->owner]; @@ -5431,12 +6118,11 @@ void store_maint(int town_num, int store_num) */ void store_init(int town_num, int store_num) { - int k; - + int k; cur_store_num = store_num; /* Activate that store */ - st_ptr = &town[town_num].store[store_num]; + st_ptr = &town_info[town_num].store[store_num]; /* Pick an owner */ @@ -5448,7 +6134,7 @@ void store_init(int town_num, int store_num) for (i = 1;i < max_towns; i++) { if (i == town_num) continue; - if (st_ptr->owner == town[i].store[store_num].owner) break; + if (st_ptr->owner == town_info[i].store[store_num].owner) break; } if (i == max_towns) break; } @@ -5490,7 +6176,7 @@ void move_to_black_market(object_type *o_ptr) /* Not in town */ if (!p_ptr->town_num) return; - st_ptr = &town[p_ptr->town_num].store[STORE_BLACK]; + st_ptr = &town_info[p_ptr->town_num].store[STORE_BLACK]; o_ptr->ident |= IDENT_STORE;