* Output:
* result
*/
-cptr process_pref_file_expr(cptr *sp, char *fp)
+cptr process_pref_file_expr(char **sp, char *fp)
{
cptr v;
- cptr s;
+ char *b;
+ char *s;
char b1 = '[';
char b2 = ']';
char f = ' ';
- static char tmp[8];
+ static char tmp[10];
/* Initial */
s = (*sp);
/* Skip spaces */
while (isspace(*s)) s++;
+ /* Save start */
+ b = s;
+
/* Default */
v = "?o?o?";
if (f != b2) v = "?x?x?";
/* Extract final and Terminate */
- if ((f = *s) != '\0') s++;
+ if ((f = *s) != '\0') *s++ = '\0';
}
/* Other */
else
{
- char b[1024];
- int i;
-
/* Accept all printables except spaces and brackets */
- for (i = 0; isprint(*s) && !my_strchr(" []", *s); i++)
- b[i] = *s++;
-
- /* Terminate */
- b[i] = '\0';
+#ifdef JP
+ while (iskanji(*s) || (isprint(*s) && !my_strchr(" []", *s)))
+ {
+ if (iskanji(*s)) s++;
+ s++;
+ }
+#else
+ while (isprint(*s) && !my_strchr(" []", *s)) ++s;
+#endif
/* Extract final and Terminate */
- if ((f = *s) != '\0') s++;
+ if ((f = *s) != '\0') *s++ = '\0';
/* Variable */
if (*b == '$')
/* Player */
else if (streq(b+1, "PLAYER"))
{
- v = player_base;
+ static char tmp_player_name[32];
+ char *pn, *tpn;
+ for (pn = player_name, tpn = tmp_player_name; *pn; pn++, tpn++)
+ {
+#ifdef JP
+ if (iskanji(*pn))
+ {
+ *(tpn++) = *(pn++);
+ *tpn = *pn;
+ continue;
+ }
+#endif
+ *tpn = my_strchr(" []", *pn) ? '_' : *pn;
+ }
+ *tpn = '\0';
+ v = tmp_player_name;
}
/* First realm */
else
v = "0";
}
+
+ /* Money */
+ else if (streq(b+1, "MONEY"))
+ {
+ sprintf(tmp, "%09ld", (long int)p_ptr->au);
+ v = tmp;
+ }
}
/* Constant */
{
char f;
cptr v;
- cptr s;
+ char *s;
/* Start */
s = buf + 2;
{29, 10, 21, "£È£Ð"},
{29, 11, 21, "£Í£Ð"},
{29, 20, 21, "¥×¥ì¥¤»þ´Ö"},
- {53, 10, -1, "ÂǷ⹶·â :"},
- {53, 11, -1, "¼Í·â¹¶·â :"},
+ {53, 10, -1, "ÂÇ·âÌ¿Ãæ :"},
+ {53, 11, -1, "¼Í·âÌ¿Ãæ :"},
{53, 12, -1, "ËâË¡Ëɸæ :"},
{53, 13, -1, "±£Ì©¹ÔÆ° :"},
{53, 15, -1, "ÃγР:"},
/* Hack -- add in weapon info if known */
if (object_is_known(o_ptr)) show_tohit += o_ptr->to_h;
if (object_is_known(o_ptr)) show_todam += o_ptr->to_d;
-
+
+ show_tohit += p_ptr->skill_thn / BTH_PLUS_ADJ;
+
/* Melee attacks */
sprintf(buf, "(%+d,%+d)", show_tohit, show_todam);
show_tohit += p_ptr->weapon_exp[0][o_ptr->sval] / 400;
else
show_tohit += (p_ptr->weapon_exp[0][o_ptr->sval] - (WEAPON_EXP_MASTER / 2)) / 200;
-
+
+ show_tohit += p_ptr->skill_thb / BTH_PLUS_ADJ;
+
/* Range attacks */
display_player_one_line(ENTRY_SHOOT_HIT_DAM, format("(%+d,%+d)", show_tohit, show_todam), TERM_L_BLUE);
*/
static void display_player_various(void)
{
- int tmp, damage[2], blows1, blows2, i, basedam;
+ int tmp, damage[2], to_h[2], blows1, blows2, i, basedam;
int xthn, xthb, xfos, xsrh;
int xdis, xdev, xsav, xstl;
cptr desc;
int muta_att = 0;
u32b flgs[TR_FLAG_SIZE];
int shots, shot_frac;
+ bool dokubari;
object_type *o_ptr;
/* Average damage per round */
if (o_ptr->k_idx)
{
- if (object_is_known(o_ptr)) damage[i] += o_ptr->to_d * 100;
+ to_h[i] = 0;
+ dokubari = FALSE;
+
+ if((o_ptr->tval == TV_SWORD) && (o_ptr->sval == SV_DOKUBARI)) dokubari = TRUE;
+ if (object_is_known(o_ptr))
+ {
+ damage[i] += o_ptr->to_d * 100;
+ to_h[i] += o_ptr->to_h;
+ }
basedam = ((o_ptr->dd + p_ptr->to_dd[i]) * (o_ptr->ds + p_ptr->to_ds[i] + 1)) * 50;
object_flags_known(o_ptr, flgs);
+
+ basedam = calc_expect_crit(o_ptr->weight, to_h[i], basedam, p_ptr->dis_to_h[i], dokubari);
if ((o_ptr->ident & IDENT_MENTAL) && ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD)))
{
/* vorpal blade */
case RACE_S_FAIRY:
add_flag(flgs, TR_LEVITATION);
break;
- case RACE_KUTA:
+ case RACE_KUTAR:
add_flag(flgs, TR_RES_CONF);
break;
case RACE_ANDROID:
add_flag(flgs, TR_SUST_CON);
add_flag(flgs, TR_SUST_CHR);
}
+
+ /* Hex bonuses */
+ if (p_ptr->realm1 == REALM_HEX)
+ {
+ if (hex_spelling(HEX_DEMON_AURA))
+ {
+ add_flag(flgs, TR_SH_FIRE);
+ add_flag(flgs, TR_REGEN);
+ }
+ if (hex_spelling(HEX_ICE_ARMOR)) add_flag(flgs, TR_SH_COLD);
+ if (hex_spelling(HEX_SHOCK_CLOAK)) add_flag(flgs, TR_SH_ELEC);
+ }
}
int i;
bool vuln = FALSE;
int max_i;
+ byte header_color = TERM_L_DARK;
+ int header_col = col;
if (have_flag(f->player_vuln, flag1) &&
!(have_flag(f->known_obj_imm, flag1) ||
have_flag(f->tim_player_imm, flag1)))
vuln = TRUE;
- /* Header */
- if (!(mode & DP_IMM)) c_put_str(TERM_WHITE, header, row, col);
-
/* Advance */
col += strlen(header) + 1;
/* Check flags */
if (mode & DP_CURSE)
{
- if ((mode & DP_CURSE) && (o_ptr->curse_flags & (TRC_CURSED | TRC_HEAVY_CURSE)))
+ if (have_flag(flgs, TR_ADD_L_CURSE) || have_flag(flgs, TR_ADD_H_CURSE))
+ {
+ c_put_str(TERM_L_DARK, "+", row, col);
+ header_color = TERM_WHITE;
+ }
+ if (o_ptr->curse_flags & (TRC_CURSED | TRC_HEAVY_CURSE))
+ {
c_put_str(TERM_WHITE, "+", row, col);
- if ((mode & DP_CURSE) && (o_ptr->curse_flags & TRC_PERMA_CURSE))
+ header_color = TERM_WHITE;
+ }
+ if (o_ptr->curse_flags & TRC_PERMA_CURSE)
+ {
c_put_str(TERM_WHITE, "*", row, col);
+ header_color = TERM_WHITE;
+ }
}
else
{
if (have_flag(flgs, flag1))
+ {
c_put_str((byte)(vuln ? TERM_L_RED : TERM_WHITE),
(mode & DP_IMM) ? "*" : "+", row, col);
+ header_color = TERM_WHITE;
+ }
}
/* Advance */
}
/* Assume that player flag is already written */
- if (mode & DP_IMM) return;
+ if (mode & DP_IMM)
+ {
+ if (header_color != TERM_L_DARK)
+ {
+ /* Overwrite Header Color */
+ c_put_str(header_color, header, row, header_col);
+ }
+ return;
+ }
/* Default */
c_put_str((byte)(vuln ? TERM_RED : TERM_SLATE), ".", row, col);
/* Player flags */
- if (have_flag(f->player_flags, flag1)) c_put_str((byte)(vuln ? TERM_L_RED : TERM_WHITE), "+", row, col);
+ if (have_flag(f->player_flags, flag1))
+ {
+ c_put_str((byte)(vuln ? TERM_L_RED : TERM_WHITE), "+", row, col);
+ header_color = TERM_WHITE;
+ }
/* Timed player flags */
- if (have_flag(f->tim_player_flags, flag1)) c_put_str((byte)(vuln ? TERM_ORANGE : TERM_YELLOW), "#", row, col);
+ if (have_flag(f->tim_player_flags, flag1))
+ {
+ c_put_str((byte)(vuln ? TERM_ORANGE : TERM_YELLOW), "#", row, col);
+ header_color = TERM_WHITE;
+ }
/* Immunity */
- if (have_flag(f->tim_player_imm, flag1)) c_put_str(TERM_YELLOW, "*", row, col);
- if (have_flag(f->player_imm, flag1)) c_put_str(TERM_WHITE, "*", row, col);
+ if (have_flag(f->tim_player_imm, flag1))
+ {
+ c_put_str(TERM_YELLOW, "*", row, col);
+ header_color = TERM_WHITE;
+ }
+ if (have_flag(f->player_imm, flag1))
+ {
+ c_put_str(TERM_WHITE, "*", row, col);
+ header_color = TERM_WHITE;
+ }
/* Vulnerability */
if (vuln) c_put_str(TERM_RED, "v", row, col + 1);
+
+ /* Header */
+ c_put_str(header_color, header, row, header_col);
}
row = 3;
col = col + 12 + 7;
- display_player_equippy(row-2, col+12, 0);
- c_put_str(TERM_WHITE, "abcdefghijkl@", row-1, col+12);
-
-#ifdef JP
- display_flag_aux(row+ 0, col, "¥Æ¥ì¥Ñ¥·¡¼:", TR_TELEPATHY, &f, 0);
- display_flag_aux(row+ 1, col, "¼Ù°ESP :", TR_ESP_EVIL, &f, 0);
- display_flag_aux(row+ 2, col, "̵À¸ÊªESP :", TR_ESP_NONLIVING, &f, 0);
- display_flag_aux(row+ 3, col, "Á±ÎÉESP :", TR_ESP_GOOD, &f, 0);
- display_flag_aux(row+ 4, col, "ÉÔ»àESP :", TR_ESP_UNDEAD, &f, 0);
- display_flag_aux(row+ 5, col, "°ËâESP :", TR_ESP_DEMON, &f, 0);
- display_flag_aux(row+ 6, col, "ζESP :", TR_ESP_DRAGON, &f, 0);
- display_flag_aux(row+ 7, col, "¿Í´ÖESP :", TR_ESP_HUMAN, &f, 0);
- display_flag_aux(row+ 8, col, "ưʪESP :", TR_ESP_ANIMAL, &f, 0);
- display_flag_aux(row+ 9, col, "¥ª¡¼¥¯ESP :", TR_ESP_ORC, &f, 0);
- display_flag_aux(row+10, col, "¥È¥í¥ëESP :", TR_ESP_TROLL, &f, 0);
- display_flag_aux(row+11, col, "µð¿ÍESP :", TR_ESP_GIANT, &f, 0);
-
- display_flag_aux(row+13, col, "ÏÓÎÏ°Ý»ý :", TR_SUST_STR, &f, 0);
- display_flag_aux(row+14, col, "ÃÎÎÏ°Ý»ý :", TR_SUST_INT, &f, 0);
- display_flag_aux(row+15, col, "¸¤µ°Ý»ý :", TR_SUST_WIS, &f, 0);
- display_flag_aux(row+16, col, "´ïÍÑ°Ý»ý :", TR_SUST_DEX, &f, 0);
- display_flag_aux(row+17, col, "Âѵװݻý :", TR_SUST_CON, &f, 0);
- display_flag_aux(row+18, col, "Ì¥ÎÏ°Ý»ý :", TR_SUST_CHR, &f, 0);
-#else
- display_flag_aux(row+ 0, col, "Telepathy :", TR_TELEPATHY, &f, 0);
- display_flag_aux(row+ 1, col, "ESP Evil :", TR_ESP_EVIL, &f, 0);
- display_flag_aux(row+ 2, col, "ESP Noliv.:", TR_ESP_NONLIVING, &f, 0);
- display_flag_aux(row+ 3, col, "ESP Good :", TR_ESP_GOOD, &f, 0);
- display_flag_aux(row+ 4, col, "ESP Undead:", TR_ESP_UNDEAD, &f, 0);
- display_flag_aux(row+ 5, col, "ESP Demon :", TR_ESP_DEMON, &f, 0);
- display_flag_aux(row+ 6, col, "ESP Dragon:", TR_ESP_DRAGON, &f, 0);
- display_flag_aux(row+ 7, col, "ESP Human :", TR_ESP_HUMAN, &f, 0);
- display_flag_aux(row+ 8, col, "ESP Animal:", TR_ESP_ANIMAL, &f, 0);
- display_flag_aux(row+ 9, col, "ESP Orc :", TR_ESP_ORC, &f, 0);
- display_flag_aux(row+10, col, "ESP Troll :", TR_ESP_TROLL, &f, 0);
- display_flag_aux(row+11, col, "ESP Giant :", TR_ESP_GIANT, &f, 0);
-
- display_flag_aux(row+13, col, "Sust Str :", TR_SUST_STR, &f, 0);
- display_flag_aux(row+14, col, "Sust Int :", TR_SUST_INT, &f, 0);
- display_flag_aux(row+15, col, "Sust Wis :", TR_SUST_WIS, &f, 0);
- display_flag_aux(row+16, col, "Sust Dex :", TR_SUST_DEX, &f, 0);
- display_flag_aux(row+17, col, "Sust Con :", TR_SUST_CON, &f, 0);
- display_flag_aux(row+18, col, "Sust Chr :", TR_SUST_CHR, &f, 0);
+ display_player_equippy(row-2, col+13, 0);
+ c_put_str(TERM_WHITE, "abcdefghijkl@", row-1, col+13);
+
+#ifdef JP
+ display_flag_aux(row+ 0, col, "¥Æ¥ì¥Ñ¥·¡¼ :", TR_TELEPATHY, &f, 0);
+ display_flag_aux(row+ 1, col, "¼Ù°ESP :", TR_ESP_EVIL, &f, 0);
+ display_flag_aux(row+ 2, col, "̵À¸ÊªESP :", TR_ESP_NONLIVING, &f, 0);
+ display_flag_aux(row+ 3, col, "Á±ÎÉESP :", TR_ESP_GOOD, &f, 0);
+ display_flag_aux(row+ 4, col, "ÉÔ»àESP :", TR_ESP_UNDEAD, &f, 0);
+ display_flag_aux(row+ 5, col, "°ËâESP :", TR_ESP_DEMON, &f, 0);
+ display_flag_aux(row+ 6, col, "ζESP :", TR_ESP_DRAGON, &f, 0);
+ display_flag_aux(row+ 7, col, "¿Í´ÖESP :", TR_ESP_HUMAN, &f, 0);
+ display_flag_aux(row+ 8, col, "ưʪESP :", TR_ESP_ANIMAL, &f, 0);
+ display_flag_aux(row+ 9, col, "¥ª¡¼¥¯ESP :", TR_ESP_ORC, &f, 0);
+ display_flag_aux(row+10, col, "¥È¥í¥ëESP :", TR_ESP_TROLL, &f, 0);
+ display_flag_aux(row+11, col, "µð¿ÍESP :", TR_ESP_GIANT, &f, 0);
+ display_flag_aux(row+12, col, "¥æ¥Ë¡¼¥¯ESP:", TR_ESP_UNIQUE, &f, 0);
+ display_flag_aux(row+13, col, "ÏÓÎÏ°Ý»ý :", TR_SUST_STR, &f, 0);
+ display_flag_aux(row+14, col, "ÃÎÎÏ°Ý»ý :", TR_SUST_INT, &f, 0);
+ display_flag_aux(row+15, col, "¸¤µ°Ý»ý :", TR_SUST_WIS, &f, 0);
+ display_flag_aux(row+16, col, "´ïÍÑ°Ý»ý :", TR_SUST_DEX, &f, 0);
+ display_flag_aux(row+17, col, "Âѵװݻý :", TR_SUST_CON, &f, 0);
+ display_flag_aux(row+18, col, "Ì¥ÎÏ°Ý»ý :", TR_SUST_CHR, &f, 0);
+#else
+ display_flag_aux(row+ 0, col, "Telepathy :", TR_TELEPATHY, &f, 0);
+ display_flag_aux(row+ 1, col, "ESP Evil :", TR_ESP_EVIL, &f, 0);
+ display_flag_aux(row+ 2, col, "ESP Noliv. :", TR_ESP_NONLIVING, &f, 0);
+ display_flag_aux(row+ 3, col, "ESP Good :", TR_ESP_GOOD, &f, 0);
+ display_flag_aux(row+ 4, col, "ESP Undead :", TR_ESP_UNDEAD, &f, 0);
+ display_flag_aux(row+ 5, col, "ESP Demon :", TR_ESP_DEMON, &f, 0);
+ display_flag_aux(row+ 6, col, "ESP Dragon :", TR_ESP_DRAGON, &f, 0);
+ display_flag_aux(row+ 7, col, "ESP Human :", TR_ESP_HUMAN, &f, 0);
+ display_flag_aux(row+ 8, col, "ESP Animal :", TR_ESP_ANIMAL, &f, 0);
+ display_flag_aux(row+ 9, col, "ESP Orc :", TR_ESP_ORC, &f, 0);
+ display_flag_aux(row+10, col, "ESP Troll :", TR_ESP_TROLL, &f, 0);
+ display_flag_aux(row+11, col, "ESP Giant :", TR_ESP_GIANT, &f, 0);
+ display_flag_aux(row+12, col, "ESP Unique :", TR_ESP_UNIQUE, &f, 0);
+ display_flag_aux(row+13, col, "Sust Str :", TR_SUST_STR, &f, 0);
+ display_flag_aux(row+14, col, "Sust Int :", TR_SUST_INT, &f, 0);
+ display_flag_aux(row+15, col, "Sust Wis :", TR_SUST_WIS, &f, 0);
+ display_flag_aux(row+16, col, "Sust Dex :", TR_SUST_DEX, &f, 0);
+ display_flag_aux(row+17, col, "Sust Con :", TR_SUST_CON, &f, 0);
+ display_flag_aux(row+18, col, "Sust Chr :", TR_SUST_CHR, &f, 0);
#endif
{
/* Get the quest text */
/* Bewere that INIT_ASSIGN resets the cur_num. */
- init_flags = INIT_ASSIGN;
+ init_flags = INIT_NAME_ONLY;
process_dungeon_file("q_info.txt", 0, 0, 0, 0);
quest_text_line = 0;
/* Get the quest text */
- init_flags = INIT_SHOW_TEXT;
+ init_flags = INIT_NAME_ONLY;
process_dungeon_file("q_info.txt", 0, 0, 0, 0);
*/
static void dump_aux_display_player(FILE *fff)
{
- int x, y, i;
+ int x, y;
byte a;
char c;
char buf[1024];
fprintf(fff, "%s\n", buf);
}
- for (i = 0; (unsigned int) i < (p_ptr->count / 80); i++)
- fprintf(fff, " ");
fprintf(fff, "\n");
- for (i = 0; (unsigned int) i < (p_ptr->count % 80); i++)
- fprintf(fff, " ");
}
{
int i;
bool pet = FALSE;
+ bool pet_settings = FALSE;
char pet_name[80];
for (i = m_max - 1; i >= 1; i--)
if (!m_ptr->r_idx) continue;
if (!is_pet(m_ptr)) continue;
+ pet_settings = TRUE;
if (!m_ptr->nickname && (p_ptr->riding != i)) continue;
if (!pet)
{
#ifdef JP
- fprintf(fff, "\n [¼ç¤Ê¥Ú¥Ã¥È]\n\n");
+ fprintf(fff, "\n\n [¼ç¤Ê¥Ú¥Ã¥È]\n\n");
#else
- fprintf(fff, "\n [Leading Pets]\n\n");
+ fprintf(fff, "\n\n [Leading Pets]\n\n");
#endif
pet = TRUE;
}
fprintf(fff, "%s\n", pet_name);
}
- if (pet) fprintf(fff, "\n");
+ if (pet_settings)
+ {
+#ifdef JP
+ fprintf(fff, "\n\n [¥Ú¥Ã¥È¤Ø¤ÎÌ¿Îá]\n");
+#else
+ fprintf(fff, "\n\n [Command for Pets]\n");
+#endif
+
+#ifdef JP
+ fprintf(fff, "\n ¥É¥¢¤ò³«¤±¤ë: %s", (p_ptr->pet_extra_flags & PF_OPEN_DOORS) ? "ON" : "OFF");
+#else
+ fprintf(fff, "\n Pets open doors: %s", (p_ptr->pet_extra_flags & PF_OPEN_DOORS) ? "ON" : "OFF");
+#endif
+
+#ifdef JP
+ fprintf(fff, "\n ¥¢¥¤¥Æ¥à¤ò½¦¤¦: %s", (p_ptr->pet_extra_flags & PF_PICKUP_ITEMS) ? "ON" : "OFF");
+#else
+ fprintf(fff, "\n Pets pick up items: %s", (p_ptr->pet_extra_flags & PF_PICKUP_ITEMS) ? "ON" : "OFF");
+#endif
+
+#ifdef JP
+ fprintf(fff, "\n ¥Æ¥ì¥Ý¡¼¥È·ÏËâË¡¤ò»È¤¦: %s", (p_ptr->pet_extra_flags & PF_TELEPORT) ? "ON" : "OFF");
+#else
+ fprintf(fff, "\n Allow teleport: %s", (p_ptr->pet_extra_flags & PF_TELEPORT) ? "ON" : "OFF");
+#endif
+
+#ifdef JP
+ fprintf(fff, "\n ¹¶·âËâË¡¤ò»È¤¦: %s", (p_ptr->pet_extra_flags & PF_ATTACK_SPELL) ? "ON" : "OFF");
+#else
+ fprintf(fff, "\n Allow cast attack spell: %s", (p_ptr->pet_extra_flags & PF_ATTACK_SPELL) ? "ON" : "OFF");
+#endif
+
+#ifdef JP
+ fprintf(fff, "\n ¾¤´ËâË¡¤ò»È¤¦: %s", (p_ptr->pet_extra_flags & PF_SUMMON_SPELL) ? "ON" : "OFF");
+#else
+ fprintf(fff, "\n Allow cast summon spell: %s", (p_ptr->pet_extra_flags & PF_SUMMON_SPELL) ? "ON" : "OFF");
+#endif
+
+#ifdef JP
+ fprintf(fff, "\n ¥×¥ì¥¤¥ä¡¼¤ò´¬¤¹þ¤àÈÏ°ÏËâË¡¤ò»È¤¦: %s", (p_ptr->pet_extra_flags & PF_BALL_SPELL) ? "ON" : "OFF");
+#else
+ fprintf(fff, "\n Allow involve player in area spell: %s", (p_ptr->pet_extra_flags & PF_BALL_SPELL) ? "ON" : "OFF");
+#endif
+
+ fputc('\n', fff);
+ }
}
for (i=0;i<60;i++) { p[i][0] = '\0'; }
#ifdef JP
- strcat(p[col], "\n [³Ø½¬ºÑ¤ß¤ÎÀÄËâË¡]\n");
+ strcat(p[col], "\n\n [³Ø½¬ºÑ¤ß¤ÎÀÄËâË¡]\n");
#else
- strcat(p[col], "\n [Learned Blue Magic]\n");
+ strcat(p[col], "\n\n [Learned Blue Magic]\n");
#endif
for (i=0;i<=col;i++)
{
- fprintf(fff, p[i]);
+ fputs(p[i], fff);
+ }
+ }
+ else if (p_ptr->pclass == CLASS_MAGIC_EATER)
+ {
+ char s[EATER_EXT][MAX_NLEN];
+ int tval, ext, k_idx;
+ int i, magic_num;
+
+#ifdef JP
+ fprintf(fff, "\n\n [¼è¤ê¹þ¤ó¤ÀËâË¡Æ»¶ñ]\n");
+#else
+ fprintf(fff, "\n\n [Magic devices eaten]\n");
+#endif
+
+ for (ext = 0; ext < 3; ext++)
+ {
+ int eat_num = 0;
+
+ /* Dump an extent name */
+ switch (ext)
+ {
+ case 0:
+ tval = TV_STAFF;
+#ifdef JP
+ fprintf(fff, "\n[¾ó]\n");
+#else
+ fprintf(fff, "\n[Staffs]\n");
+#endif
+ break;
+ case 1:
+ tval = TV_WAND;
+#ifdef JP
+ fprintf(fff, "\n[ËâË¡ËÀ]\n");
+#else
+ fprintf(fff, "\n[Wands]\n");
+#endif
+ break;
+ case 2:
+ tval = TV_ROD;
+#ifdef JP
+ fprintf(fff, "\n[¥í¥Ã¥É]\n");
+#else
+ fprintf(fff, "\n[Rods]\n");
+#endif
+ break;
+ }
+
+ /* Get magic device names that were eaten */
+ for (i = 0; i < EATER_EXT; i++)
+ {
+ int idx = EATER_EXT * ext + i;
+
+ magic_num = p_ptr->magic_num2[idx];
+ if (!magic_num) continue;
+
+ k_idx = lookup_kind(tval, i);
+ if (!k_idx) continue;
+ sprintf(s[eat_num], "%23s (%2d)", (k_name + k_info[k_idx].name), magic_num);
+ eat_num++;
+ }
+
+ /* Dump magic devices in this extent */
+ if (eat_num > 0)
+ {
+ for (i = 0; i < eat_num; i++)
+ {
+ fputs(s[i], fff);
+ if (i % 3 < 2) fputs(" ", fff);
+ else fputs("\n", fff);
+ }
+
+ if (i % 3 > 0) fputs("\n", fff);
+ }
+ else /* Not found */
+ {
+#ifdef JP
+ fputs(" (¤Ê¤·)\n", fff);
+#else
+ fputs(" (none)\n", fff);
+#endif
+ }
}
}
}
do_cmd_knowledge_quests_completed(fff, quest_num);
fputc('\n', fff);
do_cmd_knowledge_quests_failed(fff, quest_num);
+ fputc('\n', fff);
/* Free Memory */
C_KILL(quest_num, max_quests, int);
{
fprintf(fff,"> %s\n",message_str((s16b)i));
}
- fprintf(fff, "\n");
+ fputc('\n', fff);
}
/* Hack -- *Winning* message */
fprintf(fff, "\n [*Winning* Message]\n\n");
#endif
fprintf(fff," %s\n", p_ptr->last_message);
+ fputc('\n', fff);
}
}
}
int y;
#ifdef JP
- fprintf(fff, "\n\n [µ¢´Ô¾ì½ê]\n\n");
+ fprintf(fff, "\n [µ¢´Ô¾ì½ê]\n\n");
#else
- fprintf(fff, "\n\n [Recall Depth]\n\n");
+ fprintf(fff, "\n [Recall Depth]\n\n");
#endif
for (y = 1; y < max_d_idx; y++)
#endif
- fprintf(fff,"\n");
+ fputc('\n', fff);
if (p_ptr->noscore)
#ifdef JP
- fprintf(fff, "\n ²¿¤«ÉÔÀµ¤Ê¤³¤È¤ò¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£");
+ fprintf(fff, "\n ²¿¤«ÉÔÀµ¤Ê¤³¤È¤ò¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£\n");
#else
- fprintf(fff, "\n You have done something illegal.");
+ fprintf(fff, "\n You have done something illegal.\n");
#endif
- fprintf(fff,"\n");
+ fputc('\n', fff);
}
fprintf(fff, "\n You were a %s before.", race_info[i].title);
#endif
}
+
+ fputc('\n', fff);
}
}
{
int i;
+ fputc('\n', fff);
for (i = 0; i < MAX_MAGIC; i++)
{
if (!(p_ptr->old_realm & 1L << i)) continue;
fprintf(fff, "\n You were able to use %s magic before.", realm_names[i+1]);
#endif
}
+ fputc('\n', fff);
}
}
dump_mutations(fff);
}
-
- /* Skip some lines */
- fprintf(fff, "\n\n");
}
dump_aux_class_special(fff);
dump_aux_mutations(fff);
dump_aux_pet(fff);
+ fputs("\n\n", fff);
dump_aux_equipment_inventory(fff);
dump_aux_home_museum(fff);
/* Search for a shower string in the line */
if (shower)
{
- ptr = my_strstr(&lcstr[i], shower);
+ ptr = my_strstr(&lcstr[i], shower);
if (ptr) showercol = ptr - &lcstr[i];
}
/* Hold strings to find/show */
char finder_str[81];
char shower_str[81];
+ char back_str[81];
/* String to show */
cptr shower = NULL;
/* Get a special key code */
skey = inkey_special(TRUE);
- /* Show the help for the help */
- if (skey == '?')
+ switch (skey)
{
+ /* Show the help for the help */
+ case '?':
/* Hack - prevent silly recursion */
#ifdef JP
if (strcmp(name, "jhelpinfo.txt") != 0)
if (strcmp(name, "helpinfo.txt") != 0)
show_file(TRUE, "helpinfo.txt", NULL, 0, mode);
#endif
- }
+ break;
/* Hack -- try showing */
- if (skey == '=')
- {
+ case '=':
/* Get "shower" */
#ifdef JP
prt("¶¯Ä´: ", hgt - 1, 0);
prt("Show: ", hgt - 1, 0);
#endif
- (void)askfor(shower_str, 80);
-
- /* Make it lowercase */
- str_tolower(shower_str);
+ strcpy(back_str, shower_str);
+ if (askfor(shower_str, 80))
+ {
+ if (shower_str[0])
+ {
+ /* Make it lowercase */
+ str_tolower(shower_str);
- /* Show it */
- shower = shower_str;
- }
+ /* Show it */
+ shower = shower_str;
+ }
+ else shower = NULL; /* Stop showing */
+ }
+ else strcpy(shower_str, back_str);
+ break;
/* Hack -- try finding */
- if (skey == '/' || skey == KTRL('s'))
- {
+ case '/':
+ case KTRL('s'):
/* Get "finder" */
#ifdef JP
prt("¸¡º÷: ", hgt - 1, 0);
prt("Find: ", hgt - 1, 0);
#endif
-
+ strcpy(back_str, finder_str);
if (askfor(finder_str, 80))
{
- /* Find it */
- find = finder_str;
- back = line;
- line = line + 1;
+ if (finder_str[0])
+ {
+ /* Find it */
+ find = finder_str;
+ back = line;
+ line = line + 1;
- /* Make finder lowercase */
- str_tolower(finder_str);
+ /* Make finder lowercase */
+ str_tolower(finder_str);
- /* Show it */
- shower = finder_str;
+ /* Show it */
+ shower = finder_str;
+ }
+ else shower = NULL; /* Stop showing */
}
- }
+ else strcpy(finder_str, back_str);
+ break;
/* Hack -- go to a specific line */
- if (skey == '#')
- {
- char tmp[81];
+ case '#':
+ {
+ char tmp[81];
#ifdef JP
-prt("¹Ô: ", hgt - 1, 0);
+ prt("¹Ô: ", hgt - 1, 0);
#else
- prt("Goto Line: ", hgt - 1, 0);
+ prt("Goto Line: ", hgt - 1, 0);
#endif
- strcpy(tmp, "0");
+ strcpy(tmp, "0");
- if (askfor(tmp, 80))
- {
- line = atoi(tmp);
+ if (askfor(tmp, 80)) line = atoi(tmp);
}
- }
+ break;
/* Hack -- go to the top line */
- if (skey == SKEY_TOP)
- {
+ case SKEY_TOP:
line = 0;
- }
+ break;
/* Hack -- go to the bottom line */
- if (skey == SKEY_BOTTOM)
- {
- line = ((size-1)/rows)*rows;
- }
+ case SKEY_BOTTOM:
+ line = ((size - 1) / rows) * rows;
+ break;
/* Hack -- go to a specific file */
- if (skey == '%')
- {
- char tmp[81];
+ case '%':
+ {
+ char tmp[81];
#ifdef JP
-prt("¥Õ¥¡¥¤¥ë¡¦¥Í¡¼¥à: ", hgt - 1, 0);
-strcpy(tmp, "jhelp.hlp");
+ prt("¥Õ¥¡¥¤¥ë¡¦¥Í¡¼¥à: ", hgt - 1, 0);
+ strcpy(tmp, "jhelp.hlp");
#else
- prt("Goto File: ", hgt - 1, 0);
- strcpy(tmp, "help.hlp");
+ prt("Goto File: ", hgt - 1, 0);
+ strcpy(tmp, "help.hlp");
#endif
-
- if (askfor(tmp, 80))
- {
- if (!show_file(TRUE, tmp, NULL, 0, mode)) skey = 'q';
+ if (askfor(tmp, 80))
+ {
+ if (!show_file(TRUE, tmp, NULL, 0, mode)) skey = 'q';
+ }
}
- }
+ break;
/* Allow backing up */
- if (skey == '-')
- {
+ case '-':
line = line + (reverse ? rows : -rows);
if (line < 0) line = 0;
- }
+ break;
/* One page up */
- if (skey == SKEY_PGUP)
- {
+ case SKEY_PGUP:
line = line - rows;
if (line < 0) line = 0;
- }
+ break;
/* Advance a single line */
- if ((skey == '\n') || (skey == '\r'))
- {
+ case '\n':
+ case '\r':
line = line + (reverse ? -1 : 1);
if (line < 0) line = 0;
- }
-
+ break;
/* Move up / down */
- if (skey == '8' || skey == SKEY_UP)
- {
+ case '8':
+ case SKEY_UP:
line--;
if (line < 0) line = 0;
- }
+ break;
- if (skey == '2' || skey == SKEY_DOWN) line++;
+ case '2':
+ case SKEY_DOWN:
+ line++;
+ break;
/* Advance one page */
- if (skey == ' ')
- {
+ case ' ':
line = line + (reverse ? -rows : rows);
if (line < 0) line = 0;
- }
+ break;
/* One page down */
- if (skey == SKEY_PGDOWN)
- {
+ case SKEY_PGDOWN:
line = line + rows;
+ break;
}
/* Recurse on numbers */
strcpy (xtmp, "");
#ifdef JP
- if (!get_string("¥Õ¥¡¥¤¥ë̾: ", xtmp, 80))
+ if (!get_string("¥Õ¥¡¥¤¥ë̾: ", xtmp, 80)) continue;
#else
- if (!get_string("File name: ", xtmp, 80))
+ if (!get_string("File name: ", xtmp, 80)) continue;
#endif
- {
- continue;
- }
-
+
/* Close it */
my_fclose(fff);
if (!(fff && ffp))
{
#ifdef JP
-msg_print("¥Õ¥¡¥¤¥ë¤¬³«¤±¤Þ¤»¤ó¡£");
+ msg_print("¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó¡£");
#else
msg_print("Failed to open file.");
#endif
-
skey = ESCAPE;
break;
}
}
/* Return to last screen */
- if (skey == ESCAPE) break;
- if (skey == '<') break;
+ if ((skey == ESCAPE) || (skey == '<')) break;
/* Exit on the ^q */
if (skey == KTRL('q')) skey = 'q';
player_base[k++] = '_';
i += strlen(PATH_SEP);
}
+ /* Convert some characters to underscore */
#ifdef MSDOS
- /* Convert space, dot, and underscore to underscore */
- else if (my_strchr(". _", c)) player_base[k++] = '_';
+ else if (my_strchr(" \"*+,./:;<=>?[\\]|", c)) player_base[k++] = '_';
+#elif defined(WINDOWS)
+ else if (my_strchr("\"*,/:;<>?\\|", c)) player_base[k++] = '_';
#endif
else if (isprint(c)) player_base[k++] = c;
}
/* Use the name */
strcpy(player_name, tmp);
}
- else if (0 == strlen(player_name))
+
+ if (0 == strlen(player_name))
{
/* Use default name */
strcpy(player_name, "PLAYER");
else
{
/* Disturb the player */
- disturb(1, 0);
+ disturb(1, 1);
}
/* Clear messages */
prt("", 0, 0);
/* Hack -- turn off some things */
- disturb(1, 0);
+ disturb(1, 1);
/* Mega-Hack -- Delay death */
if (p_ptr->chp < 0) p_ptr->is_dead = FALSE;