OSDN Git Service

Merge pull request #3532 from sikabane-works/release/3.0.0.87-alpha
[hengbandforosx/hengbandosx.git] / src / player-info / class-specific-data.h
1 #pragma once
2
3 #include <memory>
4 #include <variant>
5
6 struct no_class_specific_data {
7 };
8 struct smith_data_type;
9 struct force_trainer_data_type;
10 struct bluemage_data_type;
11 struct magic_eater_data_type;
12 struct bard_data_type;
13 struct mane_data_type;
14 class SniperData;
15 struct samurai_data_type;
16 struct monk_data_type;
17 struct ninja_data_type;
18 struct spell_hex_data_type;
19
20 using ClassSpecificData = std::variant<
21
22     no_class_specific_data,
23     std::shared_ptr<smith_data_type>,
24     std::shared_ptr<force_trainer_data_type>,
25     std::shared_ptr<bluemage_data_type>,
26     std::shared_ptr<magic_eater_data_type>,
27     std::shared_ptr<bard_data_type>,
28     std::shared_ptr<mane_data_type>,
29     std::shared_ptr<SniperData>,
30     std::shared_ptr<samurai_data_type>,
31     std::shared_ptr<monk_data_type>,
32     std::shared_ptr<ninja_data_type>,
33     std::shared_ptr<spell_hex_data_type>
34
35     >;