OSDN Git Service

[Refactor] #39321 do_cmd_write_nikki() を exe_write_diary() に改名.
[hengband/hengband.git] / src / bldg.c
index dd76e30..cf3c46a 100644 (file)
@@ -43,6 +43,7 @@
 #include "cmd-spell.h"
 #include "rumor.h"
 #include "spells.h"
+#include "spells-object.h"
 #include "spells-status.h"
 #include "realm-hex.h"
 #include "dungeon-file.h"
@@ -348,7 +349,7 @@ static void arena_comm(int cmd)
                                                msg_print(NULL);
                                        
                                                p_ptr->exit_bldg = FALSE;
-                                               reset_tim_flags();
+                                               reset_tim_flags(p_ptr);
 
                                                /* Save the surface floor as saved floor */
                                                prepare_change_floor_mode(CFM_SAVE_FLOORS);
@@ -378,7 +379,7 @@ static void arena_comm(int cmd)
                        else
                        {
                                p_ptr->exit_bldg = FALSE;
-                               reset_tim_flags();
+                               reset_tim_flags(p_ptr);
 
                                /* Save the surface floor as saved floor */
                                prepare_change_floor_mode(CFM_SAVE_FLOORS);
@@ -1427,12 +1428,12 @@ static bool gamble_comm(int cmd)
                        {
                                msg_print(_("「今回は儲けたな!でも次はこっちが勝ってやるからな、絶対に!」",
                                                        "You came out a winner! We'll win next time, I'm sure."));
-                               chg_virtue(V_CHANCE, 3);
+                               chg_virtue(p_ptr, V_CHANCE, 3);
                        }
                        else
                        {
                                msg_print(_("「金をスッてしまったな、わはは!うちに帰った方がいいぜ。」", "You lost gold! Haha, better head home."));
-                               chg_virtue(V_CHANCE, -3);
+                               chg_virtue(p_ptr, V_CHANCE, -3);
                        }
                }
                msg_print(NULL);
@@ -1452,7 +1453,7 @@ void update_gambling_monsters(void)
        int mon_level;
        int power[4];
        bool tekitou;
-       bool old_inside_battle = p_ptr->inside_battle;
+       bool old_inside_battle = p_ptr->phase_out;
 
        for (i = 0; i < max_d_idx; i++)
                if (max_dl < max_dlv[i]) max_dl = max_dlv[i];
@@ -1480,9 +1481,9 @@ void update_gambling_monsters(void)
                        while (1)
                        {
                                get_mon_num_prep(monster_can_entry_arena, NULL);
-                               p_ptr->inside_battle = TRUE;
+                               p_ptr->phase_out = TRUE;
                                r_idx = get_mon_num(mon_level);
-                               p_ptr->inside_battle = old_inside_battle;
+                               p_ptr->phase_out = old_inside_battle;
                                if (!r_idx) continue;
 
                                if ((r_info[r_idx].flags1 & RF1_UNIQUE) || (r_info[r_idx].flags7 & RF7_UNIQUE2))
@@ -1656,15 +1657,15 @@ static bool kakutoujou(void)
                        battle_odds = MAX(wager+1, wager * battle_odds / 100);
                        kakekin = wager;
                        p_ptr->au -= wager;
-                       reset_tim_flags();
+                       reset_tim_flags(p_ptr);
 
                        /* Save the surface floor as saved floor */
                        prepare_change_floor_mode(CFM_SAVE_FLOORS);
 
-                       p_ptr->inside_battle = TRUE;
+                       p_ptr->phase_out = TRUE;
                        p_ptr->leaving = TRUE;
-
                        p_ptr->leave_bldg = TRUE;
+
                        screen_load();
 
                        return (TRUE);
@@ -1936,7 +1937,7 @@ static bool kankin(void)
                                inven_item_increase(i, -o_ptr->number);
                                inven_item_describe(i);
                                inven_item_optimize(i);
-                               chg_virtue(V_JUSTICE, 5);
+                               chg_virtue(p_ptr, V_JUSTICE, 5);
                                current_world_ptr->bounty_r_idx[j] += 10000;
 
                                change = TRUE;
@@ -1947,7 +1948,7 @@ static bool kankin(void)
                                inven_item_describe(i);
                                inven_item_optimize(i);
 
-                               chg_virtue(V_JUSTICE, 5);
+                               chg_virtue(p_ptr, V_JUSTICE, 5);
                                current_world_ptr->bounty_r_idx[j] += 10000;
 
                                /* Count number of unique corpses already handed */
@@ -2015,7 +2016,7 @@ static bool inn_comm(int cmd)
                                return FALSE;
                        }
                        msg_print(_("バーテンはいくらかの食べ物とビールをくれた。", "The barkeep gives you some gruel and a beer."));
