OSDN Git Service

[Refactor] #37353 record_o_name の宣言を gameoption.h へ移動.
[hengband/hengband.git] / src / gameoption.h
1 #pragma once
2
3 /*** Option Definitions ***/
4
5 #define OPT_PAGE_INPUT          1
6 #define OPT_PAGE_MAPSCREEN      2
7 #define OPT_PAGE_TEXT           3
8 #define OPT_PAGE_GAMEPLAY       4
9 #define OPT_PAGE_DISTURBANCE    5
10 #define OPT_PAGE_BIRTH          6
11 #define OPT_PAGE_AUTODESTROY    7
12 #define OPT_PAGE_PLAYRECORD    10
13
14 #define OPT_PAGE_JAPANESE_ONLY 99
15
16 /*** Input Options ***/
17
18 extern bool rogue_like_commands;        /* Rogue-like commands */
19 extern bool always_pickup;      /* Pick things up by default */
20 extern bool carry_query_flag;   /* Prompt before picking things up */
21 extern bool quick_messages;     /* Activate quick messages */
22 extern bool auto_more;  /* Automatically clear '-more-' prompts */
23 extern bool command_menu;       /* Enable command selection menu */
24 extern bool other_query_flag;   /* Prompt for floor item selection */
25 extern bool use_old_target;     /* Use old target by default */
26 extern bool always_repeat;      /* Repeat obvious commands */
27 extern bool confirm_destroy;    /* Prompt for destruction of known worthless items */
28 extern bool confirm_wear;       /* Confirm to wear/wield known cursed items */
29 extern bool confirm_quest;      /* Prompt before exiting a quest level */
30 extern bool target_pet; /* Allow targetting pets */
31 extern bool easy_open;  /* Automatically open doors */
32 extern bool easy_disarm;        /* Automatically disarm traps */
33 extern bool easy_floor; /* Display floor stacks in a list */
34 extern bool use_command;        /* Allow unified use command */
35 extern bool over_exert; /* Allow casting spells when short of mana */
36 extern bool numpad_as_cursorkey;        /* Use numpad keys as cursor key in editor mode */
37
38
39                                                                         /*** Map Screen Options ***/
40
41 extern bool center_player;      /* Center map while walking (*slow*) */
42 extern bool center_running;     /* Centering even while running */
43 extern bool view_yellow_lite;   /* Use special colors for torch-lit grids */
44 extern bool view_bright_lite;   /* Use special colors for 'viewable' grids */
45 extern bool view_granite_lite;  /* Use special colors for wall grids (slow) */
46 extern bool view_special_lite;  /* Use special colors for floor grids (slow) */
47 extern bool view_perma_grids;   /* Map remembers all perma-lit grids */
48 extern bool view_torch_grids;   /* Map remembers all torch-lit grids */
49 extern bool view_unsafe_grids;  /* Map marked by detect traps */
50 extern bool view_reduce_view;   /* Reduce view-radius in town */
51 extern bool fresh_before;       /* Flush output while continuous command */
52 extern bool fresh_after;        /* Flush output after monster's move */
53 extern bool fresh_message;      /* Flush output after every message */
54 extern bool hilite_player;      /* Hilite the player with the cursor */
55 extern bool display_path;       /* Display actual path before shooting */
56
57
58                                                         /*** Text Display Options ***/
59
60 extern bool plain_descriptions; /* Plain object descriptions */
61 extern bool plain_pickup;       /* Plain pickup messages(japanese only) */
62 extern bool always_show_list;   /* Always show list when choosing items */
63 extern bool depth_in_feet;      /* Show dungeon level in feet */
64 extern bool show_labels;        /* Show labels in object listings */
65 extern bool show_weights;       /* Show weights in object listings */
66 extern bool show_item_graph;    /* Show items graphics */
67 extern bool equippy_chars;      /* Display 'equippy' chars */
68 extern bool display_mutations;  /* Display mutations in 'C'haracter Display */
69 extern bool compress_savefile;  /* Compress messages in savefiles */
70 extern bool abbrev_extra;       /* Describe obj's extra resistances by abbreviation */
71 extern bool abbrev_all; /* Describe obj's all resistances by abbreviation */
72 extern bool exp_need;   /* Show the experience needed for next level */
73 extern bool ignore_unview;      /* Ignore whenever any monster does */
74 extern bool show_ammo_detail;   /* Show Description of ammo damage */
75 extern bool show_ammo_no_crit;  /* Show No-crit damage of ammo */
76 extern bool show_ammo_crit_ratio;       /* Show critical ratio of ammo */
77 extern bool show_actual_value;  /* Show actual value of skill */
78
79                                                                 /*** Game-Play Options ***/
80
81 extern bool stack_force_notes;  /* Merge inscriptions when stacking */
82 extern bool stack_force_costs;  /* Merge discounts when stacking */
83 extern bool expand_list;        /* Expand the power of the list commands */
84 extern bool small_levels;       /* Allow unusually small dungeon levels */
85 extern bool always_small_levels;        /* Always create unusually small dungeon levels */
86 extern bool empty_levels;       /* Allow empty 'arena' levels */
87 extern bool bound_walls_perm;   /* Boundary walls become 'permanent wall' */
88 extern bool last_words; /* Leave last words when your character dies */
89
90 #ifdef WORLD_SCORE
91 extern bool send_score; /* Send score dump to the world score server */
92 #endif
93
94 extern bool allow_debug_opts;   /* Allow use of debug/cheat options */
95
96
97                                                                 /*** Disturbance Options ***/
98
99 extern bool find_ignore_stairs; /* Run past stairs */
100 extern bool find_ignore_doors;  /* Run through open doors */
101 extern bool find_cut;   /* Run past known corners */
102 extern bool check_abort;        /* Check for user abort while continuous command */
103 extern bool flush_failure;      /* Flush input on various failures */
104 extern bool flush_disturb;      /* Flush input whenever disturbed */
105 extern bool disturb_move;       /* Disturb whenever any monster moves */
106 extern bool disturb_high;       /* Disturb whenever high-level monster moves */
107 extern bool disturb_near;       /* Disturb whenever viewable monster moves */
108 extern bool disturb_pets;       /* Disturb when visible pets move */
109 extern bool disturb_panel;      /* Disturb whenever map panel changes */
110 extern bool disturb_state;      /* Disturb whenever player state changes */
111 extern bool disturb_minor;      /* Disturb whenever boring things happen */
112 extern bool ring_bell;  /* Audible bell (on errors, etc) */
113 extern bool disturb_trap_detect;        /* Disturb when leaving trap detected area */
114 extern bool alert_trap_detect;  /* Alert when leaving trap detected area */
115
116
117                                                                 /*** Birth Options ***/
118
119 extern bool manual_haggle;      /* Manually haggle in stores */
120 extern bool easy_band;  /* Easy Mode (*) */
121 extern bool smart_learn;        /* Monsters learn from their mistakes (*) */
122 extern bool smart_cheat;        /* Monsters exploit players weaknesses (*) */
123 extern bool vanilla_town;       /* Use 'vanilla' town without quests and wilderness */
124 extern bool lite_town;  /* Use 'lite' town without a wilderness */
125 extern bool ironman_shops;      /* Stores are permanently closed (*) */
126 extern bool ironman_small_levels;       /* Always create unusually small dungeon levels (*) */
127 extern bool ironman_downward;   /* Disable recall and use of up stairs (*) */
128 extern bool ironman_empty_levels;       /* Always create empty 'arena' levels (*) */
129 extern bool ironman_rooms;      /* Always generate very unusual rooms (*) */
130 extern bool ironman_nightmare;  /* Nightmare mode(it isn't even remotely fair!)(*) */
131 extern bool left_hander;        /* Left-Hander */
132 extern bool preserve_mode;      /* Preserve artifacts (*) */
133 extern bool autoroller; /* Allow use of autoroller for stats (*) */
134 extern bool autochara;  /* Autoroll for weight, height and social status */
135 extern bool powerup_home;       /* Increase capacity of your home (*) */
136
137
138                                                         /*** Easy Object Auto-Destroyer ***/
139
140 extern bool destroy_items;      /* Use easy auto-destroyer */
141 extern bool destroy_feeling;    /* Apply auto-destroy as sense feeling */
142 extern bool destroy_identify;   /* Apply auto-destroy as identify an item */
143 extern bool leave_worth;        /* Auto-destroyer leaves known worthy items */
144 extern bool leave_equip;        /* Auto-destroyer leaves weapons and armour */
145 extern bool leave_chest;        /* Auto-destroyer leaves closed chests */
146 extern bool leave_wanted;       /* Auto-destroyer leaves wanted corpses */
147 extern bool leave_corpse;       /* Auto-destroyer leaves corpses and skeletons */
148 extern bool leave_junk; /* Auto-destroyer leaves junk */
149 extern bool leave_special;      /* Auto-destroyer leaves items your race/class needs */
150
151
152                                                         /*** Play-record Options ***/
153
154 extern bool record_fix_art;     /* Record fixed artifacts */
155 extern bool record_rand_art;    /* Record random artifacts */
156 extern bool record_destroy_uniq;        /* Record when destroy unique monster */
157 extern bool record_fix_quest;   /* Record fixed quests */
158 extern bool record_rand_quest;  /* Record random quests */
159 extern bool record_maxdepth;    /* Record movements to deepest level */
160 extern bool record_stair;       /* Record recall and stair movements */
161 extern bool record_buy; /* Record purchased items */
162 extern bool record_sell;        /* Record sold items */
163 extern bool record_danger;      /* Record hitpoint warning */
164 extern bool record_arena;       /* Record arena victories */
165 extern bool record_ident;       /* Record first identified items */
166 extern bool record_named_pet;   /* Record informations of named pets */
167
168 extern char record_o_name[MAX_NLEN];
169
170 extern bool cheat_peek;
171 extern bool cheat_hear;
172 extern bool cheat_room;
173 extern bool cheat_xtra;
174 extern bool cheat_know;
175 extern bool cheat_live;
176 extern bool cheat_save;
177 extern bool cheat_diary_output;
178 extern bool cheat_turn;
179 extern bool cheat_sight;
180
181 extern byte hitpoint_warn;
182 extern byte mana_warn;
183 extern byte delay_factor;
184 extern s16b autosave_freq;
185 extern bool autosave_t;
186 extern bool autosave_l;
187
188 extern bool use_sound;
189 extern bool use_music;
190 extern bool use_graphics;
191 extern bool use_bigtile;
192
193 extern bool arg_fiddle;
194 extern bool arg_wizard;
195 extern bool arg_music;
196 extern bool arg_sound;
197 extern byte arg_graphics;
198 extern bool arg_monochrome;
199 extern bool arg_force_original;
200 extern bool arg_force_roguelike;
201 extern bool arg_bigtile;
202
203 extern BIT_FLAGS option_flag[8];
204 extern BIT_FLAGS option_mask[8];
205 extern BIT_FLAGS window_flag[8];
206 extern BIT_FLAGS window_mask[8];
207 /*
208  * Available "options"
209  *
210  *      - Address of actual option variable (or NULL)
211  *
212  *      - Normal Value (TRUE or FALSE)
213  *
214  *      - Option Page Number (or zero)
215  *
216  *      - Savefile Set (or zero)
217  *      - Savefile Bit in that set
218  *
219  *      - Textual name (or NULL)
220  *      - Textual description
221  */
222
223 typedef struct option_type option_type;
224
225 struct option_type
226 {
227         bool    *o_var;
228         byte    o_norm;
229         byte    o_page;
230         byte    o_set;
231         byte    o_bit;
232         concptr o_text;
233         concptr o_desc;
234 };
235
236 extern const option_type option_info[];
237 extern const option_type cheat_info[CHEAT_MAX];
238 extern const option_type autosave_info[2];
239
240 extern void extract_option_vars(void);