OSDN Git Service

replace realm_subinfo's char[n] to cptr
[hengband/hengband.git] / src / wizard2.c
index 619944a..27fa4b1 100644 (file)
@@ -108,7 +108,7 @@ static bool wiz_dimension_door(void)
 
        if (!tgt_pt(&x, &y)) return FALSE;
 
-       teleport_player_to(y, x, FALSE, FALSE);
+       teleport_player_to(y, x, TELEPORT_NONMAGICAL);
 
        return (TRUE);
 }
@@ -118,10 +118,21 @@ static bool wiz_dimension_door(void)
  * Create the artifact of the specified number -- DAN
  *
  */
-static void wiz_create_named_art(int a_idx)
+static void wiz_create_named_art(void)
 {
+       char tmp_val[10] = "";
+       int a_idx;
+
+       /* Query */
+       if (!get_string("Artifact ID:", tmp_val, 3)) return;
+
+       /* Extract */
+       a_idx = atoi(tmp_val);
+       if(a_idx < 0) a_idx = 0;
+       if(a_idx >= max_a_idx) a_idx = 0; 
+
        /* Create the artifact */
-       create_named_art(a_idx, py, px);
+       (void)create_named_art(a_idx, py, px);
 
        /* All done */
        msg_print("Allocated.");
@@ -329,6 +340,39 @@ static void prt_alloc(byte tval, byte sval, int row, int col)
        prt(r, row, col);
 }
 
+static void do_cmd_wiz_reset_class(void)
+{
+       int tmp_int;
+       char tmp_val[160];
+       char ppp[80];
+
+       /* Prompt */
+       sprintf(ppp, "Class (0-%d): ", MAX_CLASS - 1);
+
+       /* Default */
+       sprintf(tmp_val, "%d", p_ptr->pclass);
+
+       /* Query */
+       if (!get_string(ppp, tmp_val, 2)) return;
+
+       /* Extract */
+       tmp_int = atoi(tmp_val);
+
+       /* Verify */
+       if (tmp_int < 0 || tmp_int >= MAX_CLASS) return;
+
+       /* Save it */
+       p_ptr->pclass = tmp_int;
+
+       /* Redraw inscription */
+       p_ptr->window |= (PW_PLAYER);
+
+       /* {.} and {$} effect p_ptr->warning and TRC_TELEPORT_SELF */
+       p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
+
+       update_stuff();
+}
+
 
 /*
  * Hack -- Teleport to the target
@@ -339,7 +383,7 @@ static void do_cmd_wiz_bamf(void)
        if (!target_who) return;
 
        /* Teleport to the target */
-       teleport_player_to(target_row, target_col, FALSE, FALSE);
+       teleport_player_to(target_row, target_col, TELEPORT_NONMAGICAL);
 }
 
 
@@ -649,11 +693,12 @@ static tval_desc tvals[] =
        { TV_DEATH_BOOK,        "Death Spellbook"      },
        { TV_TRUMP_BOOK,        "Trump Spellbook"      },
        { TV_ARCANE_BOOK,       "Arcane Spellbook"     },
-       { TV_ENCHANT_BOOK,      "Craft Spellbook"},
+       { TV_CRAFT_BOOK,      "Craft Spellbook"},
        { TV_DAEMON_BOOK,       "Daemon Spellbook"},
        { TV_CRUSADE_BOOK,      "Crusade Spellbook"},
        { TV_MUSIC_BOOK,        "Music Spellbook"      },
        { TV_HISSATSU_BOOK,     "Book of Kendo" },
+       { TV_HEX_BOOK,          "Hex Spellbook"        },
        { TV_PARCHMENT,         "Parchment" },
        { TV_WHISTLE,           "Whistle"       },
        { TV_SPIKE,             "Spikes"               },
@@ -1039,7 +1084,7 @@ static void wiz_statistics(object_type *o_ptr)
                        break;
                }
 
-               sprintf(tmp_val, "%ld", test_roll);
+               sprintf(tmp_val, "%ld", (long int)test_roll);
                if (get_string(p, tmp_val, 10)) test_roll = atol(tmp_val);
                test_roll = MAX(1, test_roll);
 
@@ -1390,7 +1435,7 @@ static void wiz_create_item(void)
                        if (a_info[i].sval != k_info[k_idx].sval) continue;
 
                        /* Create this artifact */
-                       create_named_art(i, py, px);
+                       (void)create_named_art(i, py, px);
 
                        /* All done */
                        msg_print("Allocated(INSTA_ART).");
@@ -1643,6 +1688,14 @@ static void do_cmd_wiz_zap(void)
                /* Delete nearby monsters */
                if (m_ptr->cdis <= MAX_SIGHT)
                {
+                       if (record_named_pet && is_pet(m_ptr) && m_ptr->nickname)
+                       {
+                               char m_name[80];
+
+                               monster_desc(m_name, m_ptr, MD_INDEF_VISIBLE);
+                               do_cmd_write_nikki(NIKKI_NAMED_PET, RECORD_NAMED_PET_WIZ_ZAP, m_name);
+                       }
+
                        delete_monster_idx(i);
                }
        }
