Hengband  2.1.4
 全て データ構造 ファイル 関数 変数 型定義 マクロ定義 ページ
types.h
説明を見る。
1 /*!
2  * @file types.h
3  * @brief グローバルな構造体の定義 / global type declarations
4  * @date 2014/08/10
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  * @details
13  * <pre>
14  * このファイルはangband.hでのみインクルードすること。
15  * This file should ONLY be included by "angband.h"
16  *
17  * Note that "char" may or may not be signed, and that "signed char"
18  * may or may not work on all machines. So always use "s16b" or "s32b"
19  * for signed values. Also, note that unsigned values cause math problems
20  * in many cases, so try to only use "u16b" and "u32b" for "bit flags",
21  * unless you really need the extra bit of information, or you really
22  * need to restrict yourself to a single byte for storage reasons.
23  *
24  * Also, if possible, attempt to restrict yourself to sub-fields of
25  * known size (use "s16b" or "s32b" instead of "int", and "byte" instead
26  * of "bool"), and attempt to align all fields along four-byte words, to
27  * optimize storage issues on 32-bit machines. Also, avoid "bit flags"
28  * since these increase the code size and slow down execution. When
29  * you need to store bit flags, use one byte per flag, or, where space
30  * is an issue, use a "byte" or "u16b" or "u32b", and add special code
31  * to access the various bit flags.
32  *
33  * Many of these structures were developed to reduce the number of global
34  * variables, facilitate structured program design, allow the use of ascii
35  * template files, simplify access to indexed data, or facilitate efficient
36  * clearing of many variables at once.
37  *
38  * Certain data is saved in multiple places for efficient access, currently,
39  * this includes the tval/sval/weight fields in "object_type", various fields
40  * in "header_type", and the "m_idx" and "o_idx" fields in "cave_type". All
41  * of these could be removed, but this would, in general, slow down the game
42  * and increase the complexity of the code.
43  * </pre>
44  */
45 
46 
47 /*
48  * Feature state structure
49  *
50  * - Action (FF_*)
51  * - Result (f_info ID)
52  */
54 
56 {
59 };
60 
61 
62 /*!
63  * @struct feature_type
64  * @brief 地形情報の構造体 / Information about terrain "features"
65  */
66 
67 typedef struct feature_type feature_type;
68 
70 {
71  u32b name; /*!< 地形名参照のためのネームバッファオフセット値 / Name (offset) */
72  u32b text; /*!< 地形説明参照のためのネームバッファオフセット値 / Text (offset) */
73  s16b tag; /*!< 地形特性タグ参照のためのネームバッファオフセット値 / Tag (offset) */
74 
75  s16b mimic; /*!< 未確定時の外形地形ID / Feature to mimic */
76 
77  u32b flags[FF_FLAG_SIZE]; /*!< 地形の基本特性ビット配列 / Flags */
78 
79  u16b priority; /*!< 縮小表示で省略する際の表示優先度 / Map priority */
80  s16b destroyed; /*!< 一度*破壊*に巻き込まれたかどうかのフラグ / Default destroyed state */
81 
82  feature_state state[MAX_FEAT_STATES]; /*!< feature_state テーブル */
83 
84  byte subtype; /*!< 副特性値 */
85  byte power; /*!< 地形強度 */
86 
87  byte d_attr[F_LIT_MAX]; /*!< デフォルトの地形シンボルカラー / Default feature attribute */
88  byte d_char[F_LIT_MAX]; /*!< デフォルトの地形シンボルアルファベット / Default feature character */
89 
90  byte x_attr[F_LIT_MAX]; /*!< 設定変更後の地形シンボルカラー / Desired feature attribute */
91  byte x_char[F_LIT_MAX]; /*!< 設定変更後の地形シンボルアルファベット / Desired feature character */
92 };
93 
94 
95 /*!
96  * @struct object_kind
97  * @brief ベースアイテム情報の構造体 / Information about object "kinds", including player knowledge.
98  * @details
99  * ゲーム進行用のセーブファイル上では aware と tried のみ保存対象とすること。と英文ではあるが実際はもっとある様子である。 /
100  * Only "aware" and "tried" are saved in the savefile
101  */
102 
103 typedef struct object_kind object_kind;
104 
106 {
107  u32b name; /*!< ベースアイテム名参照のためのネームバッファオフセット値 / Name (offset) */
108  u32b text; /*!< 解説テキスト参照のためのネームバッファオフセット値 / Text (offset) */
109  u32b flavor_name; /*!< 未確定名参照のためのネームバッファオフセット値 / Flavor name (offset) */
110 
111  byte tval; /*!< ベースアイテム種別の大項目値 Object type */
112  byte sval; /*!< ベースアイテム種別の小項目値 Object sub type */
113 
114  s16b pval; /*!< ベースアイテムのpval(能力修正共通値) Object extra info */
115 
116  s16b to_h; /*!< ベースアイテムの命中修正値 / Bonus to hit */
117  s16b to_d; /*!< ベースアイテムのダメージ修正値 / Bonus to damage */
118  s16b to_a; /*!< ベースアイテムのAC修正値 / Bonus to armor */
119 
120  s16b ac; /*!< ベースアイテムのAC基本値 / Base armor */
121 
122  byte dd, ds; /*!< ダメージダイスの数と大きさ / Damage dice/sides */
123 
124  s16b weight; /*!< ベースアイテムの重量 / Weight */
125 
126  s32b cost; /*!< ベースアイテムの基本価値 / Object "base cost" */
127 
128  u32b flags[TR_FLAG_SIZE]; /*!< ベースアイテムの基本特性ビット配列 / Flags */
129 
130  u32b gen_flags; /*!< ベースアイテムの生成特性ビット配列 / flags for generate */
131 
132  byte locale[4]; /*!< ベースアイテムの生成階テーブル / Allocation level(s) */
133  byte chance[4]; /*!< ベースアイテムの生成確率テーブル / Allocation chance(s) */
134 
135  byte level; /*!< ベースアイテムの基本生成階 / Level */
136  byte extra; /*!< その他色々のビットフラグ配列 / Something */
137 
138  byte d_attr; /*!< デフォルトのアイテムシンボルカラー / Default object attribute */
139  byte d_char; /*!< デフォルトのアイテムシンボルアルファベット / Default object character */
140 
141  byte x_attr; /*!< 設定変更後のアイテムシンボルカラー / Desired object attribute */
142  byte x_char; /*!< 設定変更後のアイテムシンボルアルファベット / Desired object character */
143 
144  s16b flavor; /*!< 調査中(TODO) / Special object flavor (or zero) */
145 
146  bool easy_know; /*!< ベースアイテムが初期からベース名を判断可能かどうか / This object is always known (if aware) */
147 
148  bool aware; /*!< ベースアイテムが鑑定済かどうか / The player is "aware" of the item's effects */
149 
150  bool tried; /*!< ベースアイテムを未鑑定のまま試したことがあるか / The player has "tried" one of the items */
151 
152  byte act_idx; /*!< 発動能力のID / Activative ability index */
153 };
154 
155 
156 
158 
159 /*!
160  * @struct artifact_type
161  * @brief 固定アーティファクト情報の構造体 / Artifact structure.
162  * @details
163  * @note
164  * the save-file only writes "cur_num" to the savefile.
165  * "max_num" is always "1" (if that artifact "exists")
166  */
168 {
169  u32b name; /*!< アーティファクト名(headerオフセット参照) / Name (offset) */
170  u32b text; /*!< アーティファクト解説(headerオフセット参照) / Text (offset) */
171 
172  byte tval; /*!< ベースアイテム大項目ID / Artifact type */
173  byte sval; /*!< ベースアイテム小項目ID / Artifact sub type */
174 
175  s16b pval; /*!< pval修正値 / Artifact extra info */
176 
177  s16b to_h; /*!< 命中ボーナス値 / Bonus to hit */
178  s16b to_d; /*!< ダメージボーナス値 / Bonus to damage */
179  s16b to_a; /*!< ACボーナス値 / Bonus to armor */
180 
181  s16b ac; /*!< 上書きベースAC値 / Base armor */
182 
183  byte dd, ds; /*!< ダイス値 / Damage when hits */
184 
185  s16b weight; /*!< 重量 / Weight */
186 
187  s32b cost; /*!< 基本価格 / Artifact "cost" */
188 
189  u32b flags[TR_FLAG_SIZE]; /*! アイテムフラグ / Artifact Flags */
190 
191  u32b gen_flags; /*! アイテム生成フラグ / flags for generate */
192 
193  byte level; /*! 基本生成階 / Artifact level */
194  byte rarity; /*! レアリティ / Artifact rarity */
195 
196  byte cur_num; /*! 現在の生成数 / Number created (0 or 1) */
197  byte max_num; /*! (未使用)最大生成数 / Unused (should be "1") */
198 
199  s16b floor_id; /*! アイテムを落としたフロアのID / Leaved on this location last time */
200 
201  byte act_idx; /*! 発動能力ID / Activative ability index */
202 };
203 
204 
205 /*
206  * Information about "ego-items".
207  */
208 
210 
212 {
213  u32b name; /* Name (offset) */
214  u32b text; /* Text (offset) */
215 
216  byte slot; /* Standard slot value */
217  byte rating; /* Rating boost */
218 
219  byte level; /* Minimum level */
220  byte rarity; /* Object rarity */
221 
222  byte max_to_h; /* Maximum to-hit bonus */
223  byte max_to_d; /* Maximum to-dam bonus */
224  byte max_to_a; /* Maximum to-ac bonus */
225 
226  byte max_pval; /* Maximum pval */
227 
228  s32b cost; /* Ego-item "cost" */
229 
230  u32b flags[TR_FLAG_SIZE]; /* Ego-Item Flags */
231 
232  u32b gen_flags; /* flags for generate */
233 
234  byte act_idx; /* Activative ability index */
235 };
236 
237 
238 
239 
240 /*
241  * Monster blow structure
242  *
243  * - Method (RBM_*)
244  * - Effect (RBE_*)
245  * - Damage Dice
246  * - Damage Sides
247  */
248 
249 typedef struct monster_blow monster_blow;
250 
252 {
257 };
258 
259 
261 
263 {
264  int power; /* The attack "power" */
265  int explode_type; /* Explosion effect */
266 };
267 
268 
269 /*
270  * Monster "race" information, including racial memories
271  *
272  * Note that "d_attr" and "d_char" are used for MORE than "visual" stuff.
273  *
274  * Note that "x_attr" and "x_char" are used ONLY for "visual" stuff.
275  *
276  * Note that "cur_num" (and "max_num") represent the number of monsters
277  * of the given race currently on (and allowed on) the current level.
278  * This information yields the "dead" flag for Unique monsters.
279  *
280  * Note that "max_num" is reset when a new player is created.
281  * Note that "cur_num" is reset when a new level is created.
282  *
283  * Note that several of these fields, related to "recall", can be
284  * scrapped if space becomes an issue, resulting in less "complete"
285  * monster recall (no knowledge of spells, etc). All of the "recall"
286  * fields have a special prefix to aid in searching for them.
287  */
288 
289 
290 typedef struct monster_race monster_race;
291 
293 {
294  u32b name; /* Name (offset) */
295 #ifdef JP
296  u32b E_name; /* 英語名 (offset) */
297 #endif
298  u32b text; /* Text (offset) */
299 
300  byte hdice; /* Creatures hit dice count */
301  byte hside; /* Creatures hit dice sides */
302 
303  s16b ac; /* Armour Class */
304 
305  s16b sleep; /* Inactive counter (base) */
306  byte aaf; /* Area affect radius (1-100) */
307  byte speed; /* Speed (normally 110) */
308 
309  s32b mexp; /* Exp value for kill */
310 
311  s16b extra; /* Unused (for now) */
312 
313  byte freq_spell; /* Spell frequency */
314 
315  u32b flags1; /* Flags 1 (general) */
316  u32b flags2; /* Flags 2 (abilities) */
317  u32b flags3; /* Flags 3 (race/resist) */
318  u32b flags4; /* Flags 4 (inate/breath) */
319  u32b flags5; /* Flags 5 (normal spells) */
320  u32b flags6; /* Flags 6 (special spells) */
321  u32b flags7; /* Flags 7 (movement related abilities) */
322  u32b flags8; /* Flags 8 (wilderness info) */
323  u32b flags9; /* Flags 9 (drops info) */
324  u32b flagsr; /* Flags R (resistances info) */
325 
326  monster_blow blow[4]; /* Up to four blows per round */
330 
333 
334  byte level; /* Level of creature */
335  byte rarity; /* Rarity of creature */
336 
337 
338  byte d_attr; /* Default monster attribute */
339  byte d_char; /* Default monster character */
340 
341 
342  byte x_attr; /* Desired monster attribute */
343  byte x_char; /* Desired monster character */
344 
345 
346  byte max_num; /* Maximum population allowed per level */
347 
348  byte cur_num; /* Monster population on current level */
349 
350  s16b floor_id; /* Location of unique monster */
351 
352 
353  s16b r_sights; /* Count sightings of this monster */
354  s16b r_deaths; /* Count deaths from this monster */
355 
356  s16b r_pkills; /* Count visible monsters killed in this life */
357  s16b r_akills; /* Count all monsters killed in this life */
358  s16b r_tkills; /* Count monsters killed in all lives */
359 
360  byte r_wake; /* Number of times woken up (?) */
361  byte r_ignore; /* Number of times ignored (?) */
362 
363  byte r_xtra1; /* Something (unused) */
364  byte r_xtra2; /* Something (unused) */
365 
366  byte r_drop_gold; /* Max number of gold dropped at once */
367  byte r_drop_item; /* Max number of item dropped at once */
368 
369  byte r_cast_spell; /* Max number of other spells seen */
370 
371  byte r_blows[4]; /* Number of times each blow type was seen */
372 
373  u32b r_flags1; /* Observed racial flags */
374  u32b r_flags2; /* Observed racial flags */
375  u32b r_flags3; /* Observed racial flags */
376  u32b r_flags4; /* Observed racial flags */
377  u32b r_flags5; /* Observed racial flags */
378  u32b r_flags6; /* Observed racial flags */
379  /* u32b r_flags7; */ /* Observed racial flags */
380  u32b r_flagsr; /* Observed racial resistance flags */
381 };
382 
383 
384 
385 /*
386  * Information about "vault generation"
387  */
388 
389 typedef struct vault_type vault_type;
390 
392 {
393  u32b name; /* Name (offset) */
394  u32b text; /* Text (offset) */
395 
396  byte typ; /* Vault type */
397 
398  byte rat; /* Vault rating */
399 
400  byte hgt; /* Vault height */
401  byte wid; /* Vault width */
402 };
403 
404 
405 /*
406  * Information about "skill"
407  */
408 
409 typedef struct skill_table skill_table;
410 
412 {
413  s16b w_start[5][64]; /* start weapon exp */
414  s16b w_max[5][64]; /* max weapon exp */
415  s16b s_start[10]; /* start skill */
416  s16b s_max[10]; /* max skill */
417 };
418 
419 
420 /*
421  * A single "grid" in a Cave
422  *
423  * Note that several aspects of the code restrict the actual cave
424  * to a max size of 256 by 256. In partcular, locations are often
425  * saved as bytes, limiting each coordinate to the 0-255 range.
426  *
427  * The "o_idx" and "m_idx" fields are very interesting. There are
428  * many places in the code where we need quick access to the actual
429  * monster or object(s) in a given cave grid. The easiest way to
430  * do this is to simply keep the index of the monster and object
431  * (if any) with the grid, but this takes 198*66*4 bytes of memory.
432  * Several other methods come to mind, which require only half this
433  * amound of memory, but they all seem rather complicated, and would
434  * probably add enough code that the savings would be lost. So for
435  * these reasons, we simply store an index into the "o_list" and
436  * "m_list" arrays, using "zero" when no monster/object is present.
437  *
438  * Note that "o_idx" is the index of the top object in a stack of
439  * objects, using the "next_o_idx" field of objects (see below) to
440  * create the singly linked list of objects. If "o_idx" is zero
441  * then there are no objects in the grid.
442  *
443  * Note the special fields for the "MONSTER_FLOW" code.
444  */
445 
446 typedef struct cave_type cave_type;
447 
448 struct cave_type
449 {
450  u16b info; /* Hack -- cave flags */
451 
452  s16b feat; /* Hack -- feature type */
453 
454  s16b o_idx; /* Object in this grid */
455 
456  s16b m_idx; /* Monster in this grid */
457 
458  s16b special; /* Special cave info */
459 
460  s16b mimic; /* Feature to mimic */
461 
462  byte cost; /* Hack -- cost of flowing */
463  byte dist; /* Hack -- distance from player */
464  byte when; /* Hack -- when cost was computed */
465 };
466 
467 
468 
469 /*
470  * Simple structure to hold a map location
471  */
472 typedef struct coord coord;
473 
474 struct coord
475 {
478 };
479 
480 
481 
482 /*
483  * Object information, for a specific object.
484  *
485  * Note that a "discount" on an item is permanent and never goes away.
486  *
487  * Note that inscriptions are now handled via the "quark_str()" function
488  * applied to the "note" field, which will return NULL if "note" is zero.
489  *
490  * Note that "object" records are "copied" on a fairly regular basis,
491  * and care must be taken when handling such objects.
492  *
493  * Note that "object flags" must now be derived from the object kind,
494  * the artifact and ego-item indexes, and the two "xtra" fields.
495  *
496  * Each cave grid points to one (or zero) objects via the "o_idx"
497  * field (above). Each object then points to one (or zero) objects
498  * via the "next_o_idx" field, forming a singly linked list, which
499  * in game terms, represents a "stack" of objects in the same grid.
500  *
501  * Each monster points to one (or zero) objects via the "hold_o_idx"
502  * field (below). Each object then points to one (or zero) objects
503  * via the "next_o_idx" field, forming a singly linked list, which
504  * in game terms, represents a pile of objects held by the monster.
505  *
506  * The "held_m_idx" field is used to indicate which monster, if any,
507  * is holding the object. Objects being held have "ix=0" and "iy=0".
508  */
509 
510 typedef struct object_type object_type;
511 
513 {
514  s16b k_idx; /* Kind index (zero if "dead") */
515 
516  byte iy; /* Y-position on map, or zero */
517  byte ix; /* X-position on map, or zero */
518 
519  byte tval; /* Item type (from kind) */
520  byte sval; /* Item sub-type (from kind) */
521 
522  s16b pval; /* Item extra-parameter */
523 
524  byte discount; /* Discount (if any) */
525 
526  byte number; /* Number of items */
527 
528  s16b weight; /* Item weight */
529 
530  byte name1; /* Artifact type, if any */
531  byte name2; /* Ego-Item type, if any */
532 
533  byte xtra1; /* Extra info type (now unused) */
534  byte xtra2; /* Extra info activation index */
535  byte xtra3; /* Extra info for weaponsmith */
536  s16b xtra4; /* Extra info fuel or captured monster's current HP */
537  s16b xtra5; /* Extra info captured monster's max HP */
538 
539  s16b to_h; /* Plusses to hit */
540  s16b to_d; /* Plusses to damage */
541  s16b to_a; /* Plusses to AC */
542 
543  s16b ac; /* Normal AC */
544 
545  byte dd, ds; /* Damage dice/sides */
546 
547  s16b timeout; /* Timeout Counter */
548 
549  byte ident; /* Special flags */
550 
551  byte marked; /* Object is marked */
552 
553  u16b inscription; /* Inscription index */
554  u16b art_name; /* Artifact name (random artifacts) */
555 
556  byte feeling; /* Game generated inscription number (eg, pseudo-id) */
557 
558  u32b art_flags[TR_FLAG_SIZE]; /* Extra Flags for ego and artifacts */
559 
560  u32b curse_flags; /* Flags for curse */
561 
562  s16b next_o_idx; /* Next object in stack (if any) */
563 
564  s16b held_m_idx; /* Monster holding us (if any) */
565 };
566 
567 
568 
569 /*
570  * Monster information, for a specific monster.
571  *
572  * Note: fy, fx constrain dungeon size to 256x256
573  *
574  * The "hold_o_idx" field points to the first object of a stack
575  * of objects (if any) being carried by the monster (see above).
576  */
577 
578 typedef struct monster_type monster_type;
579 
581 {
582  s16b r_idx; /* Monster race index */
583  s16b ap_r_idx; /* Monster race appearance index */
584  byte sub_align; /* Sub-alignment for a neutral monster */
585 
586  byte fy; /* Y location on map */
587  byte fx; /* X location on map */
588 
589  s16b hp; /* Current Hit points */
590  s16b maxhp; /* Max Hit points */
591  s16b max_maxhp; /* Max Max Hit points */
592  u32b dealt_damage; /* Sum of damages dealt by player */
593 
594  s16b mtimed[MAX_MTIMED]; /* Timed status counter */
595 
596  byte mspeed; /* Monster "speed" */
597  s16b energy_need; /* Monster "energy" */
598 
599  byte cdis; /* Current dis from player */
600 
601  byte mflag; /* Extra monster flags */
602  byte mflag2; /* Extra monster flags */
603 
604  bool ml; /* Monster is "visible" */
605 
606  s16b hold_o_idx; /* Object being held (if any) */
607 
608  s16b target_y; /* Can attack !los player */
609  s16b target_x; /* Can attack !los player */
610 
611  u16b nickname; /* Monster's Nickname */
612 
614 
615  u32b smart; /* Field for "smart_learn" */
616 
618 };
619 
620 
621 
622 
623 /*
624  * An entry for the object/monster allocation functions
625  *
626  * Pass 1 is determined from allocation information
627  * Pass 2 is determined from allocation restriction
628  * Pass 3 is determined from allocation calculation
629  */
630 
631 typedef struct alloc_entry alloc_entry;
632 
634 {
635  s16b index; /* The actual index */
636 
637  byte level; /* Base dungeon level */
638  byte prob1; /* Probability, pass 1 */
639  byte prob2; /* Probability, pass 2 */
640  byte prob3; /* Probability, pass 3 */
641 
642  u16b total; /* Unused for now */
643 };
644 
645 
646 
647 /*
648  * Available "options"
649  *
650  * - Address of actual option variable (or NULL)
651  *
652  * - Normal Value (TRUE or FALSE)
653  *
654  * - Option Page Number (or zero)
655  *
656  * - Savefile Set (or zero)
657  * - Savefile Bit in that set
658  *
659  * - Textual name (or NULL)
660  * - Textual description
661  */
662 
663 typedef struct option_type option_type;
664 
666 {
667  bool *o_var;
668 
670 
672 
675 
678 };
679 
680 
681 /*
682  * Structure for the "quests"
683  */
684 typedef struct quest_type quest_type;
685 
687 {
688  s16b status; /* Is the quest taken, completed, finished? */
689 
690  s16b type; /* The quest type */
691 
692  char name[60]; /* Quest name */
693  s16b level; /* Dungeon level */
694  s16b r_idx; /* Monster race */
695 
696  s16b cur_num; /* Number killed */
697  s16b max_num; /* Number required */
698 
699  s16b k_idx; /* object index */
700  s16b num_mon; /* number of monsters on level */
701 
702  byte flags; /* quest flags */
703  byte dungeon; /* quest dungeon */
704 
705  byte complev; /* player level (complete) */
706  u32b comptime; /* quest clear time*/
707 };
708 
709 
710 /*
711  * A store owner
712  */
713 typedef struct owner_type owner_type;
714 
716 {
717  cptr owner_name; /* Name */
718 
719  s16b max_cost; /* Purse limit */
720 
721  byte max_inflate; /* Inflation (max) */
722  byte min_inflate; /* Inflation (min) */
723 
724  byte haggle_per; /* Haggle unit */
725 
726  byte insult_max; /* Insult limit */
727 
728  byte owner_race; /* Owner race */
729 };
730 
731 
732 
733 
734 /*
735  * A store, with an owner, various state flags, a current stock
736  * of items, and a table of items that are often purchased.
737  */
738 typedef struct store_type store_type;
739 
741 {
742  byte type; /* Store type */
743 
744  byte owner; /* Owner index */
745  byte extra; /* Unused for now */
746 
747  s16b insult_cur; /* Insult counter */
748 
749  s16b good_buy; /* Number of "good" buys */
750  s16b bad_buy; /* Number of "bad" buys */
751 
752  s32b store_open; /* Closed until this turn */
753 
754  s32b last_visit; /* Last visited on this turn */
755 
756  s16b table_num; /* Table -- Number of entries */
757  s16b table_size; /* Table -- Total Size of Array */
758  s16b *table; /* Table -- Legal item kinds */
759 
760  s16b stock_num; /* Stock -- Number of entries */
761  s16b stock_size; /* Stock -- Total Size of Array */
762  object_type *stock; /* Stock -- Actual stock items */
763 };
764 
765 
766 /*
767  * The "name" of spell 'N' is stored as spell_names[X][N],
768  * where X is 0 for mage-spells and 1 for priest-spells.
769  */
770 typedef struct magic_type magic_type;
771 
773 {
774  byte slevel; /* Required level (to learn) */
775  byte smana; /* Required mana (to cast) */
776  byte sfail; /* Minimum chance of failure */
777  byte sexp; /* Encoded experience bonus */
778 };
779 
780 
781 /*
782  * Information about the player's "magic"
783  *
784  * Note that a player with a "spell_book" of "zero" is illiterate.
785  */
786 
787 typedef struct player_magic player_magic;
788 
790 {
791  int spell_book; /* Tval of spell books (if any) */
792  int spell_xtra; /* Something for later */
793 
794  int spell_stat; /* Stat for spells (if any) */
795  int spell_type; /* Spell type (mage/priest) */
796 
797  int spell_first; /* Level of first spell */
798  int spell_weight; /* Weight that hurts spells */
799 
800  magic_type info[MAX_MAGIC][32]; /* The available spells */
801 };
802 
803 
804 
805 /*
806  * Player sex info
807  */
808 
809 typedef struct player_sex player_sex;
810 
812 {
813  cptr title; /* Type of sex */
814  cptr winner; /* Name of winner */
815 #ifdef JP
816  cptr E_title; /* 英語性別 */
817  cptr E_winner; /* 英語性別 */
818 #endif
819 };
820 
821 
822 /*
823  * Player racial info
824  */
825 
826 typedef struct player_race player_race;
827 
829 {
830  cptr title; /* Type of race */
831 
832 #ifdef JP
833  cptr E_title; /* 英語種族 */
834 #endif
835  s16b r_adj[6]; /* Racial stat bonuses */
836 
837  s16b r_dis; /* disarming */
838  s16b r_dev; /* magic devices */
839  s16b r_sav; /* saving throw */
840  s16b r_stl; /* stealth */
841  s16b r_srh; /* search ability */
842  s16b r_fos; /* search frequency */
843  s16b r_thn; /* combat (normal) */
844  s16b r_thb; /* combat (shooting) */
845 
846  byte r_mhp; /* Race hit-dice modifier */
847  byte r_exp; /* Race experience factor */
848 
849  byte b_age; /* base age */
850  byte m_age; /* mod age */
851 
852  byte m_b_ht; /* base height (males) */
853  byte m_m_ht; /* mod height (males) */
854  byte m_b_wt; /* base weight (males) */
855  byte m_m_wt; /* mod weight (males) */
856 
857  byte f_b_ht; /* base height (females) */
858  byte f_m_ht; /* mod height (females) */
859  byte f_b_wt; /* base weight (females) */
860  byte f_m_wt; /* mod weight (females) */
861 
862  byte infra; /* Infra-vision range */
863 
864  u32b choice; /* Legal class choices */
865 /* byte choice_xtra; */
866 };
867 
868 
869 /*
870  * Player class info
871  */
872 
873 typedef struct player_class player_class;
874 
876 {
877  cptr title; /* Type of class */
878 
879 #ifdef JP
880  cptr E_title; /* 英語職業 */
881 #endif
882  s16b c_adj[6]; /* Class stat modifier */
883 
884  s16b c_dis; /* class disarming */
885  s16b c_dev; /* class magic devices */
886  s16b c_sav; /* class saving throws */
887  s16b c_stl; /* class stealth */
888  s16b c_srh; /* class searching ability */
889  s16b c_fos; /* class searching frequency */
890  s16b c_thn; /* class to hit (normal) */
891  s16b c_thb; /* class to hit (bows) */
892 
893  s16b x_dis; /* extra disarming */
894  s16b x_dev; /* extra magic devices */
895  s16b x_sav; /* extra saving throws */
896  s16b x_stl; /* extra stealth */
897  s16b x_srh; /* extra searching ability */
898  s16b x_fos; /* extra searching frequency */
899  s16b x_thn; /* extra to hit (normal) */
900  s16b x_thb; /* extra to hit (bows) */
901 
902  s16b c_mhp; /* Class hit-dice adjustment */
903  s16b c_exp; /* Class experience factor */
904 
905  byte pet_upkeep_div; /* Pet upkeep divider */
906 };
907 
908 
911 {
912  cptr title; /* Type of seikaku */
913 
914 #ifdef JP
915  cptr E_title; /* 英語性格 */
916 #endif
917 
918  s16b a_adj[6]; /* seikaku stat bonuses */
919 
920  s16b a_dis; /* seikaku disarming */
921  s16b a_dev; /* seikaku magic devices */
922  s16b a_sav; /* seikaku saving throw */
923  s16b a_stl; /* seikaku stealth */
924  s16b a_srh; /* seikaku search ability */
925  s16b a_fos; /* seikaku search frequency */
926  s16b a_thn; /* seikaku combat (normal) */
927  s16b a_thb; /* seikaku combat (shooting) */
928 
929  s16b a_mhp; /* Race hit-dice modifier */
930 
931  byte no; /* の */
932  byte sex; /* seibetu seigen */
933 };
934 
935 
936 /*
937  * Most of the "player" information goes here.
938  *
939  * This stucture gives us a large collection of player variables.
940  *
941  * This structure contains several "blocks" of information.
942  * (1) the "permanent" info
943  * (2) the "variable" info
944  * (3) the "transient" info
945  *
946  * All of the "permanent" info, and most of the "variable" info,
947  * is saved in the savefile. The "transient" info is recomputed
948  * whenever anything important changes.
949  */
950 
951 typedef struct player_type player_type;
952 
954 {
955  s16b oldpy; /* Previous player location -KMW- */
956  s16b oldpx; /* Previous player location -KMW- */
957 
958  byte psex; /* Sex index */
959  byte prace; /* Race index */
960  byte pclass; /* Class index */
961  byte pseikaku; /* Seikaku index */
962  byte realm1; /* First magic realm */
963  byte realm2; /* Second magic realm */
964  byte oops; /* Unused */
965 
966  byte hitdie; /* Hit dice (sides) */
967  u16b expfact; /* Experience factor
968  * Note: was byte, causing overflow for Amberite
969  * characters (such as Amberite Paladins)
970  */
971 
972  s16b age; /* Characters age */
973  s16b ht; /* Height */
974  s16b wt; /* Weight */
975  s16b sc; /* Social Class */
976 
977 
978  s32b au; /* Current Gold */
979 
980  s32b max_max_exp; /* Max max experience (only to calculate score) */
981  s32b max_exp; /* Max experience */
982  s32b exp; /* Cur experience */
983  u32b exp_frac; /* Cur exp frac (times 2^16) */
984 
985  s16b lev; /* Level */
986 
987  s16b town_num; /* Current town number */
988  s16b arena_number; /* monster number in arena -KMW- */
989  bool inside_arena; /* Is character inside arena? */
990  s16b inside_quest; /* Inside quest level */
991  bool inside_battle; /* Is character inside tougijou? */
992 
993  s32b wilderness_x; /* Coordinates in the wilderness */
995  bool wild_mode;
996 
997  s32b mhp; /* Max hit pts */
998  s32b chp; /* Cur hit pts */
999  u32b chp_frac; /* Cur hit frac (times 2^16) */
1000 
1001  s32b msp; /* Max mana pts */
1002  s32b csp; /* Cur mana pts */
1003  u32b csp_frac; /* Cur mana frac (times 2^16) */
1004 
1005  s16b max_plv; /* Max Player Level */
1006 
1007  s16b stat_max[6]; /* Current "maximal" stat values */
1008  s16b stat_max_max[6]; /* Maximal "maximal" stat values */
1009  s16b stat_cur[6]; /* Current "natural" stat values */
1010 
1013 
1015 
1016  s16b fast; /* Timed -- Fast */
1017  s16b slow; /* Timed -- Slow */
1018  s16b blind; /* Timed -- Blindness */
1019  s16b paralyzed; /* Timed -- Paralysis */
1020  s16b confused; /* Timed -- Confusion */
1021  s16b afraid; /* Timed -- Fear */
1022  s16b image; /* Timed -- Hallucination */
1023  s16b poisoned; /* Timed -- Poisoned */
1024  s16b cut; /* Timed -- Cut */
1025  s16b stun; /* Timed -- Stun */
1026 
1027  s16b protevil; /* Timed -- Protection */
1028  s16b invuln; /* Timed -- Invulnerable */
1029  s16b ult_res; /* Timed -- Ultimate Resistance */
1030  s16b hero; /* Timed -- Heroism */
1031  s16b shero; /* Timed -- Super Heroism */
1032  s16b shield; /* Timed -- Shield Spell */
1033  s16b blessed; /* Timed -- Blessed */
1034  s16b tim_invis; /* Timed -- See Invisible */
1035  s16b tim_infra; /* Timed -- Infra Vision */
1036  s16b tsuyoshi; /* Timed -- Tsuyoshi Special */
1037  s16b ele_attack; /* Timed -- Elemental Attack */
1038  s16b ele_immune; /* Timed -- Elemental Immune */
1039 
1040  s16b oppose_acid; /* Timed -- oppose acid */
1041  s16b oppose_elec; /* Timed -- oppose lightning */
1042  s16b oppose_fire; /* Timed -- oppose heat */
1043  s16b oppose_cold; /* Timed -- oppose cold */
1044  s16b oppose_pois; /* Timed -- oppose poison */
1045 
1046 
1047  s16b tim_esp; /* Timed ESP */
1048  s16b wraith_form; /* Timed wraithform */
1049 
1050  s16b resist_magic; /* Timed Resist Magic (later) */
1059  s16b tim_res_nether; /* Timed -- Nether resistance */
1060  s16b tim_res_time; /* Timed -- Time resistance */
1066 
1067  /* for mirror master */
1068  s16b tim_reflect; /* Timed -- Reflect */
1069  s16b multishadow; /* Timed -- Multi-shadow */
1070  s16b dustrobe; /* Timed -- Robe of dust */
1071 
1076 
1079 
1080  s16b word_recall; /* Word of recall counter */
1081  s16b alter_reality; /* Alter reality counter */
1082  byte recall_dungeon; /* Dungeon set to be recalled */
1083 
1084  s16b energy_need; /* Energy needed for next move */
1085  s16b enchant_energy_need; /* Energy needed for next upkeep effect */
1086 
1087  s16b food; /* Current nutrition */
1088 
1089  u32b special_attack; /* Special attack capacity -LM- */
1090  u32b special_defense; /* Special block capacity -LM- */
1091  byte action; /* Currently action */
1092 
1093  u32b spell_learned1; /* bit mask of spells learned */
1094  u32b spell_learned2; /* bit mask of spells learned */
1095  u32b spell_worked1; /* bit mask of spells tried and worked */
1096  u32b spell_worked2; /* bit mask of spells tried and worked */
1097  u32b spell_forgotten1; /* bit mask of spells learned but forgotten */
1098  u32b spell_forgotten2; /* bit mask of spells learned but forgotten */
1099  byte spell_order[64]; /* order spells learned/remembered/forgotten */
1100 
1101  s16b spell_exp[64]; /* Proficiency of spells */
1102  s16b weapon_exp[5][64]; /* Proficiency of weapons */
1103  s16b skill_exp[10]; /* Proficiency of misc. skill */
1104 
1105  s32b magic_num1[108]; /* Array for non-spellbook type magic */
1106  byte magic_num2[108]; /* Flags for non-spellbook type magics */
1107 
1108  s16b mane_spell[MAX_MANE];
1109  s16b mane_dam[MAX_MANE];
1111 
1112  s16b concent; /* Sniper's concentration level */
1113 
1115  char died_from[80]; /* What killed the player */
1116  cptr last_message; /* Last message on death or retirement */
1117  char history[4][60]; /* Textual "history" for the Player */
1118 
1119  u16b total_winner; /* Total winner */
1120  u16b panic_save; /* Panic save */
1121 
1122  u16b noscore; /* Cheating flags */
1123 
1124  bool wait_report_score; /* Waiting to report score */
1125  bool is_dead; /* Player is dead */
1126 
1127  bool wizard; /* Player is in wizard mode */
1128 
1129  s16b riding; /* Riding on a monster of this index */
1130  byte knowledge; /* Knowledge about yourself */
1131  s32b visit; /* Visited towns */
1132 
1133  byte start_race; /* Race at birth */
1134  s32b old_race1; /* Record of race changes */
1135  s32b old_race2; /* Record of race changes */
1136  s16b old_realm; /* Record of realm changes */
1137 
1138  s16b pet_follow_distance; /* Length of the imaginary "leash" for pets */
1139  s16b pet_extra_flags; /* Various flags for controling pets */
1140 
1141  s16b today_mon; /* Wanted monster */
1142 
1143  bool dtrap; /* Whether you are on trap-safe grids */
1144  s16b floor_id; /* Current floor location */
1145 
1146  bool autopick_autoregister; /* auto register is in-use or not */
1147 
1148  byte feeling; /* Most recent dungeon feeling */
1149  s32b feeling_turn; /* The turn of the last dungeon feeling */
1150 
1151 
1152  /*** Temporary fields ***/
1153 
1154  bool playing; /* True if player is playing */
1155  bool leaving; /* True if player is leaving */
1156 
1157  byte exit_bldg; /* Goal obtained in arena? -KMW- */
1158 
1159  bool leaving_dungeon; /* True if player is leaving the dungeon */
1161  bool enter_dungeon; /* Just enter the dungeon */
1162 
1163  s16b health_who; /* Health bar trackee */
1164 
1165  s16b monster_race_idx; /* Monster race trackee */
1166 
1167  s16b object_kind_idx; /* Object kind trackee */
1168 
1169  s16b new_spells; /* Number of spells available */
1171 
1172  s16b old_food_aux; /* Old value of food */
1173 
1182 
1183  s16b old_lite; /* Old radius of lite (if any) */
1184 
1185  bool cumber_armor; /* Mana draining armor */
1186  bool cumber_glove; /* Mana draining gloves */
1187  bool heavy_wield[2]; /* Heavy weapon */
1188  bool heavy_shoot; /* Heavy shooter */
1189  bool icky_wield[2]; /* Icky weapon */
1190  bool riding_wield[2]; /* Riding weapon */
1191  bool riding_ryoute; /* Riding weapon */
1192  bool monlite;
1193 
1194  s16b cur_lite; /* Radius of lite (if any) */
1195 
1196 
1197  u32b notice; /* Special Updates (bit flags) */
1198  u32b update; /* Pending Updates (bit flags) */
1199  u32b redraw; /* Normal Redraws (bit flags) */
1200  u32b window; /* Window Redraws (bit flags) */
1201 
1202  s16b stat_use[6]; /* Current modified stats */
1203  s16b stat_top[6]; /* Maximal modified stats */
1204 
1205  bool sutemi;
1206  bool counter;
1207 
1208  s32b align; /* Good/evil/neutral */
1211 
1212 
1213  /*** Extracted fields ***/
1214 
1215  u32b total_weight; /* Total weight being carried */
1216 
1217  s16b stat_add[6]; /* Modifiers to stat values */
1218  s16b stat_ind[6]; /* Indexes into stat tables */
1219 
1220  bool immune_acid; /* Immunity to acid */
1221  bool immune_elec; /* Immunity to lightning */
1222  bool immune_fire; /* Immunity to fire */
1223  bool immune_cold; /* Immunity to cold */
1224 
1225  bool resist_acid; /* Resist acid */
1226  bool resist_elec; /* Resist lightning */
1227  bool resist_fire; /* Resist fire */
1228  bool resist_cold; /* Resist cold */
1229  bool resist_pois; /* Resist poison */
1230 
1231  bool resist_conf; /* Resist confusion */
1232  bool resist_sound; /* Resist sound */
1233  bool resist_lite; /* Resist light */
1234  bool resist_dark; /* Resist darkness */
1235  bool resist_chaos; /* Resist chaos */
1236  bool resist_disen; /* Resist disenchant */
1237  bool resist_shard; /* Resist shards */
1238  bool resist_nexus; /* Resist nexus */
1239  bool resist_blind; /* Resist blindness */
1240  bool resist_neth; /* Resist nether */
1241  bool resist_fear; /* Resist fear */
1242  bool resist_time; /* Resist time */
1243 
1244  bool reflect; /* Reflect 'bolt' attacks */
1245  bool sh_fire; /* Fiery 'immolation' effect */
1246  bool sh_elec; /* Electric 'immolation' effect */
1247  bool sh_cold; /* Cold 'immolation' effect */
1248 
1249  bool anti_magic; /* Anti-magic */
1250  bool anti_tele; /* Prevent teleportation */
1251 
1252  bool sustain_str; /* Keep strength */
1253  bool sustain_int; /* Keep intelligence */
1254  bool sustain_wis; /* Keep wisdom */
1255  bool sustain_dex; /* Keep dexterity */
1256  bool sustain_con; /* Keep constitution */
1257  bool sustain_chr; /* Keep charisma */
1258 
1259  u32b cursed; /* Player is cursed */
1260 
1261  bool can_swim; /* No damage falling */
1262  bool levitation; /* No damage falling */
1263  bool lite; /* Permanent light */
1264  bool free_act; /* Never paralyzed */
1265  bool see_inv; /* Can see invisible */
1266  bool regenerate; /* Regenerate hit pts */
1267  bool hold_exp; /* Resist exp draining */
1268 
1269  bool telepathy; /* Telepathy */
1273  bool esp_orc;
1278  bool esp_evil;
1279  bool esp_good;
1282 
1283  bool slow_digest; /* Slower digestion */
1284  bool bless_blade; /* Blessed blade */
1285  bool xtra_might; /* Extra might bow */
1286  bool impact[2]; /* Earthquake blows */
1287  bool pass_wall; /* Permanent wraithform */
1289  bool dec_mana;
1292  bool warning;
1294  bool see_nocto; /* Noctovision */
1295 
1296  s16b to_dd[2]; /* Extra dice/sides */
1298 
1299  s16b dis_to_h[2]; /* Known bonus to hit (wield) */
1300  s16b dis_to_h_b; /* Known bonus to hit (bow) */
1301  s16b dis_to_d[2]; /* Known bonus to dam (wield) */
1302  s16b dis_to_a; /* Known bonus to ac */
1303 
1304  s16b dis_ac; /* Known base ac */
1305 
1306  s16b to_h[2]; /* Bonus to hit (wield) */
1307  s16b to_h_b; /* Bonus to hit (bow) */
1308  s16b to_h_m; /* Bonus to hit (misc) */
1309  s16b to_d[2]; /* Bonus to dam (wield) */
1310  s16b to_d_m; /* Bonus to dam (misc) */
1311  s16b to_a; /* Bonus to ac */
1312 
1313  s16b to_m_chance; /* Minusses to cast chance */
1314 
1315  bool ryoute;
1316  bool migite;
1317  bool hidarite;
1319 
1320  s16b ac; /* Base ac */
1321 
1322  s16b see_infra; /* Infravision range */
1323 
1324  s16b skill_dis; /* Skill: Disarming */
1325  s16b skill_dev; /* Skill: Magic Devices */
1326  s16b skill_sav; /* Skill: Saving throw */
1327  s16b skill_stl; /* Skill: Stealth factor */
1328  s16b skill_srh; /* Skill: Searching ability */
1329  s16b skill_fos; /* Skill: Searching frequency */
1330  s16b skill_thn; /* Skill: To hit (normal) */
1331  s16b skill_thb; /* Skill: To hit (shooting) */
1332  s16b skill_tht; /* Skill: To hit (throwing) */
1333  s16b skill_dig; /* Skill: Digging */
1334 
1335  s16b num_blow[2]; /* Number of blows */
1336  s16b num_fire; /* Number of shots */
1337 
1338  byte tval_xtra; /* Correct xtra tval */
1339 
1340  byte tval_ammo; /* Correct ammo tval */
1341 
1342  byte pspeed; /* Current speed */
1343 };
1344 
1345 
1346 /*
1347  * A structure to hold "rolled" information
1348  */
1349 typedef struct birther birther;
1350 
1351 struct birther
1352 {
1353  byte psex; /* Sex index */
1354  byte prace; /* Race index */
1355  byte pclass; /* Class index */
1356  byte pseikaku; /* Seikaku index */
1357  byte realm1; /* First magic realm */
1358  byte realm2; /* Second magic realm */
1359 
1364 
1366 
1367  s16b stat_max[6]; /* Current "maximal" stat values */
1368  s16b stat_max_max[6]; /* Maximal "maximal" stat values */
1370 
1372 
1374 
1375  char history[4][60];
1376 
1377  bool quick_ok;
1378 };
1379 
1380 
1381 /* For Monk martial arts */
1382 
1384 
1386 {
1387  cptr desc; /* A verbose attack description */
1388  int min_level; /* Minimum level to use */
1389  int chance; /* Chance of 'success' */
1390  int dd; /* Damage dice */
1391  int ds; /* Damage sides */
1392  int effect; /* Special effects */
1393 };
1394 
1395 typedef struct kamae kamae;
1396 
1397 struct kamae
1398 {
1399  cptr desc; /* A verbose kamae description */
1400  int min_level; /* Minimum level to use */
1402 };
1403 
1404 /* Mindcrafters */
1405 typedef struct mind_type mind_type;
1407 {
1408  int min_lev;
1410  int fail;
1412 };
1413 
1414 typedef struct mind_power mind_power;
1416 {
1418 };
1419 
1420 /* Imitator */
1421 
1424 {
1425  int level;
1426  int smana;
1427  int fail;
1428  int manedam;
1432 };
1433 
1434 
1435 /*
1436  * A structure to describe a building.
1437  * From Kamband
1438  */
1440 
1442 {
1443  char name[20]; /* proprietor name */
1444  char owner_name[20]; /* proprietor name */
1445  char owner_race[20]; /* proprietor race */
1446 
1447  char act_names[8][30]; /* action names */
1448  s32b member_costs[8]; /* Costs for class members of building */
1449  s32b other_costs[8]; /* Costs for nonguild members */
1450  char letters[8]; /* action letters */
1451  s16b actions[8]; /* action codes */
1452  s16b action_restr[8]; /* action restrictions */
1453 
1454  s16b member_class[MAX_CLASS]; /* which classes are part of guild */
1455  s16b member_race[MAX_RACES]; /* which classes are part of guild */
1456  s16b member_realm[MAX_MAGIC+1]; /* which realms are part of guild */
1457 };
1458 
1459 
1460 /* Border */
1461 typedef struct border_type border_type;
1463 {
1472 };
1473 
1474 
1475 /*
1476  * A structure describing a wilderness area
1477  * with a terrain or a town
1478  */
1481 {
1482  int terrain;
1483  int town;
1484  int road;
1488 };
1489 
1490 
1491 /*
1492  * A structure describing a town with
1493  * stores and buildings
1494  */
1495 typedef struct town_type town_type;
1497 {
1498  char name[32];
1499  u32b seed; /* Seed for RNG */
1500  store_type *store; /* The stores [MAX_STORES] */
1502 };
1503 
1504 /* Dungeons */
1505 typedef struct dun_type dun_type;
1506 struct dun_type
1507 {
1508  byte min_level; /* Minimum level in the dungeon */
1509  byte max_level; /* Maximum dungeon level allowed */
1510 
1511  cptr name; /* The name of the dungeon */
1512 };
1513 
1514 /*
1515  * Sort-array element
1516  */
1517 typedef struct tag_type tag_type;
1518 
1519 struct tag_type
1520 {
1521  int tag;
1522  int index;
1523 };
1524 
1525 typedef bool (*monster_hook_type)(int r_idx);
1526 
1527 
1528 /*
1529  * This seems like a pretty standard "typedef"
1530  */
1531 typedef int (*inven_func)(object_type *);
1532 
1533 
1534 /*
1535  * Semi-Portable High Score List Entry (128 bytes) -- BEN
1536  *
1537  * All fields listed below are null terminated ascii strings.
1538  *
1539  * In addition, the "number" fields are right justified, and
1540  * space padded, to the full available length (minus the "null").
1541  *
1542  * Note that "string comparisons" are thus valid on "pts".
1543  */
1544 
1545 typedef struct high_score high_score;
1546 
1548 {
1549  char what[8]; /* Version info (string) */
1550 
1551  char pts[10]; /* Total Score (number) */
1552 
1553  char gold[10]; /* Total Gold (number) */
1554 
1555  char turns[10]; /* Turns Taken (number) */
1556 
1557  char day[10]; /* Time stamp (string) */
1558 
1559  char who[16]; /* Player Name (string) */
1560 
1561  char uid[8]; /* Player UID (number) */
1562 
1563  char sex[2]; /* Player Sex (string) */
1564  char p_r[3]; /* Player Race (number) */
1565  char p_c[3]; /* Player Class (number) */
1566  char p_a[3]; /* Player Seikaku (number) */
1567 
1568  char cur_lev[4]; /* Current Player Level (number) */
1569  char cur_dun[4]; /* Current Dungeon Level (number) */
1570  char max_lev[4]; /* Max Player Level (number) */
1571  char max_dun[4]; /* Max Dungeon Level (number) */
1572 
1573  char how[40]; /* Method of death (string) */
1574 };
1575 
1576 
1577 typedef struct
1578 {
1579  s16b feat; /* Feature tile */
1580  byte percent; /* Chance of type */
1581 }
1582 feat_prob;
1583 
1584 
1585 /* A structure for the != dungeon types */
1588  u32b name; /* Name */
1589  u32b text; /* Description */
1590 
1593 
1594  feat_prob floor[DUNGEON_FEAT_PROB_NUM]; /* Floor probability */
1595  feat_prob fill[DUNGEON_FEAT_PROB_NUM]; /* Cave wall probability */
1596  s16b outer_wall; /* Outer wall tile */
1597  s16b inner_wall; /* Inner wall tile */
1598  s16b stream1; /* stream tile */
1599  s16b stream2; /* stream tile */
1600 
1601  s16b mindepth; /* Minimal depth */
1602  s16b maxdepth; /* Maximal depth */
1603  byte min_plev; /* Minimal plev needed to enter -- it's an anti-cheating mesure */
1606  byte mode; /* Mode of combinaison of the monster flags */
1607 
1608  int min_m_alloc_level; /* Minimal number of monsters per level */
1609  int max_m_alloc_chance; /* There is a 1/max_m_alloc_chance chance per round of creating a new monster */
1610 
1611  u32b flags1; /* Flags 1 */
1612 
1613  u32b mflags1; /* The monster flags that are allowed */
1623 
1624  char r_char[5]; /* Monster race allowed */
1625  int final_object; /* The object you'll find at the bottom */
1626  int final_artifact; /* The artifact you'll find at the bottom */
1627  int final_guardian; /* The artifact's guardian. If an artifact is specified, then it's NEEDED */
1628 
1629  byte special_div; /* % of monsters affected by the flags/races allowed, to add some variety */
1633 };
1634 
1635 
1636 /*!
1637  * @struct autopick_type
1638  * @brief 自動拾い/破壊設定データの構造体 / A structure type for entry of auto-picker/destroyer
1639  */
1640 typedef struct {
1641  cptr name; /*!< 自動拾い/破壊定義の名称一致基準 / Items which have 'name' as part of its name match */
1642  cptr insc; /*!< 対象となったアイテムに自動で刻む内容 / Items will be auto-inscribed as 'insc' */
1643  u32b flag[2]; /*!< キーワードに関する汎用的な条件フラグ / Misc. keyword to be matched */
1644  byte action; /*!< 対象のアイテムを拾う/破壊/放置するかの指定フラグ / Auto-pickup or Destroy or Leave items */
1645  byte dice; /*!< 武器のダイス値基準値 / Weapons which have more than 'dice' dice match */
1646  byte bonus; /*!< アイテムのボーナス基準値 / Items which have more than 'bonus' magical bonus match */
1647 } autopick_type;
1648 
1649 
1650 /*
1651  * A structure type for the saved floor
1652  */
1653 typedef struct
1654 {
1655  s16b floor_id; /* No recycle until 65536 IDs are all used */
1656  byte savefile_id; /* ID for savefile (from 0 to MAX_SAVED_FLOOR) */
1658  s32b last_visit; /* Time count of last visit. 0 for new floor. */
1659  u32b visit_mark; /* Older has always smaller mark. */
1660  s16b upper_floor_id; /* a floor connected with level teleportation */
1661  s16b lower_floor_id; /* a floor connected with level tel. and trap door */
1663 
1664 
1665 /*
1666  * A structure type for terrain template of saving dungeon floor
1667  */
1668 typedef struct
1669 {
1676 
1677 
1678 /*!
1679  * @struct arena_type
1680  * @brief 闘技場のモンスターエントリー構造体 / A structure type for arena entry
1681  */
1682 typedef struct
1683 {
1684  s16b r_idx; /*!< 闘技場のモンスター種族ID(0ならば表彰式) / Monster (0 means victory prizing) */
1685  byte tval; /*!< モンスター打倒後に得られるアイテムの大カテゴリID / tval of prize (0 means no prize) */
1686  byte sval; /*!< モンスター打倒後に得られるアイテムの小カテゴリID / sval of prize */
1687 } arena_type;
1688 
1689 
1690 /*
1691  * A structure type for doors
1692  */
1693 typedef struct
1694 {
1702 } door_type;
1703 
1704 
1705 #ifdef TRAVEL
1706 /*
1707  * A structure type for travel command
1708  */
1709 typedef struct {
1710  int run; /* Remaining grid number */
1711  int cost[MAX_HGT][MAX_WID];
1712  int x; /* Target X */
1713  int y; /* Target Y */
1714  int dir; /* Running direction */
1715 } travel_type;
1716 #endif
1717 
1718 typedef struct {
1723  struct {
1725  int dice;
1726  } timeout;
1728 } activation_type;
1729 
1730 typedef struct {
1731  int flag;
1732  int type;
bool old_cumber_glove
Definition: types.h:1175
u32b text
地形説明参照のためのネームバッファオフセット値 / Text (offset)
Definition: types.h:72
int power
Definition: types.h:264
byte dice
武器のダイス値基準値 / Weapons which have more than &#39;dice&#39; dice match
Definition: types.h:1645
int spell_type
Definition: types.h:795
u32b spell_forgotten2
Definition: types.h:1098
bool esp_good
Definition: types.h:1279
byte level
ベースアイテムの基本生成階 / Level
Definition: types.h:135
byte dungeon
Definition: types.h:703
s16b fast
Definition: types.h:1016
byte extra
Definition: types.h:745
s16b a_dis
Definition: types.h:920
s16b w_start[5][64]
Definition: types.h:413
byte x_attr
設定変更後のアイテムシンボルカラー / Desired object attribute
Definition: types.h:141
s16b timeout
Definition: types.h:547
s16b tim_invis
Definition: types.h:1034
s16b outer_wall
Definition: types.h:1596
s16b ult_res
Definition: types.h:1029
u32b seed
Definition: types.h:1485
s32b csp
Definition: types.h:1002
byte m_age
Definition: types.h:850
byte tval
Definition: types.h:519
s16b pet_extra_flags
Definition: types.h:1139
s16b skill_tht
Definition: types.h:1332
monster_blow blow[4]
Definition: types.h:326
byte pclass
Definition: types.h:960
s16b energy_need
Definition: types.h:1084
s16b multishadow
Definition: types.h:1069
s16b k_idx
Definition: types.h:699
byte dx
Definition: types.h:1592
byte bonus
アイテムのボーナス基準値 / Items which have more than &#39;bonus&#39; magical bonus match
Definition: types.h:1646
Definition: types.h:292
闘技場のモンスターエントリー構造体 / A structure type for arena entry
Definition: types.h:1682
Definition: types.h:828
byte dd
Definition: types.h:545
cptr insc
対象となったアイテムに自動で刻む内容 / Items will be auto-inscribed as &#39;insc&#39;
Definition: types.h:1642
byte max_to_d
Definition: types.h:223
s32b mhp
Definition: types.h:997
byte sval
モンスター打倒後に得られるアイテムの小カテゴリID / sval of prize
Definition: types.h:1686
bool esp_undead
Definition: types.h:1271
bool counter
Definition: types.h:1206
int spell_xtra
Definition: types.h:792
s16b a_mhp
Definition: types.h:929
s16b skill_thn
Definition: types.h:1330
byte cost
Definition: types.h:462
u16b reinforce_dd[6]
Definition: types.h:328
s16b tim_reflect
Definition: types.h:1068
s16b north_east
Definition: types.h:1469
byte complev
Definition: types.h:705
s16b tim_res_time
Definition: types.h:1060
u32b muta1
Definition: types.h:1073
u32b spell_forgotten1
Definition: types.h:1097
s16b r_srh
Definition: types.h:841
char history[4][60]
Definition: types.h:1375
Definition: types.h:411
s16b age
Definition: types.h:1360
const char * cptr
文字列定数用ポインタ定義 / A simple pointer (to unmodifiable strings)
Definition: h-type.h:46
byte pseikaku
Definition: types.h:961
s32b cost
ベースアイテムの基本価値 / Object &quot;base cost&quot;
Definition: types.h:126
byte realm1
Definition: types.h:962
s16b tim_sh_touki
Definition: types.h:1055
byte o_set
Definition: types.h:673
byte number
Definition: types.h:526
s16b weapon_exp[5][64]
Definition: types.h:1102
bool resist_fire
Definition: types.h:1227
s16b r_idx
闘技場のモンスター種族ID(0ならば表彰式) / Monster (0 means victory prizing)
Definition: types.h:1684
byte sexp
Definition: types.h:777
s16b inside_quest
Definition: types.h:990
bool esp_orc
Definition: types.h:1273
char max_dun[4]
Definition: types.h:1571
s16b c_dis
Definition: types.h:884
bool(* monster_hook_type)(int r_idx)
Definition: types.h:1525
s16b arena_number
Definition: types.h:988
bool immune_acid
Definition: types.h:1220
s16b feat
Definition: types.h:452
byte action
対象のアイテムを拾う/破壊/放置するかの指定フラグ / Auto-pickup or Destroy or Leave items
Definition: types.h:1644
s16b r_dis
Definition: types.h:837
s16b sc
Definition: types.h:975
s16b bad_buy
Definition: types.h:750
s16b r_idx
Definition: types.h:694
int manedam
Definition: types.h:1428
int flag
Definition: types.h:1731
s32b visit
Definition: types.h:1131
s16b confused
Definition: types.h:1020
int min_level
Definition: types.h:1388
s16b tim_infra
Definition: types.h:1035
bool cumber_glove
Definition: types.h:1186
s16b town_num
Definition: types.h:987
u32b window
Definition: types.h:1200
char turns[10]
Definition: types.h:1555
s16b inner_wall
Definition: types.h:1597
byte level
Definition: types.h:637
u16b total
Definition: types.h:642
s16b tim_mimic
Definition: types.h:1062
bool esp_evil
Definition: types.h:1278
bool sustain_str
Definition: types.h:1252
u32b next_exp
Definition: types.h:332
byte r_ignore
Definition: types.h:361
bool levitation
Definition: types.h:1262
ベースアイテム情報の構造体 / Information about object &quot;kinds&quot;, including player knowledge.
Definition: types.h:105
store_type * store
Definition: types.h:1500
byte xtra2
Definition: types.h:534
s16b stat_max_max[6]
Definition: types.h:1008
char cur_dun[4]
Definition: types.h:1569
bool resist_elec
Definition: types.h:1226
s16b tsubureru
Definition: types.h:1057
char what[8]
Definition: types.h:1549
s16b m_idx
Definition: types.h:456
u32b flags7
Definition: types.h:321
char p_a[3]
Definition: types.h:1566
s16b energy_need
Definition: types.h:597
byte realm1
Definition: types.h:1357
u32b r_flags2
Definition: types.h:374
s32b wilderness_y
Definition: types.h:994
s16b r_adj[6]
Definition: types.h:835
s16b stream1
Definition: types.h:1598
s16b r_sights
Definition: types.h:353
byte f_m_ht
Definition: types.h:858
s32b align
Definition: types.h:1208
byte r_xtra1
Definition: types.h:363
cptr title
Definition: types.h:813
s16b o_idx
Definition: types.h:454
int spell_first
Definition: types.h:797
s16b stat_max_max[6]
Definition: types.h:1368
byte ident
Definition: types.h:549
s16b max_maxhp
Definition: types.h:591
s16b open
Definition: types.h:1695
#define MAX_LJ_DOORS
Definition: defines.h:1182
s16b resist_magic
Definition: types.h:1050
bool telepathy
Definition: types.h:1269
s16b x_thn
Definition: types.h:899
s32b au
Definition: types.h:978
s16b level
Definition: types.h:693
Definition: types.h:580
byte max_to_h
Definition: types.h:222
int min_lev
Definition: types.h:1408
s16b a_srh
Definition: types.h:924
Definition: types.h:512
byte mode
Definition: types.h:1606
s16b mimic
Definition: types.h:1672
u32b r_flagsr
Definition: types.h:380
u32b flagsr
Definition: types.h:324
char p_r[3]
Definition: types.h:1564
u32b flags2
Definition: types.h:316
s32b last_visit
Definition: types.h:754
s32b chp
Definition: types.h:998
byte d_attr[F_LIT_MAX]
デフォルトの地形シンボルカラー / Default feature attribute
Definition: types.h:87
bool migite
Definition: types.h:1316
s16b held_m_idx
Definition: types.h:564
byte r_xtra2
Definition: types.h:364
s16b stock_num
Definition: types.h:760
s16b a_thb
Definition: types.h:927
bool bless_blade
Definition: types.h:1284
byte aaf
Definition: types.h:306
s16b blessed
Definition: types.h:1033
u32b name
地形名参照のためのネームバッファオフセット値 / Name (offset)
Definition: types.h:71
s16b stat_top[6]
Definition: types.h:1203
char act_names[8][30]
Definition: types.h:1447
u32b name
Definition: types.h:393
s16b old_spells
Definition: types.h:1170
bool leaving
Definition: types.h:1155
s16b maxdepth
Definition: types.h:1602
#define MAX_FEAT_STATES
Definition: defines.h:961
s16b member_race[MAX_RACES]
Definition: types.h:1455
u32b text
アーティファクト解説(headerオフセット参照) / Text (offset)
Definition: types.h:170
cptr winner
Definition: types.h:814
bool heavy_spell
Definition: types.h:1291
byte min_plev
Definition: types.h:1603
s16b oppose_acid
Definition: types.h:1040
bool anti_tele
Definition: types.h:1250
byte min_level
Definition: types.h:1508
byte sval
ベースアイテム小項目ID / Artifact sub type
Definition: types.h:173
s16b vir_types[8]
Definition: types.h:1078
byte o_bit
Definition: types.h:674
s16b object_kind_idx
Definition: types.h:1167
cptr name
自動拾い/破壊定義の名称一致基準 / Items which have &#39;name&#39; as part of its name match
Definition: types.h:1641
byte locale[4]
ベースアイテムの生成階テーブル / Allocation level(s)
Definition: types.h:132
s16b stat_use[6]
Definition: types.h:1202
s16b tim_regen
Definition: types.h:1051
u32b gen_flags
アイテムフラグ / Artifact Flags
Definition: types.h:191
s16b chaos_patron
Definition: types.h:1371
s16b dun_level
Definition: types.h:1657
int spell_book
Definition: types.h:791
byte d_char
Definition: types.h:339
s16b blind
Definition: types.h:1018
u32b exp_frac
Definition: types.h:983
byte wid
Definition: types.h:401
s16b protevil
Definition: types.h:1027
s16b old_lite
Definition: types.h:1183
s16b ht
Definition: types.h:1361
s16b cut
Definition: types.h:1024
s16b today_mon
Definition: types.h:1141
s16b paralyzed
Definition: types.h:1019
s16b to_dd[2]
Definition: types.h:1296
char history[4][60]
Definition: types.h:1117
s16b target_y
Definition: types.h:608
int road
Definition: types.h:1484
int ds
Definition: types.h:1391
byte rarity
Definition: types.h:335
s16b floor_id
Definition: types.h:1655
Definition: types.h:910
u32b mflags8
Definition: types.h:1620
bool is_dead
Definition: types.h:1125
s16b ele_immune
Definition: types.h:1038
cptr title
Definition: types.h:830
char uid[8]
Definition: types.h:1561
s16b c_thb
Definition: types.h:891
u32b mflags1
Definition: types.h:1613
u32b curse_flags
Definition: types.h:560
s16b r_thn
Definition: types.h:843
s16b destroyed
一度*破壊*に巻き込まれたかどうかのフラグ / Default destroyed state
Definition: types.h:80
cptr name
Definition: types.h:1431
s16b skill_dev
Definition: types.h:1325
s16b c_dev
Definition: types.h:885
bool warning
Definition: types.h:1292
bool resist_time
Definition: types.h:1242
s16b south_east
Definition: types.h:1471
u32b flags8
Definition: types.h:322
u32b name
Definition: types.h:294
byte effect
Definition: types.h:254
Definition: types.h:1397
byte mflag
Definition: types.h:601
bool slow_digest
Definition: types.h:1283
u16b panic_save
Definition: types.h:1120
s16b south[MAX_WID]
Definition: types.h:1465
byte psex
Definition: types.h:1353
s16b special
Definition: types.h:1673
byte fy
Definition: types.h:586
Definition: types.h:391
Definition: types.h:1415
u32b flags[FF_FLAG_SIZE]
地形の基本特性ビット配列 / Flags
Definition: types.h:77
s16b slow
Definition: types.h:1017
s16b mimic
Definition: types.h:460
bool esp_nonliving
Definition: types.h:1280
s32b value
Definition: types.h:1722
byte iy
Definition: types.h:516
u32b flags[TR_FLAG_SIZE]
Definition: types.h:230
bool aware
ベースアイテムが鑑定済かどうか / The player is &quot;aware&quot; of the item&#39;s effects
Definition: types.h:148
bool resist_blind
Definition: types.h:1239
u32b visit_mark
Definition: types.h:1659
#define MAX_HGT
表示上のダンジョンの最大垂直サイズ(SCREEN_HGTの3倍が望ましい) Maximum dungeon height in grids, must be a multiple of SCREEN_H...
Definition: defines.h:119
bool tried
ベースアイテムを未鑑定のまま試したことがあるか / The player has &quot;tried&quot; one of the items
Definition: types.h:150
s16b oldpy
Definition: types.h:955
s16b r_pkills
Definition: types.h:356
bool cumber_armor
Definition: types.h:1185
byte psex
Definition: types.h:958
s16b s_start[10]
Definition: types.h:415
s16b tim_levitation
Definition: types.h:1054
byte min_inflate
Definition: types.h:722
byte d_attr
Definition: types.h:338
cptr owner_name
Definition: types.h:717
s16b sc
Definition: types.h:1363
bool resist_neth
Definition: types.h:1240
byte method
Definition: types.h:253
byte cur_num
Definition: types.h:348
byte rarity
Definition: types.h:220
#define F_LIT_MAX
Definition: defines.h:1222
#define FF_FLAG_SIZE
Definition: defines.h:1107
byte max_inflate
Definition: types.h:721
Definition: types.h:1587
s32b last_visit
Definition: types.h:1658
s32b old_race1
Definition: types.h:1134
char day[10]
Definition: types.h:1557
int dd
Definition: types.h:1390
byte mflag2
Definition: types.h:602
u16b reinforce_id[6]
Definition: types.h:327
byte r_drop_gold
Definition: types.h:366
u32b cursed
Definition: types.h:1259
bool resist_dark
Definition: types.h:1234
char how[40]
Definition: types.h:1573
bool resist_shard
Definition: types.h:1237
byte cur_num
レアリティ / Artifact rarity
Definition: types.h:196
byte no
Definition: types.h:931
u32b csp_frac
Definition: types.h:1003
byte freq_spell
Definition: types.h:313
char p_c[3]
Definition: types.h:1565
s16b index
Definition: types.h:635
u32b total_weight
Definition: types.h:1215
s16b tim_sh_fire
Definition: types.h:1063
byte exit_bldg
Definition: types.h:1157
s16b floor_id
Definition: types.h:350
u16b inscription
Definition: types.h:553
bool resist_cold
Definition: types.h:1228
s16b tim_res_nether
Definition: types.h:1059
byte x_attr[F_LIT_MAX]
設定変更後の地形シンボルカラー / Desired feature attribute
Definition: types.h:90
byte marked
Definition: types.h:551
s16b tim_sh_holy
Definition: types.h:1064
u16b total_winner
Definition: types.h:1119
cptr desc
Definition: types.h:1399
s16b ac
Definition: types.h:543
bool resist_chaos
Definition: types.h:1235
int tag
Definition: types.h:1521
bool lite
Definition: types.h:1263
bool old_icky_wield[2]
Definition: types.h:1178
byte ds
ダメージダイスの数と大きさ / Damage dice/sides
Definition: types.h:122
byte sval
Definition: types.h:520
#define MAX_WID
表示上のダンジョンの最大水平サイズ(SCREEN_WIDの3倍が望ましい) Maximum dungeon width in grids, must be a multiple of SCREEN_WI...
Definition: defines.h:125
s16b dis_ac
Definition: types.h:1304
s16b lightspeed
Definition: types.h:1056
s16b to_a
Definition: types.h:541
s32b other_costs[8]
Definition: types.h:1449
cptr flag
Definition: types.h:1719
byte magic_num2[108]
Definition: types.h:1106
s16b num_mon
Definition: types.h:700
byte d_attr
デフォルトのアイテムシンボルカラー / Default object attribute
Definition: types.h:138
s16b stream2
Definition: types.h:1599
bool free_act
Definition: types.h:1264
s16b run_py
Definition: types.h:1209
s16b maxhp
Definition: types.h:590
s16b oppose_elec
Definition: types.h:1041
byte slot
Definition: types.h:216
byte sub_align
Definition: types.h:584
s16b poisoned
Definition: types.h:1023
bool can_swim
Definition: types.h:1261
int(* inven_func)(object_type *)
Definition: types.h:1531
bool sutemi
Definition: types.h:1205
s16b health_who
Definition: types.h:1163
s16b c_mhp
Definition: types.h:902
bool old_heavy_shoot
Definition: types.h:1177
s16b hp
Definition: types.h:589
byte xtra1
Definition: types.h:533
s16b to_a
ACボーナス値 / Bonus to armor.
Definition: types.h:179
s16b north_west
Definition: types.h:1468
地形情報の構造体 / Information about terrain &quot;features&quot;
Definition: types.h:69
s16b hold_o_idx
Definition: types.h:606
byte ds
ダイス値 / Damage when hits
Definition: types.h:183
byte rarity
基本生成階 / Artifact level
Definition: types.h:194
s16b feat
Definition: types.h:1579
bool kill_wall
Definition: types.h:1288
Definition: types.h:875
Definition: types.h:1496
s16b pit
Definition: types.h:1604
cptr title
Definition: types.h:912
Definition: types.h:1462
s16b to_m_chance
Definition: types.h:1313
u32b name
アーティファクト名(headerオフセット参照) / Name (offset)
Definition: types.h:169
s16b parent_m_idx
Definition: types.h:617
Definition: types.h:1693
byte pclass
Definition: types.h:1355
int min_m_alloc_level
Definition: types.h:1608
byte rating
Definition: types.h:217
byte sex
Definition: types.h:932
byte prace
Definition: types.h:959
u32b mflags4
Definition: types.h:1616
s32b mexp
Definition: types.h:309
s16b num_jammed
Definition: types.h:1701
s16b next_r_idx
Definition: types.h:331
s16b skill_stl
Definition: types.h:1327
s16b learned_spells
Definition: types.h:1011
s16b c_adj[6]
Definition: types.h:882
s16b sleep
Definition: types.h:305
cptr o_text
Definition: types.h:676
int obj_great
Definition: types.h:1631
Definition: types.h:1668
byte flags
Definition: types.h:702
s16b stat_max[6]
Definition: types.h:1007
s16b weight
重量 / Weight
Definition: types.h:185
bool impact[2]
Definition: types.h:1286
s16b next_o_idx
Definition: types.h:562
byte level
Definition: types.h:334
u32b flavor_name
未確定名参照のためのネームバッファオフセット値 / Flavor name (offset)
Definition: types.h:109
Definition: types.h:715
s16b old_realm
Definition: types.h:1136
byte speed
Definition: types.h:307
byte oops
Definition: types.h:964
s16b dis_to_d[2]
Definition: types.h:1301
byte act_idx
Definition: types.h:234
int level
Definition: types.h:1425
u32b smart
Definition: types.h:615
int smana
Definition: types.h:1426
byte infra
Definition: types.h:862
int dice
Definition: types.h:1725
bool sh_cold
Definition: types.h:1247
s16b num_blow[2]
Definition: types.h:1335
byte r_cast_spell
Definition: types.h:369
s16b pval
Definition: types.h:522
#define MAX_RACES
Definition: defines.h:822
byte max_num
Definition: types.h:346
s16b north[MAX_WID]
Definition: types.h:1464
int effect
Definition: types.h:1392
s16b pval
ベースアイテムのpval(能力修正共通値) Object extra info
Definition: types.h:114
#define MAX_CLASS
職業の最大定義数 Maximum number of player &quot;class&quot; types (see &quot;table.c&quot;, etc)
Definition: defines.h:176
s16b r_idx
Definition: types.h:582
s32b store_open
Definition: types.h:752
bool see_inv
Definition: types.h:1265
s32b max_max_exp
Definition: types.h:980
byte numstores
Definition: types.h:1501
byte extra
その他色々のビットフラグ配列 / Something
Definition: types.h:136
s16b to_h
命中ボーナス値 / Bonus to hit
Definition: types.h:177
bool old_monlite
Definition: types.h:1181
bool old_riding_wield[2]
Definition: types.h:1179
s16b kabenuke
Definition: types.h:1052
s16b ele_attack
Definition: types.h:1037
unsigned short u16b
Definition: h-type.h:93
byte tval
ベースアイテム種別の大項目値 Object type
Definition: types.h:111
int fail
Definition: types.h:1410
bool mighty_throw
Definition: types.h:1293
byte max_to_a
Definition: types.h:224
s16b stat_add[6]
Definition: types.h:1217
u32b update
Definition: types.h:1198
bool sh_fire
Definition: types.h:1245
byte pet_upkeep_div
Definition: types.h:905
char cur_lev[4]
Definition: types.h:1568
Definition: types.h:740
byte x_char
設定変更後のアイテムシンボルアルファベット / Desired object character
Definition: types.h:142
int final_artifact
Definition: types.h:1626
u16b art_name
Definition: types.h:554
bool anti_magic
Definition: types.h:1249
s16b pval
pval修正値 / Artifact extra info
Definition: types.h:175
s16b actions[8]
Definition: types.h:1451
Definition: types.h:1385
s16b skill_fos
Definition: types.h:1329
int fail
Definition: types.h:1427
s16b cur_num
Definition: types.h:696
s16b feat
Definition: types.h:1671
s32b au
Definition: types.h:1365
u16b occurrence
Definition: types.h:1674
s16b tsuyoshi
Definition: types.h:1036
s16b ht
Definition: types.h:973
s16b pet_follow_distance
Definition: types.h:1138
signed long s32b
Definition: h-type.h:101
s16b mane_num
Definition: types.h:1110
byte r_exp
Definition: types.h:847
s16b closed
Definition: types.h:1697
s16b r_fos
Definition: types.h:842
int mana_cost
Definition: types.h:1409
bool xtra_might
Definition: types.h:1285
Definition: types.h:1406
char name[20]
Definition: types.h:1443
Definition: types.h:1730
char pts[10]
Definition: types.h:1551
feature_state state[MAX_FEAT_STATES]
feature_state テーブル
Definition: types.h:82
byte special_div
Definition: types.h:1629
s16b mane_dam[MAX_MANE]
Definition: types.h:1109
mind_type info[MAX_MIND_POWERS]
Definition: types.h:1417
s16b riding
Definition: types.h:1129
s16b insult_cur
Definition: types.h:747
s16b action_restr[8]
Definition: types.h:1452
bool resist_nexus
Definition: types.h:1238
bool old_heavy_wield[2]
Definition: types.h:1176
bool wizard
Definition: types.h:1127
s32b magic_num1[108]
Definition: types.h:1105
s32b old_race2
Definition: types.h:1135
s16b max_num
Definition: types.h:697
s16b member_realm[MAX_MAGIC+1]
Definition: types.h:1456
bool sustain_chr
Definition: types.h:1257
int index
Definition: types.h:1522
byte level
Definition: types.h:1721
feat_prob floor[DUNGEON_FEAT_PROB_NUM]
Definition: types.h:1594
Definition: types.h:1519
s16b weight
Definition: types.h:528
u32b r_flags4
Definition: types.h:376
s16b x_srh
Definition: types.h:897
bool resist_pois
Definition: types.h:1229
Definition: types.h:633
Definition: types.h:1653
bool dec_mana
Definition: types.h:1289
byte x_attr
Definition: types.h:342
bool old_riding_ryoute
Definition: types.h:1180
u32b flags[TR_FLAG_SIZE]
ベースアイテムの基本特性ビット配列 / Flags
Definition: types.h:128
s16b * table
Definition: types.h:758
s16b to_a
ベースアイテムのAC修正値 / Bonus to armor
Definition: types.h:118
byte name2
Definition: types.h:531
bool sh_elec
Definition: types.h:1246
s16b alter_reality
Definition: types.h:1081
u32b text
Definition: types.h:394
s16b max_cost
Definition: types.h:719
s16b tim_stealth
Definition: types.h:1053
byte hdice
Definition: types.h:300
u32b mflags7
Definition: types.h:1619
s16b stat_max[6]
Definition: types.h:1367
s32b max_exp
Definition: types.h:981
s16b ac
上書きベースAC値 / Base armor
Definition: types.h:181
bool ryoute
Definition: types.h:1315
s16b status
Definition: types.h:688
Definition: types.h:1441
s16b vir_types[8]
Definition: types.h:1373
s16b table_num
Definition: types.h:756
bool immune_cold
Definition: types.h:1223
int manefail
Definition: types.h:1429
byte start_race
Definition: types.h:1133
u32b flags1
Definition: types.h:1611
s16b r_akills
Definition: types.h:357
int max_m_alloc_chance
Definition: types.h:1609
int obj_good
Definition: types.h:1632
byte recall_dungeon
Definition: types.h:1082
bool immune_elec
Definition: types.h:1221
s16b c_fos
Definition: types.h:889
bool leaving_dungeon
Definition: types.h:1159
Definition: types.h:1547
s16b cur_lite
Definition: types.h:1194
bool pass_wall
Definition: types.h:1287
byte mspeed
Definition: types.h:596
Definition: types.h:1577
u32b dealt_damage
Definition: types.h:592
byte y
Definition: types.h:476
byte dist
Definition: types.h:463
s16b a_dev
Definition: types.h:921
byte sfail
Definition: types.h:776
s16b c_stl
Definition: types.h:887
s16b to_a
Definition: types.h:1311
s16b tag
地形特性タグ参照のためのネームバッファオフセット値 / Tag (offset)
Definition: types.h:73
bool no_flowed
Definition: types.h:1318
s16b stun
Definition: types.h:1025
byte hside
Definition: types.h:301
s16b mindepth
Definition: types.h:1601
s16b dis_to_h_b
Definition: types.h:1300
byte pseikaku
Definition: types.h:1356
byte r_wake
Definition: types.h:360
s16b east[MAX_HGT]
Definition: types.h:1466
s16b enchant_energy_need
Definition: types.h:1085
byte cdis
Definition: types.h:599
s16b a_adj[6]
Definition: types.h:918
s16b special
Definition: types.h:458
s16b to_h
Definition: types.h:539
char who[16]
Definition: types.h:1559
s16b oppose_fire
Definition: types.h:1042
u32b flags9
Definition: types.h:323
s16b max_plv
Definition: types.h:1005
byte d_dice
Definition: types.h:255
s16b south_west
Definition: types.h:1470
bool ml
Definition: types.h:604
u32b chp_frac
Definition: types.h:999
bool see_nocto
Definition: types.h:1294
bool heavy_shoot
Definition: types.h:1188
cptr name
Definition: types.h:1411
u32b spell_learned2
Definition: types.h:1094
bool icky_wield[2]
Definition: types.h:1189
int spell_stat
Definition: types.h:794
s16b skill_dig
Definition: types.h:1333
s16b xtra4
Definition: types.h:536
Definition: types.h:1351
s16b r_dev
Definition: types.h:838
byte o_norm
Definition: types.h:669
s16b r_deaths
Definition: types.h:354
bool inside_arena
Definition: types.h:989
cptr name
Definition: types.h:1511
s32b cost
Definition: types.h:228
bool monlite
Definition: types.h:1192
s16b dis_to_a
Definition: types.h:1302
s32b feeling_turn
Definition: types.h:1149
cptr o_desc
Definition: types.h:677
int constant
Definition: types.h:1724
cptr last_message
Definition: types.h:1116
byte xtra3
Definition: types.h:535
s16b shield
Definition: types.h:1032
u32b r_flags3
Definition: types.h:375
s16b to_d
Definition: types.h:540
s16b tim_eyeeye
Definition: types.h:1065
byte savefile_id
Definition: types.h:1656
byte f_b_wt
Definition: types.h:859
int spell_weight
Definition: types.h:798
s16b floor_id
(未使用)最大生成数 / Unused (should be &quot;1&quot;)
Definition: types.h:199
s16b skill_srh
Definition: types.h:1328
byte action
Definition: types.h:1091
s16b c_srh
Definition: types.h:888
u32b r_flags6
Definition: types.h:378
byte r_blows[4]
Definition: types.h:371
char gold[10]
Definition: types.h:1553
s16b player_hp[PY_MAX_LEVEL]
Definition: types.h:1369
s16b a_sav
Definition: types.h:922
u32b name
ベースアイテム名参照のためのネームバッファオフセット値 / Name (offset)
Definition: types.h:107
u32b muta3
Definition: types.h:1075
bool esp_human
Definition: types.h:1277
byte x_char[F_LIT_MAX]
設定変更後の地形シンボルアルファベット / Desired feature character
Definition: types.h:91
Definition: types.h:211
bool riding_wield[2]
Definition: types.h:1190
byte max_pval
Definition: types.h:226
u32b flags6
Definition: types.h:320
byte prob1
Definition: types.h:638
Definition: types.h:1506
byte dd
Definition: types.h:183
s16b r_thb
Definition: types.h:844
cptr desc
Definition: types.h:1387
s16b target_x
Definition: types.h:609
bool esp_animal
Definition: types.h:1270
bool teleport_town
Definition: types.h:1160
bool esp_demon
Definition: types.h:1272
s16b dis_to_h[2]
Definition: types.h:1299
bool heavy_wield[2]
Definition: types.h:1187
u16b expfact
Definition: types.h:967
int tunnel_percent
Definition: types.h:1630
s16b r_sav
Definition: types.h:839
bool esp_dragon
Definition: types.h:1276
s32b msp
Definition: types.h:1001
int final_object
Definition: types.h:1625
s16b to_ds[2]
Definition: types.h:1297
byte f_m_wt
Definition: types.h:860
byte owner_race
Definition: types.h:728
u32b mflagsr
Definition: types.h:1622
bool autopick_autoregister
Definition: types.h:1146
byte realm2
Definition: types.h:1358
byte prob2
Definition: types.h:639
u32b comptime
Definition: types.h:706
s16b shero
Definition: types.h:1031
s16b west[MAX_HGT]
Definition: types.h:1467
s16b oppose_cold
Definition: types.h:1043
bool resist_disen
Definition: types.h:1236
byte act_idx
発動能力のID / Activative ability index
Definition: types.h:152
s16b x_thb
Definition: types.h:900
s16b a_thn
Definition: types.h:926
cptr title
Definition: types.h:877
bool sustain_wis
Definition: types.h:1254
cptr name
Definition: types.h:1733
char name[60]
Definition: types.h:692
byte ix
Definition: types.h:517
s16b skill_dis
Definition: types.h:1324
s16b to_h_m
Definition: types.h:1308
u16b reinforce_ds[6]
Definition: types.h:329
s16b extra
Definition: types.h:311
unsigned long u32b
Definition: h-type.h:102
byte discount
Definition: types.h:524
byte max_num
現在の生成数 / Number created (0 or 1)
Definition: types.h:197
s16b member_class[MAX_CLASS]
Definition: types.h:1454
byte tval
モンスター打倒後に得られるアイテムの大カテゴリID / tval of prize (0 means no prize)
Definition: types.h:1685
Definition: types.h:772
s16b add_spells
Definition: types.h:1012
bool riding_ryoute
Definition: types.h:1191
s16b result
Definition: types.h:58
s16b to_d[2]
Definition: types.h:1309
s16b weight
ベースアイテムの重量 / Weight
Definition: types.h:124
char letters[8]
Definition: types.h:1450
s16b new_spells
Definition: types.h:1169
s16b mtimed[MAX_MTIMED]
Definition: types.h:594
bool reflect
Definition: types.h:1244
int chance
Definition: types.h:1389
s16b table_size
Definition: types.h:757
bool immune_fire
Definition: types.h:1222
s16b afraid
Definition: types.h:1021
bool sustain_con
Definition: types.h:1256
Definition: types.h:55
byte o_page
Definition: types.h:671
byte haggle_per
Definition: types.h:724
object_type * stock
Definition: types.h:762
char bool
bool型をcharとして定義 / Note that a bool is smaller than a full &quot;int&quot; / Simple True/False type ...
Definition: h-type.h:77
bool resist_acid
Definition: types.h:1225
s16b a_stl
Definition: types.h:923
s16b to_h[2]
Definition: types.h:1306
cptr desc
Definition: types.h:1727
s16b virtues[8]
Definition: types.h:1077
s16b image
Definition: types.h:1022
s16b c_thn
Definition: types.h:890
自動拾い/破壊設定データの構造体 / A structure type for entry of auto-picker/destroyer
Definition: types.h:1640
byte m_b_ht
Definition: types.h:852
byte m_b_wt
Definition: types.h:854
u32b gen_flags
Definition: types.h:232
char name[32]
Definition: types.h:1498
s16b r_tkills
Definition: types.h:358
s16b xtra5
Definition: types.h:537
byte prob3
Definition: types.h:640
bool easy_spell
Definition: types.h:1290
u16b info
Definition: types.h:450
s16b num_fire
Definition: types.h:1336
Definition: types.h:1718
u32b mflags6
Definition: types.h:1618
固定アーティファクト情報の構造体 / Artifact structure.
Definition: types.h:167
byte type
Definition: types.h:742
bool resist_fear
Definition: types.h:1241
s16b tim_esp
Definition: types.h:1047
byte knowledge
Definition: types.h:1130
int type
Definition: types.h:1732
s16b upper_floor_id
Definition: types.h:1660
s16b to_h
ベースアイテムの命中修正値 / Bonus to hit
Definition: types.h:116
u16b noscore
Definition: types.h:1122
u32b special_attack
Definition: types.h:1089
u32b flags4
Definition: types.h:318
byte r_drop_item
Definition: types.h:367
s32b wilderness_x
Definition: types.h:993
byte percent
Definition: types.h:1580
u32b mflags3
Definition: types.h:1615
u32b flags3
Definition: types.h:317
byte chance[4]
ベースアイテムの生成確率テーブル / Allocation chance(s)
Definition: types.h:133
byte entrance
Definition: types.h:1487
s16b run_px
Definition: types.h:1210
int use_stat
Definition: types.h:1430
cptr info
Definition: types.h:1401
#define MAX_MAGIC
Definition: defines.h:685
u16b nickname
Definition: types.h:611
Definition: types.h:953
s16b x_dis
Definition: types.h:893
s16b level
Definition: types.h:1486
u32b text
解説テキスト参照のためのネームバッファオフセット値 / Text (offset)
Definition: types.h:108
byte name1
Definition: types.h:530
bool old_cumber_armor
Definition: types.h:1174
u32b flags5
Definition: types.h:319
char owner_race[20]
Definition: types.h:1445
int town
Definition: types.h:1483
s16b wraith_form
Definition: types.h:1048
bool hold_exp
Definition: types.h:1267
s16b ap_r_idx
Definition: types.h:583
byte level
Definition: types.h:219
u32b mflags9
Definition: types.h:1621
s16b wt
Definition: types.h:974
byte rat
Definition: types.h:398
#define PY_MAX_LEVEL
Definition: defines.h:629
u32b mflags5
Definition: types.h:1617
s16b wt
Definition: types.h:1362
s16b stock_size
Definition: types.h:761
char died_from[80]
Definition: types.h:1115
byte prace
Definition: types.h:1354
s16b skill_thb
Definition: types.h:1331
byte smana
Definition: types.h:775
bool playing
Definition: types.h:1154
s16b flavor
調査中(TODO) / Special object flavor (or zero)
Definition: types.h:144
byte pspeed
Definition: types.h:1342
byte tval
ベースアイテム大項目ID / Artifact type
Definition: types.h:172
s16b oldpx
Definition: types.h:956
bool sustain_dex
Definition: types.h:1255
s16b r_stl
Definition: types.h:840
signed short s16b
Definition: h-type.h:92
u32b choice
Definition: types.h:864
byte m_m_ht
Definition: types.h:853
u32b muta2
Definition: types.h:1074
s16b x_dev
Definition: types.h:894
bool regenerate
Definition: types.h:1266
byte insult_max
Definition: types.h:726
byte mimic_form
Definition: types.h:1061
bool wait_report_score
Definition: types.h:1124
s16b a_fos
Definition: types.h:925
bool wild_mode
Definition: types.h:995
byte hgt
Definition: types.h:400
s16b player_hp[PY_MAX_LEVEL]
Definition: types.h:1114
s16b num_locked
Definition: types.h:1699
byte tval_ammo
Definition: types.h:1340
s16b age
Definition: types.h:972
u32b text
Definition: types.h:1589
bool esp_troll
Definition: types.h:1274
s16b oppose_pois
Definition: types.h:1044
u32b count
Definition: types.h:1014
bool resist_sound
Definition: types.h:1232
byte dd
Definition: types.h:122
s16b floor_id
Definition: types.h:1144
s16b to_h_b
Definition: types.h:1307
Definition: types.h:474
bool esp_unique
Definition: types.h:1281
Definition: types.h:262
byte d_char[F_LIT_MAX]
デフォルトの地形シンボルアルファベット / Default feature character
Definition: types.h:88
s16b hero
Definition: types.h:1030
s16b to_d
ダメージボーナス値 / Bonus to damage
Definition: types.h:178
s16b type
Definition: types.h:690
u32b seed
Definition: types.h:1499
s32b member_costs[8]
Definition: types.h:1448
byte act_idx
アイテムを落としたフロアのID / Leaved on this location last time
Definition: types.h:201
u32b special_defense
Definition: types.h:1090
u32b text
Definition: types.h:298
s16b to_d
ベースアイテムのダメージ修正値 / Bonus to damage
Definition: types.h:117
s16b mimic
未確定時の外形地形ID / Feature to mimic
Definition: types.h:75
u32b spell_worked2
Definition: types.h:1096
u32b exp
Definition: types.h:613
u16b info
Definition: types.h:1670
s16b old_food_aux
Definition: types.h:1172
byte owner
Definition: types.h:744
u32b gen_flags
ベースアイテムの生成特性ビット配列 / flags for generate
Definition: types.h:130
bool esp_giant
Definition: types.h:1275
u32b redraw
Definition: types.h:1199
u32b r_flags1
Definition: types.h:373
u32b spell_worked1
Definition: types.h:1095
byte tval_xtra
Definition: types.h:1338
char max_lev[4]
Definition: types.h:1570
byte subtype
副特性値
Definition: types.h:84
feat_prob fill[DUNGEON_FEAT_PROB_NUM]
Definition: types.h:1595
Definition: types.h:686
s16b x_fos
Definition: types.h:898
u32b notice
Definition: types.h:1197
s16b c_exp
Definition: types.h:903
s16b magicdef
Definition: types.h:1058
s16b ac
Definition: types.h:1320
s16b food
Definition: types.h:1087
s32b cost
基本価格 / Artifact &quot;cost&quot;
Definition: types.h:187
bool easy_know
ベースアイテムが初期からベース名を判断可能かどうか / This object is always known (if aware)
Definition: types.h:146
s16b word_recall
Definition: types.h:1080
s16b s_max[10]
Definition: types.h:416
bool inside_battle
Definition: types.h:991
u16b priority
縮小表示で省略する際の表示優先度 / Map priority
Definition: types.h:79
byte max_level
Definition: types.h:1509
s16b good_buy
Definition: types.h:749
u32b name
Definition: types.h:1588
byte ds
Definition: types.h:545
char owner_name[20]
Definition: types.h:1444
byte typ
Definition: types.h:396
s16b k_idx
Definition: types.h:514
s16b chaos_patron
Definition: types.h:1072
byte dy
Definition: types.h:1591
byte index
Definition: types.h:1720
byte feeling
Definition: types.h:556
byte realm2
Definition: types.h:963
byte when
Definition: types.h:464
byte feeling
Definition: types.h:1148
s16b to_d_m
Definition: types.h:1310
s16b stat_cur[6]
Definition: types.h:1009
magic_type info[MAX_MAGIC][32]
Definition: types.h:800
int min_level
Definition: types.h:1400
byte fx
Definition: types.h:587
#define MAX_MIND_POWERS
超能力の数 / Mindcraft
Definition: defines.h:334
s16b monster_race_idx
Definition: types.h:1165
byte action
Definition: types.h:57
int terrain
Definition: types.h:1482
u32b flags[TR_FLAG_SIZE]
Definition: types.h:189
u32b name
Definition: types.h:213
Definition: types.h:448
s16b w_max[5][64]
Definition: types.h:414
s16b skill_sav
Definition: types.h:1326
byte x_char
Definition: types.h:343
s16b see_infra
Definition: types.h:1322
byte m_m_wt
Definition: types.h:855
s32b exp
Definition: types.h:982
byte d_char
デフォルトのアイテムシンボルアルファベット / Default object character
Definition: types.h:139
bool enter_dungeon
Definition: types.h:1161
u32b art_flags[TR_FLAG_SIZE]
Definition: types.h:558
s16b lower_floor_id
Definition: types.h:1661
u32b flags1
Definition: types.h:315
s16b stat_ind[6]
Definition: types.h:1218
int final_guardian
Definition: types.h:1627
byte b_age
Definition: types.h:849
byte level
アイテム生成フラグ / flags for generate
Definition: types.h:193
Definition: types.h:1480
s16b spell_exp[64]
Definition: types.h:1101
byte slevel
Definition: types.h:774
byte r_mhp
Definition: types.h:846
unsigned char byte
byte型をunsighned charとして定義 / Note that unsigned values can cause math problems / An unsigned byte of m...
Definition: h-type.h:76
s16b ac
ベースアイテムのAC基本値 / Base armor
Definition: types.h:120
s16b mane_spell[MAX_MANE]
Definition: types.h:1108
byte d_side
Definition: types.h:256
u32b mflags2
Definition: types.h:1614
Definition: types.h:811
Definition: types.h:665
byte x
Definition: types.h:477
byte spell_order[64]
Definition: types.h:1099
s16b dustrobe
Definition: types.h:1070
s16b nest
Definition: types.h:1605
Definition: types.h:1423
s16b c_sav
Definition: types.h:886
s16b lev
Definition: types.h:985
byte power
地形強度
Definition: types.h:85
char sex[2]
Definition: types.h:1563
byte sval
ベースアイテム種別の小項目値 Object sub type
Definition: types.h:112
Definition: types.h:251
s16b x_sav
Definition: types.h:895
int explode_type
Definition: types.h:265
bool sustain_int
Definition: types.h:1253
bool dtrap
Definition: types.h:1143
u32b text
Definition: types.h:214
s16b skill_exp[10]
Definition: types.h:1103
byte hitdie
Definition: types.h:966
u32b spell_learned1
Definition: types.h:1093
Definition: types.h:789
s16b concent
Definition: types.h:1112
bool hidarite
Definition: types.h:1317
bool resist_conf
Definition: types.h:1231
s16b x_stl
Definition: types.h:896
u32b r_flags5
Definition: types.h:377
s16b invuln
Definition: types.h:1028
bool resist_lite
Definition: types.h:1233
bool * o_var
Definition: types.h:667
s16b broken
Definition: types.h:1696
bool quick_ok
Definition: types.h:1377
byte f_b_ht
Definition: types.h:857
s16b ac
Definition: types.h:303
char r_char[5]
Definition: types.h:1624