/* NetHack 3.6	objects.c	$NHDT-Date: 1447313395 2015/11/12 07:29:55 $  $NHDT-Branch: master $:$NHDT-Revision: 1.49 $ */
/* Copyright (c) Mike Threepoint, 1989.                           */
/* NetHack may be freely redistributed.  See license for details. */

/*
 * The data in this file is processed twice, to construct two arrays.
 * On the first pass, only object name and object description matter.
 * On the second pass, all object-class fields except those two matter.
 * 2nd pass is a recursive inclusion of this file, not a 2nd compilation.
 * The name/description array is also used by makedefs and lev_comp.
 *
 * #ifndef OBJECTS_PASS_2_
 * # define OBJECT(name,desc,foo,bar,glorkum) name,desc
 * struct objdescr obj_descr[] =
 * #else
 * # define OBJECT(name,desc,foo,bar,glorkum) foo,bar,glorkum
 * struct objclass objects[] =
 * #endif
 * {
 *   { OBJECT("strange object",NULL, 1,2,3) },
 *   { OBJECT("arrow","pointy stick", 4,5,6) },
 *   ...
 *   { OBJECT(NULL,NULL, 0,0,0) }
 * };
 * #define OBJECTS_PASS_2_
 * #include "objects.c"
 */

/* *INDENT-OFF* */
/* clang-format off */

#ifndef OBJECTS_PASS_2_
/* first pass */
struct monst { struct monst *dummy; };  /* lint: struct obj's union */
#include "config.h"
#include "obj.h"
#include "objclass.h"
#include "prop.h"
#include "skills.h"

#else /* !OBJECTS_PASS_2_ */
/* second pass */
#include "color.h"
#define COLOR_FIELD(X) X,
#endif /* !OBJECTS_PASS_2_ */

/* objects have symbols: ) [ = " ( % ! ? + / $ * ` 0 _ . */

/*
 *      Note:  OBJ() and BITS() macros are used to avoid exceeding argument
 *      limits imposed by some compilers.  The ctnr field of BITS currently
 *      does not map into struct objclass, and is ignored in the expansion.
 *      The 0 in the expansion corresponds to oc_pre_discovered, which is
 *      set at run-time during role-specific character initialization.
 */

#ifndef OBJECTS_PASS_2_
/* first pass -- object descriptive text */
#define OBJ(name,desc)  name, desc
#define OBJECT(obj,bits,prp,sym,prob,dly,wt, \
               cost,sdam,ldam,oc1,oc2,nut,color)  { obj }
#define None (char *) 0 /* less visual distraction for 'no description' */

NEARDATA struct objdescr obj_descr[] =
#else
/* second pass -- object definitions */
#define BITS(nmkn,mrg,uskn,ctnr,mgc,chrg,uniq,nwsh,big,tuf,dir,sub,mtrl) \
  nmkn,mrg,uskn,0,mgc,chrg,uniq,nwsh,big,tuf,dir,mtrl,sub /*SCO cpp fodder*/
#define OBJECT(obj,bits,prp,sym,prob,dly,wt,cost,sdam,ldam,oc1,oc2,nut,color) \
  { 0, 0, (char *) 0, bits, prp, sym, dly, COLOR_FIELD(color) prob, wt, \
    cost, sdam, ldam, oc1, oc2, nut }
#ifndef lint
#define HARDGEM(n) (n >= 8)
#else
#define HARDGEM(n) (0)
#endif

NEARDATA struct objclass objects[] =
#endif
{
/* dummy object[0] -- description [2nd arg] *must* be NULL */
OBJECT(OBJ("奇妙な物体", None),
       BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, 0),
       0, ILLOBJ_CLASS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),

/* weapons ... */
#define WEAPON(name,desc,kn,mg,bi,prob,wt,                \
               cost,sdam,ldam,hitbon,typ,sub,metal,color) \
    OBJECT(OBJ(name,desc),                                          \
           BITS(kn, mg, 1, 0, 0, 1, 0, 0, bi, 0, typ, sub, metal),  \
           0, WEAPON_CLASS, prob, 0, wt,                            \
           cost, sdam, ldam, hitbon, 0, wt, color)
#define PROJECTILE(name,desc,kn,prob,wt,                  \
                   cost,sdam,ldam,hitbon,metal,sub,color) \
    OBJECT(OBJ(name,desc),                                          \
           BITS(kn, 1, 1, 0, 0, 1, 0, 0, 0, 0, PIERCE, sub, metal), \
           0, WEAPON_CLASS, prob, 0, wt,                            \
           cost, sdam, ldam, hitbon, 0, wt, color)
#define BOW(name,desc,kn,prob,wt,cost,hitbon,metal,sub,color) \
    OBJECT(OBJ(name,desc),                                          \
           BITS(kn, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, sub, metal),      \
           0, WEAPON_CLASS, prob, 0, wt,                            \
           cost, 2, 2, hitbon, 0, wt, color)

/* Note: for weapons that don't do an even die of damage (ex. 2-7 or 3-18)
   the extra damage is added on in weapon.c, not here! */

#define P PIERCE
#define S SLASH
#define B WHACK

/* missiles; materiel reflects the arrowhead, not the shaft */
PROJECTILE("矢", None,
           1, 55, 1, 2, 6, 6, 0,        IRON, -P_BOW, HI_METAL),
PROJECTILE("エルフの矢", "神秘的な矢",
           0, 20, 1, 2, 7, 6, 0,        WOOD, -P_BOW, HI_WOOD),
PROJECTILE("オークの矢", "粗末な矢",
           0, 20, 1, 2, 5, 6, 0,        IRON, -P_BOW, CLR_BLACK),
PROJECTILE("銀の矢", None,
           1, 12, 1, 5, 6, 6, 0,        SILVER, -P_BOW, HI_SILVER),
PROJECTILE("竹矢", "竹の矢",
           0, 15, 1, 4, 7, 7, 1,        METAL, -P_BOW, HI_METAL),
PROJECTILE("クロスボゥボルト", None,
           1, 55, 1, 2, 4, 6, 0,        IRON, -P_CROSSBOW, HI_METAL),

/* missiles that don't use a launcher */
WEAPON("投げ矢", None,
       1, 1, 0, 60,   1,   2,  3,  2, 0, P,   -P_DART, IRON, HI_METAL),
WEAPON("手裏剣", "星型の投げるもの",
       0, 1, 0, 35,   1,   5,  8,  6, 2, P,   -P_SHURIKEN, IRON, HI_METAL),
WEAPON("ブーメラン", None,
       1, 1, 0, 15,   5,  20,  9,  9, 0, 0,   -P_BOOMERANG, WOOD, HI_WOOD),

/* spears [note: javelin used to have a separate skill from spears,
   because the latter are primarily stabbing weapons rather than
   throwing ones; but for playability, they've been merged together
   under spear skill and spears can now be thrown like javelins] */
WEAPON("槍", None,
       1, 1, 0, 50,  30,   3,  6,  8, 0, P,   P_SPEAR, IRON, HI_METAL),
WEAPON("エルフの槍", "神秘的な槍",
       0, 1, 0, 10,  30,   3,  7,  8, 0, P,   P_SPEAR, WOOD, HI_WOOD),
WEAPON("オークの槍", "粗末な槍",
       0, 1, 0, 13,  30,   3,  5,  8, 0, P,   P_SPEAR, IRON, CLR_BLACK),
WEAPON("ドワーフの槍", "丈夫な槍",
       0, 1, 0, 12,  35,   3,  8,  8, 0, P,   P_SPEAR, IRON, HI_METAL),
WEAPON("銀の槍", None,
       1, 1, 0,  2,  36,  40,  6,  8, 0, P,   P_SPEAR, SILVER, HI_SILVER),
WEAPON("ジャベリン", "投げ槍",
       0, 1, 0, 10,  20,   3,  6,  6, 0, P,   P_SPEAR, IRON, HI_METAL),

/* spearish; doesn't stack, not intended to be thrown */
WEAPON("トライデント", None,
       1, 0, 0,  8,  25,   5,  6,  4, 0, P,   P_TRIDENT, IRON, HI_METAL),
        /* +1 small, +2d4 large */

/* blades; all stack */
WEAPON("短剣", None,
       1, 1, 0, 30,  10,   4,  4,  3, 2, P,   P_DAGGER, IRON, HI_METAL),
WEAPON("エルフの短剣", "神秘的な短剣",
       0, 1, 0, 10,  10,   4,  5,  3, 2, P,   P_DAGGER, WOOD, HI_WOOD),
WEAPON("オークの短剣", "粗末な短剣",
       0, 1, 0, 12,  10,   4,  3,  3, 2, P,   P_DAGGER, IRON, CLR_BLACK),
WEAPON("銀の短剣", None,
       1, 1, 0,  3,  12,  40,  4,  3, 2, P,   P_DAGGER, SILVER, HI_SILVER),
WEAPON("アサメ", None,
       1, 1, 0,  0,  10,   4,  4,  3, 2, S,   P_DAGGER, IRON, HI_METAL),
WEAPON("メス", None,
       1, 1, 0,  0,   5,   6,  3,  3, 2, S,   P_KNIFE, METAL, HI_METAL),
WEAPON("ナイフ", None,
       1, 1, 0, 20,   5,   4,  3,  2, 0, P|S, P_KNIFE, IRON, HI_METAL),
WEAPON("スティレット", None,
       1, 1, 0,  5,   5,   4,  3,  2, 0, P|S, P_KNIFE, IRON, HI_METAL),
/* 3.6: worm teeth and crysknives now stack;
   when a stack of teeth is enchanted at once, they fuse into one crysknife;
   when a stack of crysknives drops, the whole stack reverts to teeth */
WEAPON("ワームの歯", None,
       1, 1, 0,  0,  20,   2,  2,  2, 0, 0,   P_KNIFE, 0, CLR_WHITE),
WEAPON("クリスナイフ", None,
       1, 1, 0,  0,  20, 100, 10, 10, 3, P,   P_KNIFE, MINERAL, CLR_WHITE),

/* axes */
WEAPON("斧", None,
       1, 0, 0, 40,  60,   8,  6,  4, 0, S,   P_AXE, IRON, HI_METAL),
WEAPON("戦斧", "両刃の斧",       /* "double-bitted"? */
       0, 0, 1, 10, 120,  40,  8,  6, 0, S,   P_AXE, IRON, HI_METAL),

/* swords */
WEAPON("小剣", None,
       1, 0, 0,  8,  30,  10,  6,  8, 0, P,   P_SHORT_SWORD, IRON, HI_METAL),
WEAPON("エルフの小剣", "神秘的な小剣",
       0, 0, 0,  2,  30,  10,  8,  8, 0, P,   P_SHORT_SWORD, WOOD, HI_WOOD),
WEAPON("オークの小剣", "粗末な小剣",
       0, 0, 0,  3,  30,  10,  5,  8, 0, P,   P_SHORT_SWORD, IRON, CLR_BLACK),
