*/
#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;
/* 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);
p_ptr->update |= (PU_BONUS);
-
- /* Combine / Reorder the pack (later) */
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);
object_type *o_ptr;
char ch;
bool changed;
- cptr q, s;
+ concptr q, s;
q = "Play with which object? ";
s = "You have nothing to play with.";
screen_save();
q_ptr = &forge;
-
- /* Copy object */
object_copy(q_ptr, o_ptr);
object_copy(o_ptr, q_ptr);
p_ptr->update |= (PU_BONUS);
-
- /* Combine / Reorder the pack (later) */
p_ptr->update |= (PU_COMBINE | PU_REORDER);
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER);
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