OSDN Git Service

[Feature] #37856 ウィザードモードの"Q"コマンドで任意のクエストを発生中にする処理追加(バグがまだある可能性大) / Implement that...
authorDeskull <deskull@users.sourceforge.jp>
Sat, 22 Dec 2018 22:25:33 +0000 (07:25 +0900)
committerDeskull <deskull@users.sourceforge.jp>
Sat, 22 Dec 2018 22:25:33 +0000 (07:25 +0900)
src/birth.c
src/externs.h
src/files.c
src/wizard2.c
src/xtra1.c

index 8785ead..cc7d84f 100644 (file)
@@ -1928,8 +1928,8 @@ static void init_dungeon_quests(void)
        /* Generate quests */
        for (i = MIN_RANDOM_QUEST + number_of_quests - 1; i >= MIN_RANDOM_QUEST; i--)
        {
-               quest_type      *q_ptr = &quest[i];
-               monster_race    *quest_r_ptr;
+               quest_type *q_ptr = &quest[i];
+               monster_race *quest_r_ptr;
 
                q_ptr->status = QUEST_STATUS_TAKEN;
                determine_random_questor(q_ptr);
index 82c44aa..3063b53 100644 (file)
@@ -620,7 +620,7 @@ extern void prevent_turn_overflow(void);
 extern void safe_setuid_drop(void);
 extern void safe_setuid_grab(void);
 extern s16b tokenize(char *buf, s16b num, char **tokens, BIT_FLAGS mode);
-extern void display_player(BIT_FLAGS mode);
+extern void display_player(int mode);
 extern errr make_character_dump(FILE *fff);
 extern errr file_character(cptr name);
 extern errr process_pref_file_command(char *buf);
index 7210d6f..6dcd731 100644 (file)
@@ -3802,13 +3802,11 @@ c_put_str(TERM_YELLOW, "現在", row, stat_col+35);
  * Mode 4 = mutations
  * </pre>
  */
-void display_player(BIT_FLAGS mode)
+void display_player(int mode)
 {
        int i;
-
-       char    buf[80];
-       char    tmp[64];
-
+       char buf[80];
+       char tmp[64];
 
        if ((p_ptr->muta1 || p_ptr->muta2 || p_ptr->muta3) && display_mutations)
                mode = (mode % 5);
@@ -4059,7 +4057,6 @@ static void dump_aux_display_player(FILE *fff)
        char c;
        char buf[1024];
 
-       /* Display player */
        display_player(0);
 
        /* Dump part of the screen */
@@ -6606,8 +6603,6 @@ static void show_info(void)
        }
 
        update_playtime();
-
-       /* Display player */
        display_player(0);
 
        /* Prompt for inventory */
index 9015cf8..9f17e4d 100644 (file)
@@ -2020,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)
index 3795201..fca9512 100644 (file)
@@ -1940,8 +1940,6 @@ static void fix_player(void)
                Term_activate(angband_term[j]);
 
                update_playtime();
-
-               /* Display player */
                display_player(0);
                Term_fresh();