if (!tgt_pt(&x, &y)) return FALSE;
- if (!cave_empty_bold(y, x))
- {
-#ifdef JP
-msg_print("ÀºÎ¤«¤éʪ¼Á³¦¤ËÌá¤ë»þ¤¦¤Þ¤¯¤¤¤«¤Ê¤«¤Ã¤¿¡ª");
-#else
- msg_print("You fail to exit the astral plane correctly!");
-#endif
-
- teleport_player(10);
- }
- else teleport_player_to(y, x, FALSE);
+ teleport_player_to(y, x, TELEPORT_NONMAGICAL);
return (TRUE);
}
* 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[80];
+ 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.");
while (--attempts)
{
scatter(&wy, &wx, py, px, 3, 0);
- if (cave_naked_bold(wy, wx)) break;
+ if (cave_empty_bold(wy, wx)) break;
}
(void)alloc_horde(wy, wx);
if (!target_who) return;
/* Teleport to the target */
- teleport_player_to(target_row, target_col, FALSE);
+ teleport_player_to(target_row, target_col, TELEPORT_NONMAGICAL);
}
if (tmp_s16b < WEAPON_EXP_UNSKILLED) tmp_s16b = WEAPON_EXP_UNSKILLED;
if (tmp_s16b > WEAPON_EXP_MASTER) tmp_s16b = WEAPON_EXP_MASTER;
- for (j = 0; j <= TV_SWORD - TV_BOW; j++)
+ for (j = 0; j <= TV_WEAPON_END - TV_WEAPON_BEGIN; j++)
{
for (i = 0;i < 64;i++)
{
prt_alloc(o_ptr->tval, o_ptr->sval, 1, 0);
/* Describe fully */
- object_desc_store(buf, o_ptr, TRUE, 3);
+ object_desc(buf, o_ptr, OD_STORE);
prt(buf, 2, j);
prt(format("kind = %-5d level = %-4d tval = %-5d sval = %-5d",
- o_ptr->k_idx, get_object_level(o_ptr),
+ o_ptr->k_idx, k_info[o_ptr->k_idx].level,
o_ptr->tval, o_ptr->sval), 4, j);
prt(format("number = %-3d wgt = %-6d ac = %-5d damage = %dd%d",
{ 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" },
/* Hack -- leave artifacts alone */
- if (artifact_p(o_ptr) || o_ptr->art_name) return;
+ if (object_is_artifact(o_ptr)) return;
p = "Enter new 'pval' setting: ";
sprintf(tmp_val, "%d", o_ptr->pval);
/* Hack -- leave artifacts alone */
- if (artifact_p(o_ptr) || o_ptr->art_name) return;
+ if (object_is_artifact(o_ptr)) return;
/* Get local object */
if (!get_com("[a]ccept, [w]orthless, [c]ursed, [n]ormal, [g]ood, [e]xcellent, [s]pecial? ", &ch, FALSE))
{
/* Preserve wizard-generated artifacts */
- if (artifact_p(q_ptr))
+ if (object_is_fixed_artifact(q_ptr))
{
a_info[q_ptr->name1].cur_num = 0;
q_ptr->name1 = 0;
}
/* Preserve wizard-generated artifacts */
- if (artifact_p(q_ptr))
+ if (object_is_fixed_artifact(q_ptr))
{
a_info[q_ptr->name1].cur_num = 0;
q_ptr->name1 = 0;
apply_magic(q_ptr, dun_level, AM_GOOD | AM_GREAT | AM_SPECIAL);
/* Failed to create artifact; make a random one */
- if (!artifact_p(q_ptr) && !q_ptr->art_name) create_artifact(q_ptr, FALSE);
+ if (!object_is_artifact(q_ptr)) create_artifact(q_ptr, FALSE);
break;
}
}
/* XXX XXX XXX Mega-Hack -- allow multiple artifacts */
- if (artifact_p(o_ptr)) a_info[o_ptr->name1].cur_num = 0;
+ if (object_is_fixed_artifact(o_ptr)) a_info[o_ptr->name1].cur_num = 0;
/* Interact */
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);
/* XXX XXX XXX Mega-Hack -- allow multiple artifacts */
- if (artifact_p(q_ptr)) a_info[q_ptr->name1].cur_num = 0;
+ if (object_is_fixed_artifact(q_ptr)) a_info[q_ptr->name1].cur_num = 0;
/* Test for the same tval and sval. */
/* Hack -- Normally only make a single artifact */
- if (artifact_p(o_ptr)) a_info[o_ptr->name1].cur_num = 1;
+ if (object_is_fixed_artifact(o_ptr)) a_info[o_ptr->name1].cur_num = 1;
}
/* Never duplicate artifacts */
- if (artifact_p(o_ptr) || o_ptr->art_name) return;
+ if (object_is_artifact(o_ptr)) return;
/* Store old quantity. -LM- */
tmp_qnt = o_ptr->number;
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).");
(void)restore_level();
/* Heal the player */
- p_ptr->chp = p_ptr->mhp;
- p_ptr->chp_frac = 0;
+ if (p_ptr->chp < p_ptr->mhp)
+ {
+ p_ptr->chp = p_ptr->mhp;
+ p_ptr->chp_frac = 0;
+
+ /* Redraw */
+ p_ptr->redraw |= (PR_HP);
+
+ /* Window stuff */
+ p_ptr->window |= (PW_PLAYER);
+ }
/* Restore mana */
if (p_ptr->csp < p_ptr->msp)
{
p_ptr->csp = p_ptr->msp;
p_ptr->csp_frac = 0;
+
+ p_ptr->redraw |= (PR_MANA);
+ p_ptr->window |= (PW_PLAYER);
+ p_ptr->window |= (PW_SPELL);
}
/* Cure stuff */
/* No longer hungry */
(void)set_food(PY_FOOD_MAX - 1);
-
- /* Redraw everything */
- do_cmd_redraw();
}
/* Change level */
dun_level = command_arg;
- prepare_change_floor_mode(CFM_RAND_PLACE | CFM_CLEAR_ALL);
+ prepare_change_floor_mode(CFM_RAND_PLACE);
if (!dun_level) dungeon_type = 0;
p_ptr->inside_arena = FALSE;
/* Prevent energy_need from being too lower than 0 */
p_ptr->energy_need = 0;
+ /*
+ * Clear all saved floors
+ * and create a first saved floor
+ */
+ prepare_change_floor_mode(CFM_FIRST_FLOOR);
+
/* Leaving */
p_ptr->leaving = TRUE;
}
*/
static void do_cmd_wiz_named(int r_idx)
{
- int i, x, y;
-
- /* Paranoia */
- /* if (!r_idx) return; */
-
- /* Prevent illegal monsters */
- if (r_idx >= max_r_idx) return;
-
- /* Try 10 times */
- for (i = 0; i < 10; i++)
- {
- int d = 1;
-
- /* Pick a location */
- scatter(&y, &x, py, px, d, 0);
-
- /* Require empty grids */
- if (!cave_empty_bold(y, x)) continue;
-
- /* Place it (allow groups) */
- if (place_monster_aux(0, y, x, r_idx, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP))) break;
- }
+ (void)summon_named_creature(0, py, px, r_idx, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP));
}
*/
static void do_cmd_wiz_named_friendly(int r_idx)
{
- (void) summon_named_creature(0, py, px, r_idx, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP | PM_FORCE_PET));
+ (void)summon_named_creature(0, py, px, r_idx, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP | PM_FORCE_PET));
}
/* Paranoia -- Skip dead monsters */
if (!m_ptr->r_idx) continue;
+ /* Skip the mount */
+ if (i == p_ptr->riding) continue;
+
/* Delete nearby monsters */
if (m_ptr->cdis <= MAX_SIGHT)
{
- if (i == p_ptr->riding)
+ if (record_named_pet && is_pet(m_ptr) && m_ptr->nickname)
{
- rakuba(-1, FALSE);
- p_ptr->redraw |= (PR_EXTRA);
+ 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);
}
}
/* Paranoia -- Skip dead monsters */
if (!m_ptr->r_idx) continue;
- if (i == p_ptr->riding)
+ /* Skip the mount */
+ if (i == p_ptr->riding) continue;
+
+ if (record_named_pet && is_pet(m_ptr) && m_ptr->nickname)
{
- rakuba(-1, FALSE);
- p_ptr->redraw |= (PR_EXTRA);
+ 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 */
}
+/*
+ * Create desired feature
+ */
+static void do_cmd_wiz_create_feature(void)
+{
+ 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;
+
+ c_ptr = &cave[y][x];
+
+ /* Default */
+ sprintf(tmp_val, "%d", prev_feat);
+
+ /* Query */
+#ifdef JP
+ if (!get_string("ÃÏ·Á: ", tmp_val, 3)) return;
+#else
+ if (!get_string("Feature: ", tmp_val, 3)) return;
+#endif
+
+ /* Extract */
+ tmp_feat = atoi(tmp_val);
+ if (tmp_feat < 0) tmp_feat = 0;
+ else if (tmp_feat >= max_f_idx) tmp_feat = max_f_idx - 1;
+
+ /* Default */
+ sprintf(tmp_val, "%d", prev_mimic);
+
+ /* Query */
+#ifdef JP
+ if (!get_string("ÃÏ·Á (mimic): ", tmp_val, 3)) return;
+#else
+ if (!get_string("Feature (mimic): ", tmp_val, 3)) return;
+#endif
+
+ /* Extract */
+ tmp_mimic = atoi(tmp_val);
+ if (tmp_mimic < 0) tmp_mimic = 0;
+ else if (tmp_mimic >= max_f_idx) tmp_mimic = max_f_idx - 1;
+
+ cave_set_feat(y, x, tmp_feat);
+ c_ptr->mimic = tmp_mimic;
+
+ 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_FLOW);
+
+ prev_feat = tmp_feat;
+ prev_mimic = tmp_mimic;
+}
+
+
#define NUM_O_SET 8
#define NUM_O_BIT 32
/* Create a named artifact */
case 'C':
- wiz_create_named_art(command_arg);
+ wiz_create_named_art();
break;
/* Detect everything */
case 'd':
- detect_all(DETECT_RAD_ALL*3);
+ detect_all(DETECT_RAD_ALL * 3);
break;
/* Dimension_door */
identify_fully(FALSE);
break;
+ /* Create desired feature */
+ case 'F':
+ do_cmd_wiz_create_feature();
+ break;
+
/* Good Objects */
case 'g':
if (command_arg <= 0) command_arg = 1;
/* Magic Mapping */
case 'm':
- map_area(DETECT_RAD_ALL);
+ map_area(DETECT_RAD_ALL * 3);
break;
/* Mutation */
/* Phase Door */
case 'p':
- teleport_player(10);
+ teleport_player(10, 0L);
break;
#if 0
/* Teleport */
case 't':
- teleport_player(100);
+ teleport_player(100, 0L);
break;
/* Very Good Objects */