WEAPON("ドワーフの小剣", "幅広の小剣",
       0, 0, 0,  2,  30,  10,  7,  8, 0, P,   P_SHORT_SWORD, IRON, HI_METAL),
WEAPON("シミター", "曲った剣",
       0, 0, 0, 15,  40,  15,  8,  8, 0, S,   P_SCIMITAR, IRON, HI_METAL),
WEAPON("銀のサーベル", None,
       1, 0, 0,  6,  40,  75,  8,  8, 0, S,   P_SABER, SILVER, HI_SILVER),
WEAPON("幅広の剣", None,
       1, 0, 0,  8,  70,  10,  4,  6, 0, S,   P_BROAD_SWORD, IRON, HI_METAL),
        /* +d4 small, +1 large */
WEAPON("エルフの幅広の剣", "神秘的な幅広の剣",
       0, 0, 0,  4,  70,  10,  6,  6, 0, S,   P_BROAD_SWORD, WOOD, HI_WOOD),
        /* +d4 small, +1 large */
WEAPON("長剣", None,
       1, 0, 0, 50,  40,  15,  8, 12, 0, S,   P_LONG_SWORD, IRON, HI_METAL),
WEAPON("両手剣", None,
       1, 0, 1, 22, 150,  50, 12,  6, 0, S,   P_TWO_HANDED_SWORD,
                                                            IRON, HI_METAL),
        /* +2d6 large */
WEAPON("刀", "侍の剣",
       0, 0, 0,  4,  40,  80, 10, 12, 1, S,   P_LONG_SWORD, IRON, HI_METAL),
/* special swords set up for artifacts */
WEAPON("大刀", "侍の長剣",
       0, 0, 1,  0,  60, 500, 16,  8, 2, S,   P_TWO_HANDED_SWORD,
                                                            METAL, HI_METAL),
        /* +2d6 large */
WEAPON("ルーンの剣", "神秘的な幅広の剣",
       0, 0, 0,  0,  40, 300,  4,  6, 0, S,   P_BROAD_SWORD, IRON, CLR_BLACK),
        /* +d4 small, +1 large; Stormbringer: +5d2 +d8 from level drain */

/* polearms */
/* spear-type */
WEAPON("パルチザン", "粗雑な長斧",
       0, 0, 1,  5,  80,  10,  6,  6, 0, P,   P_POLEARMS, IRON, HI_METAL),
        /* +1 large */
WEAPON("ランサー", "柄付の長斧",
       0, 0, 1,  5,  50,   6,  4,  4, 0, P,   P_POLEARMS, IRON, HI_METAL),
        /* +d4 both */
WEAPON("スペタム", "フォーク付き長斧",
       0, 0, 1,  5,  50,   5,  6,  6, 0, P,   P_POLEARMS, IRON, HI_METAL),
        /* +1 small, +d6 large */
WEAPON("グレイブ", "片刃長斧",
       0, 0, 1,  8,  75,   6,  6, 10, 0, S,   P_POLEARMS, IRON, HI_METAL),
WEAPON("ランス", None,
       1, 0, 0,  4, 180,  10,  6,  8, 0, P,   P_LANCE, IRON, HI_METAL),
        /* +2d10 when jousting with lance as primary weapon */
/* axe-type */
WEAPON("ハルバード", "曲ったまさかり",
       0, 0, 1,  8, 150,  10, 10,  6, 0, P|S, P_POLEARMS, IRON, HI_METAL),
        /* +1d6 large */
WEAPON("バーディック", "長いまさかり",
       0, 0, 1,  4, 120,   7,  4,  4, 0, S,   P_POLEARMS, IRON, HI_METAL),
        /* +1d4 small, +2d4 large */
WEAPON("ヴォウジェ", "包丁付き竿",
       0, 0, 1,  4, 125,   5,  4,  4, 0, S,   P_POLEARMS, IRON, HI_METAL),
        /* +d4 both */
WEAPON("ドワーフのつるはし", "幅広のつるはし",
       0, 0, 1, 13, 120,  50, 12,  8, -1, B,  P_PICK_AXE, IRON, HI_METAL),
/* curved/hooked */
WEAPON("フォシャール", "鎌付き竿",
       0, 0, 1,  6,  60,   5,  6,  8, 0, P|S, P_POLEARMS, IRON, HI_METAL),
WEAPON("ギザルム", "刈り込みがま",
       0, 0, 1,  6,  80,   5,  4,  8, 0, S,   P_POLEARMS, IRON, HI_METAL),
        /* +1d4 small */
WEAPON("ビル・ギザルム", "鈎付き長斧",
       0, 0, 1,  4, 120,   7,  4, 10, 0, P|S, P_POLEARMS, IRON, HI_METAL),
        /* +1d4 small */
/* other */
WEAPON("ルッツェルンハンマー", "二股の長斧",
       0, 0, 1,  5, 150,   7,  4,  6, 0, B|P, P_POLEARMS, IRON, HI_METAL),
        /* +1d4 small */
WEAPON("ベック・ド・コルバン", "くちばし付き長斧",
       0, 0, 1,  4, 100,   8,  8,  6, 0, B|P, P_POLEARMS, IRON, HI_METAL),

/* bludgeons */
WEAPON("メイス", None,
       1, 0, 0, 40,  30,   5,  6,  6, 0, B,   P_MACE, IRON, HI_METAL),
        /* +1 small */
WEAPON("モーニングスター", None,
       1, 0, 0, 12, 120,  10,  4,  6, 0, B,   P_MORNING_STAR, IRON, HI_METAL),
        /* +d4 small, +1 large */
WEAPON("ウォーハンマー", None,
       1, 0, 0, 15,  50,   5,  4,  4, 0, B,   P_HAMMER, IRON, HI_METAL),
        /* +1 small */
WEAPON("こん棒", None,
       1, 0, 0, 12,  30,   3,  6,  3, 0, B,   P_CLUB, WOOD, HI_WOOD),
WEAPON("ゴムホース", None,
       1, 0, 0,  0,  20,   3,  4,  3, 0, B,   P_WHIP, PLASTIC, CLR_BROWN),
WEAPON("六尺棒", "棒",
       0, 0, 1, 11,  40,   5,  6,  6, 0, B,   P_QUARTERSTAFF, WOOD, HI_WOOD),
/* two-piece */
WEAPON("アキリス", "紐付のこん棒",
       0, 0, 0,  8,  15,   4,  6,  3, 0, B,   P_CLUB, IRON, HI_METAL),
WEAPON("フレイル", None,
       1, 0, 0, 40,  15,   4,  6,  4, 0, B,   P_FLAIL, IRON, HI_METAL),
        /* +1 small, +1d4 large */

/* misc */
WEAPON("鞭", None,
       1, 0, 0,  2,  20,   4,  2,  1, 0, 0,   P_WHIP, LEATHER, CLR_BROWN),

/* bows */
BOW("弓", None,                 1, 24, 30, 60, 0, WOOD, P_BOW, HI_WOOD),
BOW("エルフの弓", "神秘的な弓", 0, 12, 30, 60, 0, WOOD, P_BOW, HI_WOOD),
BOW("オークの弓", "粗末な弓",   0, 12, 30, 60, 0, WOOD, P_BOW, CLR_BLACK),
BOW("和弓", "長弓",             0,  0, 30, 60, 0, WOOD, P_BOW, HI_WOOD),
BOW("スリング", None,           1, 40,  3, 20, 0, LEATHER, P_SLING, HI_LEATHER),
BOW("クロスボゥ", None,         1, 45, 50, 40, 0, WOOD, P_CROSSBOW, HI_WOOD),

#undef P
#undef S
#undef B

#undef WEAPON
#undef PROJECTILE
#undef BOW

/* armor ... */
        /* IRON denotes ferrous metals, including steel.
         * Only IRON weapons and armor can rust.
         * Only COPPER (including brass) corrodes.
         * Some creatures are vulnerable to SILVER.
         */
#define ARMOR(name,desc,kn,mgc,blk,power,prob,delay,wt,  \
              cost,ac,can,sub,metal,c)                   \
    OBJECT(OBJ(name, desc),                                         \
           BITS(kn, 0, 1, 0, mgc, 1, 0, 0, blk, 0, 0, sub, metal),  \
           power, ARMOR_CLASS, prob, delay, wt,                     \
           cost, 0, 0, 10 - ac, can, wt, c)
#define HELM(name,desc,kn,mgc,power,prob,delay,wt,cost,ac,can,metal,c)  \
    ARMOR(name, desc, kn, mgc, 0, power, prob, delay, wt,  \
          cost, ac, can, ARM_HELM, metal, c)
#define CLOAK(name,desc,kn,mgc,power,prob,delay,wt,cost,ac,can,metal,c)  \
    ARMOR(name, desc, kn, mgc, 0, power, prob, delay, wt,  \
          cost, ac, can, ARM_CLOAK, metal, c)
#define SHIELD(name,desc,kn,mgc,blk,power,prob,delay,wt,cost,ac,can,metal,c) \
    ARMOR(name, desc, kn, mgc, blk, power, prob, delay, wt, \
          cost, ac, can, ARM_SHIELD, metal, c)
#define GLOVES(name,desc,kn,mgc,power,prob,delay,wt,cost,ac,can,metal,c)  \
    ARMOR(name, desc, kn, mgc, 0, power, prob, delay, wt,  \
          cost, ac, can, ARM_GLOVES, metal, c)
#define BOOTS(name,desc,kn,mgc,power,prob,delay,wt,cost,ac,can,metal,c)  \
    ARMOR(name, desc, kn, mgc, 0, power, prob, delay, wt,  \
          cost, ac, can, ARM_BOOTS, metal, c)

/* helmets */
HELM("エルフの革帽子", "革帽子",
     0, 0,           0,  6, 1,  3,  8,  9, 0, LEATHER, HI_LEATHER),
HELM("オークの兜", "鉄の帽子",
     0, 0,           0,  6, 1, 30, 10,  9, 0, IRON, CLR_BLACK),
HELM("ドワーフの鉄兜", "固い帽子",
     0, 0,           0,  6, 1, 40, 20,  8, 0, IRON, HI_METAL),
HELM("フィドーラ", None,
     1, 0,           0,  0, 0,  3,  1, 10, 0, CLOTH, CLR_BROWN),
HELM("とんがり帽子", "円錐形の帽子",
     0, 1, CLAIRVOYANT,  3, 1,  4, 80, 10, 1, CLOTH, CLR_BLUE),
        /* name coined by devteam; confers clairvoyance for wizards,
           blocks clairvoyance if worn by role other than wizard */
HELM("低能帽", "円錐形の帽子",
     0, 1,           0,  3, 1,  4,  1, 10, 0, CLOTH, CLR_BLUE),
