OSDN Git Service

[Refactor] #37353 window_flag_desc を term.c/h へ移動.
[hengband/hengband.git] / src / tables.c
1 /*!
2  * @file tables.c
3  * @brief ゲーム情報テーブル / Angband Tables
4  * @date 2014/07/23
5  * @author
6  * <pre>
7  * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke
8  * This software may be copied and distributed for educational, research,
9  * and not for profit purposes provided that this copyright and statement
10  * are included in all such copies.  Other copyrights may also apply.
11  * </pre>
12  */
13
14
15 #include "angband.h"
16 #include "spells.h"
17
18
19 /*!
20  * 10進数から16進数への変換テーブル /
21  * Global array for converting numbers to uppercase hecidecimal digit
22  * This array can also be used to convert a number to an octal digit
23  */
24 const char hexsym[16] =
25 {
26         '0', '1', '2', '3', '4', '5', '6', '7',
27         '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
28 };
29
30
31 /*!
32  * 選択処理用キーコード /
33  * Global array for converting numbers to a logical list symbol
34  */
35 const char listsym[] =
36 {
37         '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
38         'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
39         'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
40         'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
41         'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
42         '\0'
43 };
44
45
46 /*!
47  * スクリーン表示色キャラクタ /
48  * Encode the screen colors
49  */
50 const concptr color_char = "dwsorgbuDWvyRGBU";
51
52
53 /*!
54  * 知力/賢さによるレベル毎の習得可能魔法数テーブル
55  * Stat Table (INT/WIS) -- Number of half-spells per level
56  */
57 const byte adj_mag_study[] =
58 {
59         0       /* 3 */,
60         0       /* 4 */,
61         0       /* 5 */,
62         0       /* 6 */,
63         0       /* 7 */,
64         1       /* 8 */,
65         1       /* 9 */,
66         1       /* 10 */,
67         1       /* 11 */,
68         2       /* 12 */,
69         2       /* 13 */,
70         2       /* 14 */,
71         2       /* 15 */,
72         2       /* 16 */,
73         2       /* 17 */,
74         2       /* 18/00-18/09 */,
75         2       /* 18/10-18/19 */,
76         2       /* 18/20-18/29 */,
77         2       /* 18/30-18/39 */,
78         2       /* 18/40-18/49 */,
79         3       /* 18/50-18/59 */,
80         3       /* 18/60-18/69 */,
81         3       /* 18/70-18/79 */,
82         3       /* 18/80-18/89 */,
83         4       /* 18/90-18/99 */,
84         4       /* 18/100-18/109 */,
85         4       /* 18/110-18/119 */,
86         5       /* 18/120-18/129 */,
87         5       /* 18/130-18/139 */,
88         5       /* 18/140-18/149 */,
89         5       /* 18/150-18/159 */,
90         5       /* 18/160-18/169 */,
91         5       /* 18/170-18/179 */,
92         5       /* 18/180-18/189 */,
93         5       /* 18/190-18/199 */,
94         5       /* 18/200-18/209 */,
95         6       /* 18/210-18/219 */,
96         6       /* 18/220+ */
97 };
98
99
100 /*!
101  * 知力/賢さによるMP修正テーブル
102  * Stat Table (INT/WIS) -- extra 1/4-mana-points per level
103  */
104 const byte adj_mag_mana[] =
105 {
106         0       /* 3 */,
107         0       /* 4 */,
108         0       /* 5 */,
109         0       /* 6 */,
110         0       /* 7 */,
111         1       /* 8 */,
112         2       /* 9 */,
113         3       /* 10 */,
114         4       /* 11 */,
115         5       /* 12 */,
116         5       /* 13 */,
117         6       /* 14 */,
118         7       /* 15 */,
119         8       /* 16 */,
120         9       /* 17 */,
121         10      /* 18/00-18/09 */,
122         11      /* 18/10-18/19 */,
123         11      /* 18/20-18/29 */,
124         12      /* 18/30-18/39 */,
125         12      /* 18/40-18/49 */,
126         13      /* 18/50-18/59 */,
127         14      /* 18/60-18/69 */,
128         15      /* 18/70-18/79 */,
129         16      /* 18/80-18/89 */,
130         17      /* 18/90-18/99 */,
131         18      /* 18/100-18/109 */,
132         19      /* 18/110-18/119 */,
133         20      /* 18/120-18/129 */,
134         21      /* 18/130-18/139 */,
135         22      /* 18/140-18/149 */,
136         23      /* 18/150-18/159 */,
137         24      /* 18/160-18/169 */,
138         25      /* 18/170-18/179 */,
139         26      /* 18/180-18/189 */,
140         27      /* 18/190-18/199 */,
141         28      /* 18/200-18/209 */,
142         29      /* 18/210-18/219 */,
143         30      /* 18/220+ */
144 };
145
146
147 /*!
148  * 知力/賢さによる最低魔法失敗率テーブル
149  * Stat Table (INT/WIS) -- Minimum failure rate (percentage)
150  */
151 const byte adj_mag_fail[] =
152 {
153         99      /* 3 */,
154         99      /* 4 */,
155         99      /* 5 */,
156         99      /* 6 */,
157         99      /* 7 */,
158         50      /* 8 */,
159         30      /* 9 */,
160         20      /* 10 */,
161         15      /* 11 */,
162         12      /* 12 */,
163         11      /* 13 */,
164         10      /* 14 */,
165         9       /* 15 */,
166         8       /* 16 */,
167         7       /* 17 */,
168         6       /* 18/00-18/09 */,
169         6       /* 18/10-18/19 */,
170         5       /* 18/20-18/29 */,
171         5       /* 18/30-18/39 */,
172         5       /* 18/40-18/49 */,
173         4       /* 18/50-18/59 */,
174         4       /* 18/60-18/69 */,
175         4       /* 18/70-18/79 */,
176         4       /* 18/80-18/89 */,
177         3       /* 18/90-18/99 */,
178         3       /* 18/100-18/109 */,
179         2       /* 18/110-18/119 */,
180         2       /* 18/120-18/129 */,
181         2       /* 18/130-18/139 */,
182         2       /* 18/140-18/149 */,
183         1       /* 18/150-18/159 */,
184         1       /* 18/160-18/169 */,
185         1       /* 18/170-18/179 */,
186         1       /* 18/180-18/189 */,
187         1       /* 18/190-18/199 */,
188         0       /* 18/200-18/209 */,
189         0       /* 18/210-18/219 */,
190         0       /* 18/220+ */
191 };
192
193
194 /*!
195  * 知力/賢さによる魔法失敗率修正テーブル
196  * Stat Table (INT/WIS) -- Various things
197  */
198 const byte adj_mag_stat[] =
199 {
200         0       /* 3 */,
201         0       /* 4 */,
202         0       /* 5 */,
203         0       /* 6 */,
204         0       /* 7 */,
205         1       /* 8 */,
206         1       /* 9 */,
207         1       /* 10 */,
208         1       /* 11 */,
209         1       /* 12 */,
210         1       /* 13 */,
211         1       /* 14 */,
212         2       /* 15 */,
213         2       /* 16 */,
214         2       /* 17 */,
215         3       /* 18/00-18/09 */,
216         3       /* 18/10-18/19 */,
217         3       /* 18/20-18/29 */,
218         3       /* 18/30-18/39 */,
219         3       /* 18/40-18/49 */,
220         4       /* 18/50-18/59 */,
221         4       /* 18/60-18/69 */,
222         5       /* 18/70-18/79 */,
223         6       /* 18/80-18/89 */,
224         7       /* 18/90-18/99 */,
225         8       /* 18/100-18/109 */,
226         9       /* 18/110-18/119 */,
227         10      /* 18/120-18/129 */,
228         11      /* 18/130-18/139 */,
229         12      /* 18/140-18/149 */,
230         13      /* 18/150-18/159 */,
231         14      /* 18/160-18/169 */,
232         15      /* 18/170-18/179 */,
233         16      /* 18/180-18/189 */,
234         17      /* 18/190-18/199 */,
235         18      /* 18/200-18/209 */,
236         19      /* 18/210-18/219 */,
237         20      /* 18/220+ */
238 };
239
240
241 /*!
242  * 魅力による店での取引修正テーブル
243  * Stat Table (CHR) -- payment percentages
244  */
245 const byte adj_chr_gold[] =
246 {
247         130     /* 3 */,
248         125     /* 4 */,
249         122     /* 5 */,
250         120     /* 6 */,
251         118     /* 7 */,
252         116     /* 8 */,
253         114     /* 9 */,
254         112     /* 10 */,
255         110     /* 11 */,
256         108     /* 12 */,
257         106     /* 13 */,
258         104     /* 14 */,
259         103     /* 15 */,
260         102     /* 16 */,
261         101     /* 17 */,
262         100     /* 18/00-18/09 */,
263         99      /* 18/10-18/19 */,
264         98      /* 18/20-18/29 */,
265         97      /* 18/30-18/39 */,
266         96      /* 18/40-18/49 */,
267         95      /* 18/50-18/59 */,
268         94      /* 18/60-18/69 */,
269         93      /* 18/70-18/79 */,
270         92      /* 18/80-18/89 */,
271         91      /* 18/90-18/99 */,
272         90      /* 18/100-18/109 */,
273         89      /* 18/110-18/119 */,
274         88      /* 18/120-18/129 */,
275         87      /* 18/130-18/139 */,
276         86      /* 18/140-18/149 */,
277         85      /* 18/150-18/159 */,
278         84      /* 18/160-18/169 */,
279         83      /* 18/170-18/179 */,
280         82      /* 18/180-18/189 */,
281         81      /* 18/190-18/199 */,
282         80      /* 18/200-18/209 */,
283         79      /* 18/210-18/219 */,
284         78      /* 18/220+ */
285 };
286
287
288 /*!
289  * 知力による魔道具使用修正テーブル
290  * Stat Table (INT) -- Magic devices
291  */
292 const byte adj_int_dev[] =
293 {
294         0       /* 3 */,
295         0       /* 4 */,
296         0       /* 5 */,
297         0       /* 6 */,
298         0       /* 7 */,
299         1       /* 8 */,
300         1       /* 9 */,
301         1       /* 10 */,
302         1       /* 11 */,
303         1       /* 12 */,
304         1       /* 13 */,
305         1       /* 14 */,
306         2       /* 15 */,
307         2       /* 16 */,
308         2       /* 17 */,
309         3       /* 18/00-18/09 */,
310         3       /* 18/10-18/19 */,
311         4       /* 18/20-18/29 */,
312         4       /* 18/30-18/39 */,
313         5       /* 18/40-18/49 */,
314         5       /* 18/50-18/59 */,
315         6       /* 18/60-18/69 */,
316         6       /* 18/70-18/79 */,
317         7       /* 18/80-18/89 */,
318         7       /* 18/90-18/99 */,
319         8       /* 18/100-18/109 */,
320         9       /* 18/110-18/119 */,
321         10      /* 18/120-18/129 */,
322         11      /* 18/130-18/139 */,
323         12      /* 18/140-18/149 */,
324         13      /* 18/150-18/159 */,
325         14      /* 18/160-18/169 */,
326         15      /* 18/170-18/179 */,
327         16      /* 18/180-18/189 */,
328         17      /* 18/190-18/199 */,
329         18      /* 18/200-18/209 */,
330         19      /* 18/210-18/219 */,
331         20      /* 18/220+ */
332 };
333
334
335 /*!
336  * 賢さによる魔法防御修正テーブル
337  * Stat Table (WIS) -- Saving throw
338  */
339 const byte adj_wis_sav[] =
340 {
341         0       /* 3 */,
342         0       /* 4 */,
343         0       /* 5 */,
344         0       /* 6 */,
345         0       /* 7 */,
346         1       /* 8 */,
347         1       /* 9 */,
348         1       /* 10 */,
349         1       /* 11 */,
350         1       /* 12 */,
351         1       /* 13 */,
352         1       /* 14 */,
353         2       /* 15 */,
354         2       /* 16 */,
355         2       /* 17 */,
356         3       /* 18/00-18/09 */,
357         3       /* 18/10-18/19 */,
358         3       /* 18/20-18/29 */,
359         3       /* 18/30-18/39 */,
360         3       /* 18/40-18/49 */,
361         4       /* 18/50-18/59 */,
362         4       /* 18/60-18/69 */,
363         5       /* 18/70-18/79 */,
364         5       /* 18/80-18/89 */,
365         6       /* 18/90-18/99 */,
366         7       /* 18/100-18/109 */,
367         8       /* 18/110-18/119 */,
368         9       /* 18/120-18/129 */,
369         10      /* 18/130-18/139 */,
370         11      /* 18/140-18/149 */,
371         12      /* 18/150-18/159 */,
372         13      /* 18/160-18/169 */,
373         14      /* 18/170-18/179 */,
374         15      /* 18/180-18/189 */,
375         16      /* 18/190-18/199 */,
376         17      /* 18/200-18/209 */,
377         18      /* 18/210-18/219 */,
378         19      /* 18/220+ */
379 };
380
381
382 /*!
383  * 器用さによるトラップ解除修正テーブル
384  * Stat Table (DEX) -- disarming
385  */
386 const byte adj_dex_dis[] =
387 {
388         0       /* 3 */,
389         0       /* 4 */,
390         0       /* 5 */,
391         0       /* 6 */,
392         0       /* 7 */,
393         0       /* 8 */,
394         0       /* 9 */,
395         0       /* 10 */,
396         0       /* 11 */,
397         0       /* 12 */,
398         1       /* 13 */,
399         1       /* 14 */,
400         1       /* 15 */,
401         2       /* 16 */,
402         2       /* 17 */,
403         4       /* 18/00-18/09 */,
404         4       /* 18/10-18/19 */,
405         4       /* 18/20-18/29 */,
406         4       /* 18/30-18/39 */,
407         5       /* 18/40-18/49 */,
408         5       /* 18/50-18/59 */,
409         5       /* 18/60-18/69 */,
410         6       /* 18/70-18/79 */,
411         6       /* 18/80-18/89 */,
412         7       /* 18/90-18/99 */,
413         8       /* 18/100-18/109 */,
414         8       /* 18/110-18/119 */,
415         8       /* 18/120-18/129 */,
416         8       /* 18/130-18/139 */,
417         8       /* 18/140-18/149 */,
418         9       /* 18/150-18/159 */,
419         9       /* 18/160-18/169 */,
420         9       /* 18/170-18/179 */,
421         9       /* 18/180-18/189 */,
422         9       /* 18/190-18/199 */,
423         10      /* 18/200-18/209 */,
424         10      /* 18/210-18/219 */,
425         10      /* 18/220+ */
426 };
427
428
429 /*!
430  * 知力によるトラップ解除修正テーブル
431  * Stat Table (INT) -- disarming
432  */
433 const byte adj_int_dis[] =
434 {
435         0       /* 3 */,
436         0       /* 4 */,
437         0       /* 5 */,
438         0       /* 6 */,
439         0       /* 7 */,
440         1       /* 8 */,
441         1       /* 9 */,
442         1       /* 10 */,
443         1       /* 11 */,
444         1       /* 12 */,
445         1       /* 13 */,
446         1       /* 14 */,
447         2       /* 15 */,
448         2       /* 16 */,
449         2       /* 17 */,
450         3       /* 18/00-18/09 */,
451         3       /* 18/10-18/19 */,
452         3       /* 18/20-18/29 */,
453         4       /* 18/30-18/39 */,
454         4       /* 18/40-18/49 */,
455         5       /* 18/50-18/59 */,
456         6       /* 18/60-18/69 */,
457         7       /* 18/70-18/79 */,
458         8       /* 18/80-18/89 */,
459         9       /* 18/90-18/99 */,
460         10      /* 18/100-18/109 */,
461         10      /* 18/110-18/119 */,
462         11      /* 18/120-18/129 */,
463         12      /* 18/130-18/139 */,
464         13      /* 18/140-18/149 */,
465         14      /* 18/150-18/159 */,
466         15      /* 18/160-18/169 */,
467         16      /* 18/170-18/179 */,
468         17      /* 18/180-18/189 */,
469         18      /* 18/190-18/199 */,
470         19      /* 18/200-18/209 */,
471         19      /* 18/210-18/219 */,
472         20      /* 18/220+ */
473 };
474
475
476 /*!
477  * 器用さによるAC修正テーブル
478  * Stat Table (DEX) -- bonus to ac (plus 128)
479  */
480 const byte adj_dex_ta[] =
481 {
482         128 + -4    /*  3 */,
483         128 + -3    /*  4 */,
484         128 + -2    /*  5 */,
485         128 + -1    /*  6 */,
486         128 + 0     /*  7 */,
487         128 + 0     /*  8 */,
488         128 + 0     /*  9 */,
489         128 + 0     /* 10 */,
490         128 + 0     /* 11 */,
491         128 + 0     /* 12 */,
492         128 + 0     /* 13 */,
493         128 + 0     /* 14 */,
494         128 + 1     /* 15 */,
495         128 + 1     /* 16 */,
496         128 + 1     /* 17 */,
497         128 + 2     /* 18/00-18/09 */,
498         128 + 2     /* 18/10-18/19 */,
499         128 + 2     /* 18/20-18/29 */,
500         128 + 2     /* 18/30-18/39 */,
501         128 + 2     /* 18/40-18/49 */,
502         128 + 3     /* 18/50-18/59 */,
503         128 + 3     /* 18/60-18/69 */,
504         128 + 3     /* 18/70-18/79 */,
505         128 + 4     /* 18/80-18/89 */,
506         128 + 5     /* 18/90-18/99 */,
507         128 + 6     /* 18/100-18/109 */,
508         128 + 7     /* 18/110-18/119 */,
509         128 + 8     /* 18/120-18/129 */,
510         128 + 9     /* 18/130-18/139 */,
511         128 + 9     /* 18/140-18/149 */,
512         128 + 10    /* 18/150-18/159 */,
513         128 + 11    /* 18/160-18/169 */,
514         128 + 12    /* 18/170-18/179 */,
515         128 + 13    /* 18/180-18/189 */,
516         128 + 14    /* 18/190-18/199 */,
517         128 + 15    /* 18/200-18/209 */,
518         128 + 15    /* 18/210-18/219 */,
519         128 + 16    /* 18/220+ */
520 };
521
522
523 /*!
524  * 腕力によるダメージ修正テーブル
525  * Stat Table (STR) -- bonus to dam (plus 128)
526  */
527 const byte adj_str_td[] =
528 {
529         128 + -2    /*  3 */,
530         128 + -2    /*  4 */,
531         128 + -1    /*  5 */,
532         128 + -1    /*  6 */,
533         128 + 0     /*  7 */,
534         128 + 0     /*  8 */,
535         128 + 0     /*  9 */,
536         128 + 0     /* 10 */,
537         128 + 0     /* 11 */,
538         128 + 0     /* 12 */,
539         128 + 0     /* 13 */,
540         128 + 0     /* 14 */,
541         128 + 0     /* 15 */,
542         128 + 1     /* 16 */,
543         128 + 2     /* 17 */,
544         128 + 2     /* 18/00-18/09 */,
545         128 + 2     /* 18/10-18/19 */,
546         128 + 3     /* 18/20-18/29 */,
547         128 + 3     /* 18/30-18/39 */,
548         128 + 3     /* 18/40-18/49 */,
549         128 + 3     /* 18/50-18/59 */,
550         128 + 3     /* 18/60-18/69 */,
551         128 + 4     /* 18/70-18/79 */,
552         128 + 5     /* 18/80-18/89 */,
553         128 + 5     /* 18/90-18/99 */,
554         128 + 6     /* 18/100-18/109 */,
555         128 + 7     /* 18/110-18/119 */,
556         128 + 8     /* 18/120-18/129 */,
557         128 + 9     /* 18/130-18/139 */,
558         128 + 10    /* 18/140-18/149 */,
559         128 + 11    /* 18/150-18/159 */,
560         128 + 12    /* 18/160-18/169 */,
561         128 + 13    /* 18/170-18/179 */,
562         128 + 14    /* 18/180-18/189 */,
563         128 + 15    /* 18/190-18/199 */,
564         128 + 16    /* 18/200-18/209 */,
565         128 + 18    /* 18/210-18/219 */,
566         128 + 20    /* 18/220+ */
567 };
568
569
570 /*!
571  * 器用度による命中修正テーブル
572  * Stat Table (DEX) -- bonus to hit (plus 128)
573  */
574 const byte adj_dex_th[] =
575 {
576         128 + -3        /* 3 */,
577         128 + -2        /* 4 */,
578         128 + -2        /* 5 */,
579         128 + -1        /* 6 */,
580         128 + -1        /* 7 */,
581         128 + 0 /* 8 */,
582         128 + 0 /* 9 */,
583         128 + 0 /* 10 */,
584         128 + 0 /* 11 */,
585         128 + 0 /* 12 */,
586         128 + 0 /* 13 */,
587         128 + 0 /* 14 */,
588         128 + 0 /* 15 */,
589         128 + 1 /* 16 */,
590         128 + 2 /* 17 */,
591         128 + 3 /* 18/00-18/09 */,
592         128 + 3 /* 18/10-18/19 */,
593         128 + 3 /* 18/20-18/29 */,
594         128 + 3 /* 18/30-18/39 */,
595         128 + 3 /* 18/40-18/49 */,
596         128 + 4 /* 18/50-18/59 */,
597         128 + 4 /* 18/60-18/69 */,
598         128 + 4 /* 18/70-18/79 */,
599         128 + 4 /* 18/80-18/89 */,
600         128 + 5 /* 18/90-18/99 */,
601         128 + 6 /* 18/100-18/109 */,
602         128 + 7 /* 18/110-18/119 */,
603         128 + 8 /* 18/120-18/129 */,
604         128 + 9 /* 18/130-18/139 */,
605         128 + 9 /* 18/140-18/149 */,
606         128 + 10        /* 18/150-18/159 */,
607         128 + 11        /* 18/160-18/169 */,
608         128 + 12        /* 18/170-18/179 */,
609         128 + 13        /* 18/180-18/189 */,
610         128 + 14        /* 18/190-18/199 */,
611         128 + 15        /* 18/200-18/209 */,
612         128 + 15        /* 18/210-18/219 */,
613         128 + 16        /* 18/220+ */
614 };
615
616
617 /*!
618  * 腕力による命中修正テーブル
619  * Stat Table (STR) -- bonus to hit (plus 128)
620  */
621 const byte adj_str_th[] =
622 {
623         128 + -3        /* 3 */,
624         128 + -2        /* 4 */,
625         128 + -1        /* 5 */,
626         128 + -1        /* 6 */,
627         128 + 0 /* 7 */,
628         128 + 0 /* 8 */,
629         128 + 0 /* 9 */,
630         128 + 0 /* 10 */,
631         128 + 0 /* 11 */,
632         128 + 0 /* 12 */,
633         128 + 0 /* 13 */,
634         128 + 0 /* 14 */,
635         128 + 0 /* 15 */,
636         128 + 0 /* 16 */,
637         128 + 0 /* 17 */,
638         128 + 1 /* 18/00-18/09 */,
639         128 + 1 /* 18/10-18/19 */,
640         128 + 1 /* 18/20-18/29 */,
641         128 + 1 /* 18/30-18/39 */,
642         128 + 1 /* 18/40-18/49 */,
643         128 + 1 /* 18/50-18/59 */,
644         128 + 1 /* 18/60-18/69 */,
645         128 + 2 /* 18/70-18/79 */,
646         128 + 3 /* 18/80-18/89 */,
647         128 + 4 /* 18/90-18/99 */,
648         128 + 5 /* 18/100-18/109 */,
649         128 + 6 /* 18/110-18/119 */,
650         128 + 7 /* 18/120-18/129 */,
651         128 + 8 /* 18/130-18/139 */,
652         128 + 9 /* 18/140-18/149 */,
653         128 + 10        /* 18/150-18/159 */,
654         128 + 11        /* 18/160-18/169 */,
655         128 + 12        /* 18/170-18/179 */,
656         128 + 13        /* 18/180-18/189 */,
657         128 + 14        /* 18/190-18/199 */,
658         128 + 15        /* 18/200-18/209 */,
659         128 + 15        /* 18/210-18/219 */,
660         128 + 16        /* 18/220+ */
661 };
662
663
664 /*!
665  * 腕力による基本所持重量値テーブル
666  * Stat Table (STR) -- weight limit in deca-pounds
667  */
668 const byte adj_str_wgt[] =
669 {
670         10      /* 3 */,
671         11      /* 4 */,
672         12      /* 5 */,
673         13      /* 6 */,
674         14      /* 7 */,
675         15      /* 8 */,
676         16      /* 9 */,
677         17      /* 10 */,
678         18      /* 11 */,
679         19      /* 12 */,
680         20      /* 13 */,
681         21      /* 14 */,
682         22      /* 15 */,
683         23      /* 16 */,
684         24      /* 17 */,
685         25      /* 18/00-18/09 */,
686         26      /* 18/10-18/19 */,
687         27      /* 18/20-18/29 */,
688         28      /* 18/30-18/39 */,
689         29      /* 18/40-18/49 */,
690         30      /* 18/50-18/59 */,
691         31      /* 18/60-18/69 */,
692         31      /* 18/70-18/79 */,
693         32      /* 18/80-18/89 */,
694         32      /* 18/90-18/99 */,
695         33      /* 18/100-18/109 */,
696         33      /* 18/110-18/119 */,
697         34      /* 18/120-18/129 */,
698         34      /* 18/130-18/139 */,
699         35      /* 18/140-18/149 */,
700         35      /* 18/150-18/159 */,
701         36      /* 18/160-18/169 */,
702         36      /* 18/170-18/179 */,
703         37      /* 18/180-18/189 */,
704         37      /* 18/190-18/199 */,
705         38      /* 18/200-18/209 */,
706         38      /* 18/210-18/219 */,
707         39      /* 18/220+ */
708 };
709
710
711 /*!
712  * 腕力による武器重量限界値テーブル
713  * Stat Table (STR) -- weapon weight limit in pounds
714  */
715 const byte adj_str_hold[] =
716 {
717         4       /* 3 */,
718         5       /* 4 */,
719         6       /* 5 */,
720         7       /* 6 */,
721         8       /* 7 */,
722         9       /* 8 */,
723         10      /* 9 */,
724         11      /* 10 */,
725         12      /* 11 */,
726         13      /* 12 */,
727         14      /* 13 */,
728         15      /* 14 */,
729         16      /* 15 */,
730         17      /* 16 */,
731         18      /* 17 */,
732         19      /* 18/00-18/09 */,
733         20      /* 18/10-18/19 */,
734         21      /* 18/20-18/29 */,
735         22      /* 18/30-18/39 */,
736         23      /* 18/40-18/49 */,
737         24      /* 18/50-18/59 */,
738         25      /* 18/60-18/69 */,
739         26      /* 18/70-18/79 */,
740         27      /* 18/80-18/89 */,
741         28      /* 18/90-18/99 */,
742         30      /* 18/100-18/109 */,
743         31      /* 18/110-18/119 */,
744         32      /* 18/120-18/129 */,
745         33      /* 18/130-18/139 */,
746         34      /* 18/140-18/149 */,
747         35      /* 18/150-18/159 */,
748         37      /* 18/160-18/169 */,
749         40      /* 18/170-18/179 */,
750         44      /* 18/180-18/189 */,
751         48      /* 18/190-18/199 */,
752         50     /* 18/200-18/209 */,
753         50     /* 18/210-18/219 */,
754         50     /* 18/220+ */
755 };
756
757
758 /*!
759  * 腕力による採掘能力修正値テーブル
760  * Stat Table (STR) -- digging value
761  */
762 const byte adj_str_dig[] =
763 {
764         0       /* 3 */,
765         0       /* 4 */,
766         1       /* 5 */,
767         2       /* 6 */,
768         3       /* 7 */,
769         4       /* 8 */,
770         4       /* 9 */,
771         5       /* 10 */,
772         5       /* 11 */,
773         6       /* 12 */,
774         6       /* 13 */,
775         7       /* 14 */,
776         7       /* 15 */,
777         8       /* 16 */,
778         8       /* 17 */,
779         9       /* 18/00-18/09 */,
780         10      /* 18/10-18/19 */,
781         12      /* 18/20-18/29 */,
782         15      /* 18/30-18/39 */,
783         20      /* 18/40-18/49 */,
784         25      /* 18/50-18/59 */,
785         30      /* 18/60-18/69 */,
786         35      /* 18/70-18/79 */,
787         40      /* 18/80-18/89 */,
788         45      /* 18/90-18/99 */,
789         50      /* 18/100-18/109 */,
790         55      /* 18/110-18/119 */,
791         60      /* 18/120-18/129 */,
792         65      /* 18/130-18/139 */,
793         70      /* 18/140-18/149 */,
794         75      /* 18/150-18/159 */,
795         80      /* 18/160-18/169 */,
796         85      /* 18/170-18/179 */,
797         90      /* 18/180-18/189 */,
798         95      /* 18/190-18/199 */,
799         100     /* 18/200-18/209 */,
800         100     /* 18/210-18/219 */,
801         100     /* 18/220+ */
802 };
803
804 /*!
805  * 器用さによる盗難防止&体当たり成功判定修正テーブル
806  * Stat Table (DEX) -- chance of avoiding "theft" and "falling"
807  */
808 const byte adj_dex_safe[] =
809 {
810         0       /* 3 */,
811         1       /* 4 */,
812         2       /* 5 */,
813         3       /* 6 */,
814         4       /* 7 */,
815         5       /* 8 */,
816         5       /* 9 */,
817         6       /* 10 */,
818         6       /* 11 */,
819         7       /* 12 */,
820         7       /* 13 */,
821         8       /* 14 */,
822         8       /* 15 */,
823         9       /* 16 */,
824         9       /* 17 */,
825         10      /* 18/00-18/09 */,
826         10      /* 18/10-18/19 */,
827         15      /* 18/20-18/29 */,
828         15      /* 18/30-18/39 */,
829         20      /* 18/40-18/49 */,
830         25      /* 18/50-18/59 */,
831         30      /* 18/60-18/69 */,
832         35      /* 18/70-18/79 */,
833         40      /* 18/80-18/89 */,
834         45      /* 18/90-18/99 */,
835         50      /* 18/100-18/109 */,
836         60      /* 18/110-18/119 */,
837         70      /* 18/120-18/129 */,
838         80      /* 18/130-18/139 */,
839         90      /* 18/140-18/149 */,
840         100     /* 18/150-18/159 */,
841         100     /* 18/160-18/169 */,
842         100     /* 18/170-18/179 */,
843         100     /* 18/180-18/189 */,
844         100     /* 18/190-18/199 */,
845         100     /* 18/200-18/209 */,
846         100     /* 18/210-18/219 */,
847         100     /* 18/220+ */
848 };
849
850
851 /*!
852  * 耐久による基本HP自然治癒値テーブル /
853  * Stat Table (CON) -- base regeneration rate
854  */
855 const byte adj_con_fix[] =
856 {
857         0       /* 3 */,
858         0       /* 4 */,
859         0       /* 5 */,
860         0       /* 6 */,
861         0       /* 7 */,
862         0       /* 8 */,
863         0       /* 9 */,
864         0       /* 10 */,
865         0       /* 11 */,
866         0       /* 12 */,
867         0       /* 13 */,
868         1       /* 14 */,
869         1       /* 15 */,
870         1       /* 16 */,
871         1       /* 17 */,
872         2       /* 18/00-18/09 */,
873         2       /* 18/10-18/19 */,
874         2       /* 18/20-18/29 */,
875         2       /* 18/30-18/39 */,
876         2       /* 18/40-18/49 */,
877         3       /* 18/50-18/59 */,
878         3       /* 18/60-18/69 */,
879         3       /* 18/70-18/79 */,
880         3       /* 18/80-18/89 */,
881         3       /* 18/90-18/99 */,
882         4       /* 18/100-18/109 */,
883         4       /* 18/110-18/119 */,
884         5       /* 18/120-18/129 */,
885         6       /* 18/130-18/139 */,
886         6       /* 18/140-18/149 */,
887         7       /* 18/150-18/159 */,
888         7       /* 18/160-18/169 */,
889         8       /* 18/170-18/179 */,
890         8       /* 18/180-18/189 */,
891         8       /* 18/190-18/199 */,
892         9       /* 18/200-18/209 */,
893         9       /* 18/210-18/219 */,
894         9       /* 18/220+ */
895 };
896
897
898 /*!
899  * 耐久による基本HP自然治癒値テーブル /
900  * Stat Table (CON) -- extra 1/4-hitpoints per level (plus 128)
901  */
902 const byte adj_con_mhp[] =
903 {
904         128 + -8        /* 3 */,
905         128 + -6        /* 4 */,
906         128 + -4        /* 5 */,
907         128 + -2        /* 6 */,
908         128 + -1 /* 7 */,
909         128 + 0 /* 8 */,
910         128 + 0 /* 9 */,
911         128 + 0 /* 10 */,
912         128 + 0 /* 11 */,
913         128 + 0 /* 12 */,
914         128 + 0 /* 13 */,
915         128 + 1 /* 14 */,
916         128 + 1 /* 15 */,
917         128 + 2 /* 16 */,
918         128 + 3 /* 17 */,
919         128 + 4 /* 18/00-18/09 */,
920         128 + 5 /* 18/10-18/19 */,
921         128 + 6 /* 18/20-18/29 */,
922         128 + 7 /* 18/30-18/39 */,
923         128 + 8 /* 18/40-18/49 */,
924         128 + 9 /* 18/50-18/59 */,
925         128 + 10  /* 18/60-18/69 */,
926         128 + 11 /* 18/70-18/79 */,
927         128 + 12 /* 18/80-18/89 */,
928         128 + 14 /* 18/90-18/99 */,
929         128 + 17         /* 18/100-18/109 */,
930         128 + 20        /* 18/110-18/119 */,
931         128 + 23        /* 18/120-18/129 */,
932         128 + 26        /* 18/130-18/139 */,
933         128 + 29        /* 18/140-18/149 */,
934         128 + 32        /* 18/150-18/159 */,
935         128 + 35        /* 18/160-18/169 */,
936         128 + 38        /* 18/170-18/179 */,
937         128 + 40        /* 18/180-18/189 */,
938         128 + 42        /* 18/190-18/199 */,
939         128 + 44        /* 18/200-18/209 */,
940         128 + 46        /* 18/210-18/219 */,
941         128 + 48        /* 18/220+ */
942 };
943
944
945 /*!
946  * 魅力による魅了能力修正テーブル /
947  * Stat Table (CHR) -- charm
948  */
949 const byte adj_chr_chm[] =
950 {
951         0       /* 3 */,
952         0       /* 4 */,
953         1       /* 5 */,
954         2       /* 6 */,
955         3       /* 7 */,
956         4       /* 8 */,
957         4       /* 9 */,
958         5       /* 10 */,
959         5       /* 11 */,
960         6       /* 12 */,
961         6       /* 13 */,
962         7       /* 14 */,
963         7       /* 15 */,
964         8       /* 16 */,
965         8       /* 17 */,
966         9       /* 18/00-18/09 */,
967         10      /* 18/10-18/19 */,
968         12      /* 18/20-18/29 */,
969         15      /* 18/30-18/39 */,
970         18      /* 18/40-18/49 */,
971         21      /* 18/50-18/59 */,
972         24      /* 18/60-18/69 */,
973         28      /* 18/70-18/79 */,
974         32      /* 18/80-18/89 */,
975         36      /* 18/90-18/99 */,
976         39      /* 18/100-18/109 */,
977         42      /* 18/110-18/119 */,
978         45      /* 18/120-18/129 */,
979         49      /* 18/130-18/139 */,
980         53      /* 18/140-18/149 */,
981         57      /* 18/150-18/159 */,
982         61      /* 18/160-18/169 */,
983         65      /* 18/170-18/179 */,
984         69      /* 18/180-18/189 */,
985         73      /* 18/190-18/199 */,
986         77      /* 18/200-18/209 */,
987         81      /* 18/210-18/219 */,
988         85      /* 18/220+ */
989 };
990
991
992 /*!
993  * @brief シンボル解説テーブル /
994  * The table of "symbol info" -- each entry is a string of the form "X:desc" where "X" is the trigger, and "desc" is the "info".
995  */
996 const concptr ident_info[] =
997 {
998 #ifdef JP
999         " :暗闇",
1000         "!:薬, オイル",
1001         "\":アミュレット, 頸飾り",
1002         "#:壁(隠しドア)/植物/気体",
1003         "$:財宝(金か宝石)",
1004         "%:鉱脈(溶岩か石英)",
1005         "&:箱",
1006         "':開いたドア",
1007         "(:軟らかい防具",
1008         "):盾",
1009         "*:財宝を含んだ鉱脈または球形の怪物",
1010         "+:閉じたドア",
1011         ",:食べ物, おばけキノコ",
1012         "-:魔法棒, ロッド",
1013         ".:床",
1014         "/:竿状武器(アックス/パイク/等)",
1015         "0:博物館の入口",
1016         "1:雑貨屋の入口",
1017         "2:防具屋の入口",
1018         "3:武器専門店の入口",
1019         "4:寺院の入口",
1020         "5:錬金術の店の入口",
1021         "6:魔法の店の入口",
1022         "7:ブラックマーケットの入口",
1023         "8:我が家の入口",
1024         "9:書店の入口",
1025         "::岩石",
1026         ";:回避の彫像/爆発のルーン",
1027         "<:上り階段",
1028         "=:指輪",
1029         ">:下り階段",
1030         "?:巻物",
1031         "@:プレイヤー",
1032         "A:天使",
1033         "B:鳥",
1034         "C:犬",
1035         "D:古代ドラゴン/ワイアーム",
1036         "E:エレメンタル",
1037         "F:トンボ",
1038         "G:ゴースト",
1039         "H:雑種",
1040         "I:昆虫",
1041         "J:ヘビ",
1042         "K:キラー・ビートル",
1043         "L:リッチ",
1044         "M:多首の爬虫類",
1045         "N:謎の生物",
1046         "O:オーガ",
1047         "P:巨大人間型生物",
1048         "Q:クイルスルグ(脈打つ肉塊)",
1049         "R:爬虫類/両生類",
1050         "S:蜘蛛/サソリ/ダニ",
1051         "T:トロル",
1052         "U:上級デーモン",
1053         "V:バンパイア",
1054         "W:ワイト/レイス/等",
1055         "X:ゾーン/ザレン/等",
1056         "Y:イエティ",
1057         "Z:ハウンド",
1058         "[:堅いアーマー",
1059         "\\:鈍器(メイス/ムチ/等)",
1060         "]:種々の防具",
1061         "^:トラップ",
1062         "_:杖",
1063         "`:人形,彫像",
1064         "a:アリ",
1065         "b:コウモリ",
1066         "c:ムカデ",
1067         "d:ドラゴン",
1068         "e:目玉",
1069         "f:ネコ",
1070         "g:ゴーレム",
1071         "h:ホビット/エルフ/ドワーフ",
1072         "i:ベトベト",
1073         "j:ゼリー",
1074         "k:コボルド",
1075         "l:水棲生物",
1076         "m:モルド",
1077         "n:ナーガ",
1078         "o:オーク",
1079         "p:人間",
1080         "q:四足獣",
1081         "r:ネズミ",
1082         "s:スケルトン",
1083         "t:町の人",
1084         "u:下級デーモン",
1085         "v:ボルテックス",
1086         "w:イモムシ/大群",
1087         /* "x:unused", */
1088         "y:イーク",
1089         "z:ゾンビ/ミイラ",
1090         "{:飛び道具の弾(矢/弾)",
1091         "|:刀剣類(ソード/ダガー/等)",
1092         "}:飛び道具(弓/クロスボウ/スリング)",
1093         "~:水/溶岩流(種々のアイテム)",
1094 #else
1095         " :A dark grid",
1096         "!:A potion (or oil)",
1097         "\":An amulet (or necklace)",
1098         "#:A wall (or secret door) / a plant / a gas",
1099         "$:Treasure (gold or gems)",
1100         "%:A vein (magma or quartz)",
1101         "&:A chest",
1102         "':An open door",
1103         "(:Soft armor",
1104         "):A shield",
1105         "*:A vein with treasure or a ball monster",
1106         "+:A closed door",
1107         ",:Food (or mushroom patch)",
1108         "-:A wand (or rod)",
1109         ".:Floor",
1110         "/:A polearm (Axe/Pike/etc)",
1111         "0:Entrance to Museum",
1112         "1:Entrance to General Store",
1113         "2:Entrance to Armory",
1114         "3:Entrance to Weaponsmith",
1115         "4:Entrance to Temple",
1116         "5:Entrance to Alchemy shop",
1117         "6:Entrance to Magic store",
1118         "7:Entrance to Black Market",
1119         "8:Entrance to your home",
1120         "9:Entrance to the bookstore",
1121         "::Rubble",
1122         ";:A glyph of warding / an explosive rune",
1123         "<:An up staircase",
1124         "=:A ring",
1125         ">:A down staircase",
1126         "?:A scroll",
1127         "@:You",
1128         "A:Angel",
1129         "B:Bird",
1130         "C:Canine",
1131         "D:Ancient Dragon/Wyrm",
1132         "E:Elemental",
1133         "F:Dragon Fly",
1134         "G:Ghost",
1135         "H:Hybrid",
1136         "I:Insect",
1137         "J:Snake",
1138         "K:Killer Beetle",
1139         "L:Lich",
1140         "M:Multi-Headed Reptile",
1141         "N:Mystery Living",
1142         "O:Ogre",
1143         "P:Giant Humanoid",
1144         "Q:Quylthulg (Pulsing Flesh Mound)",
1145         "R:Reptile/Amphibian",
1146         "S:Spider/Scorpion/Tick",
1147         "T:Troll",
1148         "U:Major Demon",
1149         "V:Vampire",
1150         "W:Wight/Wraith/etc",
1151         "X:Xorn/Xaren/etc",
1152         "Y:Yeti",
1153         "Z:Zephyr Hound",
1154         "[:Hard armor",
1155         "\\:A hafted weapon (mace/whip/etc)",
1156         "]:Misc. armor",
1157         "^:A trap",
1158         "_:A staff",
1159         "`:A figurine or statue",
1160         "a:Ant",
1161         "b:Bat",
1162         "c:Centipede",
1163         "d:Dragon",
1164         "e:Floating Eye",
1165         "f:Feline",
1166         "g:Golem",
1167         "h:Hobbit/Elf/Dwarf",
1168         "i:Icky Thing",
1169         "j:Jelly",
1170         "k:Kobold",
1171         "l:Aquatic monster",
1172         "m:Mold",
1173         "n:Naga",
1174         "o:Orc",
1175         "p:Person/Human",
1176         "q:Quadruped",
1177         "r:Rodent",
1178         "s:Skeleton",
1179         "t:Townsperson",
1180         "u:Minor Demon",
1181         "v:Vortex",
1182         "w:Worm/Worm-Mass",
1183         /* "x:unused", */
1184         "y:Yeek",
1185         "z:Zombie/Mummy",
1186         "{:A missile (arrow/bolt/shot)",
1187         "|:An edged weapon (sword/dagger/etc)",
1188         "}:A launcher (bow/crossbow/sling)",
1189         "~:Fluid terrain (or miscellaneous item)",
1190 #endif
1191
1192         NULL
1193 };
1194
1195
1196 /*!
1197  * @brief 地形状態フラグテーブル /
1198  * The table of features' actions
1199  */
1200 const byte feature_action_flags[FF_FLAG_MAX] =
1201 {
1202         0, /* LOS */
1203         0, /* PROJECT */
1204         0, /* MOVE */
1205         0, /* PLACE */
1206         0, /* DROP */
1207         0, /* SECRET */
1208         0, /* NOTICE */
1209         0, /* REMEMBER */
1210         0, /* OPEN */
1211         0, /* CLOSE */
1212         FAF_CRASH_GLASS, /* BASH */
1213         0, /* SPIKE */
1214         FAF_DESTROY, /* DISARM */
1215         0, /* STORE */
1216         FAF_DESTROY | FAF_CRASH_GLASS, /* TUNNEL */
1217         0, /* MAY_HAVE_GOLD */
1218         0, /* HAS_GOLD */
1219         0, /* HAS_ITEM */
1220         0, /* DOOR */
1221         0, /* TRAP */
1222         0, /* STAIRS */
1223         0, /* GLYPH */
1224         0, /* LESS */
1225         0, /* MORE */
1226         0, /* RUN */
1227         0, /* FLOOR */
1228         0, /* WALL */
1229         0, /* PERMANENT */
1230         0, /* INNER */
1231         0, /* OUTER */
1232         0, /* SOLID */
1233         0, /* HIT_TRAP */
1234
1235         0, /* BRIDGE */
1236         0, /* RIVER */
1237         0, /* LAKE */
1238         0, /* BRIDGED */
1239         0, /* COVERED */
1240         0, /* GLOW */
1241         0, /* ENSECRET */
1242         0, /* WATER */
1243         0, /* LAVA */
1244         0, /* SHALLOW */
1245         0, /* DEEP */
1246         0, /* FILLED */
1247         FAF_DESTROY | FAF_CRASH_GLASS, /* HURT_ROCK */
1248         0, /* HURT_FIRE */
1249         0, /* HURT_COLD */
1250         0, /* HURT_ACID */
1251         0, /* ICE */
1252         0, /* ACID */
1253         0, /* OIL */
1254         0, /* XXX04 */
1255         0, /* CAN_CLIMB */
1256         0, /* CAN_FLY */
1257         0, /* CAN_SWIM */
1258         0, /* CAN_PASS */
1259         0, /* CAN_OOZE */
1260         0, /* CAN_DIG */
1261         0, /* HIDE_ITEM */
1262         0, /* HIDE_SNEAK */
1263         0, /* HIDE_SWIM */
1264         0, /* HIDE_DIG */
1265         0, /* KILL_HUGE */
1266         0, /* KILL_MOVE */
1267
1268         0, /* PICK_TRAP */
1269         0, /* PICK_DOOR */
1270         0, /* ALLOC */
1271         0, /* CHEST */
1272         0, /* DROP_1D2 */
1273         0, /* DROP_2D2 */
1274         0, /* DROP_GOOD */
1275         0, /* DROP_GREAT */
1276         0, /* HURT_POIS */
1277         0, /* HURT_ELEC */
1278         0, /* HURT_WATER */
1279         0, /* HURT_BWATER */
1280         0, /* USE_FEAT */
1281         0, /* GET_FEAT */
1282         0, /* GROUND */
1283         0, /* OUTSIDE */
1284         0, /* EASY_HIDE */
1285         0, /* EASY_CLIMB */
1286         0, /* MUST_CLIMB */
1287         0, /* TREE */
1288         0, /* NEED_TREE */
1289         0, /* BLOOD */
1290         0, /* DUST */
1291         0, /* SLIME */
1292         0, /* PLANT */
1293         0, /* XXX2 */
1294         0, /* INSTANT */
1295         0, /* EXPLODE */
1296         0, /* TIMED */
1297         0, /* ERUPT */
1298         0, /* STRIKE */
1299         0, /* SPREAD */
1300
1301         0, /* SPECIAL */
1302         FAF_DESTROY | FAF_NO_DROP | FAF_CRASH_GLASS, /* HURT_DISI */
1303         0, /* QUEST_ENTER */
1304         0, /* QUEST_EXIT */
1305         0, /* QUEST */
1306         0, /* SHAFT */
1307         0, /* MOUNTAIN */
1308         0, /* BLDG */
1309         0, /* MINOR_GLYPH */
1310         0, /* PATTERN */
1311         0, /* TOWN */
1312         0, /* ENTRANCE */
1313         0, /* MIRROR */
1314         0, /* UNPERM */
1315         0, /* TELEPORTABLE */
1316         0, /* CONVERT */
1317         0, /* GLASS */
1318 };
1319