*/
#include "angband.h"
+#include "floor.h"
#include "selfinfo.h"
+#include "spells-summon.h"
+#include "patron.h"
+#include "mutation.h"
+#include "quest.h"
+#include "artifact.h"
/*!
void do_cmd_rerate_aux(void)
{
/* Minimum hitpoints at highest level */
- int min_value = p_ptr->hitdie + ((PY_MAX_LEVEL + 2) * (p_ptr->hitdie + 1)) * 3 / 8;
+ HIT_POINT min_value = p_ptr->hitdie + ((PY_MAX_LEVEL + 2) * (p_ptr->hitdie + 1)) * 3 / 8;
/* Maximum hitpoints at highest level */
- int max_value = p_ptr->hitdie + ((PY_MAX_LEVEL + 2) * (p_ptr->hitdie + 1)) * 5 / 8;
+ HIT_POINT max_value = p_ptr->hitdie + ((PY_MAX_LEVEL + 2) * (p_ptr->hitdie + 1)) * 5 / 8;
int i;
do_cmd_rerate_aux();
percent = (int)(((long)p_ptr->player_hp[PY_MAX_LEVEL - 1] * 200L) /
- (2 * p_ptr->hitdie +
- ((PY_MAX_LEVEL - 1+3) * (p_ptr->hitdie + 1))));
+ (2 * p_ptr->hitdie + ((PY_MAX_LEVEL - 1+3) * (p_ptr->hitdie + 1))));
/* Update and redraw hitpoints */
p_ptr->update |= (PU_HP);
p_ptr->redraw |= (PR_HP);
-
p_ptr->window |= (PW_PLAYER);
handle_stuff();
int tmp_int = 0;
char ppp[80], tmp_val[40];
- /* Prompt */
sprintf(ppp, "Dungeon Turn (0-%ld): ", (long)dungeon_turn_limit);
-
- /* Default */
sprintf(tmp_val, "%ld", (long)dungeon_turn);
-
- /* Query */
if (!get_string(ppp, tmp_val, 10)) return (FALSE);
-
- /* Extract */
tmp_int = atoi(tmp_val);
/* Verify */
u32b rarity[K_MAX_DEPTH];
u32b total[K_MAX_DEPTH];
s32b display[22];
- cptr r = "+---Rate---+";
+ concptr r = "+---Rate---+";
object_kind *k_ptr;
/* Query the stats */
- for (i = 0; i < 6; i++)
+ for (i = 0; i < A_MAX; i++)
{
/* Prompt */
sprintf(ppp, "%s (3-%d): ", stat_names[i], p_ptr->stat_max_max[i]);
/* Save */
p_ptr->au = tmp_long;
-
/* Default */
sprintf(tmp_val, "%ld", (long)(p_ptr->max_exp));
int i, j = 13;
BIT_FLAGS flgs[TR_FLAG_SIZE];
char buf[256];
-
- /* Extract the flags */
object_flags(o_ptr, flgs);
/* Clear the screen */
typedef struct tval_desc
{
int tval; /*!< 大項目のID */
- cptr desc; /*!< 大項目名 */
+ concptr desc; /*!< 大項目名 */
} tval_desc;
/*!
object_kind *k_ptr = &k_info[k_idx];
- cptr str = (k_name + k_ptr->name);
+ concptr str = (k_name + k_ptr->name);
/* Skip past leading characters */
TERM_LEN col, row;
OBJECT_TYPE_VALUE tval;
- cptr tval_desc;
+ concptr tval_desc;
char ch;
KIND_OBJECT_IDX choice[80];
*/
static void wiz_tweak_item(object_type *o_ptr)
{
- cptr p;
+ concptr p;
char tmp_val[80];
/* Hack -- leave artifacts alone */
{
/* Apply changes */
object_copy(o_ptr, q_ptr);
-
- /* Recalculate bonuses */
p_ptr->update |= (PU_BONUS);
-
- /* Combine / Reorder the pack (later) */
- p_ptr->notice |= (PN_COMBINE | PN_REORDER);
+ p_ptr->update |= (PU_COMBINE | PU_REORDER);
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER);
}
u32b test_roll = 1000000;
char ch;
- cptr quality;
+ concptr quality;
BIT_FLAGS mode;
object_type forge;
object_type *q_ptr;
- cptr q = "Rolls: %ld Correct: %ld Matches: %ld Better: %ld Worse: %ld Other: %ld";
+ concptr q = "Rolls: %ld Correct: %ld Matches: %ld Better: %ld Worse: %ld Other: %ld";
- cptr p = "Enter number of items to roll: ";
+ concptr p = "Enter number of items to roll: ";
char tmp_val[80];
/* Interact */
while (TRUE)
{
- cptr pmt = "Roll for [n]ormal, [g]ood, or [e]xcellent treasure? ";
+ concptr pmt = "Roll for [n]ormal, [g]ood, or [e]xcellent treasure? ";
/* Display item */
wiz_display_item(o_ptr);
int j = 0;
BIT_FLAGS f4 = 0L, f5 = 0L, f6 = 0L;
- for (j = 1; j < 6; j++)
+ for (j = 1; j < A_MAX; j++)
{
set_rf_masks(&f4, &f5, &f6, j);
static void do_cmd_wiz_play(void)
{
OBJECT_IDX item;
-
object_type forge;
object_type *q_ptr;
-
object_type *o_ptr;
-
char ch;
-
bool changed;
+ concptr q, s;
- cptr q, s;
-
- item_tester_no_ryoute = TRUE;
q = "Play with which object? ";
s = "You have nothing to play with.";
- if (!get_item(&item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR))) return;
- /* Get the item (in the pack) */
- if (item >= 0)
- {
- o_ptr = &inventory[item];
- }
+ o_ptr = choose_object(&item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
- /* Get the item (on the floor) */
- else
- {
- o_ptr = &o_list[0 - item];
- }
+ if (!o_ptr) return;
/* The item was not changed */
changed = FALSE;
screen_save();
q_ptr = &forge;
-
- /* Copy object */
object_copy(q_ptr, o_ptr);
/* Change */
object_copy(o_ptr, q_ptr);
-
- /* Recalculate bonuses */
p_ptr->update |= (PU_BONUS);
-
- /* Combine / Reorder the pack (later) */
- p_ptr->notice |= (PN_COMBINE | PN_REORDER);
+ p_ptr->update |= (PU_COMBINE | PU_REORDER);
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER);
}
int i;
for (i = 0; i < num; i++)
{
- (void)summon_specific(0, p_ptr->y, p_ptr->x, dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
+ (void)summon_specific(0, p_ptr->y, p_ptr->x, dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0');
}
}
{
if (record_named_pet && is_pet(m_ptr) && m_ptr->nickname)
{
- char m_name[80];
+ GAME_TEXT m_name[MAX_NLEN];
monster_desc(m_name, m_ptr, MD_INDEF_VISIBLE);
do_cmd_write_nikki(NIKKI_NAMED_PET, RECORD_NAMED_PET_WIZ_ZAP, m_name);
if (record_named_pet && is_pet(m_ptr) && m_ptr->nickname)
{
- char m_name[80];
+ GAME_TEXT m_name[MAX_NLEN];
monster_desc(m_name, m_ptr, MD_INDEF_VISIBLE);
do_cmd_write_nikki(NIKKI_NAMED_PET, RECORD_NAMED_PET_WIZ_ZAP, m_name);
break;
}
+ case 'V':
+ do_cmd_wiz_reset_class();
+ break;
+
/* Not a Wizard Command */
default:
msg_print("That is not a valid debug command.");
}
}
+void cheat_death(player_type *creature_ptr)
+{
+ /* Mark social class, reset age, if needed */
+ if (creature_ptr->sc) creature_ptr->sc = creature_ptr->age = 0;
+
+ /* Increase age */
+ creature_ptr->age++;
+
+ /* Mark savefile */
+ creature_ptr->noscore |= 0x0001;
+
+ msg_print(_("ウィザードモードに念を送り、死を欺いた。", "You invoke wizard mode and cheat death."));
+ msg_print(NULL);
+
+ (void)life_stream(FALSE, FALSE);
+
+ if (creature_ptr->pclass == CLASS_MAGIC_EATER)
+ {
+ int magic_idx;
+ for (magic_idx = 0; magic_idx < EATER_EXT * 2; magic_idx++)
+ {
+ creature_ptr->magic_num1[magic_idx] = creature_ptr->magic_num2[magic_idx] * EATER_CHARGE;
+ }
+ for (; magic_idx < EATER_EXT * 3; magic_idx++)
+ {
+ creature_ptr->magic_num1[magic_idx] = 0;
+ }
+ }
+
+ /* Restore spell points */
+ creature_ptr->csp = creature_ptr->msp;
+ creature_ptr->csp_frac = 0;
+
+ /* Hack -- cancel recall */
+ if (creature_ptr->word_recall)
+ {
+ msg_print(_("張りつめた大気が流れ去った...", "A tension leaves the air around you..."));
+ msg_print(NULL);
+
+ /* Hack -- Prevent recall */
+ creature_ptr->word_recall = 0;
+ creature_ptr->redraw |= (PR_STATUS);
+ }
+
+ /* Hack -- cancel alter */
+ if (creature_ptr->alter_reality)
+ {
+ /* Hack -- Prevent alter */
+ creature_ptr->alter_reality = 0;
+ creature_ptr->redraw |= (PR_STATUS);
+ }
+
+ /* Note cause of death */
+ (void)strcpy(creature_ptr->died_from, _("死の欺き", "Cheating death"));
+
+ /* Do not die */
+ creature_ptr->is_dead = FALSE;
+
+ /* Hack -- Prevent starvation */
+ (void)set_food(PY_FOOD_MAX - 1);
+
+ dun_level = 0;
+ creature_ptr->inside_arena = FALSE;
+ creature_ptr->inside_battle = FALSE;
+ leaving_quest = 0;
+ creature_ptr->inside_quest = 0;
+ if (dungeon_type) creature_ptr->recall_dungeon = dungeon_type;
+ dungeon_type = 0;
+ if (lite_town || vanilla_town)
+ {
+ creature_ptr->wilderness_y = 1;
+ creature_ptr->wilderness_x = 1;
+ if (vanilla_town)
+ {
+ creature_ptr->oldpy = 10;
+ creature_ptr->oldpx = 34;
+ }
+ else
+ {
+ creature_ptr->oldpy = 33;
+ creature_ptr->oldpx = 131;
+ }
+ }
+ else
+ {
+ creature_ptr->wilderness_y = 48;
+ creature_ptr->wilderness_x = 5;
+ creature_ptr->oldpy = 33;
+ creature_ptr->oldpx = 131;
+ }
+
+ /* Leaving */
+ creature_ptr->wild_mode = FALSE;
+ creature_ptr->leaving = TRUE;
+
+ do_cmd_write_nikki(NIKKI_BUNSHOU, 1,
+ _(" しかし、生き返った。",
+ " but revived."));
+
+ /* Prepare next floor */
+ leave_floor();
+ wipe_m_list();
+
+}
+
#else