OSDN Git Service

[Refactor] #1489 Moved is_specific_player_race() from global to PlayerRace and rename...
[hengbandforosx/hengbandosx.git] / src / player / player-class.h
1 #pragma once
2
3 /* 人畜無害なenumヘッダを先に読み込む */
4 #include "system/angband.h"
5
6 #include "object/tval-types.h"
7 #include "player/player-class-types.h"
8 #include "realm/realm-types.h"
9 #include "spell/technic-info-table.h"
10
11 #include <string>
12 #include <vector>
13
14 /** m_info.txtでMPの無い職業に設定される */
15 #define SPELL_FIRST_NO_SPELL 99
16
17 /*
18  * Information about the player's "magic"
19  *
20  * Note that a player with a "spell_book" of "zero" is illiterate.
21  */
22
23 typedef struct player_magic {
24     tval_type spell_book{}; /* Tval of spell books (if any) */
25     BIT_FLAGS8 spell_xtra{}; /* Something for later */
26
27     int spell_stat{}; /* Stat for spells (if any)  */
28     int spell_type{}; /* Spell type (mage/priest) */
29
30     int spell_first{}; /* Level of first spell */
31     int spell_weight{}; /* Weight that hurts spells */
32
33     magic_type info[MAX_MAGIC][32]{}; /* The available spells */
34 } player_magic;
35
36 extern std::vector<player_magic> m_info;
37 extern const player_magic *mp_ptr;
38
39 /*
40  * Player class info
41  */
42
43 typedef struct player_class player_class;
44
45 struct player_class
46 {
47         concptr title;                  /* Type of class */
48
49 #ifdef JP
50         concptr E_title;                /* 英語職業 */
51 #endif
52         int16_t c_adj[6];               /* Class stat modifier */
53
54         int16_t c_dis;                  /* class disarming */
55         int16_t c_dev;                  /* class magic devices */
56         int16_t c_sav;                  /* class saving throws */
57         int16_t c_stl;                  /* class stealth */
58         int16_t c_srh;                  /* class searching ability */
59         int16_t c_fos;                  /* class searching frequency */
60         int16_t c_thn;                  /* class to hit (normal) */
61         int16_t c_thb;                  /* class to hit (bows) */
62
63         int16_t x_dis;                  /* extra disarming */
64         int16_t x_dev;                  /* extra magic devices */
65         int16_t x_sav;                  /* extra saving throws */
66         int16_t x_stl;                  /* extra stealth */
67         int16_t x_srh;                  /* extra searching ability */
68         int16_t x_fos;                  /* extra searching frequency */
69         int16_t x_thn;                  /* extra to hit (normal) */
70         int16_t x_thb;                  /* extra to hit (bows) */
71
72         int16_t c_mhp;                  /* Class hit-dice adjustment */
73         int16_t c_exp;                  /* Class experience factor */
74
75         byte pet_upkeep_div; /* Pet upkeep divider */
76
77     int num;
78     int wgt;
79     int mul;
80 };
81
82 extern const player_class *cp_ptr;
83 extern const player_class class_info[MAX_CLASS];
84
85 extern const concptr player_title[MAX_CLASS][10];