* flag. This is useful for switching "graphics" on/off.\n
*\n
* The features, objects, and monsters, should all be encoded in the\n
- * relevant "font.pref" and/or "graf.prf" files. XXX XXX XXX\n
+ * relevant "font.pref" and/or "graf.prf" files. \n
*\n
- * The "prefs" parameter is no longer meaningful. XXX XXX XXX\n
+ * The "prefs" parameter is no longer meaningful. \n
*/
void reset_visuals(void)
{
* @param flgs フラグ情報を受け取る配列
* @return なし
*/
-void object_flags(object_type *o_ptr, u32b flgs[TR_FLAG_SIZE])
+void object_flags(object_type *o_ptr, BIT_FLAGS flgs[TR_FLAG_SIZE])
{
object_kind *k_ptr = &k_info[o_ptr->k_idx];
int i;
* @param flgs フラグ情報を受け取る配列
* @return なし
*/
-void object_flags_known(object_type *o_ptr, u32b flgs[TR_FLAG_SIZE])
+void object_flags_known(object_type *o_ptr, BIT_FLAGS flgs[TR_FLAG_SIZE])
{
bool spoil = FALSE;
int i;
static cptr item_activation_dragon_breath(object_type *o_ptr)
{
static char desc[256];
- u32b flgs[TR_FLAG_SIZE]; /* for resistance flags */
+ BIT_FLAGS flgs[TR_FLAG_SIZE]; /* for resistance flags */
int i, n = 0;
object_flags(o_ptr, flgs);
*/
cptr item_activation(object_type *o_ptr)
{
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
/* Extract the flags */
object_flags(o_ptr, flgs);
return _("モンスターを捕える、又は解放する。", "captures or releases a monster.");
}
- /* Oops */
return _("何も起きない", "Nothing");
}
* @param mode 表示オプション
* @return 特筆すべき情報が一つでもあった場合TRUE、一つもなく表示がキャンセルされた場合FALSEを返す。
*/
-bool screen_object(object_type *o_ptr, u32b mode)
+bool screen_object(object_type *o_ptr, BIT_FLAGS mode)
{
- int i = 0, j, k;
+ int i = 0, j, k;
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
char temp[70 * 20];
cptr info[128];
char o_name[MAX_NLEN];
int wid, hgt;
- int rad;
+ POSITION rad;
char desc[256];
int trivial_info = 0;
if (have_flag(flgs, TR_LITE_FUEL) && o_ptr->name2 != EGO_LITE_DARKNESS)
{
- if(rad > 0) sprintf(desc, _("それは燃料補給によって明かり(半径 %d)を授ける。", "It provides light (radius %d) when fueled."), rad);
+ if(rad > 0) sprintf(desc, _("それは燃料補給によって明かり(半径 %d)を授ける。", "It provides light (radius %d) when fueled."), (int)rad);
}
else
{
- if(rad > 0) sprintf(desc, _("それは永遠なる明かり(半径 %d)を授ける。", "It provides light (radius %d) forever."), rad);
- if(rad < 0) sprintf(desc, _("それは明かりの半径を狭める(半径に-%d)。", "It decreases radius of light source by %d."), -rad);
+ if(rad > 0) sprintf(desc, _("それは永遠なる明かり(半径 %d)を授ける。", "It provides light (radius %d) forever."), (int)rad);
+ if(rad < 0) sprintf(desc, _("それは明かりの半径を狭める(半径に-%d)。", "It decreases radius of light source by %d."), (int)-rad);
}
if(rad != 0) info[i++] = desc;
/* Save the screen */
screen_save();
- /* Get size */
Term_get_size(&wid, &hgt);
/* Display Item name */
{
register int i, n, z = 0;
object_type *o_ptr;
- byte attr = TERM_WHITE;
+ TERM_COLOR attr = TERM_WHITE;
char tmp_val[80];
char o_name[MAX_NLEN];
int wid, hgt;
- /* Get size */
Term_get_size(&wid, &hgt);
/* Find the "final" slot */
{
register int i, n;
object_type *o_ptr;
- byte attr = TERM_WHITE;
+ TERM_COLOR attr = TERM_WHITE;
char tmp_val[80];
char o_name[MAX_NLEN];
int wid, hgt;
- /* Get size */
Term_get_size(&wid, &hgt);
/* Display the equipment */
* Also, the tag "@xn" will work as well, where "n" is a any tag-char,\n
* and "x" is the "current" command_cmd code.\n
*/
-static bool get_tag(COMMAND_CODE *cp, char tag, int mode)
+static bool get_tag(COMMAND_CODE *cp, char tag, BIT_FLAGS mode)
{
COMMAND_CODE i;
COMMAND_CODE start, end;
* Also, the tag "@xn" will work as well, where "n" is a any tag-char,\n
* and "x" is the "current" command_cmd code.\n
*/
-static bool get_tag_floor(COMMAND_CODE *cp, char tag, int floor_list[], int floor_num)
+static bool get_tag_floor(COMMAND_CODE *cp, char tag, FLOOR_IDX floor_list[], ITEM_NUMBER floor_num)
{
COMMAND_CODE i;
cptr s;
* @param mode 所持品リストか装備品リストかの切り替え
* @return なし
*/
-static void prepare_label_string(char *label, int mode)
+static void prepare_label_string(char *label, BIT_FLAGS mode)
{
cptr alphabet_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int offset = (mode == USE_EQUIP) ? INVEN_RARM : 0;
*/
/*
*/
-static void prepare_label_string_floor(char *label, int floor_list[], int floor_num)
+static void prepare_label_string_floor(char *label, FLOOR_IDX floor_list[], ITEM_NUMBER floor_num)
{
cptr alphabet_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i;
*/
COMMAND_CODE show_inven(int target_item)
{
- int i, j, k, l, z = 0;
+ COMMAND_CODE i;
+ int j, k, l, z = 0;
int col, cur_col, len;
object_type *o_ptr;
char o_name[MAX_NLEN];
char tmp_val[80];
- int out_index[23];
- byte out_color[23];
+ COMMAND_CODE out_index[23];
+ TERM_COLOR out_color[23];
char out_desc[23][MAX_NLEN];
- int target_item_label = 0;
- int wid, hgt;
+ COMMAND_CODE target_item_label = 0;
+ TERM_LEN wid, hgt;
char inven_label[52 + 1];
/* Starting column */
col = command_gap;
- /* Get size */
Term_get_size(&wid, &hgt);
/* Default "max-length" */
/* Get the index */
i = out_index[j];
- /* Get the item */
o_ptr = &inventory[i];
/* Clear the line */
*/
COMMAND_CODE show_equip(int target_item)
{
- int i, j, k, l;
+ COMMAND_CODE i;
+ int j, k, l;
int col, cur_col, len;
object_type *o_ptr;
char tmp_val[80];
char o_name[MAX_NLEN];
- int out_index[23];
- byte out_color[23];
+ COMMAND_CODE out_index[23];
+ TERM_COLOR out_color[23];
char out_desc[23][MAX_NLEN];
- int target_item_label = 0;
- int wid, hgt;
+ COMMAND_CODE target_item_label = 0;
+ TERM_LEN wid, hgt;
char equip_label[52 + 1];
/* Starting column */
col = command_gap;
- /* Get size */
Term_get_size(&wid, &hgt);
/* Maximal length */
if ((((i == INVEN_RARM) && p_ptr->hidarite) || ((i == INVEN_LARM) && p_ptr->migite)) && p_ptr->ryoute)
{
-#ifdef JP
- (void)strcpy(out_desc[k],"(武器を両手持ち)");
-#else
- (void)strcpy(out_desc[k],"(wielding with two-hands)");
-#endif
+ (void)strcpy(out_desc[k],_("(武器を両手持ち)", "(wielding with two-hands)"));
out_color[k] = TERM_WHITE;
}
else
/* Get the index */
i = out_index[j];
- /* Get the item */
o_ptr = &inventory[i];
/* Clear the line */
window_flag[j] &= ~(PW_INVEN);
window_flag[j] |= (PW_EQUIP);
- /* Window stuff */
p_ptr->window |= (PW_EQUIP);
}
window_flag[j] &= ~(PW_EQUIP);
window_flag[j] |= (PW_INVEN);
- /* Window stuff */
p_ptr->window |= (PW_INVEN);
}
}
* @return 確認がYesならTRUEを返す。
* @details The item can be negative to mean "item on floor".
*/
-static bool verify(cptr prompt, int item)
+static bool verify(cptr prompt, INVENTORY_IDX item)
{
char o_name[MAX_NLEN];
char out_val[MAX_NLEN+20];
* @details The item can be negative to mean "item on floor".
* Hack -- allow user to "prevent" certain choices
*/
-static bool get_item_allow(int item)
+static bool get_item_allow(INVENTORY_IDX item)
{
cptr s;
*/
bool can_get_item(void)
{
- int j, floor_list[23], floor_num = 0;
+ int j;
+ OBJECT_IDX floor_list[23];
+ ITEM_NUMBER floor_num = 0;
for (j = 0; j < INVEN_TOTAL; j++)
if (item_tester_okay(&inventory[j]))
* We always erase the prompt when we are done, leaving a blank line,\n
* or a warning message, if appropriate, if no items are available.\n
*/
-bool get_item(OBJECT_IDX *cp, cptr pmt, cptr str, int mode)
+bool get_item(OBJECT_IDX *cp, cptr pmt, cptr str, BIT_FLAGS mode)
{
OBJECT_IDX this_o_idx, next_o_idx = 0;
int max_inven = 0;
int max_equip = 0;
-#ifdef ALLOW_REPEAT
-
static char prev_tag = '\0';
char cur_tag = '\0';
-#endif /* ALLOW_REPEAT */
-
-#ifdef ALLOW_EASY_FLOOR /* TNB */
-
if (easy_floor || use_menu) return get_item_floor(cp, pmt, str, mode);
-#endif /* ALLOW_EASY_FLOOR -- TNB */
-
/* Extract args */
if (mode & USE_EQUIP) equip = TRUE;
if (mode & USE_INVEN) inven = TRUE;
if (mode & USE_FLOOR) floor = TRUE;
-#ifdef ALLOW_REPEAT
-
/* Get the item index */
if (repeat_pull(cp))
{
}
}
-#endif /* ALLOW_REPEAT */
-
- /* Paranoia XXX XXX XXX */
+ /* Paranoia */
msg_print(NULL);
/* Cancel p_ptr->command_see */
command_see = FALSE;
- /* Oops */
oops = TRUE;
- /* Done */
done = TRUE;
if (select_the_force) {
if (done) break;
}
- /* Oops */
bell();
break;
}
(*cp) = k;
item = TRUE;
done = TRUE;
-#ifdef ALLOW_REPEAT
cur_tag = which;
-#endif /* ALLOW_REPEAT */
break;
}
(*cp) = k;
item = TRUE;
done = TRUE;
-#ifdef ALLOW_REPEAT
cur_tag = which;
-#endif /* ALLOW_REPEAT */
break;
}
/* Extract "query" setting */
ver = isupper(which);
- which = tolower(which);
+ which = (char)tolower(which);
/* Convert letter to inventory index */
if (!command_wrk)
/* Update */
p_ptr->window |= (PW_INVEN | PW_EQUIP);
- /* Window stuff */
window_stuff();
if (item)
{
-#ifdef ALLOW_REPEAT
repeat_push(*cp);
if (command_cmd) prev_tag = cur_tag;
-#endif /* ALLOW_REPEAT */
-
command_cmd = 0; /* Hack -- command_cmd is no longer effective */
}
-
- /* Result */
return (item);
}
-
-#ifdef ALLOW_EASY_FLOOR
-
/*!
* @brief 床下に落ちているオブジェクトの数を返す / scan_floor
* @param items オブジェクトのIDリストを返すための配列参照ポインタ
* mode & 0x02 -- Marked items only
* mode & 0x04 -- Stop after first
*/
-int scan_floor(int *items, int y, int x, int mode)
+ITEM_NUMBER scan_floor(OBJECT_IDX *items, POSITION y, POSITION x, BIT_FLAGS mode)
{
- int this_o_idx, next_o_idx;
+ OBJECT_IDX this_o_idx, next_o_idx;
- int num = 0;
+ ITEM_NUMBER num = 0;
/* Sanity */
if (!in_bounds(y, x)) return 0;
/* Only one */
if (mode & 0x04) break;
}
-
- /* Result */
return num;
}
* @param y 走査するフロアのY座標
* @param x 走査するフロアのX座標
* @param min_width 表示の長さ
- * @return 選択したアイテムのID
+ * @return 選択したアイテムの添え字
* @details
*/
-int show_floor(int target_item, int y, int x, int *min_width)
+COMMAND_CODE show_floor(int target_item, POSITION y, POSITION x, TERM_LEN *min_width)
{
- int i, j, k, l;
+ COMMAND_CODE i, m;
+ int j, k, l;
int col, len;
object_type *o_ptr;
char o_name[MAX_NLEN];
-
char tmp_val[80];
- int out_index[23];
- byte out_color[23];
+ COMMAND_CODE out_index[23];
+ TERM_COLOR out_color[23];
char out_desc[23][MAX_NLEN];
- int target_item_label = 0;
+ COMMAND_CODE target_item_label = 0;
- int floor_list[23], floor_num;
- int wid, hgt;
+ OBJECT_IDX floor_list[23];
+ ITEM_NUMBER floor_num;
+ TERM_LEN wid, hgt;
char floor_label[52 + 1];
bool dont_need_to_show_weights = TRUE;
- /* Get size */
Term_get_size(&wid, &hgt);
/* Default length */
for (j = 0; j < k; j++)
{
/* Get the index */
- i = floor_list[out_index[j]];
+ m = floor_list[out_index[j]];
- /* Get the item */
- o_ptr = &o_list[i];
+ o_ptr = &o_list[m];
/* Clear the line */
prt("", j + 1, col ? col - 2 : col);
if (j == (target_item-1))
{
strcpy(tmp_val, _("》", "> "));
- target_item_label = i;
+ target_item_label = m;
}
else strcpy(tmp_val, " ");
}
* @param mode オプションフラグ
* @return プレイヤーによりアイテムが選択されたならTRUEを返す。/
*/
-bool get_item_floor(COMMAND_CODE *cp, cptr pmt, cptr str, int mode)
+bool get_item_floor(COMMAND_CODE *cp, cptr pmt, cptr str, BIT_FLAGS mode)
{
char n1 = ' ', n2 = ' ', which = ' ';
char tmp_val[160];
char out_val[160];
- int floor_num, floor_list[23], floor_top = 0;
- int min_width = 0;
+ ITEM_NUMBER floor_num;
+ OBJECT_IDX floor_list[23];
+ int floor_top = 0;
+ TERM_LEN min_width = 0;
extern bool select_the_force;
int max_inven = 0;
int max_equip = 0;
-#ifdef ALLOW_REPEAT
-
static char prev_tag = '\0';
char cur_tag = '\0';
}
}
-#endif /* ALLOW_REPEAT */
-
- /* Paranoia XXX XXX XXX */
+ /* Paranoia */
msg_print(NULL);
/* Cancel p_ptr->command_see */
command_see = FALSE;
- /* Oops */
oops = TRUE;
- /* Done */
done = TRUE;
if (select_the_force) {
case '+':
{
int i;
- IDX o_idx;
+ OBJECT_IDX o_idx;
cave_type *c_ptr = &cave[p_ptr->y][p_ptr->x];
if (command_wrk != (USE_FLOOR)) break;
(*cp) = k;
item = TRUE;
done = TRUE;
-#ifdef ALLOW_REPEAT
cur_tag = which;
-#endif /* ALLOW_REPEAT */
break;
}
(*cp) = k;
item = TRUE;
done = TRUE;
-#ifdef ALLOW_REPEAT
cur_tag = which;
-#endif /* ALLOW_REPEAT */
break;
}
}
(*cp) = k;
item = TRUE;
done = TRUE;
-#ifdef ALLOW_REPEAT
cur_tag = which;
-#endif /* ALLOW_REPEAT */
break;
}
}
/* Update */
p_ptr->window |= (PW_INVEN | PW_EQUIP);
- /* Window stuff */
window_stuff();
if (item)
{
-#ifdef ALLOW_REPEAT
repeat_push(*cp);
if (command_cmd) prev_tag = cur_tag;
-#endif /* ALLOW_REPEAT */
-
command_cmd = 0; /* Hack -- command_cmd is no longer effective */
}
-
- /* Result */
return (item);
}
*/
static bool py_pickup_floor_aux(void)
{
- s16b this_o_idx;
+ OBJECT_IDX this_o_idx;
cptr q, s;
- int item;
+ OBJECT_IDX item;
/* Restrict the choices */
item_tester_hook = inven_carry_okay;
*/
void py_pickup_floor(bool pickup)
{
- s16b this_o_idx, next_o_idx = 0;
+ OBJECT_IDX this_o_idx, next_o_idx = 0;
char o_name[MAX_NLEN];
object_type *o_ptr;
- int floor_num = 0, floor_o_idx = 0;
+ int floor_num = 0;
+ OBJECT_IDX floor_o_idx = 0;
int can_pickup = 0;
next_o_idx = o_ptr->next_o_idx;
/* Hack -- disturb */
- disturb(0, 0);
+ disturb(FALSE, FALSE);
/* Pick up gold */
if (o_ptr->tval == TV_GOLD)
{
- /* Message */
#ifdef JP
msg_format(" $%ld の価値がある%sを見つけた。",
(long)o_ptr->pval, o_name);
/* Redraw gold */
p_ptr->redraw |= (PR_GOLD);
- /* Window stuff */
p_ptr->window |= (PW_PLAYER);
/* Delete the gold */
/* Describe the object */
object_desc(o_name, o_ptr, 0);
- /* Message */
msg_format(_("%sがある。", "You see %s."), o_name);
}
/* Multiple objects */
else
{
- /* Message */
msg_format(_("%d 個のアイテムの山がある。", "You see a pile of %d items."), floor_num);
}
- /* Done */
return;
}
/* Describe the object */
object_desc(o_name, o_ptr, 0);
- /* Message */
msg_format(_("ザックには%sを入れる隙間がない。", "You have no room for %s."), o_name);
}
/* Multiple objects */
else
{
- /* Message */
msg_print(_("ザックには床にあるどのアイテムも入らない。", "You have no room for any of the objects on the floor."));
}
- /* Done */
return;
}
/* Ask the user to confirm */
if (!get_check(out_val))
{
- /* Done */
return;
}
}
}
}
}
-
-#endif /* ALLOW_EASY_FLOOR */