OSDN Git Service

Extend features of tiling. (separation of Cell size and Tile size / add offset position.)
[hengband/hengband.git] / src / defines.h
index a6e6d24..ee80bad 100644 (file)
@@ -1,42 +1,39 @@
-/* File: defines.h */
-
-/*
- * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke
- *
- * This software may be copied and distributed for educational, research,
- * and not for profit purposes provided that this copyright and statement
- * are included in all such copies.  Other copyrights may also apply.
- */
-
-/* Purpose: global constants and macro definitions */
-
-
-/*
- * Do not edit this file unless you know *exactly* what you are doing.
- *
- * Some of the values in this file were chosen to preserve game balance,
- * while others are hard-coded based on the format of old save-files, the
- * definition of arrays in various places, mathematical properties, fast
- * computation, storage limits, or the format of external text files.
- *
- * Changing some of these values will induce crashes or memory errors or
- * savefile mis-reads.  Most of the comments in this file are meant as
- * reminders, not complete descriptions, and even a complete knowledge
- * of the source may not be sufficient to fully understand the effects
- * of changing certain definitions.
- *
- * Lastly, note that the code does not always use the symbolic constants
- * below, and sometimes uses various hard-coded values that may not even
- * be defined in this file, but which may be related to definitions here.
- * This is of course bad programming practice, but nobody is perfect...
- *
- * For example, there are MANY things that depend on the screen being
- * 80x24, with the top line used for messages, the bottom line being
- * used for status, and exactly 22 lines used to show the dungeon.
- * Just because your screen can hold 46 lines does not mean that the
- * game will work if you try to use 44 lines to show the dungeon.
- *
- * You have been warned.
+/*!
+ *  @file defines.h
+ *  @brief ¼çÍפʥޥ¯¥íÄêµÁ¥Ø¥Ã¥À / Purpose: global constants and macro definitions
+ *  @date 2014/01/02
+ *  @author
+ * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke\n
+ *\n
+ * This software may be copied and distributed for educational, research,\n
+ * and not for profit purposes provided that this copyright and statement\n
+ * are included in all such copies.  Other copyrights may also apply.\n
+ *  @details
+ * Do not edit this file unless you know *exactly* what you are doing.\n
+ *\n
+ * Some of the values in this file were chosen to preserve game balance,\n
+ * while others are hard-coded based on the format of old save-files, the\n
+ * definition of arrays in various places, mathematical properties, fast\n
+ * computation, storage limits, or the format of external text files.\n
+ *\n
+ * Changing some of these values will induce crashes or memory errors or\n
+ * savefile mis-reads.  Most of the comments in this file are meant as\n
+ * reminders, not complete descriptions, and even a complete knowledge\n
+ * of the source may not be sufficient to fully understand the effects\n
+ * of changing certain definitions.\n
+ *\n
+ * Lastly, note that the code does not always use the symbolic constants\n
+ * below, and sometimes uses various hard-coded values that may not even\n
+ * be defined in this file, but which may be related to definitions here.\n
+ * This is of course bad programming practice, but nobody is perfect...\n
+ *\n
+ * For example, there are MANY things that depend on the screen being\n
+ * 80x24, with the top line used for messages, the bottom line being\n
+ * used for status, and exactly 22 lines used to show the dungeon.\n
+ * Just because your screen can hold 46 lines does not mean that the\n
+ * game will work if you try to use 44 lines to show the dungeon.\n
+ *\n
+ * You have been warned.\n
  */
 
 
@@ -57,7 +54,7 @@
 #define FAKE_VERSION   0
 #define FAKE_VER_MAJOR 12
 #define FAKE_VER_MINOR 1
-#define FAKE_VER_PATCH 3
+#define FAKE_VER_PATCH 4
 
 
 /*
@@ -76,7 +73,7 @@
 #define H_VER_MAJOR 2
 #define H_VER_MINOR 1
 #define H_VER_PATCH 2
-#define H_VER_EXTRA 2
+#define H_VER_EXTRA 4
 
 
 #define ANGBAND_2_8_1
 /*
  * Misc constants
  */
