}
r_ptr->r_cast_spell = MAX_UCHAR;
- for (int i = 0; i < 32; i++) {
- if (!(r_ptr->r_flags1 & (1UL << i)) && (r_ptr->flags1 & (1UL << i))) {
- n++;
- }
- if (!(r_ptr->r_flags2 & (1UL << i)) && (r_ptr->flags2 & (1UL << i))) {
- n++;
- }
- if (!(r_ptr->r_flags3 & (1UL << i)) && (r_ptr->flags3 & (1UL << i))) {
- n++;
- }
- }
-
n += count_lore_mflag_group(r_ptr->resistance_flags, r_ptr->r_resistance_flags);
n += count_lore_mflag_group(r_ptr->ability_flags, r_ptr->r_ability_flags);
n += count_lore_mflag_group(r_ptr->behavior_flags, r_ptr->r_behavior_flags);
n += count_lore_mflag_group(r_ptr->special_flags, r_ptr->r_special_flags);
n += count_lore_mflag_group(r_ptr->misc_flags, r_ptr->r_misc_flags);
- r_ptr->r_flags1 = r_ptr->flags1;
- r_ptr->r_flags2 = r_ptr->flags2;
- r_ptr->r_flags3 = r_ptr->flags3;
r_ptr->r_resistance_flags = r_ptr->resistance_flags;
r_ptr->r_ability_flags = r_ptr->ability_flags;
r_ptr->r_behavior_flags = r_ptr->behavior_flags;
this->speed = this->nightmare ? this->r_ptr->speed + 5 : this->r_ptr->speed;
this->drop_gold = this->r_ptr->r_drop_gold;
this->drop_item = this->r_ptr->r_drop_item;
- this->flags1 = (this->r_ptr->flags1 & this->r_ptr->r_flags1);
- this->flags2 = (this->r_ptr->flags2 & this->r_ptr->r_flags2);
- this->flags3 = (this->r_ptr->flags3 & this->r_ptr->r_flags3);
this->ability_flags = (this->r_ptr->ability_flags & this->r_ptr->r_ability_flags);
this->aura_flags = (this->r_ptr->aura_flags & this->r_ptr->r_aura_flags);
this->behavior_flags = (this->r_ptr->behavior_flags & this->r_ptr->r_behavior_flags);
const auto &monrace = monraces_info[monrace_id];
- this->old_r_flags1 = monrace.r_flags1;
- this->old_r_flags2 = monrace.r_flags2;
- this->old_r_flags3 = monrace.r_flags3;
this->old_r_ability_flags = monrace.r_ability_flags;
this->old_r_behavior_flags = monrace.r_behavior_flags;
this->old_r_kind_flags = monrace.r_kind_flags;
struct old_race_flags {
old_race_flags(MonsterRaceId monrace_id);
- BIT_FLAGS old_r_flags1 = 0;
- BIT_FLAGS old_r_flags2 = 0;
- BIT_FLAGS old_r_flags3 = 0;
- BIT_FLAGS old_r_flagsr = 0;
EnumClassFlagGroup<MonsterAbilityType> old_r_ability_flags{};
EnumClassFlagGroup<MonsterBehaviorType> old_r_behavior_flags{};
EnumClassFlagGroup<MonsterKindType> old_r_kind_flags{};
{
MonsterRaceInfo *r_ptr;
r_ptr = &monraces_info[player_ptr->monster_race_idx];
- if ((old_race_flags_ptr->old_r_flags1 != r_ptr->r_flags1) || (old_race_flags_ptr->old_r_flags2 != r_ptr->r_flags2) ||
- (old_race_flags_ptr->old_r_flags3 != r_ptr->r_flags3) || (old_race_flags_ptr->old_r_ability_flags != r_ptr->r_ability_flags) ||
+ if ((old_race_flags_ptr->old_r_ability_flags != r_ptr->r_ability_flags) ||
(old_race_flags_ptr->old_r_resistance_flags != r_ptr->r_resistance_flags) || (old_race_flags_ptr->old_r_blows0 != r_ptr->r_blows[0]) ||
(old_race_flags_ptr->old_r_blows1 != r_ptr->r_blows[1]) || (old_race_flags_ptr->old_r_blows2 != r_ptr->r_blows[2]) ||
(old_race_flags_ptr->old_r_blows3 != r_ptr->r_blows[3]) || (old_race_flags_ptr->old_r_cast_spell != r_ptr->r_cast_spell) ||
ITEM_NUMBER r_drop_item{}; //!< これまでに撃破時に落としたアイテムの数 / Max number of item dropped at once
byte r_cast_spell{}; //!< 使った魔法/ブレスの種類数 / Max unique number of spells seen
byte r_blows[MAX_NUM_BLOWS]{}; //!< 受けた打撃 / Number of times each blow type was seen
- uint32_t r_flags1{}; //!< Observed racial flags
- uint32_t r_flags2{}; //!< Observed racial flags
- uint32_t r_flags3{}; //!< Observed racial flags
EnumClassFlagGroup<MonsterAbilityType> r_ability_flags; //!< 見た能力フラグ(魔法/ブレス) / Observed racial ability flags
EnumClassFlagGroup<MonsterAuraType> r_aura_flags; //!< 見た能力フラグ(オーラ) / Observed aura flags
EnumClassFlagGroup<MonsterBehaviorType> r_behavior_flags; //!< 見た能力フラグ(習性) / Observed racial attr flags