#include "sort.h"
#include "player-status.h"
#include "object-hook.h"
+#include "monster.h"
#include "monster-status.h"
/*!
* @brief ペットの維持コスト計算
* @return 維持コスト(%)
*/
-int calculate_upkeep(void)
+PERCENTAGE calculate_upkeep(void)
{
- s32b old_friend_align = friend_align;
MONSTER_IDX m_idx;
bool have_a_unique = FALSE;
- s32b total_friend_levels = 0;
+ DEPTH total_friend_levels = 0;
total_friends = 0;
- friend_align = 0;
for (m_idx = m_max - 1; m_idx >= 1; m_idx--)
{
else
total_friend_levels += r_ptr->level;
- /* Determine pet alignment */
- if (r_ptr->flags3 & RF3_GOOD) friend_align += r_ptr->level;
- if (r_ptr->flags3 & RF3_EVIL) friend_align -= r_ptr->level;
}
}
- if (old_friend_align != friend_align) p_ptr->update |= (PU_BONUS);
+
if (total_friends)
{
int upkeep_factor;
*/
void do_cmd_pet_dismiss(void)
{
- monster_type *m_ptr;
- bool all_pets = FALSE;
+ monster_type *m_ptr;
+ bool all_pets = FALSE;
MONSTER_IDX pet_ctr;
int i;
int Dismissed = 0;
p_ptr->riding = 0;
- p_ptr->update |= (PU_BONUS | PU_MONSTERS);
+ p_ptr->update |= (PU_MONSTERS);
p_ptr->redraw |= (PR_EXTRA | PR_UHEALTH);
}
/* HACK : Add the line to message buffer */
msg_format(_("%s を放した。", "Dismissed %s."), friend_name);
+ p_ptr->update |= (PU_BONUS);
p_ptr->window |= (PW_MESSAGE);
- handle_stuff();
delete_monster_idx(pet_ctr);
Dismissed++;
#endif
if (Dismissed == 0 && all_pets)
msg_print(_("'U'nnamed は、乗馬以外の名前のないペットだけを全て解放します。", "'U'nnamed means all your pets except named pets and your mount."));
+
+ handle_stuff();
}
/*!
-* @brief ペットの善悪属性に応じた維持コストの途中計算処理
-* @param m_ptr 計算基準となるモンスターの構造体参照ポインタ
-* @param inc m_ptrで指定したモンスターを維持コスト計算に加えるならTRUE、外すならFALSEを指定
-* @return なし
-*/
-void check_pets_num_and_align(monster_type *m_ptr, bool inc)
-{
- s32b old_friend_align = friend_align;
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
-
- if (inc)
- {
- total_friends++;
- if (r_ptr->flags3 & RF3_GOOD) friend_align += r_ptr->level;
- if (r_ptr->flags3 & RF3_EVIL) friend_align -= r_ptr->level;
- }
- else
- {
- total_friends--;
- if (r_ptr->flags3 & RF3_GOOD) friend_align -= r_ptr->level;
- if (r_ptr->flags3 & RF3_EVIL) friend_align += r_ptr->level;
- }
-
- if (old_friend_align != friend_align) p_ptr->update |= (PU_BONUS);
-}
-
-
-
-/*!
* @brief プレイヤーの落馬判定処理
* @param dam 落馬判定を発した際に受けたダメージ量
* @param force TRUEならば強制的に落馬する
{
grid_type *g_ptr;
- /* Access the location */
y = p_ptr->y + ddy_ddd[i];
x = p_ptr->x + ddx_ddd[i];