-#define TOWN_DAWN         10000    /* Number of ticks from dawn to dawn XXX */
-#define TURNS_PER_TICK    10L      /* Number of energy-gain-turns per ticks */
-#define MAX_DAYS          20000    /* Maximum days */
-#define BREAK_GLYPH       550      /* Rune of protection resistance */
-#define BREAK_MINOR_GLYPH 299      /* For explosive runes */
-#define BTH_PLUS_ADJ       3       /* Adjust BTH per plus-to-hit */
-#define MON_MULT_ADJ      8       /* High value slows multiplication */
-#define MON_SUMMON_ADJ    2       /* Adjust level of summoned creatures */
-#define MON_DRAIN_LIFE    2       /* Percent of player exp drained per hit */
-#define USE_DEVICE        3       /* x> Harder devices x< Easier devices     */
+#define TOWN_DAWN         10000    /*!< 1Æüʬ¤Î¥¿¡¼¥ó / Number of ticks from dawn to dawn XXX */
+#define TURNS_PER_TICK    10L      /*!< Number of energy-gain-turns per ticks */
+#define MAX_DAYS          20000    /*!< ÆâÉô½èÍýÃæ¤ÇÊÝ»ý¤µ¤ì¤ëºÇÂçÆü¿ô / Maximum days */
+#define BREAK_GLYPH       550      /*!< ¼é¤ê¤Î¥ë¡¼¥ó¤Î¶¯¿ÙÅÙ / Rune of protection resistance */
+#define BREAK_MINOR_GLYPH 299      /*!< Çúȯ¤Î¥ë¡¼¥ó¤Îȯư¤·¤ä¤¹¤µ / For explosive runes */
+#define BTH_PLUS_ADJ       3       /*!< Adjust BTH per plus-to-hit */
+#define MON_MULT_ADJ      8       /*!< High value slows multiplication */
+#define MON_SUMMON_ADJ    2       /*!< Adjust level of summoned creatures */
+#define MON_DRAIN_LIFE    2       /*!< Percent of player exp drained per hit */
+#define USE_DEVICE        3       /*!< x> Harder devices x< Easier devices     */
 
 
 /* "Biases" for random artifact gen */
 
-#define BIAS_ELEC            1
-#define BIAS_POIS            2
-#define BIAS_FIRE            3
-#define BIAS_COLD            4
-#define BIAS_ACID            5
-#define BIAS_STR             6
-#define BIAS_INT             7
-#define BIAS_WIS             8
-#define BIAS_DEX             9
-#define BIAS_CON            10
-#define BIAS_CHR            11
-#define BIAS_CHAOS          12
-#define BIAS_PRIESTLY       13
-#define BIAS_NECROMANTIC    14
-#define BIAS_LAW            15
-#define BIAS_ROGUE          16
-#define BIAS_MAGE           17
-#define BIAS_WARRIOR        18
-#define BIAS_RANGER         19
-
+#define BIAS_ELEC            1 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:ÅÅ·â */
+#define BIAS_POIS            2 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:ÆÇ */
+#define BIAS_FIRE            3 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:²Ð±ê */
+#define BIAS_COLD            4 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:Î䵤 */
+#define BIAS_ACID            5 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:»À */
+#define BIAS_STR             6 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:ÏÓÎÏ */
+#define BIAS_INT             7 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:ÃÎÎÏ */
+#define BIAS_WIS             8 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:¸­¤µ */
+#define BIAS_DEX             9 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:´ïÍѤµ */
+#define BIAS_CON            10 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:Âѵנ*/
+#define BIAS_CHR            11 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:Ì¥ÎÏ */
+#define BIAS_CHAOS          12 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:º®ÆÙ */
+#define BIAS_PRIESTLY       13 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:¥×¥ê¡¼¥¹¥È·Ï */
+#define BIAS_NECROMANTIC    14 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:»àÎî */
+#define BIAS_LAW            15 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:Ë¡ */
+#define BIAS_ROGUE          16 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:Åð±·Ï */
+#define BIAS_MAGE           17 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:¥á¥¤¥¸·Ï */
+#define BIAS_WARRIOR        18 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:Àï»Î·Ï */
+#define BIAS_RANGER         19 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:¥ì¥ó¥¸¥ã¡¼·Ï */
+#define MAX_BIAS            20 /*!< ¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¥Ð¥¤¥¢¥¹:ºÇÂç¿ô */
 
 /*** Pet constants ***/
 
 #define ART_PALANTIR             15
 #define ART_STONE_LORE           17
 #define ART_FLY_STONE            147