HELM("くぼんだ鍋", None,
     1, 0,           0,  2, 0, 10,  8,  9, 0, IRON, CLR_BLACK),
/* with shuffled appearances... */
HELM("兜", "羽兜",
     0, 0,           0, 10, 1, 30, 10,  9, 0, IRON, HI_METAL),
HELM("知性の兜", "模様入り兜",
     0, 1,           0,  6, 1, 50, 50,  9, 0, IRON, CLR_GREEN),
HELM("逆属性の兜", "とさかの兜",
     0, 1,           0,  6, 1, 50, 50,  9, 0, IRON, HI_METAL),
HELM("テレパシーの兜", "面頬付きの兜",
     0, 1,     TELEPAT,  2, 1, 50, 50,  9, 0, IRON, HI_METAL),

/* suits of armor */
/*
 * There is code in polyself.c that assumes (1) and (2).
 * There is code in obj.h, objnam.c, mon.c, read.c that assumes (2).
 *      (1) The dragon scale mails and the dragon scales are together.
 *      (2) That the order of the dragon scale mail and dragon scales
 *          is the same as order of dragons defined in monst.c.
 */
#define DRGN_ARMR(name,mgc,power,cost,ac,color)  \
    ARMOR(name, None, 1, mgc, 1, power, 0, 5, 40,  \
          cost, ac, 0, ARM_SUIT, DRAGON_HIDE, color)
/* 3.4.1: dragon scale mail reclassified as "magic" since magic is
   needed to create them */
DRGN_ARMR("灰色ドラゴンの鱗鎧",     1, ANTIMAGIC,  1200, 1, CLR_GRAY),
DRGN_ARMR("銀色ドラゴンの鱗鎧",     1, REFLECTING, 1200, 1, DRAGON_SILVER),
#if 0 /* DEFERRED */
DRGN_ARMR("shimmering dragon scale mail", 1, DISPLACED, 1200, 1, CLR_CYAN),
#endif
DRGN_ARMR("赤色ドラゴンの鱗鎧",     1, FIRE_RES,    900, 1, CLR_RED),
DRGN_ARMR("白ドラゴンの鱗鎧",       1, COLD_RES,    900, 1, CLR_WHITE),
DRGN_ARMR("オレンジドラゴンの鱗鎧", 1, SLEEP_RES,   900, 1, CLR_ORANGE),
DRGN_ARMR("黒ドラゴンの鱗鎧",       1, DISINT_RES, 1200, 1, CLR_BLACK),
DRGN_ARMR("青ドラゴンの鱗鎧",       1, SHOCK_RES,   900, 1, CLR_BLUE),
DRGN_ARMR("緑ドラゴンの鱗鎧",       1, POISON_RES,  900, 1, CLR_GREEN),
DRGN_ARMR("黄色ドラゴンの鱗鎧",     1, ACID_RES,    900, 1, CLR_YELLOW),
/* For now, only dragons leave these. */
/* 3.4.1: dragon scales left classified as "non-magic"; they confer
   magical properties but are produced "naturally" */
DRGN_ARMR("灰色ドラゴンの鱗",       0, ANTIMAGIC,   700, 7, CLR_GRAY),
DRGN_ARMR("銀色ドラゴンの鱗",       0, REFLECTING,  700, 7, DRAGON_SILVER),
#if 0 /* DEFERRED */
DRGN_ARMR("shimmering dragon scales",  0, DISPLACED,   700, 7, CLR_CYAN),
#endif
DRGN_ARMR("赤色ドラゴンの鱗",       0, FIRE_RES,    500, 7, CLR_RED),
DRGN_ARMR("白ドラゴンの鱗",         0, COLD_RES,    500, 7, CLR_WHITE),
DRGN_ARMR("オレンジドラゴンの鱗",   0, SLEEP_RES,   500, 7, CLR_ORANGE),
DRGN_ARMR("黒ドラゴンの鱗",         0, DISINT_RES,  700, 7, CLR_BLACK),
DRGN_ARMR("青ドラゴンの鱗",         0, SHOCK_RES,   500, 7, CLR_BLUE),
DRGN_ARMR("緑ドラゴンの鱗",         0, POISON_RES,  500, 7, CLR_GREEN),
DRGN_ARMR("黄色ドラゴンの鱗",       0, ACID_RES,    500, 7, CLR_YELLOW),
#undef DRGN_ARMR
/* other suits */
ARMOR("鋼鉄の鎧", None,
      1, 0, 1,  0, 44, 5, 450, 600,  3, 2,  ARM_SUIT, IRON, HI_METAL),
ARMOR("水晶の鎧", None,
      1, 0, 1,  0, 10, 5, 450, 820,  3, 2,  ARM_SUIT, GLASS, CLR_WHITE),
ARMOR("青銅の鎧", None,
      1, 0, 1,  0, 25, 5, 450, 400,  4, 1,  ARM_SUIT, COPPER, HI_COPPER),
ARMOR("鉄片の鎧", None,
      1, 0, 1,  0, 62, 5, 400,  80,  4, 1,  ARM_SUIT, IRON, HI_METAL),
ARMOR("帯金の鎧", None,
      1, 0, 1,  0, 72, 5, 350,  90,  4, 1,  ARM_SUIT, IRON, HI_METAL),
ARMOR("ドワーフのミスリル服", None,
      1, 0, 0,  0, 10, 1, 150, 240,  4, 2,  ARM_SUIT, MITHRIL, HI_SILVER),
ARMOR("エルフのミスリル服", None,
      1, 0, 0,  0, 15, 1, 150, 240,  5, 2,  ARM_SUIT, MITHRIL, HI_SILVER),
ARMOR("鎖かたびら", None,
      1, 0, 0,  0, 72, 5, 300,  75,  5, 1,  ARM_SUIT, IRON, HI_METAL),
ARMOR("オークの鎖かたびら", "粗末な鎖かたびら",
      0, 0, 0,  0, 20, 5, 300,  75,  6, 1,  ARM_SUIT, IRON, CLR_BLACK),
ARMOR("鱗の鎧", None,
      1, 0, 0,  0, 72, 5, 250,  45,  6, 1,  ARM_SUIT, IRON, HI_METAL),
ARMOR("鋲付き革鎧", None,
      1, 0, 0,  0, 72, 3, 200,  15,  7, 1,  ARM_SUIT, LEATHER, HI_LEATHER),
ARMOR("鉄環の鎧", None,
      1, 0, 0,  0, 72, 5, 250, 100,  7, 1,  ARM_SUIT, IRON, HI_METAL),
ARMOR("オークの鉄環の鎧", "粗末な鉄環の鎧",
      0, 0, 0,  0, 20, 5, 250,  80,  8, 1,  ARM_SUIT, IRON, CLR_BLACK),
ARMOR("革鎧", None,
      1, 0, 0,  0, 82, 3, 150,   5,  8, 1,  ARM_SUIT, LEATHER, HI_LEATHER),
ARMOR("革の服", None,
      1, 0, 0,  0, 12, 0,  30,  10,  9, 0,  ARM_SUIT, LEATHER, CLR_BLACK),

/* shirts */
ARMOR("アロハシャツ", None,
      1, 0, 0,  0,  8, 0,   5,   3, 10, 0,  ARM_SHIRT, CLOTH, CLR_MAGENTA),
ARMOR("Ｔシャツ", None,
      1, 0, 0,  0,  2, 0,   5,   2, 10, 0,  ARM_SHIRT, CLOTH, CLR_WHITE),

/* cloaks */
CLOAK("ミイラの包帯", None,
      1, 0,          0,  0, 0,  3,  2, 10, 1,  CLOTH, CLR_GRAY),
        /* worn mummy wrapping blocks invisibility */
CLOAK("エルフのクローク", "陰気な外套",
      0, 1,    STEALTH,  8, 0, 10, 60,  9, 1,  CLOTH, CLR_BLACK),
CLOAK("オークのクローク", "粗末なマント",
      0, 0,          0,  8, 0, 10, 40, 10, 1,  CLOTH, CLR_BLACK),
CLOAK("ドワーフのクローク", "フードつきのクローク",
      0, 0,          0,  8, 0, 10, 50, 10, 1,  CLOTH, HI_CLOTH),
CLOAK("防水クローク", "つるつるしたクローク",
      0, 0,          0,  8, 0, 10, 50,  9, 2,  CLOTH, HI_CLOTH),
CLOAK("ローブ", None,
      1, 1,          0,  3, 0, 15, 50,  8, 2,  CLOTH, CLR_RED),
        /* robe was adopted from slash'em, where it's worn as a suit
           rather than as a cloak and there are several variations */
CLOAK("錬金術の仕事着", "エプロン",
      0, 1, POISON_RES,  9, 0, 10, 50,  9, 1,  CLOTH, CLR_WHITE),
CLOAK("革のクローク", None,
      1, 0,          0,  8, 0, 15, 40,  9, 1,  LEATHER, CLR_BROWN),
/* with shuffled appearances... */
CLOAK("守りのクローク", "ぼろぼろのケープ",
      0, 1, PROTECTION,  9, 0, 10, 50,  7, 3,  CLOTH, HI_CLOTH),
        /* cloak of protection is now the only item conferring MC 3 */
CLOAK("透明のクローク", "オペラクローク",
      0, 1,      INVIS, 10, 0, 10, 60,  9, 1,  CLOTH, CLR_BRIGHT_MAGENTA),
CLOAK("魔法を防ぐクローク", "装飾用の外套",
      0, 1,  ANTIMAGIC,  2, 0, 10, 60,  9, 1,  CLOTH, CLR_WHITE),
        /*  'cope' is not a spelling mistake... leave it be */
CLOAK("幻影のクローク", "布切れ",
      0, 1,  DISPLACED, 10, 0, 10, 50,  9, 1,  CLOTH, HI_CLOTH),

/* shields */
SHIELD("小さな盾", None,
       1, 0, 0,          0, 6, 0,  30,  3, 9, 0,  WOOD, HI_WOOD),
SHIELD("エルフの盾", "青と緑の盾",
       0, 0, 0,          0, 2, 0,  40,  7, 8, 0,  WOOD, CLR_GREEN),
SHIELD("ウルク・ハイの盾", "白の手の盾",
       0, 0, 0,          0, 2, 0,  50,  7, 9, 0,  IRON, HI_METAL),
SHIELD("オークの盾", "赤い目の盾",
       0, 0, 0,          0, 2, 0,  50,  7, 9, 0,  IRON, CLR_RED),
SHIELD("大きな盾", None,
       1, 0, 1,          0, 7, 0, 100, 10, 8, 0,  IRON, HI_METAL),
SHIELD("ドワーフの丸盾", "大きな丸盾",
       0, 0, 0,          0, 4, 0, 100, 10, 8, 0,  IRON, HI_METAL),
SHIELD("反射の盾", "銀色の磨かれた盾",
       0, 1, 0, REFLECTING, 3, 0,  50, 50, 8, 0,  SILVER, HI_SILVER),

