/*!
* @brief プレイヤーの職業、種族に応じた耐性フラグを返す
* Prints ratings on certain abilities
+ * @param creature_ptr 参照元クリーチャーポインタ
* @param flgs フラグを保管する配列
* @return なし
* @details
* @todo
* xtra1.c周りと多重実装になっているのを何とかする
*/
-static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE])
+static void player_flags(player_type *creature_ptr, BIT_FLAGS flgs[TR_FLAG_SIZE])
{
int i;
for (i = 0; i < TR_FLAG_SIZE; i++)
flgs[i] = 0L;
/* Classes */
- switch (p_ptr->pclass)
+ switch (creature_ptr->pclass)
{
case CLASS_WARRIOR:
- if (p_ptr->lev > 44)
+ if (creature_ptr->lev > 44)
add_flag(flgs, TR_REGEN);
case CLASS_SAMURAI:
- if (p_ptr->lev > 29)
+ if (creature_ptr->lev > 29)
add_flag(flgs, TR_RES_FEAR);
break;
case CLASS_PALADIN:
- if (p_ptr->lev > 39)
+ if (creature_ptr->lev > 39)
add_flag(flgs, TR_RES_FEAR);
break;
case CLASS_CHAOS_WARRIOR:
- if (p_ptr->lev > 29)
+ if (creature_ptr->lev > 29)
add_flag(flgs, TR_RES_CHAOS);
- if (p_ptr->lev > 39)
+ if (creature_ptr->lev > 39)
add_flag(flgs, TR_RES_FEAR);
break;
case CLASS_MONK:
case CLASS_FORCETRAINER:
- if ((p_ptr->lev > 9) && !heavy_armor(p_ptr))
+ if ((creature_ptr->lev > 9) && !heavy_armor(creature_ptr))
add_flag(flgs, TR_SPEED);
- if ((p_ptr->lev>24) && !heavy_armor(p_ptr))
+ if ((creature_ptr->lev>24) && !heavy_armor(creature_ptr))
add_flag(flgs, TR_FREE_ACT);
break;
case CLASS_NINJA:
- if (heavy_armor(p_ptr))
+ if (heavy_armor(creature_ptr))
add_flag(flgs, TR_SPEED);
else
{
- if ((!p_ptr->inventory_list[INVEN_RARM].k_idx || p_ptr->migite) &&
- (!p_ptr->inventory_list[INVEN_LARM].k_idx || p_ptr->hidarite))
+ if ((!creature_ptr->inventory_list[INVEN_RARM].k_idx || creature_ptr->migite) &&
+ (!creature_ptr->inventory_list[INVEN_LARM].k_idx || creature_ptr->hidarite))
add_flag(flgs, TR_SPEED);
- if (p_ptr->lev>24)
+ if (creature_ptr->lev>24)
add_flag(flgs, TR_FREE_ACT);
}
add_flag(flgs, TR_SLOW_DIGEST);
add_flag(flgs, TR_RES_FEAR);
- if (p_ptr->lev > 19) add_flag(flgs, TR_RES_POIS);
- if (p_ptr->lev > 24) add_flag(flgs, TR_SUST_DEX);
- if (p_ptr->lev > 29) add_flag(flgs, TR_SEE_INVIS);
+ if (creature_ptr->lev > 19) add_flag(flgs, TR_RES_POIS);
+ if (creature_ptr->lev > 24) add_flag(flgs, TR_SUST_DEX);
+ if (creature_ptr->lev > 29) add_flag(flgs, TR_SEE_INVIS);
break;
case CLASS_MINDCRAFTER:
- if (p_ptr->lev > 9)
+ if (creature_ptr->lev > 9)
add_flag(flgs, TR_RES_FEAR);
- if (p_ptr->lev > 19)
+ if (creature_ptr->lev > 19)
add_flag(flgs, TR_SUST_WIS);
- if (p_ptr->lev > 29)
+ if (creature_ptr->lev > 29)
add_flag(flgs, TR_RES_CONF);
- if (p_ptr->lev > 39)
+ if (creature_ptr->lev > 39)
add_flag(flgs, TR_TELEPATHY);
break;
case CLASS_BARD:
add_flag(flgs, TR_REGEN);
add_flag(flgs, TR_FREE_ACT);
add_flag(flgs, TR_SPEED);
- if (p_ptr->lev > 39) add_flag(flgs, TR_REFLECT);
+ if (creature_ptr->lev > 39) add_flag(flgs, TR_REFLECT);
break;
case CLASS_MIRROR_MASTER:
- if(p_ptr->lev > 39)add_flag(flgs, TR_REFLECT);
+ if(creature_ptr->lev > 39)add_flag(flgs, TR_REFLECT);
break;
default:
break; /* Do nothing */
}
/* Races */
- if (p_ptr->mimic_form)
+ if (creature_ptr->mimic_form)
{
- switch(p_ptr->mimic_form)
+ switch(creature_ptr->mimic_form)
{
case MIMIC_DEMON:
add_flag(flgs, TR_HOLD_EXP);
add_flag(flgs, TR_HOLD_EXP);
add_flag(flgs, TR_RES_DARK);
add_flag(flgs, TR_RES_NETHER);
- if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1);
+ if (creature_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1);
add_flag(flgs, TR_RES_POIS);
add_flag(flgs, TR_RES_COLD);
add_flag(flgs, TR_SEE_INVIS);
}
else
{
- switch (p_ptr->prace)
+ switch (creature_ptr->prace)
{
case RACE_ELF:
add_flag(flgs, TR_RES_LITE);
break;
case RACE_HALF_TROLL:
add_flag(flgs, TR_SUST_STR);
- if (p_ptr->lev > 14)
+ if (creature_ptr->lev > 14)
{
add_flag(flgs, TR_REGEN);
- if ((p_ptr->pclass == CLASS_WARRIOR) || (p_ptr->pclass == CLASS_BERSERKER))
+ if ((creature_ptr->pclass == CLASS_WARRIOR) || (creature_ptr->pclass == CLASS_BERSERKER))
{
add_flag(flgs, TR_SLOW_DIGEST);
/*
break;
case RACE_YEEK:
add_flag(flgs, TR_RES_ACID);
- if (p_ptr->lev > 19)
+ if (creature_ptr->lev > 19)
add_flag(flgs, TR_IM_ACID);
break;
case RACE_KLACKON:
add_flag(flgs, TR_RES_CONF);
add_flag(flgs, TR_RES_ACID);
- if (p_ptr->lev > 9)
+ if (creature_ptr->lev > 9)
add_flag(flgs, TR_SPEED);
break;
case RACE_KOBOLD:
break;
case RACE_DARK_ELF:
add_flag(flgs, TR_RES_DARK);
- if (p_ptr->lev > 19)
+ if (creature_ptr->lev > 19)
add_flag(flgs, TR_SEE_INVIS);
break;
case RACE_DRACONIAN:
add_flag(flgs, TR_LEVITATION);
- if (p_ptr->lev > 4)
+ if (creature_ptr->lev > 4)
add_flag(flgs, TR_RES_FIRE);
- if (p_ptr->lev > 9)
+ if (creature_ptr->lev > 9)
add_flag(flgs, TR_RES_COLD);
- if (p_ptr->lev > 14)
+ if (creature_ptr->lev > 14)
add_flag(flgs, TR_RES_ACID);
- if (p_ptr->lev > 19)
+ if (creature_ptr->lev > 19)
add_flag(flgs, TR_RES_ELEC);
- if (p_ptr->lev > 34)
+ if (creature_ptr->lev > 34)
add_flag(flgs, TR_RES_POIS);
break;
case RACE_MIND_FLAYER:
add_flag(flgs, TR_SUST_INT);
add_flag(flgs, TR_SUST_WIS);
- if (p_ptr->lev > 14)
+ if (creature_ptr->lev > 14)
add_flag(flgs, TR_SEE_INVIS);
- if (p_ptr->lev > 29)
+ if (creature_ptr->lev > 29)
add_flag(flgs, TR_TELEPATHY);
break;
case RACE_IMP:
add_flag(flgs, TR_RES_FIRE);
- if (p_ptr->lev > 9)
+ if (creature_ptr->lev > 9)
add_flag(flgs, TR_SEE_INVIS);
break;
case RACE_GOLEM:
add_flag(flgs, TR_FREE_ACT);
add_flag(flgs, TR_RES_POIS);
add_flag(flgs, TR_SLOW_DIGEST);
- if (p_ptr->lev > 34)
+ if (creature_ptr->lev > 34)
add_flag(flgs, TR_HOLD_EXP);
break;
case RACE_SKELETON:
add_flag(flgs, TR_RES_SHARDS);
add_flag(flgs, TR_HOLD_EXP);
add_flag(flgs, TR_RES_POIS);
- if (p_ptr->lev > 9)
+ if (creature_ptr->lev > 9)
add_flag(flgs, TR_RES_COLD);
break;
case RACE_ZOMBIE:
add_flag(flgs, TR_RES_NETHER);
add_flag(flgs, TR_RES_POIS);
add_flag(flgs, TR_SLOW_DIGEST);
- if (p_ptr->lev > 4)
+ if (creature_ptr->lev > 4)
add_flag(flgs, TR_RES_COLD);
break;
case RACE_VAMPIRE:
add_flag(flgs, TR_HOLD_EXP);
add_flag(flgs, TR_RES_DARK);
add_flag(flgs, TR_RES_NETHER);
- if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1);
+ if (creature_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1);
add_flag(flgs, TR_RES_POIS);
add_flag(flgs, TR_RES_COLD);
break;
add_flag(flgs, TR_RES_POIS);
add_flag(flgs, TR_SLOW_DIGEST);
/* XXX pass_wall */
- if (p_ptr->lev > 34)
+ if (creature_ptr->lev > 34)
add_flag(flgs, TR_TELEPATHY);
break;
case RACE_SPRITE:
add_flag(flgs, TR_RES_LITE);
add_flag(flgs, TR_LEVITATION);
- if (p_ptr->lev > 9)
+ if (creature_ptr->lev > 9)
add_flag(flgs, TR_SPEED);
break;
case RACE_BEASTMAN:
add_flag(flgs, TR_RES_FIRE);
add_flag(flgs, TR_RES_NETHER);
add_flag(flgs, TR_HOLD_EXP);
- if (p_ptr->lev > 9)
+ if (creature_ptr->lev > 9)
add_flag(flgs, TR_SEE_INVIS);
break;
case RACE_DUNADAN:
}
/* Mutations */
- if (p_ptr->muta3)
+ if (creature_ptr->muta3)
{
- if (p_ptr->muta3 & MUT3_FLESH_ROT)
+ if (creature_ptr->muta3 & MUT3_FLESH_ROT)
{
remove_flag(flgs, TR_REGEN);
}
- if ((p_ptr->muta3 & MUT3_XTRA_FAT) ||
- (p_ptr->muta3 & MUT3_XTRA_LEGS) ||
- (p_ptr->muta3 & MUT3_SHORT_LEG))
+ if ((creature_ptr->muta3 & MUT3_XTRA_FAT) ||
+ (creature_ptr->muta3 & MUT3_XTRA_LEGS) ||
+ (creature_ptr->muta3 & MUT3_SHORT_LEG))
{
add_flag(flgs, TR_SPEED);
}
- if (p_ptr->muta3 & MUT3_ELEC_TOUC)
+ if (creature_ptr->muta3 & MUT3_ELEC_TOUC)
{
add_flag(flgs, TR_SH_ELEC);
}
- if (p_ptr->muta3 & MUT3_FIRE_BODY)
+ if (creature_ptr->muta3 & MUT3_FIRE_BODY)
{
add_flag(flgs, TR_SH_FIRE);
add_flag(flgs, TR_LITE_1);
}
- if (p_ptr->muta3 & MUT3_WINGS)
+ if (creature_ptr->muta3 & MUT3_WINGS)
{
add_flag(flgs, TR_LEVITATION);
}
- if (p_ptr->muta3 & MUT3_FEARLESS)
+ if (creature_ptr->muta3 & MUT3_FEARLESS)
{
add_flag(flgs, TR_RES_FEAR);
}
- if (p_ptr->muta3 & MUT3_REGEN)
+ if (creature_ptr->muta3 & MUT3_REGEN)
{
add_flag(flgs, TR_REGEN);
}
- if (p_ptr->muta3 & MUT3_ESP)
+ if (creature_ptr->muta3 & MUT3_ESP)
{
add_flag(flgs, TR_TELEPATHY);
}
- if (p_ptr->muta3 & MUT3_MOTION)
+ if (creature_ptr->muta3 & MUT3_MOTION)
{
add_flag(flgs, TR_FREE_ACT);
}
}
- if (p_ptr->pseikaku == SEIKAKU_SEXY)
+ if (creature_ptr->pseikaku == SEIKAKU_SEXY)
add_flag(flgs, TR_AGGRAVATE);
- if (p_ptr->pseikaku == SEIKAKU_CHARGEMAN)
+ if (creature_ptr->pseikaku == SEIKAKU_CHARGEMAN)
add_flag(flgs, TR_RES_CONF);
- if (p_ptr->pseikaku == SEIKAKU_MUNCHKIN)
+ if (creature_ptr->pseikaku == SEIKAKU_MUNCHKIN)
{
add_flag(flgs, TR_RES_BLIND);
add_flag(flgs, TR_RES_CONF);
add_flag(flgs, TR_HOLD_EXP);
- if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1);
- if (p_ptr->lev > 9)
+ if (creature_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1);
+ if (creature_ptr->lev > 9)
add_flag(flgs, TR_SPEED);
}
- if (p_ptr->special_defense & KATA_FUUJIN)
+ if (creature_ptr->special_defense & KATA_FUUJIN)
add_flag(flgs, TR_REFLECT);
- if (p_ptr->special_defense & KAMAE_GENBU)
+ if (creature_ptr->special_defense & KAMAE_GENBU)
add_flag(flgs, TR_REFLECT);
- if (p_ptr->special_defense & KAMAE_SUZAKU)
+ if (creature_ptr->special_defense & KAMAE_SUZAKU)
add_flag(flgs, TR_LEVITATION);
- if (p_ptr->special_defense & KAMAE_SEIRYU)
+ if (creature_ptr->special_defense & KAMAE_SEIRYU)
{
add_flag(flgs, TR_RES_FIRE);
add_flag(flgs, TR_RES_COLD);
add_flag(flgs, TR_SH_ELEC);
add_flag(flgs, TR_SH_COLD);
}
- if (p_ptr->special_defense & KATA_MUSOU)
+ if (creature_ptr->special_defense & KATA_MUSOU)
{
add_flag(flgs, TR_RES_FEAR);
add_flag(flgs, TR_RES_LITE);
all_player_flags f;
/* Extract flags and store */
- player_flags(f.player_flags);
+ player_flags(p_ptr, f.player_flags);
tim_player_flags(p_ptr, f.tim_player_flags);
player_immunity(f.player_imm);
tim_player_immunity(f.tim_player_imm);
all_player_flags f;
/* Extract flags and store */
- player_flags(f.player_flags);
+ player_flags(p_ptr, f.player_flags);
tim_player_flags(p_ptr, f.tim_player_flags);
player_immunity(f.player_imm);
tim_player_immunity(f.tim_player_imm);
}
/* Player flags */
- player_flags(flgs);
+ player_flags(p_ptr, flgs);
/* Check stats */
for (stat = 0; stat < A_MAX; stat++)