OSDN Git Service

Merge pull request #3532 from sikabane-works/release/3.0.0.87-alpha
[hengbandforosx/hengbandosx.git] / src / save / player-class-specific-data-writer.h
1 #pragma once
2
3 #include <memory>
4
5 struct no_class_specific_data;
6 struct spell_hex_data_type;
7 struct smith_data_type;
8 struct force_trainer_data_type;
9 struct bluemage_data_type;
10 struct magic_eater_data_type;
11 struct bard_data_type;
12 struct mane_data_type;
13 class SniperData;
14 struct samurai_data_type;
15 struct monk_data_type;
16 struct ninja_data_type;
17
18 class PlayerClassSpecificDataWriter {
19 public:
20     void operator()(const no_class_specific_data &) const {}
21     void operator()(const std::shared_ptr<spell_hex_data_type> &spell_hex_data) const;
22     void operator()(const std::shared_ptr<smith_data_type> &smith_data) const;
23     void operator()(const std::shared_ptr<force_trainer_data_type> &force_trainer_data) const;
24     void operator()(const std::shared_ptr<bluemage_data_type> &bluemage_data) const;
25     void operator()(const std::shared_ptr<magic_eater_data_type> &magic_eater_data) const;
26     void operator()(const std::shared_ptr<bard_data_type> &bird_data) const;
27     void operator()(const std::shared_ptr<mane_data_type> &mane_data) const;
28     void operator()(const std::shared_ptr<SniperData> &sniper_data) const;
29     void operator()(const std::shared_ptr<samurai_data_type> &samurai_data) const;
30     void operator()(const std::shared_ptr<monk_data_type> &monk_data) const;
31     void operator()(const std::shared_ptr<ninja_data_type> &ninja_data) const;
32 };