/* gloves */
/* These have their color but not material shuffled, so the IRON must
 * stay CLR_BROWN (== HI_LEATHER) even though it's normally either
 * HI_METAL or CLR_BLACK.  All have shuffled descriptions.
 */
GLOVES("革の手袋", "古い手袋",
       0, 0,        0, 16, 1, 10,  8, 9, 0,  LEATHER, HI_LEATHER),
GLOVES("お手玉の小手", "詰めもののある手袋",
       0, 1, FUMBLING,  8, 1, 10, 50, 9, 0,  LEATHER, HI_LEATHER),
GLOVES("力の小手", "乗馬用の手袋",
       0, 1,        0,  8, 1, 30, 50, 9, 0,  IRON, CLR_BROWN),
GLOVES("器用さの小手", "フェンシングの小手",
       0, 1,        0,  8, 1, 10, 50, 9, 0,  LEATHER, HI_LEATHER),

/* boots */
BOOTS("かかとの低い靴", "散歩用の靴",
      0, 0,          0, 25, 2, 10,  8, 9, 0, LEATHER, HI_LEATHER),
BOOTS("鉄の靴", "固い靴",
      0, 0,          0,  7, 2, 50, 16, 8, 0, IRON, HI_METAL),
BOOTS("かかとの高い靴", "軍隊靴",
      0, 0,          0, 15, 2, 20, 12, 8, 0, LEATHER, HI_LEATHER),
/* with shuffled appearances... */
BOOTS("韋駄天の靴", "戦闘靴",
      0, 1,       FAST, 12, 2, 20, 50, 9, 0, LEATHER, HI_LEATHER),
BOOTS("水上歩行の靴", "ジャングルの靴",
      0, 1,   WWALKING, 12, 2, 15, 50, 9, 0, LEATHER, HI_LEATHER),
BOOTS("飛び跳ねる靴", "ハイキングの靴",
      0, 1,    JUMPING, 12, 2, 20, 50, 9, 0, LEATHER, HI_LEATHER),
BOOTS("エルフの靴", "長靴",
      0, 1,    STEALTH, 12, 2, 15,  8, 9, 0, LEATHER, HI_LEATHER),
BOOTS("蹴り挙げ靴", "留め金のある靴",
      0, 1,          0, 12, 2, 50,  8, 9, 0, IRON, CLR_BROWN),
        /* CLR_BROWN for same reason as gauntlets of power */
BOOTS("つまずきの靴", "乗馬用の靴",
      0, 1,   FUMBLING, 12, 2, 20, 30, 9, 0, LEATHER, HI_LEATHER),
BOOTS("浮遊の靴", "雪靴",
      0, 1, LEVITATION, 12, 2, 15, 30, 9, 0, LEATHER, HI_LEATHER),
#undef HELM
#undef CLOAK
#undef SHIELD
#undef GLOVES
#undef BOOTS
#undef ARMOR

/* rings ... */
#define RING(name,stone,power,cost,mgc,spec,mohs,metal,color) \
    OBJECT(OBJ(name, stone),                                          \
           BITS(0, 0, spec, 0, mgc, spec, 0, 0, 0,                    \
                HARDGEM(mohs), 0, P_NONE, metal),                     \
           power, RING_CLASS, 0, 0, 3, cost, 0, 0, 0, 0, 15, color)
RING("飾りの指輪", "木の指輪",
     ADORNED,                  100, 1, 1, 2, WOOD, HI_WOOD),
RING("強さの指輪", "花崗岩の指輪",
     0,                        150, 1, 1, 7, MINERAL, HI_MINERAL),
RING("体力の指輪", "オパールの指輪",
     0,                        150, 1, 1, 7, MINERAL, HI_MINERAL),
RING("命中の指輪", "土の指輪",
     0,                        150, 1, 1, 4, MINERAL, CLR_RED),
RING("攻撃の指輪", "珊瑚の指輪",
     0,                        150, 1, 1, 4, MINERAL, CLR_ORANGE),
RING("守りの指輪", "黒めのうの指輪",
     PROTECTION,               100, 1, 1, 7, MINERAL, CLR_BLACK),
        /* 'PROTECTION' intrinsic enhances MC from worn armor by +1,
           regardless of ring's enchantment; wearing a second ring of
           protection (or even one ring of protection combined with
           cloak of protection) doesn't give a second MC boost */
RING("回復の指輪", "月長石の指輪",
     REGENERATION,             200, 1, 0,  6, MINERAL, HI_MINERAL),
RING("探索の指輪", "虎目石の指輪",
     SEARCHING,                200, 1, 0,  6, GEMSTONE, CLR_BROWN),
RING("忍びの指輪", "ひすいの指輪",
     STEALTH,                  100, 1, 0,  6, GEMSTONE, CLR_GREEN),
RING("能力維持の指輪", "青銅の指輪",
     FIXED_ABIL,               100, 1, 0,  4, COPPER, HI_COPPER),
RING("浮遊の指輪", "めのうの指輪",
     LEVITATION,               200, 1, 0,  7, GEMSTONE, CLR_RED),
RING("飢餓の指輪", "トパーズの指輪",
     HUNGER,                   100, 1, 0,  8, GEMSTONE, CLR_CYAN),
RING("反感の指輪", "サファイアの指輪",
     AGGRAVATE_MONSTER,        150, 1, 0,  9, GEMSTONE, CLR_BLUE),
RING("争いの指輪", "ルビーの指輪",
     CONFLICT,                 300, 1, 0,  9, GEMSTONE, CLR_RED),
RING("警告の指輪", "ダイヤモンドの指輪",
     WARNING,                  100, 1, 0, 10, GEMSTONE, CLR_WHITE),
RING("耐毒の指輪", "真珠の指輪",
     POISON_RES,               150, 1, 0,  4, BONE, CLR_WHITE),
RING("耐炎の指輪", "鉄の指輪",
     FIRE_RES,                 200, 1, 0,  5, IRON, HI_METAL),
RING("耐冷の指輪", "真鍮の指輪",
     COLD_RES,                 150, 1, 0,  4, COPPER, HI_COPPER),
RING("耐電の指輪", "銅の指輪",
     SHOCK_RES,                150, 1, 0,  3, COPPER, HI_COPPER),
RING("自由行動の指輪", "ねじれた指輪",
     FREE_ACTION,              200, 1, 0,  6, IRON, HI_METAL),
RING("消化不良の指輪", "鋼鉄の指輪",
     SLOW_DIGESTION,           200, 1, 0,  8, IRON, HI_METAL),
RING("瞬間移動の指輪", "銀の指輪",
     TELEPORT,                 200, 1, 0,  3, SILVER, HI_SILVER),
RING("瞬間移動制御の指輪", "金の指輪",
     TELEPORT_CONTROL,         300, 1, 0,  3, GOLD, HI_GOLD),
RING("変化の指輪", "象牙の指輪",
     POLYMORPH,                300, 1, 0,  4, BONE, CLR_WHITE),
RING("変化制御の指輪", "エメラルドの指輪",
     POLYMORPH_CONTROL,        300, 1, 0,  8, GEMSTONE, CLR_BRIGHT_GREEN),
RING("透明の指輪", "針金の指輪",
     INVIS,                    150, 1, 0,  5, IRON, HI_METAL),
RING("可視の指輪", "婚約指輪",
     SEE_INVIS,                150, 1, 0,  5, IRON, HI_METAL),
RING("耐変化怪物の指輪", "光る指輪",
     PROT_FROM_SHAPE_CHANGERS, 100, 1, 0,  5, IRON, CLR_BRIGHT_CYAN),
#undef RING

/* amulets ... - THE Amulet comes last because it is special */
#define AMULET(name,desc,power,prob) \
    OBJECT(OBJ(name, desc),                                            \
           BITS(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, P_NONE, IRON),        \
           power, AMULET_CLASS, prob, 0, 20, 150, 0, 0, 0, 0, 20, HI_METAL)
AMULET("遠視の魔除け",     "円形の魔除け", TELEPAT, 175),
AMULET("命の魔除け",       "球形の魔除け", LIFESAVED, 75),
AMULET("絞殺の魔除け",     "卵型の魔除け", STRANGLED, 135),
AMULET("安眠の魔除け",   "三角形の魔除け", SLEEPY, 135),
AMULET("耐毒の魔除け",   "四角錐の魔除け", POISON_RES, 165),
AMULET("性転換の魔除け",   "四角の魔除け", 0, 130),
AMULET("無変化の魔除け",   "凹面の魔除け", UNCHANGING, 45),
AMULET("反射の魔除け",   "六角形の魔除け", REFLECTING, 75),
AMULET("呼吸の魔除け",   "八角形の魔除け", MAGICAL_BREATHING, 65),
/* fixed descriptions; description duplication is deliberate;
 * fake one must come before real one because selection for
 * description shuffling stops when a non-magic amulet is encountered
 */
OBJECT(OBJ("偽物のイェンダーの魔除け",
           "イェンダーの魔除け"),
       BITS(0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, PLASTIC),
       0, AMULET_CLASS, 0, 0, 20, 0, 0, 0, 0, 0, 1, HI_METAL),
OBJECT(OBJ("イェンダーの魔除け", /* note: description == name */
           "イェンダーの魔除け"),
       BITS(0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, MITHRIL),
       0, AMULET_CLASS, 0, 0, 20, 30000, 0, 0, 0, 0, 20, HI_METAL),
#undef AMULET

/* tools ... */
/* tools with weapon characteristics come last */
#define TOOL(name,desc,kn,mrg,mgc,chg,prob,wt,cost,mat,color) \
    OBJECT(OBJ(name, desc),                                             \
           BITS(kn, mrg, chg, 0, mgc, chg, 0, 0, 0, 0, 0, P_NONE, mat), \
           0, TOOL_CLASS, prob, 0, wt, cost, 0, 0, 0, 0, wt, color)
#define CONTAINER(name,desc,kn,mgc,chg,prob,wt,cost,mat,color) \
    OBJECT(OBJ(name, desc),                                             \
           BITS(kn, 0, chg, 1, mgc, chg, 0, 0, 0, 0, 0, P_NONE, mat),   \
           0, TOOL_CLASS, prob, 0, wt, cost, 0, 0, 0, 0, wt, color)
#define WEPTOOL(name,desc,kn,mgc,bi,prob,wt,cost,sdam,ldam,hitbon,sub,mat,clr)\
    OBJECT(OBJ(name, desc),                                             \
           BITS(kn, 0, 1, 0, mgc, 1, 0, 0, bi, 0, hitbon, sub, mat),    \
           0, TOOL_CLASS, prob, 0, wt, cost, sdam, ldam, hitbon, 0, wt, clr)