-                       (void)set_food(PY_FOOD_MAX - 1);
+                       (void)set_food(p_ptr, PY_FOOD_MAX - 1);
                        break;
 
                case BACT_REST: /* Rest for the night */
@@ -2032,9 +2033,9 @@ static bool inn_comm(int cmd)
 
                                extract_day_hour_min(&prev_day, &prev_hour, &prev_min);
                                if ((prev_hour >= 6) && (prev_hour <= 17)) 
-                                       do_cmd_write_nikki(NIKKI_BUNSHOU, 0, _("宿屋に泊まった。", "stay over daytime at the inn."));
+                                       exe_write_diary(p_ptr, NIKKI_BUNSHOU, 0, _("宿屋に泊まった。", "stay over daytime at the inn."));
                                else
-                                       do_cmd_write_nikki(NIKKI_BUNSHOU, 0, _("宿屋に泊まった。", "stay over night at the inn."));
+                                       exe_write_diary(p_ptr, NIKKI_BUNSHOU, 0, _("宿屋に泊まった。", "stay over night at the inn."));
                                
                                current_world_ptr->game_turn = (current_world_ptr->game_turn / (TURNS_PER_TICK * TOWN_DAWN / 2) + 1) * (TURNS_PER_TICK * TOWN_DAWN / 2);
                                if (current_world_ptr->dungeon_turn < current_world_ptr->dungeon_turn_limit)
@@ -2045,7 +2046,7 @@ static bool inn_comm(int cmd)
 
                                prevent_turn_overflow();
 
-                               if ((prev_hour >= 18) && (prev_hour <= 23)) do_cmd_write_nikki(NIKKI_HIGAWARI, 0, NULL);
+                               if ((prev_hour >= 18) && (prev_hour <= 23)) exe_write_diary(p_ptr, NIKKI_HIGAWARI, 0, NULL);
                                p_ptr->chp = p_ptr->mhp;
 
                                if (ironman_nightmare)
@@ -2055,17 +2056,17 @@ static bool inn_comm(int cmd)
                                        /* Have some nightmares */
                                        while(1)
                                        {
-                                               sanity_blast(NULL, FALSE);
+                                               sanity_blast(p_ptr, NULL, FALSE);
                                                if (!one_in_(3)) break;
                                        }
 
                                        msg_print(_("あなたは絶叫して目を覚ました。", "You awake screaming."));
