OSDN Git Service

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