/*!
* @file xtra1.c
- * @brief 雑多なその他の処理1 / misc code
- * @date 2014/08/17
+ * @brief プレイヤーのステータス処理 / status
+ * @date 2018/09/25
* @author
* Copyright (c) 1989 James E. Wilson, Robert A. Koeneke\n
* This software may be copied and distributed for educational, research, and\n
hex_spelling(HEX_CURE_SERIOUS) ||
hex_spelling(HEX_CURE_CRITICAL)) ADD_FLG(BAR_CURE);
- if (p_ptr->magic_num2[2])
+ if (HEX_REVENGE_TURN(p_ptr))
{
- if (p_ptr->magic_num2[1] == 1) ADD_FLG(BAR_PATIENCE);
- if (p_ptr->magic_num2[1] == 2) ADD_FLG(BAR_REVENGE);
+ if (HEX_REVENGE_TYPE(p_ptr) == 1) ADD_FLG(BAR_PATIENCE);
+ if (HEX_REVENGE_TYPE(p_ptr) == 2) ADD_FLG(BAR_REVENGE);
}
}
{
byte attr = TERM_WHITE;
- char text[5];
+ char text[16];
/* Repeating */
if (command_rep)
}
/* Rest until healed */
- else if (resting == -1)
+ else if (resting == COMMAND_ARG_REST_FULL_HEALING)
{
text[0] = text[1] = text[2] = text[3] = '*';
}
/* Rest until done */
- else if (resting == -2)
+ else if (resting == COMMAND_ARG_REST_UNTIL_DONE)
{
text[0] = text[1] = text[2] = text[3] = '&';
}
* @return なし
* </pre>
*/
-static void print_monster_line(int x, int y, monster_type* m_ptr, int n_same){
+static void print_monster_line(TERM_LEN x, TERM_LEN y, monster_type* m_ptr, int n_same){
char buf[256];
int i;
MONRACE_IDX r_idx = m_ptr->ap_r_idx;
* @param y 表示行
* @param max_lines 最大何行描画するか
*/
-void print_monster_list(int x, int y, int max_lines){
- int line = y;
+void print_monster_list(TERM_LEN x, TERM_LEN y, TERM_LEN max_lines){
+ TERM_LEN line = y;
monster_type* last_mons = NULL;
monster_type* m_ptr = NULL;
int n_same = 0;
/*!
* @brief ゲームメッセージ履歴をサブウィンドウに表示する /
* Hack -- display recent messages in sub-windows
- * XXX XXX XXX Adjust for width and split messages
+ * Adjust for width and split messages
* @return なし
*/
static void fix_message(void)
{
int j, i;
- int w, h;
- int x, y;
+ TERM_LEN w, h;
+ TERM_LEN x, y;
/* Scan windows */
for (j = 0; j < 8; j++)
/*!
* @brief 簡易マップをサブウィンドウに表示する /
* Hack -- display overhead view in sub-windows
- * XXX XXX XXX Adjust for width and split messages
+ * Adjust for width and split messages
* @return なし
* @details
* Note that the "player" symbol does NOT appear on the map.
*/
static void calc_spells(void)
{
- int i, j, k, levels;
- int num_allowed;
- int num_boukyaku = 0;
+ int i, j, k, levels;
+ int num_allowed;
+ int num_boukyaku = 0;
const magic_type *s_ptr;
REALM_IDX which;
which = p_ptr->realm2;
}
- /* Message */
#ifdef JP
- msg_format("%sの%sを忘れてしまった。",
- do_spell(which, j%32, SPELL_NAME), p );
+ msg_format("%sの%sを忘れてしまった。", do_spell(which, j%32, SPELL_NAME), p );
#else
- msg_format("You have forgotten the %s of %s.", p,
- do_spell(which, j%32, SPELL_NAME));
+ msg_format("You have forgotten the %s of %s.", p, do_spell(which, j%32, SPELL_NAME));
#endif
which = p_ptr->realm2;
}
- /* Message */
#ifdef JP
msg_format("%sの%sを忘れてしまった。",
do_spell(which, j%32, SPELL_NAME), p );
which = p_ptr->realm2;
}
- /* Message */
#ifdef JP
- msg_format("%sの%sを思い出した。",
- do_spell(which, j%32, SPELL_NAME), p );
+ msg_format("%sの%sを思い出した。", do_spell(which, j%32, SPELL_NAME), p );
#else
- msg_format("You have remembered the %s of %s.",
- p, do_spell(which, j%32, SPELL_NAME));
+ msg_format("You have remembered the %s of %s.", p, do_spell(which, j%32, SPELL_NAME));
#endif
/* Message if needed */
if (p_ptr->new_spells)
{
- /* Message */
#ifdef JP
if( p_ptr->new_spells < 10 ){
msg_format("あと %d つの%sを学べる。", p_ptr->new_spells, p);
*/
static void calc_mana(void)
{
- int msp, levels, cur_wgt, max_wgt;
+ int msp, levels, cur_wgt, max_wgt;
object_type *o_ptr;
/* Only mages are affected */
if (mp_ptr->spell_xtra & MAGIC_GLOVE_REDUCE_MANA)
{
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
/* Assume player is not encumbered by gloves */
p_ptr->cumber_glove = FALSE;
/* レベルアップの時は上昇量を表示する */
if ((level_up == 1) && (msp > p_ptr->msp))
{
- msg_format("最大マジック・ポイントが %d 増加した!",
- (msp - p_ptr->msp));
+ msg_format("最大マジック・ポイントが %d 増加した!", (msp - p_ptr->msp));
}
#endif
/* Save new mana */
/* Display mana later */
p_ptr->redraw |= (PR_MANA);
- /* Window stuff */
p_ptr->window |= (PW_PLAYER);
p_ptr->window |= (PW_SPELL);
}
/* Take note when "glove state" changes */
if (p_ptr->old_cumber_glove != p_ptr->cumber_glove)
{
- /* Message */
if (p_ptr->cumber_glove)
{
msg_print(_("手が覆われて呪文が唱えにくい感じがする。", "Your covered hands feel unsuitable for spellcasting."));
/* Take note when "armor state" changes */
if (p_ptr->old_cumber_armor != p_ptr->cumber_armor)
{
- /* Message */
if (p_ptr->cumber_armor)
{
msg_print(_("装備の重さで動きが鈍くなってしまっている。", "The weight of your equipment encumbers your movement."));
/* レベルアップの時は上昇量を表示する */
if ((level_up == 1) && (mhp > p_ptr->mhp))
{
- msg_format("最大ヒット・ポイントが %d 増加した!",
- (mhp - p_ptr->mhp) );
+ msg_format("最大ヒット・ポイントが %d 増加した!", (mhp - p_ptr->mhp) );
}
#endif
/* Save the new max-hitpoints */
/* Display hitpoints (later) */
p_ptr->redraw |= (PR_HP);
- /* Window stuff */
p_ptr->window |= (PW_PLAYER);
}
}
{
int i, rad;
object_type *o_ptr;
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
/* Assume no light */
p_ptr->cur_lite = 0;
/* Notice changes in the "lite radius" */
if (p_ptr->old_lite != p_ptr->cur_lite)
{
- /* Update stuff */
/* Hack -- PU_MON_LITE for monsters' darkness */
p_ptr->update |= (PU_LITE | PU_MON_LITE | PU_MONSTERS);
* Computes current weight limit.
* @return 制限重量(ポンド)
*/
-u32b weight_limit(void)
+WEIGHT weight_limit(void)
{
- u32b i;
+ WEIGHT i;
/* Weight limit based only on strength */
- i = (u32b)adj_str_wgt[p_ptr->stat_ind[A_STR]] * 50; /* Constant was 100 */
+ i = (WEIGHT)adj_str_wgt[p_ptr->stat_ind[A_STR]] * 50; /* Constant was 100 */
if (p_ptr->pclass == CLASS_BERSERKER) i = i * 3 / 2;
/* Return the result */
int num = 0;
OBJECT_TYPE_VALUE tval_ammo = bow_tval_ammo(o_ptr);
object_type *q_ptr;
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
/* Scan the usable inventory */
for (i = INVEN_RARM; i < INVEN_TOTAL; i++)
int empty_hands_status = empty_hands(TRUE);
int extra_blows[2];
object_type *o_ptr;
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
bool omoi = FALSE;
bool yoiyami = FALSE;
bool down_saving = FALSE;
bool have_sw = FALSE, have_kabe = FALSE;
bool easy_2weapon = FALSE;
bool riding_levitation = FALSE;
- s16b this_o_idx, next_o_idx = 0;
+ OBJECT_IDX this_o_idx, next_o_idx = 0;
const player_race *tmp_rp_ptr;
/* Save the old vision stuff */
/* Hex bonuses */
if (p_ptr->realm1 == REALM_HEX)
{
- if (hex_spelling_any()) p_ptr->skill_stl -= (1 + p_ptr->magic_num2[0]);
+ if (hex_spelling_any()) p_ptr->skill_stl -= (1 + CASTING_HEX_NUM(p_ptr));
if (hex_spelling(HEX_DETECT_EVIL)) p_ptr->esp_evil = TRUE;
if (hex_spelling(HEX_XTRA_MIGHT)) p_ptr->stat_add[A_STR] += 4;
if (hex_spelling(HEX_BUILDING))
}
for (i = INVEN_RARM; i <= INVEN_FEET; i++)
{
- int ac = 0;
+ ARMOUR_CLASS ac = 0;
o_ptr = &inventory[i];
if (!o_ptr->k_idx) continue;
if (!object_is_armour(o_ptr)) continue;
/* Redisplay the stats later */
p_ptr->redraw |= (PR_STATS);
- /* Window stuff */
p_ptr->window |= (PW_PLAYER);
}
/* Redisplay the stats later */
p_ptr->redraw |= (PR_STATS);
- /* Window stuff */
p_ptr->window |= (PW_PLAYER);
}
}
}
- /* Window stuff */
p_ptr->window |= (PW_PLAYER);
}
}
i = 1500 + riding_r_ptr->level * 25;
}
- /* XXX XXX XXX Apply "encumbrance" from weight */
+ /* Apply "encumbrance" from weight */
if (j > i) new_speed -= ((j - i) / (i / 5));
/* Searching slows the player down */
/* Redraw */
p_ptr->redraw |= (PR_ARMOR);
- /* Window stuff */
p_ptr->window |= (PW_PLAYER);
}
/* Take note when "heavy bow" changes */
if (p_ptr->old_heavy_shoot != p_ptr->heavy_shoot)
{
- /* Message */
if (p_ptr->heavy_shoot)
{
msg_print(_("こんな重い弓を装備しているのは大変だ。", "You have trouble wielding such a heavy bow."));
/* Take note when "heavy weapon" changes */
if (p_ptr->old_heavy_wield[i] != p_ptr->heavy_wield[i])
{
- /* Message */
if (p_ptr->heavy_wield[i])
{
msg_print(_("こんな重い武器を装備しているのは大変だ。", "You have trouble wielding such a heavy weapon."));
/* Take note when "heavy weapon" changes */
if (p_ptr->old_riding_wield[i] != p_ptr->riding_wield[i])
{
- /* Message */
if (p_ptr->riding_wield[i])
{
msg_print(_("この武器は乗馬中に使うにはむかないようだ。", "This weapon is not suitable for use while riding."));
/* Take note when "illegal weapon" changes */
if (p_ptr->old_icky_wield[i] != p_ptr->icky_wield[i])
{
- /* Message */
if (p_ptr->icky_wield[i])
{
msg_print(_("今の装備はどうも自分にふさわしくない気がする。", "You do not feel comfortable with your weapon."));
- if (hack_mind)
+ if (is_loading_now)
{
chg_virtue(V_FAITH, -1);
}
if (p_ptr->riding && (p_ptr->old_riding_ryoute != p_ptr->riding_ryoute))
{
- /* Message */
if (p_ptr->riding_ryoute)
{
#ifdef JP
if (heavy_armor())
{
msg_print(_("装備が重くてバランスを取れない。", "The weight of your armor disrupts your balance."));
- if (hack_mind)
+ if (is_loading_now)
{
chg_virtue(V_HARMONY, -1);
}
*/
void update_stuff(void)
{
- /* Update stuff */
if (!p_ptr->update) return;
*/
void handle_stuff(void)
{
- /* Update stuff */
if (p_ptr->update) update_stuff();
/* Redraw stuff */
if (p_ptr->redraw) redraw_stuff();
- /* Window stuff */
if (p_ptr->window) window_stuff();
}
*/
bool heavy_armor(void)
{
- u16b monk_arm_wgt = 0;
+ WEIGHT monk_arm_wgt = 0;
if ((p_ptr->pclass != CLASS_MONK) && (p_ptr->pclass != CLASS_FORCETRAINER) && (p_ptr->pclass != CLASS_NINJA)) return FALSE;