-
+#define ART_ORB_OF_FATE          245 
 /* Amulets */
 #define ART_CARLAMMAS            4
 #define ART_INGWE                5
 #define ART_GHB                 192
 #define ART_DASAI               200
 #define ART_KESHO               204
+#define ART_MILIM               246
 
 /* Shields */
 #define ART_THORIN              30
 #define ART_KAMUI               198
 #define ART_GOURYU              207
 #define ART_EOWYN               216
+#define ART_NANACHO             248
+#define ART_ROBINTON            251
 
 /* Polearms */
 #define ART_THEODEN             93
 /* xxx */
 
 /* Body Armor */
-#define EGO_RESIST_ACID         4
-#define EGO_RESIST_ELEC         5
-#define EGO_RESIST_FIRE         6
-#define EGO_RESIST_COLD         7
+#define EGO_A_MORGUL            4
+#define EGO_A_DEMON             5
+#define EGO_DRUID               6
+#define EGO_OLOG                7
 #define EGO_RESISTANCE          8
 #define EGO_ELVENKIND           9
 #define EGO_DWARVEN             10
 #define EGO_PERMANENCE          11
 #define EGO_YOIYAMI             12
-/* xxx */
+#define EGO_URUKISH             13
 /* xxx */
 /* xxx */
 
 #define EGO_ENDURANCE           20
 #define EGO_REFLECTION          21
 #define EGO_NIGHT_DAY           22
+#define EGO_S_PROTECTION        238
+#define EGO_S_DWARVEN           239
 
 /* Crowns and Helms */
 #define EGO_DARK                23
-#define EGO_INTELLIGENCE        24
-#define EGO_WISDOM              25
-#define EGO_BEAUTY              26
+#define EGO_BRILLIANCE          24
+#define EGO_H_PROTECTION        25
+#define EGO_H_DEMON             26
 #define EGO_MAGI                27
 #define EGO_MIGHT               28
 #define EGO_LORDLINESS          29
 #define EGO_TELEPATHY           33
 #define EGO_REGENERATION        34
 #define EGO_TELEPORTATION       35
-#define EGO_STUPIDITY           36
-#define EGO_NAIVETY             37
-#define EGO_UGLINESS            38
+#define EGO_FOOL                36
+#define EGO_BASILISK            37
+#define EGO_ANCIENT_CURSE       38
 #define EGO_SICKLINESS          39
 
 /* Cloaks */
 #define EGO_AURA_ELEC           47
 #define EGO_AURA_COLD          128
 #define EGO_BAT                129
+#define EGO_NAZGUL             240
 
 /* Gloves */
 #define EGO_FREE_ACTION         48
 #define EGO_CHAOTIC             77
 #define EGO_SHARPNESS           78
 #define EGO_EARTHQUAKES         79
-#define EGO_SLAY_ANIMAL         80
-#define EGO_SLAY_EVIL           81
-#define EGO_SLAY_UNDEAD         82
-#define EGO_SLAY_DEMON          83
-#define EGO_SLAY_ORC            84
-#define EGO_SLAY_TROLL          85
-#define EGO_SLAY_GIANT          86
-#define EGO_SLAY_DRAGON         87
+#define EGO_XXX_1               80
+#define EGO_XXX_2               81
+#define EGO_XXX_3               82
+#define EGO_XXX_4               83
+#define EGO_XXX_5               84
+#define EGO_XXX_6               85
+#define EGO_XXX_7               86
+#define EGO_WEIRD               87
 #define EGO_KILL_ANIMAL         88
 #define EGO_KILL_EVIL           89
 #define EGO_KILL_UNDEAD         90
 #define EGO_TRUMP               98
 #define EGO_PATTERN             99
 #define EGO_DIGGING             100
