OSDN Git Service

[Feature] #37856 ウィザードモードの"Q"コマンドで任意のクエストを発生中にする処理追加(バグがまだある可能性大) / Implement that...
[hengband/hengband.git] / src / wizard2.c
index 5949c27..9f17e4d 100644 (file)
@@ -74,8 +74,6 @@ void do_cmd_rerate(bool display)
        p_ptr->redraw |= (PR_HP);
 
        p_ptr->window |= (PW_PLAYER);
-
-       /* Handle stuff */
        handle_stuff();
 
        if (display)
@@ -347,7 +345,7 @@ static void do_cmd_wiz_reset_class(void)
        /* {.} and {$} effect p_ptr->warning and TRC_TELEPORT_SELF */
        p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
 
-       update_stuff();
+       handle_stuff();
 }
 
 
@@ -752,8 +750,6 @@ static KIND_OBJECT_IDX wiz_create_itemtype(void)
 
        char buf[160];
 
-
-       /* Clear screen */
        Term_clear();
 
        /* Print all tval's and their descriptions */
@@ -786,8 +782,6 @@ static KIND_OBJECT_IDX wiz_create_itemtype(void)
 
 
        /*** And now we go for k_idx ***/
-
-       /* Clear screen */
        Term_clear();
 
        /* We have to search the whole itemlist. */
@@ -1288,8 +1282,6 @@ static void do_cmd_wiz_play(void)
        /* The item was not changed */
        changed = FALSE;
 
-
-       /* Save the screen */
        screen_save();
 
        q_ptr = &forge;
@@ -1394,8 +1386,6 @@ static void wiz_create_item(void)
        object_type *q_ptr;
 
        OBJECT_IDX k_idx;
-
-       /* Save the screen */
        screen_save();
 
        /* Get object base type */
@@ -2030,6 +2020,28 @@ void do_cmd_debug(void)
                teleport_player(10, 0L);
                break;
 
+       /* Take a Quests */
+       case 'Q':
+               {
+                       char ppp[30];
+                       char tmp_val[5];
+                       int tmp_int;
+                       sprintf(ppp, "QuestID (0-%d):", max_q_idx - 1);
+                       sprintf(tmp_val, "%d", 0);
+
+                       if (!get_string(ppp, tmp_val, 3)) return;
+                       tmp_int = atoi(tmp_val);
+
+                       if(tmp_int < 0) break;
+                       if(tmp_int >= max_q_idx) break;
+
+                       p_ptr->inside_quest = tmp_int;
+                       process_dungeon_file("q_info.txt", 0, 0, 0, 0);
+                       quest[tmp_int].status = QUEST_STATUS_TAKEN;
+                       p_ptr->inside_quest = 0;
+               }
+               break;
+
        /* Complete a Quest -KMW- */
        case 'q':
                if(p_ptr->inside_quest)