#include "angband.h"
#include "object-hook.h"
#include "object-curse.h"
+#include "artifact.h"
+#include "player-status.h"
static void one_sustain(object_type *o_ptr);
-static cptr const kaji_tips[5] =
+static concptr const kaji_tips[5] =
{
#ifdef JP
"現在持っているエッセンスの一覧を表示する。",
object_type *j_ptr;
OBJECT_IDX this_o_idx, next_o_idx = 0;
-
- s16b prev_o_idx = 0;
-
+ OBJECT_IDX prev_o_idx = 0;
/* Object */
j_ptr = &o_list[o_idx];
for (this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx)
{
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[this_o_idx];
/* Acquire next object */
POSITION y = j_ptr->iy;
POSITION x = j_ptr->ix;
- /* Grid */
c_ptr = &cave[y][x];
/* Scan all objects in the grid */
for (this_o_idx = c_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
{
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[this_o_idx];
/* Acquire next object */
/* Visual update */
lite_spot(y, x);
}
-
- /* Wipe the object */
object_wipe(j_ptr);
/* Count objects */
/* Refuse "illegal" locations */
if (!in_bounds(y, x)) return;
- /* Grid */
c_ptr = &cave[y][x];
/* Scan all objects in the grid */
for (this_o_idx = c_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
{
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[this_o_idx];
/* Acquire next object */
next_o_idx = o_ptr->next_o_idx;
-
- /* Wipe the object */
object_wipe(o_ptr);
/* Count objects */
* @param i2 整理したい配列の終点
* @return なし
*/
-static void compact_objects_aux(IDX i1, IDX i2)
+static void compact_objects_aux(OBJECT_IDX i1, OBJECT_IDX i2)
{
- IDX i;
+ OBJECT_IDX i;
cave_type *c_ptr;
object_type *o_ptr;
/* Do nothing */
if (i1 == i2) return;
-
/* Repair objects */
for (i = 1; i < o_max; i++)
{
- /* Acquire object */
o_ptr = &o_list[i];
/* Skip "dead" objects */
o_ptr->next_o_idx = i2;
}
}
-
-
- /* Acquire object */
o_ptr = &o_list[i1];
-
/* Monster */
if (o_ptr->held_m_idx)
{
}
}
-
/* Structure copy */
o_list[i2] = o_list[i1];
int cur_lev, cur_dis, chance;
object_type *o_ptr;
-
/* Compact */
if (size)
{
msg_print(_("アイテム情報を圧縮しています...", "Compacting objects..."));
-
- /* Redraw map */
p_ptr->redraw |= (PR_MAP);
-
p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
}
/* Acquire monster */
m_ptr = &m_list[o_ptr->held_m_idx];
- /* Get the location */
y = m_ptr->fy;
x = m_ptr->fx;
/* Dungeon */
else
{
- /* Get the location */
y = o_ptr->iy;
x = o_ptr->ix;
}
/* Apply the saving throw */
if (randint0(100) < chance) continue;
- /* Delete the object */
delete_object_idx(i);
/* Count it */
/* Hack -- see above */
c_ptr->o_idx = 0;
}
-
- /* Wipe the object */
object_wipe(o_ptr);
}
for (i = 1; i < o_max; i++)
{
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[i];
/* Skip live objects */
if (table[i].level < table[j].level) i = j;
}
-
- /* Result */
return (table[i].index);
}
{
object_type forge;
object_type *q_ptr;
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
q_ptr = &forge;
object_copy(q_ptr, o_ptr);
o_ptr->ident |= (IDENT_SENSE);
/* Combine the pack */
- p_ptr->notice |= (PN_COMBINE);
+ p_ptr->update |= (PU_COMBINE);
p_ptr->window |= (PW_INVEN | PW_EQUIP);
* @param sval 検索したいベースアイテムのsval
* @return なし
*/
-IDX lookup_kind(OBJECT_TYPE_VALUE tval, OBJECT_SUBTYPE_VALUE sval)
+KIND_OBJECT_IDX lookup_kind(OBJECT_TYPE_VALUE tval, OBJECT_SUBTYPE_VALUE sval)
{
- IDX k;
+ KIND_OBJECT_IDX k;
int num = 0;
- IDX bk = 0;
+ KIND_OBJECT_IDX bk = 0;
/* Look for it */
for (k = 1; k < max_k_idx; k++)
/* Enforce the maximum value */
if (value > max) return (max);
-
- /* Result */
return (value);
}
*/
static void object_mention(object_type *o_ptr)
{
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
object_aware(o_ptr);
object_known(o_ptr);
/* Mark the item as fully known */
o_ptr->ident |= (IDENT_MENTAL);
-
- /* Description */
object_desc(o_name, o_ptr, 0);
msg_format_wizard(CHEAT_OBJECT, _("%sを生成しました。", "%s was generated."), o_name);
}
*/
static bool make_artifact(object_type *o_ptr)
{
- IDX i;
-
+ ARTIFACT_IDX i;
/* No artifacts in the town */
if (!dun_level) return (FALSE);
break;
}
}
- /* Uncurse it */
o_ptr->curse_flags = 0L;
}
else if ((power == -2) && one_in_(2))
}
}
}
- /* Uncurse it */
o_ptr->curse_flags = 0L;
}
else if ((power == -2) && one_in_(2))
if (r_ptr->flags1 & RF1_FORCE_DEPTH) return (FALSE);
if (r_ptr->flags7 & RF7_UNIQUE2) return (FALSE);
- /* Okay */
return (TRUE);
}
return;
}
-
- /* Apply magic */
switch (o_ptr->tval)
{
case TV_DIGGING:
/* Avoid stacking on other objects */
if (c_ptr->o_idx) return;
-
- /* Get local object */
q_ptr = &forge;
-
- /* Wipe the object */
object_wipe(q_ptr);
/* Make an object (if possible) */
if (o_idx)
{
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[o_idx];
/* Structure Copy */
/* Place the object */
c_ptr->o_idx = o_idx;
- /* Notice */
note_spot(y, x);
- /* Redraw */
lite_spot(y, x);
}
else
/* Avoid stacking on other objects */
if (c_ptr->o_idx) return;
-
- /* Get local object */
q_ptr = &forge;
-
- /* Wipe the object */
object_wipe(q_ptr);
/* Make some gold */
if (o_idx)
{
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[o_idx];
/* Copy the object */
/* Place the object */
c_ptr->o_idx = o_idx;
- /* Notice */
note_spot(y, x);
- /* Redraw */
lite_spot(y, x);
}
}
cave_type *c_ptr;
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
bool flag = FALSE;
bool done = FALSE;
for (this_o_idx = c_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
{
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[this_o_idx];
/* Acquire next object */
by = ty;
bx = tx;
- /* Okay */
flag = TRUE;
}
}
/* Require floor space */
if (!cave_drop_bold(by, bx)) continue;
- /* Okay */
flag = TRUE;
}
}
- /* Grid */
c_ptr = &cave[by][bx];
/* Scan objects in that grid for combination */
for (this_o_idx = c_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
{
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[this_o_idx];
/* Acquire next object */
/* Check for combination */
if (object_similar(o_ptr, j_ptr))
{
- /* Combine the items */
object_absorb(o_ptr, j_ptr);
/* Success */
}
}
- /* Get new object */
if (!done) o_idx = o_pop();
/* Failure */
#ifdef JP
msg_format("%sは消えた。", o_name);
#else
- msg_format("The %s disappear%s.",
- o_name, (plural ? "" : "s"));
+ msg_format("The %s disappear%s.", o_name, (plural ? "" : "s"));
#endif
-
/* Debug */
if (p_ptr->wizard) msg_print(_("(アイテムが多過ぎる)", "(too many objects)"));
done = TRUE;
}
- /* Note the spot */
note_spot(by, bx);
-
- /* Draw the spot */
lite_spot(by, bx);
-
sound(SOUND_DROP);
/* Mega-Hack -- no message if "dropped" by player */
msg_print(_("何かが足下に転がってきた。", "You feel something roll beneath your feet."));
}
-
- /* Result */
return (o_idx);
}
/* Acquirement */
while (num--)
{
- /* Get local object */
i_ptr = &object_type_body;
-
- /* Wipe the object */
object_wipe(i_ptr);
/* Make a good (or great) object (if possible) */
r -= amuse_info[i].prob;
if (r <= 0) break;
}
-
- /* Get local object */
i_ptr = &object_type_body;
-
- /* Wipe the object */
object_wipe(i_ptr);
-
- /* Wipe the object */
k_idx = lookup_kind(amuse_info[i].tval, amuse_info[i].sval);
/* Paranoia - reroll if nothing */
/* Multiple charges */
if (o_ptr->pval != 1)
{
- /* Print a message */
msg_format("You have %d charges remaining.", o_ptr->pval);
}
/* Single charge */
else
{
- /* Print a message */
msg_format("You have %d charge remaining.", o_ptr->pval);
}
#endif
void inven_item_describe(INVENTORY_IDX item)
{
object_type *o_ptr = &inventory[item];
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
- /* Get a description */
object_desc(o_name, o_ptr, 0);
- /* Print a message */
#ifdef JP
/* "no more" の場合はこちらで表示する */
if (o_ptr->number <= 0)
}
/*!
- * @brief ã\82¢ã\82¤ã\83\86ã\83 ã\81®残り所持数メッセージを表示する /
+ * @brief ã\82¢ã\82¤ã\83\86ã\83 ã\82\92å¢\97æ¸\9bã\81\95ã\81\9b残り所持数メッセージを表示する /
* Increase the "number" of an item in the inventory
* @param item 所持数を増やしたいプレイヤーのアイテム所持スロット
* @param num 増やしたい量
* @return なし
*/
-void inven_item_increase(INVENTORY_IDX item, int num)
+void inven_item_increase(INVENTORY_IDX item, ITEM_NUMBER num)
{
object_type *o_ptr = &inventory[item];
else if (num < 0) num = 0;
/* Un-apply */
- num -= (ITEM_NUMBER)o_ptr->number;
+ num -= o_ptr->number;
/* Change the number and weight */
if (num)
/* Add the weight */
p_ptr->total_weight += (num * o_ptr->weight);
-
- /* Recalculate bonuses */
p_ptr->update |= (PU_BONUS);
/* Recalculate mana XXX */
p_ptr->update |= (PU_MANA);
/* Combine the pack */
- p_ptr->notice |= (PN_COMBINE);
+ p_ptr->update |= (PU_COMBINE);
p_ptr->window |= (PW_INVEN | PW_EQUIP);
{
if ((item == INVEN_RARM) || (item == INVEN_LARM))
{
- if (!buki_motteruka(INVEN_RARM + INVEN_LARM - item))
+ if (!has_melee_weapon(INVEN_RARM + INVEN_LARM - item))
{
/* Clear all temporary elemental brands */
set_ele_attack(0, 0);
/* Erase the empty slot */
object_wipe(&inventory[item]);
-
- /* Recalculate bonuses */
p_ptr->update |= (PU_BONUS);
/* Recalculate torch */
/* Multiple charges */
if (o_ptr->pval != 1)
{
- /* Print a message */
msg_format("There are %d charges remaining.", o_ptr->pval);
}
/* Single charge */
else
{
- /* Print a message */
msg_format("There is %d charge remaining.", o_ptr->pval);
}
#endif
void floor_item_describe(INVENTORY_IDX item)
{
object_type *o_ptr = &o_list[item];
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
- /* Get a description */
object_desc(o_name, o_ptr, 0);
- /* Print a message */
#ifdef JP
/* "no more" の場合はこちらで表示を分ける */
if (o_ptr->number <= 0)
* @param num 増やしたいアイテムの数
* @return なし
*/
-void floor_item_increase(INVENTORY_IDX item, int num)
+void floor_item_increase(INVENTORY_IDX item, ITEM_NUMBER num)
{
object_type *o_ptr = &o_list[item];
else if (num < 0) num = 0;
/* Un-apply */
- num -= (int)o_ptr->number;
+ num -= o_ptr->number;
/* Change the number */
- o_ptr->number += (ITEM_NUMBER)num;
+ o_ptr->number += num;
}
/* Only optimize empty items */
if (o_ptr->number) return;
- /* Delete the object */
delete_object_idx(item);
}
if (object_similar(j_ptr, o_ptr)) return (TRUE);
}
- /* Nope */
return (FALSE);
}
/* Check if the two items can be combined */
if (object_similar(j_ptr, o_ptr))
{
- /* Combine the items */
object_absorb(j_ptr, o_ptr);
- /* Increase the weight */
p_ptr->total_weight += (o_ptr->number * o_ptr->weight);
-
- /* Recalculate bonuses */
p_ptr->update |= (PU_BONUS);
-
p_ptr->window |= (PW_INVEN);
/* Success */
/* Player touches it, and no longer marked */
j_ptr->marked = OM_TOUCHED;
- /* Increase the weight */
p_ptr->total_weight += (j_ptr->number * j_ptr->weight);
/* Count the items */
inven_cnt++;
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Combine and Reorder pack */
- p_ptr->notice |= (PN_COMBINE | PN_REORDER);
-
+ p_ptr->update |= (PU_BONUS | PU_COMBINE | PU_REORDER);
p_ptr->window |= (PW_INVEN);
/* Return the slot */
object_type *o_ptr;
- cptr act;
+ concptr act;
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
/* Get the item to take off */
/* Verify */
if (amt > o_ptr->number) amt = o_ptr->number;
-
- /* Get local object */
q_ptr = &forge;
/* Obtain a local object */
/* Modify quantity */
q_ptr->number = amt;
- /* Describe the object */
object_desc(o_name, q_ptr, 0);
/* Took off weapon */
object_type *q_ptr;
object_type *o_ptr;
- char o_name[MAX_NLEN];
-
+ GAME_TEXT o_name[MAX_NLEN];
/* Access original object */
o_ptr = &inventory[item];
/* Not too many */
if (amt > o_ptr->number) amt = o_ptr->number;
-
/* Take off equipment */
if (item >= INVEN_RARM)
{
o_ptr = &inventory[item];
}
-
- /* Get local object */
q_ptr = &forge;
/* Obtain local object */
void combine_pack(void)
{
int i, j, k;
- object_type *o_ptr;
+ object_type *o_ptr;
object_type *j_ptr;
bool flag = FALSE, combined;
/* Combine the pack (backwards) */
for (i = INVEN_PACK; i > 0; i--)
{
- /* Get the item */
o_ptr = &inventory[i];
/* Skip empty items */
{
int max_num;
- /* Get the item */
j_ptr = &inventory[j];
/* Skip empty items */
s32b o_value;
object_type forge;
object_type *q_ptr;
- object_type *o_ptr;
+ object_type *o_ptr;
bool flag = FALSE;
/* Mega-Hack -- allow "proper" over-flow */
if ((i == INVEN_PACK) && (inven_cnt == INVEN_PACK)) break;
- /* Get the item */
o_ptr = &inventory[i];
/* Skip empty slots */
/* Take note */
flag = TRUE;
-
- /* Get local object */
q_ptr = &forge;
/* Save a copy of the moving item */
int sval;
REALM_IDX use_realm;
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
/* Erase the window */
/* No info */
if (!k_idx) return;
-
- /* Get local object */
q_ptr = &forge;
/* Prepare the object */
object_prep(q_ptr, k_idx);
-
- /* Describe */
object_desc(o_name, q_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY | OD_STORE));
/* Mention the object name */
{
POSITION mx, my;
cave_type *c_ptr;
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
#define WARNING_AWARE_RANGE 12
int dam_max = 0;
strcpy(o_name, _("体", "body")); /* Warning ability without item */
msg_format(_("%sが鋭く震えた!", "Your %s pulsates sharply!"), o_name);
- disturb(0, 1);
+ disturb(FALSE, TRUE);
return get_check(_("本当にこのまま進むか?", "Really want to go ahead? "));
}
}
else
strcpy(o_name, _("体", "body")); /* Warning ability without item */
msg_format(_("%sが鋭く震えた!", "Your %s pulsates sharply!"), o_name);
- disturb(0, 1);
+ disturb(FALSE, TRUE);
return get_check(_("本当にこのまま進むか?", "Really want to go ahead? "));
}
*/
typedef struct {
int add; /* TR flag number or special essence id */
- cptr add_name; /* Name of this ability */
+ concptr add_name; /* Name of this ability */
ESSENCE_IDX type; /* Menu number */
int essence; /* Index for carrying essences */
int value; /* Needed value to add this ability */
* エッセンス名テーブル / Essense names for Weapon smith
*/
#ifdef JP
-cptr essence_name[] =
+concptr essence_name[] =
{
"腕力",
"知能",
#else
-cptr essence_name[] =
+concptr essence_name[] =
{
"strength",
"intelligen.",
TIME_EFFECT old_timeout;
BIT_FLAGS old_flgs[TR_FLAG_SIZE], new_flgs[TR_FLAG_SIZE];
object_type *o_ptr;
- cptr q, s;
+ concptr q, s;
POSITION iy, ix;
byte_hack marked;
ITEM_NUMBER number;
drain_value[i] = 0;
item_tester_hook = object_is_weapon_armour_ammo;
- item_tester_no_ryoute = TRUE;
- /* Get an item */
q = _("どのアイテムから抽出しますか?", "Extract from which item? ");
s = _("抽出できるアイテムがありません。", "You have nothing you can extract from.");
- if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return;
-
- /* Get the item (in the pack) */
- if (item >= 0)
- {
- o_ptr = &inventory[item];
- }
-
- /* Get the item (on the floor) */
- else
- {
- o_ptr = &o_list[0 - item];
- }
+ o_ptr = choose_object(&item, q, s, (USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
+ if (!o_ptr) return;
if (object_is_known(o_ptr) && !object_is_nameless(o_ptr))
{
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
if (!get_check(format(_("本当に%sから抽出してよろしいですか?", "Really extract from %s? "), o_name))) return;
}
autopick_alter_item(item, TRUE);
/* Combine the pack */
- p_ptr->notice |= (PN_COMBINE | PN_REORDER);
+ p_ptr->update |= (PU_COMBINE | PU_REORDER);
p_ptr->window |= (PW_INVEN);
}
COMMAND_CODE menu_line = (use_menu ? 1 : 0);
#ifdef JP
- cptr menu_name[] = {
+ concptr menu_name[] = {
"武器属性",
"耐性",
"能力",
"その他"
};
#else
- cptr menu_name[] = {
+ concptr menu_name[] = {
"Brand weapon",
"Resistance",
"Ability",
#endif
const COMMAND_CODE mode_max = 7;
-#ifdef ALLOW_REPEAT
if (repeat_pull(&mode) && 1 <= mode && mode <= mode_max)
return mode;
mode = 0;
-#endif /* ALLOW_REPEAT */
-
if (use_menu)
{
screen_save();
screen_load();
}
-#ifdef ALLOW_REPEAT
repeat_push(mode);
-#endif /* ALLOW_REPEAT */
return mode;
}
COMMAND_CODE i;
bool flag,redraw;
char choice;
- cptr q, s;
+ concptr q, s;
object_type *o_ptr;
int ask = TRUE;
char out_val[160];
int num[22];
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
int use_essence;
essence_type *es_ptr;
bool able[22] = { 0 };
num[max_num++] = i;
}
-#ifdef ALLOW_REPEAT
if (!repeat_pull(&i) || i<0 || i>=max_num)
{
-#endif /* ALLOW_REPEAT */
-
/* Nothing chosen yet */
flag = FALSE;
/* Show list */
redraw = TRUE;
-
- /* Save the screen */
if (!use_menu) screen_save();
for (y = 1; y < 24; y++)
{
/* Hide list */
redraw = FALSE;
-
- /* Restore the screen */
screen_load();
}
/* Stop the loop */
flag = TRUE;
}
-
- /* Restore the screen */
if (redraw) screen_load();
if (!flag) return;
-#ifdef ALLOW_REPEAT
repeat_push(i);
}
-#endif /* ALLOW_REPEAT */
-
es_ptr = &essence_info[num[i]];
if (es_ptr->add == ESSENCE_SLAY_GLOVE)
item_tester_hook = object_is_armour;
else
item_tester_hook = object_is_weapon_armour_ammo;
- item_tester_no_ryoute = TRUE;
- /* Get an item */
q = _("どのアイテムを改良しますか?", "Improve which item? ");
s = _("改良できるアイテムがありません。", "You have nothing to improve.");
- if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return;
-
- /* Get the item (in the pack) */
- if (item >= 0)
- {
- o_ptr = &inventory[item];
- }
-
- /* Get the item (on the floor) */
- else
- {
- o_ptr = &o_list[0 - item];
- }
+ o_ptr = choose_object(&item, q, s, (USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
+ if (!o_ptr) return;
if ((mode != 10) && (object_is_artifact(o_ptr) || object_is_smith(o_ptr)))
{
#endif
/* Combine the pack */
- p_ptr->notice |= (PN_COMBINE | PN_REORDER);
+ p_ptr->update |= (PU_COMBINE | PU_REORDER);
p_ptr->window |= (PW_INVEN);
}
static void erase_essence(void)
{
OBJECT_IDX item;
- cptr q, s;
+ concptr q, s;
object_type *o_ptr;
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
BIT_FLAGS flgs[TR_FLAG_SIZE];
item_tester_hook = object_is_smith;
- /* Get an item */
q = _("どのアイテムのエッセンスを消去しますか?", "Remove from which item? ");
s = _("エッセンスを付加したアイテムがありません。", "You have nothing to remove essence.");
- if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return;
-
- /* Get the item (in the pack) */
- if (item >= 0)
- {
- o_ptr = &inventory[item];
- }
-
- /* Get the item (on the floor) */
- else
- {
- o_ptr = &o_list[0 - item];
- }
+ o_ptr = choose_object(&item, q, s, (USE_INVEN | USE_FLOOR));
+ if (!o_ptr) return;
object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
if (!get_check(format(_("よろしいですか? [%s]", "Are you sure? [%s]"), o_name))) return;
p_ptr->energy_use = 100;
- if (o_ptr->xtra3 == 1+ESSENCE_SLAY_GLOVE)
+ if (o_ptr->xtra3 == 1 + ESSENCE_SLAY_GLOVE)
{
o_ptr->to_h -= (o_ptr->xtra4>>8);
o_ptr->to_d -= (o_ptr->xtra4 & 0x000f);
msg_print(_("エッセンスを取り去った。", "You removed all essence you have added."));
/* Combine the pack */
- p_ptr->notice |= (PN_COMBINE | PN_REORDER);
+ p_ptr->update |= (PU_COMBINE | PU_REORDER);
p_ptr->window |= (PW_INVEN);
}
if (!only_browse)
{
- if (p_ptr->confused)
- {
- msg_print(_("混乱していて作業できない!", "You are too confused!"));
- return;
- }
+ if (cmd_limit_confused(p_ptr)) return;
if (p_ptr->blind)
{
msg_print(_("目が見えなくて作業できない!", "You are blind!"));
}
}
-#ifdef ALLOW_REPEAT
if (!(repeat_pull(&mode) && 1 <= mode && mode <= 5))
{
-#endif /* ALLOW_REPEAT */
-
if (only_browse) screen_save();
do {
if (!only_browse) screen_save();
}
if (!only_browse) screen_load();
} while (only_browse);
-#ifdef ALLOW_REPEAT
repeat_push(mode);
}
-#endif /* ALLOW_REPEAT */
-
switch(mode)
{
case 1: display_essence();break;