/* containers */
CONTAINER("大箱",                    None, 1, 0, 0, 40, 350,   8, WOOD, HI_WOOD),
CONTAINER("宝箱",                    None, 1, 0, 0, 35, 600,  16, WOOD, HI_WOOD),
CONTAINER("アイスボックス",          None, 1, 0, 0,  5, 900,  42, PLASTIC, CLR_WHITE),
CONTAINER("袋",                      "鞄", 0, 0, 0, 35,  15,   2, CLOTH, HI_CLOTH),
CONTAINER("防水袋",                  "鞄", 0, 0, 0,  5,  15, 100, CLOTH, HI_CLOTH),
CONTAINER("軽量化の鞄",              "鞄", 0, 1, 0, 20,  15, 100, CLOTH, HI_CLOTH),
CONTAINER("トリックの鞄",            "鞄", 0, 1, 1, 20,  15, 100, CLOTH, HI_CLOTH),
#undef CONTAINER

/* lock opening tools */
TOOL("万能鍵",                       "鍵", 0, 0, 0, 0, 80,  3, 10, IRON, HI_METAL),
TOOL("鍵開け器具",                   None, 1, 0, 0, 0, 60,  4, 20, IRON, HI_METAL),
TOOL("クレジットカード",             None, 1, 0, 0, 0, 15,  1, 10, PLASTIC, CLR_WHITE),
/* light sources */
TOOL("獣脂のろうそく",         "ろうそく", 0, 1, 0, 0, 20,  2, 10, WAX, CLR_WHITE),
TOOL("蜜蝋のろうそく",         "ろうそく", 0, 1, 0, 0,  5,  2, 20, WAX, CLR_WHITE),
TOOL("真鍮のランタン",               None, 1, 0, 0, 0, 30, 30, 12, COPPER, CLR_YELLOW),
TOOL("オイルランプ",             "ランプ", 0, 0, 0, 0, 45, 20, 10, COPPER, CLR_YELLOW),
TOOL("魔法のランプ",             "ランプ", 0, 0, 1, 0, 15, 20, 50, COPPER, CLR_YELLOW),
/* other tools */
TOOL("高価なカメラ",                 None, 1, 0, 0, 1, 15, 12,200, PLASTIC, CLR_BLACK),
TOOL("鏡",                       "ガラス", 0, 0, 0, 0, 45, 13, 10, GLASS, HI_SILVER),
TOOL("水晶玉",               "ガラスの球", 0, 0, 1, 1, 15,150, 60, GLASS, HI_GLASS),
TOOL("レンズ",                       None, 1, 0, 0, 0,  5,  3, 80, GLASS, HI_GLASS),
TOOL("目隠し",                       None, 1, 0, 0, 0, 50,  2, 20, CLOTH, CLR_BLACK),
TOOL("タオル",                       None, 1, 0, 0, 0, 50,  2, 50, CLOTH, CLR_MAGENTA),
TOOL("鞍",                           None, 1, 0, 0, 0,  5,200,150, LEATHER, HI_LEATHER),
TOOL("紐",                           None, 1, 0, 0, 0, 65, 12, 20, LEATHER, HI_LEATHER),
TOOL("聴診器",                       None, 1, 0, 0, 0, 25,  4, 75, IRON, HI_METAL),
TOOL("缶詰作成道具",                 None, 1, 0, 0, 1, 15,100, 30, IRON, HI_METAL),
TOOL("缶切り",                       None, 1, 0, 0, 0, 35,  4, 30, IRON, HI_METAL),
TOOL("脂の缶",                       None, 1, 0, 0, 1, 15, 15, 20, IRON, HI_METAL),
TOOL("人形",                         None, 1, 0, 1, 0, 25, 50, 80, MINERAL, HI_MINERAL),
        /* monster type specified by obj->corpsenm */
TOOL("魔法のマーカ",                 None, 1, 0, 1, 1, 15,  2, 50, PLASTIC, CLR_RED),
/* traps */
TOOL("地雷",                         None, 1, 0, 0, 0, 0, 300,180, IRON, CLR_RED),
TOOL("熊の罠",                       None, 1, 0, 0, 0, 0, 200, 60, IRON, HI_METAL),
/* instruments;
   "If tin whistles are made out of tin, what do they make foghorns out of?" */
TOOL("ブリキの笛",                   "笛", 0, 0, 0, 0,100, 3, 10, METAL, HI_METAL),
TOOL("魔法の笛",                     "笛", 0, 0, 1, 0, 30, 3, 10, METAL, HI_METAL),
TOOL("木のフルート",           "フルート", 0, 0, 0, 0,  4, 5, 12, WOOD, HI_WOOD),
TOOL("魔法のフルート",         "フルート", 0, 0, 1, 1,  2, 5, 36, WOOD, HI_WOOD),
TOOL("細工のほどこされたホルン", "ホルン", 0, 0, 0, 0,  5, 18, 15, BONE, CLR_WHITE),
TOOL("吹雪のホルン",             "ホルン", 0, 0, 1, 1,  2, 18, 50, BONE, CLR_WHITE),
TOOL("炎のホルン",               "ホルン", 0, 0, 1, 1,  2, 18, 50, BONE, CLR_WHITE),
TOOL("恵みのホルン",             "ホルン", 0, 0, 1, 1,  2, 18, 50, BONE, CLR_WHITE),
        /* horn, but not an instrument */
TOOL("木の竪琴",                   "竪琴", 0, 0, 0, 0,  4, 30, 50, WOOD, HI_WOOD),
TOOL("魔法の竪琴",                 "竪琴", 0, 0, 1, 1,  2, 30, 50, WOOD, HI_WOOD),
TOOL("ベル",                         None, 1, 0, 0, 0,  2, 30, 50, COPPER, HI_COPPER),
TOOL("ラッパ",                       None, 1, 0, 0, 0,  4, 10, 15, COPPER, HI_COPPER),
TOOL("革の太鼓",                   "太鼓", 0, 0, 0, 0,  4, 25, 25, LEATHER, HI_LEATHER),
TOOL("地震の太鼓",                 "太鼓", 0, 0, 1, 1,  2, 25, 25, LEATHER, HI_LEATHER),
/* tools useful as weapons */
WEPTOOL("つるはし", None,
        1, 0, 0, 20, 100,  50,  6,  3, WHACK,  P_PICK_AXE, IRON, HI_METAL),
WEPTOOL("ひっかけ棒", "鉄のフック",
        0, 0, 0,  5,  30,  50,  2,  6, WHACK,  P_FLAIL,    IRON, HI_METAL),
WEPTOOL("ユニコーンの角", None,
        1, 1, 1,  0,  20, 100, 12, 12, PIERCE, P_UNICORN_HORN,
                                                           BONE, CLR_WHITE),
        /* 3.4.1: unicorn horn left classified as "magic" */
/* two unique tools;
 * not artifacts, despite the comment which used to be here
 */
OBJECT(OBJ("祈りの燭台", "燭台"),
       BITS(0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, P_NONE, GOLD),
       0, TOOL_CLASS, 0, 0, 10, 5000, 0, 0, 0, 0, 200, HI_GOLD),
OBJECT(OBJ("開放のベル", "銀のベル"),
       BITS(0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, P_NONE, SILVER),
       0, TOOL_CLASS, 0, 0, 10, 5000, 0, 0, 0, 0, 50, HI_SILVER),
#undef TOOL
#undef WEPTOOL

/* Comestibles ... */
#define FOOD(name, prob, delay, wt, unk, tin, nutrition, color)         \
    OBJECT(OBJ(name, None),                                       \
           BITS(1, 1, unk, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, tin), 0,     \
           FOOD_CLASS, prob, delay, wt, nutrition / 20 + 5, 0, 0, 0, 0, \
           nutrition, color)
/* All types of food (except tins & corpses) must have a delay of at least 1.
 * Delay on corpses is computed and is weight dependant.
 * Domestic pets prefer tripe rations above all others.
 * Fortune cookies can be read, using them up without ingesting them.
 * Carrots improve your vision.
 * +0 tins contain monster meat.
 * +1 tins (of spinach) make you stronger (like Popeye).
 * Meatballs/sticks/rings are only created from objects via stone to flesh.
 */
/* meat */
FOOD("乾し肉",           140,  2, 10, 0, FLESH, 200, CLR_BROWN),
FOOD("死体",               0,  1,  0, 0, FLESH,   0, CLR_BROWN),
FOOD("卵",                85,  1,  1, 1, FLESH,  80, CLR_WHITE),
FOOD("ミートボール",       0,  1,  1, 0, FLESH,   5, CLR_BROWN),
FOOD("ミートスティック",   0,  1,  1, 0, FLESH,   5, CLR_BROWN),
FOOD("大きな肉のかたまり", 0, 20,400, 0, FLESH,2000, CLR_BROWN),
/* special case because it's not mergable */
OBJECT(OBJ("meat ring", None),
       BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FLESH),
       0, FOOD_CLASS, 0, 1, 5, 1, 0, 0, 0, 0, 5, CLR_BROWN),
/* pudding 'corpses' will turn into these and combine;
   must be in same order as the pudding monsters */
FOOD("灰色ウーズの塊",     0,  2, 20, 0, FLESH,  20, CLR_GRAY),
FOOD("茶色プリンの塊",     0,  2, 20, 0, FLESH,  20, CLR_BROWN),
FOOD("緑スライムの塊",     0,  2, 20, 0, FLESH,  20, CLR_GREEN),
FOOD("黒プリンの塊",       0,  2, 20, 0, FLESH,  20, CLR_BLACK),

/* fruits & veggies */
FOOD("ワカメ",             0,  1,  1, 0, VEGGY,  30, CLR_GREEN),
FOOD("ユーカリの葉",       3,  1,  1, 0, VEGGY,  30, CLR_GREEN),
FOOD("りんご",            15,  1,  2, 0, VEGGY,  50, CLR_RED),
FOOD("オレンジ",          10,  1,  2, 0, VEGGY,  80, CLR_ORANGE),
FOOD("洋ナシ",            10,  1,  2, 0, VEGGY,  50, CLR_BRIGHT_GREEN),
FOOD("メロン",            10,  1,  5, 0, VEGGY, 100, CLR_BRIGHT_GREEN),
FOOD("バナナ",            10,  1,  2, 0, VEGGY,  80, CLR_YELLOW),
FOOD("にんじん",          15,  1,  2, 0, VEGGY,  50, CLR_ORANGE),
FOOD("トリカブト",         7,  1,  1, 0, VEGGY,  40, CLR_GREEN),
FOOD("にんにく",           7,  1,  1, 0, VEGGY,  40, CLR_WHITE),
/* name of slime mold is changed based on player's OPTION=fruit:something
   and bones data might have differently named ones from prior games */
FOOD("ねばねばカビ",      75,  1,  5, 0, VEGGY, 250, HI_ORGANIC),