@@ -1667,6 +1720,14 @@ static void do_cmd_wiz_zap_all(void)
                /* Skip the mount */
                if (i == p_ptr->riding) continue;
 
+               if (record_named_pet && is_pet(m_ptr) && m_ptr->nickname)
+               {
+                       char m_name[80];
+
+                       monster_desc(m_name, m_ptr, MD_INDEF_VISIBLE);
+                       do_cmd_write_nikki(NIKKI_NAMED_PET, RECORD_NAMED_PET_WIZ_ZAP, m_name);
+               }
+
                /* Delete this monster */
                delete_monster_idx(i);
        }
@@ -1678,12 +1739,13 @@ static void do_cmd_wiz_zap_all(void)
  */
 static void do_cmd_wiz_create_feature(void)
 {
-       static int prev_feat = FEAT_NONE;
-       static int prev_mimic = FEAT_NONE;
-       cave_type  *c_ptr;
-       char       tmp_val[160];
-       int        tmp_feat, tmp_mimic;
-       int        y, x;
+       static int   prev_feat = 0;
+       static int   prev_mimic = 0;
+       cave_type    *c_ptr;
+       feature_type *f_ptr;
+       char         tmp_val[160];
+       int          tmp_feat, tmp_mimic;
+       int          y, x;
 
        if (!tgt_pt(&x, &y)) return;
 
@@ -1721,18 +1783,23 @@ static void do_cmd_wiz_create_feature(void)
 
        cave_set_feat(y, x, tmp_feat);
        c_ptr->mimic = tmp_mimic;
-       if (tmp_mimic)
-       {
-               feature_type *f_ptr = &f_info[tmp_mimic];
 
-               if (have_flag(f_ptr->flags, FF_GLYPH) ||
-                   have_flag(f_ptr->flags, FF_MINOR_GLYPH) ||
-                   have_flag(f_ptr->flags, FF_MIRROR))
-                       c_ptr->info |= (CAVE_OBJECT);
-       }
+       f_ptr = &f_info[get_feat_mimic(c_ptr)];
+
+       if (have_flag(f_ptr->flags, FF_GLYPH) ||
+           have_flag(f_ptr->flags, FF_MINOR_GLYPH))
+               c_ptr->info |= (CAVE_OBJECT);
+       else if (have_flag(f_ptr->flags, FF_MIRROR))
+               c_ptr->info |= (CAVE_GLOW | CAVE_OBJECT);
+
+       /* Notice */
+       note_spot(y, x);
+
+       /* Redraw */
+       lite_spot(y, x);
 
        /* Update some things */
-       p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
+       p_ptr->update |= (PU_FLOW);
 
        prev_feat = tmp_feat;
        prev_mimic = tmp_mimic;
@@ -1781,7 +1848,7 @@ static void do_cmd_dump_options(void)
        /* Check for exist option bits */
        for (i = 0; option_info[i].o_desc; i++)
        {
-               option_type *ot_ptr = &option_info[i];
+               const option_type *ot_ptr = &option_info[i];
                if (ot_ptr->o_var) exist[ot_ptr->o_set][ot_ptr->o_bit] = i + 1;
        }
 
@@ -1797,7 +1864,7 @@ static void do_cmd_dump_options(void)
                {
                        if (exist[i][j])
                        {
-                               option_type *ot_ptr = &option_info[exist[i][j] - 1];
+                               const option_type *ot_ptr = &option_info[exist[i][j] - 1];
                                fprintf(fff, "  %d -  %02d (%4d) %s\n",
                                        i, j, ot_ptr->o_page, ot_ptr->o_text);
                        }
@@ -1905,7 +1972,7 @@ void do_cmd_debug(void)
 
        /* Create a named artifact */
        case 'C':
-               wiz_create_named_art(command_arg);
+               wiz_create_named_art();
                break;
 
        /* Detect everything */
@@ -1988,6 +2055,11 @@ void do_cmd_debug(void)
                (void)gain_random_mutation(command_arg);
                break;
 
+       /* Reset Class */
+       case 'R':
+               (void)do_cmd_wiz_reset_class();
+               break;
+
        /* Specific reward */
        case 'r':
                (void)gain_level_reward(command_arg);
@@ -2015,7 +2087,7 @@ void do_cmd_debug(void)
 
        /* Phase Door */
        case 'p':
-               teleport_player(10, FALSE);
+               teleport_player(10, 0L);
                break;
 
 #if 0
@@ -2059,7 +2131,7 @@ void do_cmd_debug(void)
 
        /* Teleport */
        case 't':
-               teleport_player(100, FALSE);
+               teleport_player(100, 0L);
                break;
 
        /* Very Good Objects */