-#define EGO_SLAY_HUMAN          101
+#define EGO_DEMON               101
 #define EGO_MORGUL              102
 #define EGO_KILL_HUMAN          103
 
 #define EGO_AMU_SLOW_D          210
 #define EGO_AMU_INFRA           211
 #define EGO_AMU_SEE_INVIS       212
-#define EGO_AMU_HOLD_LIFE       213
+#define EGO_AMU_HOLD_EXP        213
 #define EGO_AMU_DRAIN_EXP       214
 #define EGO_AMU_FOOL            215
 #define EGO_AMU_AGGRAVATE       216
 #define EGO_AMU_GREAT           235
 #define EGO_AMU_DETECTION       236
 #define EGO_AMU_NAIVETY         237
+// MAX 240
 
 /* Activation effects for random artifacts */
 #define ACT_SUNLIGHT            1
 #define ACT_BR_FIRE             38
 #define ACT_BR_COLD             39
 #define ACT_BR_DRAGON           40
-/* 33 - 50 unused */
+#define ACT_BA_FIRE_4           41
+#define ACT_BA_NUKE_1           42
+/* 42 - 50 unused */
 #define ACT_CONFUSE             51
 #define ACT_SLEEP               52
 #define ACT_QUAKE               53
 #define ACT_CURE_LW             81
 #define ACT_CURE_MW             82
 #define ACT_CURE_POISON         83
-#define ACT_REST_LIFE           84
+#define ACT_REST_EXP            84
 #define ACT_REST_ALL            85
 #define ACT_CURE_700            86
 #define ACT_CURE_1000           87
 #define ACT_DETECT_ALL_MONS     137
 #define ACT_ULTIMATE_RESIST     138
 /* 127 -> unused */
+#define ACT_FALLING_STAR        246
+#define ACT_STRAIN_HASTE        247
+#define ACT_TELEPORT_LEVEL      248
+#define ACT_GRAND_CROSS         249
 #define ACT_CAST_OFF            250
 #define ACT_FISHING             251
 #define ACT_INROU               252
 #define SV_LIGHT_XBOW                   23     /* (x3) */
 #define SV_HEAVY_XBOW                   24     /* (x4) */
 #define SV_CRIMSON                      50     /* (x0) */
+#define SV_HARP                         51     /* (x0) */
 #define SV_NAMAKE_BOW                   63     /* (x3) */
 
 /* The "sval" codes for TV_DIGGING */
 #define TR_THROW               44     /* Later */
 #define TR_REFLECT             45     /* Reflect 'bolts' */
 #define TR_FREE_ACT            46     /* Free Action */
-#define TR_HOLD_LIFE           47     /* Hold Life */
+#define TR_HOLD_EXP            47     /* Hold EXP */
 #define TR_RES_ACID            48
 #define TR_RES_ELEC            49
 #define TR_RES_FIRE            50
 #define TR_HIDE_TYPE           73     /* Hide "pval" description */
 #define TR_SHOW_MODS           74     /* Always show Tohit/Todam */
 #define TR_SLAY_GOOD           75
-#define TR_LEVITATION             76     /* Feather Falling */
-#define TR_LITE                77     /* Permanent Light */
+#define TR_LEVITATION          76     /* Feather Falling */
+#define TR_LITE_1              77     /* Light Radius 1*/
 #define TR_SEE_INVIS           78     /* See Invisible */
 #define TR_TELEPATHY           79     /* Telepathy */
 #define TR_SLOW_DIGEST         80     /* Item slows down digestion */
 #define TR_FIXED_FLAVOR        117
 #define TR_ADD_L_CURSE         118
 #define TR_ADD_H_CURSE         119