/* people food */
FOOD("ロイヤルゼリー",     0,  1,  2, 0, VEGGY, 200, CLR_YELLOW),
FOOD("クリームパイ",      25,  1, 10, 0, VEGGY, 100, CLR_WHITE),
FOOD("キャンディ",        13,  1,  2, 0, VEGGY, 100, CLR_BROWN),
FOOD("占いクッキー",      55,  1,  1, 0, VEGGY,  40, CLR_YELLOW),
FOOD("パンケーキ",        25,  2,  2, 0, VEGGY, 200, CLR_YELLOW),
FOOD("レンバス",          20,  2,  5, 0, VEGGY, 800, CLR_WHITE),
FOOD("クラム",            20,  3, 15, 0, VEGGY, 600, HI_ORGANIC),
FOOD("食料",             380,  5, 20, 0, VEGGY, 800, HI_ORGANIC),
FOOD("Ｋレーション",       0,  1, 10, 0, VEGGY, 400, HI_ORGANIC),
FOOD("Ｃレーション",       0,  1, 10, 0, VEGGY, 300, HI_ORGANIC),
/* tins have type specified by obj->spe (+1 for spinach, other implies
   flesh; negative specifies preparation method {homemade,boiled,&c})
   and by obj->corpsenm (type of monster flesh) */
FOOD("缶",                  75,  0, 10, 1, METAL,   0, HI_METAL),
#undef FOOD

/* potions ... */
#define POTION(name,desc,mgc,power,prob,cost,color) \
    OBJECT(OBJ(name, desc),                                             \
           BITS(0, 1, 0, 0, mgc, 0, 0, 0, 0, 0, 0, P_NONE, GLASS),      \
           power, POTION_CLASS, prob, 0, 20, cost, 0, 0, 0, 0, 10, color)
POTION("能力獲得の薬",     "ルビー色の薬",  1, 0, 42, 300, CLR_RED),
POTION("能力回復の薬",     "ピンク色の薬",  1, 0, 40, 100, CLR_BRIGHT_MAGENTA),
POTION("混乱の薬",       "オレンジ色の薬",  1, CONFUSION, 42, 100, CLR_ORANGE),
POTION("盲目の薬",             "黄色の薬",  1, BLINDED, 40, 150, CLR_YELLOW),
POTION("麻痺の薬",     "エメラルド色の薬",  1, 0, 42, 300, CLR_BRIGHT_GREEN),
POTION("加速の薬",           "暗緑色の薬",  1, FAST, 42, 200, CLR_GREEN),
POTION("浮遊の薬",         "シアン色の薬",  1, LEVITATION, 42, 200, CLR_CYAN),
POTION("幻覚の薬",             "水色の薬",  1, HALLUC, 40, 100, CLR_CYAN),
POTION("透明の薬",       "明るい青色の薬",  1, INVIS, 40, 150, CLR_BRIGHT_BLUE),
POTION("可視の薬",       "マゼンダ色の薬",  1, SEE_INVIS, 42, 50, CLR_MAGENTA),
POTION("回復の薬",           "赤紫色の薬",  1, 0, 57, 100, CLR_MAGENTA),
POTION("超回復の薬",         "暗褐色の薬",  1, 0, 47, 100, CLR_RED),
POTION("レベルアップの薬", "ミルク色の薬",  1, 0, 20, 300, CLR_WHITE),
POTION("啓蒙の薬",     "渦を巻いている薬",  1, 0, 20, 200, CLR_BROWN),
POTION("怪物を探す薬",   "泡だっている薬",  1, 0, 40, 150, CLR_WHITE),
POTION("物体を探す薬",   "煙がでている薬",  1, 0, 42, 150, CLR_GRAY),
POTION("魔力の薬",         "曇っている薬",  1, 0, 42, 150, CLR_WHITE),
POTION("睡眠の薬",       "沸騰している薬",  1, 0, 42, 100, CLR_GRAY),
POTION("完全回復の薬",           "黒い薬",  1, 0, 10, 200, CLR_BLACK),
POTION("変化の薬",             "金色の薬",  1, 0, 10, 200, CLR_YELLOW),
POTION("酔っぱらいの薬",       "茶色の薬",  0, 0, 42,  50, CLR_BROWN),
POTION("病気の薬",       "発泡している薬",  0, 0, 42,  50, CLR_CYAN),
POTION("フルーツジュース", "陰気な色の薬",  0, 0, 42,  50, CLR_BLACK),
POTION("酸の薬",                 "白い薬",  0, 0, 10, 250, CLR_WHITE),
POTION("油",                   "濃黒の薬",  0, 0, 30, 250, CLR_BROWN),
/* fixed description
 */
POTION("水",                   "無色の薬",  0, 0, 92, 100, CLR_CYAN),
#undef POTION

/* scrolls ... */
#define SCROLL(name,text,mgc,prob,cost) \
    OBJECT(OBJ(name, text),                                           \
           BITS(0, 1, 0, 0, mgc, 0, 0, 0, 0, 0, 0, P_NONE, PAPER),    \
           0, SCROLL_CLASS, prob, 0, 5, cost, 0, 0, 0, 0, 6, HI_PAPER)
SCROLL("鎧に魔法をかける巻物",     "『へろへろっす』と書かれた巻物",  1,  63,  80),
SCROLL("鎧を破壊する巻物",       "『ぱーるあぱっち』と書かれた巻物",  1,  45, 100),
SCROLL("怪物を混乱させる巻物", "『せぶんすぎょざー』と書かれた巻物",  1,  53, 100),
SCROLL("怪物を怯えさせる巻物",     "『びーえすでー』と書かれた巻物",  1,  35, 100),
SCROLL("解呪の巻物",                 "『おろかぶー』と書かれた巻物",  1,  65,  80),
SCROLL("武器に魔法をかける巻物", "『あらほらさっさ』と書かれた巻物",  1,  80,  60),
SCROLL("怪物を作る巻物",             "『りなっくす』と書かれた巻物",  1,  45, 200),
SCROLL("怪物を飼いならす巻物",       "『げろげーろ』と書かれた巻物",  1,  15, 200),
SCROLL("虐殺の巻物",         "『ばくしょうもんだい』と書かれた巻物",  1,  15, 300),
SCROLL("光の巻物",               "『ちぇっくめいと』と書かれた巻物",  1,  90,  50),
SCROLL("瞬間移動の巻物",       "『おーくすだーびー』と書かれた巻物",  1,  55, 100),
SCROLL("金貨を探す巻物",           "『かねかねかね』と書かれた巻物",  1,  33, 100),
SCROLL("食料を探す巻物",         "『おぶちけいぞう』と書かれた巻物",  1,  25, 100),
SCROLL("識別の巻物",                   "『くっくー』と書かれた巻物",  1, 180,  20),
SCROLL("地図の巻物",                 "『じゃいすと』と書かれた巻物",  1,  45, 100),
SCROLL("記憶喪失の巻物",             "『まえをみろ』と書かれた巻物",  1,  35, 200),
SCROLL("炎の巻物",             "『どっくりびんきー』と書かれた巻物",  1,  30, 100),
SCROLL("大地の巻物",         "『よしのやぎゅどーん』と書かれた巻物",  1,  18, 200),
SCROLL("罰の巻物",                 "『すてーきみゃ』と書かれた巻物",  1,  15, 300),
SCROLL("充填の巻物",               "『じゃいしょく』と書かれた巻物",  1,  15, 300),
SCROLL("悪臭雲の巻物",           "『ちゃんぴお〜ん』と書かれた巻物",  1,  15, 300),
    /* Extra descriptions, shuffled into use at start of new game.
     * Code in win/share/tilemap.c depends on SCR_STINKING_CLOUD preceding
     * these and on how many of them there are.  If a real scroll gets added
     * after stinking cloud or the number of extra descriptions changes,
     * tilemap.c must be modified to match.
     */
SCROLL(None,       "『はにゃ〜ん』と書かれた巻物",  1,   0, 100),
SCROLL(None,       "『ぽちっとな』と書かれた巻物",  1,   0, 100),
SCROLL(None, "『しびびんしびびん』と書かれた巻物",  1,   0, 100),
SCROLL(None,     "『うしろをみろ』と書かれた巻物",  1,   0, 100),
SCROLL(None,         "『ETAOIN SHRDLU』と書かれた巻物",  1,   0, 100),
SCROLL(None,           "『LOREM IPSUM』と書かれた巻物",  1,   0, 100),
SCROLL(None,                 "『FNORD』と書かれた巻物",  1,   0, 100), /* Illuminati */
SCROLL(None,               "『KO BATE』と書かれた巻物",  1,   0, 100), /* Kurd Lasswitz */
SCROLL(None,         "『ABRA KA DABRA』と書かれた巻物",  1,   0, 100), /* traditional incantation */
SCROLL(None,          "『ASHPD SODALG』と書かれた巻物",  1,   0, 100), /* Portal */
SCROLL(None,               "『ZLORFIK』と書かれた巻物",  1,   0, 100), /* Zak McKracken */
SCROLL(None,         "『GNIK SISI VLE』と書かれた巻物",  1,   0, 100), /* Zak McKracken */
SCROLL(None,       "『HAPAX LEGOMENON』と書かれた巻物",  1,   0, 100),
SCROLL(None,     "『EIRIS SAZUN IDISI』と書かれた巻物",  1,   0, 100), /* Merseburg Incantations */
SCROLL(None,       "『PHOL ENDE WODAN』と書かれた巻物",  1,   0, 100), /* Merseburg Incantations */
SCROLL(None,                 "『GHOTI』と書かれた巻物",  1,   0, 100), /* pronounced as 'fish',
                                                        George Bernard Shaw */
SCROLL(None, "『MAPIRO MAHAMA DIROMAT』と書かれた巻物", 1, 0, 100), /* Wizardry */
SCROLL(None,     "『VAS CORP BET MANI』と書かれた巻物",  1,   0, 100), /* Ultima */
SCROLL(None,               "『XOR OTA』と書かれた巻物",  1,   0, 100), /* Aarne Haapakoski */
SCROLL(None,    "『STRC PRST SKRZ KRK』と書かれた巻物",  1,   0, 100), /* Czech and Slovak
                                                        tongue-twister */
    /* These must come last because they have special fixed descriptions.
     */
#ifdef MAIL
SCROLL("手紙の巻物",         "消印の押された巻物",  0,   0,   0),
#endif
SCROLL("白紙の巻物",           "ラベルのない巻物",  0,  28,  60),
#undef SCROLL

/* spellbooks ... */
    /* Expanding beyond 52 spells would require changes in spellcasting
     * or imposition of a limit on number of spells hero can know because
     * they are currently assigned successive letters, a-zA-Z, when learned.
     * [The existing spell sorting capability could conceivably be extended
     * to enable moving spells from beyond Z to within it, bumping others
     * out in the process, allowing more than 52 spells be known but keeping
     * only 52 be castable at any given time.]
     */
