OSDN Git Service

Merge remote-tracking branch 'remotes/origin/feature/Fix-Steal-And-Run' into develop...
[hengband/hengband.git] / src / core / stuff-handler.c
1 #include "core/stuff-handler.h"
2 #include "core/player-redraw-types.h"
3 #include "core/player-update-types.h"
4 #include "core/window-redrawer.h"
5
6 /*!
7  * @brief 全更新処理をチェックして処理していく
8  * Handle "player_ptr->update" and "player_ptr->redraw" and "player_ptr->window"
9  * @return なし
10  */
11 void handle_stuff(player_type* player_ptr)
12 {
13     if (player_ptr->update)
14         update_creature(player_ptr);
15     if (player_ptr->redraw)
16         redraw_stuff(player_ptr);
17     if (player_ptr->window)
18         window_stuff(player_ptr);
19 }
20
21 /*
22  * Track the given monster race
23  */
24 void monster_race_track(player_type *player_ptr, MONRACE_IDX r_idx)
25 {
26     player_ptr->monster_race_idx = r_idx;
27     player_ptr->window |= (PW_MONSTER);
28 }
29
30 /*
31  * Track the given object kind
32  */
33 void object_kind_track(player_type *player_ptr, KIND_OBJECT_IDX k_idx)
34 {
35     player_ptr->object_kind_idx = k_idx;
36     player_ptr->window |= (PW_OBJECT);
37 }
38
39 /*
40  * Track a new monster
41  * @param player_ptr プレーヤーへの参照ポインタ
42  * @param m_idx トラッキング対象のモンスターID。0の時キャンセル
43  * @param なし
44  */
45 void health_track(player_type *player_ptr, MONSTER_IDX m_idx)
46 {
47     if (m_idx && m_idx == player_ptr->riding)
48         return;
49
50     player_ptr->health_who = m_idx;
51     player_ptr->redraw |= (PR_HEALTH);
52 }
53
54 bool update_player(player_type *caster_ptr)
55 {
56     caster_ptr->update |= PU_COMBINE | PU_REORDER;
57     caster_ptr->window |= PW_INVEN;
58     return TRUE;
59 }
60
61 bool redraw_player(player_type *caster_ptr)
62 {
63     if (caster_ptr->csp > caster_ptr->msp) {
64         caster_ptr->csp = caster_ptr->msp;
65     }
66
67     caster_ptr->redraw |= PR_MANA;
68     caster_ptr->update |= PU_COMBINE | PU_REORDER;
69     caster_ptr->window |= PW_INVEN;
70     return TRUE;
71 }