OSDN Git Service

[Fix] 属性への免疫を唱えた時のメッセージ
[hengbandforosx/hengbandosx.git] / src / load / player-attack-loader.cpp
1 #include "load/player-attack-loader.h"
2 #include "load/angband-version-comparer.h"
3 #include "load/load-util.h"
4 #include "load/load-zangband.h"
5 #include "player-base/player-class.h"
6 #include "player-info/monk-data-type.h"
7 #include "player-info/samurai-data-type.h"
8 #include "player/attack-defense-types.h"
9 #include "player/special-defense-types.h"
10 #include "system/player-type-definition.h"
11
12 void rd_special_attack(PlayerType *player_ptr)
13 {
14     if (h_older_than(0, 0, 9)) {
15         set_zangband_special_attack(player_ptr);
16         return;
17     }
18
19     player_ptr->ele_attack = rd_s16b();
20     player_ptr->special_attack = rd_u32b();
21 }
22
23 void rd_special_action(PlayerType *player_ptr)
24 {
25     if (!PlayerClass(player_ptr).monk_stance_is(MonkStanceType::NONE)) {
26         player_ptr->action = ACTION_MONK_STANCE;
27         return;
28     }
29
30     if (!PlayerClass(player_ptr).samurai_stance_is(SamuraiStanceType::NONE)) {
31         player_ptr->action = ACTION_SAMURAI_STANCE;
32     }
33 }
34
35 void rd_special_defense(PlayerType *player_ptr)
36 {
37     if (h_older_than(0, 0, 12)) {
38         set_zangband_special_defense(player_ptr);
39         return;
40     }
41
42     player_ptr->ele_immune = rd_s16b();
43     player_ptr->special_defense = rd_u32b();
44 }
45
46 void rd_action(PlayerType *player_ptr)
47 {
48     strip_bytes(1);
49     player_ptr->action = rd_byte();
50     if (!h_older_than(0, 4, 3)) {
51         set_zangband_action(player_ptr);
52     }
53 }