OSDN Git Service

3bcafe71f98d8d9f5fef8a777560bd209ac9f2a2
[hengband/hengband.git] / src / player-race.h
1 #pragma once
2
3 #define PRACE_IS_(C, A) (!(C)->mimic_form && ((C)->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  * Constant for kinds of mimic
49  */
50 #define MIMIC_NONE       0
51 #define MIMIC_DEMON      1
52 #define MIMIC_DEMON_LORD 2
53 #define MIMIC_VAMPIRE    3
54
55 #define MIMIC_FLAGS choice
56 #define MIMIC_IS_NONLIVING 0x00000001
57 #define MIMIC_IS_DEMON     0x00000002
58 #define MIMIC_IS_UNDEAD    0x00000004
59
60 /*
61  * Player racial info
62  */
63
64 typedef struct player_race player_race;
65
66 struct player_race
67 {
68         concptr title;                  /* Type of race */
69
70 #ifdef JP
71         concptr E_title;                /* 英語種族 */
72 #endif
73         s16b r_adj[6];          /* Racial stat bonuses */
74
75         s16b r_dis;                     /* disarming */
76         s16b r_dev;                     /* magic devices */
77         s16b r_sav;                     /* saving throw */
78         s16b r_stl;                     /* stealth */
79         s16b r_srh;                     /* search ability */
80         s16b r_fos;                     /* search frequency */
81         s16b r_thn;                     /* combat (normal) */
82         s16b r_thb;                     /* combat (shooting) */
83
84         byte r_mhp;                     /* Race hit-dice modifier */
85         byte r_exp;                     /* Race experience factor */
86
87         byte b_age;                     /* base age */
88         byte m_age;                     /* mod age */
89
90         byte m_b_ht;            /* base height (males) */
91         byte m_m_ht;            /* mod height (males) */
92         byte m_b_wt;            /* base weight (males) */
93         byte m_m_wt;            /* mod weight (males) */
94
95         byte f_b_ht;            /* base height (females) */
96         byte f_m_ht;            /* mod height (females)   */
97         byte f_b_wt;            /* base weight (females) */
98         byte f_m_wt;            /* mod weight (females) */
99
100         byte infra;                     /* Infra-vision range */
101
102         u32b choice;        /* Legal class choices */
103 /*    byte choice_xtra;   */
104 };
105
106 extern const player_race *rp_ptr;
107
108 SYMBOL_CODE get_summon_symbol_from_player(player_type *p_ptr);