OSDN Git Service

33002d80a79b02ce54bf1099074dfe3675b1560d
[hengband/hengband.git] / src / defines.h
1 #pragma once
2
3 /*!
4  *  @file defines.h
5  *  @brief 主要なマクロ定義ヘッダ / Purpose: global constants and macro definitions
6  *  @date 2014/01/02
7  *  @author
8  * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke\n
9  *\n
10  * This software may be copied and distributed for educational, research,\n
11  * and not for profit purposes provided that this copyright and statement\n
12  * are included in all such copies.  Other copyrights may also apply.\n
13  *  @details
14  * Do not edit this file unless you know *exactly* what you are doing.\n
15  *\n
16  * Some of the values in this file were chosen to preserve game balance,\n
17  * while others are hard-coded based on the format of old save-files, the\n
18  * definition of arrays in various places, mathematical properties, fast\n
19  * computation, storage limits, or the format of external text files.\n
20  *\n
21  * Changing some of these values will induce crashes or memory errors or\n
22  * savefile mis-reads.  Most of the comments in this file are meant as\n
23  * reminders, not complete descriptions, and even a complete knowledge\n
24  * of the source may not be sufficient to fully understand the effects\n
25  * of changing certain definitions.\n
26  *\n
27  * Lastly, note that the code does not always use the symbolic constants\n
28  * below, and sometimes uses various hard-coded values that may not even\n
29  * be defined in this file, but which may be related to definitions here.\n
30  * This is of course bad programming practice, but nobody is perfect...\n
31  *\n
32  * For example, there are MANY things that depend on the screen being\n
33  * 80x24, with the top line used for messages, the bottom line being\n
34  * used for status, and exactly 22 lines used to show the dungeon.\n
35  * Just because your screen can hold 46 lines does not mean that the\n
36  * game will work if you try to use 44 lines to show the dungeon.\n
37  *\n
38  * You have been warned.\n
39  */
40
41 /*!
42  * @brief マクロ登録の最大数 / Maximum number of macros (see "io.c")
43  * @note Default: assume at most 256 macros are used
44  */
45 #define MACRO_MAX       256
46
47 /*!
48  * @brief 銘情報の最大数 / Maximum number of "quarks" (see "io.c")
49  * @note 
50  * Default: assume at most 512 different inscriptions are used<br>
51  * Was 512... 256 quarks added for random artifacts<br>
52  */
53 #define QUARK_MAX       768
54
55 /*
56  * OPTION: Maximum number of messages to remember (see "io.c")
57  * Default: assume maximal memorization of 2048 total messages
58  */
59 #define MESSAGE_MAX  81920
60
61 /*
62  * OPTION: Maximum space for the message text buffer (see "io.c")
63  * Default: assume that each of the 2048 messages is repeated an
64  * average of three times, and has an average length of 48
65  */
66 #define MESSAGE_BUF 655360
67
68
69 /*** Screen Locations ***/
70
71 /*
72  * Is the monster seen by the player?
73  */
74 #define is_seen(A) \
75         ((bool)((A)->ml && (!ignore_unview || p_ptr->inside_battle || \
76          (player_can_see_bold((A)->fy, (A)->fx) && projectable(p_ptr->y, p_ptr->x, (A)->fy, (A)->fx)))))
77
78
79 /* Maximum "Nazguls" number */
80 #define MAX_NAZGUL_NUM 5
81
82 /*
83   Language selection macro
84 */
85 #ifdef JP
86 #define _(JAPANESE,ENGLISH) (JAPANESE)
87 #else
88 #define _(JAPANESE,ENGLISH) (ENGLISH)
89 #endif