OSDN Git Service
(root)
/
hengband
/
hengband.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[Refactor] #37353 アリーナのコマンド制限処理を cmd_limit_arena() に統合。 / Integrate command limitatio...
[hengband/hengband.git]
/
src
/
cmd-activate.c
diff --git
a/src/cmd-activate.c
b/src/cmd-activate.c
index
9908331
..
0dc1c83
100644
(file)
--- a/
src/cmd-activate.c
+++ b/
src/cmd-activate.c
@@
-10,6
+10,12
@@
#include "cmd-activate.h"
#include "object-hook.h"
#include "spells-summon.h"
#include "cmd-activate.h"
#include "object-hook.h"
#include "spells-summon.h"
+#include "sort.h"
+#include "projection.h"
+#include "artifact.h"
+#include "avatar.h"
+#include "spells-status.h"
+#include "realm-hex.h"
/*!
* @brief ペット入りモンスターボールをソートするための比較関数
/*!
* @brief ペット入りモンスターボールをソートするための比較関数
@@
-182,12
+188,12
@@
void do_cmd_activate_aux(INVENTORY_IDX item)
{
IDX pet_ctr, i;
{
IDX pet_ctr, i;
- IDX *who;
+
MONSTER_
IDX *who;
int max_pet = 0;
u16b dummy_why;
/* Allocate the "who" array */
int max_pet = 0;
u16b dummy_why;
/* Allocate the "who" array */
- C_MAKE(who, max_m_idx, IDX);
+ C_MAKE(who, max_m_idx,
MONSTER_
IDX);
/* Process the monsters (backwards) */
for (pet_ctr = m_max - 1; pet_ctr >= 1; pet_ctr--)
/* Process the monsters (backwards) */
for (pet_ctr = m_max - 1; pet_ctr >= 1; pet_ctr--)
@@
-236,7
+242,7
@@
void do_cmd_activate_aux(INVENTORY_IDX item)
o_ptr->xtra5 = (XTRA16)cap_maxhp;
if (cap_nickname)
{
o_ptr->xtra5 = (XTRA16)cap_maxhp;
if (cap_nickname)
{
- cptr t;
+ c
onc
ptr t;
char *s;
char buf[80] = "";
char *s;
char buf[80] = "";
@@
-288,7
+294,7
@@
void do_cmd_activate_aux(INVENTORY_IDX item)
if (o_ptr->inscription)
{
char buf[80];
if (o_ptr->inscription)
{
char buf[80];
- cptr t;
+ c
onc
ptr t;
#ifndef JP
bool quote = FALSE;
#endif
#ifndef JP
bool quote = FALSE;
#endif
@@
-364,7
+370,10
@@
void do_cmd_activate_aux(INVENTORY_IDX item)
void do_cmd_activate(void)
{
OBJECT_IDX item;
void do_cmd_activate(void)
{
OBJECT_IDX item;
- cptr q, s;
+ concptr q, s;
+
+ if (p_ptr->wild_mode) return;
+ if (cmd_limit_arena(p_ptr)) return;
if (p_ptr->special_defense & (KATA_MUSOU | KATA_KOUKIJIN))
{
if (p_ptr->special_defense & (KATA_MUSOU | KATA_KOUKIJIN))
{
@@
-376,7
+385,7
@@
void do_cmd_activate(void)
q = _("どのアイテムを始動させますか? ", "Activate which item? ");
s = _("始動できるアイテムを装備していない。", "You have nothing to activate.");
q = _("どのアイテムを始動させますか? ", "Activate which item? ");
s = _("始動できるアイテムを装備していない。", "You have nothing to activate.");
- if (!
get_item
(&item, q, s, (USE_EQUIP | IGNORE_BOTHHAND_SLOT))) return;
+ if (!
choose_object
(&item, q, s, (USE_EQUIP | IGNORE_BOTHHAND_SLOT))) return;
/* Activate the item */
do_cmd_activate_aux(item);
/* Activate the item */
do_cmd_activate_aux(item);
@@
-392,7
+401,7
@@
static bool activate_dragon_breath(object_type *o_ptr)
{
BIT_FLAGS flgs[TR_FLAG_SIZE]; /* for resistance flags */
int type[20];
{
BIT_FLAGS flgs[TR_FLAG_SIZE]; /* for resistance flags */
int type[20];
- cptr name[20];
+ c
onc
ptr name[20];
int i, t, n = 0;
DIRECTION dir;
int i, t, n = 0;
DIRECTION dir;
@@
-434,7
+443,7
@@
bool activate_artifact(object_type *o_ptr)
PLAYER_LEVEL plev = p_ptr->lev;
int k, dummy = 0;
DIRECTION dir;
PLAYER_LEVEL plev = p_ptr->lev;
int k, dummy = 0;
DIRECTION dir;
- cptr name = k_name + k_info[o_ptr->k_idx].name;
+ c
onc
ptr name = k_name + k_info[o_ptr->k_idx].name;
const activation_type* const act_ptr = find_activation_info(o_ptr);
/* Paranoia */
const activation_type* const act_ptr = find_activation_info(o_ptr);
/* Paranoia */
@@
-925,14
+934,14
@@
bool activate_artifact(object_type *o_ptr)
case ACT_SUMMON_ANIMAL:
{
case ACT_SUMMON_ANIMAL:
{
- (void)summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET));
+ (void)summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET)
, '\0'
);
break;
}
case ACT_SUMMON_PHANTOM:
{
msg_print(_("幻霊を召喚した。", "You summon a phantasmal servant."));
break;
}
case ACT_SUMMON_PHANTOM:
{
msg_print(_("幻霊を召喚した。", "You summon a phantasmal servant."));
- (void)summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, SUMMON_PHANTOM, (PM_ALLOW_GROUP | PM_FORCE_PET));
+ (void)summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, SUMMON_PHANTOM, (PM_ALLOW_GROUP | PM_FORCE_PET)
, '\0'
);
break;
}
break;
}
@@
-945,7
+954,7
@@
bool activate_artifact(object_type *o_ptr)
if (pet) mode |= PM_FORCE_PET;
else mode |= PM_NO_PET;
if (pet) mode |= PM_FORCE_PET;
else mode |= PM_NO_PET;
- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, ((plev * 3) / 2), SUMMON_ELEMENTAL, mode))
+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, ((plev * 3) / 2), SUMMON_ELEMENTAL, mode
, '\0'
))
{
msg_print(_("エレメンタルが現れた...", "An elemental materializes..."));
if (pet)
{
msg_print(_("エレメンタルが現れた...", "An elemental materializes..."));
if (pet)
@@
-975,7
+984,7
@@
bool activate_artifact(object_type *o_ptr)
if (pet) mode |= PM_FORCE_PET;
else mode |= (PM_ALLOW_UNIQUE | PM_NO_PET);
if (pet) mode |= PM_FORCE_PET;
else mode |= (PM_ALLOW_UNIQUE | PM_NO_PET);
- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, ((plev * 3) / 2), type, mode))
+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, ((plev * 3) / 2), type, mode
, '\0'
))
{
msg_print(_("冷たい風があなたの周りに吹き始めた。それは腐敗臭を運んでいる...",
"Cold winds begin to blow around you, carrying with them the stench of decay..."));
{
msg_print(_("冷たい風があなたの周りに吹き始めた。それは腐敗臭を運んでいる...",
"Cold winds begin to blow around you, carrying with them the stench of decay..."));
@@
-997,7
+1006,7
@@
bool activate_artifact(object_type *o_ptr)
if (pet) mode |= PM_FORCE_PET;
else mode |= PM_NO_PET;
if (pet) mode |= PM_FORCE_PET;
else mode |= PM_NO_PET;
- if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, ((p_ptr->lev * 3) / 2), SUMMON_HOUND, mode))
+ if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, ((p_ptr->lev * 3) / 2), SUMMON_HOUND, mode
, '\0'
))
{
if (pet)
{
if (pet)
@@
-1014,7
+1023,7
@@
bool activate_artifact(object_type *o_ptr)
case ACT_SUMMON_DAWN:
{
msg_print(_("暁の師団を召喚した。", "You summon the Legion of the Dawn."));
case ACT_SUMMON_DAWN:
{
msg_print(_("暁の師団を召喚した。", "You summon the Legion of the Dawn."));
- (void)summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, SUMMON_DAWN, (PM_ALLOW_GROUP | PM_FORCE_PET));
+ (void)summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, SUMMON_DAWN, (PM_ALLOW_GROUP | PM_FORCE_PET)
, '\0'
);
break;
}
break;
}
@@
-1352,7
+1361,7
@@
bool activate_artifact(object_type *o_ptr)
case ACT_RECALL:
{
msg_print(_("やわらかな白色に輝いている...", "It glows soft white..."));
case ACT_RECALL:
{
msg_print(_("やわらかな白色に輝いている...", "It glows soft white..."));
- if (!
word_of_recall(
)) return FALSE;
+ if (!
recall_player(p_ptr, randint0(21) + 15
)) return FALSE;
break;
}
break;
}
@@
-1372,7
+1381,7
@@
bool activate_artifact(object_type *o_ptr)
if (get_check(_("帰還の力を使いますか?", "Activate recall? ")))
{
if (get_check(_("帰還の力を使いますか?", "Activate recall? ")))
{
- (void)
word_of_recall(
);
+ (void)
recall_player(p_ptr, randint0(21) + 15
);
}
break;
}
break;
@@
-1544,7
+1553,7
@@
bool activate_artifact(object_type *o_ptr)
INVENTORY_IDX inv;
int t;
OBJECT_IDX o_idx;
INVENTORY_IDX inv;
int t;
OBJECT_IDX o_idx;
-
char
o_name[MAX_NLEN];
+
GAME_TEXT
o_name[MAX_NLEN];
object_type forge;
/* Cast off activated item */
object_type forge;
/* Cast off activated item */
@@
-1632,7
+1641,7
@@
bool activate_artifact(object_type *o_ptr)
}
else if (cave[y][x].m_idx)
{
}
else if (cave[y][x].m_idx)
{
-
char m_name[80
];
+
GAME_TEXT m_name[MAX_NLEN
];
monster_desc(m_name, &m_list[cave[y][x].m_idx], 0);
msg_format(_("%sが邪魔だ!", "%^s is stand in your way."), m_name);
p_ptr->energy_use = 0;
monster_desc(m_name, &m_list[cave[y][x].m_idx], 0);
msg_format(_("%sが邪魔だ!", "%^s is stand in your way."), m_name);
p_ptr->energy_use = 0;
@@
-1647,7
+1656,7
@@
bool activate_artifact(object_type *o_ptr)
{
int count = 0, i;
monster_type *m_ptr;
{
int count = 0, i;
monster_type *m_ptr;
- cptr kakusan = "";
+ c
onc
ptr kakusan = "";
if (summon_named_creature(0, p_ptr->y, p_ptr->x, MON_SUKE, PM_FORCE_PET))
{
if (summon_named_creature(0, p_ptr->y, p_ptr->x, MON_SUKE, PM_FORCE_PET))
{
@@
-1830,7
+1839,7
@@
void get_bloody_moon_flags(object_type *o_ptr)
for (i = 0; i < 2; i++)
{
int tmp = randint0(11);
for (i = 0; i < 2; i++)
{
int tmp = randint0(11);
- if (tmp <
6
) add_flag(o_ptr->art_flags, TR_STR + tmp);
+ if (tmp <
A_MAX
) add_flag(o_ptr->art_flags, TR_STR + tmp);
else add_flag(o_ptr->art_flags, TR_STEALTH + tmp - 6);
}
}
else add_flag(o_ptr->art_flags, TR_STEALTH + tmp - 6);
}
}