OSDN Git Service

[Refactor] #37353 コメント整理 / Refactor comments.
[hengband/hengband.git] / src / variable.c
index bee1154..5bd2d32 100644 (file)
@@ -96,29 +96,30 @@ u32b seed_town;                     /* Hack -- consistent town layout */
 
 s16b command_cmd;              /* Current "Angband Command" */
 
-COMMAND_ARG command_arg;               /* Gives argument of current command */
-s16b command_rep;              /* Gives repetition of current command */
-DIRECTION command_dir;         /* Gives direction of current command */
+COMMAND_ARG command_arg;       /*!< 各種コマンドの汎用的な引数として扱う / Gives argument of current command */
+COMMAND_NUM command_rep;       /*!< 各種コマンドの汎用的なリピート数として扱う / Gives repetition of current command */
+DIRECTION command_dir;         /*!< 各種コマンドの汎用的な方向値処理として扱う/ Gives direction of current command */
 
 s16b command_see;              /* See "object1.c" */
 s16b command_wrk;              /* See "object1.c" */
 
-TERM_POSITION command_gap = 999;         /* See "object1.c" */
+TERM_LEN command_gap = 999;         /* See "object1.c" */
 
 s16b command_new;              /* Command chaining from inven/equip view */
 
 bool msg_flag;                 /* Used in msg_print() for "buffering" */
 
 s16b running;                  /* Current counter for running, if any */
-s16b resting;                  /* Current counter for resting, if any */
+GAME_TURN resting;                     /* Current counter for resting, if any */
 
 POSITION cur_hgt;              /* Current dungeon height */
 POSITION cur_wid;              /* Current dungeon width */
-DEPTH dun_level;               /* Current dungeon level */
-s16b num_repro;                        /* Current reproducer count */
-DEPTH object_level;            /* Current object creation level */
-DEPTH monster_level;   /* Current monster creation level */
-DEPTH base_level;              /* Base dungeon level */
+DEPTH dun_level;               /*!< 現在の実ダンジョン階層、base_levelの参照元となる / Current dungeon level */
+MONSTER_NUMBER num_repro; /*!< Current reproducer count */
+DEPTH base_level;              /*!< 基本生成レベル、後述のobject_level, monster_levelの参照元となる / Base dungeon level */
+DEPTH object_level;            /*!< アイテムの生成レベル、base_levelを起点に一時変更する時に参照 / Current object creation level */
+DEPTH monster_level;   /*!< モンスターの生成レベル、base_levelを起点に一時変更する時に参照 / Current monster creation level */
+bool invoking_midnight_curse; /*!< 悪夢モード時の真夜中太古の呪い発生処理フラグ */
 
 GAME_TURN turn;                                /*!< 画面表示上のゲーム時間基準となるターン / Current game turn */
 GAME_TURN turn_limit;          /*!< turnの最大値 / Limit of game turn */
@@ -150,8 +151,7 @@ bool shimmer_objects;       /* Hack -- optimize multi-hued objects */
 bool repair_monsters;  /* Hack -- optimize detect monsters */
 bool repair_objects;   /* Hack -- optimize detect objects */
 
-s16b inven_nxt;                        /* Hack -- unused */
-bool hack_mind;
+bool is_loading_now;   /*!< ロード直後にcalc_bonus()時の徳変化、及びsanity_blast()による異常を抑止する */
 bool hack_mutation;
 
 s16b inven_cnt;                        /* Number of items in inventory */
@@ -175,201 +175,6 @@ int leaving_quest = 0;
 bool reinit_wilderness = FALSE;
 
 
