#include "cmd-magiceat.h"
#include "cmd-zapwand.h"
#include "cmd-pet.h"
-
+#include "melee.h"
#include "object-hook.h"
+#include "mutation.h"
+
/*!
* @brief レイシャル「弾/矢の製造」処理 / do_cmd_cast calls this function if the player's class is 'archer'.
* Hook to determine if an object is contertible in an arrow/bolt
object_type *q_ptr;
char com[80];
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
q_ptr = &forge;
else if (ext == 2)
{
OBJECT_IDX item;
- cptr q, s;
+ concptr q, s;
s16b slot;
item_tester_hook = item_tester_hook_convertible;
q = _("どのアイテムから作りますか? ", "Convert which item? ");
s = _("材料を持っていない。", "You have no item to convert.");
- if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return FALSE;
+ q_ptr = choose_object(&item, q, s, (USE_INVEN | USE_FLOOR));
+ if (!q_ptr) return FALSE;
- /* Get the item (in the pack) */
- if (item >= 0)
- {
- q_ptr = &inventory[item];
- }
-
- /* Get the item (on the floor) */
- else
- {
- q_ptr = &o_list[0 - item];
- }
q_ptr = &forge;
/* Hack -- Give the player some small firestones */
else if (ext == 3)
{
OBJECT_IDX item;
- cptr q, s;
+ concptr q, s;
s16b slot;
item_tester_hook = item_tester_hook_convertible;
q = _("どのアイテムから作りますか? ", "Convert which item? ");
s = _("材料を持っていない。", "You have no item to convert.");
- if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return FALSE;
- /* Get the item (in the pack) */
- if (item >= 0)
- {
- q_ptr = &inventory[item];
- }
+ q_ptr = choose_object(&item, q, s, (USE_INVEN | USE_FLOOR));
+ if (!q_ptr) return FALSE;
- /* Get the item (on the floor) */
- else
- {
- q_ptr = &o_list[0 - item];
- }
q_ptr = &forge;
/* Hack -- Give the player some small firestones */
OBJECT_IDX item;
PARAMETER_VALUE pval;
int ext = 0;
- cptr q, s;
+ concptr q, s;
object_type *o_ptr;
- char o_name[MAX_NLEN];
+ GAME_TEXT o_name[MAX_NLEN];
/* Only accept legal items */
item_tester_hook = item_tester_hook_recharge;
q = _("どのアイテムの魔力を取り込みますか? ", "Gain power of which item? ");
s = _("魔力を取り込めるアイテムがない。", "You have nothing to gain power.");
- if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return (FALSE);
-
- /* 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 (FALSE);
if (o_ptr->tval == TV_STAFF && o_ptr->sval == SV_STAFF_NOTHING)
{
return FALSE;
}
-
if (!object_is_known(o_ptr))
{
msg_print(_("鑑定されていないと取り込めない。", "You need to identify before absorbing."));
*/
struct power_desc_type
{
- char name[80]; //!<レイシャル名
+ GAME_TEXT name[MAX_NLEN]; //!<レイシャル名
PLAYER_LEVEL level; //!<体得レベル
int cost;
int stat;
*/
static int racial_aux(power_desc_type *pd_ptr)
{
- s16b min_level = pd_ptr->level;
+ PLAYER_LEVEL min_level = pd_ptr->level;
int use_stat = pd_ptr->stat;
int difficulty = pd_ptr->fail;
int use_hp = 0;
p_ptr->energy_use = 100;
/* Success? */
- if (randint1(p_ptr->stat_cur[use_stat]) >=
- ((difficulty / 2) + randint1(difficulty / 2)))
+ if (randint1(p_ptr->stat_cur[use_stat]) >= ((difficulty / 2) + randint1(difficulty / 2)))
{
return 1;
}
{
case CLASS_WARRIOR:
{
- int y = 0, x = 0, i;
- cave_type *c_ptr;
+ POSITION y = 0, x = 0;
+ int i;
+ cave_type *c_ptr;
- for (i = 0; i < 6; i++)
+ for (i = 0; i < A_MAX; i++)
{
dir = randint0(8);
y = p_ptr->y + ddy_ddd[dir];
{
if (command == -3)
{
- int gain_sp = take_hit(DAMAGE_USELIFE, p_ptr->lev,
- _("HPからMPへの無謀な変換", "thoughtless convertion from HP to SP"), -1) / 5;
+ int gain_sp = take_hit(DAMAGE_USELIFE, p_ptr->lev, _("HPからMPへの無謀な変換", "thoughtless convertion from HP to SP"), -1) / 5;
if (gain_sp)
{
p_ptr->csp += gain_sp;
p_ptr->csp = p_ptr->msp;
p_ptr->csp_frac = 0;
}
-
- /* Redraw mana */
p_ptr->redraw |= (PR_MANA);
break;
}
}
else if (command == -4)
{
- project_hack(GF_CHARM_LIVING, p_ptr->lev);
+ project_all_los(GF_CHARM_LIVING, p_ptr->lev);
}
break;
}
p_ptr->csp = max_csp;
p_ptr->csp_frac = 0;
}
-
- /* Redraw mana */
p_ptr->redraw |= (PR_MANA);
}
else if (command == -4)
}
case CLASS_CAVALRY:
{
- char m_name[80];
+ GAME_TEXT m_name[MAX_NLEN];
monster_type *m_ptr;
monster_race *r_ptr;
int rlev;
}
case CLASS_BERSERKER:
{
- if (!word_of_recall()) return FALSE;
+ if (!recall_player(p_ptr, randint0(21) + 15)) return FALSE;
break;
}
case CLASS_SMITH:
p_ptr->csp = p_ptr->msp;
p_ptr->csp_frac = 0;
}
-
- /* Redraw mana */
p_ptr->redraw |= (PR_MANA);
}
else
int type = (one_in_(2) ? GF_NETHER : GF_FIRE);
if (!get_aim_dir(&dir)) return FALSE;
stop_mouth();
-#ifdef JP
- msg_format("あなたは%sのブレスを吐いた。",((type == GF_NETHER) ? "地獄" : "火炎"));
-#else
- msg_format("You breathe %s.",((type == GF_NETHER) ? "nether" : "fire"));
-#endif
-
+ msg_format(_("あなたは%sのブレスを吐いた。", "You breathe %s."),((type == GF_NETHER) ? _("地獄", "nether") : _("火炎", "fire")));
fire_breath(type, dir, plev * 3, (plev / 15) + 1);
break;
}
case RACE_DRACONIAN:
{
- int Type = (one_in_(3) ? GF_COLD : GF_FIRE);
-#ifdef JP
- cptr Type_desc = ((Type == GF_COLD) ? "冷気" : "炎");
-#else
- cptr Type_desc = ((Type == GF_COLD) ? "cold" : "fire");
-#endif
+ int Type = (one_in_(3) ? GF_COLD : GF_FIRE);
+ concptr Type_desc = ((Type == GF_COLD) ? _("冷気", "cold") : _("炎", "fire"));
if (!get_aim_dir(&dir)) return FALSE;
int type = (one_in_(2) ? GF_NETHER : GF_FIRE);
if (!get_aim_dir(&dir)) return FALSE;
stop_mouth();
-#ifdef JP
- msg_format("あなたは%sのブレスを吐いた。",((type == GF_NETHER) ? "地獄" : "火炎"));
-#else
- msg_format("You breathe %s.",((type == GF_NETHER) ? "nether" : "fire"));
-#endif
-
+ msg_format(_("あなたは%sのブレスを吐いた。", "You breathe %s."),((type == GF_NETHER) ? _("地獄", "nether") : _("火炎", "fire")));
fire_breath(type, dir, plev * 3, (plev / 15) + 1);
}
break;
char out_val[160];
int menu_line = (use_menu ? 1 : 0);
+ if (p_ptr->wild_mode) return;
for (num = 0; num < 36; num++)
{
/* Show list */
redraw = TRUE;
-
- /* Save the screen */
if (!use_menu) screen_save();
/* Print header(s) */
{
/* Hide list */
redraw = FALSE;
-
- /* Restore the screen */
screen_load();
}
/* Stop the loop */
flag = TRUE;
}
-
- /* Restore the screen */
if (redraw) screen_load();
/* Abort if needed */