#define SPELL(name,desc,sub,prob,delay,level,mgc,dir,color)  \
    OBJECT(OBJ(name, desc),                                             \
           BITS(0, 0, 0, 0, mgc, 0, 0, 0, 0, 0, dir, sub, PAPER),       \
           0, SPBOOK_CLASS, prob, delay, 50, level * 100,               \
           0, 0, 0, level, 20, color)
/* Spellbook description normally refers to book covers (primarily color).
   Parchment and vellum would never be used for such, but rather than
   eliminate those, finagle their definitions to refer to the pages
   rather than the cover.  They are made from animal skin (typically of
   a goat or sheep) and books using them for pages generally need heavy
   covers with straps or clamps to tightly close the book in order to
   keep the pages flat.  (However, a wooden cover might itself be covered
   by a sheet of parchment, making this become less of an exception.  Also,
   changing the internal composition from paper to leather makes eating a
   parchment or vellum spellbook break vegetarian conduct, as it should.) */
#define PAPER LEATHER /* override enum for use in SPELL() expansion */
SPELL("穴掘りの魔法書",   "羊皮紙の魔法書",
      P_MATTER_SPELL,      20,  6, 5, 1, RAY, HI_LEATHER),
SPELL("矢の魔法書",       "子牛皮の魔法書",
      P_ATTACK_SPELL,      45,  2, 2, 1, RAY, HI_LEATHER),
#undef PAPER /* revert to normal material */
SPELL("火の玉の魔法書",   "ぼろぼろの魔法書",
      P_ATTACK_SPELL,      20,  4, 4, 1, RAY, HI_PAPER),
SPELL("冷気の魔法書",     "ページの折られた魔法書",
      P_ATTACK_SPELL,      10,  7, 4, 1, RAY, HI_PAPER),
SPELL("眠りの魔法書",     "まだらの魔法書",
      P_ENCHANTMENT_SPELL, 50,  1, 1, 1, RAY, HI_PAPER),
SPELL("死の指の魔法書",   "よごれた魔法書",
      P_ATTACK_SPELL,       5, 10, 7, 1, RAY, HI_PAPER),
SPELL("灯りの魔法書",     "布地の魔法書",
      P_DIVINATION_SPELL,  45,  1, 1, 1, NODIR, HI_CLOTH),
SPELL("怪物を探す魔法書", "leathery",
      P_DIVINATION_SPELL,  43,  1, 1, 1, NODIR, HI_LEATHER),
SPELL("回復の魔法書",     "白い魔法書",
      P_HEALING_SPELL,     40,  2, 1, 1, IMMEDIATE, CLR_WHITE),
SPELL("開錠の魔法書",     "ピンク色の魔法書",
      P_MATTER_SPELL,      35,  1, 1, 1, IMMEDIATE, CLR_BRIGHT_MAGENTA),
SPELL("衝撃の魔法書",     "赤い魔法書",
      P_ATTACK_SPELL,      35,  2, 1, 1, IMMEDIATE, CLR_RED),
SPELL("混乱の魔法書",     "オレンジ色の魔法書",
      P_ENCHANTMENT_SPELL, 30,  2, 2, 1, IMMEDIATE, CLR_ORANGE),
SPELL("盲目を癒す魔法書", "黄色い魔法書",
      P_HEALING_SPELL,     25,  2, 2, 1, IMMEDIATE, CLR_YELLOW),
SPELL("脱力の魔法書",     "ビロードの魔法書",
      P_ATTACK_SPELL,      10,  2, 2, 1, IMMEDIATE, CLR_MAGENTA),
SPELL("牛歩の魔法書",     "淡緑色の魔法書",
      P_ENCHANTMENT_SPELL, 30,  2, 2, 1, IMMEDIATE, CLR_BRIGHT_GREEN),
SPELL("施錠の魔法書",     "濃緑色の魔法書",
      P_MATTER_SPELL,      30,  3, 2, 1, IMMEDIATE, CLR_GREEN),
SPELL("怪物を造る魔法書", "青緑色の魔法書",
      P_CLERIC_SPELL,      35,  3, 2, 1, NODIR, CLR_BRIGHT_CYAN),
SPELL("食料を探す魔法書", "シアン色の魔法書",
      P_DIVINATION_SPELL,  30,  3, 2, 1, NODIR, CLR_CYAN),
SPELL("恐怖の魔法書",     "淡青の魔法書",
      P_ENCHANTMENT_SPELL, 25,  3, 3, 1, NODIR, CLR_BRIGHT_BLUE),
SPELL("千里眼の魔法書",   "濃青の魔法書",
      P_DIVINATION_SPELL,  15,  3, 3, 1, NODIR, CLR_BLUE),
SPELL("病気を癒す魔法書", "藍色の魔法書",
      P_HEALING_SPELL,     32,  3, 3, 1, NODIR, CLR_BLUE),
SPELL("魅了の魔法書",     "マゼンダ色の魔法書",
      P_ENCHANTMENT_SPELL, 20,  3, 3, 1, IMMEDIATE, CLR_MAGENTA),
SPELL("速攻の魔法書",     "紫色の魔法書",
      P_ESCAPE_SPELL,      33,  4, 3, 1, NODIR, CLR_MAGENTA),
SPELL("霊感の魔法書",     "スミレ色の魔法書",
      P_DIVINATION_SPELL,  20,  4, 3, 1, NODIR, CLR_MAGENTA),
SPELL("浮遊の魔法書",     "黄褐色の魔法書",
      P_ESCAPE_SPELL,      20,  4, 4, 1, NODIR, CLR_BROWN),
SPELL("超回復の魔法書",   "ラシャの魔法書",
      P_HEALING_SPELL,     27,  5, 3, 1, IMMEDIATE, CLR_GREEN),
SPELL("能力回復の魔法書", "淡茶色の魔法書",
      P_HEALING_SPELL,     25,  5, 4, 1, NODIR, CLR_BROWN),
SPELL("透明の魔法書",     "濃茶色の魔法書",
      P_ESCAPE_SPELL,      25,  5, 4, 1, NODIR, CLR_BROWN),
SPELL("宝を探す魔法書",   "灰色の魔法書",
      P_DIVINATION_SPELL,  20,  5, 4, 1, NODIR, CLR_GRAY),
SPELL("解呪の魔法書",     "くしゃくしゃの魔法書",
      P_CLERIC_SPELL,      25,  5, 3, 1, NODIR, HI_PAPER),
SPELL("地図の魔法書",     "ほこりっぽい魔法書",
      P_DIVINATION_SPELL,  18,  7, 5, 1, NODIR, HI_PAPER),
SPELL("識別の魔法書",     "青銅の魔法書",
      P_DIVINATION_SPELL,  20,  6, 3, 1, NODIR, HI_COPPER),
SPELL("蘇生の魔法書",     "銅の魔法書",
      P_CLERIC_SPELL,      16,  8, 6, 1, IMMEDIATE, HI_COPPER),
SPELL("変化の魔法書",     "銀の魔法書",
      P_MATTER_SPELL,      10,  8, 6, 1, IMMEDIATE, HI_SILVER),
SPELL("瞬間移動の魔法書", "金の魔法書",
      P_ESCAPE_SPELL,      15,  6, 6, 1, IMMEDIATE, HI_GOLD),
SPELL("造魔の魔法書",     "きらびやかな魔法書",
      P_CLERIC_SPELL,      10,  7, 6, 1, NODIR, CLR_WHITE),
SPELL("無力化の魔法書",   "輝く魔法書",
      P_MATTER_SPELL,      15,  8, 7, 1, IMMEDIATE, CLR_WHITE),
SPELL("守りの魔法書",     "鉛色の魔法書",
      P_CLERIC_SPELL,      18,  3, 1, 1, NODIR, HI_PAPER),
SPELL("跳躍の魔法書",     "薄い色の魔法書",
      P_ESCAPE_SPELL,      20,  3, 1, 1, IMMEDIATE, HI_PAPER),
SPELL("軟化の魔法書",     "濃い色の魔法書",
      P_HEALING_SPELL,     15,  1, 3, 1, IMMEDIATE, HI_PAPER),
#if 0 /* DEFERRED */
/* from slash'em, create a tame critter which explodes when attacking,
   damaging adjacent creatures--friend or foe--and dying in the process */
SPELL("flame sphere",     "麻の魔法書",
      P_MATTER_SPELL,      20,  2, 1, 1, NODIR, CLR_BROWN),
SPELL("freeze sphere",    "固い表紙の魔法書",
      P_MATTER_SPELL,      20,  2, 1, 1, NODIR, CLR_BROWN),
#endif
/* books with fixed descriptions
 */
SPELL("白紙の魔法書", "真っ白な魔法書", P_NONE, 18, 0, 0, 0, 0, HI_PAPER),
/* tribute book for 3.6 */
OBJECT(OBJ("小説", "ペーパーバックの魔法書"),
       BITS(0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, PAPER),
       0, SPBOOK_CLASS, 0, 0, 0, 20, 0, 0, 0, 1, 20, CLR_BRIGHT_BLUE),
/* a special, one of a kind, spellbook */
OBJECT(OBJ("死者の書", "パピルスの魔法書"),
       BITS(0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, P_NONE, PAPER),
       0, SPBOOK_CLASS, 0, 0, 20, 10000, 0, 0, 0, 7, 20, HI_PAPER),
#undef SPELL

/* wands ... */
#define WAND(name,typ,prob,cost,mgc,dir,metal,color) \
    OBJECT(OBJ(name, typ),                                              \
           BITS(0, 0, 1, 0, mgc, 1, 0, 0, 0, 0, dir, P_NONE, metal),    \
           0, WAND_CLASS, prob, 0, 7, cost, 0, 0, 0, 0, 30, color)
WAND("灯りの杖",             "ガラスの杖", 95, 100, 1, NODIR, GLASS, HI_GLASS),
WAND("扉探索の杖",
                        "バルサの杖", 50, 150, 1, NODIR, WOOD, HI_WOOD),
WAND("啓蒙の杖",               "水晶の杖", 15, 150, 1, NODIR, GLASS, HI_GLASS),
WAND("怪物を造る杖",             "楓の杖", 45, 200, 1, NODIR, WOOD, HI_WOOD),
WAND("願いの杖",                 "松の杖",  5, 500, 1, NODIR, WOOD, HI_WOOD),
WAND("単なる杖",                 "樫の杖", 25, 100, 0, IMMEDIATE, WOOD, HI_WOOD),
WAND("衝撃の杖",               "黒檀の杖", 75, 150, 1, IMMEDIATE, WOOD, HI_WOOD),
WAND("透明化の杖",           "大理石の杖", 45, 150, 1, IMMEDIATE, MINERAL, HI_MINERAL),
WAND("減速の杖",             "ブリキの杖", 50, 150, 1, IMMEDIATE, METAL, HI_METAL),
WAND("加速の杖",               "真鍮の杖", 50, 150, 1, IMMEDIATE, COPPER, HI_COPPER),
WAND("蘇生の杖",                 "銅の杖", 50, 150, 1, IMMEDIATE, COPPER, HI_COPPER),
WAND("変化の杖",                 "銀の杖", 45, 200, 1, IMMEDIATE, SILVER, HI_SILVER),
WAND("無力化の杖",         "プラチナの杖", 45, 200, 1, IMMEDIATE, PLATINUM, CLR_WHITE),
WAND("瞬間移動の杖",     "イリジウムの杖", 45, 200, 1, IMMEDIATE, METAL,
                                                             CLR_BRIGHT_CYAN),
