OSDN Git Service

[Refactor] #37353 CHECK_MULTISHADOW() と take_hit() を player-damage.c/h へ移動.
[hengband/hengband.git] / src / player-race.h
1 #pragma once
2
3 #define PRACE_IS_(A) (!p_ptr->mimic_form && (p_ptr->prace == A))
4
5 /*
6  * Player race constants (hard-coded by save-files, arrays, etc)
7  */
8 #define RACE_HUMAN               0
9 #define RACE_HALF_ELF            1
10 #define RACE_ELF                 2
11 #define RACE_HOBBIT              3
12 #define RACE_GNOME               4
13 #define RACE_DWARF               5
14 #define RACE_HALF_ORC            6
15 #define RACE_HALF_TROLL          7
16 #define RACE_AMBERITE            8
17 #define RACE_HIGH_ELF            9
18 #define RACE_BARBARIAN          10
19 #define RACE_HALF_OGRE          11
20 #define RACE_HALF_GIANT         12
21 #define RACE_HALF_TITAN         13
22 #define RACE_CYCLOPS            14
23 #define RACE_YEEK               15
24 #define RACE_KLACKON            16
25 #define RACE_KOBOLD             17
26 #define RACE_NIBELUNG           18
27 #define RACE_DARK_ELF           19
28 #define RACE_DRACONIAN          20
29 #define RACE_MIND_FLAYER        21
30 #define RACE_IMP                22
31 #define RACE_GOLEM              23
32 #define RACE_SKELETON           24
33 #define RACE_ZOMBIE             25
34 #define RACE_VAMPIRE            26
35 #define RACE_SPECTRE            27
36 #define RACE_SPRITE             28
37 #define RACE_BEASTMAN           29
38 #define RACE_ENT                30
39 #define RACE_ANGEL              31
40 #define RACE_DEMON              32
41 #define RACE_DUNADAN            33
42 #define RACE_S_FAIRY            34
43 #define RACE_KUTAR              35
44 #define RACE_ANDROID            36
45 #define RACE_MERFOLK            37
46
47  /*
48   * Maximum number of player "race" types (see "table.c", etc)
49   */
50 #define MAX_RACES               38
51
52
53 /*
54  * Constant for kinds of mimic
55  */
56 #define MIMIC_NONE       0
57 #define MIMIC_DEMON      1
58 #define MIMIC_DEMON_LORD 2
59 #define MIMIC_VAMPIRE    3
60
61 #define MIMIC_FLAGS choice
62 #define MIMIC_IS_NONLIVING 0x00000001
63 #define MIMIC_IS_DEMON     0x00000002
64 #define MIMIC_IS_UNDEAD    0x00000004
65
66 /*
67  * Player racial info
68  */
69
70 typedef struct player_race player_race;
71
72 struct player_race
73 {
74         concptr title;                  /* Type of race */
75
76 #ifdef JP
77         concptr E_title;                /* 英語種族 */
78 #endif
79         s16b r_adj[6];          /* Racial stat bonuses */
80
81         s16b r_dis;                     /* disarming */
82         s16b r_dev;                     /* magic devices */
83         s16b r_sav;                     /* saving throw */
84         s16b r_stl;                     /* stealth */
85         s16b r_srh;                     /* search ability */
86         s16b r_fos;                     /* search frequency */
87         s16b r_thn;                     /* combat (normal) */
88         s16b r_thb;                     /* combat (shooting) */
89
90         byte r_mhp;                     /* Race hit-dice modifier */
91         byte r_exp;                     /* Race experience factor */
92
93         byte b_age;                     /* base age */
94         byte m_age;                     /* mod age */
95
96         byte m_b_ht;            /* base height (males) */
97         byte m_m_ht;            /* mod height (males) */
98         byte m_b_wt;            /* base weight (males) */
99         byte m_m_wt;            /* mod weight (males) */
100
101         byte f_b_ht;            /* base height (females) */
102         byte f_m_ht;            /* mod height (females)   */
103         byte f_b_wt;            /* base weight (females) */
104         byte f_m_wt;            /* mod weight (females) */
105
106         byte infra;                     /* Infra-vision range */
107
108         u32b choice;        /* Legal class choices */
109 /*    byte choice_xtra;   */
110 };
111
112 extern const player_race *rp_ptr;
113
114 extern const player_race race_info[MAX_RACES];
115 extern const player_race mimic_info[];
116
117 SYMBOL_CODE get_summon_symbol_from_player(player_type *p_ptr);