1 #include "core/status-reseter.h"
2 #include "core/speed-table.h"
3 #include "monster/monster-status-setter.h"
4 #include "player/attack-defense-types.h"
5 #include "player/player-race.h"
8 * @brief プレイヤーの全ての時限効果をリセットする。 / reset timed flags
11 void reset_tim_flags(player_type *creature_ptr)
13 creature_ptr->fast = 0; /* Timed -- Fast */
14 creature_ptr->lightspeed = 0;
15 creature_ptr->slow = 0; /* Timed -- Slow */
16 creature_ptr->blind = 0; /* Timed -- Blindness */
17 creature_ptr->paralyzed = 0; /* Timed -- Paralysis */
18 creature_ptr->confused = 0; /* Timed -- Confusion */
19 creature_ptr->afraid = 0; /* Timed -- Fear */
20 creature_ptr->image = 0; /* Timed -- Hallucination */
21 creature_ptr->poisoned = 0; /* Timed -- Poisoned */
22 creature_ptr->cut = 0; /* Timed -- Cut */
23 creature_ptr->stun = 0; /* Timed -- Stun */
25 creature_ptr->protevil = 0; /* Timed -- Protection */
26 creature_ptr->invuln = 0; /* Timed -- Invulnerable */
27 creature_ptr->ult_res = 0;
28 creature_ptr->hero = 0; /* Timed -- Heroism */
29 creature_ptr->shero = 0; /* Timed -- Super Heroism */
30 creature_ptr->shield = 0; /* Timed -- Shield Spell */
31 creature_ptr->blessed = 0; /* Timed -- Blessed */
32 creature_ptr->tim_invis = 0; /* Timed -- Invisibility */
33 creature_ptr->tim_infra = 0; /* Timed -- Infra Vision */
34 creature_ptr->tim_regen = 0; /* Timed -- Regeneration */
35 creature_ptr->tim_stealth = 0; /* Timed -- Stealth */
36 creature_ptr->tim_esp = 0;
37 creature_ptr->wraith_form = 0; /* Timed -- Wraith Form */
38 creature_ptr->tim_levitation = 0;
39 creature_ptr->tim_sh_touki = 0;
40 creature_ptr->tim_sh_fire = 0;
41 creature_ptr->tim_sh_holy = 0;
42 creature_ptr->tim_eyeeye = 0;
43 creature_ptr->magicdef = 0;
44 creature_ptr->resist_magic = 0;
45 creature_ptr->tsuyoshi = 0;
46 creature_ptr->tim_pass_wall = 0;
47 creature_ptr->tim_res_nether = 0;
48 creature_ptr->tim_res_time = 0;
49 creature_ptr->tim_mimic = 0;
50 creature_ptr->mimic_form = 0;
51 creature_ptr->tim_reflect = 0;
52 creature_ptr->multishadow = 0;
53 creature_ptr->dustrobe = 0;
54 creature_ptr->action = ACTION_NONE;
56 creature_ptr->oppose_acid = 0; /* Timed -- oppose acid */
57 creature_ptr->oppose_elec = 0; /* Timed -- oppose lightning */
58 creature_ptr->oppose_fire = 0; /* Timed -- oppose heat */
59 creature_ptr->oppose_cold = 0; /* Timed -- oppose cold */
60 creature_ptr->oppose_pois = 0; /* Timed -- oppose poison */
62 creature_ptr->word_recall = 0;
63 creature_ptr->alter_reality = 0;
64 creature_ptr->sutemi = FALSE;
65 creature_ptr->counter = FALSE;
66 creature_ptr->ele_attack = 0;
67 creature_ptr->ele_immune = 0;
68 creature_ptr->special_attack = 0L;
69 creature_ptr->special_defense = 0L;
71 while (creature_ptr->energy_need < 0)
72 creature_ptr->energy_need += ENERGY_NEED();
74 creature_ptr->timewalk = FALSE;
76 if (is_specific_player_race(creature_ptr, RACE_BALROG) && (creature_ptr->lev > 44))
77 creature_ptr->oppose_fire = 1;
78 if ((creature_ptr->pclass == CLASS_NINJA) && (creature_ptr->lev > 44))
79 creature_ptr->oppose_pois = 1;
80 if (creature_ptr->pclass == CLASS_BERSERKER)
81 creature_ptr->shero = 1;
83 if (creature_ptr->riding) {
84 (void)set_monster_fast(creature_ptr, creature_ptr->riding, 0);
85 (void)set_monster_slow(creature_ptr, creature_ptr->riding, 0);
86 (void)set_monster_invulner(creature_ptr, creature_ptr->riding, 0, FALSE);
89 if (creature_ptr->pclass == CLASS_BARD) {
90 SINGING_SONG_EFFECT(creature_ptr) = 0;
91 SINGING_SONG_ID(creature_ptr) = 0;