*/
#include "angband.h"
-
+#include "cmd-pet.h"
/*
cptr note_level = "";
bool do_level = TRUE;
char note_level_buf[40];
- int q_idx;
+ QUEST_IDX q_idx;
static bool disable_nikki = FALSE;
else if (!dun_level)
note_level = _("地上:", "Surface:");
else if (q_idx && (is_fixed_quest_idx(q_idx)
- && !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT))))
+ && !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT))))
note_level = _("クエスト:", "Quest:");
else
{
if (p_ptr->pclass == CLASS_WARRIOR || p_ptr->pclass == CLASS_MONK || p_ptr->pclass == CLASS_SAMURAI || p_ptr->pclass == CLASS_BERSERKER)
strcpy(tmp,subtitle[randint0(MAX_SUBTITLE-1)]);
- else if (p_ptr->pclass == CLASS_MAGE || p_ptr->pclass == CLASS_HIGH_MAGE || p_ptr->pclass == CLASS_SORCERER)
+ else if (IS_WIZARD_CLASS())
strcpy(tmp,subtitle[randint0(MAX_SUBTITLE-1)+1]);
else strcpy(tmp,subtitle[randint0(MAX_SUBTITLE-2)+1]);
/* Prompt */
i = inkey();
- /* Done */
if (i == ESCAPE) break;
switch (i)
/* Update torch */
p_ptr->update |= (PU_TORCH);
- /* Update stuff */
p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
/* Forget lite/view */
/* Redraw everything */
p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY);
- /* Window stuff */
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER);
- /* Window stuff */
p_ptr->window |= (PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT);
update_playtime();
mode++;
}
- /* Oops */
else
{
bell();
*/
void do_cmd_message_one(void)
{
- /* Recall one message XXX XXX XXX */
+ /* Recall one message */
prt(format("> %s", message_str(0)), 0, 0);
}
int wid, hgt;
int num_lines;
- /* Get size */
Term_get_size(&wid, &hgt);
/* Number of message lines in a screen */
Term_erase(0, num_lines + 1 - j, 255);
}
- /* Display header XXX XXX XXX */
+ /* Display header */
/* translation */
prt(format(_("以前のメッセージ %d-%d 全部で(%d)", "Message Recall (%d-%d of %d)"),
i, i + j - 1, n), 0, 0);
}
else strcpy(shower_str, back_str);
- /* Okay */
continue;
/* Hack -- handle find */
/* New location */
i = z;
- /* Done */
break;
}
}
}
-
-/*!
- * チートオプションの最大数 / Number of cheating options
- */
-#define CHEAT_MAX 9
-
-/*!
- * チーとオプションの定義テーブル / Cheating options
- */
-static option_type cheat_info[CHEAT_MAX] =
-{
- { &cheat_peek, FALSE, 255, 0x01, 0x00,
- "cheat_peek", _("アイテムの生成をのぞき見る", "Peek into object creation")
- },
-
- { &cheat_hear, FALSE, 255, 0x02, 0x00,
- "cheat_hear", _("モンスターの生成をのぞき見る", "Peek into monster creation")
- },
-
- { &cheat_room, FALSE, 255, 0x04, 0x00,
- "cheat_room", _("ダンジョンの生成をのぞき見る", "Peek into dungeon creation")
- },
-
- { &cheat_xtra, FALSE, 255, 0x08, 0x00,
- "cheat_xtra", _("その他の事をのぞき見る", "Peek into something else")
- },
-
- { &cheat_know, FALSE, 255, 0x10, 0x00,
- "cheat_know", _("完全なモンスターの思い出を知る", "Know complete monster info")
- },
-
- { &cheat_live, FALSE, 255, 0x20, 0x00,
- "cheat_live", _("死を回避することを可能にする", "Allow player to avoid death")
- },
-
- { &cheat_save, FALSE, 255, 0x40, 0x00,
- "cheat_save", _("死んだ時セーブするか確認する", "Ask for saving death")
- },
-
- { &cheat_diary_output, FALSE, 255, 0x80, 0x00,
- "cheat_diary_output", _("ウィザードログを日記に出力する", "Output wizard log to diary.")
- },
-
- { &cheat_turn, FALSE, 255, 0x81, 0x00,
- "cheat_turn", _("ゲームメッセージにターン表示を行う", "Put turn to game message.")
- }
-
-
-};
-
/*!
* @brief チートオプションを変更するコマンドのメインルーチン
* Interact with some options for cheating
static void do_cmd_options_cheat(cptr info)
{
char ch;
-
int i, k = 0, n = CHEAT_MAX;
-
char buf[80];
-
/* Clear screen */
Term_clear();
/* Interact with the player */
while (TRUE)
{
- int dir;
+ DIRECTION dir;
- /* Prompt XXX XXX XXX */
+ /* Prompt */
sprintf(buf, _("%s ( リターンで次へ, y/n でセット, ESC で決定 )", "%s (RET to advance, y/n to set, ESC to accept) "), info);
prt(buf, 0, 0);
/*!
- * 自動セーブオプションテーブル
- */
-static option_type autosave_info[2] =
-{
- { &autosave_l, FALSE, 255, 0x01, 0x00,
- "autosave_l", _("新しい階に入る度に自動セーブする", "Autosave when entering new levels") },
-
- { &autosave_t, FALSE, 255, 0x02, 0x00,
- "autosave_t", _("一定ターン毎に自動セーブする", "Timed autosave") },
-};
-
-/*!
* @brief セーブ頻度ターンの次の値を返す
* @param current 現在のセーブ頻度ターン値
* @return 次のセーブ頻度ターン値
/* Interact with the player */
while (TRUE)
{
- /* Prompt XXX XXX XXX */
+ /* Prompt */
sprintf(buf, _("%s ( リターンで次へ, y/n でセット, F で頻度を入力, ESC で決定 ) ",
"%s (RET to advance, y/n to set, 'F' for frequency, ESC to accept) "), info);
/* Interact with the player */
while (TRUE)
{
- int dir;
+ DIRECTION dir;
- /* Prompt XXX XXX XXX */
+ /* Prompt */
sprintf(buf, _("%s (リターン:次, %sESC:終了, ?:ヘルプ) ", "%s (RET:next, %s, ?:help) "),
info, browse_only ? _("", "ESC:exit") : _("y/n:変更, ", "y/n:change, ESC:accept"));
prt(buf, 0, 0);
static void do_cmd_options_win(void)
{
int i, j, d;
- int y = 0;
- int x = 0;
+ TERM_LEN y = 0;
+ TERM_LEN x = 0;
char ch;
bool go = TRUE;
u32b old_flag[8];
/* Interact */
while (go)
{
- /* Prompt XXX XXX XXX */
+ /* Prompt */
prt(_("ウィンドウ・フラグ (<方向>で移動, tでチェンジ, y/n でセット, ESC)", "Window Flags (<dir>, t, y, n, ESC) "), 0, 0);
/* Display the windows */
void do_cmd_options(void)
{
char k;
- int i, d, skey;
- int y = 0;
+ int d, skey;
+ TERM_LEN i, y = 0;
/* Save the screen */
screen_save();
/* Unknown option */
default:
{
- /* Oops */
bell();
break;
}
* Ask for a "user pref line" and process it
* @return なし
* @details
- * XXX XXX XXX Allow absolute file names?
+ * Allow absolute file names?
*/
void do_cmd_pref(void)
{
* @details
* <pre>
* Note that both "flush()" calls are extremely important. This may
- * no longer be true, since "util.c" is much simpler now. XXX XXX XXX
+ * no longer be true, since "util.c" is much simpler now.
* </pre>
*/
static void do_cmd_macro_aux_keymap(char *buf)
char key[1024];
char buf[1024];
- int mode;
+ BIT_FLAGS mode;
/* Roguelike */
if (rogue_like_commands)
* <pre>
* Note that the macro "action" must be defined before the trigger.
*
- * Could use some helpful instructions on this page. XXX XXX XXX
+ * Could use some helpful instructions on this page.
* </pre>
*/
void do_cmd_macros(void)
char buf[1024];
- int mode;
+ BIT_FLAGS mode;
/* Roguelike */
#endif /* ALLOW_MACROS */
- /* Oops */
else
{
- /* Oops */
bell();
}
*/
void do_cmd_visuals(void)
{
- char i;
+ int i;
char tmp[160];
char buf[1024];
bool need_redraw = FALSE;
/* Prompt */
i = inkey();
- /* Done */
if (i == ESCAPE) break;
switch (i)
/* Close */
close_auto_dump();
- /* Message */
msg_print(_("モンスターの[色/文字]をファイルに書き出しました。", "Dumped monster attr/chars."));
break;
case '2':
{
static cptr mark = "Object attr/chars";
- IDX k_idx;
+ KIND_OBJECT_IDX k_idx;
/* Prompt */
prt(_("コマンド: アイテムの[色/文字]をファイルに書き出します", "Command: Dump object attr/chars"), 15, 0);
/* Close */
close_auto_dump();
- /* Message */
msg_print(_("アイテムの[色/文字]をファイルに書き出しました。", "Dumped object attr/chars."));
break;
/* Close */
close_auto_dump();
- /* Message */
msg_print(_("地形の[色/文字]をファイルに書き出しました。", "Dumped feature attr/chars."));
break;
while (1)
{
monster_race *r_ptr = &r_info[r];
- char c;
+ int c;
IDX t;
- byte da = r_ptr->d_attr;
+ TERM_COLOR da = r_ptr->d_attr;
byte dc = r_ptr->d_char;
- byte ca = r_ptr->x_attr;
+ TERM_COLOR ca = r_ptr->x_attr;
byte cc = r_ptr->x_char;
/* Label the object */
while (1)
{
object_kind *k_ptr = &k_info[k];
- char c;
+ int c;
IDX t;
- SYMBOL_COLOR da = k_ptr->d_attr;
+ TERM_COLOR da = k_ptr->d_attr;
SYMBOL_CODE dc = k_ptr->d_char;
- SYMBOL_COLOR ca = k_ptr->x_attr;
+ TERM_COLOR ca = k_ptr->x_attr;
SYMBOL_CODE cc = k_ptr->x_char;
/* Label the object */
while (1)
{
feature_type *f_ptr = &f_info[f];
- char c;
+ int c;
IDX t;
- byte da = f_ptr->d_attr[lighting_level];
+ TERM_COLOR da = f_ptr->d_attr[lighting_level];
byte dc = f_ptr->d_char[lighting_level];
- byte ca = f_ptr->x_attr[lighting_level];
+ TERM_COLOR ca = f_ptr->x_attr[lighting_level];
byte cc = f_ptr->x_char[lighting_level];
/* Label the object */
/* Reset */
reset_visuals();
- /* Message */
msg_print(_("画面上の[色/文字]を初期値にリセットしました。", "Visual attr/char tables reset."));
need_redraw = TRUE;
break;
/* Prompt */
i = inkey();
- /* Done */
if (i == ESCAPE) break;
/* Load a 'pref' file */
/* Close */
close_auto_dump();
- /* Message */
msg_print(_("カラーの設定をファイルに書き出しました。", "Dumped color redefinitions."));
}
{
int i, y, x;
- byte a = 0;
+ TERM_COLOR a = 0;
char c = ' ';
bool okay = TRUE;
/* Append to the file */
fff = my_fopen(buf, "r");
- /* Oops */
if (!fff) {
msg_format(_("%s を開くことができませんでした。", "Failed to open %s."), buf);
msg_print(NULL);
my_fclose(fff);
- /* Message */
prt(_("ファイルに書き出された画面(記念撮影)をロードしました。", "Screen dump loaded."), 0, 0);
flush();
/* XTRA HACK RESLIST */
-static void do_cmd_knowledge_inven_aux(FILE *fff, object_type *o_ptr, int *j, byte tval, char *where)
+static void do_cmd_knowledge_inven_aux(FILE *fff, object_type *o_ptr, int *j, OBJECT_TYPE_VALUE tval, char *where)
{
char o_name[MAX_NLEN];
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
if (!o_ptr->k_idx) return;
if (o_ptr->tval != tval) return;
store_type *st_ptr;
- byte tval;
+ OBJECT_TYPE_VALUE tval;
int i = 0;
int j = 0;
{
int y, x, i;
- byte a = 0, old_a = 0;
+ TERM_COLOR a = 0, old_a = 0;
char c = ' ';
FILE *fff, *tmpfff;
/* Append to the file */
fff = my_fopen(filename, "w");
- /* Oops */
if (!fff) {
if (message) {
msg_format(_("ファイル %s を開けませんでした。", "Failed to open file %s."), filename);
/* Close it */
my_fclose(fff);
- /* Message */
if (message) {
msg_print(_("画面(記念撮影)をファイルに書き出しました。", "Screen dump saved."));
msg_print(NULL);
{
int y, x;
- byte a = 0;
+ TERM_COLOR a = 0;
char c = ' ';
FILE *fff;
/* Append to the file */
fff = my_fopen(buf, "w");
- /* Oops */
if (!fff)
{
msg_format(_("ファイル %s を開けませんでした。", "Failed to open file %s."), buf);
/* Close it */
my_fclose(fff);
- /* Message */
msg_print(_("画面(記念撮影)をファイルに書き出しました。", "Screen dump saved."));
msg_print(NULL);
{
IDX i;
IDX k;
- int x, y, n = 0;
+ POSITION x, y;
+ int n = 0;
IDX z;
u16b why = 3;
IDX *who;
{
cave_type *c_ptr = &cave[y][x];
- s16b this_o_idx, next_o_idx = 0;
+ OBJECT_IDX this_o_idx, next_o_idx = 0;
/* Scan all objects in the grid */
for (this_o_idx = c_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
{
monster_race *r_ptr = &r_info[who[k]];
- /* Print a message */
fprintf(fff, _(" %s (レベル%d)\n", " %s (level %d)\n"), r_name + r_ptr->name, (int)r_ptr->level);
}
* @brief 現在のペットを表示するコマンドのメインルーチン /
* Total kill count
* @return なし
- * @note the player ghosts are ignored. XXX XXX XXX
+ * @note the player ghosts are ignored.
*/
static void do_cmd_knowledge_kill_count(void)
{
}
else
{
- s16b This = r_ptr->r_pkills;
+ MONSTER_NUMBER This = r_ptr->r_pkills;
if (This > 0)
{
if (dead)
{
- /* Print a message */
- fprintf(fff, " %s\n",
- (r_name + r_ptr->name));
+ fprintf(fff, " %s\n", (r_name + r_ptr->name));
Total++;
}
}
else
{
- s16b This = r_ptr->r_pkills;
+ MONSTER_NUMBER This = r_ptr->r_pkills;
if (This > 0)
{
#ifdef JP
/* p,tは人と数える by ita */
if (my_strchr("pt", r_ptr->d_char))
- fprintf(fff, " %3d 人の %s\n", This, r_name + r_ptr->name);
+ fprintf(fff, " %3d 人の %s\n", (int)This, r_name + r_ptr->name);
else
- fprintf(fff, " %3d 体の %s\n", This, r_name + r_ptr->name);
+ fprintf(fff, " %3d 体の %s\n", (int)This, r_name + r_ptr->name);
#else
if (This < 2)
{
#ifdef JP
fprintf(fff," 合計: %lu 体を倒した。\n", (unsigned long int)Total);
#else
- fprintf(fff," Total: %lu creature%s killed.\n",
- (unsigned long int)Total, (Total == 1 ? "" : "s"));
+ fprintf(fff," Total: %lu creature%s killed.\n", (unsigned long int)Total, (Total == 1 ? "" : "s"));
#endif
* @param grp_top 現在の選択リスト最上部ID
* @return なし
*/
-static void display_group_list(int col, int row, int wid, int per_page,
- IDX grp_idx[], cptr group_text[], int grp_cur, int grp_top)
+static void display_group_list(int col, int row, int wid, int per_page, IDX grp_idx[], cptr group_text[], int grp_cur, int grp_top)
{
int i;
int browser_rows;
int wid, hgt;
- /* Get size */
Term_get_size(&wid, &hgt);
browser_rows = hgt - 8;
/*
* Display visuals.
*/
-static void display_visual_list(int col, int row, int height, int width, byte attr_top, byte char_left)
+static void display_visual_list(int col, int row, int height, int width, TERM_COLOR attr_top, byte char_left)
{
int i, j;
{
byte a;
char c;
- int x = col + j;
- int y = row + i;
+ TERM_LEN x = col + j;
+ TERM_LEN y = row + i;
int ia, ic;
/* Bigtile mode uses double width */
/*
* Place the cursor at the collect position for visual mode
*/
-static void place_visual_list_cursor(int col, int row, byte a, byte c, byte attr_top, byte char_left)
+static void place_visual_list_cursor(TERM_LEN col, TERM_LEN row, TERM_COLOR a, byte c, TERM_COLOR attr_top, byte char_left)
{
int i = (a & 0x7f) - attr_top;
int j = c - char_left;
- int x = col + j;
- int y = row + i;
+ TERM_LEN x = col + j;
+ TERM_LEN y = row + i;
/* Bigtile mode uses double width */
if (use_bigtile) x += j;
/*
* Clipboard variables for copy&paste in visual mode
*/
-static byte attr_idx = 0;
+static TERM_COLOR attr_idx = 0;
static byte char_idx = 0;
/* Hack -- for feature lighting */
-static byte attr_idx_feat[F_LIT_MAX];
+static TERM_COLOR attr_idx_feat[F_LIT_MAX];
static byte char_idx_feat[F_LIT_MAX];
/*
*/
static bool visual_mode_command(char ch, bool *visual_list_ptr,
int height, int width,
- byte *attr_top_ptr, byte *char_left_ptr,
- byte *cur_attr_ptr, byte *cur_char_ptr, bool *need_redraw)
+ TERM_COLOR *attr_top_ptr, byte *char_left_ptr,
+ TERM_COLOR *cur_attr_ptr, byte *cur_char_ptr, bool *need_redraw)
{
- static byte attr_old = 0, char_old = 0;
+ static TERM_COLOR attr_old = 0;
+ static byte char_old = 0;
switch (ch)
{
bool redraw;
bool visual_list = FALSE;
- byte attr_top = 0, char_left = 0;
+ TERM_COLOR attr_top = 0;
+ byte char_left = 0;
int browser_rows;
- TERM_POSITION wid, hgt;
+ TERM_LEN wid, hgt;
BIT_FLAGS8 mode;
- /* Get size */
Term_get_size(&wid, &hgt);
browser_rows = hgt - 8;
for (i = 0; i < per_page && (object_idx[object_top + i] >= 0); i++)
{
char o_name[80];
- byte a, c;
+ TERM_COLOR a;
+ byte c;
object_kind *flavor_k_ptr;
/* Get the object index */
/*
* Describe fake object
*/
-static void desc_obj_fake(IDX k_idx)
+static void desc_obj_fake(KIND_OBJECT_IDX k_idx)
{
object_type *o_ptr;
object_type object_type_body;
bool redraw;
bool visual_list = FALSE;
- byte attr_top = 0, char_left = 0;
+ TERM_COLOR attr_top = 0;
+ byte char_left = 0;
int browser_rows;
int wid, hgt;
byte mode;
- /* Get size */
Term_get_size(&wid, &hgt);
browser_rows = hgt - 8;
bool redraw;
bool visual_list = FALSE;
- byte attr_top = 0, char_left = 0;
+ TERM_COLOR attr_top = 0;
+ byte char_left = 0;
int browser_rows;
int wid, hgt;
- byte attr_old[F_LIT_MAX];
+ TERM_COLOR attr_old[F_LIT_MAX];
byte char_old[F_LIT_MAX];
- byte *cur_attr_ptr, *cur_char_ptr;
+ TERM_COLOR *cur_attr_ptr;
+ byte *cur_char_ptr;
(void)C_WIPE(attr_old, F_LIT_MAX, byte);
(void)C_WIPE(char_old, F_LIT_MAX, byte);
- /* Get size */
Term_get_size(&wid, &hgt);
browser_rows = hgt - 8;
else if ((ch == 'D') || (ch == 'd'))
{
- byte prev_x_attr = f_ptr->x_attr[*lighting_level];
+ TERM_COLOR prev_x_attr = f_ptr->x_attr[*lighting_level];
byte prev_x_char = f_ptr->x_char[*lighting_level];
apply_default_feat_lighting(f_ptr->x_attr, f_ptr->x_char);
fprintf(fff, _("《遂行中のクエスト》\n", "< Current Quest >\n"));
- for (i = 1; i < max_quests; i++)
+ for (i = 1; i < max_q_idx; i++)
{
if ((quest[i].status == QUEST_STATUS_TAKEN) ||
((quest[i].status == QUEST_STATUS_STAGE_COMPLETED) && (quest[i].type == QUEST_TYPE_TOWER)) ||
{
#ifdef JP
sprintf(note," - %d 体の%sを倒す。(あと %d 体)",
- quest[i].max_num, name, quest[i].max_num - quest[i].cur_num);
+ (int)quest[i].max_num, name, (int)(quest[i].max_num - quest[i].cur_num));
#else
plural_aux(name);
sprintf(note," - kill %d %s, have killed %d.",
- quest[i].max_num, name, quest[i].cur_num);
+ (int)quest[i].max_num, name, (int)quest[i].cur_num);
#endif
}
else
artifact_type *a_ptr = &a_info[quest[i].k_idx];
object_type forge;
object_type *q_ptr = &forge;
- IDX k_idx = lookup_kind(a_ptr->tval, a_ptr->sval);
+ KIND_OBJECT_IDX k_idx = lookup_kind(a_ptr->tval, a_ptr->sval);
object_prep(q_ptr, k_idx);
q_ptr->name1 = quest[i].k_idx;
q_ptr->ident = IDENT_STORE;
case QUEST_TYPE_KILL_NUMBER:
#ifdef JP
sprintf(note," - %d 体のモンスターを倒す。(あと %d 体)",
- quest[i].max_num, quest[i].max_num - quest[i].cur_num);
+ (int)quest[i].max_num, (int)(quest[i].max_num - quest[i].cur_num));
#else
sprintf(note," - Kill %d monsters, have killed %d.",
- quest[i].max_num, quest[i].cur_num);
+ (int)quest[i].max_num, (int)quest[i].cur_num);
#endif
break;
#ifdef JP
sprintf(rand_tmp_str," %s (%d 階) - %d 体の%sを倒す。(あと %d 体)\n",
quest[i].name, (int)quest[i].level,
- quest[i].max_num, name, quest[i].max_num - quest[i].cur_num);
+ (int)quest[i].max_num, name, (int)(quest[i].max_num - quest[i].cur_num));
#else
plural_aux(name);
sprintf(rand_tmp_str," %s (Dungeon level: %d)\n Kill %d %s, have killed %d.\n",
- quest[i].name, (idx)quest[i].level,
- quest[i].max_num, name, quest[i].cur_num);
+ quest[i].name, (int)quest[i].level,
+ (int)quest[i].max_num, name, (int)quest[i].cur_num);
#endif
}
else
int total = 0;
fprintf(fff, _("《達成したクエスト》\n", "< Completed Quest >\n"));
- for (i = 1; i < max_quests; i++)
+ for (i = 1; i < max_q_idx; i++)
{
IDX q_idx = quest_num[i];
quest_type* const q_ptr = &quest[q_idx];
int total = 0;
fprintf(fff, _("《失敗したクエスト》\n", "< Failed Quest >\n"));
- for (i = 1; i < max_quests; i++)
+ for (i = 1; i < max_q_idx; i++)
{
IDX q_idx = quest_num[i];
quest_type* const q_ptr = &quest[q_idx];
int total = 0;
fprintf(fff, _("《残りのランダムクエスト》\n", "< Remaining Random Quest >\n"));
- for (i = 1; i < max_quests; i++)
+ for (i = 1; i < max_q_idx; i++)
{
/* No info from "silent" quests */
if (quest[i].flags & QUEST_FLAG_SILENT) continue;
bool ang_sort_comp_quest_num(vptr u, vptr v, int a, int b)
{
- int *q_num = (int *)u;
+ QUEST_IDX *q_num = (QUEST_IDX *)u;
quest_type *qa = &quest[q_num[a]];
quest_type *qb = &quest[q_num[b]];
/* Unused */
(void)v;
- return (qa->comptime <= qb->comptime);
+ return (qa->comptime != qb->comptime) ?
+ (qa->comptime < qb->comptime) :
+ (qa->level <= qb->level);
}
void ang_sort_swap_quest_num(vptr u, vptr v, int a, int b)
{
- int *q_num = (int *)u;
- int tmp;
+ QUEST_IDX *q_num = (QUEST_IDX *)u;
+ QUEST_IDX tmp;
/* Unused */
(void)v;
}
/* Allocate Memory */
- C_MAKE(quest_num, max_quests, IDX);
+ C_MAKE(quest_num, max_q_idx, IDX);
/* Sort by compete level */
- for (i = 1; i < max_quests; i++) quest_num[i] = i;
+ for (i = 1; i < max_q_idx; i++) quest_num[i] = i;
ang_sort_comp = ang_sort_comp_quest_num;
ang_sort_swap = ang_sort_swap_quest_num;
- ang_sort(quest_num, &dummy, max_quests);
+ ang_sort(quest_num, &dummy, max_q_idx);
/* Dump Quest Information */
do_cmd_knowledge_quests_current(fff);
fd_kill(file_name);
/* Free Memory */
- C_KILL(quest_num, max_quests, IDX);
+ C_KILL(quest_num, max_q_idx, IDX);
}
if (st_ptr->stock_num)
{
#ifdef JP
- int x = 1;
+ TERM_LEN x = 1;
#endif
/* Header with name of the town */
fprintf(fff, _(" [ 我が家のアイテム ]\n", " [Home Inventory]\n"));
/* Prompt */
i = inkey();
- /* Done */
if (i == ESCAPE) break;
switch (i)
{
if (day < MAX_DAYS) sprintf(day_buf, "%d", day);
else strcpy(day_buf, "*****");
- /* Message */
#ifdef JP
msg_format("%s日目, 時刻は%d:%02d %sです。",
day_buf, (hour % 12 == 0) ? 12 : (hour % 12),
/* Open this file */
fff = my_fopen(buf, "rt");
- /* Oops */
if (!fff) return;
/* Find this time */
}
}
- /* Message */
msg_print(desc);
/* Close the file */