-
-#define TR_FLAG_MAX            120
-#define TR_FLAG_SIZE           4
+#define TR_DRAIN_HP            120
+#define TR_DRAIN_MANA          121
+#define TR_LITE_2                         122
+#define TR_LITE_3                         123
+#define TR_LITE_M1                        124    /* Permanent decrease Light Area (-1) */
+#define TR_LITE_M2                        125    /* Permanent decrease Light Area (-1) */
+#define TR_LITE_M3                        126    /* Permanent decrease Light Area (-1) */
+#define TR_LITE_FUEL              127    /* Lights need Fuels */
+
+#define TR_CALL_ANIMAL         128
+#define TR_CALL_DEMON          129
+#define TR_CALL_DRAGON         130
+#define TR_CALL_UNDEAD         131
+#define TR_COWARDICE           132
+#define TR_LOW_MELEE           133
+#define TR_LOW_AC              134
+#define TR_LOW_MAGIC           135
+#define TR_FAST_DIGEST         136
+#define TR_SLOW_REGEN          137
+
+#define TR_FLAG_MAX            138
+#define TR_FLAG_SIZE           5
 
 
 #define TRG_INSTA_ART           0x00000001L     /* Item must be an artifact */
 #define TRG_RANDOM_CURSE1       0x00004000L     /* Item is Random Cursed */
 #define TRG_RANDOM_CURSE2       0x00008000L     /* Item is Random Cursed */
 #define TRG_XTRA_DICE           0x00010000L     /* Extra dice */
+#define TRG_POWERFUL            0x00020000L     /* Item has good value even if Cursed */
 
 
-#define MAX_CURSE 17
+#define MAX_CURSE 18
 
 #define TRC_CURSED              0x00000001L
 #define TRC_HEAVY_CURSE         0x00000002L
 #define TRC_FAST_DIGEST         0x00040000L
 #define TRC_DRAIN_HP            0x00080000L
 #define TRC_DRAIN_MANA          0x00100000L
+#define TRC_CALL_UNDEAD         0x00200000L
 
 #define TRC_TELEPORT_SELF       0x00000001L
 #define TRC_CHAINSWORD          0x00000002L
 
 #define TRC_HEAVY_MASK   \
        (TRC_TY_CURSE | TRC_AGGRAVATE | TRC_DRAIN_EXP | TRC_ADD_H_CURSE | \
-        TRC_CALL_DEMON | TRC_CALL_DRAGON | TRC_TELEPORT)
+        TRC_CALL_DEMON | TRC_CALL_DRAGON | TRC_CALL_UNDEAD | TRC_TELEPORT)
 
 #define TRC_P_FLAG_MASK  \
        (TRC_TELEPORT_SELF | TRC_CHAINSWORD | \
         TRC_TY_CURSE | TRC_DRAIN_EXP | TRC_ADD_L_CURSE | TRC_ADD_H_CURSE | \
         TRC_CALL_ANIMAL | TRC_CALL_DEMON | TRC_CALL_DRAGON | TRC_COWARDICE | \
-        TRC_TELEPORT | TRC_DRAIN_HP | TRC_DRAIN_MANA)
+        TRC_TELEPORT | TRC_DRAIN_HP | TRC_DRAIN_MANA | TRC_CALL_UNDEAD)
 
 
 
 #define RBE_EXP_80      28
 #define RBE_DISEASE     29
 #define RBE_TIME        30
-#define RBE_EXP_VAMP    31
+#define RBE_DR_LIFE     31
 #define RBE_DR_MANA     32
 #define RBE_SUPERHURT   33
 #define RBE_INERTIA     34
 #define get_feat_mimic(C) \
        (f_info[(C)->mimic ? (C)->mimic : (C)->feat].mimic)
 
