OSDN Git Service

Merge branch 'develop' into feature/Unite-Command-Throw
[hengbandforosx/hengbandosx.git] / src / player / player-realm.cpp
1 #include "player/player-realm.h"
2 #include "object/tval-types.h"
3 #include "system/player-type-definition.h"
4
5 /*!
6  * 職業毎に選択可能な第一領域魔法テーブル
7  */
8 const uint32_t realm_choices1[MAX_CLASS] = {
9     (CH_NONE), /* Warrior */
10     (CH_LIFE | CH_SORCERY | CH_NATURE | CH_CHAOS | CH_DEATH | CH_TRUMP | CH_ARCANE | CH_ENCHANT | CH_DAEMON | CH_CRUSADE), /* Mage */
11     (CH_LIFE | CH_DEATH | CH_DAEMON | CH_CRUSADE), /* Priest */
12     (CH_SORCERY | CH_DEATH | CH_TRUMP | CH_ARCANE | CH_ENCHANT), /* Rogue */
13     (CH_NATURE), /* Ranger */
14     (CH_CRUSADE | CH_DEATH), /* Paladin */
15     (CH_ARCANE), /* Warrior-Mage */
16     (CH_CHAOS | CH_DAEMON), /* Chaos-Warrior */
17     (CH_LIFE | CH_NATURE | CH_DEATH | CH_ENCHANT), /* Monk */
18     (CH_NONE), /* Mindcrafter */
19     (CH_LIFE | CH_SORCERY | CH_NATURE | CH_CHAOS | CH_DEATH | CH_TRUMP | CH_ARCANE | CH_ENCHANT | CH_DAEMON | CH_CRUSADE | CH_HEX), /* High-Mage */
20     (CH_ARCANE), /* Tourist */
21     (CH_NONE), /* Imitator */
22     (CH_TRUMP), /* Beastmaster */
23     (CH_NONE), /* Sorcerer */
24     (CH_NONE), /* Archer */
25     (CH_NONE), /* Magic eater */
26     (CH_MUSIC), /* Bard */
27     (CH_NONE), /* Red Mage */
28     (CH_HISSATSU), /* Samurai */
29     (CH_LIFE | CH_NATURE | CH_DEATH | CH_ENCHANT | CH_CRUSADE), /* ForceTrainer */
30     (CH_NONE), /* Blue Mage */
31     (CH_NONE), /* Cavalry */
32     (CH_NONE), /* Berserker */
33     (CH_NONE), /* Weaponsmith */
34     (CH_NONE), /* Mirror-master */
35     (CH_NONE), /* Ninja */
36     (CH_NONE), /* Sniper */
37     (CH_NONE), /* Elementalist */
38 };
39
40 /*!
41  * 職業毎に選択可能な第二領域魔法テーブル
42  */
43 const uint32_t realm_choices2[MAX_CLASS] = {
44     (CH_NONE), /* Warrior */
45     (CH_LIFE | CH_SORCERY | CH_NATURE | CH_CHAOS | CH_DEATH | CH_TRUMP | CH_ARCANE | CH_ENCHANT | CH_DAEMON | CH_CRUSADE), /* Mage */
46     (CH_LIFE | CH_SORCERY | CH_NATURE | CH_CHAOS | CH_DEATH | CH_TRUMP | CH_ARCANE | CH_ENCHANT | CH_DAEMON | CH_CRUSADE), /* Priest */
47     (CH_NONE), /* Rogue */
48     (CH_SORCERY | CH_CHAOS | CH_DEATH | CH_TRUMP | CH_ARCANE | CH_DAEMON), /* Ranger */
49     (CH_NONE), /* Paladin */
50     (CH_LIFE | CH_NATURE | CH_CHAOS | CH_DEATH | CH_TRUMP | CH_ARCANE | CH_SORCERY | CH_ENCHANT | CH_DAEMON | CH_CRUSADE), /* Warrior-Mage */
51     (CH_NONE), /* Chaos-Warrior */
52     (CH_NONE), /* Monk */
53     (CH_NONE), /* Mindcrafter */
54     (CH_NONE), /* High-Mage */
55     (CH_NONE), /* Tourist */
56     (CH_NONE), /* Imitator */
57     (CH_NONE), /* Beastmanster */
58     (CH_NONE), /* Sorcerer */
59     (CH_NONE), /* Archer */
60     (CH_NONE), /* Magic eater */
61     (CH_NONE), /* Bard */
62     (CH_NONE), /* Red Mage */
63     (CH_NONE), /* Samurai */
64     (CH_NONE), /* ForceTrainer */
65     (CH_NONE), /* Blue Mage */
66     (CH_NONE), /* Cavalry */
67     (CH_NONE), /* Berserker */
68     (CH_NONE), /* Weaponsmith */
69     (CH_NONE), /* Mirror-master */
70     (CH_NONE), /* Ninja */
71     (CH_NONE), /* Sniper */
72     (CH_NONE), /* Elementalist */
73 };
74
75 int16_t get_realm1_book(player_type *player_ptr) { return player_ptr->realm1 + TV_LIFE_BOOK - 1; }
76
77 int16_t get_realm2_book(player_type *player_ptr) { return player_ptr->realm2 + TV_LIFE_BOOK - 1; }
78
79 bool is_wizard_class(player_type *player_ptr)
80 {
81     return (player_ptr->pclass == CLASS_MAGE || player_ptr->pclass == CLASS_HIGH_MAGE || player_ptr->pclass == CLASS_SORCERER || player_ptr->pclass == CLASS_MAGIC_EATER
82         || player_ptr->pclass == CLASS_BLUE_MAGE || player_ptr->pclass == CLASS_ELEMENTALIST);
83 }