OSDN Git Service

[Refactor] #37353 tables.c を削除.
[hengband/hengband.git] / src / gameoption.c
1 #include "angband.h"
2 #include "gameoption.h"
3
4
5 /*
6  * Software options (set via the '=' command).
7  */
8
9 /*** Input Options ***/
10
11 bool rogue_like_commands;       /* Rogue-like commands */
12 bool always_pickup;     /* Pick things up by default */
13 bool carry_query_flag;  /* Prompt before picking things up */
14 bool quick_messages;    /* Activate quick messages */
15 bool auto_more; /* Automatically clear '-more-' prompts */
16 bool command_menu;      /* Enable command selection menu */
17 bool other_query_flag;  /* Prompt for floor item selection */
18 bool use_old_target;    /* Use old target by default */
19 bool always_repeat;     /* Repeat obvious commands */
20 bool confirm_destroy;   /* Prompt for destruction of known worthless items */
21 bool confirm_wear;      /* Confirm to wear/wield known cursed items */
22 bool confirm_quest;     /* Prompt before exiting a quest level */
23 bool target_pet;        /* Allow targetting pets */
24 bool easy_open; /* Automatically open doors */
25 bool easy_disarm;       /* Automatically disarm traps */
26 bool easy_floor;        /* Display floor stacks in a list */
27 bool use_command;       /* Allow unified use command */
28 bool over_exert;        /* Allow casting spells when short of mana */
29 bool numpad_as_cursorkey;       /* Use numpad keys as cursor key in editor mode */
30
31                                                         /*** Map Screen Options ***/
32
33 bool center_player;     /* Center map while walking (*slow*) */
34 bool center_running;    /* Centering even while running */
35 bool view_yellow_lite;  /* Use special colors for torch-lit grids */
36 bool view_bright_lite;  /* Use special colors for 'viewable' grids */
37 bool view_granite_lite; /* Use special colors for wall grids (slow) */
38 bool view_special_lite; /* Use special colors for floor grids (slow) */
39 bool view_perma_grids;  /* Map remembers all perma-lit grids */
40 bool view_torch_grids;  /* Map remembers all torch-lit grids */
41 bool view_unsafe_grids; /* Map marked by detect traps */
42 bool view_reduce_view;  /* Reduce view-radius in town */
43 bool fresh_before;      /* Flush output while continuous command */
44 bool fresh_after;       /* Flush output after monster's move */
45 bool fresh_message;     /* Flush output after every message */
46 bool hilite_player;     /* Hilite the player with the cursor */
47 bool display_path;      /* Display actual path before shooting */
48
49
50                                         /*** Text Display Options ***/
51
52 bool plain_descriptions;        /* Plain object descriptions */
53 bool plain_pickup;      /* Plain pickup messages(japanese only) */
54 bool always_show_list;  /* Always show list when choosing items */
55 bool depth_in_feet;     /* Show dungeon level in feet */
56 bool show_labels;       /* Show labels in object listings */
57 bool show_weights;      /* Show weights in object listings */
58 bool show_item_graph;   /* Show items graphics */
59 bool equippy_chars;     /* Display 'equippy' chars */
60 bool display_mutations; /* Display mutations in 'C'haracter Display */
61 bool compress_savefile; /* Compress messages in savefiles */
62 bool abbrev_extra;      /* Describe obj's extra resistances by abbreviation */
63 bool abbrev_all;        /* Describe obj's all resistances by abbreviation */
64 bool exp_need;  /* Show the experience needed for next level */
65 bool ignore_unview;     /* Ignore whenever any monster does */
66
67
68                                         /*** Game-Play Options ***/
69
70 bool stack_force_notes; /* Merge inscriptions when stacking */
71 bool stack_force_costs; /* Merge discounts when stacking */
72 bool expand_list;       /* Expand the power of the list commands */
73 bool small_levels;      /* Allow unusually small dungeon levels */
74 bool always_small_levels;       /* Always create unusually small dungeon levels */
75 bool empty_levels;      /* Allow empty 'arena' levels */
76 bool bound_walls_perm;  /* Boundary walls become 'permanent wall' */
77 bool last_words;        /* Leave last words when your character dies */
78
79 #ifdef WORLD_SCORE
80 bool send_score;        /* Send score dump to the world score server */
81 #endif
82
83 bool allow_debug_opts;  /* Allow use of debug/cheat options */
84
85
86                                                 /*** Disturbance Options ***/
87
88 bool find_ignore_stairs;        /* Run past stairs */
89 bool find_ignore_doors; /* Run through open doors */
90 bool find_cut;  /* Run past known corners */
91 bool check_abort;       /* Check for user abort while continuous command */
92 bool flush_failure;     /* Flush input on various failures */
93 bool flush_disturb;     /* Flush input whenever disturbed */
94 bool disturb_move;      /* Disturb whenever any monster moves */
95 bool disturb_high;      /* Disturb whenever high-level monster moves */
96 bool disturb_near;      /* Disturb whenever viewable monster moves */
97 bool disturb_pets;      /* Disturb when visible pets move */
98 bool disturb_panel;     /* Disturb whenever map panel changes */
99 bool disturb_state;     /* Disturb whenever player state changes */
100 bool disturb_minor;     /* Disturb whenever boring things happen */
101 bool ring_bell; /* Audible bell (on errors, etc) */
102 bool disturb_trap_detect;       /* Disturb when leaving trap detected area */
103 bool alert_trap_detect; /* Alert when leaving trap detected area */
104
105
106                                                 /*** Birth Options ***/
107
108 bool manual_haggle;     /* Manually haggle in stores */
109 bool easy_band; /* Easy Mode (*) */
110 bool smart_learn;       /* Monsters learn from their mistakes (*) */
111 bool smart_cheat;       /* Monsters exploit players weaknesses (*) */
112 bool vanilla_town;      /* Use 'vanilla' town without quests and wilderness */
113 bool lite_town; /* Use 'lite' town without a wilderness */
114 bool ironman_shops;     /* Stores are permanently closed (*) */
115 bool ironman_small_levels;      /* Always create unusually small dungeon levels (*) */
116 bool ironman_downward;  /* Disable recall and use of up stairs (*) */
117 bool ironman_empty_levels;      /* Always create empty 'arena' levels (*) */
118 bool ironman_rooms;     /* Always generate very unusual rooms (*) */
119 bool ironman_nightmare; /* Nightmare mode(it isn't even remotely fair!)(*) */
120 bool left_hander;       /* Left-Hander */
121 bool preserve_mode;     /* Preserve artifacts (*) */
122 bool autoroller;        /* Allow use of autoroller for stats (*) */
123 bool autochara; /* Autoroll for weight, height and social status */
124 bool powerup_home;      /* Increase capacity of your home (*) */
125 bool show_ammo_detail;  /* Show Description of ammo damage */
126 bool show_ammo_no_crit; /* Show No-crit damage of ammo */
127 bool show_ammo_crit_ratio;      /* Show critical ratio of ammo */
128 bool show_actual_value; /* Show actual value of skill */
129
130
131
132
133                                                 /*** Easy Object Auto-Destroyer ***/
134
135 bool destroy_items;     /* Use easy auto-destroyer */
136 bool destroy_feeling;   /* Apply auto-destroy as sense feeling */
137 bool destroy_identify;  /* Apply auto-destroy as identify an item */
138 bool leave_worth;       /* Auto-destroyer leaves known worthy items */
139 bool leave_equip;       /* Auto-destroyer leaves weapons and armour */
140 bool leave_chest;       /* Auto-destroyer leaves closed chests */
141 bool leave_wanted;      /* Auto-destroyer leaves wanted corpses */
142 bool leave_corpse;      /* Auto-destroyer leaves corpses and skeletons */
143 bool leave_junk;        /* Auto-destroyer leaves junk */
144 bool leave_special;     /* Auto-destroyer leaves items your race/class needs */
145
146
147                                         /*** Play-record Options ***/
148
149 bool record_fix_art;    /* Record fixed artifacts */
150 bool record_rand_art;   /* Record random artifacts */
151 bool record_destroy_uniq;       /* Record when destroy unique monster */
152 bool record_fix_quest;  /* Record fixed quests */
153 bool record_rand_quest; /* Record random quests */
154 bool record_maxdepth;   /* Record movements to deepest level */
155 bool record_stair;      /* Record recall and stair movements */
156 bool record_buy;        /* Record purchased items */
157 bool record_sell;       /* Record sold items */
158 bool record_danger;     /* Record hitpoint warning */
159 bool record_arena;      /* Record arena victories */
160 bool record_ident;      /* Record first identified items */
161 bool record_named_pet;  /* Record informations of named pets */
162 char record_o_name[MAX_NLEN];
163 GAME_TURN record_turn;
164
165
166 /* Cheating options */
167
168 bool cheat_peek;        /* Peek into object creation */
169 bool cheat_hear;        /* Peek into monster creation */
170 bool cheat_room;        /* Peek into dungeon creation */
171 bool cheat_xtra;        /* Peek into something else */
172 bool cheat_know;        /* Know complete monster info */
173 bool cheat_live;        /* Allow player to avoid death */
174 bool cheat_save;        /* Ask for saving death */
175 bool cheat_diary_output; /* Detailed info to diary */
176 bool cheat_turn;        /* Peek current_world_ptr->game_turn */
177 bool cheat_sight;
178
179
180 /* Special options */
181
182 byte hitpoint_warn;     /* Hitpoint warning (0 to 9) */
183 byte mana_warn; /* Mana color (0 to 9) */
184
185 byte delay_factor;      /* Delay factor (0 to 9) */
186
187 bool autosave_l;        /* Autosave before entering new levels */
188 bool autosave_t;        /* Timed autosave */
189 s16b autosave_freq;     /* Autosave frequency */
190
191 bool use_sound;                 /* The "sound" mode is enabled */
192 bool use_music;                 /* The "music" mode is enabled */
193 bool use_graphics;              /* The "graphics" mode is enabled */
194 bool use_bigtile = FALSE;
195
196 /*
197  * Run-time arguments
198  */
199 bool arg_fiddle;                        /* Command arg -- Request fiddle mode */
200 bool arg_wizard;                        /* Command arg -- Request wizard mode */
201 bool arg_sound;                         /* Command arg -- Request special sounds */
202 bool arg_music;                         /* Command arg -- Request special musics */
203 byte arg_graphics;                      /* Command arg -- Request graphics mode */
204 bool arg_monochrome;            /* Command arg -- Request monochrome mode */
205 bool arg_force_original;        /* Command arg -- Request original keyset */
206 bool arg_force_roguelike;       /* Command arg -- Request roguelike keyset */
207 bool arg_bigtile = FALSE;       /* Command arg -- Request big tile mode */
208
209 BIT_FLAGS option_flag[8]; //!< The array of normal options
210 BIT_FLAGS option_mask[8]; //!< The array of normal options
211 BIT_FLAGS window_flag[8]; //!< The array of window options
212 BIT_FLAGS window_mask[8]; //!< The array of window options
213
214 /*!
215  * @brief オプションテーブル /
216  * Available Options
217  */
218 const option_type option_info[] =
219 {
220         /*** Input Options ***/
221
222         { &rogue_like_commands,         FALSE, OPT_PAGE_INPUT, 0, 0,
223         "rogue_like_commands",          _("ローグ風キー配置を使用する", "Rogue-like commands") },
224
225         { &always_pickup,               FALSE, OPT_PAGE_INPUT, 0, 5,
226         "always_pickup",                _("常にアイテムを拾う" , "Pick things up by default") },
227
228         { &carry_query_flag,            FALSE, OPT_PAGE_INPUT, 0, 3,
229         "carry_query_flag",             _("アイテムを拾う前に確認する", "Prompt before picking things up") },
230
231         { &quick_messages,              TRUE,  OPT_PAGE_INPUT, 0, 1,
232         "quick_messages",               _("クイック・メッセージを使用する", "Activate quick messages") },
233
234         { &auto_more,                   FALSE, OPT_PAGE_INPUT, 2, 6,
235         "auto_more",                    _("キー待ちしないで連続でメッセージを表示する", "Automatically clear '-more-' prompts") },
236
237         { &command_menu,                TRUE,  OPT_PAGE_INPUT, 2, 7,
238         "command_menu",                 _("メニューによりコマンド選択を有効にする", "Enable command selection menu") },
239
240         { &other_query_flag,            FALSE, OPT_PAGE_INPUT, 0, 2,
241         "other_query_flag",             _("床上のアイテムを使用するときに確認する", "Prompt for floor item selection") },
242
243         { &use_old_target,              FALSE, OPT_PAGE_INPUT, 0, 4,
244         "use_old_target",               _("常に以前のターゲットを指定する", "Use old target by default") },
245
246         { &always_repeat,               TRUE,  OPT_PAGE_INPUT, 0, 6,
247         "always_repeat",                _("コマンド自動繰り返し", "Repeat obvious commands") },
248
249         { &confirm_destroy,             FALSE, OPT_PAGE_INPUT, 5, 3,
250         "confirm_destroy",              _("「無価値」なアイテムを破壊する時確認する", "Prompt for destruction of known worthless items") },
251
252         { &confirm_wear,                TRUE,  OPT_PAGE_INPUT, 5, 4,
253         "confirm_wear",                 _("呪われた物を装備する時確認する", "Confirm to wear/wield known cursed items") },
254
255         { &confirm_quest,               TRUE,  OPT_PAGE_INPUT, 1, 9,
256         "confirm_quest",                _("クエストを諦めて階段で逃げる前に確認する", "Prompt before exiting a quest level") },
257
258         { &target_pet,                  FALSE, OPT_PAGE_INPUT, 2, 5,
259         "target_pet",                   _("ペットをターゲットにする", "Allow targetting pets") },
260
261         { &easy_open,                   TRUE,  OPT_PAGE_INPUT, 5, 7,
262         "easy_open",                    _("自動的にドアを開ける", "Automatically open doors") },
263
264         { &easy_disarm,                 TRUE,  OPT_PAGE_INPUT, 5, 8,
265         "easy_disarm",                  _("自動的に罠を解除する", "Automatically disarm traps") },
266
267         { &easy_floor,                  FALSE, OPT_PAGE_INPUT, 5, 9,
268         "easy_floor",                   _("床上で重なったアイテムをリストする", "Display floor stacks in a list") },
269
270         { &use_command,                 FALSE, OPT_PAGE_INPUT, 5, 10,
271         "use_command",                  _("「使う(a)」コマンドでアイテムを何でも使える", "Allow unified use command") },
272
273         { &over_exert,                  FALSE, OPT_PAGE_INPUT, 0, 29,
274         "over_exert",                   _("MPが足りなくても魔法に挑戦する", "Allow casting spells when short of mana") },
275
276         { &numpad_as_cursorkey,         TRUE, OPT_PAGE_INPUT, 2, 31,
277         "numpad_as_cursorkey",          _("エディタ内でテンキーをカーソルキーとして使う", "Use numpad keys as cursor keys in editor mode") },
278
279 /*** Map Screen Options ***/
280
281         { &center_player,               FALSE, OPT_PAGE_MAPSCREEN, 5, 11,
282         "center_player",                _("常にプレイヤーを中心に置く(*遅い*)", "Center map while walking (*slow*)") },
283
284         { &center_running,              TRUE,  OPT_PAGE_MAPSCREEN, 5, 12,
285         "center_running",               _("走っている時でも中心に置く", "Centering even while running") },
286
287         { &view_yellow_lite,            TRUE,  OPT_PAGE_MAPSCREEN, 1, 28,
288         "view_yellow_lite",             _("明かりの範囲を特別な色で表示する", "Use special colors for torch-lit grids") },
289
290         { &view_bright_lite,            TRUE,  OPT_PAGE_MAPSCREEN, 1, 29,
291         "view_bright_lite",             _("視界の範囲を特別な色で表示する", "Use special colors for 'viewable' grids") },
292
293         { &view_granite_lite,           TRUE,  OPT_PAGE_MAPSCREEN, 1, 30,
294         "view_granite_lite",            _("壁を特別な色で表示する(重い)", "Use special colors for wall grids (slow)") },
295
296         { &view_special_lite,           TRUE,  OPT_PAGE_MAPSCREEN, 1, 31,
297         "view_special_lite",            _("床を特別な色で表示する(重い)", "Use special colors for floor grids (slow)") },
298
299         { &view_perma_grids,            TRUE,  OPT_PAGE_MAPSCREEN, 1, 6,
300         "view_perma_grids",             _("明るい場所はそのままにする", "Map remembers all perma-lit grids") },
301
302         { &view_torch_grids,            FALSE, OPT_PAGE_MAPSCREEN, 1, 7,
303         "view_torch_grids",             _("明かりで照らした場所はそのままにする", "Map remembers all torch-lit grids") },
304
305         { &view_unsafe_grids,           FALSE, OPT_PAGE_MAPSCREEN, 1, 8,
306         "view_unsafe_grids",            _("トラップ感知済みでない場所を表示する", "Map marked by detect traps") },
307
308         { &view_reduce_view,            FALSE, OPT_PAGE_MAPSCREEN, 1, 17,
309         "view_reduce_view",             _("街では視野を狭くする", "Reduce view-radius in town") },
310
311         { &fresh_before,                TRUE,  OPT_PAGE_MAPSCREEN, 1, 23,
312         "fresh_before",                 _("連続コマンド中に画面を再描画し続ける", "Flush output while continuous command") },
313
314         { &fresh_after,                 FALSE, OPT_PAGE_MAPSCREEN, 1, 24,
315         "fresh_after",                  _("コマンド後に画面を常に再描画し続ける", "Flush output after monster's move") },
316
317         { &fresh_message,               FALSE, OPT_PAGE_MAPSCREEN, 1, 25,
318         "fresh_message",                _("メッセージの後に画面を再描画する", "Flush output after every message") },
319
320         { &hilite_player,               FALSE, OPT_PAGE_MAPSCREEN, 1, 27,
321         "hilite_player",                _("プレイヤーにカーソルを合わせる", "Hilite the player with the cursor") },
322
323         { &display_path,                FALSE, OPT_PAGE_MAPSCREEN, 2, 8,
324         "display_path",                 _("魔法や矢の軌跡を表示する", "Display actual path before shooting") },
325
326 /*** Text Display Options ***/
327
328         { &plain_descriptions,          TRUE,  OPT_PAGE_TEXT, 5, 1,
329         "plain_descriptions",           _("アイテムの記述を簡略にする", "Plain object descriptions") },
330
331         { &plain_pickup,                FALSE, OPT_PAGE_TEXT, 6, 6,
332         "plain_pickup",                 _("「拾った」メッセージを簡略化する", "Plain pickup messages(japanese only)") },
333
334         { &always_show_list,            TRUE,  OPT_PAGE_TEXT, 4, 0,
335         "always_show_list",             _("選択時には常に一覧を表示する", "Always show list when choosing items") },
336
337         { &depth_in_feet,               FALSE, OPT_PAGE_TEXT, 0, 7,
338         "depth_in_feet",                _("ダンジョンの深さをフィートで表示する", "Show dungeon level in feet") },
339
340         { &show_labels,                 TRUE,  OPT_PAGE_TEXT, 0, 10,
341         "show_labels",                  _("装備一覧で装備場所を表示する", "Show labels in object listings") },
342
343         { &show_weights,                TRUE,  OPT_PAGE_TEXT, 0, 11,
344         "show_weights",                 _("アイテム一覧で重量を表示する", "Show weights in object listings") },
345
346         { &show_item_graph,             TRUE,  OPT_PAGE_TEXT, 2, 0,
347         "show_item_graph",              _("アイテムのシンボルを表示する", "Show items graphics") },
348
349         { &equippy_chars,               TRUE,  OPT_PAGE_TEXT, 1, 12,
350         "equippy_chars",                _("ステータスに文字で装備を表示する", "Display 'equippy' chars") },
351
352         { &display_mutations,           FALSE, OPT_PAGE_TEXT, 5, 0,
353         "display_mutations",            _("'C'コマンドで突然変異を表示する", "Display mutations in 'C'haracter Display") },
354
355         { &compress_savefile,           FALSE, OPT_PAGE_TEXT, 1, 26,
356         "compress_savefile",            _("セーブ・ファイル中のメッセージを圧縮する", "Compress messages in savefiles") },
357
358         { &abbrev_extra,                FALSE, OPT_PAGE_TEXT, 2, 10,
359         "abbrev_extra",                 _("アイテムに追加耐性/能力の略称を刻む", "Describe obj's extra resistances by abbreviation") },
360
361         { &abbrev_all,                  FALSE, OPT_PAGE_TEXT, 2, 11,
362         "abbrev_all",                   _("アイテムに全ての耐性/能力の略称を刻む", "Describe obj's all resistances by abbreviation") },
363
364         { &exp_need,                    FALSE, OPT_PAGE_TEXT, 2, 12,
365         "exp_need",                     _("次のレベルに必要な経験値を表示する", "Show the experience needed for next level") },
366
367         { &ignore_unview,               FALSE, OPT_PAGE_TEXT, 2, 13,
368         "ignore_unview",                _("視界外のモンスターの行動を表示しない", "Ignore whenever any monster does") },
369
370         { &show_ammo_detail,            TRUE, OPT_PAGE_TEXT, 2, 14,
371         "show_ammo_detail",             _("矢弾のダメージの説明を表示する", "Show description of ammo damage") },
372
373         { &show_ammo_no_crit,           FALSE, OPT_PAGE_TEXT, 2, 15,
374         "show_ammo_no_crit",            _("会心を考慮しない場合の矢弾のダメージを表示する", "Show ammo damage with no critical") },
375
376         { &show_ammo_crit_ratio,        FALSE, OPT_PAGE_TEXT, 2, 16,
377         "show_ammo_crit_ratio",         _("矢弾の会心発生率を表示する", "Show critical ratio of ammo") },
378
379         { &show_actual_value,           FALSE, OPT_PAGE_TEXT, 2, 17,
380         "show_actual_vaule",            _("各技能値に実値を表示する", "Show actual value of skill") },
381
382
383 /*** Game-Play ***/
384
385         { &stack_force_notes,           TRUE,  OPT_PAGE_GAMEPLAY, 0, 8,
386         "stack_force_notes",            _("異なる銘のアイテムをまとめる", "Merge inscriptions when stacking") },
387
388         { &stack_force_costs,           FALSE, OPT_PAGE_GAMEPLAY, 0, 9,
389         "stack_force_costs",            _("異なる割引表示のアイテムをまとめる", "Merge discounts when stacking") },
390
391         { &expand_list,                 TRUE,  OPT_PAGE_GAMEPLAY, 1, 5,
392         "expand_list",                  _("「一覧」コマンドを拡張する", "Expand the power of the list commands") },
393
394         { &small_levels,                TRUE,  OPT_PAGE_GAMEPLAY, 0, 30,
395         "small_levels",                 _("非常に小さいフロアの生成を可能にする", "Allow unusually small dungeon levels") },
396
397         { &always_small_levels,         FALSE, OPT_PAGE_GAMEPLAY, 2, 3,
398         "always_small_levels",          _("常に非常に小さいフロアを生成する", "Always create unusually small dungeon levels") },
399
400         { &empty_levels,                TRUE,  OPT_PAGE_GAMEPLAY, 0, 31,
401         "empty_levels",                 _("空っぽの「アリーナ」レベルの生成を可能にする", "Allow empty 'arena' levels") },
402
403         { &bound_walls_perm,            FALSE, OPT_PAGE_GAMEPLAY, 2, 1,
404         "bound_walls_perm",             _("ダンジョンの外壁を永久岩にする", "Boundary walls become 'permanent wall'") },
405
406         { &last_words,                  TRUE,  OPT_PAGE_GAMEPLAY, 0, 28,
407         "last_words",                   _("キャラクターが死んだ時遺言をのこす", "Leave last words when your character dies") },
408
409 #ifdef WORLD_SCORE
410         { &send_score,                  TRUE,  OPT_PAGE_GAMEPLAY, 4, 6,
411         "send_score",                   _("スコアサーバにスコアを送る", "Send score dump to the world score server") },
412 #endif
413
414         { &allow_debug_opts,            FALSE, OPT_PAGE_GAMEPLAY, 6, 11,
415         "allow_debug_opts",             _("デバッグ/詐欺オプションを許可する", "Allow use of debug/cheat options") },
416
417 /*** Disturbance ***/
418
419         { &find_ignore_stairs,          FALSE, OPT_PAGE_DISTURBANCE, 0, 16,
420         "find_ignore_stairs",           _("階段は通過する", "Run past stairs") },
421
422         { &find_ignore_doors,           TRUE,  OPT_PAGE_DISTURBANCE, 0, 17,
423         "find_ignore_doors",            _("ドアは通過する", "Run through open doors") },
424
425         { &find_cut,                    FALSE, OPT_PAGE_DISTURBANCE, 0, 18,
426         "find_cut",                     _("曲り角を斜めに最短距離で通過する", "Run past known corners") },
427
428         { &check_abort,                 TRUE,  OPT_PAGE_DISTURBANCE, 1, 18,
429         "check_abort",                  _("連続コマンドはキー入力で中断する", "Check for user abort while continuous command") },
430
431         { &flush_failure,               TRUE,  OPT_PAGE_DISTURBANCE, 1, 20,
432         "flush_failure",                _("様々なミス発生時に入力をクリアする", "Flush input on various failures") },
433
434         { &flush_disturb,               FALSE, OPT_PAGE_DISTURBANCE, 1, 21,
435         "flush_disturb",                _("障害発生時に入力をクリアする", "Flush input whenever disturbed") },
436
437         { &disturb_move,                FALSE, OPT_PAGE_DISTURBANCE, 0, 20,
438         "disturb_move",                 _("どこのモンスターが動いても行動を中止する", "Disturb whenever any monster moves") },
439
440         { &disturb_high,                FALSE, OPT_PAGE_DISTURBANCE, 1, 3,
441         "disturb_high",                 _("レベルの高いモンスターが動いたら行動を中止する", "Disturb whenever high-level monster moves") },
442
443         { &disturb_near,                TRUE,  OPT_PAGE_DISTURBANCE, 0, 21,
444         "disturb_near",                 _("視界内のモンスターが動いたら行動を中止する", "Disturb whenever viewable monster moves") },
445
446         { &disturb_pets,                FALSE, OPT_PAGE_DISTURBANCE, 5, 6,
447         "disturb_pets",                 _("視界内のペットが動いたら行動を中止する", "Disturb when visible pets move") },
448
449         { &disturb_panel,               TRUE,  OPT_PAGE_DISTURBANCE, 0, 22,
450         "disturb_panel",                _("画面スクロール時に行動を中止する", "Disturb whenever map panel changes") },
451
452         { &disturb_state,               TRUE,  OPT_PAGE_DISTURBANCE, 0, 23,
453         "disturb_state",                _("自分のステータス変化時に行動を中止する", "Disturb whenever player state changes") },
454
455         { &disturb_minor,               TRUE,  OPT_PAGE_DISTURBANCE, 0, 24,
456         "disturb_minor",                _("些細なことが起きても行動を中止する", "Disturb whenever boring things happen") },
457
458         { &ring_bell,                   FALSE, OPT_PAGE_DISTURBANCE, 0, 14,
459         "ring_bell",                    _("エラー時にビープ音を鳴らす", "Audible bell (on errors, etc)") },
460
461         { &disturb_trap_detect,         TRUE,  OPT_PAGE_DISTURBANCE, 0, 27,
462         "disturb_trap_detect",          _("トラップ感知範囲外に出る直前に行動を中止する", "Disturb when leaving trap detected area") },
463
464         { &alert_trap_detect,           FALSE, OPT_PAGE_DISTURBANCE, 0, 25,
465         "alert_trap_detect",            _("トラップ感知範囲外に出る直前に警告する", "Alert when leaving trap detected area") },
466
467 /*** Birth Options ***/
468         { &manual_haggle,               FALSE, OPT_PAGE_BIRTH, 1, 0,
469         "manual_haggle",                _("店で値切り交渉をする", "Manually haggle in stores") },
470
471         { &easy_band,                   FALSE, OPT_PAGE_BIRTH, 6, 31,
472         "easy_band",                    _("初心者用簡単モード(*)", "Easy Mode (*)") },
473
474         { &smart_learn,                 TRUE,  OPT_PAGE_BIRTH, 1, 14,
475         "smart_learn",                  _("モンスターは失敗を学習する(*)", "Monsters learn from their mistakes (*)") },
476
477         { &smart_cheat,                 FALSE, OPT_PAGE_BIRTH, 1, 15,
478         "smart_cheat",                  _("モンスターはプレイヤーの弱みを突く(*)", "Monsters exploit players weaknesses (*)") },
479
480         { &vanilla_town,                FALSE, OPT_PAGE_BIRTH, 6, 0,
481         "vanilla_town",                 _("元祖の街/クエストと荒野なし", "Use 'vanilla' town without quests and wilderness") },
482
483         { &lite_town,                   FALSE, OPT_PAGE_BIRTH, 6, 1,
484         "lite_town",                    _("小規模な街/荒野なし", "Use 'lite' town without a wilderness") },
485
486         { &ironman_shops,               FALSE, OPT_PAGE_BIRTH, 6, 2,
487         "ironman_shops",                _("(鉄人用)店を使用しない(*)", "Stores are permanently closed (*)") },
488
489         { &ironman_small_levels,        FALSE, OPT_PAGE_BIRTH, 6, 3,
490         "ironman_small_levels",         _("(鉄人用)常に非常に小さいフロアを生成(*)", "Always create unusually small dungeon levels (*)") },
491
492         { &ironman_downward,            FALSE, OPT_PAGE_BIRTH, 6, 4,
493         "ironman_downward",             _("(鉄人用)帰還と上り階段なし(*)", "Disable recall and use of up stairs (*)") },
494
495         { &ironman_empty_levels,        FALSE, OPT_PAGE_BIRTH, 6, 8,
496         "ironman_empty_levels",         _("(鉄人用)常に空っぽのアリーナレベルを生成(*)", "Always create empty 'arena' levels (*)") },
497
498         { &ironman_rooms,               FALSE, OPT_PAGE_BIRTH, 6, 12,
499         "ironman_rooms",                _("(鉄人用)常に普通でない部屋を生成する(*)", "Always generate very unusual rooms (*)") },
500
501         { &ironman_nightmare,           FALSE, OPT_PAGE_BIRTH, 6, 18,
502         "ironman_nightmare",            _("(鉄人用)悪夢モード(これは全く不条理です!)(*)", "Nightmare mode(it isn't even remotely fair!)(*)") },
503
504         { &left_hander,                 FALSE, OPT_PAGE_BIRTH, 6, 13,
505         "left_hander",                  _("左利きである", "Left-Hander") },
506
507         { &preserve_mode,               TRUE,  OPT_PAGE_BIRTH, 6, 14,
508         "preserve_mode",                _("伝説のアイテムを取り逃しても再生成される(*)", "Preserve artifacts (*)") },
509
510         { &autoroller,                  TRUE,  OPT_PAGE_BIRTH, 6, 15,
511         "autoroller",                   _("能力値にオートローラー使用(*)", "Allow use of autoroller for stats (*)") },
512
513         { &autochara,                   FALSE, OPT_PAGE_BIRTH, 6, 16,
514         "autochara",                   _("体格/地位にオートローラー使用", "Autoroll for weight, height and social status") },
515
516         { &powerup_home,                TRUE,  OPT_PAGE_BIRTH, 4, 3,
517         "powerup_home",                 _("我が家を拡張する(*)", "Increase capacity of your home (*)") },
518
519 /*** Easy Object Auto-Destroyer ***/
520
521         { &destroy_items,               FALSE, OPT_PAGE_AUTODESTROY, 7, 0,
522         "destroy_items",                _("アイテムの簡易自動破壊を使用する", "Use easy auto-destroyer") },
523
524         { &destroy_feeling,             FALSE, OPT_PAGE_AUTODESTROY, 7, 8,
525         "destroy_feeling",              _("簡易鑑定したとき自動破壊を適用する", "Apply auto-destroy as sense feeling") },
526
527         { &destroy_identify,            FALSE, OPT_PAGE_AUTODESTROY, 7, 9,
528         "destroy_identify",             _("鑑定したとき自動破壊を適用する", "Apply auto-destroy as identify an item") },
529
530         { &leave_worth,                 TRUE,  OPT_PAGE_AUTODESTROY, 7, 2,
531         "leave_worth",                  _("価値があるアイテムは壊さない", "Auto-destroyer leaves known worthy items") },
532
533         { &leave_equip,                 FALSE, OPT_PAGE_AUTODESTROY, 7, 3,
534         "leave_equip",                  _("武器/防具は壊さない", "Auto-destroyer leaves weapons and armour") },
535
536         { &leave_chest,                 TRUE,  OPT_PAGE_AUTODESTROY, 7, 7,
537         "leave_chest",                  _("開封されていない箱は壊さない", "Auto-destroyer leaves closed chests") },
538
539         { &leave_wanted,                TRUE,  OPT_PAGE_AUTODESTROY, 7, 4,
540         "leave_wanted",                 _("賞金首の死体/骨は壊さない", "Auto-destroyer leaves wanted corpses") },
541
542         { &leave_corpse,                FALSE, OPT_PAGE_AUTODESTROY, 7, 5,
543         "leave_corpse",                 _("死体/骨は壊さない", "Auto-destroyer leaves corpses and skeletons") },
544
545         { &leave_junk,                  FALSE, OPT_PAGE_AUTODESTROY, 7, 6,
546         "leave_junk",                   _("がらくたは壊さない", "Auto-destroyer leaves junk") },
547
548         { &leave_special,               TRUE,  OPT_PAGE_AUTODESTROY, 7, 1,
549         "leave_special",                _("種族/職業で特別に必要なアイテムは壊さない", "Auto-destroyer leaves items your race/class needs") },
550
551 /*** Play-record Options ***/
552
553         { &record_fix_art,              TRUE,  OPT_PAGE_PLAYRECORD, 4, 11,
554         "record_fix_art",               _("固定アーティファクトの入手を記録する", "Record fixed artifacts") },
555
556         { &record_rand_art,             TRUE,  OPT_PAGE_PLAYRECORD, 4, 12,
557         "record_rand_art",              _("ランダムアーティファクトの入手を記録する", "Record random artifacts") },
558
559         { &record_destroy_uniq,         TRUE,  OPT_PAGE_PLAYRECORD, 4, 13,
560         "record_destroy_uniq",          _("ユニークモンスターを倒したときを記録する", "Record when destroy unique monster") },
561
562         { &record_fix_quest,            TRUE,  OPT_PAGE_PLAYRECORD, 4, 14,
563         "record_fix_quest",             _("固定クエストの達成を記録する", "Record fixed quests") },
564
565         { &record_rand_quest,           TRUE,  OPT_PAGE_PLAYRECORD, 4, 15,
566         "record_rand_quest",            _("ランダムクエストの達成を記録する", "Record random quests") },
567
568         { &record_maxdepth,             TRUE,  OPT_PAGE_PLAYRECORD, 4, 16,
569         "record_maxdepth",              _("最深階を更新したときに記録する", "Record movements to deepest level") },
570
571         { &record_stair,                TRUE,  OPT_PAGE_PLAYRECORD, 4, 17,
572         "record_stair",                 _("階の移動を記録する", "Record recall and stair movements") },
573
574         { &record_buy,                  TRUE,  OPT_PAGE_PLAYRECORD, 4, 18,
575         "record_buy",                   _("アイテムの購入を記録する", "Record purchased items") },
576
577         { &record_sell,                 FALSE, OPT_PAGE_PLAYRECORD, 4, 19,
578         "record_sell",                  _("アイテムの売却を記録する", "Record sold items") },
579
580         { &record_danger,               TRUE,  OPT_PAGE_PLAYRECORD, 4, 20,
581         "record_danger",                _("ピンチになったときを記録する", "Record hitpoint warning") },
582
583         { &record_arena,                TRUE,  OPT_PAGE_PLAYRECORD, 4, 21,
584         "record_arena",                 _("アリーナでの勝利を記録する", "Record arena victories") },
585
586         { &record_ident,                TRUE,  OPT_PAGE_PLAYRECORD, 4, 22,
587         "record_ident",                 _("未判明のアイテムの識別を記録する", "Record first identified items") },
588
589         { &record_named_pet,            FALSE, OPT_PAGE_PLAYRECORD, 4, 23,
590         "record_named_pet",             _("名前つきペットの情報を記録する", "Record informations of named pets") },
591
592 /*** End of Table ***/
593
594         { NULL,                         0, 0, 0, 0,
595         NULL,                           NULL }
596 };
597
598 /*!
599  * チートオプションの定義テーブル / Cheating options
600  */
601 const option_type cheat_info[CHEAT_MAX] =
602 {
603         { &cheat_peek,          FALSE,  255,    0x01, 0x00,
604         "cheat_peek",           _("アイテムの生成をのぞき見る", "Peek into object creation")
605         },
606
607         { &cheat_hear,          FALSE,  255,    0x02, 0x00,
608         "cheat_hear",           _("モンスターの生成をのぞき見る", "Peek into monster creation")
609         },
610
611         { &cheat_room,          FALSE,  255,    0x04, 0x00,
612         "cheat_room",           _("ダンジョンの生成をのぞき見る", "Peek into dungeon creation")
613         },
614
615         { &cheat_xtra,          FALSE,  255,    0x08, 0x00,
616         "cheat_xtra",           _("その他の事をのぞき見る", "Peek into something else")
617         },
618
619         { &cheat_know,          FALSE,  255,    0x10, 0x00,
620         "cheat_know",           _("完全なモンスターの思い出を知る", "Know complete monster info")
621         },
622
623         { &cheat_live,          FALSE,  255,    0x20, 0x00,
624         "cheat_live",           _("死を回避することを可能にする", "Allow player to avoid death")
625         },
626
627         { &cheat_save,          FALSE,  255,    0x40, 0x00,
628         "cheat_save",           _("死んだ時セーブするか確認する", "Ask for saving death")
629         },
630
631         { &cheat_diary_output,  FALSE,  255,    0x80, 0x00,
632         "cheat_diary_output",   _("ウィザードログを日記に出力する", "Output wizard log to diary.")
633         },
634
635         { &cheat_turn,  FALSE,  255,    0x81, 0x00,
636         "cheat_turn",   _("ゲームメッセージにターン表示を行う", "Put current_world_ptr->game_turn to game message.")
637         },
638
639         { &cheat_sight, FALSE,  255,    0x82, 0x00,
640         "cheat_sight",  _("「見る」コマンドを拡張する。", "Expand \"L\"ook command.")
641         }
642 };
643
644
645 /*!
646 * 自動セーブオプションテーブル
647 */
648 const option_type autosave_info[2] =
649 {
650         { &autosave_l,      FALSE, 255, 0x01, 0x00,
651         "autosave_l",    _("新しい階に入る度に自動セーブする", "Autosave when entering new levels") },
652
653         { &autosave_t,      FALSE, 255, 0x02, 0x00,
654         "autosave_t",   _("一定ターン毎に自動セーブする", "Timed autosave") },
655 };
656
657
658 /*!
659  * @brief ビットセットからゲームオプションを展開する / Extract option variables from bit sets
660  * @return なし
661  */
662 void extract_option_vars(void)
663 {
664         int i;
665
666         for (i = 0; option_info[i].o_desc; i++)
667         {
668                 int os = option_info[i].o_set;
669                 int ob = option_info[i].o_bit;
670
671                 /* Set the "default" options */
672                 if (option_info[i].o_var)
673                 {
674                         /* Set */
675                         if (option_flag[os] & (1L << ob))
676                         {
677                                 /* Set */
678                                 (*option_info[i].o_var) = TRUE;
679                         }
680
681                         /* Clear */
682                         else
683                         {
684                                 /* Clear */
685                                 (*option_info[i].o_var) = FALSE;
686                         }
687                 }
688         }
689 }