-/*
- * Software options (set via the '=' command).  See "tables.c"
- */
-
-/*** Input Options ***/
-
-bool rogue_like_commands;      /* Rogue-like commands */
-bool always_pickup;    /* Pick things up by default */
-bool carry_query_flag; /* Prompt before picking things up */
-bool quick_messages;   /* Activate quick messages */
-bool auto_more;        /* Automatically clear '-more-' prompts */
-bool command_menu;     /* Enable command selection menu */
-bool other_query_flag; /* Prompt for floor item selection */
-bool use_old_target;   /* Use old target by default */
-bool always_repeat;    /* Repeat obvious commands */
-bool confirm_destroy;  /* Prompt for destruction of known worthless items */
-bool confirm_wear;     /* Confirm to wear/wield known cursed items */
-bool confirm_quest;    /* Prompt before exiting a quest level */
-bool target_pet;       /* Allow targetting pets */
-
-#ifdef ALLOW_EASY_OPEN
-bool easy_open;        /* Automatically open doors */
-#endif
-
-#ifdef ALLOW_EASY_DISARM
-bool easy_disarm;      /* Automatically disarm traps */
-#endif
-
-#ifdef ALLOW_EASY_FLOOR
-bool easy_floor;       /* Display floor stacks in a list */
-#endif
-
-bool use_command;      /* Allow unified use command */
-bool over_exert;       /* Allow casting spells when short of mana */
-bool numpad_as_cursorkey;      /* Use numpad keys as cursor key in editor mode */
-
-
-/*** Map Screen Options ***/
-
-bool center_player;    /* Center map while walking (*slow*) */
-bool center_running;   /* Centering even while running */
-bool view_yellow_lite; /* Use special colors for torch-lit grids */
-bool view_bright_lite; /* Use special colors for 'viewable' grids */
-bool view_granite_lite;        /* Use special colors for wall grids (slow) */
-bool view_special_lite;        /* Use special colors for floor grids (slow) */
-bool view_perma_grids; /* Map remembers all perma-lit grids */
-bool view_torch_grids; /* Map remembers all torch-lit grids */
-bool view_unsafe_grids;        /* Map marked by detect traps */
-bool view_reduce_view; /* Reduce view-radius in town */
-bool fresh_before;     /* Flush output while continuous command */
-bool fresh_after;      /* Flush output after monster's move */
-bool fresh_message;    /* Flush output after every message */
-bool hilite_player;    /* Hilite the player with the cursor */
-bool display_path;     /* Display actual path before shooting */
-
-
-/*** Text Display Options ***/
-
-bool plain_descriptions;       /* Plain object descriptions */
-bool plain_pickup;     /* Plain pickup messages(japanese only) */
-bool always_show_list; /* Always show list when choosing items */
-bool depth_in_feet;    /* Show dungeon level in feet */
-bool show_labels;      /* Show labels in object listings */
-bool show_weights;     /* Show weights in object listings */
-bool show_item_graph;  /* Show items graphics */
-bool equippy_chars;    /* Display 'equippy' chars */
-bool display_mutations;        /* Display mutations in 'C'haracter Display */
-bool compress_savefile;        /* Compress messages in savefiles */
-bool abbrev_extra;     /* Describe obj's extra resistances by abbreviation */
-bool abbrev_all;       /* Describe obj's all resistances by abbreviation */
-bool exp_need; /* Show the experience needed for next level */
-bool ignore_unview;    /* Ignore whenever any monster does */
-
-
-/*** Game-Play Options ***/
-
-bool stack_force_notes;        /* Merge inscriptions when stacking */
-bool stack_force_costs;        /* Merge discounts when stacking */
-bool expand_list;      /* Expand the power of the list commands */
-bool small_levels;     /* Allow unusually small dungeon levels */
-bool always_small_levels;      /* Always create unusually small dungeon levels */
-bool empty_levels;     /* Allow empty 'arena' levels */
-bool bound_walls_perm; /* Boundary walls become 'permanent wall' */
-bool last_words;       /* Leave last words when your character dies */
-
-#ifdef WORLD_SCORE
-bool send_score;       /* Send score dump to the world score server */
-#endif
-
-bool allow_debug_opts; /* Allow use of debug/cheat options */
-
-
-/*** Disturbance Options ***/
-
-bool find_ignore_stairs;       /* Run past stairs */
-bool find_ignore_doors;        /* Run through open doors */
-bool find_cut; /* Run past known corners */
-bool check_abort;      /* Check for user abort while continuous command */
-bool flush_failure;    /* Flush input on various failures */
-bool flush_disturb;    /* Flush input whenever disturbed */
-bool disturb_move;     /* Disturb whenever any monster moves */
-bool disturb_high;     /* Disturb whenever high-level monster moves */
-bool disturb_near;     /* Disturb whenever viewable monster moves */
-bool disturb_pets;     /* Disturb when visible pets move */
-bool disturb_panel;    /* Disturb whenever map panel changes */
-bool disturb_state;    /* Disturb whenever player state changes */
-bool disturb_minor;    /* Disturb whenever boring things happen */
-bool ring_bell;        /* Audible bell (on errors, etc) */
-bool disturb_trap_detect;      /* Disturb when leaving trap detected area */
-bool alert_trap_detect;        /* Alert when leaving trap detected area */
-
-
-/*** Birth Options ***/
-
-bool manual_haggle;    /* Manually haggle in stores */
-bool easy_band;        /* Easy Mode (*) */
-bool smart_learn;      /* Monsters learn from their mistakes (*) */
-bool smart_cheat;      /* Monsters exploit players weaknesses (*) */
-bool vanilla_town;     /* Use 'vanilla' town without quests and wilderness */
-bool lite_town;        /* Use 'lite' town without a wilderness */
-bool ironman_shops;    /* Stores are permanently closed (*) */
-bool ironman_small_levels;     /* Always create unusually small dungeon levels (*) */
-bool ironman_downward; /* Disable recall and use of up stairs (*) */
-bool ironman_empty_levels;     /* Always create empty 'arena' levels (*) */
-bool ironman_rooms;    /* Always generate very unusual rooms (*) */
-bool ironman_nightmare;        /* Nightmare mode(it isn't even remotely fair!)(*) */
-bool left_hander;      /* Left-Hander */
-bool preserve_mode;    /* Preserve artifacts (*) */
-bool autoroller;       /* Allow use of autoroller for stats (*) */
-bool autochara;        /* Autoroll for weight, height and social status */
-bool powerup_home;     /* Increase capacity of your home (*) */
-bool show_ammo_detail; /* Show Description of ammo damage */
-bool show_ammo_no_crit;        /* Show No-crit damage of ammo */
-bool show_ammo_crit_ratio;     /* Show critical ratio of ammo */
-
-
-
-
-/*** Easy Object Auto-Destroyer ***/
-
-bool destroy_items;    /* Use easy auto-destroyer */
-bool destroy_feeling;  /* Apply auto-destroy as sense feeling */
-bool destroy_identify; /* Apply auto-destroy as identify an item */
-bool leave_worth;      /* Auto-destroyer leaves known worthy items */
-bool leave_equip;      /* Auto-destroyer leaves weapons and armour */
-bool leave_chest;      /* Auto-destroyer leaves closed chests */
-bool leave_wanted;     /* Auto-destroyer leaves wanted corpses */
-bool leave_corpse;     /* Auto-destroyer leaves corpses and skeletons */
-bool leave_junk;       /* Auto-destroyer leaves junk */
-bool leave_special;    /* Auto-destroyer leaves items your race/class needs */
-
-
-/*** Play-record Options ***/
-
-bool record_fix_art;   /* Record fixed artifacts */
-bool record_rand_art;  /* Record random artifacts */
-bool record_destroy_uniq;      /* Record when destroy unique monster */
-bool record_fix_quest; /* Record fixed quests */
-bool record_rand_quest;        /* Record random quests */
-bool record_maxdepth;  /* Record movements to deepest level */
-bool record_stair;     /* Record recall and stair movements */
-bool record_buy;       /* Record purchased items */
-bool record_sell;      /* Record sold items */
-bool record_danger;    /* Record hitpoint warning */
-bool record_arena;     /* Record arena victories */
-bool record_ident;     /* Record first identified items */
-bool record_named_pet; /* Record informations of named pets */
-char record_o_name[MAX_NLEN];
-s32b record_turn;
-
-
-/* Cheating options */
-
-bool cheat_peek;       /* Peek into object creation */
-bool cheat_hear;       /* Peek into monster creation */
-bool cheat_room;       /* Peek into dungeon creation */
-bool cheat_xtra;       /* Peek into something else */
-bool cheat_know;       /* Know complete monster info */
-bool cheat_live;       /* Allow player to avoid death */
-bool cheat_save;       /* Ask for saving death */
-bool cheat_diary_output; /* Detailed info to diary */
-bool cheat_turn;       /* Peek turn */
-
-
-/* Special options */
-
-byte hitpoint_warn;    /* Hitpoint warning (0 to 9) */
-byte mana_warn;        /* Mana color (0 to 9) */
-
-byte delay_factor;     /* Delay factor (0 to 9) */
-
-bool autosave_l;       /* Autosave before entering new levels */
-bool autosave_t;       /* Timed autosave */
-s16b autosave_freq;     /* Autosave frequency */
-
 
 /*
  * Dungeon variables
@@ -418,35 +223,35 @@ char savefile_base[40];
 /*
  * Array of grids lit by player lite (see "cave.c")
  */
