bool show_gold_on_floor = FALSE;
+// Examine grid
+typedef struct eg_type {
+ concptr s1;
+ concptr s2;
+ concptr s3;
+ concptr x_info;
+ OBJECT_IDX floor_list[23];
+ ITEM_NUMBER floor_num;
+ OBJECT_IDX next_o_idx;
+} eg_type;
+
+static eg_type *initialize_eg_type(eg_type *eg_ptr)
+{
+ eg_ptr->s1 = "";
+ eg_ptr->s2 = "";
+ eg_ptr->s3 = "";
+ eg_ptr->x_info = "";
+ eg_ptr->floor_num = 0;
+ eg_ptr->next_o_idx = 0;
+ return eg_ptr;
+}
+
/*
* Evaluate number of kill needed to gain level
*/
*/
char examine_grid(player_type *subject_ptr, POSITION y, POSITION x, target_type mode, concptr info)
{
- OBJECT_IDX next_o_idx = 0;
- concptr s1 = "";
- concptr s2 = "";
- concptr s3 = "";
- concptr x_info = "";
+ eg_type tmp_eg;
+ eg_type *eg_ptr = initialize_eg_type(&tmp_eg);
bool boring = TRUE;
FEAT_IDX feat;
feature_type *f_ptr;
char query = '\001';
char out_val[MAX_NLEN + 80];
- OBJECT_IDX floor_list[23];
- ITEM_NUMBER floor_num = 0;
if (easy_floor) {
- floor_num = scan_floor_items(subject_ptr, floor_list, y, x, 0x02, 0);
- if (floor_num)
- x_info = _("x物 ", "x,");
+ eg_ptr->floor_num = scan_floor_items(subject_ptr, eg_ptr->floor_list, y, x, 0x02, 0);
+ if (eg_ptr->floor_num)
+ eg_ptr->x_info = _("x物 ", "x,");
}
if (player_bold(subject_ptr, y, x)) {
#ifdef JP
- s1 = "あなたは";
- s2 = "の上";
- s3 = "にいる";
+ eg_ptr->s1 = "あなたは";
+ eg_ptr->s2 = "の上";
+ eg_ptr->s3 = "にいる";
#else
- s1 = "You are ";
- s2 = "on ";
+ eg_ptr->s1 = "You are ";
+ eg_ptr->s2 = "on ";
#endif
} else {
- s1 = _("ターゲット:", "Target:");
+ eg_ptr->s1 = _("ターゲット:", "Target:");
}
if (subject_ptr->image) {
concptr name = _("何か奇妙な物", "something strange");
#ifdef JP
- sprintf(out_val, "%s%s%s%s [%s]", s1, name, s2, s3, info);
+ sprintf(out_val, "%s%s%s%s [%s]", eg_ptr->s1, name, eg_ptr->s2, eg_ptr->s3, info);
#else
- sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, name, info);
+ sprintf(out_val, "%s%s%s%s [%s]", eg_ptr->s1, eg_ptr->s2, eg_ptr->s3, name, info);
#endif
prt(out_val, 0, 0);
move_cursor_relative(y, x);
if (recall) {
screen_save();
screen_roff(subject_ptr, m_ptr->ap_r_idx, 0);
- term_addstr(-1, TERM_WHITE, format(_(" [r思 %s%s]", " [r,%s%s]"), x_info, info));
+ term_addstr(-1, TERM_WHITE, format(_(" [r思 %s%s]", " [r,%s%s]"), eg_ptr->x_info, info));
query = inkey();
screen_load();
if (query != 'r')
evaluate_monster_exp(subject_ptr, acount, m_ptr);
#ifdef JP
- sprintf(out_val, "[%s]%s%s(%s)%s%s [r思 %s%s]", acount, s1, m_name, look_mon_desc(m_ptr, 0x01), s2, s3, x_info, info);
+ sprintf(
+ out_val, "[%s]%s%s(%s)%s%s [r思 %s%s]", acount, eg_ptr->s1, m_name, look_mon_desc(m_ptr, 0x01), eg_ptr->s2, eg_ptr->s3, eg_ptr->x_info, info);
#else
- sprintf(out_val, "[%s]%s%s%s%s(%s) [r, %s%s]", acount, s1, s2, s3, m_name, look_mon_desc(m_ptr, 0x01), x_info, info);
+ sprintf(
+ out_val, "[%s]%s%s%s%s(%s) [r, %s%s]", acount, eg_ptr->s1, eg_ptr->s2, eg_ptr->s3, m_name, look_mon_desc(m_ptr, 0x01), eg_ptr->x_info, info);
#endif
prt(out_val, 0, 0);
move_cursor_relative(y, x);
if ((query == ' ') && !(mode & TARGET_LOOK))
return query;
- s1 = _("それは", "It is ");
+ eg_ptr->s1 = _("それは", "It is ");
if (ap_r_ptr->flags1 & RF1_FEMALE)
- s1 = _("彼女は", "She is ");
+ eg_ptr->s1 = _("彼女は", "She is ");
else if (ap_r_ptr->flags1 & RF1_MALE)
- s1 = _("彼は", "He is ");
+ eg_ptr->s1 = _("彼は", "He is ");
#ifdef JP
- s2 = "を";
- s3 = "持っている";
+ eg_ptr->s2 = "を";
+ eg_ptr->s3 = "持っている";
#else
- s2 = "carrying ";
+ eg_ptr->s2 = "carrying ";
#endif
- for (OBJECT_IDX this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx) {
+ for (OBJECT_IDX this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = eg_ptr->next_o_idx) {
GAME_TEXT o_name[MAX_NLEN];
object_type *o_ptr;
o_ptr = &subject_ptr->current_floor_ptr->o_list[this_o_idx];
- next_o_idx = o_ptr->next_o_idx;
+ eg_ptr->next_o_idx = o_ptr->next_o_idx;
describe_flavor(subject_ptr, o_name, o_ptr, 0);
#ifdef JP
- sprintf(out_val, "%s%s%s%s[%s]", s1, o_name, s2, s3, info);
+ sprintf(out_val, "%s%s%s%s[%s]", eg_ptr->s1, o_name, eg_ptr->s2, eg_ptr->s3, info);
#else
- sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, o_name, info);
+ sprintf(out_val, "%s%s%s%s [%s]", eg_ptr->s1, eg_ptr->s2, eg_ptr->s3, o_name, info);
#endif
prt(out_val, 0, 0);
move_cursor_relative(y, x);
if ((query == ' ') && !(mode & TARGET_LOOK))
return query;
- s2 = _("をまた", "also carrying ");
+ eg_ptr->s2 = _("をまた", "also carrying ");
}
#ifdef JP
- s2 = "の上";
- s3 = "にいる";
+ eg_ptr->s2 = "の上";
+ eg_ptr->s3 = "にいる";
#else
- s2 = "on ";
+ eg_ptr->s2 = "on ";
#endif
}
- if (floor_num) {
+ if (eg_ptr->floor_num != 0) {
int min_width = 0;
while (TRUE) {
- if (floor_num == 1) {
+ if (eg_ptr->floor_num == 1) {
GAME_TEXT o_name[MAX_NLEN];
object_type *o_ptr;
- o_ptr = &subject_ptr->current_floor_ptr->o_list[floor_list[0]];
+ o_ptr = &subject_ptr->current_floor_ptr->o_list[eg_ptr->floor_list[0]];
describe_flavor(subject_ptr, o_name, o_ptr, 0);
#ifdef JP
- sprintf(out_val, "%s%s%s%s[%s]", s1, o_name, s2, s3, info);
+ sprintf(out_val, "%s%s%s%s[%s]", eg_ptr->s1, o_name, eg_ptr->s2, eg_ptr->s3, info);
#else
- sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, o_name, info);
+ sprintf(out_val, "%s%s%s%s [%s]", eg_ptr->s1, eg_ptr->s2, eg_ptr->s3, o_name, info);
#endif
prt(out_val, 0, 0);
move_cursor_relative(y, x);
if (boring) {
#ifdef JP
- sprintf(out_val, "%s %d個のアイテム%s%s ['x'で一覧, %s]", s1, (int)floor_num, s2, s3, info);
+ sprintf(out_val, "%s %d個のアイテム%s%s ['x'で一覧, %s]", eg_ptr->s1, (int)eg_ptr->floor_num, eg_ptr->s2, eg_ptr->s3, info);
#else
- sprintf(out_val, "%s%s%sa pile of %d items [x,%s]", s1, s2, s3, (int)floor_num, info);
+ sprintf(out_val, "%s%s%sa pile of %d items [x,%s]", eg_ptr->s1, eg_ptr->s2, eg_ptr->s3, (int)eg_ptr->floor_num, info);
#endif
prt(out_val, 0, 0);
move_cursor_relative(y, x);
(void)show_floor_items(subject_ptr, 0, y, x, &min_width, 0);
show_gold_on_floor = FALSE;
#ifdef JP
- sprintf(out_val, "%s %d個のアイテム%s%s [Enterで次へ, %s]", s1, (int)floor_num, s2, s3, info);
+ sprintf(out_val, "%s %d個のアイテム%s%s [Enterで次へ, %s]", eg_ptr->s1, (int)eg_ptr->floor_num, eg_ptr->s2, eg_ptr->s3, info);
#else
- sprintf(out_val, "%s%s%sa pile of %d items [Enter,%s]", s1, s2, s3, (int)floor_num, info);
+ sprintf(out_val, "%s%s%sa pile of %d items [Enter,%s]", eg_ptr->s1, eg_ptr->s2, eg_ptr->s3, (int)eg_ptr->floor_num, info);
#endif
prt(out_val, 0, 0);
query = inkey();
}
}
- for (OBJECT_IDX this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) {
+ for (OBJECT_IDX this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = eg_ptr->next_o_idx) {
object_type *o_ptr;
o_ptr = &subject_ptr->current_floor_ptr->o_list[this_o_idx];
- next_o_idx = o_ptr->next_o_idx;
+ eg_ptr->next_o_idx = o_ptr->next_o_idx;
if (o_ptr->marked & OM_FOUND) {
GAME_TEXT o_name[MAX_NLEN];
boring = FALSE;
describe_flavor(subject_ptr, o_name, o_ptr, 0);
#ifdef JP
- sprintf(out_val, "%s%s%s%s[%s]", s1, o_name, s2, s3, info);
+ sprintf(out_val, "%s%s%s%s[%s]", eg_ptr->s1, o_name, eg_ptr->s2, eg_ptr->s3, info);
#else
- sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, o_name, info);
+ sprintf(out_val, "%s%s%s%s [%s]", eg_ptr->s1, eg_ptr->s2, eg_ptr->s3, o_name, info);
#endif
prt(out_val, 0, 0);
move_cursor_relative(y, x);
if ((query == ' ') && !(mode & TARGET_LOOK))
return query;
- s1 = _("それは", "It is ");
+ eg_ptr->s1 = _("それは", "It is ");
if (o_ptr->number != 1)
- s1 = _("それらは", "They are ");
+ eg_ptr->s1 = _("それらは", "They are ");
#ifdef JP
- s2 = "の上";
- s3 = "に見える";
+ eg_ptr->s2 = "の上";
+ eg_ptr->s3 = "に見える";
#else
- s2 = "on ";
+ eg_ptr->s2 = "on ";
#endif
}
}
name = f_name + f_ptr->name;
}
- if (*s2
+ if (*eg_ptr->s2
&& ((!have_flag(f_ptr->flags, FF_MOVE) && !have_flag(f_ptr->flags, FF_CAN_FLY))
|| (!have_flag(f_ptr->flags, FF_LOS) && !have_flag(f_ptr->flags, FF_TREE)) || have_flag(f_ptr->flags, FF_TOWN))) {
- s2 = _("の中", "in ");
+ eg_ptr->s2 = _("の中", "in ");
}
if (have_flag(f_ptr->flags, FF_STORE) || have_flag(f_ptr->flags, FF_QUEST_ENTER)
|| (have_flag(f_ptr->flags, FF_BLDG) && !subject_ptr->current_floor_ptr->inside_arena) || have_flag(f_ptr->flags, FF_ENTRANCE))
- s2 = _("の入口", "");
+ eg_ptr->s2 = _("の入口", "");
#ifdef JP
#else
else if (have_flag(f_ptr->flags, FF_FLOOR) || have_flag(f_ptr->flags, FF_TOWN) || have_flag(f_ptr->flags, FF_SHALLOW) || have_flag(f_ptr->flags, FF_DEEP))
- s3 = "";
+ eg_ptr->s3 = "";
else
- s3 = (is_a_vowel(name[0])) ? "an " : "a ";
+ eg_ptr->s3 = (is_a_vowel(name[0])) ? "an " : "a ";
#endif
if (current_world_ptr->wizard) {
sprintf(f_idx_str, "%d", g_ptr->feat);
#ifdef JP
- sprintf(out_val, "%s%s%s%s[%s] %x %s %d %d %d (%d,%d) %d", s1, name, s2, s3, info, (unsigned int)g_ptr->info, f_idx_str, g_ptr->dist, g_ptr->cost,
- g_ptr->when, (int)y, (int)x, travel.cost[y][x]);
+ sprintf(out_val, "%s%s%s%s[%s] %x %s %d %d %d (%d,%d) %d", eg_ptr->s1, name, eg_ptr->s2, eg_ptr->s3, info, (unsigned int)g_ptr->info, f_idx_str,
+ g_ptr->dist, g_ptr->cost, g_ptr->when, (int)y, (int)x, travel.cost[y][x]);
#else
- sprintf(out_val, "%s%s%s%s [%s] %x %s %d %d %d (%d,%d)", s1, s2, s3, name, info, g_ptr->info, f_idx_str, g_ptr->dist, g_ptr->cost, g_ptr->when, (int)y,
- (int)x);
+ sprintf(out_val, "%s%s%s%s [%s] %x %s %d %d %d (%d,%d)", eg_ptr->s1, eg_ptr->s2, eg_ptr->s3, name, info, g_ptr->info, f_idx_str, g_ptr->dist,
+ g_ptr->cost, g_ptr->when, (int)y, (int)x);
#endif
} else
#ifdef JP
- sprintf(out_val, "%s%s%s%s[%s]", s1, name, s2, s3, info);
+ sprintf(out_val, "%s%s%s%s[%s]", eg_ptr->s1, name, eg_ptr->s2, eg_ptr->s3, info);
#else
- sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, name, info);
+ sprintf(out_val, "%s%s%s%s [%s]", eg_ptr->s1, eg_ptr->s2, eg_ptr->s3, name, info);
#endif
prt(out_val, 0, 0);