-                                       do_cmd_write_nikki(NIKKI_BUNSHOU, 0, _("悪夢にうなされてよく眠れなかった。", "be troubled by a nightmare."));
+                                       exe_write_diary(p_ptr, NIKKI_BUNSHOU, 0, _("悪夢にうなされてよく眠れなかった。", "be troubled by a nightmare."));
                                }
                                else
                                {
-                                       set_blind(0);
-                                       set_confused(0);
+                                       set_blind(p_ptr, 0);
+                                       set_confused(p_ptr, 0);
                                        p_ptr->stun = 0;
                                        p_ptr->chp = p_ptr->mhp;
                                        p_ptr->csp = p_ptr->msp;
@@ -2085,12 +2086,12 @@ static bool inn_comm(int cmd)
                                        if ((prev_hour >= 6) && (prev_hour <= 17))
                                        {
                                                msg_print(_("あなたはリフレッシュして目覚め、夕方を迎えた。", "You awake refreshed for the evening."));
-                                               do_cmd_write_nikki(NIKKI_BUNSHOU, 0, _("夕方を迎えた。", "awake refreshed."));
+                                               exe_write_diary(p_ptr, NIKKI_BUNSHOU, 0, _("夕方を迎えた。", "awake refreshed."));
                                        }
                                        else
                                        {
                                                msg_print(_("あなたはリフレッシュして目覚め、新たな日を迎えた。", "You awake refreshed for the new day."));
-                                               do_cmd_write_nikki(NIKKI_BUNSHOU, 0, _("すがすがしい朝を迎えた。", "awake refreshed."));
+                                               exe_write_diary(p_ptr, NIKKI_BUNSHOU, 0, _("すがすがしい朝を迎えた。", "awake refreshed."));
                                        }
                                }
                        }
@@ -2921,7 +2922,7 @@ static PRICE repair_broken_weapon_aux(PRICE bcost)
        /* Only forge broken weapons */
        item_tester_hook = item_tester_hook_broken_weapon;
 
-       o_ptr = choose_object(&item, q, s, (USE_INVEN | USE_EQUIP), item_tester_tval);
+       o_ptr = choose_object(&item, q, s, (USE_INVEN | USE_EQUIP), 0);
        if (!o_ptr) return (0);
 
        /* It is worthless */
@@ -3130,7 +3131,7 @@ static PRICE repair_broken_weapon_aux(PRICE bcost)
        o_ptr->discount = 99;
 
        p_ptr->total_weight += o_ptr->weight;
-       calc_android_exp();
+       calc_android_exp(p_ptr);
 
        /* Decrease material object */
        inven_item_increase(mater, -1);