-s16b lite_n;
+POSITION_IDX lite_n;
 POSITION lite_y[LITE_MAX];
 POSITION lite_x[LITE_MAX];
 
 /*
  * Array of grids lit by player lite (see "cave.c")
  */
-s16b mon_lite_n;
+POSITION_IDX mon_lite_n;
 POSITION mon_lite_y[MON_LITE_MAX];
 POSITION mon_lite_x[MON_LITE_MAX];
 
 /*
  * Array of grids viewable to the player (see "cave.c")
  */
-s16b view_n;
+POSITION_IDX view_n;
 POSITION view_y[VIEW_MAX];
 POSITION view_x[VIEW_MAX];
 
 /*
  * Array of grids for use by various functions (see "cave.c")
  */
-s16b temp_n;
+POSITION_IDX temp_n;
 POSITION temp_y[TEMP_MAX];
 POSITION temp_x[TEMP_MAX];
 
 /*
  * Array of grids for delayed visual updating (see "cave.c")
  */
-s16b redraw_n = 0;
+POSITION_IDX redraw_n = 0;
 POSITION redraw_y[REDRAW_MAX];
 POSITION redraw_x[REDRAW_MAX];
 
@@ -480,7 +285,7 @@ char *macro__buf;
 /*
  * The number of quarks
  */