WAND("開錠の杖",               "亜鉛の杖", 25, 150, 1, IMMEDIATE, METAL, HI_METAL),
WAND("施錠の杖",       "アルミニウムの杖", 25, 150, 1, IMMEDIATE, METAL, HI_METAL),
WAND("探査する杖",       "ウラニウムの杖", 30, 150, 1, IMMEDIATE, METAL, HI_METAL),
WAND("穴掘りの杖",               "鉄の杖", 55, 150, 1, RAY, IRON, HI_METAL),
WAND("矢の杖",                 "鋼鉄の杖", 50, 150, 1, RAY, IRON, HI_METAL),
WAND("炎の杖",               "六角形の杖", 40, 175, 1, RAY, IRON, HI_METAL),
WAND("吹雪の杖",                 "短い杖", 40, 175, 1, RAY, IRON, HI_METAL),
WAND("眠りの杖", "ルーン文字の書かれた杖", 50, 175, 1, RAY, IRON, HI_METAL),
WAND("死の杖",                   "長い杖",  5, 500, 1, RAY, IRON, HI_METAL),
WAND("雷の杖",                 "曲った杖", 40, 175, 1, RAY, IRON, HI_METAL),
/* extra descriptions, shuffled into use at start of new game */
WAND(None,                     "二叉の杖",  0, 150, 1, 0, WOOD, HI_WOOD),
WAND(None,     "くさびの打ちつけられた杖",  0, 150, 1, 0, IRON, HI_METAL),
WAND(None,           "宝石が埋められた杖",  0, 150, 1, 0, IRON, HI_MINERAL),
#undef WAND

/* coins ... - so far, gold is all there is */
#define COIN(name,prob,metal,worth) \
    OBJECT(OBJ(name, None),                                        \
           BITS(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, metal),    \
           0, COIN_CLASS, prob, 0, 1, worth, 0, 0, 0, 0, 0, HI_GOLD)
COIN("金貨", 1000, GOLD, 1),
#undef COIN

/* gems ... - includes stones and rocks but not boulders */
#define GEM(name,desc,prob,wt,gval,nutr,mohs,glass,color) \
    OBJECT(OBJ(name, desc),                                             \
           BITS(0, 1, 0, 0, 0, 0, 0, 0, 0,                              \
                HARDGEM(mohs), 0, -P_SLING, glass),                     \
           0, GEM_CLASS, prob, 0, 1, gval, 3, 3, 0, 0, nutr, color)
#define ROCK(name,desc,kn,prob,wt,gval,sdam,ldam,mgc,nutr,mohs,glass,color) \
    OBJECT(OBJ(name, desc),                                             \
           BITS(kn, 1, 0, 0, mgc, 0, 0, 0, 0,                           \
                HARDGEM(mohs), 0, -P_SLING, glass),                     \
           0, GEM_CLASS, prob, 0, wt, gval, sdam, ldam, 0, 0, nutr, color)
GEM("ディリジウムの結晶", "白い石",  2, 1, 4500, 15,  5, GEMSTONE, CLR_WHITE),
GEM("ダイヤモンド",       "白い石",  3, 1, 4000, 15, 10, GEMSTONE, CLR_WHITE),
GEM("ルビー",             "赤い石",  4, 1, 3500, 15,  9, GEMSTONE, CLR_RED),
GEM("橙水晶",           "橙色の石",  3, 1, 3250, 15,  9, GEMSTONE, CLR_ORANGE),
GEM("サファイア",         "青い石",  4, 1, 3000, 15,  9, GEMSTONE, CLR_BLUE),
GEM("黒オパール",         "黒い石",  3, 1, 2500, 15,  8, GEMSTONE, CLR_BLACK),
GEM("エメラルド",         "緑の石",  5, 1, 2500, 15,  8, GEMSTONE, CLR_GREEN),
GEM("トルコ石",           "緑の石",  6, 1, 2000, 15,  6, GEMSTONE, CLR_GREEN),
GEM("黄水晶",           "黄色い石",  4, 1, 1500, 15,  6, GEMSTONE, CLR_YELLOW),
GEM("アクアマリン",       "緑の石",  6, 1, 1500, 15,  8, GEMSTONE, CLR_GREEN),
GEM("琥珀",           "茶褐色の石",  8, 1, 1000, 15,  2, GEMSTONE, CLR_BROWN),
GEM("トパーズ",       "茶褐色の石", 10, 1,  900, 15,  8, GEMSTONE, CLR_BROWN),
GEM("黒玉",               "黒い石",  6, 1,  850, 15,  7, GEMSTONE, CLR_BLACK),
GEM("オパール",           "白い石", 12, 1,  800, 15,  6, GEMSTONE, CLR_WHITE),
GEM("金緑石",           "黄色い石",  8, 1,  700, 15,  5, GEMSTONE, CLR_YELLOW),
GEM("ガーネット",         "赤い石", 12, 1,  700, 15,  7, GEMSTONE, CLR_RED),
GEM("アメジスト",         "紫の石", 14, 1,  600, 15,  7, GEMSTONE, CLR_MAGENTA),
GEM("ジャスパー",         "赤い石", 15, 1,  500, 15,  7, GEMSTONE, CLR_RED),
GEM("フルオライト",       "紫の石", 15, 1,  400, 15,  4, GEMSTONE, CLR_MAGENTA),
GEM("黒燿石",             "黒い石",  9, 1,  200, 15,  6, GEMSTONE, CLR_BLACK),
GEM("めのう",           "橙色の石", 12, 1,  200, 15,  6, GEMSTONE, CLR_ORANGE),
GEM("ひすい",             "緑の石", 10, 1,  300, 15,  6, GEMSTONE, CLR_GREEN),
GEM("白いガラス", "白い石",
    77, 1, 0, 6, 5, GLASS, CLR_WHITE),
GEM("青いガラス", "青い石",
    77, 1, 0, 6, 5, GLASS, CLR_BLUE),
GEM("赤いガラス", "赤い石",
    77, 1, 0, 6, 5, GLASS, CLR_RED),
GEM("茶褐色のガラス", "茶褐色の石",
    77, 1, 0, 6, 5, GLASS, CLR_BROWN),
GEM("橙色のガラス", "橙色の石",
    76, 1, 0, 6, 5, GLASS, CLR_ORANGE),
GEM("黄色のガラス", "黄色い石",
    77, 1, 0, 6, 5, GLASS, CLR_YELLOW),
GEM("黒色のガラス", "黒い石",
    76, 1, 0, 6, 5, GLASS, CLR_BLACK),
GEM("緑のガラス", "緑の石",
    77, 1, 0, 6, 5, GLASS, CLR_GREEN),
GEM("紫のガラス", "紫の石",
    77, 1, 0, 6, 5, GLASS, CLR_MAGENTA),

/* Placement note: there is a wishable subrange for
 * "gray stones" in the o_ranges[] array in objnam.c
 * that is currently everything between luckstones and flint
 * (inclusive).
 */
ROCK("幸せの石", "灰色の宝石", 0,  10,  10, 60, 3, 3, 1, 10, 7, MINERAL, CLR_GRAY),
ROCK("重し", "灰色の宝石",     0,  10, 500,  1, 3, 3, 1, 10, 6, MINERAL, CLR_GRAY),
ROCK("試金石", "灰色の宝石",   0,   8,  10, 45, 3, 3, 1, 10, 6, MINERAL, CLR_GRAY),
ROCK("火打ち石", "灰色の宝石", 0,  10,  10,  1, 6, 6, 0, 10, 7, MINERAL, CLR_GRAY),
ROCK("石", None,               1, 100,  10,  0, 3, 3, 0, 10, 7, MINERAL, CLR_GRAY),
#undef GEM
#undef ROCK

/* miscellaneous ... */
/* Note: boulders and rocks are not normally created at random; the
 * probabilities only come into effect when you try to polymorph them.
 * Boulders weigh more than MAX_CARR_CAP; statues use corpsenm to take
 * on a specific type and may act as containers (both affect weight).
 */
OBJECT(OBJ("岩", None),
       BITS(1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, P_NONE, MINERAL), 0,
       ROCK_CLASS, 100, 0, 6000, 0, 20, 20, 0, 0, 2000, HI_MINERAL),
OBJECT(OBJ("像", None),
       BITS(1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, P_NONE, MINERAL), 0,
       ROCK_CLASS, 900, 0, 2500, 0, 20, 20, 0, 0, 2500, CLR_WHITE),

OBJECT(OBJ("重い鉄球", None),
       BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, WHACK, P_NONE, IRON), 0,
       BALL_CLASS, 1000, 0, 480, 10, 25, 25, 0, 0, 200, HI_METAL),
        /* +d4 when "very heavy" */
OBJECT(OBJ("鉄の鎖", None),
       BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, WHACK, P_NONE, IRON), 0,
       CHAIN_CLASS, 1000, 0, 120, 0, 4, 4, 0, 0, 200, HI_METAL),
        /* +1 both l & s */

/* Venom is normally a transitory missile (spit by various creatures)
 * but can be wished for in wizard mode so could occur in bones data.
 */
OBJECT(OBJ("盲目の毒液", "毒液のしぶき"),
       BITS(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, P_NONE, LIQUID), 0,
       VENOM_CLASS, 500, 0, 1, 0, 0, 0, 0, 0, 0, HI_ORGANIC),
OBJECT(OBJ("酸の毒液", "毒液のしぶき"),
       BITS(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, P_NONE, LIQUID), 0,
       VENOM_CLASS, 500, 0, 1, 0, 6, 6, 0, 0, 0, HI_ORGANIC),
        /* +d6 small or large */

/* fencepost, the deadly Array Terminator -- name [1st arg] *must* be NULL */
OBJECT(OBJ(None, None),
       BITS(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, 0), 0,
       ILLOBJ_CLASS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
}; /* objects[] */

#ifndef OBJECTS_PASS_2_

/* perform recursive compilation for second structure */
#undef OBJ
#undef OBJECT
#define OBJECTS_PASS_2_
#include "objects.c"

/* clang-format on */
/* *INDENT-ON* */

void NDECL(objects_init);

/* dummy routine used to force linkage */
void
objects_init()
{
    return;
}

#endif /* !OBJECTS_PASS_2_ */

/*objects.c*/