-#define update_playtime() \
-{\
-       u32b tmp;\
-       tmp = time(NULL);\
-       playtime += (tmp - start_time);\
-       start_time = tmp;\
-}
-
 /*
  * Hack -- Prepare to use the "Secure" routines
  */
@@ -4485,10 +4509,30 @@ extern int PlayerUID;
  */
 #define is_ascii_graphics(A) (!((A) & 0x80))
 
+/*** Music constants ***/
+
+#define MUSIC_BASIC_DEFAULT    0
+#define MUSIC_BASIC_GAMEOVER   1
+#define MUSIC_BASIC_EXIT       2
+#define MUSIC_BASIC_TOWN       3
+#define MUSIC_BASIC_FIELD1     4
+#define MUSIC_BASIC_FIELD2     5
+#define MUSIC_BASIC_FIELD3     6
+#define MUSIC_BASIC_DUN_LOW    7
+#define MUSIC_BASIC_DUN_MED    8
+#define MUSIC_BASIC_DUN_HIGH   9
+#define MUSIC_BASIC_DUN_FEEL1 10
+#define MUSIC_BASIC_DUN_FEEL2 11
+#define MUSIC_BASIC_WINNER    12
+#define MUSIC_BASIC_BUILD     13
+#define MUSIC_BASIC_WILD      14
+#define MUSIC_BASIC_QUEST     15
+#define MUSIC_BASIC_ARENA     16
+#define MUSIC_BASIC_BATTLE    17
+#define MUSIC_BASIC_MAX       18 /*!< BGMÄêµÁ¤ÎºÇÂç¿ô */
 
 /*** Sound constants ***/
 
-
 /*
  * Mega-Hack -- some primitive sound support (see "main-win.c")
  *
@@ -4563,11 +4607,11 @@ extern int PlayerUID;
 /*
  * Mega-Hack -- maximum known sounds
  */
-#define SOUND_MAX 66
+#define SOUND_MAX 66 /*!< ¸ú²Ì²»ÄêµÁ¤ÎºÇÂç¿ô */
 
-#define MAX_VIRTUE 18
+#define MAX_VIRTUE 18 /*!< ÆÁÄêµÁ¤ÎºÇÂç¿ô */
 
-#define V_COMPASSION       1
+#define V_COMPASSION    1
 #define V_HONOUR           2
 #define V_JUSTICE          3
 #define V_SACRIFICE        4
@@ -4706,6 +4750,7 @@ extern int PlayerUID;
 #define GRAPHICS_NONE       0
 #define GRAPHICS_ORIGINAL   1
 #define GRAPHICS_ADAM_BOLT  2
+#define GRAPHICS_HENGBAND   3
 
 /*
  * Modes for the random name generator
@@ -5199,6 +5244,7 @@ extern int PlayerUID;
 #define MON_JIZOTAKO      1065
 #define MON_TANUKI        1067
 #define MON_HATOPOPPO     1083
+#define MON_KOGAN         1096
 
 /* Maximum "Nazguls" number */
 #define MAX_NAZGUL_NUM 5
@@ -5431,6 +5477,7 @@ extern int PlayerUID;
 #define SAVE_ITEM_FEELING      0x02000000
 #define SAVE_ITEM_INSCRIPTION  0x04000000
 #define SAVE_ITEM_ART_NAME     0x08000000
+#define SAVE_ITEM_ART_FLAGS4   0x10000000
 
 
 /*
@@ -5640,3 +5687,10 @@ extern int PlayerUID;
 #else
 #define _(JAPANESE,ENGLISH) (ENGLISH)
 #endif
+
+/* Lite flag macro */
+#define have_lite_flag(ARRAY) \
+       (have_flag(ARRAY, TR_LITE_1) || have_flag(ARRAY, TR_LITE_2) || have_flag(ARRAY, TR_LITE_3))
+
+#define have_dark_flag(ARRAY) \
+       (have_flag(ARRAY, TR_LITE_M1) || have_flag(ARRAY, TR_LITE_M2) || have_flag(ARRAY, TR_LITE_M3))