-s16b quark__num;
+STR_OFFSET quark__num;
 
 /*
  * The pointers to the quarks [QUARK_MAX]
@@ -518,27 +323,16 @@ u32b *message__ptr;
  */
 char *message__buf;
 
-
-/*
- * The array of normal options
- */
-u32b option_flag[8];
-u32b option_mask[8];
-
-
-/*
- * The array of window options
- */
-u32b window_flag[8];
-u32b window_mask[8];
-
+BIT_FLAGS option_flag[8]; //!< The array of normal options
+BIT_FLAGS option_mask[8]; //!< The array of normal options
+BIT_FLAGS window_flag[8]; //!< The array of window options
+BIT_FLAGS window_mask[8]; //!< The array of window options
 
 /*
  * The array of window pointers
  */
 term *angband_term[8];
 
-
 /*
  * Standard window names
  */
@@ -650,6 +444,7 @@ const cptr angband_sound_name[SOUND_MAX] =
        "unused",
        "explode",
        "glass",
+       "reflect",
 };
 
 /*
@@ -768,7 +563,7 @@ alloc_entry *alloc_race_table;
  * Specify attr/char pairs for visual special effects
  * Be sure to use "index & 0x7F" to avoid illegal access
  */
-byte misc_to_attr[256];
+TERM_COLOR misc_to_attr[256];
 char misc_to_char[256];
 
 
@@ -776,7 +571,7 @@ char misc_to_char[256];
  * Specify attr/char pairs for inventory items (by tval)
  * Be sure to use "index & 0x7F" to avoid illegal access
  */
-byte tval_to_attr[128];
+TERM_COLOR tval_to_attr[128];
 char tval_to_char[128];
 
 
@@ -879,112 +674,30 @@ char *d_name;
 char *d_text;
 
 
-/*
- * Hack -- The special Angband "System Suffix"
- * This variable is used to choose an appropriate "pref-xxx" file
- */
-cptr ANGBAND_SYS = "xxx";
+cptr ANGBAND_SYS = "xxx"; //!< Hack -- The special Angband "System Suffix" This variable is used to choose an appropriate "pref-xxx" file
+
 
-/*
- * Hack -- The special Angband "Keyboard Suffix"
- * This variable is used to choose an appropriate macro-trigger definition
- */
 #ifdef JP
-cptr ANGBAND_KEYBOARD = "JAPAN";
+cptr ANGBAND_KEYBOARD = "JAPAN"; //!< Hack -- The special Angband "Keyboard Suffix" This variable is used to choose an appropriate macro-trigger definition
 #else
 cptr ANGBAND_KEYBOARD = "0";
 #endif
 