@@ -3253,7 +3254,7 @@ static bool enchant_item(PRICE cost, HIT_PROB to_hit, HIT_POINT to_dam, ARMOUR_C
                /* Charge the money */
                p_ptr->au -= (cost * o_ptr->number);
 
-               if (item >= INVEN_RARM) calc_android_exp();
+               if (item >= INVEN_RARM) calc_android_exp(p_ptr);
 
                /* Something happened */
                return (TRUE);
@@ -3781,7 +3782,6 @@ static bool research_mon(void)
        /* Scan the monster memory */
        while (notpicked)
        {
-               /* Extract a race */
                r_idx = who[i];
 
                /* Hack -- Begin the prompt */
@@ -3793,7 +3793,6 @@ static bool research_mon(void)
                /* Interact */
                while (1)
                {
-                       /* Recall */
                        if (recall)
                        {
                                /*** Recall on screen ***/
@@ -3819,7 +3818,6 @@ static bool research_mon(void)
                        /* Normal commands */
                        if (query != 'r') break;
 
-                       /* Toggle recall */
                        recall = !recall;
                }
 
@@ -3997,7 +3995,7 @@ static void bldg_process_command(building_type *bldg, int i)
                if (p_ptr->muta1 || p_ptr->muta2 || (p_ptr->muta3 & ~MUT3_GOOD_LUCK) ||
                        (p_ptr->pseikaku != SEIKAKU_LUCKY && (p_ptr->muta3 & MUT3_GOOD_LUCK)))
                {
-                       while(!lose_mutation(0));
+                       while(!lose_mutation(p_ptr, 0));
                        paid = TRUE;
                }
                else
@@ -4029,25 +4027,25 @@ static void bldg_process_command(building_type *bldg, int i)
 
        case BACT_HEIKOUKA:
                msg_print(_("平衡化の儀式を行なった。", "You received an equalization ritual."));
-               set_virtue(V_COMPASSION, 0);
-               set_virtue(V_HONOUR, 0);
-               set_virtue(V_JUSTICE, 0);
-               set_virtue(V_SACRIFICE, 0);
-               set_virtue(V_KNOWLEDGE, 0);
-               set_virtue(V_FAITH, 0);
-               set_virtue(V_ENLIGHTEN, 0);
-               set_virtue(V_ENCHANT, 0);
-               set_virtue(V_CHANCE, 0);
-               set_virtue(V_NATURE, 0);
-               set_virtue(V_HARMONY, 0);
-               set_virtue(V_VITALITY, 0);
-               set_virtue(V_UNLIFE, 0);
-               set_virtue(V_PATIENCE, 0);
-               set_virtue(V_TEMPERANCE, 0);
-               set_virtue(V_DILIGENCE, 0);
-               set_virtue(V_VALOUR, 0);
-               set_virtue(V_INDIVIDUALISM, 0);
-               get_virtues();
+               set_virtue(p_ptr, V_COMPASSION, 0);
+               set_virtue(p_ptr, V_HONOUR, 0);
+               set_virtue(p_ptr, V_JUSTICE, 0);
+               set_virtue(p_ptr, V_SACRIFICE, 0);
+               set_virtue(p_ptr, V_KNOWLEDGE, 0);
+               set_virtue(p_ptr, V_FAITH, 0);
+               set_virtue(p_ptr, V_ENLIGHTEN, 0);
+               set_virtue(p_ptr, V_ENCHANT, 0);
+               set_virtue(p_ptr, V_CHANCE, 0);
+               set_virtue(p_ptr, V_NATURE, 0);
+               set_virtue(p_ptr, V_HARMONY, 0);
+               set_virtue(p_ptr, V_VITALITY, 0);
+               set_virtue(p_ptr, V_UNLIFE, 0);
+               set_virtue(p_ptr, V_PATIENCE, 0);
+               set_virtue(p_ptr, V_TEMPERANCE, 0);
+               set_virtue(p_ptr, V_DILIGENCE, 0);
+               set_virtue(p_ptr, V_VALOUR, 0);
+               set_virtue(p_ptr, V_INDIVIDUALISM, 0);
+               get_virtues(p_ptr);
                paid = TRUE;
                break;
 
@@ -4127,13 +4125,13 @@ void do_cmd_bldg(void)
 
                return;
        }
-       else if (p_ptr->inside_battle)
+       else if (p_ptr->phase_out)
        {
                /* Don't save the arena as saved floor */
                prepare_change_floor_mode(CFM_SAVE_FLOORS | CFM_NO_RETURN);
 
                p_ptr->leaving = TRUE;
-               p_ptr->inside_battle = FALSE;
+               p_ptr->phase_out = FALSE;
 
                /* Re-enter the monster arena */
                command_new = SPECIAL_KEY_BUILDING;
@@ -4177,7 +4175,7 @@ void do_cmd_bldg(void)
                {
                        p_ptr->leave_bldg = TRUE;
                        p_ptr->inside_arena = FALSE;
-                       p_ptr->inside_battle = FALSE;
+                       p_ptr->phase_out = FALSE;
                        break;
                }
 
@@ -4228,7 +4226,7 @@ void do_cmd_bldg(void)
 void determine_today_mon(bool conv_old)
 {
        int max_dl = 3, i;
-       bool old_inside_battle = p_ptr->inside_battle;
+       bool old_inside_battle = p_ptr->phase_out;
        monster_race *r_ptr;
 
        if (!conv_old)
@@ -4241,7 +4239,7 @@ void determine_today_mon(bool conv_old)
        }
        else max_dl = MAX(max_dlv[DUNGEON_ANGBAND], 3);
 
-       p_ptr->inside_battle = TRUE;
+       p_ptr->phase_out = TRUE;
        get_mon_num_prep(NULL, NULL);
 
        while (1)
@@ -4259,7 +4257,7 @@ void determine_today_mon(bool conv_old)
        }
 
        p_ptr->today_mon = 0;
-       p_ptr->inside_battle = old_inside_battle;
+       p_ptr->phase_out = old_inside_battle;
 }