-/*
- * Hack -- The special Angband "Graphics Suffix"
- * This variable is used to choose an appropriate "graf-xxx" file
- */
-cptr ANGBAND_GRAF = "ascii";
-
-/*
- * Path name: The main "lib" directory
- * This variable is not actually used anywhere in the code
- */
-cptr ANGBAND_DIR;
-
-/*
- * High score files (binary)
- * These files may be portable between platforms
- */
-cptr ANGBAND_DIR_APEX;
-
-/*
- * Bone files for player ghosts (ascii)
- * These files are portable between platforms
- */
-cptr ANGBAND_DIR_BONE;
-
-/*
- * Binary image files for the "*_info" arrays (binary)
- * These files are not portable between platforms
- */
-cptr ANGBAND_DIR_DATA;
-
-/*
- * Textual template files for the "*_info" arrays (ascii)
- * These files are portable between platforms
- */
-cptr ANGBAND_DIR_EDIT;
-
-/*
- * Script files
- * These files are portable between platforms.
- */
-cptr ANGBAND_DIR_SCRIPT;
-
-/*
- * Various extra files (ascii)
- * These files may be portable between platforms
- */
-cptr ANGBAND_DIR_FILE;
-
-/*
- * Help files (normal) for the online help (ascii)
- * These files are portable between platforms
- */
-cptr ANGBAND_DIR_HELP;
-
-/*
- * Help files (spoilers) for the online help (ascii)
- * These files are portable between platforms
- */
-cptr ANGBAND_DIR_INFO;
-
-/*
- * Default user "preference" files (ascii)
- * These files are rarely portable between platforms
- */
-cptr ANGBAND_DIR_PREF;
-
-/*
- * Savefiles for current characters (binary)
- * These files are portable between platforms
- */
-cptr ANGBAND_DIR_SAVE;
-
-/*
- * User "preference" files (ascii)
- * These files are rarely portable between platforms
- */
-cptr ANGBAND_DIR_USER;
-
-/*
- * Various extra files (binary)
- * These files are rarely portable between platforms
- */
-cptr ANGBAND_DIR_XTRA;
-
-
-/*
- * Total Hack -- allow all items to be listed (even empty ones)
- * This is only used by "do_cmd_inven_e()" and is cleared there.
- */
-bool item_tester_full;
+cptr ANGBAND_GRAF = "ascii"; //!< Hack -- The special Angband "Graphics Suffix" This variable is used to choose an appropriate "graf-xxx" file
+cptr ANGBAND_DIR; //!< Path name: The main "lib" directory This variable is not actually used anywhere in the code
+cptr ANGBAND_DIR_APEX; //!< High score files (binary) These files may be portable between platforms
+cptr ANGBAND_DIR_BONE; //!< Bone files for player ghosts (ascii) These files are portable between platforms
+cptr ANGBAND_DIR_DATA; //!< Binary image files for the "*_info" arrays (binary) These files are not portable between platforms
+cptr ANGBAND_DIR_EDIT; //!< Textual template files for the "*_info" arrays (ascii) These files are portable between platforms
+cptr ANGBAND_DIR_SCRIPT; //!< Script files These files are portable between platforms.
+cptr ANGBAND_DIR_FILE; //!< Various extra files (ascii) These files may be portable between platforms
+cptr ANGBAND_DIR_HELP; //!< Help files (normal) for the online help (ascii) These files are portable between platforms
+cptr ANGBAND_DIR_INFO; //!< Help files (spoilers) for the online help (ascii) These files are portable between platforms
+cptr ANGBAND_DIR_PREF; //!< Default user "preference" files (ascii) These files are rarely portable between platforms
+cptr ANGBAND_DIR_SAVE; //!< Savefiles for current characters (binary)
+cptr ANGBAND_DIR_USER; //!< User "preference" files (ascii) These files are rarely portable between platforms
+cptr ANGBAND_DIR_XTRA; //!< Various extra files (binary) These files are rarely portable between platforms
+bool item_tester_full; //!< Total Hack -- allow all items to be listed (even empty ones) This is only used by "do_cmd_inven_e()" and is cleared there.
 
 bool item_tester_no_ryoute = FALSE;
 
@@ -1049,7 +762,7 @@ building_type building[MAX_BLDG];
 /*
  * Maximum number of quests
  */
-IDX max_quests;
+QUEST_IDX max_q_idx;
 
 /*
  * Maximum number of monsters in r_info.txt
@@ -1059,7 +772,7 @@ MONRACE_IDX max_r_idx;
 /*
  * Maximum number of items in k_info.txt
  */
-IDX max_k_idx;
+KIND_OBJECT_IDX max_k_idx;
 
 /*
  * Maximum number of vaults in v_info.txt
@@ -1074,7 +787,7 @@ IDX max_f_idx;
 /*
  * Maximum number of artifacts in a_info.txt
  */
-IDX max_a_idx;
+ARTIFACT_IDX max_a_idx;
 
 /*
  * Maximum number of ego-items in e_info.txt
@@ -1084,12 +797,12 @@ IDX max_e_idx;
 /*
  * Maximum number of dungeon in e_info.txt
  */
-IDX max_d_idx;
+DUNGEON_IDX max_d_idx;
 
 /*
  * Maximum number of objects in the level
  */
-IDX max_o_idx;
+OBJECT_IDX max_o_idx;
 
 /*
  * Maximum number of monsters in the level